:root{--bg:#0b0d0b;--surface:#10130f;--surface-2:#141812;--surface-3:#181d15;--nav-bg:#080a08;--nav-border:#ffffff12;--ink:#c6cfbb;--ink-mid:#93a088;--ink-dim:#5e6b57;--ink-faint:#394234;--accent:#6fcf5f;--accent-l:#8adf7b;--accent-soft:#6fcf5f1f;--accent-glow:#6fcf5f38;--ai:#d4aa28;--ai-soft:#d4aa2824;--grimroot:#c792ea;--grimroot-s:#c792ea24;--pgp:#56b6c2;--pgp-s:#56b6c224;--personal:#98c379;--personal-s:#98c37924;--red:#e06c75;--red-s:#e06c7529;--success:#22c55e;--success-glow:#22c55e80;--border:#1d231b;--border-light:#232b21;--sel:#16200f;--scrim:#17150e73;--glass-ink:#17150ed1;--canvas-bg:#0f0e0b;--canvas-panel:#0b0a08eb;--canvas-panel-strong:#0b0a08fa;--canvas-grid-minor:#ffffff0f;--canvas-grid-major:#ffffff14;--sticky-yellow:#fef9c3;--sticky-yellow-glass:#fef9c3e6;--white-3:#ffffff08;--white-5:#ffffff0d;--white-6:#ffffff0f;--white-7:#ffffff12;--white-8:#ffffff14;--white-10:#ffffff1a;--white-14:#ffffff24;--white-20:#fff3;--white-28:#ffffff47;--white-30:#ffffff4d;--white-35:#ffffff59;--white-40:#fff6;--white-55:#ffffff8c;--white-60:#fff9;--white-70:#ffffffb3;--white-85:#ffffffd9;--white-90:#ffffffe6;--white-92:#ffffffeb;--black-40:#0006;--shadow-sm:none;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #000000a6;--r-xl:6px;--r-lg:4px;--r:2px;--r-sm:0px;--r-pill:100px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--ease:cubic-bezier(.4, 0, .2, 1);--duration:.2s}:root[data-theme=light]{--bg:#f2f0e8;--surface:#faf8f2;--surface-2:#ece9e0;--surface-3:#e4e1d6;--nav-bg:#e9e6dc;--nav-border:#232b2114;--ink:#232b21;--ink-mid:#4a5544;--ink-dim:#77816e;--ink-faint:#a8b0a0;--accent:#2e7d32;--accent-l:#3e9142;--accent-soft:#2e7d321a;--accent-glow:#2e7d322e;--ai:#8a6d0b;--ai-soft:#8a6d0b1f;--grimroot:#a626a4;--grimroot-s:#a626a41a;--pgp:#0184bc;--pgp-s:#0184bc1a;--personal:#50a14f;--personal-s:#50a14f1f;--red:#e45649;--red-s:#e456491f;--border:#d9d5c9;--border-light:#e2dfd4;--sel:#e6efdd;--shadow-sm:none;--shadow-md:0 4px 14px #232b211a;--shadow-lg:0 8px 28px #232b2124}@font-face{font-family:Terminess Nerd Font;src:url(/fonts/TerminessNF-Regular-latin.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Terminess Nerd Font;src:url(/fonts/TerminessNF-Bold-latin.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Terminess Nerd Font;src:url(/fonts/TerminessNF-Italic-latin.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--font-ui:"Terminess Nerd Font", "Martian Mono", Menlo, Consolas, monospace;--font-mono:var(--font-ui);--font-display:var(--font-ui)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-ui);color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5}body{min-height:100dvh;overflow-x:hidden}a{color:var(--accent);text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:none;outline:none}img{max-width:100%;display:block}img.pixel-art{image-rendering:pixelated;image-rendering:crisp-edges}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--ink-faint);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--ink-dim)}::selection{background:var(--accent-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}#root{min-height:100dvh}.app-screen{background-color:var(--bg);max-width:430px;padding-top:env(safe-area-inset-top);flex-direction:column;margin:0 auto;display:flex;position:fixed;inset:0;overflow:hidden}.screen-scroll{-webkit-overflow-scrolling:touch;z-index:1;flex:1;min-height:0;position:relative;overflow-y:auto}.screen-scroll::-webkit-scrollbar{display:none}.fm-topbar{background-color:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;height:52px;padding:0 16px;display:flex}.fm-topbar-title{font-family:var(--font-display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:20px;font-style:italic;overflow:hidden}.fm-topbar-switcher{flex-shrink:0}.fm-topbar-btn{background-color:var(--surface-2);border:1px solid var(--border);width:32px;height:32px;color:var(--ink-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pull-hint{text-align:center;font-family:var(--font-mono);color:var(--ink-faint);background-color:var(--bg);flex-shrink:0;padding:5px;font-size:9px}.login-page{background-color:var(--bg);min-height:100dvh;padding:var(--space-md);justify-content:center;align-items:center;display:flex}.login-form{gap:var(--space-sm);flex-direction:column;width:100%;max-width:360px;display:flex}.login-wordmark{font-family:var(--font-display);color:var(--ink);text-align:center;margin-bottom:var(--space-xs);font-size:2.5rem;font-style:italic;font-weight:400}.login-subtitle{font-family:var(--font-ui);color:var(--ink-dim);text-align:center;margin-bottom:var(--space-lg);font-size:.875rem}.login-error{color:var(--red);background-color:var(--red-s);padding:var(--space-sm) var(--space-md);border-radius:var(--r);font-size:.8125rem}.login-status{color:var(--ink-mid);background-color:var(--surface-2)}.login-label{font-family:var(--font-mono);color:var(--ink-mid);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--space-sm);font-size:.75rem;font-weight:500}.login-input{width:100%;padding:var(--space-sm) var(--space-md);color:var(--ink);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r);transition:border-color var(--duration) var(--ease);font-size:1rem}.login-input:focus{border-color:var(--accent);outline:none}.login-button{margin-top:var(--space-lg);padding:var(--space-sm) var(--space-md);font-family:var(--font-ui);color:var(--surface);background-color:var(--accent);border-radius:var(--r);transition:opacity var(--duration) var(--ease);font-size:.9375rem;font-weight:600}.login-button-secondary{margin-top:var(--space-xs);color:var(--ink-mid);background-color:var(--surface-2);border:1px solid var(--border)}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.5;cursor:not-allowed}
