:root{color-scheme:dark;--color-paper: oklch(15.5% .006 60);--color-paper-2: oklch(19% .007 60);--color-paper-3: oklch(23% .008 60);--color-paper-4: oklch(27% .009 60);--color-rule: oklch(31% .008 60);--color-rule-soft: oklch(24% .007 60);--color-ink: oklch(95.5% .008 75);--color-ink-2: oklch(76% .012 70);--color-ink-3: oklch(58% .012 65);--color-ink-4: oklch(44% .01 60);--color-accent: oklch(68% .185 45);--color-accent-hot: oklch(78% .165 62);--color-accent-ink: oklch(17% .03 45);--color-accent-wash: oklch(68% .185 45 / .12);--color-accent-line: oklch(68% .185 45 / .45);--color-ok: oklch(76% .12 160);--color-ok-wash: oklch(76% .12 160 / .12);--color-warn: oklch(82% .13 85);--color-danger: oklch(66% .19 25);--color-focus: oklch(80% .15 62);--color-scrim: oklch(8% .005 60 / .72);--font-display: "Archivo", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.375rem;--text-display: 3.5rem;--space-3xs: 2px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 20px;--space-xl: 28px;--space-2xl: 40px;--space-3xl: 56px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--rule-hair: 1px solid var(--color-rule-soft);--rule: 1px solid var(--color-rule);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in: cubic-bezier(.55, 0, 1, .45);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .14s;--dur-mid: .24s;--dur-slow: .42s;--tabbar-h: 64px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html,body{overflow-x:clip}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-paper);color:var(--color-ink);font:400 var(--text-md)/1.45 var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,h3{font-family:var(--font-display);font-style:normal;margin:0;overflow-wrap:anywhere;min-width:0}.shell{min-height:100dvh;display:flex;flex-direction:column}.screen{flex:1;padding:calc(var(--safe-top) + var(--space-md)) var(--space-md) calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-xl));max-width:560px;width:100%;margin:0 auto}.topline{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-lg)}.wordmark{font:700 var(--text-sm)/1 var(--font-display);font-stretch:112%;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:var(--space-xs)}.wordmark i{width:10px;height:10px;background:var(--color-accent);display:inline-block}.screen-title{font-size:var(--text-2xl);font-weight:700;font-stretch:110%;letter-spacing:-.01em;line-height:1.05;margin-bottom:var(--space-2xs)}.screen-sub{color:var(--color-ink-3);font-size:var(--text-sm);margin:0 0 var(--space-lg)}.tabbar{position:fixed;inset:auto 0 0;z-index:20;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#0e0c0adb;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-top:var(--rule-hair)}.tab{background:none;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--color-ink-4);font:500 var(--text-2xs)/1 var(--font-body);letter-spacing:.02em;position:relative;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out)}.tab svg{width:22px;height:22px}.tab[aria-selected=true]{color:var(--color-ink)}.tab[aria-selected=true] svg{color:var(--color-accent)}.tab:active{transform:scale(.96)}.tab .dot{position:absolute;top:9px;left:calc(50% + 9px);min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);font:600 10px/16px var(--font-mono);text-align:center}.source{display:inline-flex;align-items:center;gap:6px;font:500 var(--text-2xs)/1 var(--font-mono);color:var(--color-ink-3);padding:6px 9px;border:var(--rule-hair);border-radius:var(--radius-pill);white-space:nowrap}.source i{width:6px;height:6px;border-radius:50%;background:var(--color-warn)}.source[data-live=true] i{background:var(--color-ok);box-shadow:0 0 0 3px var(--color-ok-wash)}.hero{padding:var(--space-lg) 0 var(--space-xl);border-bottom:var(--rule-hair);margin-bottom:var(--space-lg)}.hero-label{color:var(--color-ink-2);font-size:var(--text-sm);margin-bottom:var(--space-xs)}.hero-num{font:700 var(--text-display)/.95 var(--font-display);font-stretch:118%;letter-spacing:-.03em;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:var(--space-xs)}.hero-num small{font:500 var(--text-lg)/1 var(--font-display);font-stretch:100%;color:var(--color-ink-4);letter-spacing:0}.goal{margin-top:var(--space-md)}.goal-track{position:relative;height:6px;background:var(--color-paper-3);border-radius:var(--radius-pill);overflow:hidden}.goal-fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hot));border-radius:inherit;transform-origin:left}.goal-meta{display:flex;justify-content:space-between;margin-top:var(--space-xs);font:500 var(--text-xs)/1.2 var(--font-mono);color:var(--color-ink-3)}.goal-meta b{color:var(--color-accent-hot);font-weight:500}.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--rule-hair);border-bottom:var(--rule-hair);margin-bottom:var(--space-xl)}.strip>div{padding:var(--space-md) var(--space-sm) var(--space-md) 0}.strip>div+div{padding-left:var(--space-sm);border-left:var(--rule-hair)}.strip .v{font:650 var(--text-xl)/1 var(--font-display);font-stretch:110%;font-variant-numeric:tabular-nums}.strip .k{font-size:var(--text-xs);color:var(--color-ink-3);margin-top:6px;line-height:1.25}.sec{margin-bottom:var(--space-2xl)}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.sec-head h2{font-size:var(--text-lg);font-weight:650;font-stretch:108%}.sec-head span{font:400 var(--text-xs)/1.2 var(--font-mono);color:var(--color-ink-4);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.sec-head h2{flex:none}.note{color:var(--color-ink-3);font-size:var(--text-sm);margin:var(--space-xs) 0 0}.panel{background:var(--color-paper-2);border:var(--rule-hair);border-radius:var(--radius-lg);padding:var(--space-md)}.panel+.panel{margin-top:var(--space-sm)}.cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.cta .big{font:700 var(--text-3xl)/1 var(--font-display);font-stretch:115%;font-variant-numeric:tabular-nums}.cta p{margin:4px 0 0;color:var(--color-ink-3);font-size:var(--text-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);height:44px;padding:0 var(--space-lg);border-radius:var(--radius-md);border:var(--rule);background:var(--color-paper-3);font-weight:600;font-size:var(--text-sm);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.btn:hover{background:var(--color-paper-4)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn[data-state=loading]{opacity:.7;pointer-events:none}.btn.primary{background:var(--color-accent);border-color:transparent;color:var(--color-accent-ink)}.btn.primary:hover{background:var(--color-accent-hot)}.btn.ghost{background:transparent}.btn.block{width:100%}.bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:end;gap:5px;height:132px;padding-top:var(--space-md)}.bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px;min-width:0}.bar i{display:block;width:100%;background:var(--color-paper-4);border-radius:3px 3px 0 0;transform-origin:bottom}.bar[data-now=true] i{background:var(--color-accent)}.bar[data-ahead=true] i{background:transparent;border:1px dashed var(--color-accent-line);border-bottom:0}.bar span{font:400 9px/1 var(--font-mono);color:var(--color-ink-4)}.bar b{font:500 9px/1 var(--font-mono);color:var(--color-ink-3)}.meter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px var(--space-sm);align-items:baseline;padding:var(--space-sm) 0;border-bottom:var(--rule-hair)}.meter:last-child{border-bottom:0}.meter .lbl{font-size:var(--text-sm);color:var(--color-ink-2)}.meter .val{font:500 var(--text-sm)/1 var(--font-mono);font-variant-numeric:tabular-nums}.meter .val em{font-style:normal;color:var(--color-ink-4)}.meter .track{grid-column:1 / -1;height:3px;background:var(--color-paper-3);border-radius:var(--radius-pill);overflow:hidden}.meter .track i{display:block;height:100%;background:var(--color-ink-3);transform-origin:left}.meter[data-key=true] .track i{background:var(--color-accent)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:var(--radius-pill);border:var(--rule-hair);font-size:var(--text-xs);color:var(--color-ink-2);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.chip.fit{border-color:var(--color-accent-line);color:var(--color-accent-hot)}.chip.warn{border-color:#ebbd5766;color:var(--color-warn)}.chip.ok{border-color:#64c89766;color:var(--color-ok)}.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--color-paper-2);border:var(--rule-hair);border-radius:var(--radius-md);padding:3px;margin-bottom:var(--space-lg);position:relative}.seg button{position:relative;z-index:1;background:none;border:0;height:34px;border-radius:7px;font-size:var(--text-sm);font-weight:500;color:var(--color-ink-3);white-space:nowrap}.seg button[aria-selected=true]{color:var(--color-ink)}.seg .pill{position:absolute;z-index:0;top:3px;bottom:3px;border-radius:7px;background:var(--color-paper-4)}.deck{position:relative;padding-bottom:10px}.card{position:relative;background:var(--color-paper-2);border:var(--rule-hair);border-radius:var(--radius-lg);padding:var(--space-lg);touch-action:pan-y;user-select:none;-webkit-user-select:none;box-shadow:0 24px 48px -28px #000000e6}.card.under{position:absolute;inset:0 0 10px;pointer-events:none;overflow:hidden}.card-top{display:flex;justify-content:space-between;gap:var(--space-sm);font:400 var(--text-2xs)/1 var(--font-mono);color:var(--color-ink-4);margin-bottom:var(--space-md)}.card h3{font-size:var(--text-xl);font-weight:700;font-stretch:106%;line-height:1.12;letter-spacing:-.005em}.card .place{color:var(--color-ink-3);font-size:var(--text-sm);margin:6px 0 var(--space-md)}.why{background:var(--color-accent-wash);border:1px solid var(--color-accent-line);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:var(--space-md);font-size:var(--text-sm);line-height:1.4;color:var(--color-ink)}.why b{display:block;font:500 var(--text-2xs)/1 var(--font-mono);color:var(--color-accent-hot);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xs);margin:var(--space-md) 0}.facts div{background:var(--color-paper-3);border-radius:var(--radius-sm);padding:10px;min-width:0}.facts b{display:block;font:650 var(--text-lg)/1 var(--font-display);font-stretch:108%;font-variant-numeric:tabular-nums}.facts span{display:block;font-size:var(--text-2xs);color:var(--color-ink-3);margin-top:5px;line-height:1.2}.quote{border-left:2px solid var(--color-accent);padding:2px 0 2px var(--space-sm);margin:var(--space-md) 0}.quote p{margin:0;font:400 var(--text-xs)/1.5 var(--font-mono);color:var(--color-ink-2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.quote small{display:block;margin-top:6px;font-size:var(--text-2xs);color:var(--color-ink-4)}.way{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-ink-2);padding-top:var(--space-sm);border-top:var(--rule-hair);min-width:0}.way svg{flex:none;width:16px;height:16px;color:var(--color-accent)}.way span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stamp{position:absolute;top:var(--space-lg);padding:6px 10px;border:2px solid;border-radius:var(--radius-sm);font:700 var(--text-sm)/1 var(--font-display);font-stretch:115%;letter-spacing:.06em;text-transform:uppercase}.stamp.yes{right:var(--space-lg);color:var(--color-accent)}.stamp.no{left:var(--space-lg);color:var(--color-ink-3)}.actions{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:var(--space-xs);margin-top:var(--space-md)}.banner{display:flex;gap:var(--space-xs);align-items:flex-start;font-size:var(--text-xs);color:var(--color-ink-3);background:var(--color-paper-2);border:var(--rule-hair);border-radius:var(--radius-md);padding:10px 12px;margin-bottom:var(--space-md);line-height:1.4}.banner i{flex:none;width:6px;height:6px;border-radius:50%;background:var(--color-warn);margin-top:5px}.list{border-top:var(--rule-hair)}.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px var(--space-sm);padding:14px 0;border-bottom:var(--rule-hair);background:none;border-left:0;border-right:0;border-top:0;text-align:left;width:100%;transition:background var(--dur-fast) var(--ease-out)}.row:active{background:var(--color-paper-2)}.row .t{font-weight:600;font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .s{grid-column:1;font-size:var(--text-xs);color:var(--color-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .r{grid-row:1 / span 2;grid-column:2;align-self:center;font:500 var(--text-xs)/1 var(--font-mono);color:var(--color-ink-3);text-align:right}.row .r b{display:block;color:var(--color-accent-hot);font-weight:500;margin-bottom:4px}.search{width:100%;height:44px;border-radius:var(--radius-md);border:var(--rule);background:var(--color-paper-2);padding:0 var(--space-md);margin-bottom:var(--space-md);font-size:16px}.search::placeholder{color:var(--color-ink-4)}.empty{text-align:center;padding:var(--space-3xl) var(--space-lg);color:var(--color-ink-3);font-size:var(--text-sm)}.empty h3{color:var(--color-ink);font-size:var(--text-lg);margin-bottom:var(--space-xs)}.scrim{position:fixed;inset:0;z-index:40;background:var(--color-scrim)}.sheet{position:fixed;z-index:41;inset:calc(var(--safe-top) + 10px) 0 0 0;max-width:560px;margin:0 auto;background:var(--color-paper);border-top:var(--rule);border-radius:18px 18px 0 0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-sm) var(--space-md) calc(var(--safe-bottom) + var(--space-2xl))}.grab{width:38px;height:5px;border-radius:var(--radius-pill);background:var(--color-paper-4);margin:0 auto var(--space-md)}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-lg)}.sheet-head h2{font-size:var(--text-2xl);font-weight:700;font-stretch:108%;line-height:1.08}.x{flex:none;width:34px;height:34px;border-radius:50%;border:0;background:var(--color-paper-3);display:grid;place-items:center;color:var(--color-ink-2)}.kv{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px var(--space-sm);font-size:var(--text-sm)}.kv dt{color:var(--color-ink-4)}.kv dd{margin:0;color:var(--color-ink-2);overflow-wrap:anywhere}.kv dd a{color:var(--color-accent-hot);text-decoration:none}.tl{list-style:none;margin:0;padding:0}.tl li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:var(--rule-hair)}.tl .yr{font:500 var(--text-sm)/1.3 var(--font-mono);color:var(--color-ink-3)}.tl .yr[data-ahead=true]{color:var(--color-accent-hot)}.tl .who{font-weight:600;font-size:var(--text-sm)}.tl p{margin:4px 0 0;font:400 var(--text-xs)/1.5 var(--font-mono);color:var(--color-ink-3);overflow-wrap:anywhere}.tl a{font-size:var(--text-2xs);color:var(--color-ink-4)}.copy{background:none;border:0;padding:0;color:var(--color-accent-hot);font:inherit;text-align:left}.spk{padding:var(--space-md)}.spk-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm)}.spk h3{font-size:var(--text-lg);font-weight:650;font-stretch:106%}.stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:var(--space-md) 0;border:var(--rule-hair);border-radius:var(--radius-md);overflow:hidden}.stages div{padding:10px 8px;min-width:0}.stages div+div{border-left:var(--rule-hair)}.stages b{display:block;font:650 var(--text-lg)/1 var(--font-display);font-variant-numeric:tabular-nums}.stages span{display:block;font-size:var(--text-2xs);color:var(--color-ink-3);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stages div[data-on=true] b{color:var(--color-accent-hot)}.gate{min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--safe-top) + var(--space-2xl)) var(--space-lg) calc(var(--safe-bottom) + var(--space-2xl));max-width:460px;margin:0 auto}.gate h1{font-size:var(--text-3xl);font-weight:750;font-stretch:118%;line-height:1;letter-spacing:-.02em;margin:var(--space-lg) 0 var(--space-xs)}.gate p{color:var(--color-ink-3);margin:0 0 var(--space-xl);font-size:var(--text-sm)}.gate input{width:100%;height:50px;border-radius:var(--radius-md);border:var(--rule);background:var(--color-paper-2);padding:0 var(--space-md);font-size:17px;margin-bottom:var(--space-sm)}.gate input[aria-invalid=true]{border-color:var(--color-danger)}.gate .err{color:var(--color-danger);font-size:var(--text-xs);min-height:18px;margin:0 0 var(--space-xs)}.toast{position:fixed;z-index:60;left:var(--space-md);right:var(--space-md);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + var(--space-sm));max-width:528px;margin:0 auto;background:var(--color-paper-4);border:var(--rule);border-radius:var(--radius-md);padding:12px 14px;font-size:var(--text-sm);display:flex;justify-content:space-between;gap:var(--space-sm);align-items:center}.toast button{background:none;border:0;color:var(--color-accent-hot);font-weight:600}.skeleton{background:linear-gradient(90deg,var(--color-paper-2),var(--color-paper-3),var(--color-paper-2));background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--radius-md)}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}
