@font-face{font-family:SahSerif;src:url(../fonts/serif-500.woff2)format("woff2");font-weight:400 600;font-display:swap}@font-face{font-family:SahSerif;src:url(../fonts/serif-700.woff2)format("woff2");font-weight:700 900;font-display:swap}@font-face{font-family:SahBrush;src:url(../fonts/brush.woff2)format("woff2");font-display:swap}@font-face{font-family:SahHand;src:url(../fonts/hand.woff2)format("woff2");font-display:swap}:root{--ink:#f3efe6;--muted:#f3efe6a8;--faint:#f3efe666;--panel:#0b0d11c2;--panel2:#121419f0;--line:#ffffff1a;--line2:#ffffff2e;--accent:#f2b25c;--accent-d:#f2b25c29;--ok:#7fe0a0;--bad:#f06e5a;--elec:#7fd6ff;--hole:#ff9ec4;--serif:"SahSerif", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--brush:"SahBrush", var(--serif);--r-s:8px;--r-m:12px;--r-l:16px;--r-xl:22px;--capScale:1;--ease:cubic-bezier(.2, .7, .2, 1)}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#000;margin:0;overflow:hidden}button{font-family:inherit}#c{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{opacity:0!important;pointer-events:none!important}svg{display:block}#boot{z-index:40;transition:opacity 1.4s var(--ease);background:radial-gradient(at 50% 60%,#0d0f14 0%,#000 70%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#boot.gone{opacity:0;pointer-events:none}#boot .mark{width:54px;height:54px;color:var(--accent);opacity:.9;filter:drop-shadow(0 0 18px #f2b25c73);margin-bottom:22px}#boot h1{font-family:var(--serif);letter-spacing:.32em;text-indent:.32em;margin:0;font-size:clamp(38px,5.4vw,64px);font-weight:700}#boot .en{font-family:var(--serif);letter-spacing:.5em;text-indent:.5em;color:var(--faint);text-transform:uppercase;margin-top:12px;font-size:15px}#boot .bar{background:#ffffff1a;width:240px;height:1px;margin-top:42px;overflow:hidden}#boot .bar i{background:var(--accent);width:0;height:100%;box-shadow:0 0 10px var(--accent);transition:width .4s var(--ease);display:block}#boot .status{color:var(--faint);letter-spacing:.08em;min-height:18px;margin-top:14px;font-size:13px}#boot .go{flex-direction:column;align-items:center;gap:18px;margin-top:8px;transition:opacity .8s;display:flex}#boot .row{align-items:center;gap:12px;display:flex}#boot .hint{color:var(--muted);font-size:13px}#boot .note{text-align:center;max-width:520px;color:var(--faint);font-size:12.5px;line-height:1.7}#classCode{color:var(--muted);flex-direction:column;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}#classCode input{border-radius:var(--r-m);border:1px solid var(--line2);width:180px;height:40px;color:var(--ink);text-align:center;letter-spacing:.12em;background:#ffffff0d;font-size:17px}#classCode input:focus{border-color:var(--accent);outline:none}button.primary,button.ghost{border-radius:var(--r-m);cursor:pointer;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 22px;font-size:15px;transition:background .15s,border-color .15s,color .15s,transform .15s;display:inline-flex}button.primary{border:1px solid var(--accent);background:var(--accent);color:#1b1408;font-weight:600}button.primary:hover{background:#ffc676}button.ghost{border:1px solid var(--line2);color:var(--muted);background:#ffffff08}button.ghost:hover{color:var(--ink);border-color:#ffffff59}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button svg{width:17px;height:17px}#startBtn{letter-spacing:.3em;text-indent:.3em;min-width:190px;height:50px;font-size:17px}#ui{z-index:10;pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:none}#cap{text-align:center;opacity:0;width:min(820px,100vw - 48px);transition:opacity .7s var(--ease), transform .7s var(--ease);text-shadow:0 2px 14px #000000f2,0 0 3px #000c;position:absolute;bottom:11.5%;left:50%;transform:translate(-50%,8px)}#cap.show{opacity:1;transform:translate(-50%)}#cap .who{font-size:calc(13px * var(--capScale));letter-spacing:.18em;color:var(--accent);margin-bottom:6px;display:block}#cap .line{font-family:var(--serif);font-size:calc(22px * var(--capScale));letter-spacing:.04em;line-height:1.75}#cap .line .cl{max-width:100%;display:inline-block}#cap .tag{vertical-align:3px;font-family:var(--sans);letter-spacing:.1em;opacity:.82;text-shadow:none;border:1px solid;border-radius:6px;margin-left:10px;padding:1px 7px;font-size:11px;display:inline-block}#cap .tag.shi{color:#e9d8a6;border-color:#e9d8a680}#cap .tag.zishu{color:#f2c29a;border-color:#f2c29a80}#cap .tag.gai{color:#b7c7dc;border-color:#b7c7dc73}#cap .tag.xu{color:#c9b7e0;border-color:#c9b7e073}body.play #cap{text-align:left;border-radius:var(--r-m);background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--accent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:min(460px,100vw - 48px);text-shadow:none;padding:12px 16px 13px;bottom:24px;left:24px;transform:none}body.play #cap .line{font-size:calc(16.5px * var(--capScale));line-height:1.65}body.play #cap .who{margin-bottom:3px}#chip{font-family:var(--serif);letter-spacing:.24em;color:var(--muted);opacity:0;text-shadow:0 1px 8px #000;font-size:14px;transition:opacity 1s;position:absolute;top:26px;left:28px}#chip.show{opacity:1}body.play #chip{opacity:0}#chapter{opacity:0;transition:opacity 1.1s var(--ease);text-shadow:0 2px 20px #000000e6;background:0 0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#chapter.show{opacity:1}#chapter .k{font-family:var(--serif);letter-spacing:.6em;text-indent:.6em;color:var(--accent);font-size:15px}#chapter .t{font-family:var(--serif);letter-spacing:.28em;text-indent:.28em;margin-top:18px;font-size:clamp(36px,4.6vw,56px);font-weight:700}#chapter .t.brush{font-family:var(--brush);letter-spacing:.14em;text-indent:.14em;font-size:clamp(48px,6vw,76px);font-weight:400}#chapter .rule{width:0;height:1px;transition:width 1.6s .3s var(--ease);background:#f3efe673;margin:22px 0 16px}#chapter.show .rule{width:120px}#chapter .s{letter-spacing:.3em;text-indent:.3em;color:var(--muted);font-size:15px}#bigTitle{opacity:0;transition:opacity 2.2s var(--ease);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#bigTitle.show{opacity:1}#bigTitle .t{font-family:var(--serif);letter-spacing:.34em;text-indent:.34em;text-shadow:0 0 40px #000000e6;font-size:clamp(44px,6vw,80px);font-weight:700}#bigTitle .en{font-family:var(--serif);letter-spacing:.5em;text-indent:.5em;color:var(--muted);text-transform:uppercase;margin-top:14px;font-size:15px}#bigTitle .ded{font-family:var(--serif);letter-spacing:.2em;color:var(--muted);margin-top:34px;font-size:15px}#hud{position:absolute;inset:0}#pill{letter-spacing:.02em;white-space:nowrap;opacity:0;transition:opacity .35s, transform .35s var(--ease), border-color .3s, background .3s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-overflow:ellipsis;background:#0c0e12cc;border:1px solid #f2b25c8c;border-radius:999px;max-width:calc(100vw - 32px);padding:11px 24px;font-size:17px;position:absolute;top:22px;left:50%;overflow:hidden;transform:translate(-50%,-6px)}#pill.show{opacity:1;transform:translate(-50%)}#pill.good{background:#102016cc;border-color:#7fe0a0bf}#goal{border-radius:var(--r-l);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;width:330px;transition:opacity .45s, transform .45s var(--ease);pointer-events:auto;padding:16px 18px 14px;position:absolute;top:24px;left:24px;transform:translate(-10px)}#goal.show{opacity:1;transform:none}#goal .k{color:var(--faint);letter-spacing:.14em;font-size:12.5px}#goal .t{font-family:var(--serif);color:var(--accent);letter-spacing:.06em;margin-top:3px;font-size:21px;font-weight:700}#goal ol{flex-direction:column;gap:10px;margin:12px 0 0;padding:0;list-style:none;display:flex}#goal li{color:#f3efe66b;grid-template-columns:22px 1fr;gap:5px 8px;font-size:14.5px;line-height:1.5;transition:color .3s;display:grid}#goal li i{border:1.5px solid #ffffff47;border-radius:50%;width:16px;height:16px;margin-top:3px;transition:all .3s}#goal li.now{color:var(--ink)}#goal li.now i{border-color:var(--accent);box-shadow:0 0 0 4px #f2b25c29}#goal li.done{color:#7fe0a0e6}#goal li.done i{border-color:var(--ok);background:var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23102018' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 11px no-repeat}#goal li em{background:#ffffff17;border-radius:2px;grid-column:2;height:4px;display:none;overflow:hidden}#goal li em u{background:var(--ok);width:0;height:100%;transition:width .1s linear;display:block}#goal li[data-label]:not([data-label=""]) span:after{content:"　" attr(data-label);color:var(--accent)}#goal .extra:empty{display:none}#goal .extra{border-top:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:14px;padding-top:12px;font-size:13.5px}.meter{grid-template-columns:58px 1fr 64px;align-items:center;gap:8px;margin:6px 0;display:grid}.meter i{background:#ffffff14;border-radius:4px;height:8px;position:relative;overflow:hidden}.meter u{background:var(--ok);border-radius:4px;transition:width .12s linear;position:absolute;top:0;bottom:0;left:0}.meter u.warn{background:var(--accent)}.meter u.bad{background:var(--bad)}.meter b{text-align:right;color:var(--ink);font-weight:600}.zones{background:#ffffff0d;border-radius:6px;height:26px;margin:8px 0 2px;position:relative}.zones s{color:var(--faint);border-left:1px solid var(--line2);border-right:1px solid var(--line2);background:#ffffff0a;justify-content:center;align-items:center;font-size:12px;text-decoration:none;display:flex;position:absolute;top:0;bottom:0}.zones s.now{background:var(--accent-d);color:var(--ink)}.zones u{background:var(--ok);width:3px;box-shadow:0 0 8px var(--ok);border-radius:2px;margin-left:-1.5px;transition:left 80ms linear;position:absolute;top:-3px;bottom:-3px}.hours{grid-template-columns:repeat(8,1fr);gap:4px;margin-top:6px;display:grid}.hours i{text-align:center;color:var(--faint);background:#ffffff0d;border-radius:6px;padding:4px 0;font-size:12.5px;font-style:normal}.hours i.now{color:var(--ink);background:#f2b25c33;outline:1px solid #f2b25cb3}.hours i.ok{color:var(--ok);background:#7fe0a029}.hours i.bad{color:var(--bad);background:#f06e5a29}.clock{font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:.02em;font-size:26px;font-weight:600}.vslider{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;-webkit-user-select:none;user-select:none;opacity:0;width:112px;transition:opacity .45s, transform .45s var(--ease);border-radius:20px;flex-direction:column;align-items:center;gap:8px;padding:14px 10px 12px;display:flex;position:absolute;top:50%;right:26px;transform:translate(12px,-50%)}.vslider.show{opacity:1;transform:translateY(-50%)}.vslider.show.locked{opacity:.45;pointer-events:none}.vslider .cap{color:var(--muted);text-align:center;font-size:13px;line-height:1.3}.vslider .val{font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap;font-size:21px;font-weight:600}.vslider button{background:var(--accent-d);width:46px;height:34px;color:var(--accent);cursor:pointer;border:1px solid #f2b25c73;border-radius:10px;place-items:center;display:grid}.vslider button:hover{background:#f2b25c42}.vslider .track{border:1px solid var(--line2);cursor:ns-resize;touch-action:none;background:#ffffff0d;border-radius:19px;width:38px;height:min(44vh,400px);position:relative}.vslider .fill{background:linear-gradient(#f2b25cd9,#f2b25c4d);border-radius:13px;position:absolute;left:6px;right:6px}.vslider .fill.neg{background:linear-gradient(#82a0ff4d,#82a0ffd9)}.vslider .zero{background:#ffffff80;height:2px;position:absolute;left:-6px;right:-6px}.vslider .zero:after{content:"0";color:var(--muted);font-size:11px;position:absolute;top:-8px;left:-14px}.vslider .handle{background:var(--accent);border-radius:9px;height:18px;margin-bottom:-9px;position:absolute;left:-8px;right:-8px;box-shadow:0 0 16px #f2b25cbf,inset 0 1px #ffffff80}.vslider .notches{pointer-events:none;position:absolute;inset:0}.vslider .notch{border-top:2px dashed var(--ok);height:0;position:absolute;left:-10px;right:-10px}.vslider .notch span{white-space:nowrap;color:var(--ok);background:#0b0d11d9;border-radius:6px;padding:1px 7px;font-size:12px;position:absolute;top:-11px;right:50px}.vslider .notch.warn{border-color:var(--accent)}.vslider .notch.warn span{color:var(--accent)}.vslider .zone{background:#7fe0a029;border:1px solid #7fe0a066;border-radius:12px;position:absolute;left:2px;right:2px}.vslider .zone span{white-space:nowrap;color:var(--ok);font-size:12px;position:absolute;top:50%;right:44px;transform:translateY(-50%)}.vslider .zone.bad{background:#f06e5a1f;border-color:#f06e5a59}.vslider .zone.bad span{color:var(--bad)}.vslider .keys{color:var(--faint);text-align:center;font-size:11px;line-height:1.4}.corner{gap:10px;display:flex;position:absolute;bottom:24px;right:24px}.hudbtn{border-radius:var(--r-m);border:1px solid var(--line2);background:var(--panel);height:40px;color:var(--muted);cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:7px;padding:0 14px;font-size:14px;transition:color .15s,border-color .15s;display:none;position:relative}.hudbtn.show,.hudbtn.icon{display:inline-flex}.hudbtn.icon{justify-content:center;width:40px;padding:0}.hudbtn:hover{color:var(--ink);border-color:#ffffff59}.hudbtn b{color:var(--faint);font-size:12px;font-weight:500}.hudbtn.pulse{color:var(--accent);border-color:#f2b25c99;animation:1.6s ease-in-out infinite pulse}#archiveBtn i{background:var(--accent);width:9px;height:9px;box-shadow:0 0 8px var(--accent);border-radius:50%;display:none;position:absolute;top:-3px;right:-3px}#archiveBtn.new i{display:block}@keyframes pulse{0%,to{box-shadow:0 0 #f2b25c00}50%{box-shadow:0 0 0 6px #f2b25c38}}#skip{height:34px;color:var(--faint);cursor:pointer;pointer-events:auto;background:#0a0c0e73;border:1px solid #f3efe633;border-radius:10px;align-items:center;gap:6px;padding:0 12px 0 14px;font-size:13px;transition:opacity .4s,color .15s;display:inline-flex;position:absolute;top:24px;right:24px}#skip:hover{color:var(--ink)}#skip.off{opacity:0;pointer-events:none}#skip svg{width:14px;height:14px}#card,#ask,#settings{opacity:0;z-index:20;background:#0000006b;justify-content:center;align-items:center;transition:opacity .35s;display:flex;position:absolute;inset:0}#card.show,#ask.show,#settings.show{opacity:1;pointer-events:auto}#card .box,#ask .box,#settings .box{border-radius:var(--r-xl);background:var(--panel2);border:1px solid var(--line);width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);transition:transform .45s var(--ease);padding:26px 26px 22px;overflow:auto;transform:translateY(8px);box-shadow:0 24px 60px #00000080}#card.show .box,#ask.show .box,#settings.show .box{transform:none}#card .box.wide{width:min(700px,100vw - 32px)}#card .k{letter-spacing:.16em;color:var(--faint);margin-bottom:4px;font-size:12.5px}#card .t{font-family:var(--serif);letter-spacing:.08em;margin-bottom:10px;font-size:25px;font-weight:700}#card .b p{color:#f3efe6e6;margin:8px 0;font-size:15.5px;line-height:1.8}#card .b b{color:var(--ink)}#card .b .goal{color:var(--accent)}#card .b .tip{color:var(--muted);font-size:14px}#card .b .src{color:var(--faint);font-size:12.5px}#card .b .row{border-bottom:1px solid #ffffff12;justify-content:space-between;gap:16px;padding:8px 0;font-size:15px;display:flex}#card .b .row span{color:var(--muted)}#card .b .learned{margin-top:14px;font-size:14.5px;line-height:1.75}#card .b .learned ol{margin:6px 0 0;padding-left:20px}#card .b .next{color:var(--accent);margin-top:14px;font-size:14.5px;line-height:1.7}#card .b .note{color:var(--faint);margin-top:12px;font-size:12px}#card .b .formula{font-family:var(--serif);text-align:center;letter-spacing:.06em;color:var(--ink);margin:12px 0;font-size:20px}#card .stars{justify-content:center;gap:12px;margin:6px 0 14px;display:flex}#card .stars svg{fill:#ffffff1a;stroke:#ffffff2e;width:40px;height:40px}#card .stars svg.on{fill:var(--accent);stroke:#ffd79a;animation:.5s both pop}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}#card .btns{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}#card .btns button{border-radius:var(--r-m);border:1px solid var(--line2);height:42px;color:var(--muted);cursor:pointer;background:#ffffff08;align-items:center;gap:8px;padding:0 18px;font-size:14.5px;display:inline-flex}#card .btns button:hover{color:var(--ink);border-color:#ffffff59}#card .btns button.primary{border-color:var(--accent);background:var(--accent);color:#1b1408;margin-left:auto;font-weight:600}#card canvas{background:#ffffff08;border-radius:10px;width:100%;height:auto;margin:8px 0}#ask .q{font-family:var(--serif);font-size:21px;font-weight:700;line-height:1.6}#ask .opts{flex-direction:column;gap:10px;margin-top:18px;display:flex}#ask .opt{text-align:left;border-radius:var(--r-m);border:1px solid var(--line2);color:var(--ink);cursor:pointer;background:#ffffff08;align-items:center;gap:12px;padding:13px 15px;font-size:15.5px;line-height:1.5;transition:border-color .15s,background .15s;display:flex}#ask .opt:hover{background:#f2b25c14;border-color:#f2b25cb3}#ask .kk{background:var(--accent-d);width:28px;height:28px;color:var(--accent);border-radius:8px;flex:none;place-items:center;font-weight:600;display:grid}#ask .note{color:var(--faint);margin-top:14px;font-size:13px}#toast{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:84px;left:50%;transform:translate(-50%)}.toast{opacity:0;transition:opacity .4s, transform .4s var(--ease);background:#0c0e12db;border:1px solid #f2b25c73;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;font-size:14px;display:inline-flex;transform:translateY(8px)}.toast.show{opacity:1;transform:none}.toast svg{width:16px;height:16px;color:var(--accent)}body.play #toast{top:84px}#archive{border-left:1px solid var(--line);width:min(420px,100vw);transition:transform .45s var(--ease);z-index:25;background:#0c0d10f5;padding:22px 22px 30px;position:absolute;top:0;bottom:0;right:0;overflow:auto;transform:translate(100%)}#archive.show{pointer-events:auto;transform:none}#archive .head{font-family:var(--serif);letter-spacing:.2em;justify-content:space-between;align-items:center;font-size:22px;font-weight:700;display:flex}#archive .x{border:1px solid var(--line2);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;place-items:center;display:grid}#archive .sub{color:var(--faint);margin-top:6px;font-size:13px;line-height:1.6}#archive h4{letter-spacing:.2em;color:var(--accent);margin:22px 0 8px;font-size:13px;font-weight:600}#archive .entry{border-top:1px solid var(--line);padding:12px 0}#archive .entry b{font-family:var(--serif);font-size:16px}#archive .entry p{color:#f3efe6d1;margin:6px 0 0;font-size:14px;line-height:1.75}#archive .entry small{color:var(--faint);margin-top:6px;font-size:12px;display:block}#labels{position:absolute;inset:0}.wl{white-space:nowrap;color:#e8f2ff;background:#080c16a8;border:1px solid #a0c8ff3d;border-radius:7px;margin:-12px 0 0;padding:4px 9px;font-size:13px;transition:opacity .4s;position:absolute;top:0;left:0;translate:-50% -50%}.wl.warm{color:var(--ink);background:#100c08a8;border-color:#f2b25c73}.wl.state{padding:5px 11px;font-size:14.5px;font-weight:600}.wl.state.ok{color:#d6f7e2;background:#0c1e14b8;border-color:#7fe0a0b3}.wl.state.bad{color:#ffd8d0;background:#220e0cb8;border-color:#f06e5ab3}.wl.state.shed{color:#ffe3b8;background:#24180ac7;border-color:#f2b25ccc}.wl.state.shed.bad{color:#ffd8d0;border-color:#f06e5acc}.wl.ox{color:#d9f5ff;background:#0a1e2ac7;border-color:#96e1ffbf;margin:0;padding:5px 12px;font-size:15px;font-weight:600;translate:0 -50%;box-shadow:0 0 18px #78d2ff47}.wl.sub{color:var(--muted);background:0 0;border:0;font-size:13px}.wl.big{font-family:var(--serif);text-shadow:0 2px 12px #000;background:0 0;border:0;font-size:20px}#coach{opacity:0;transition:opacity .35s;position:absolute;top:0;left:0}#coach.show{opacity:1}#coach .ring{border:2px solid var(--accent);border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;animation:1.5s ease-out infinite ring;position:absolute}@keyframes ring{0%{opacity:1;transform:scale(.55)}to{opacity:0;transform:scale(1.6)}}#coach .bubble{white-space:nowrap;color:#1b1408;background:#f2b25cf2;border-radius:8px;padding:5px 11px;font-size:13.5px;font-weight:600;position:absolute;top:-15px;left:30px}#coach .bubble:empty{display:none}#coach.flip .bubble{left:auto;right:30px}#settings .t{font-family:var(--serif);letter-spacing:.12em;margin-bottom:14px;font-size:23px;font-weight:700}.set{border-bottom:1px solid #ffffff12;grid-template-columns:110px 1fr;align-items:center;gap:10px 14px;padding:11px 0;font-size:14.5px;display:grid}.set label{color:var(--muted)}.seg{border:1px solid var(--line2);border-radius:10px;display:inline-flex;overflow:hidden}.seg button{height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:13.5px}.seg button+button{border-left:1px solid var(--line2)}.seg button.on{background:var(--accent-d);color:var(--accent)}.set input[type=range]{width:100%;accent-color:var(--accent)}.set small{color:var(--faint);grid-column:2;font-size:12px;line-height:1.5}#settings .btns{justify-content:flex-end;margin-top:16px;display:flex}#credits{opacity:0;z-index:30;background:#000;transition:opacity 1.6s;position:absolute;inset:0;overflow:hidden}#credits.show{opacity:1;pointer-events:auto}#credits .roll{text-align:center;width:min(760px,100vw - 48px);position:absolute;top:100%;left:50%;transform:translate(-50%)}#credits h2{font-family:var(--serif);letter-spacing:.3em;margin:0 0 8px;font-size:28px}#credits h3{font-family:var(--serif);letter-spacing:.22em;color:var(--accent);margin:54px 0 16px;font-size:17px;font-weight:700}#credits p{color:#f3efe6d1;margin:6px 0;font-size:14.5px;line-height:1.85}#credits .item{text-align:left;border-bottom:1px solid #ffffff0f;grid-template-columns:70px 1fr;gap:12px;padding:7px 0;font-size:13.5px;line-height:1.6;display:grid}#credits .item span{color:var(--faint);padding-top:2px;font-size:12px}#credits .src{text-align:left;color:var(--muted);font-size:12.5px;line-height:1.7}#credits .end{gap:10px;display:flex;position:absolute;bottom:24px;right:24px}#perf{color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;bottom:8px;left:12px}@media (width<=760px){#goal{width:calc(100vw - 150px);padding:12px 14px;top:12px;left:12px}#goal .t{font-size:18px}#goal li{font-size:13.5px}.vslider{width:96px;right:10px}#cap .line{font-size:calc(18px * var(--capScale))}body.play #cap{width:calc(100vw - 130px);bottom:12px;left:12px}#pill{font-size:15px;top:auto;bottom:86px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}#review{pointer-events:none;z-index:34;font-family:var(--sans);position:fixed;inset:0}#review .rbar{border-radius:var(--r-m);background:var(--panel2);border:1px solid var(--line2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;z-index:3;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;top:66px;right:24px}#review .rbar .tagv{letter-spacing:.12em;color:var(--accent);padding:0 6px 0 4px;font-size:12px}#review .rbar button{border-radius:var(--r-s);height:34px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 10px;font-size:13px;transition:color .15s,background .15s,border-color .15s;display:inline-flex}#review .rbar button:hover{color:var(--ink);background:#ffffff0f}#review .rbar button.hot{color:var(--accent);border-color:#f2b25c73}#review .rbar button b{color:#1b1408;background:var(--accent);text-align:center;border-radius:999px;min-width:18px;padding:0 5px;font-size:12px;font-weight:600;line-height:18px}#review .rbar button b:empty{display:none}#review .rbar svg{flex:none;width:15px;height:15px}#review .where{border-radius:var(--r-s);max-width:420px;color:var(--muted);z-index:3;background:#0a0c0e99;padding:4px 10px;font-size:12.5px;position:absolute;top:118px;right:24px}#review .rdrawer{border-right:1px solid var(--line);width:min(380px,100vw);transition:transform .4s var(--ease);pointer-events:auto;z-index:4;background:#0c0d10f7;padding:20px 20px 28px;position:absolute;top:0;bottom:0;left:0;overflow:auto;transform:translate(-100%)}#review .rdrawer.show{transform:none}#review .head,#review .head2{font-family:var(--serif);color:var(--ink);justify-content:space-between;align-items:center;font-size:19px;font-weight:700;display:flex}#review .head2{border-top:1px solid var(--line);margin-top:26px;padding-top:18px;font-size:17px}#review .head2 .cnt{font-family:var(--sans);color:var(--faint);font-size:12.5px;font-weight:400}#review .x{border-radius:var(--r-s);border:1px solid var(--line2);width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}#review .x svg{width:15px;height:15px}#review .sub{color:var(--faint);margin:8px 0 12px;font-size:12.5px;line-height:1.65}#review .g{letter-spacing:.1em;color:var(--accent);margin:14px 0 6px;font-size:12px}#review .node{border-radius:var(--r-s);width:100%;min-height:36px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;padding:6px 10px;font-size:14px;display:flex}#review .node:hover{color:var(--ink);background:#ffffff0d}#review .node.on{background:var(--accent-d);color:var(--ink);border-color:#f2b25c80}#review .node em{color:var(--accent);font-size:11.5px;font-style:normal}#review .who{color:var(--faint);flex-direction:column;gap:6px;margin:12px 0;font-size:12.5px;display:flex}#review input,#review textarea{box-sizing:border-box;border-radius:var(--r-s);border:1px solid var(--line2);width:100%;color:var(--ink);font:14px/1.6 var(--sans);background:#ffffff0a;padding:8px 10px}#review input:focus,#review textarea:focus{border-color:var(--accent);outline:none}#review .nt{border-top:1px solid var(--line);padding:10px 0;font-size:13.5px;line-height:1.6;position:relative}#review .nt .w{color:var(--ink);padding-right:44px}#review .nt .w i{border:1px solid var(--line2);color:var(--muted);border-radius:6px;margin-left:8px;padding:1px 6px;font-size:11.5px;font-style:normal}#review .nt .c{color:var(--faint);margin-top:3px;font-size:12.5px}#review .nt .x{width:auto;height:auto;color:var(--muted);white-space:pre-wrap;cursor:default;border:0;margin-top:4px;display:block}#review .nt [data-del]{color:var(--faint);cursor:pointer;background:0 0;border:0;font-size:12px;position:absolute;top:10px;right:0}#review .nt [data-del]:hover{color:var(--bad)}#review .empty{color:var(--faint);padding:10px 0;font-size:13px}#review .ops{gap:8px;margin-top:14px;display:flex}#review .ops button{height:40px;padding:0 16px;font-size:14px}#review .ops svg{width:16px;height:16px}#review .rpause,#review .rseek,#review .rnote{opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:absolute;inset:0}#review .rpause{z-index:1;background:#00000038;align-items:flex-start}#review .rpause>div{background:var(--panel2);border:1px solid #f2b25c8c;border-radius:999px;align-items:baseline;gap:12px;margin-top:22px;padding:8px 18px;display:flex}#review .rpause .t{color:var(--accent);font-size:17px!important}#review .rpause .s{margin-top:0!important}#review .rseek{z-index:2;background:#000}#review .rnote{z-index:5;background:#00000073}#review .show{opacity:1;pointer-events:auto}#review .rpause .t,#review .rseek .t{font-family:var(--serif);letter-spacing:.12em;text-align:center;font-size:26px}#review .rpause .s,#review .rseek .s{color:var(--faint);text-align:center;margin-top:10px;font-size:13px}#review .rpause{cursor:pointer}#review .rnote .box{border-radius:var(--r-xl);background:var(--panel2);border:1px solid var(--line);width:min(560px,100vw - 32px);padding:22px 24px 20px;box-shadow:0 24px 60px #00000080}#review .rnote .t{font-family:var(--serif);font-size:20px;font-weight:700}#review .rnote .ctx{border-radius:var(--r-s);color:var(--muted);background:#ffffff0a;margin:12px 0;padding:10px 12px;font-size:13px;line-height:1.65}#review .rnote .ctx span{min-width:40px;color:var(--faint);display:inline-block}#review .kinds{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}#review .kinds button{border:1px solid var(--line2);height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 11px;font-size:12.5px}#review .kinds button.on{border-color:var(--accent);color:var(--accent);background:var(--accent-d)}#review .rnote .btns{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}#review .nt .sy{color:var(--bad);margin-top:4px;font-size:11.5px}#review .nt .sy.ok{color:var(--ok);opacity:.8}#review .rnote .btns .hint{color:var(--faint);align-self:center;margin-right:auto;font-size:12px}#review .rsound{background:var(--panel2);color:var(--accent);z-index:3;border:1px solid #f2b25c8c;border-radius:999px;padding:8px 18px;font-size:13.5px;animation:1.6s ease-in-out infinite pulse;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}#photos{pointer-events:none;z-index:3;position:absolute;inset:0}#photos .motes{width:100%;height:100%;position:absolute;inset:0}#photos .ph{opacity:0;width:min(30vw,470px);transform:translate(46px, 18px) rotate(calc(var(--tilt) + 3deg)) scale(.94);filter:blur(8px);transition:opacity 1.6s var(--ease), transform 1.8s var(--ease), filter 1.6s var(--ease);margin:0;position:absolute;top:13vh;right:5vw}#photos .ph.in{opacity:1;transform:rotate(var(--tilt));filter:none}#photos .ph.left{top:10vh;left:3vw;right:auto}#photos .ph.out{opacity:0;transform:translate(var(--tx), var(--ty)) rotate(8deg) scale(.08);filter:blur(2px);transition:opacity 1.1s ease-in,transform 1.15s cubic-bezier(.55,0,.75,.35),filter 1.1s}#photos .print .paper{background:linear-gradient(160deg,#f3ead6,#e3d6ba 70%,#d8c9a8);border-radius:3px;padding:14px 14px 50px;position:relative;box-shadow:0 40px 90px #0009,0 6px 20px #00000059,inset 0 0 40px #785a282e}#photos .print .paper:before{content:"";z-index:-1;opacity:0;background:radial-gradient(closest-side,#ffc47859,#ffaa5a1a 55%,#0000 75%);border-radius:40px;transition:opacity 2.4s .6s;position:absolute;inset:-60px}#photos .ph.in .paper:before{opacity:1;animation:5s ease-in-out 2.4s infinite alternate phGlow}@keyframes phGlow{0%{opacity:var(--ph-glow)}to{opacity:calc(var(--ph-glow) * .6)}}#photos .img{aspect-ratio:var(--ar,4 / 3);background:#16120c;position:relative;overflow:hidden}#photos .img img{object-fit:cover;width:100%;height:100%;transform-origin:var(--fx) var(--fy);filter:brightness(.08)contrast(.5)sepia()blur(3px);transition:filter 3.2s cubic-bezier(.3,.1,.2,1) .3s;display:block;transform:scale(1.02)}#photos .print.in .img img{filter:brightness()contrast(1.06)sepia(.28)saturate(.9);animation:22s ease-out .3s forwards kenburns}@keyframes kenburns{to{transform:scale(1.12)}}#photos .print .img:after{content:"";background:linear-gradient(105deg,#0000 38%,#fff0d252 50%,#0000 62%);position:absolute;inset:-20%;transform:translate(-120%)}#photos .print.in .img:after{animation:2.6s ease-in-out 1.4s forwards sheen}@keyframes sheen{to{transform:translate(120%)}}#photos .hand{font-family:"SahHand", var(--serif);color:#282016cc;font-size:26px;position:absolute;bottom:10px;right:20px;transform:rotate(-3deg)}#photos figcaption{color:var(--ink);text-shadow:0 2px 10px #000000e6;opacity:0;transition:opacity 1.2s ease 1.8s, transform 1.2s var(--ease) 1.8s;margin:16px 6px 0;transform:translateY(8px)}#photos .ph.in figcaption{opacity:1;transform:none}#photos figcaption span{font-family:var(--serif);font-size:16.5px;line-height:1.55;display:block}#photos figcaption small{color:#f3efe69e;letter-spacing:.02em;margin-top:4px;font-size:12px;display:block}#photos figcaption em{letter-spacing:.24em;color:var(--elec);margin-bottom:4px;font-size:12px;font-style:normal;display:block}#photos .plate{width:min(40vw,620px);top:10vh}#photos .plate .glass{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(160deg,#142234e0,#060a14eb);border:1px solid #7fd6ff59;border-radius:16px;padding:12px;box-shadow:inset 0 0 0 1px #7fd6ff14,0 30px 90px #000000a6,0 0 60px #5ab4ff2e}#photos .plate .img{background:#05070c;border-radius:8px}#photos .plate .img img{object-fit:contain;filter:brightness(0)blur(4px);transition:filter 2.4s .4s}#photos .plate .scan{mix-blend-mode:screen;background:linear-gradient(90deg,#0000,#7fd6ff47,#d2f5ff8c 50%,#7fd6ff47,#0000);width:22%;position:absolute;top:0;bottom:0;left:-25%}#photos .plate.in .scan{animation:2.8s cubic-bezier(.4,0,.2,1) .9s forwards scan}@keyframes scan{to{left:105%}}#photos .note{opacity:0;transition:opacity .8s ease, transform .8s var(--ease);transition-delay:var(--d);font-style:normal;position:absolute;transform:translateY(4px)}#photos .plate.in .note{opacity:1;transform:none}#photos .note b{background:var(--c,#ffd27a);width:10px;height:10px;box-shadow:0 0 14px 4px var(--c,#ffd27a);border-radius:50%;position:absolute;top:-5px;left:-5px}#photos .note span{white-space:nowrap;color:#0b0f18;background:var(--c,#ffd27a);border-radius:7px;padding:3px 9px;font-size:13px;font-weight:600;position:absolute;top:-30px;left:10px;box-shadow:0 0 18px #ffd27a66}#photos.wall .ph.onwall{top:11vh;right:7vw}#photos.wall .ph.back{opacity:.55;transform:translate(calc(var(--k) * -4.2vw), calc(var(--k) * 2.2vh)) rotate(calc(var(--tilt) * -1.4)) scale(calc(1 - var(--k) * .08));filter:blur(calc(var(--k) * .8px)) brightness(.7)}#archiveBtn.pulse{animation:1.3s ease-out arcPulse}@keyframes arcPulse{0%{box-shadow:0 0 #f2b25cb3}to{box-shadow:0 0 0 22px #f2b25c00}}body.play #photos .ph{width:min(22vw,320px);top:auto;bottom:22vh}@media (width<=800px){#photos .ph{width:44vw;right:3vw}#photos .plate{width:60vw}}#archive .entry img{filter:sepia(.25);border-radius:4px;width:100%;margin-top:10px;display:block;box-shadow:0 8px 24px #00000080}#photos .plate{--tilt:0deg}#photos .ph{width:min(30vw, 470px, calc(60vh * var(--ar,1.33)))}#photos .plate{width:min(40vw, 620px, calc(58vh * var(--ar,1.6)))}.astrip{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:14px 0 6px;display:grid}.astrip:has(figure:only-child){grid-template-columns:1fr}.astrip figure{margin:0}.astrip img{aspect-ratio:4/3;object-fit:cover;filter:sepia(.25)contrast(1.05);border-radius:4px;width:100%;box-shadow:0 10px 26px #00000080}.astrip figure:only-child img{aspect-ratio:auto;object-fit:contain;background:#0c0c0e;max-height:34vh}.astrip figcaption{color:#f3efe6d1;margin-top:6px;font-size:12.5px;line-height:1.5}.astrip figcaption small{color:var(--faint);font-size:11px;display:block}#photos .ph.in.back{opacity:.5;transform:translate(calc(var(--k) * -5vw), calc(var(--k) * -3vh)) rotate(calc(var(--tilt) * -1)) scale(calc(1 - var(--k) * .12));filter:blur(calc(var(--k) * 1px)) brightness(.7)}#photos .ph.back figcaption{opacity:0}#photos figcaption{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(90deg,#06080cb8,#06080c61);border-radius:10px;margin-left:0;margin-right:0;padding:10px 12px}#photos.wall .ph.onwall{width:min(38vw, 600px, calc(56vh * var(--ar,1.33)));top:10vh;right:12vw}#photos.wall .ph.onwall.in.back{opacity:.62;transform:translate(calc(var(--k) * -15vw), calc(var(--k) * 4vh)) rotate(calc(var(--tilt) * -2.2)) scale(calc(1 - var(--k) * .16));filter:blur(calc(var(--k) * .6px)) brightness(.62) sepia(.3)}#archive .entry img{object-fit:cover;object-position:50% 30%;max-height:220px}#photos{--ph-b:.86;--ph-s:.55;--ph-sep:.35;--ph-tint:#2828321f;--ph-paper:.8;--ph-glow:.7;--ph-plate:.9}#photos .print.in .img img{filter:brightness(var(--ph-b)) contrast(.92) sepia(var(--ph-sep)) saturate(var(--ph-s));transition:filter 3.2s cubic-bezier(.3,.1,.2,1) .3s}#photos .print .paper{background:linear-gradient(rgba(10, 12, 18, calc(1 - var(--ph-paper))), rgba(10, 12, 18, calc(1 - var(--ph-paper)))), linear-gradient(160deg, #f3ead6, #e3d6ba 70%, #d8c9a8)}#photos .hand{opacity:calc(var(--ph-paper) + .1)}#photos .print .img:before{content:"";z-index:1;pointer-events:none;background:radial-gradient(ellipse 80% 75% at 45% 40%, transparent 45%, #0000006b 100%), var(--ph-tint);mix-blend-mode:multiply;transition:background 1.5s;position:absolute;inset:0}#photos .img{box-shadow:inset 0 0 50px #00000073}#photos .print .img img{z-index:0;position:relative}#photos .print .img:after{z-index:2}#photos .ph.in .paper:before{opacity:var(--ph-glow)}#photos .plate.in .img img{filter:brightness(var(--ph-plate)) contrast(1.02) saturate(.85)}#photos .plate .img:before{content:"";z-index:1;pointer-events:none;background:var(--ph-tint);mix-blend-mode:multiply;opacity:.7;position:absolute;inset:0}#photos .plate .scan,#photos .plate .note{z-index:2}
