@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);max-width:100vw;min-height:100vh;font-family:JetBrains Mono,monospace;font-weight:400;line-height:1.6}a{color:var(--accent-primary);text-underline-offset:3px;text-decoration:underline}a:hover{color:var(--accent-secondary)}.page{max-width:60rem;margin:0 auto;padding:0 1.5rem 5rem}.nav-wrapper{z-index:100;background-color:var(--border-secondary);border-bottom:1px solid var(--border-primary);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-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}.nav-brand:hover .nav-logo{letter-spacing:1px;color:var(--accent-secondary)}.nav-brand img{border-radius:.375rem;width:1.75rem;height:1.75rem}.nav-links{align-items:center;gap:1.5rem;list-style:none;display:flex}.nav-links a{color:var(--text-muted);letter-spacing:.04em;font-size:.85rem;text-decoration:none;transition:color .15s}.nav-links a:hover,.nav-links a.active{color:var(--accent-primary)}.nav-links .store-link{color:var(--accent-primary);border:1px solid var(--border-primary);white-space:nowrap;border-radius:.4rem;padding:.25rem .75rem;font-size:.8rem;transition:border-color .2s,color .2s}.nav-links .store-link:hover{color:var(--accent-secondary);border-color:var(--accent-primary)}@media (width<=35rem){nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;padding:1rem .75rem;overflow-x:auto}nav::-webkit-scrollbar{display:none}.nav-links{gap:.625rem}.nav-links a{font-size:.75rem}.nav-links .store-link{padding:.1875rem .5rem;font-size:.7rem}}.section{margin-bottom:2.5rem}.card{background:var(--border-secondary);border:1px solid var(--border-primary);border-radius:.4rem;padding:1.5rem;transition:border-color .2s}.card:hover{border-color:var(--accent-primary)}.card h3{color:var(--text-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-primary);background:var(--bg-primary);border-radius:.5rem;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(--border-secondary);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-secondary)}.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(--border-secondary);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{border:1px solid var(--border-secondary);background-color:rgba(222,205,216,.08);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 0;overflow:hidden}.hero .tagline{color:var(--text-primary);max-width:30rem;margin:1rem auto;font-size:.95rem}.store-btn{color:var(--accent-primary);border:1px solid var(--border-primary);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-secondary);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{margin-top:2.5rem}@media (width<=60rem){.card-grid,.features-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:var(--border-secondary);border:1px solid var(--border-primary);border-radius:.4rem;padding:1.5rem;transition:border-color .2s}.feature-card:hover{border-color:var(--accent-primary)}.feature-card .card-title,.feature-card h3{color:var(--text-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-secondary)}.project-gallery{max-width:36rem;margin:2rem auto 2.5rem;padding:0}.gallery-frame{background:linear-gradient(rgba(0,0,0,.18), rgba(0,0,0,.18)), var(--bg-primary);border:1px solid var(--border-muted);border-radius:.4rem;justify-content:center;align-items:center;min-height:70vh;display:flex;position:relative;overflow:hidden}.gallery-video{object-fit:contain;max-width:100%;height:auto;max-height:70vh;animation:.45s cubic-bezier(.4,0,.2,1) both gallery-fade-in;display:block}.gallery-caption{animation:.45s cubic-bezier(.4,0,.2,1) both gallery-fade-in}@keyframes gallery-fade-in{0%{opacity:0;transform:translateY(.25rem)}to{opacity:1;transform:translateY(0)}}.gallery-nav{background:var(--border-secondary);color:var(--text-primary);border:1px solid var(--border-primary);cursor:pointer;opacity:.75;z-index:10;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;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:.75rem}.gallery-next{right:.75rem}.gallery-meta{color:var(--text-muted);justify-content:space-between;align-items:baseline;gap:1rem;margin-top:.75rem;font-size:.85rem;display:flex}.gallery-caption{margin:0;font-style:italic}.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);border:1px solid var(--border-primary);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-secondary)}.tag-row{flex-wrap:wrap;gap:.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{max-width:25rem;margin:3.75rem auto 0;padding:0 1.5rem}.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{border:1px solid var(--border-secondary);width:100%;color:var(--text-primary);background-color:transparent;border-radius:.25rem;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{width:100%;color:var(--accent-primary);border:1px solid var(--accent-primary);letter-spacing:.05em;cursor:pointer;background-color:transparent;border-radius:.25rem;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-secondary);border-color:var(--accent-secondary)}.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;display:flex}.theme-select{position:relative}.theme-select-trigger{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.85rem}.theme-select:after{content:"";width:100%;height:.5rem;position:absolute;top:100%;left:0}.theme-select-content{background:var(--border-secondary);border:1px solid var(--border-primary);z-index:200;border-radius:.4rem;flex-direction:column;min-width:11rem;max-height:70vh;margin-top:.5rem;padding:.5rem 0;display:none;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,.25)}.theme-select:hover .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)}.mode-toggle{border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:.4rem;padding:.2rem .55rem;font-family:inherit;font-size:.85rem;transition:border-color .15s,color .15s}.mode-toggle:hover{border-color:var(--accent-primary);color:var(--accent-primary)}footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--accent-primary);margin-top:3.75rem;padding:2rem 1.5rem;font-size:.78rem;animation:.3s ease-out .15s both content-enter}