:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bot: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}.pwa-status{position:sticky;top:0;z-index:80;padding-top:var(--safe-top);background:var(--bg, #f2ede4);background:color-mix(in oklab,var(--bg, #f2ede4) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--rule-soft, #ddd4c0)}.pwa-status-inner{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 var(--pad, 18px)}.pwa-brand{display:flex;align-items:center;gap:9px}.pwa-brand-mark{width:30px;height:30px;border-radius:50%;background:var(--ink, #1a1712);color:var(--bg, #f2ede4);display:grid;place-items:center;font-family:var(--font-display, "Instrument Serif", serif);font-size:20px;font-style:italic;position:relative}.pwa-brand-mark:after{content:"";position:absolute;inset:-3px;border:1px solid var(--ink, #1a1712);opacity:.25;border-radius:50%}.pwa-brand-text{font-family:var(--font-display, "Instrument Serif", serif);font-size:20px;letter-spacing:.01em}.pwa-brand-text .dot{color:var(--accent, #c24a1f)}.pwa-status-right{display:flex;align-items:center;gap:10px}.pwa-conn-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--paper, #fbf7ef);border:1px solid var(--rule-soft, #ddd4c0);font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft, #423c32)}.pwa-conn-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--ok, #3a6a3f)}.pwa-conn-pill.offline .dot{background:#c14a3a;animation:none}.pwa-search-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--rule, #c9bfac);display:grid;place-items:center;color:var(--ink-soft, #423c32);background:transparent;cursor:pointer}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:90;padding-bottom:var(--safe-bot);background:var(--bg, #f2ede4);background:color-mix(in oklab,var(--bg, #f2ede4) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--rule-soft, #ddd4c0)}.tabbar-inner{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;height:62px}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-dim, #6b6358);position:relative;background:none;border:none;cursor:pointer;font:inherit}.tab svg{width:22px;height:22px}.tab .lbl{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:9px;letter-spacing:.1em;text-transform:uppercase}.tab.active{color:var(--accent, #c24a1f)}.tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:18px;height:2px;background:var(--accent, #c24a1f);border-radius:2px}.tab:active{transform:scale(.92)}.install-banner{position:fixed;left:12px;right:12px;bottom:calc(76px + var(--safe-bot));z-index:95;background:var(--ink, #1a1712);color:var(--bg, #f2ede4);padding:12px 14px;border-radius:12px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 32px #0000002e;transform:translateY(120%);transition:transform .35s cubic-bezier(.2,.9,.3,1.2)}.install-banner.show{transform:translateY(0)}.install-banner .ic{width:40px;height:40px;border-radius:8px;background:var(--accent, #c24a1f);display:grid;place-items:center;font-family:var(--font-display, "Instrument Serif", serif);font-style:italic;font-size:24px;color:var(--bg, #f2ede4);flex-shrink:0}.install-banner .txt{flex:1;font-size:13px;line-height:1.3}.install-banner .txt strong{display:block;font-family:var(--font-display, "Instrument Serif", serif);font-size:18px;font-weight:400;font-style:italic}.install-banner button{padding:7px 12px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:var(--accent, #c24a1f);color:var(--bg, #f2ede4);border-radius:999px;border:none;cursor:pointer}.install-banner .x{padding:6px 8px;background:transparent;color:var(--ink-dim, #6b6358);font-size:18px}.offline-toast{position:fixed;left:12px;right:12px;top:calc(56px + var(--safe-top) + 8px);z-index:95;background:#c14a3a;color:#fff;padding:10px 14px;border-radius:8px;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;letter-spacing:.1em;text-transform:uppercase;text-align:center;opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .25s ease,transform .35s cubic-bezier(.2,.9,.3,1.2)}.offline-toast.show{opacity:1;pointer-events:auto;transform:translateY(0)}.splash{position:fixed;inset:0;z-index:1000;background:var(--ink, #1a1712);display:grid;place-items:center;transition:opacity .4s ease,visibility .4s}.splash.gone{opacity:0;visibility:hidden;pointer-events:none}.splash-inner{text-align:center;color:var(--bg, #f2ede4)}.splash-N{font-family:var(--font-display, "Instrument Serif", serif);font-style:italic;font-size:120px;line-height:1;color:var(--bg, #f2ede4);animation:neua-splash-in .8s cubic-bezier(.2,.9,.3,1)}.splash-w{font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:11px;letter-spacing:.3em;color:var(--accent, #c24a1f);margin-top:8px;opacity:0;animation:neua-fade-in .6s .3s forwards}.splash-bar{width:120px;height:2px;background:#ffffff1f;margin:24px auto 0;border-radius:99px;overflow:hidden}.splash-bar:after{content:"";display:block;width:30%;height:100%;background:var(--accent, #c24a1f);animation:neua-splash-bar 1.4s ease-in-out infinite}@keyframes neua-splash-in{0%{transform:translateY(20px) scale(.9);opacity:0}}@keyframes neua-fade-in{to{opacity:1}}@keyframes neua-splash-bar{0%{transform:translate(-100%)}to{transform:translate(420%)}}@media(prefers-reduced-motion:reduce){.splash-N,.splash-w,.splash-bar:after,.install-banner,.offline-toast{animation:none!important;transition:none!important}}.pwa-mobile-frame{display:flex;flex-direction:column;min-height:100dvh}.pwa-mobile-frame-content{flex:1;padding-bottom:calc(64px + var(--safe-bot));min-height:0}.pwa-mobile-frame--hide-tabs .pwa-mobile-frame-content{padding-bottom:var(--safe-bot)}.pwa-mobile-frame--hide-tabs .install-banner{bottom:calc(12px + var(--safe-bot))}
