:root{--ink:#080b16;--paper:#ece6d6;--lantern:#f0b868;--river:#86aca4;--serif:"Cormorant Garamond","Iowan Old Style",Palatino,"Songti SC","Noto Serif SC","Source Han Serif SC",serif;--sans:system-ui,-apple-system,"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif}html,body,#root{margin:0;height:100%;background:#000}.app{position:fixed;top:0;right:0;bottom:0;left:0;color:var(--paper);font:13px/1.55 var(--sans);letter-spacing:.03em;overflow:hidden;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.stage{position:absolute;top:0;right:0;bottom:0;left:0}.rain{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(rgba(8,11,22,.38),transparent 18%,transparent 52%,rgba(8,11,22,.55))}button{font:inherit;color:inherit;letter-spacing:inherit}:focus-visible{outline:2px solid var(--lantern);outline-offset:3px;border-radius:2px}.tx{background:none;border:0;padding:6px 2px;cursor:pointer;opacity:.7;text-shadow:0 1px 10px rgba(0,0,0,.45);text-decoration:underline transparent 1px;text-underline-offset:6px;transition:opacity .2s,text-decoration-color .2s}.tx:hover{opacity:1}.tx.on{opacity:1;text-decoration-color:var(--lantern)}.tx.inline{margin-left:14px;padding:0}.mark{position:absolute;left:clamp(18px,3vw,40px);top:clamp(16px,2.6vw,32px);font-size:13px;opacity:.82;text-shadow:0 1px 12px rgba(0,0,0,.5)}.menu{position:absolute;right:clamp(18px,3vw,40px);top:clamp(10px,2vw,24px);display:flex;gap:clamp(12px,2vw,26px);align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:70vw}.chk{display:flex;gap:6px;align-items:center;opacity:.8;cursor:pointer}.chk input{accent-color:var(--lantern)}.hero{position:absolute;left:clamp(18px,3vw,40px);bottom:clamp(22px,4vh,48px);max-width:min(560px,86vw);pointer-events:none}.hero .tx{pointer-events:auto}.clock{font-family:var(--serif);font-weight:300;font-feature-settings:"lnum","tnum";line-height:.92;text-shadow:0 2px 40px rgba(0,0,0,.35);white-space:nowrap}.clock .hm{font-size:clamp(68px,13vw,184px);letter-spacing:-.01em}.clock .sc{font-size:clamp(24px,3.6vw,52px);opacity:.55;margin-left:.12em}.line{margin:12px 0 0;font-size:13px;opacity:.86;text-shadow:0 1px 12px rgba(0,0,0,.55);max-width:46ch}.line.dim{margin-top:2px;opacity:.55;font-size:12px}.event{position:absolute;left:clamp(18px,3vw,40px);top:34%;animation:ev 9s ease both;pointer-events:none}.ev-t{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.4vw,44px);text-shadow:0 2px 24px rgba(0,0,0,.45)}.ev-s{display:block;opacity:.75;margin-top:2px;text-shadow:0 1px 10px rgba(0,0,0,.5)}@keyframes ev{0%{opacity:0;transform:translateY(6px)}12%,80%{opacity:1;transform:none}to{opacity:0}}.dock{position:absolute;right:clamp(18px,3vw,40px);bottom:clamp(22px,4vh,48px);width:min(520px,calc(100vw - 36px));display:grid;gap:8px;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}.app[data-mode=replay] .dock{opacity:.5}.app[data-hot=true] .dock,.dock:focus-within{opacity:1;transform:none;pointer-events:auto}.app[data-mode=replay] .dock{pointer-events:auto}.dock-row{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;justify-content:flex-end}.dock-row.chips{gap:2px 14px}.chip{font-feature-settings:"tnum";font-size:12px;opacity:.55}.sep{width:1px;height:14px;background:currentColor;opacity:.25}.scrub{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;margin:6px 0;cursor:pointer;opacity:.9;box-shadow:0 0 0 1px #ece6d640}.scrub::-webkit-slider-thumb{-webkit-appearance:none;width:3px;height:22px;border-radius:2px;background:var(--paper);box-shadow:0 0 12px #0009}.scrub::-moz-range-thumb{width:3px;height:22px;border:0;border-radius:2px;background:var(--paper)}.panel{position:absolute;top:0;right:0;bottom:0;width:min(380px,100vw);box-sizing:border-box;padding:clamp(56px,8vh,76px) 26px 28px;overflow:auto;background:#080b16bd;backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);border-left:1px solid rgba(236,230,214,.12);animation:slide .45s cubic-bezier(.2,.7,.2,1) both}@keyframes slide{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.panel h2{font-family:var(--serif);font-weight:300;font-size:28px;margin:0 0 14px;letter-spacing:.01em}.panel h3{font-family:var(--serif);font-weight:400;font-size:19px;margin:26px 0 8px}.panel .x{position:absolute;right:22px;top:20px;background:none;border:0;cursor:pointer;opacity:.7}.panel .x:hover{opacity:1}.dial{width:100%;max-width:280px;display:block;margin:0 0 14px;color:var(--paper)}.panel dl{margin:0}.kv{display:grid;grid-template-columns:5.5em 1fr;gap:10px;padding:6px 0;border-top:1px solid rgba(236,230,214,.1)}.kv dt{opacity:.55}.kv dd{margin:0}.note{opacity:.6;font-size:12px;line-height:1.7;margin:14px 0 0;max-width:46ch}.labels{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.lbl{position:absolute;left:0;top:0;white-space:nowrap;margin:-7px 0 0 6px;text-shadow:0 0 3px #000,0 0 6px #000;font-size:12px}.lbl.con{color:#7f96d8;font-size:14px;letter-spacing:.08em}.lbl.star{color:#b9c5ea}.lbl.card{color:#fff;font-size:16px;font-weight:700}.lbl.grid{color:#5b6fae;font-size:11px}.lbl.body{color:var(--lantern);font-size:13px;font-weight:600}.splash{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:10px;text-align:center;padding:24px;background:radial-gradient(ellipse at 50% 60%,#121a33 0%,var(--ink) 70%);transition:opacity 1.6s ease,visibility 0s linear 1.6s}.splash[data-gone=true]{opacity:0;visibility:hidden;pointer-events:none}.s-date{font-family:var(--serif);font-weight:300;font-size:clamp(44px,9vw,112px);line-height:1;margin:0;letter-spacing:.02em}.s-place{margin:0;opacity:.6}.s-line{margin:18px 0 0;opacity:.85;font-family:var(--serif);font-size:clamp(17px,2.1vw,22px)}.s-actions{display:flex;gap:26px;justify-content:center;align-items:center;margin-top:26px}.go{background:var(--paper);color:var(--ink);border:0;border-radius:999px;padding:0 26px;height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:500;min-width:8.6em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";transition:background .2s,transform .15s}.go:hover{background:#fff}.go:active{transform:scale(.98)}.go .s-tick{font-size:15px;letter-spacing:.14em}.s-curve-wrap{width:min(560px,86vw);margin:34px auto 0;pointer-events:auto}.s-curve{display:block;width:100%;height:auto;cursor:ew-resize;touch-action:pan-y}.s-curve-info{margin-top:10px;font-size:12px;opacity:.32;text-align:center;height:1.5em;letter-spacing:.1em;font-variant-numeric:tabular-nums;transition:opacity .35s cubic-bezier(.2,.7,.2,1)}.s-curve-info[data-on=true]{opacity:.9}.s-curve-time{font-family:var(--serif);font-size:14px;font-weight:400;letter-spacing:.03em}.s-hint{margin:20px 0 0;font-size:12px;opacity:.42;letter-spacing:.06em}.wx-badge{background:none;border:1px solid currentColor;border-radius:50%;width:15px;height:15px;font:600 10px/1 var(--sans);padding:0;margin-left:8px;cursor:pointer;opacity:.55;vertical-align:1px;pointer-events:auto;transition:opacity .2s,border-color .2s}.wx-badge:hover,.wx-badge[aria-expanded=true]{opacity:1;border-color:var(--lantern);color:var(--lantern)}.wx-note{margin:8px 0 0;font-size:12px;line-height:1.75;opacity:.68;max-width:42ch;padding:9px 12px;border-left:2px solid var(--lantern);background:#f0b8680f;text-shadow:0 1px 12px rgba(0,0,0,.5);pointer-events:auto}@media (max-width:640px){.menu{top:44px;max-width:none;left:18px;justify-content:flex-start}.event{top:30%}.dock{left:18px;right:18px;width:auto;bottom:auto;top:auto;bottom:calc(env(safe-area-inset-bottom) + 14px)}.hero{bottom:calc(env(safe-area-inset-bottom) + 150px)}.dock-row{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.event,.panel{animation:none}.splash,.dock,.tx,.go{transition:none}}
