@font-face{font-family:Playfair BP;src:url(../fonts/playfair.woff2) format("woff2");font-weight:400 900;font-display:swap}@font-face{font-family:Inter BP;src:url(../fonts/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--paper:#fdfaf4;--paper2:#f6f0e4;--card:#fffdf9;--ink:#1b1916;--ink2:#3a352d;--muted:#6f685d;--line:#e9e0cf;--line2:#f1ebdd;--oc:#3d5af1;--oc-d:#2a3fb8;--oc-soft:#e3e8ff;--oc-btn:#3149d1;--accent:var(--oc);--accent-d:var(--oc-d);--accent-soft:var(--oc-soft);--accent-btn:var(--oc-btn);--ok:#2f9e63;--near:#e0a21f;--err:#d4313b;--serif:"Playfair BP","Playfair Display",Georgia,"Times New Roman",serif;--sans:"Inter BP",system-ui,-apple-system,Segoe UI,sans-serif;--tech:"Chakra Petch","Inter BP",system-ui,sans-serif;--shadow:0 1px 0 rgba(27,25,22,.03),0 14px 34px -16px rgba(60,40,20,.28);--ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.34,1.56,.64,1);--cyan:#18e0ff;--violet:#a160ff;--pink:#ff4d8d;--gold:#ffc53a;--hud-top: calc(env(safe-area-inset-top) + 8px) }*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#03040a;color:#e8f6ff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}canvas#c{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}button{font-family:inherit;color:inherit}.hidden{display:none!important}.center{text-align:center}.small{font-size:13px}.muted{color:var(--muted)}#hud{position:fixed;left:0;right:0;top:0;z-index:10;padding:var(--hud-top) max(14px,env(safe-area-inset-left)) 0;pointer-events:none;font-family:var(--tech);text-shadow:0 0 10px rgba(24,224,255,.55)}.hud-row{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;max-width:560px;margin:0 auto}.hud-cell{display:flex;align-items:baseline;gap:4px;min-width:90px}.hud-cell small{font-size:10px;letter-spacing:.2em;color:#7fb7d6;margin-right:4px;align-self:center}.hud-cell b{font-size:28px;line-height:1;font-weight:700;color:#e9fbff;font-variant-numeric:tabular-nums}.hud-cell span{font-size:13px;color:#7fb7d6}.hud-cell.mid{flex-direction:column;align-items:center;gap:0;min-width:0}.hud-cell.mid small{margin:0}.hud-cell.right{justify-content:flex-end}.hud-row.sub{margin-top:6px;align-items:center;font-size:11px;letter-spacing:.16em;color:#7fb7d6}#hStreak{display:flex;align-items:center;gap:5px}#hStreak i{width:16px;height:6px;border-radius:2px;background:#ffc53a2e;box-shadow:inset 0 0 0 1px #ffc53a73;transition:background .2s,box-shadow .2s}#hStreak i.on{background:var(--gold);box-shadow:0 0 10px var(--gold)}#hStreak span{margin-left:4px}#mute{pointer-events:auto;display:grid;place-items:center;width:44px;height:44px;margin:-10px -10px -10px 0;border:0;background:transparent;color:#bfe9ff;cursor:pointer;border-radius:12px}#mute .x{display:none}#mute[aria-pressed=true] .x{display:block}#mute[aria-pressed=true] .w1,#mute[aria-pressed=true] .w2{display:none}#mute:focus-visible{outline:2px solid var(--cyan)}#tapHint{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 12px);transform:translate(-50%);z-index:9;font:600 12px/1 var(--tech);letter-spacing:.3em;color:#9fdcff;opacity:.75;pointer-events:none;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.25}}#pops{position:fixed;inset:0;pointer-events:none;z-index:11;overflow:hidden}.pop{position:absolute;transform:translate(-50%,-50%);font:700 26px/1 var(--tech);letter-spacing:.08em;white-space:nowrap;opacity:0;will-change:transform,opacity}.pop.perfect{color:#fff3c4;text-shadow:0 0 8px var(--gold),0 0 22px var(--gold),0 0 44px #ff9a1a;font-size:32px}.pop.close{color:#d8fbff;text-shadow:0 0 8px var(--cyan),0 0 20px var(--cyan),-2px 0 0 rgba(255,77,141,.7),2px 0 0 rgba(24,224,255,.7);font-size:28px}.pop.lost{color:#ffd0d6;text-shadow:0 0 10px #ff3348;font-size:22px}.pop.small{font-size:16px;color:#fff3c4;text-shadow:0 0 10px var(--gold)}.pop.pts{font-size:14px;color:#bfe9ff;text-shadow:0 0 8px var(--cyan)}@keyframes popup{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}30%{transform:translate(-50%,-70%) scale(1)}to{opacity:0;transform:translate(-50%,-190%) scale(.96)}}@keyframes popclose{0%{filter:none}10%{filter:hue-rotate(90deg)}20%{filter:none}30%{filter:hue-rotate(-60deg)}40%{filter:none}}#bigText{position:fixed;left:0;right:0;top:34%;z-index:12;text-align:center;pointer-events:none;font:700 clamp(40px,13vw,76px)/1 var(--tech);letter-spacing:.06em;color:#fff7d6;text-shadow:0 0 12px var(--gold),0 0 40px var(--gold),0 0 90px #ff8a00}#bigText small{display:block;font-size:.3em;letter-spacing:.4em;margin-top:12px;color:#ffe6a3}#bigText.fail{color:#ffd6dc;text-shadow:0 0 12px #ff3348,0 0 40px #ff3348}@keyframes bigin{0%{opacity:0;transform:scale(1.6);filter:blur(8px)}12%{opacity:1;transform:scale(.96);filter:none}16%{transform:translate(-6px) scale(1)}20%{transform:translate(5px)}24%{transform:none}to{opacity:1}}#checkpoint{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(80% 60% at 50% 45%,#03040a8c,#03040adb);animation:fadein .35s var(--ease)}.cp-in{width:100%;max-width:380px;text-align:center;font-family:var(--tech);padding:22px 18px 18px;border-radius:22px;background:linear-gradient(180deg,#121634d1,#080a1ae6);box-shadow:0 0 0 1px #ffc53a73,0 0 40px #ffc53a2e,inset 0 0 40px #3d5af126;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:cpbeat 1s infinite}.cp-k{font-size:11px;letter-spacing:.3em;color:#ffcf66}.cp-in h2{margin:6px 0 4px;font:700 30px/1.05 var(--tech);color:#fff3cf;text-shadow:0 0 18px rgba(255,197,58,.6)}.cp-now{font-size:15px;color:#bcd3ff}.cp-now b{color:#fff;font-size:20px}.cp-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 10px}.cp-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:92px;border-radius:16px;border:0;cursor:pointer;font-family:var(--tech);touch-action:manipulation;transition:transform .15s var(--spring),opacity .2s,filter .2s}.cp-btn b{font-size:28px;letter-spacing:.12em;line-height:1}.cp-btn span{font-size:12px;letter-spacing:.04em;opacity:.85}.cp-btn.bank{background:linear-gradient(180deg,#1de2ff,#0a8fc7);color:#02131c;box-shadow:0 0 24px #18e0ff73}.cp-btn.push{background:linear-gradient(180deg,#ffd35a,#ff7a1a);color:#2a1300;box-shadow:0 0 28px #ffa0288c}.cp-btn:active{transform:scale(.96)}.cp-btn[disabled]{opacity:.35;filter:saturate(.3);pointer-events:none}.cp-risk{margin:4px 4px 10px;font:500 13px/1.4 var(--sans);color:#a9b6d8}.cp-arm{height:3px;border-radius:2px;background:#ffffff14;overflow:hidden}.cp-arm i{display:block;height:100%;width:0;background:linear-gradient(90deg,#18e0ff,#ffc53a)}#checkpoint.arming .cp-arm i{animation:arm .7s linear forwards}@keyframes arm{to{width:100%}}@keyframes cpbeat{0%,to{box-shadow:0 0 0 1px #ffc53a73,0 0 40px #ffc53a2e,inset 0 0 40px #3d5af126}12%{box-shadow:0 0 0 1px #ffc53ae6,0 0 60px #ffc53a59,inset 0 0 40px #3d5af140}}@keyframes fadein{0%{opacity:0}}.paper{color:var(--ink)}.sheet-wrap{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;background:#03040a00;transition:background .3s;pointer-events:none}.sheet-wrap.on{background:#03040a61;pointer-events:auto}.sheet{width:100%;max-width:520px;max-height:92dvh;overflow:auto;background:var(--paper);border-radius:28px 28px 0 0;padding:10px 22px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px -20px #0009;transform:translateY(105%);transition:transform .38s var(--ease);touch-action:pan-y;user-select:text;-webkit-user-select:text}.sheet-wrap.on .sheet{transform:none}@media (min-width:760px){.sheet-wrap{align-items:center}.sheet{border-radius:28px;max-width:440px;transform:translateY(110vh)}}.sheet-wrap:not(.on) .sheet{visibility:hidden;transition:transform .38s var(--ease),visibility 0s .38s}.sheet .grab{width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 12px}.sheet h1,.sheet h2{font-family:var(--serif);font-weight:600;line-height:1.05;letter-spacing:-.01em;margin:0}.sheet h1{font-size:clamp(40px,11vw,52px)}.sheet h2{font-size:28px;margin-bottom:4px}.kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-d);font-weight:700;margin-bottom:6px}.lede{font-size:17px;color:var(--ink2);margin:10px 0 0}.row{display:grid;gap:10px;margin-top:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;border:0;background:var(--ink);color:#fff;font:600 16px/1 var(--sans);cursor:pointer;text-decoration:none;letter-spacing:.01em;transition:transform .16s var(--spring),filter .15s;touch-action:manipulation;box-shadow:0 8px 18px -10px #1b1916b3}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.96)}.btn.ghost{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.accent{background:var(--accent-btn);box-shadow:0 10px 20px -10px var(--accent-d)}.btn.block{display:flex;width:100%}.btn[disabled]{opacity:.4;pointer-events:none}.btn:focus-visible,.linkbtn:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 60%,#fff);outline-offset:2px}.linkbtn{border:0;background:none;padding:10px 0;font:500 14px var(--sans);color:var(--ink2);text-decoration:underline;cursor:pointer}.mstats,.rstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0}.mstats>div,.rstats>div{padding:10px 6px;border-radius:16px;background:var(--card);box-shadow:var(--shadow);text-align:center}.mstats b,.rstats b{display:block;font:600 26px/1.05 var(--serif)}.mstats span,.rstats span{font-size:12px;color:var(--muted)}.mfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:13px;color:var(--muted)}.mfoot a{color:var(--ink2);padding:10px 0}.rbig{font:600 46px/1.05 var(--serif);margin:6px 0 0;font-variant-numeric:tabular-nums}#rGlyph{display:block;width:max-content;margin:12px auto 2px;font:18px/1.2 system-ui,"Apple Color Emoji","Segoe UI Emoji",sans-serif;letter-spacing:2px;white-space:pre;background:var(--paper2);border-radius:14px;padding:12px 16px;text-align:center}#rNote{margin:6px 0 0}#rNext{margin:10px 0 0}.howto-stage{height:200px;border-radius:20px;background:#070a18;position:relative;overflow:hidden;margin:8px 0 12px}.hdemo{position:absolute;inset:0}.hdemo .cell{position:absolute;width:26px;height:26px;border-radius:5px;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.hdemo .cell.v{background:var(--violet);box-shadow:0 0 12px var(--violet)}.hdemo .cell.g{background:var(--gold);box-shadow:0 0 16px var(--gold)}.hdemo .cell.fall{animation:hfall .9s ease-in forwards}.hdemo .slot{position:absolute;width:26px;height:26px;border-radius:5px;box-shadow:inset 0 0 0 1px #78a0ff2e}.hdemo .tap{position:absolute;left:50%;bottom:16px;transform:translate(-50%);font:600 12px var(--tech);letter-spacing:.24em;color:#9fdcff}.hdemo .lbl{position:absolute;font:700 18px var(--tech);letter-spacing:.06em;color:#fff3c4;text-shadow:0 0 10px var(--gold)}.hdemo .choice{position:absolute;top:58%;padding:8px 14px;border-radius:10px;font:700 15px var(--tech);letter-spacing:.12em}.hdemo .choice.b{background:#16c8ec;color:#02131c}.hdemo .choice.p{background:#ffb13a;color:#2a1300}@keyframes hfall{to{transform:translate(18px,140px) rotate(70deg);opacity:0}}.howto-steps{display:flex;gap:6px;justify-content:center;margin-top:8px}.howto-steps i{width:8px;height:8px;border-radius:50%;background:var(--line);transition:all .3s}.howto-steps i.on{width:22px;border-radius:4px;background:var(--accent)}.howto-cap{min-height:48px;text-align:center;font-weight:500;color:var(--ink2);margin:0}.howto-bar{height:3px;border-radius:2px;background:var(--line2);margin-top:12px;overflow:hidden}.howto-bar i{display:block;height:100%;width:0;background:var(--accent)}#howto.on .howto-bar i{animation:hbar 10s linear forwards}@keyframes hbar{to{width:100%}}#toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 24px);transform:translate(-50%);z-index:60;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font:600 14px var(--sans)}#debug{position:fixed;left:6px;bottom:6px;z-index:70;margin:0;padding:6px 8px;border-radius:8px;background:#0009;color:#9f9;font:11px/1.35 ui-monospace,monospace;pointer-events:none;white-space:pre}#fatal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:var(--paper);color:var(--ink);text-align:center;padding:24px}#fatal b{font:600 26px var(--serif)}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
