:root{--c-paper-50:#faf7f2;--c-paper-100:#f4f0e8;--c-paper-200:#f0ebe2;--c-paper-300:#e4ded4;--c-paper-400:#c9c1b6;--c-ink-900:#2a2622;--c-ink-700:#33302a;--c-ink-600:#5a5249;--c-ink-500:#5a534b;--c-sage-800:#2f5136;--c-sage-100:#e3ebe4;--c-gold-800:#6d4615;--c-gold-100:#f6ebdc;--c-clay-800:#763932;--c-clay-100:#f2e4e1;--c-red-800:#8e2119;--c-red-100:#fae8e5;--c-art-vessel:#4f6b57;--c-art-protein:#b07a2e;--c-art-neutral:#efe4d3;--c-art-steam:#7e9584;--c-art-body:#a79e93;--c-art-prop:#c4cfc6;--bg-page:var(--c-paper-50);--bg-card:#fff;--bg-sunk:var(--c-paper-100);--bg-selected:var(--c-paper-200);--border-subtle:var(--c-paper-300);--border-strong:var(--c-paper-400);--text-primary:var(--c-ink-900);--text-secondary:var(--c-ink-600);--text-muted:var(--c-ink-500);--action:var(--c-ink-700);--action-on:var(--c-paper-50);--state-green-fill:var(--c-sage-100);--state-green-ink:var(--c-sage-800);--state-amber-fill:var(--c-gold-100);--state-amber-ink:var(--c-gold-800);--state-rest-fill:var(--c-clay-100);--state-rest-ink:var(--c-clay-800);--alarm-fill:var(--c-red-100);--alarm-ink:var(--c-red-800);--alarm-on:var(--c-paper-50);--art-vessel:var(--c-art-vessel);--art-protein:var(--c-art-protein);--art-neutral:var(--c-art-neutral);--art-steam:var(--c-art-steam);--art-body:var(--c-art-body);--art-prop:var(--c-art-prop);--f-display:"Newsreader",Georgia,"Times New Roman",serif;--f-body:"Source Sans 3","Helvetica Neue",Arial,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,monospace;--f-cjk:"Noto Sans SC","PingFang SC",sans-serif;--t-sentence:34px;--t-title:26px;--t-card:19px;--t-body:19px;--t-sub:16px;--t-label:12px;--t-micro:12px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--r-sm:12px;--r-md:16px;--r-lg:24px;--r-pill:999px;--touch:60px;--gutter:18px;--stroke-sm:1.8px;--stroke-md:3px;--stroke-lg:5.5px;--shadow-1:0 1px 2px #2a26220d;--shadow-2:0 1px 2px #2a26220d, 0 8px 24px -12px #2a26222e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--c-paper-50:#1b1917;--c-paper-100:#2d2a27;--c-paper-200:#332f2b;--c-paper-300:#38332f;--c-paper-400:#4c4640;--c-ink-900:#ede7de;--c-ink-700:#e8e1d6;--c-ink-600:#b7aea3;--c-ink-500:#b2aba2;--c-sage-800:#a8cbae;--c-sage-100:#232c26;--c-gold-800:#e7bb7e;--c-gold-100:#302719;--c-clay-800:#e5a79e;--c-clay-100:#2e211d;--c-red-800:#f09487;--c-red-100:#341c19;--c-art-vessel:#9db8a3;--c-art-protein:#dfae6a;--c-art-neutral:#3a342e;--c-art-steam:#7e9584;--c-art-body:#6e655c;--c-art-prop:#3f4a41;--bg-card:#242120;--action-on:#1b1917;--alarm-on:#1b1917;--shadow-1:0 1px 2px #00000059;--shadow-2:0 1px 2px #00000059, 0 8px 24px -12px #0009}}:root[data-theme=dark]{--c-paper-50:#1b1917;--c-paper-100:#2d2a27;--c-paper-200:#332f2b;--c-paper-300:#38332f;--c-paper-400:#4c4640;--c-ink-900:#ede7de;--c-ink-700:#e8e1d6;--c-ink-600:#b7aea3;--c-ink-500:#b2aba2;--c-sage-800:#a8cbae;--c-sage-100:#232c26;--c-gold-800:#e7bb7e;--c-gold-100:#302719;--c-clay-800:#e5a79e;--c-clay-100:#2e211d;--c-red-800:#f09487;--c-red-100:#341c19;--c-art-vessel:#9db8a3;--c-art-protein:#dfae6a;--c-art-neutral:#3a342e;--c-art-steam:#7e9584;--c-art-body:#6e655c;--c-art-prop:#3f4a41;--bg-card:#242120;--action-on:#1b1917;--alarm-on:#1b1917;--shadow-1:0 1px 2px #00000059;--shadow-2:0 1px 2px #00000059, 0 8px 24px -12px #0009}.tod-dawn{--sky-top:#f6d9c4;--sky-bottom:#fbeedc;--sky-orb:#e9a66b;--sky-far:#c6bba6;--sky-near:#afae8e;--sky-light:#e8b98a}.tod-day{--sky-top:#cfe2e4;--sky-bottom:#eaf1e9;--sky-orb:#f0dfa8;--sky-far:#a8bfa6;--sky-near:#8faa8b;--sky-light:#dccb93}.tod-evening{--sky-top:#e8c4a0;--sky-bottom:#f7e4cd;--sky-orb:#de9256;--sky-far:#b6a492;--sky-near:#96907a;--sky-light:#dfa76e}.tod-night{--sky-top:#2e3a46;--sky-bottom:#4a5563;--sky-orb:#e3e2d2;--sky-far:#39424c;--sky-near:#2b333b;--sky-light:#8899a8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tod-dawn{--sky-top:#8a6a55;--sky-bottom:#a98668;--sky-orb:#d89a63;--sky-far:#4e4638;--sky-near:#3b3a2f;--sky-light:#b98a5e}:root:not([data-theme=light]) .tod-day{--sky-top:#5e7378;--sky-bottom:#7c8f86;--sky-orb:#cdbe8c;--sky-far:#3f4e40;--sky-near:#32402f;--sky-light:#9e9268}:root:not([data-theme=light]) .tod-evening{--sky-top:#8a6146;--sky-bottom:#a87c55;--sky-orb:#c97f45;--sky-far:#4a4034;--sky-near:#38332a;--sky-light:#b57c4e}:root:not([data-theme=light]) .tod-night{--sky-top:#1e262e;--sky-bottom:#2c3641;--sky-orb:#cfcfc0;--sky-far:#242b32;--sky-near:#1b2127;--sky-light:#5e6e7c}}:root[data-theme=dark] .tod-dawn{--sky-top:#8a6a55;--sky-bottom:#a98668;--sky-orb:#d89a63;--sky-far:#4e4638;--sky-near:#3b3a2f;--sky-light:#b98a5e}:root[data-theme=dark] .tod-day{--sky-top:#5e7378;--sky-bottom:#7c8f86;--sky-orb:#cdbe8c;--sky-far:#3f4e40;--sky-near:#32402f;--sky-light:#9e9268}:root[data-theme=dark] .tod-evening{--sky-top:#8a6146;--sky-bottom:#a87c55;--sky-orb:#c97f45;--sky-far:#4a4034;--sky-near:#38332a;--sky-light:#b57c4e}:root[data-theme=dark] .tod-night{--sky-top:#1e262e;--sky-bottom:#2c3641;--sky-orb:#cfcfc0;--sky-far:#242b32;--sky-near:#1b2127;--sky-light:#5e6e7c}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg-page);color:var(--text-primary);font-family:var(--f-body);font-size:var(--t-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}#root{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;display:flex}button{cursor:pointer;font-family:inherit}:focus-visible{outline:3px solid var(--text-primary);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.screen{padding:var(--s-3) var(--gutter) 28px;flex-direction:column;flex:1;gap:0;display:flex}.sentence{font-family:var(--f-display);font-weight:500;font-size:clamp(26px,7vw,var(--t-sentence));letter-spacing:-.01em;margin:0 0 var(--s-2);text-wrap:balance;line-height:1.25}.sub{font-size:var(--t-sub);color:var(--text-secondary);margin:0 0 var(--s-4);line-height:1.5}.label{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.13em;text-transform:uppercase;color:var(--text-muted);margin:var(--s-4) 0 var(--s-2)}.btn{width:100%;min-height:var(--touch);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--action);color:var(--action-on);border:none;justify-content:center;align-items:center;font-size:17px;font-weight:600;display:flex}.btn.ghost{color:var(--text-secondary);border:1.5px solid var(--border-strong);background:0 0}.btn.alarm{background:var(--alarm-ink);color:var(--alarm-on);font-weight:700}.btn.quiet{color:var(--text-muted);min-height:var(--touch);background:0 0;border:none;font-size:16px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:var(--s-4);box-shadow:var(--shadow-1)}.card.next{border:1.5px solid var(--action);background:var(--bg-selected)}.card-time{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--text-muted);letter-spacing:.06em}.card-title{margin:5px 0 3px;font-size:18px;font-weight:600;line-height:1.35}.card-sub{color:var(--text-secondary);font-size:15px;line-height:1.45}.opt{align-items:center;gap:var(--s-3);text-align:left;width:100%;min-height:var(--touch);border:1.5px solid var(--border-strong);border-radius:var(--r-md);padding:var(--s-4);background:var(--bg-card);color:var(--text-primary);margin-bottom:11px;font-size:18px;font-weight:500;display:flex}.opt[aria-pressed=true]{border-color:var(--action);background:var(--bg-selected);font-weight:600}.opt .radio{border:2px solid var(--border-strong);border-radius:50%;flex:none;width:22px;height:22px}.opt[aria-pressed=true] .radio{border-color:var(--action);background:var(--action);box-shadow:inset 0 0 0 3.5px var(--bg-selected)}.triad{margin-top:var(--s-4);grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.triad button{min-height:var(--touch);border:1.5px solid var(--border-strong);border-radius:var(--r-md);padding:var(--s-3) 6px;background:var(--bg-card);color:var(--text-primary);font-size:14.5px;font-weight:500;line-height:1.3}.triad button[aria-pressed=true]{border-color:var(--action);background:var(--bg-selected);color:var(--action);font-weight:600}.statechip{border-radius:var(--r-pill);border:1px solid;align-items:center;gap:8px;padding:6px 14px 6px 11px;font-size:14.5px;font-weight:600;display:inline-flex}.statechip .glyph{flex:none;width:12px;height:12px}.st-green{background:var(--state-green-fill);color:var(--state-green-ink);border-color:var(--state-green-ink)}.st-green .glyph{background:var(--state-green-ink);border-radius:50%}.st-amber{background:var(--state-amber-fill);color:var(--state-amber-ink);border-color:var(--state-amber-ink)}.st-amber .glyph{background:var(--state-amber-ink);clip-path:polygon(50% 0,100% 100%,0 100%)}.st-rest{background:var(--state-rest-fill);color:var(--state-rest-ink);border-color:var(--state-rest-ink)}.st-rest .glyph{background:var(--state-rest-ink);border-radius:2px}.daybar{padding:var(--s-2) 0 var(--s-3);color:var(--text-secondary);align-items:center;gap:10px;font-size:14px;display:flex}.daybar b{color:var(--text-primary);font-weight:600}.tabbar{border-top:1px solid var(--border-subtle);background:var(--bg-sunk);grid-template-columns:repeat(4,1fr);display:grid;position:sticky;bottom:0}.tabbar button{min-height:var(--touch);color:var(--text-muted);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:9px 2px 11px;font-size:12.5px;display:flex}.tabbar button[aria-current=page]{color:var(--action);font-weight:600}.tabbar svg{display:block}.steps{gap:var(--s-4);margin:var(--s-4) 0;flex-direction:column;display:flex}.step{gap:var(--s-3);align-items:flex-start;display:flex}.step-n{background:var(--bg-sunk);border:1px solid var(--border-subtle);width:28px;height:28px;font-family:var(--f-mono);color:var(--text-secondary);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:2px;font-size:13px;display:flex}.step-t{font-size:18px;line-height:1.55}.sos-card{border:1.5px solid var(--alarm-ink);background:var(--alarm-fill);border-radius:var(--r-md);padding:var(--s-4);margin-bottom:var(--s-3)}.sos-card .h{color:var(--alarm-ink);margin-bottom:5px;font-size:18px;font-weight:700;line-height:1.3}.sos-card .b{color:var(--text-secondary);font-size:15.5px;line-height:1.5}.sos-zh{font-family:var(--f-cjk);color:var(--text-secondary);border-top:1px solid var(--border-subtle);margin-top:10px;padding-top:10px;font-size:15px;line-height:1.7}.flagline{color:var(--text-secondary);gap:10px;margin-bottom:10px;font-size:16px;line-height:1.5;display:flex}.flagline:before{content:"";background:var(--alarm-ink);border-radius:50%;flex:none;width:6px;height:6px;margin-top:9px}.chip{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.08em;text-transform:uppercase;background:var(--bg-sunk);color:var(--text-secondary);border:1px solid var(--border-subtle);margin-bottom:var(--s-2);border-radius:3px;padding:3px 9px;display:inline-block}.chip.warm{background:var(--state-amber-fill);color:var(--state-amber-ink);border-color:var(--state-amber-ink)}.chip.review{background:var(--bg-sunk);color:var(--text-secondary);border-color:var(--border-strong);text-transform:none;letter-spacing:.01em;font-family:var(--f-body)}.closing{color:var(--text-muted);text-align:center;margin:var(--s-5) 0 var(--s-2);font-size:14.5px;line-height:1.5}.appbar{z-index:40;padding:calc(env(safe-area-inset-top) + 6px) var(--gutter) 6px;background:color-mix(in srgb, var(--bg-page) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;display:flex;position:sticky;top:0}.appbar .spacer{flex:1}.sosbtn{border-radius:var(--r-pill);border:1.5px solid var(--border-strong);background:var(--bg-card);min-height:44px;color:var(--text-secondary);letter-spacing:.01em;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;display:inline-flex}.sosbtn.urgent{border-color:var(--alarm-ink);color:var(--alarm-ink);background:var(--alarm-fill);font-weight:700}.tabbar{padding-bottom:env(safe-area-inset-bottom)}.ribbon{gap:4px;margin:6px 0 4px;display:flex}.ribbon i{border-radius:5px;flex:1;height:42px;display:block}.rb-g{background:var(--state-green-ink)}.rb-a{background:var(--state-amber-ink)}.rb-r{background:var(--state-rest-ink)}.rb-none{background:var(--bg-sunk);border:1px dashed var(--border-strong)}.rb-future{border:1px solid var(--border-subtle);background:0 0}.ribscale{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--text-muted);gap:4px;display:flex}.ribscale span{text-align:center;flex:1}@media print{.tabbar,.appbar,button{display:none!important}body{color:#000;background:#fff}#root{max-width:none}.screen{padding:0}.rb-none{background:#eee}}.daystrip{gap:4px;margin:2px 0 16px;display:flex}.daystrip i{background:var(--border-subtle);border-radius:3px;flex:1;height:5px}.daystrip i.past{background:var(--border-strong)}.daystrip i.on{background:var(--action)}.hero{border:1.5px solid var(--action);background:var(--bg-selected);border-radius:var(--r-lg);margin-bottom:6px;overflow:hidden}.hero-art{background:var(--bg-card);justify-content:center;align-items:center;padding:18px 0;display:flex}.hero-body{padding:15px 16px 16px}.hero-time{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.08em;color:var(--action);font-weight:500}.hero-title{letter-spacing:-.005em;margin:5px 0 4px;font-size:23px;font-weight:600;line-height:1.25}.hero-sub{color:var(--text-secondary);margin:0;font-size:15.5px;line-height:1.45}.strip{scroll-snap-type:x proximity;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter) 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.strip::-webkit-scrollbar{display:none}.sq{width:80px;min-height:var(--touch);scroll-snap-align:start;border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-card);flex-direction:column;flex:none;align-items:center;gap:3px;padding:9px 4px 8px;display:flex}.sq b{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;font-weight:600;line-height:1.2;overflow:hidden}.sq span{font-family:var(--f-mono);font-size:var(--t-micro);color:var(--text-muted)}.sq.done{opacity:.42}.card.row{width:100%;min-height:var(--touch);align-items:center;gap:13px;display:flex}.linkish{font-family:var(--f-mono);font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--action);background:0 0;border:none;min-height:44px;margin-left:auto;padding:0 2px}.dayline{font-family:var(--f-display);color:var(--text-secondary);text-wrap:balance;margin:20px 0 4px;font-size:17px;line-height:1.45}.window-art{width:calc(100% + var(--gutter) * 2);margin:calc(var(--s-3) * -1) calc(var(--gutter) * -1) var(--s-3);border-bottom:1px solid var(--border-subtle);display:block}.fact{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-sm);margin-bottom:9px;padding:14px 16px}.fact-line{color:var(--text-primary);margin:0;font-size:17px;line-height:1.45}.fact-value{font-family:var(--f-mono);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:14px}.fact-raise{color:var(--state-amber-ink);margin:8px 0 0;font-size:14.5px;font-weight:600}.onboarding{text-align:center}.onboarding>*{align-self:center}.ob-actions{align-self:stretch;width:100%;margin-top:auto}.onboarding .sentence,.onboarding .sub,.onboarding .ob-note{max-width:34ch}.ob-dots{padding:var(--s-3) 0 var(--s-5);gap:7px;display:flex}.ob-dots i{background:var(--border-subtle);border-radius:3px;width:26px;height:5px}.ob-dots i.past{background:var(--border-strong)}.ob-dots i.on{background:var(--action)}.ob-art{width:180px;height:150px;margin-bottom:var(--s-5);justify-content:center;align-items:center;display:flex}.ob-art svg{width:100%;height:100%}.ob-sub{font-family:var(--f-display);margin:0 0 var(--s-3);letter-spacing:-.01em;font-size:24px;font-weight:500;line-height:1.3}.ob-note{color:var(--text-muted);margin:var(--s-3) 0 0;font-size:15.5px;line-height:1.5}.state-screen{text-align:center;justify-content:center;align-items:center;gap:var(--s-3);padding:var(--s-6) var(--s-4);flex-direction:column;flex:1;display:flex}.state-screen .art{width:120px;height:100px}.state-screen .art svg{width:100%;height:100%}.state-screen h3{font-family:var(--f-display);margin:0;font-size:22px;font-weight:500}.state-screen p{color:var(--text-secondary);max-width:30ch;margin:0;font-size:16px;line-height:1.5}
