@import "https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@latest/400.css";@import "https://cdn.jsdelivr.net/npm/@fontsource/jetbrains-mono@latest/700.css";*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-primary);color:var(--text-primary);touch-action:manipulation;max-width:100vw;min-height:100vh;font-family:JetBrains Mono,monospace;font-weight:400;line-height:1.6}body{--grid-line:color-mix(in srgb, var(--text-primary) 4%, transparent);--grid-size:28px;--bg-sink:color-mix(in srgb, var(--bg-primary), #000 15%);background-color:var(--bg-sink);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size)}.panel{background-color:var(--bg-primary);border:1px solid var(--border-secondary);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.5rem}.panel>:first-child{margin-top:0}.accent-tertiary{color:var(--accent-tertiary)}a{color:var(--accent-primary);text-underline-offset:3px;text-decoration:underline}a:hover{color:var(--accent-primary)}#main{flex-direction:column;min-height:100vh;display:flex}.page{flex:1 0 auto;width:100%;max-width:60rem;margin:0 auto;padding:0 1.5rem 5rem}.nav-wrapper{z-index:100;background-color:var(--bg-primary);border-bottom:1px solid var(--border-primary);box-shadow:var(--shadow-sm);margin-bottom:3rem;position:sticky;top:0}nav{justify-content:space-between;align-items:center;gap:2rem;max-width:60rem;margin:0 auto;padding:1.25rem 1.5rem;display:flex;position:relative}.nav-panel{flex:1;justify-content:flex-end;display:flex}.nav-panel-inner{align-items:center;gap:1.5rem;display:flex}.nav-stores-persistent{align-items:center;gap:.5rem;display:none}.nav-toggle{border:1px solid var(--border-primary);cursor:pointer;background:0 0;border-radius:.35rem;flex-direction:column;justify-content:center;gap:.3rem;width:2.25rem;height:2.25rem;padding:.5rem;transition:border-color .15s;display:none}.nav-toggle:hover{border-color:var(--accent-primary)}.nav-toggle-bar{background:var(--text-primary);width:100%;height:1px;transition:transform .2s,opacity .2s;display:block}.nav-toggle-open .nav-toggle-bar:first-child{transform:translateY(.4rem)rotate(45deg)}.nav-toggle-open .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle-open .nav-toggle-bar:nth-child(3){transform:translateY(-.4rem)rotate(-45deg)}.nav-brand{letter-spacing:.05em;cursor:pointer;align-items:center;gap:.625rem;font-size:1.1rem;font-weight:400;text-decoration:none;display:flex}.nav-logo{white-space:pre;letter-spacing:0;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:.35rem;line-height:.9;transition:letter-spacing .15s;display:block}@media (hover:hover){.nav-brand:hover .nav-logo{letter-spacing:1px;color:var(--accent-primary)}}.nav-brand img{border-radius:.375rem;width:1.75rem;height:1.75rem}.nav-links{align-items:center;gap:1.5rem;height:1.85rem;margin:0;padding:0;line-height:1;list-style:none;display:flex}.nav-links li{align-items:center;height:1.85rem;margin:0;padding:0;line-height:1;display:flex}.nav-links a,.theme-select-trigger,.mode-toggle,.store-link,.nav-links a.store-link{box-sizing:border-box;height:1.85rem;color:var(--text-muted);border:1px solid var(--border-primary);letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:0 0;border-radius:.4rem;align-items:center;padding:0 .8rem;font-family:inherit;font-size:.8rem;line-height:1;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}@media (hover:hover){.nav-links a:hover,.theme-select-trigger:hover,.mode-toggle:hover{color:var(--accent-primary);border-color:var(--accent-primary)}}.nav-links a.active{color:var(--accent-primary);border-color:var(--accent-primary)}.store-link,.nav-links a.store-link{color:var(--accent-primary)}@media (hover:hover){.store-link:hover,.nav-links a.store-link:hover{color:var(--accent-primary);border-color:var(--accent-primary)}}@media (width<=60rem){nav{flex-wrap:wrap;gap:0 .5rem;padding:1rem .75rem}.nav-toggle{display:flex}.nav-stores-persistent{gap:.35rem;display:flex}.nav-stores-persistent .store-link{height:1.65rem;padding:0 .55rem;font-size:.7rem}.nav-panel .nav-link-store{display:none}.nav-panel{opacity:0;visibility:hidden;border-top:1px solid transparent;flex-basis:100%;grid-template-rows:0fr;grid-template-columns:minmax(0,1fr);margin-top:0;padding-top:0;transition:grid-template-rows .25s,opacity .2s,margin-top .25s,padding-top .25s,border-top-color .2s,visibility 0s linear .25s;display:grid}.nav-panel-open{opacity:1;visibility:visible;border-top-color:var(--border-primary);grid-template-rows:1fr;margin-top:1.25rem;padding-top:1rem;transition:grid-template-rows .25s,opacity .2s,margin-top .25s,padding-top .25s,border-top-color .2s,visibility}.nav-panel .nav-panel-inner{flex-direction:column;align-items:stretch;gap:1rem;min-height:0;overflow:hidden}.nav-panel .nav-links{flex-direction:column;align-items:stretch;gap:.75rem;height:auto}.nav-panel .nav-links li{width:100%;height:auto}.nav-panel .nav-links a{text-align:center;justify-content:center;width:100%;height:auto;padding:.65rem 1rem;font-size:.95rem}.nav-panel .theme-switcher{border-top:1px solid var(--border-primary);flex-direction:row;justify-content:center;align-items:center;gap:.75rem;height:auto;padding-top:.75rem}.nav-panel .theme-select-trigger,.nav-panel .mode-toggle{height:auto;padding:.55rem 1rem;font-size:.95rem}.nav-panel .theme-select{position:static}.nav-panel .theme-select-content{max-height:50vh;margin-top:.5rem;position:absolute;top:auto;left:auto;right:auto;overflow-y:auto}}.section{margin-bottom:2.5rem}.card{background-color:var(--bg-primary);border:1px solid var(--border-secondary);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.5rem;transition:border-color .2s}.card:hover{border-color:var(--accent-primary)}.card h3,.card .card-title{color:var(--accent-primary);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.card p{color:var(--text-subtle);line-height:1.55}.arch-subtitle{color:var(--text-subtle);margin:-.25rem 0 1rem;font-size:.85rem}.arch{border:1px solid var(--border-secondary);background-color:var(--bg-primary);box-shadow:var(--shadow-md);border-radius:1rem;flex-direction:column;gap:.6rem;padding:1.25rem;display:flex}.arch-tier{gap:.75rem;display:grid}.arch-tier-clients,.arch-tier-api{grid-template-columns:1fr 1fr}.arch-tier-db{grid-template-columns:1fr}.arch-box{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:.4rem;padding:.9rem 1rem;transition:border-color .2s}.arch-box:hover,.arch-box-emphasis{border-color:var(--accent-primary)}.arch-box-wide{text-align:left}.arch-imports{border-top:1px dashed var(--accent-primary);color:var(--text-subtle);letter-spacing:.03em;margin-top:.6rem;padding-top:.5rem;font-size:.72rem}.arch-imports:before{content:"↓";color:var(--accent-primary)}.arch-box-title a,.arch-imports a{color:inherit;text-decoration:none;transition:color .15s}.arch-box-title a:hover,.arch-imports a:hover{color:var(--accent-primary)}.arch-box-sub a,.arch-foundation-body a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--border-muted);text-decoration-color:var(--border-muted);text-underline-offset:.15em;transition:text-decoration-color .15s,color .15s}.arch-box-sub a:hover,.arch-foundation-body a:hover{color:var(--accent-primary);-webkit-text-decoration-color:var(--accent-primary);text-decoration-color:var(--accent-primary)}.arch-box-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.arch-box-title{color:var(--accent-primary);font-size:1.05rem;font-weight:700}.arch-box-sub{color:var(--text-subtle);font-size:.78rem}.arch-box-list{color:var(--text-subtle);margin:0;padding:0;font-size:.85rem;line-height:1.55;list-style:none}.arch-box-list li{padding:0}.arch-box-list-inline{flex-wrap:wrap;gap:0 1.25rem;display:flex}.arch-nested{border:1px solid var(--accent-secondary);background:var(--bg-primary);border-radius:.35rem;margin-top:.75rem;padding:.75rem .85rem}.arch-nested-title{color:var(--accent-secondary)}.arch-flow{color:var(--accent-primary);flex-direction:column;align-items:center;gap:.15rem;font-size:.78rem;display:flex}.arch-flow-label{color:var(--text-subtle);letter-spacing:.04em}.arch-flow-arrow{font-size:1.1rem;line-height:1}.arch-foundation{border:1px dashed var(--accent-primary);background:var(--bg-primary);border-radius:.4rem;margin-top:.4rem;padding:.9rem 1rem}.arch-foundation-body{color:var(--text-subtle);margin:0;font-size:.85rem;line-height:1.55}.arch-legend{color:var(--text-subtle);flex-wrap:wrap;gap:1.25rem;margin-top:.25rem;padding:.5rem .25rem 0;font-size:.78rem;display:flex}.arch-legend-item{align-items:center;gap:.5rem;display:inline-flex}.arch-legend-swatch{border-top:1px solid var(--accent-primary);width:1.5rem;height:0}.arch-legend-dashed{border-top-style:dashed}@media (width<=640px){.arch-tier-clients,.arch-tier-api{grid-template-columns:1fr}}h1{letter-spacing:.08em;margin-bottom:.75rem;font-size:2rem;font-weight:300}h2{letter-spacing:.06em;color:var(--accent-tertiary);margin-bottom:1rem;font-size:1.2rem;font-weight:400}h3{letter-spacing:.05em;color:var(--accent-tertiary);margin-bottom:.625rem;font-size:.95rem;font-weight:400}code{color:var(--accent-secondary);font-size:.85em}p{color:var(--text-subtle);margin-bottom:.75rem;font-size:.9rem}ul{color:var(--text-subtle);margin-bottom:.75rem;padding-left:1.25rem;font-size:.9rem}ul li{margin-bottom:.375rem}code{background-color:var(--border-secondary);border:1px solid var(--border-muted);border-radius:.1875rem;padding:.0625rem .3125rem;font-family:JetBrains Mono,monospace;font-size:.85em}.logo{white-space:pre;text-align:left;font-family:JetBrains Mono,monospace;font-size:clamp(.5rem,2.5vw,1.4rem);line-height:.9;animation:.6s ease-out backwards logo-enter;display:inline-block}@keyframes logo-enter{0%{letter-spacing:.625rem;opacity:0;transform:translateY(-.75rem)}to{letter-spacing:0;opacity:1;transform:translateY(0)}}@keyframes content-enter{0%{opacity:0;transform:translateY(.625rem)}to{opacity:1;transform:translateY(0)}}.content-enter{animation:.3s ease-out both content-enter}.spinner-row{justify-content:center;margin-top:1.25rem;display:flex}.spinner{border:2px solid var(--border-secondary);border-top-color:var(--accent-primary);border-radius:50%;width:1.25rem;height:1.25rem;animation:.5s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hero{text-align:center;padding:3rem 1.5rem 1.25rem;overflow:hidden}.hero-card{background-color:var(--bg-primary);border:1px solid var(--border-secondary);max-width:57rem;box-shadow:var(--shadow-md);border-radius:1rem;flex-direction:column;margin:1.5rem auto 0;padding:1rem 1.5rem;display:flex;overflow:hidden}.hero .tagline{color:var(--text-primary);margin:0;font-size:.95rem}@keyframes hero-stats-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.hero-rule{border:none;border-top:1px solid var(--border-secondary);align-self:stretch;margin:1rem -1.5rem;animation:.4s ease-out both hero-stats-in}.stats-strip{flex-wrap:wrap;justify-content:center;gap:2.5rem;margin:0;font-family:JetBrains Mono,monospace;animation:.4s ease-out both hero-stats-in;display:flex}.stats-strip .stat{flex-direction:column;align-items:center;gap:.15rem;display:flex}.stats-strip .stat-num{color:var(--accent-primary);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;line-height:1.1}.stats-strip .stat-label{color:var(--text-primary);letter-spacing:.06em;opacity:.7;font-size:.75rem}.store-btn{color:var(--accent-primary);background-color:var(--bg-primary);border:1px solid var(--border-primary);box-shadow:var(--shadow-sm);letter-spacing:.06em;border-radius:.4rem;padding:.625rem 1.75rem;font-size:.9rem;text-decoration:none;transition:border-color .2s,color .2s;display:inline-block}.store-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.card-grid,.features-grid{grid-template-columns:1fr 1fr 1fr;gap:1.5rem;margin-top:1.5rem;display:grid}.features-grid{grid-template-columns:repeat(4,1fr);margin-top:2.5rem}@media (width<=75rem){.features-grid{grid-template-columns:1fr 1fr}}@media (width<=60rem){.card-grid{grid-template-columns:1fr 1fr}}@media (width<=30rem){.card-grid,.features-grid{grid-template-columns:1fr}.form-group{margin-bottom:.75rem}.form-page{margin-top:2.25rem}.form-page .subtitle{margin-bottom:1.25rem}}.feature-card{background-color:var(--bg-primary);border:1px solid var(--border-secondary);box-shadow:var(--shadow-sm);border-radius:1rem;padding:1.5rem;transition:border-color .2s}.feature-card:hover{border-color:var(--accent-primary)}.feature-card .card-title,.feature-card h3{color:var(--accent-primary);margin-bottom:.75rem;font-size:1.1rem;font-weight:700}.feature-card .card-summary,.feature-card p{color:var(--text-subtle);margin-bottom:.75rem;font-size:.85rem;line-height:1.5}.feature-card .card-summary:last-child,.feature-card p:last-child{margin-bottom:0}.card-bullets{margin:0;padding:0;list-style:none}.card-bullets li{color:var(--text-subtle);margin-bottom:.25rem;padding-left:1rem;font-size:.8rem;line-height:1.45;position:relative}.card-bullets li:last-child{margin-bottom:0}.card-bullets li:before{content:"›";color:var(--accent-primary);position:absolute;left:0}.card-category{color:var(--accent-tertiary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:.7rem;display:block}.card-action{color:var(--accent-primary);margin-top:.5rem;font-size:.9rem;text-decoration:none;transition:color .15s;display:inline-block}.card-action:hover{color:var(--accent-primary)}.project-gallery{max-width:36rem;margin:.25rem auto 2.5rem;padding:0}.gallery-frame{background-color:var(--bg-primary);border:1px solid var(--border-secondary);box-shadow:var(--shadow-md);border-radius:1rem;flex-direction:column;padding:1rem 1.25rem;display:flex;overflow:hidden}.gallery-header{color:var(--accent-primary);text-align:center;letter-spacing:.1em;font-size:1rem}.gallery-rule{border:none;border-top:1px solid var(--border-secondary);align-self:stretch;margin:.75rem -1.25rem}.gallery-body{justify-content:center;align-items:center;min-height:70vh;display:flex;position:relative}.gallery-video{object-fit:contain;border-radius:.5rem;max-width:100%;height:auto;max-height:70vh;animation:.45s cubic-bezier(.4,0,.2,1) both gallery-fade-in;display:block}@keyframes gallery-fade-in{0%{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:translateY(0)}}.gallery-nav{background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary);cursor:pointer;width:2.5rem;height:2.5rem;box-shadow:var(--shadow-sm);opacity:.9;z-index:10;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:monospace;font-size:1rem;line-height:1;transition:opacity .15s,border-color .15s,color .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav:hover{opacity:1;border-color:var(--accent-primary);color:var(--accent-primary)}.gallery-prev{left:0}.gallery-next{right:0}.gallery-footer{color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:1rem;font-size:.85rem;display:flex}.gallery-caption{margin:0;font-style:italic;animation:.45s cubic-bezier(.4,0,.2,1) both gallery-fade-in}.gallery-counter{font-variant-numeric:tabular-nums;color:var(--text-subtle);flex-shrink:0}.about-header{margin-bottom:2rem}.about-header h1{margin-bottom:.25rem}.about-header .tagline{color:var(--text-muted);margin-bottom:1.25rem;font-size:.9rem}.profile-links{flex-wrap:wrap;gap:.75rem;display:flex}.profile-link{color:var(--accent-primary);background-color:var(--bg-primary);border:1px solid var(--border-primary);box-shadow:var(--shadow-sm);border-radius:.4rem;padding:.4rem 1rem;font-size:.85rem;text-decoration:none;transition:border-color .2s,color .2s}.profile-link:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.tag-row{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;margin-bottom:1.25rem;display:flex}.tag{border:1px solid var(--border-primary);color:var(--text-subtle);letter-spacing:.02em;background:0 0;border-radius:.4rem;padding:.2rem .7rem;font-size:.78rem;transition:border-color .15s,color .15s}.tag:before{content:"#";color:var(--accent-primary);margin-right:.15rem}.tag:hover{border-color:var(--accent-primary);color:var(--text-primary)}.coming-soon{text-align:center;padding:3.75rem 1.5rem}.coming-soon h2{color:var(--text-muted);margin-bottom:.75rem;font-size:1rem}.coming-soon p{max-width:25rem;margin:0 auto}.form-page{background-color:var(--bg-primary);border:1px solid var(--border-secondary);max-width:25rem;box-shadow:var(--shadow-md);border-radius:1rem;margin:3.75rem auto 0;padding:2rem}.form-page h1{margin-bottom:.5rem;font-size:1.4rem}.form-page .subtitle{color:var(--text-muted);margin-bottom:2rem;font-size:.85rem}.form-group{margin-bottom:1rem}.form-group label{color:var(--text-muted);letter-spacing:.04em;margin-bottom:.375rem;font-size:.8rem;display:block}.form-group input{background-color:var(--bg-primary);border:1px solid var(--border-primary);width:100%;color:var(--text-primary);box-shadow:var(--shadow-sm);border-radius:.4rem;outline:none;padding:.625rem .75rem;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:300;transition:border-color .15s}.form-group input:focus{border-color:var(--accent-primary)}.btn-primary{background-color:var(--bg-primary);width:100%;color:var(--accent-primary);border:1px solid var(--accent-primary);letter-spacing:.05em;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:.4rem;margin-top:.5rem;padding:.6875rem;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:400;transition:color .15s,border-color .15s}.btn-primary:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.status-message{border-radius:.25rem;margin-top:1.25rem;padding:.75rem 1rem;font-size:.85rem}.status-message.success{border:1px solid var(--border-success);color:var(--color-success)}.status-message.error{border:1px solid var(--border-error);color:var(--color-error)}.password-hint-toggle{color:var(--text-muted);letter-spacing:.02em;margin-bottom:.75rem;font-size:.75rem}.password-hint-toggle summary{cursor:pointer;color:var(--text-muted);letter-spacing:.03em;padding:.25rem 0;font-size:.78rem}.password-hint-toggle ul{border-left:2px solid var(--accent-primary);margin:0;padding:.375rem 0 0 .75rem;font-size:.75rem;line-height:1.7;list-style:none}.privacy-content h2{color:var(--accent-tertiary);margin-top:1.75rem;margin-bottom:.5rem;font-size:1rem}.privacy-content p,.privacy-content ul{font-size:.85rem}.theme-switcher{align-items:center;gap:.75rem;height:1.85rem;line-height:1;display:flex}.theme-select{position:relative}.theme-select-trigger{cursor:pointer;-webkit-user-select:none;user-select:none;z-index:200;position:relative}.theme-backdrop{z-index:150;background:0 0;position:fixed;inset:0}.theme-select:after{content:"";width:100%;height:.5rem;position:absolute;top:100%;left:0}.theme-select-content{background:var(--bg-primary);border:1px solid var(--border-primary);z-index:200;min-width:11rem;max-height:70vh;box-shadow:var(--shadow-md);border-radius:.4rem;flex-direction:column;margin-top:.5rem;padding:.5rem 0;display:none;position:absolute;top:100%;right:0;overflow-y:auto}.theme-select-open .theme-select-content{display:flex}.theme-option{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:.4rem 1rem;font-family:inherit;font-size:.85rem;transition:background-color .15s,color .15s}.theme-option:hover{background-color:var(--border-primary);color:var(--text-primary)}.theme-option.active{color:var(--accent-primary)}.theme-select-label{border-top:1px solid var(--border-primary);color:var(--accent-primary);letter-spacing:.1em;margin-top:.4rem;padding:.4rem 1rem .25rem;font-size:.65rem}.theme-select-content>.theme-select-label:first-child{border-top:none;margin-top:0;padding-top:0}.mode-toggle{cursor:pointer}footer{text-align:center;color:var(--text-muted);background-color:var(--bg-primary);border-top:1px solid var(--accent-primary);box-shadow:var(--shadow-md);margin-top:3.75rem;padding:2rem 1.5rem;font-size:.78rem;animation:.3s ease-out .15s both content-enter}.fan-content-notice{max-width:42rem;color:var(--text-subtle);opacity:.75;margin:.85rem auto 0;font-size:.7rem;line-height:1.5}