:root{--bg-void: #050608;--bg-app: #0e1116;--bg-panel: #161a21;--bg-raised: #1f2530;--bg-raised-hi: #2a313f;--bg-sunken: #0a0c10;--sensor-bg: var(--bg-void);--text: #eaeef5;--text-dim: #8a93a6;--text-faint: #545c6e;--axis-ink: #b3bed3;--neon-cyan: #34e9ff;--neon-cyan-dim: #6fb9c8;--neon-gold: #ffcf3d;--neon-magenta: #ff3d7a;--neon-green: #3dffa0;--cyan-rgb: 52 233 255;--gold-rgb: 255 207 61;--gold-fill: var(--neon-gold);--magenta-rgb: 255 61 122;--green-rgb: 61 255 160;--band-easy: var(--neon-green);--band-medium: var(--neon-cyan);--band-hard: var(--neon-gold);--band-xh: var(--neon-magenta);--band-easy-rgb: var(--green-rgb);--band-medium-rgb: var(--cyan-rgb);--band-hard-rgb: var(--gold-rgb);--band-xh-rgb: var(--magenta-rgb);--text-rgb: 234 238 245;--tut-empty: #6fd3ff;--tut-empty-rgb: 111 211 255;--accent-fill-from: #34e9ff;--accent-fill-to: #1fb8cc;--accent-fill-ink: #04262b;--bust-fill: #ff3d7a;--bust-fill-ink: #1a0308;--on-shape: #0b0c0f;--p0: #2dd4ee;--p1: #1fb37e;--p2: #ffd83d;--p3: #e08a1e;--p4: #a56bf5;--p5: #2f7bdb;--p-open: #8b93a5;--ink-rgb: 0 0 0;--chip-lip: rgb(var(--ink-rgb) / .5);--chip-cast: rgb(var(--ink-rgb) / .35);--chip-cast-hi: rgb(var(--ink-rgb) / .4);--sensor-recess: rgb(var(--ink-rgb) / .65);--cell-recess: rgb(var(--ink-rgb) / .35);--cell-recess-faint: rgb(var(--ink-rgb) / .25);--dot-ring: rgb(var(--ink-rgb) / .5);--dot-well: rgb(var(--ink-rgb) / .55);--dot-floor: rgb(var(--gloss-rgb) / .2);--dot-lip: rgb(var(--gloss-rgb) / .1);--x-bevel: rgb(var(--gloss-rgb) / .7);--sheet-cast: rgb(var(--ink-rgb) / .6);--sheet-cast-up: rgb(var(--ink-rgb) / .55);--menu-cast: rgb(var(--ink-rgb) / .65);--bar-cast: rgb(var(--ink-rgb) / .5);--socket-cast: rgb(var(--ink-rgb) / .55);--metal-0: #fff4cd;--metal-1: #ffe58c;--metal-2: #ffd351;--metal-3: #ffcf3d;--metal-4: #eba71b;--metal-5: #b16e09;--metal-lip: #794302;--bronze-0: #ffd29c;--bronze-1: #f8ab62;--bronze-2: #e98c42;--bronze-3: #cf7131;--bronze-4: #a8561f;--bronze-5: #6e3814;--bronze-lip: #4a240c;--bronze-glow: rgb(255 140 50 / .55);--silver-0: #f6feff;--silver-1: #e4eaf2;--silver-2: #cfd6e1;--silver-3: #adb7c8;--silver-4: #8792a7;--silver-5: #6a7488;--silver-lip: #3e4656;--silver-glow: rgb(214 236 255 / .3);--metal-glow: rgb(var(--gold-rgb) / .35);--trophy-ink: var(--on-shape);--trophy-ink-opacity: .86;--trophy-rim: transparent;--trophy-part-bloom: .45;--fun-0: #5d687c;--fun-1: #303846;--fun-2: #232a36;--fun-3: #171c25;--fun-4: #0b0e13;--fun-lip: #06080b;--fun-neon: var(--neon-cyan);--fun-halo: rgb(var(--cyan-rgb) / .2);--fun-glow-opacity: .7;--fun-disc: #07090d;--edge-rgb: 255 255 255;--edge-hair: rgb(var(--edge-rgb) / .06);--edge-line: rgb(var(--edge-rgb) / .1);--edge-line-hi: rgb(var(--edge-rgb) / .14);--edge-sheet: rgb(var(--edge-rgb) / .12);--edge-sensor: rgb(var(--edge-rgb) / .03);--gloss-rgb: 255 255 255;--gloss-chip: rgb(var(--gloss-rgb) / .12);--gloss-chip-hi: rgb(var(--gloss-rgb) / .16);--gloss-chip-lo: rgb(var(--gloss-rgb) / .08);--gloss-shape: rgb(var(--gloss-rgb) / .15);--gloss-shape-ring: rgb(var(--gloss-rgb) / .75);--gloss-glint: rgb(var(--gloss-rgb) / .7);--gloss-fill-edge: rgb(var(--gloss-rgb) / .2);--scrim-rgb: 5 6 8;--scrim-overlay: rgb(var(--scrim-rgb) / .32);--scrim-menu: rgb(var(--scrim-rgb) / .6);--scrim-rules: rgb(var(--scrim-rgb) / .72);--sheet-fade: color-mix(in srgb, var(--bg-void) 92%, transparent);--ring-gap: rgb(var(--scrim-rgb) / .8);--cursor-ring: #fff;--bust-ring: #fff;--star-socket-hi: #090c11;--star-socket-mid: #141a23;--star-socket-lo: #28313f;--star-socket-shade-rgb: 0 0 0;--star-socket-lit-rgb: 158 175 200;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--ease-pop: cubic-bezier(.34, 1.56, .64, 1);--page-max: 1240px;--rail: 300px}:root[data-theme=light]{--bg-void: #ccd4e2;--bg-app: #dfe5ee;--bg-panel: #f7f9fd;--bg-raised: #e8edf6;--bg-raised-hi: #ffffff;--bg-sunken: #dde3ee;--sensor-bg: #c6cfdd;--text: #0f1524;--text-dim: #4f586e;--text-faint: #78829a;--axis-ink: #495468;--neon-cyan: #0a5f75;--neon-cyan-dim: #2f6577;--neon-gold: #804d00;--neon-magenta: #c01043;--neon-green: #0a7a48;--cyan-rgb: 10 95 117;--gold-rgb: 232 164 0;--gold-fill: #d69a00;--magenta-rgb: 192 16 67;--green-rgb: 10 122 72;--text-rgb: 15 21 36;--tut-empty: #1a6a97;--tut-empty-rgb: 26 106 151;--accent-fill-from: #0c7d95;--accent-fill-to: #0a6f88;--accent-fill-ink: #ffffff;--ink-rgb: 30 41 59;--chip-lip: rgb(var(--ink-rgb) / .16);--chip-cast: rgb(var(--ink-rgb) / .12);--chip-cast-hi: rgb(var(--ink-rgb) / .16);--sensor-recess: rgb(var(--ink-rgb) / .22);--cell-recess: rgb(var(--ink-rgb) / .14);--cell-recess-faint: rgb(var(--ink-rgb) / .1);--dot-ring: rgb(var(--ink-rgb) / .45);--dot-well: rgb(var(--ink-rgb) / .4);--dot-floor: rgb(255 255 255 / .4);--dot-lip: rgb(255 255 255 / .95);--x-bevel: rgb(255 255 255 / .75);--sheet-cast: rgb(var(--ink-rgb) / .18);--sheet-cast-up: rgb(var(--ink-rgb) / .14);--menu-cast: rgb(var(--ink-rgb) / .2);--bar-cast: rgb(var(--ink-rgb) / .12);--edge-rgb: 15 23 42;--edge-hair: rgb(var(--edge-rgb) / .1);--edge-line: rgb(var(--edge-rgb) / .14);--edge-line-hi: rgb(var(--edge-rgb) / .2);--edge-sheet: rgb(var(--edge-rgb) / .14);--edge-sensor: rgb(var(--edge-rgb) / .1);--gloss-chip: transparent;--gloss-chip-hi: transparent;--gloss-chip-lo: transparent;--scrim-rgb: 15 23 42;--scrim-overlay: rgb(var(--scrim-rgb) / .18);--scrim-menu: rgb(var(--scrim-rgb) / .34);--scrim-rules: rgb(var(--scrim-rgb) / .42);--ring-gap: rgb(255 255 255 / .9);--cursor-ring: #0f1524;--bust-ring: rgb(15 23 42 / .85);--star-socket-hi: #b6bfd0;--star-socket-mid: #d2d8e3;--star-socket-lo: #f0f2f7;--star-socket-shade-rgb: 100 116 139;--star-socket-lit-rgb: 255 255 255;--socket-cast: transparent;--bronze-glow: rgb(var(--ink-rgb) / .2);--silver-glow: rgb(var(--ink-rgb) / .24);--metal-glow: rgb(var(--ink-rgb) / .2);--trophy-rim: rgb(var(--ink-rgb) / .22);--trophy-part-bloom: 0;--fun-0: #ffffff;--fun-1: #ffffff;--fun-2: #f1f4f9;--fun-3: #dfe5ee;--fun-4: #a9b4c6;--fun-lip: #8e9ab0;--fun-halo: rgb(var(--ink-rgb) / .2);--fun-glow-opacity: .18;--fun-disc: #1b2230}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}*{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}html,body{margin:0;padding:0;height:100%;overscroll-behavior:none;background:var(--bg-void);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{font-family:inherit}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem clamp(.75rem,4vw,2rem);padding-top:max(1.25rem,calc(env(safe-area-inset-top) + .35rem));max-width:var(--page-max);margin:0 auto}header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(.6rem,2vw,1.4rem);padding:.45rem .5rem .45rem 1.1rem;background:var(--bg-panel);border:1px solid var(--edge-hair);border-radius:var(--radius-lg)}.wordmark{flex:none;margin:0;font-size:.95rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--neon-cyan);text-shadow:0 0 14px rgb(var(--cyan-rgb) / .35)}.stats{display:flex;flex:1;align-items:baseline;justify-content:center;gap:clamp(1rem,3.5vw,2.25rem);flex-wrap:wrap}.stat{display:inline-flex;align-items:baseline;gap:.35rem;min-width:0;white-space:nowrap}.stat .k{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.stat b{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:1rem;font-weight:700;color:var(--text)}.stat-band[data-practice]{color:var(--neon-gold);font-weight:700}.stat-band{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.menu-toggle{display:flex;flex:none;gap:.55rem;min-width:44px;height:44px;padding:0 .7rem;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-dim);cursor:pointer;transition:color .12s ease,background .12s ease;-webkit-tap-highlight-color:transparent}.menu-toggle:hover{color:var(--text);background:var(--bg-raised)}.menu-word{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.menu-bars{position:relative;width:18px;height:2px;border-radius:2px;background:currentColor}.menu-bars:before,.menu-bars:after{content:"";position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor}.menu-bars:before{top:-6px}.menu-bars:after{top:6px}.menu-toggle[aria-expanded=true]{color:var(--neon-cyan)}main{display:grid;grid-template-columns:minmax(0,1fr) var(--rail);gap:1.25rem;align-items:stretch;flex:1;min-height:0}#stage{position:relative;display:flex;align-items:center;justify-content:center;padding:clamp(.75rem,3vw,1.75rem);background:var(--bg-panel);border:1px solid var(--edge-hair);border-radius:var(--radius-lg);max-width:100%;min-height:50vh;overflow-x:clip}.board-loader{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;border-radius:inherit;background:var(--bg-panel);color:var(--text);font-weight:700;letter-spacing:.02em}.board-loader[hidden]{display:none}.board-loader-track{width:clamp(9rem,32vw,14rem);height:4px;overflow:hidden;border-radius:999px;background:rgb(var(--cyan-rgb) / .16)}.board-loader-scan{display:block;width:38%;height:100%;border-radius:inherit;background:var(--neon-cyan);box-shadow:0 0 12px rgb(var(--cyan-rgb) / .45);animation:board-loader-scan 1.15s ease-in-out infinite}@keyframes board-loader-scan{0%{transform:translate(-110%)}to{transform:translate(300%)}}#stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle,rgb(var(--gold-rgb) / .6),rgb(var(--cyan-rgb) / .18) 45%,transparent 72%);mix-blend-mode:screen;opacity:0}#side{display:flex;flex-direction:column;gap:.9rem;min-width:0;align-self:start}#progress{margin:0;min-height:1.25em;color:var(--text-dim);font-size:.85rem}.rail-action{display:flex;flex-direction:column;gap:.5rem;padding:.7rem .75rem;background:var(--bg-panel);border:1px solid var(--edge-hair);border-radius:var(--radius-lg)}.btn.hint-action{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:2.9rem;border-color:rgb(var(--gold-rgb) / .35);background:rgb(var(--gold-rgb) / .08);color:var(--neon-gold);letter-spacing:.02em}.btn.hint-action:hover:not(:disabled){background:rgb(var(--gold-rgb) / .16)}.hint-action-name{font-weight:700}.hint-action-key,.legend kbd{padding:.05rem .4rem;border:1px solid var(--edge-line-hi);border-radius:4px;background:var(--bg-sunken);color:var(--text-dim);font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.68rem;font-weight:700;line-height:1.5}.hint-action:disabled .hint-action-key{color:var(--text-faint)}.cell.tutorial-target{--tut-hue: var(--text);--tut-glow: rgb(var(--text-rgb) / .45);z-index:3;outline:2px dashed var(--tut-hue);outline-offset:2px;box-shadow:0 0 0 2px var(--ring-gap),0 0 14px var(--tut-glow)}.cell.tutorial-target.role-shape{--tut-hue: var(--neon-gold);--tut-glow: rgb(var(--gold-rgb) / .72)}.cell.tutorial-target.role-empty{--tut-hue: var(--tut-empty);--tut-glow: rgb(var(--tut-empty-rgb) / .6)}.cell.tutorial-target.role-unknown{--tut-hue: var(--p4);--tut-glow: color-mix(in srgb, var(--p4) 60%, transparent)}.cell.tutorial-target.role-sensor{--tut-hue: var(--text);--tut-glow: rgb(var(--text-rgb) / .45)}.cell.tutorial-target.tutorial-act{outline-style:solid;outline-width:3px;animation:tutorial-act-pulse 1.2s ease-in-out infinite}@keyframes tutorial-act-pulse{0%,to{box-shadow:0 0 0 2px var(--ring-gap),0 0 8px var(--tut-glow)}50%{box-shadow:0 0 0 2px var(--ring-gap),0 0 24px 4px var(--tut-glow)}}.cell.tutorial-given:after{content:"given";position:absolute;right:2px;bottom:1px;color:var(--text-dim);font-size:clamp(.33rem,calc(var(--cell) * .12),.55rem);letter-spacing:.04em;text-transform:uppercase}.tutorial-control-focus,.bank-item.tutorial-focus{outline:2px solid var(--neon-gold);outline-offset:2px;box-shadow:0 0 16px rgb(var(--gold-rgb) / .45)}.dump{width:100%;height:9rem;padding:.6rem;border:1px solid var(--edge-hair);border-radius:var(--radius-sm);background:var(--bg-sunken);color:var(--text-dim);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;line-height:1.35;white-space:pre;resize:vertical}.dump[data-empty]{height:0;padding:0;border:0;overflow:hidden}.msg{position:fixed;left:0;right:0;bottom:calc(1.25rem + env(safe-area-inset-bottom));z-index:90;width:fit-content;max-width:min(28rem,calc(100% - 1.5rem));margin-inline:auto;padding:.5rem .9rem;border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-raised-hi) 94%,transparent);box-shadow:0 6px 20px var(--bar-cast);color:var(--neon-gold);font-size:.9rem;line-height:1.35;text-align:center;text-wrap:balance;opacity:0;transform:translateY(.4rem);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.msg[data-shown]{opacity:1;transform:translateY(0)}.app-update{position:fixed;top:calc(max(1.25rem,env(safe-area-inset-top) + .35rem) + 46px + 1.4rem);left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));z-index:140;display:flex;width:min(100%,28rem);min-height:56px;align-items:stretch;margin-inline:auto;border:1px solid rgb(var(--cyan-rgb) / .5);border-radius:var(--radius-lg);background:var(--bg-panel);color:var(--text);box-shadow:0 6px 24px #00000059}.app-update[hidden]{display:none}.app-update-copy{display:grid;flex:1 1 auto;min-width:0;align-content:center;gap:.1rem;padding:.55rem .7rem}.app-update-copy strong{color:var(--neon-cyan);font-size:.88rem;line-height:1.25}.app-update-copy span{color:var(--text-dim);font-size:.76rem;line-height:1.3}.app-update-action,.app-update-close{border:0;background:none;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.app-update-action{flex:0 0 auto;padding:0 .75rem;color:var(--neon-gold);font-size:.82rem;font-weight:700}.app-update-close{flex:0 0 44px;width:44px;border-radius:0 var(--radius-lg) var(--radius-lg) 0;color:var(--text-dim)}.app-update-action:hover,.app-update-action:focus-visible,.app-update-close:hover,.app-update-close:focus-visible{color:var(--text)}.app-update-action:focus-visible,.app-update-close:focus-visible{outline:2px solid var(--neon-cyan);outline-offset:-3px}.app-update-action:disabled,.about-update button:disabled{opacity:.55;cursor:wait}@media (max-width: 700px),(max-height: 500px) and (pointer: coarse),(pointer: coarse) and (orientation: portrait){.app-update{top:calc(max(.25rem,env(safe-area-inset-top) + .2rem) + 44px + .5rem)}}@media (pointer: fine) and (min-width: 701px){.msg{left:auto;right:calc(max(0px,(100vw - var(--page-max)) / 2) + clamp(.75rem,4vw,2rem));bottom:calc(2.9rem + env(safe-area-inset-bottom));width:auto;max-width:min(var(--rail),calc(100vw - 2rem));margin-inline:0;text-align:left;text-wrap:pretty;transform:translate(.6rem)}.msg[data-shown]{transform:translate(0)}}#shape-bank,#hint-why{background:var(--bg-panel);border:1px solid var(--edge-hair);border-radius:var(--radius-lg);padding:.75rem .9rem}#hint-why{border-color:rgb(var(--cyan-rgb) / .35);border-left-width:3px}#hint-why-text,.hint-summary{margin:0;font-size:.85rem;line-height:1.5;color:var(--text)}.hint-proof-toggle{display:flex;align-items:center;gap:.35rem;margin:.45rem 0 0;padding:.3rem 0;min-height:2.75rem;border:0;background:none;color:var(--neon-cyan);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.hint-proof-toggle:after{content:"›";font-size:1rem;line-height:1;transition:transform .14s ease}.hint-proof-toggle[aria-expanded=true]:after{transform:rotate(90deg)}.hint-proof-toggle[aria-expanded=true]+#hint-why-text{margin-top:.35rem;padding-top:.45rem;border-top:1px solid rgb(var(--cyan-rgb) / .2)}.hint-headline{margin:0 0 .4rem;font-size:.85rem;line-height:1.45;font-weight:700;color:var(--neon-gold)}.ref{color:var(--neon-cyan);font-weight:700}#hint-why .hint-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}#hint-why .hint-head h2{margin:0}.hint-close{flex:none;margin:-.4rem -.5rem 0 0;padding:.4rem .5rem;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-dim);font:inherit;font-size:1.05rem;line-height:1;cursor:pointer}.hint-close:hover{color:var(--neon-cyan);background:rgb(var(--cyan-rgb) / .12)}.hint-proof-toggle:hover{color:var(--text)}#shape-bank h2,#hint-why h2{margin:0 0 .6rem;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text-dim)}.bank-grid{--box: 48px;--bit: 8px;--bit-gap: 2px;display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.bank-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:inherit;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.3rem .15rem;border:1px solid var(--edge-hair);border-radius:var(--radius-sm);background:var(--bg-raised);cursor:pointer;transition:border-color .12s ease,background .12s ease,opacity .12s ease}.bank-item:hover:not(.used){border-color:var(--edge-line-hi);background:var(--bg-raised-hi)}.bank-item.used{cursor:default}.bank-shape-box{width:var(--box);height:var(--box);display:flex;align-items:center;justify-content:center}.bank-shape{display:grid;grid-template-columns:repeat(var(--sw),var(--bit));grid-template-rows:repeat(var(--sh),var(--bit));gap:var(--bit-gap)}.bank-shape .bit{width:var(--bit);height:var(--bit);border-radius:2px;background:var(--text-faint)}.bank-letter{font-size:.8rem;font-weight:700;color:var(--text-dim);letter-spacing:.02em}.bank-item.p0{--pc: var(--p0)}.bank-item.p1{--pc: var(--p1)}.bank-item.p2{--pc: var(--p2)}.bank-item.p3{--pc: var(--p3)}.bank-item.p4{--pc: var(--p4)}.bank-item.p5{--pc: var(--p5)}.bank-item.used{background:color-mix(in srgb,var(--pc) 16%,var(--bg-raised));border-color:color-mix(in srgb,var(--pc) 55%,transparent)}.bank-item.used .bank-shape .bit{background:var(--pc);opacity:.65}.bank-item.used .bank-letter{color:var(--pc);text-decoration:line-through;text-decoration-color:var(--pc);text-decoration-thickness:2px}.bank-item.ruled-out{background:var(--bg-sunken);border-color:var(--edge-hair)}.bank-item.ruled-out:hover{background:color-mix(in srgb,var(--bg-sunken) 82%,var(--bg-raised-hi));border-color:var(--edge-line-hi)}.bank-shape-box{position:relative}.bank-item.ruled-out .bank-shape-box:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;background:linear-gradient(to bottom right,transparent calc(50% - 1.25px),var(--neon-magenta) calc(50% - 1.25px),var(--neon-magenta) calc(50% + 1.25px),transparent calc(50% + 1.25px));pointer-events:none}.bank-item.ruled-out .bank-shape .bit{background:var(--text-faint);opacity:.35}.bank-item.ruled-out .bank-letter{color:var(--text-faint);opacity:.7}#frame{--label: 18px;display:grid;grid-template-columns:var(--label) auto;grid-template-rows:var(--label) auto;gap:4px;transform-origin:top center;transition:transform .28s var(--ease-pop)}#col-labels{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(var(--cols),var(--cell));gap:4px}#row-labels{grid-column:1;grid-row:2;display:grid;grid-auto-rows:var(--cell);gap:4px}.axis{display:flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:700;letter-spacing:.08em;line-height:1;color:var(--axis-ink);font-variant-numeric:tabular-nums;transition:color .12s linear}.axis.on{color:var(--neon-cyan);text-shadow:0 0 6px rgb(var(--cyan-rgb) / .75)}.axis-strip.tutorial-axis-focus{border-radius:999px;background:rgb(var(--gold-rgb) / .18)}.axis-strip.tutorial-axis-focus .axis{color:var(--neon-gold);text-shadow:none}#board{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-auto-rows:var(--cell);gap:4px;perspective:800px;max-width:100%}.cell{box-sizing:border-box;width:100%;height:100%;margin:0;padding:0;border:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;font-weight:700;color:var(--text)}.cell.clue{background:var(--sensor-bg);cursor:default;box-shadow:inset 0 2px 5px var(--sensor-recess),inset 0 0 0 1px var(--edge-sensor)}.cell.clue .arrows-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.cell.clue .arrow-head{fill:var(--neon-cyan);filter:drop-shadow(0 0 2px rgb(var(--cyan-rgb) / .7))}.cell.clue .arrow-shaft{stroke:var(--neon-cyan);stroke-width:6;stroke-linecap:round}.cell.hidden{background:linear-gradient(160deg,var(--bg-raised-hi),var(--bg-raised));cursor:pointer;box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 1px 0 var(--gloss-chip);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.cell.hidden:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 5px 0 var(--chip-lip),0 10px 16px var(--chip-cast-hi),inset 0 1px 0 var(--gloss-chip-hi)}.cell.hidden:active{transform:translateY(1px);box-shadow:0 1px 0 var(--chip-lip),0 2px 4px var(--chip-cast-hi),inset 0 1px 0 var(--gloss-chip-lo);filter:brightness(.96)}.cell.p0{--pc: var(--p0)}.cell.p1{--pc: var(--p1)}.cell.p2{--pc: var(--p2)}.cell.p3{--pc: var(--p3)}.cell.p4{--pc: var(--p4)}.cell.p5{--pc: var(--p5)}.cell.hit{background:var(--pc, var(--p-open));cursor:default;box-shadow:inset 0 2px 6px var(--cell-recess),inset 0 -1px 0 var(--gloss-shape);color:var(--on-shape);animation:cell-open .32s var(--ease-pop) both}@keyframes cell-open{0%{transform:scale(.55) rotateY(85deg);opacity:0;filter:brightness(2.2)}60%{transform:scale(1.08) rotateY(0);opacity:1;filter:brightness(1.1)}to{transform:scale(1) rotateY(0);filter:brightness(1)}}.cell.done{box-shadow:inset 0 2px 6px var(--cell-recess-faint),0 0 3px 0 var(--pc),0 0 7px 1px var(--pc),inset 0 0 0 2px var(--gloss-shape-ring);filter:saturate(1.35)}.cell.bust{background:var(--bust-fill);color:var(--bust-fill-ink);box-shadow:0 0 0 2px var(--bust-ring),0 0 14px 4px rgb(var(--magenta-rgb) / .85),0 0 34px 12px rgb(var(--magenta-rgb) / .55);z-index:2}.cell.shown{background:color-mix(in srgb,var(--pc) 22%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--pc) 55%,transparent);color:var(--text-faint);cursor:default}.cell.hint{animation:hint-pulse 1.1s ease-in-out infinite}@keyframes hint-pulse{0%,to{box-shadow:0 0 0 2px var(--neon-cyan),0 0 rgb(var(--cyan-rgb) / .55)}50%{box-shadow:0 0 0 3px var(--neon-cyan),0 0 20px 6px rgb(var(--cyan-rgb) / .6)}}.cell.hint-wrong{animation:hint-pulse-wrong 1.1s ease-in-out infinite}@keyframes hint-pulse-wrong{0%,to{box-shadow:0 0 0 2px var(--neon-magenta),0 0 rgb(var(--magenta-rgb) / .55)}50%{box-shadow:0 0 0 3px var(--neon-magenta),0 0 20px 6px rgb(var(--magenta-rgb) / .6)}}.cell.hint-ctx{box-shadow:inset 0 0 0 2px rgb(var(--cyan-rgb) / .75)}#stage.flash:after{animation:stage-flash .35s ease-out}@keyframes stage-flash{0%{opacity:0}15%{opacity:.85}to{opacity:0}}#stage.flash.lock:after{animation:stage-lock-flash .75s ease-out}@keyframes stage-lock-flash{0%{opacity:0}12%{opacity:1}to{opacity:0}}.lock-size{position:absolute;left:50%;top:26%;z-index:21;pointer-events:none;font-weight:800;font-style:italic;font-size:calc(1.6rem + var(--size, 1) * .75rem);letter-spacing:.04em;color:var(--neon-cyan);text-shadow:0 0 16px rgb(var(--cyan-rgb) / .9),0 0 46px rgb(var(--cyan-rgb) / .5);animation:lock-size 1.1s var(--ease-pop) forwards}@keyframes lock-size{0%{transform:translate(-50%,10%) scale(.5) rotate(-8deg);opacity:0}18%{transform:translate(-50%,-10%) scale(1.25) rotate(-3deg);opacity:1}60%{transform:translate(-50%,-35%) scale(1) rotate(0);opacity:.9}to{transform:translate(-50%,-110%) scale(.9) rotate(2deg);opacity:0}}.board-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:15}.spark{position:absolute;width:calc(var(--cell, 34px) * .11);height:calc(var(--cell, 34px) * .11);border-radius:50%;pointer-events:none;background:var(--neon-gold);box-shadow:0 0 8px rgb(var(--gold-rgb) / .9);opacity:0;animation:spark-fly var(--t, .5s) ease-out var(--delay, 0ms) forwards}@keyframes spark-fly{0%{transform:translate(-50%,-50%) rotate(var(--a, 0deg)) translate(0) scale(1);opacity:1}to{transform:translate(-50%,-50%) rotate(var(--a, 0deg)) translate(var(--d, 60%)) scale(.2);opacity:0}}#board{position:relative}.fx-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:14}:root{view-transition-name:none}::view-transition{clip-path:var(--dive-clip, none)}::view-transition-group(dive-old),::view-transition-group(dive-new){transform-origin:0 0;animation:none}::view-transition-old(dive-old),::view-transition-new(dive-new){animation:none}#frame.diving *{transition:none!important}.dive-portal{background:var(--bg-panel)!important;box-shadow:inset 0 0 0 2px rgb(var(--gold-rgb)),0 0 18px rgb(var(--gold-rgb) / .55)!important}.dive-portal>*{visibility:hidden}.fx-node{position:absolute;width:calc(var(--fx-r, 60px) * 2);height:calc(var(--fx-r, 60px) * 2);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(0)}.fx-ring{border:2px solid var(--fx-c, var(--neon-cyan));box-shadow:0 0 10px var(--fx-c, var(--neon-cyan)),inset 0 0 10px var(--fx-c, var(--neon-cyan));animation:fx-ring .7s cubic-bezier(.2,.7,.3,1) forwards}.fx-ring-sensor{border-width:1.5px;animation-duration:.62s;animation-delay:var(--fx-ring-delay, 0ms)}.fx-shock{animation-duration:.8s}.fx-shock-2{animation-delay:90ms;border-width:1px}.fx-shock-clear{border-width:3px;animation-duration:1.1s;animation-delay:var(--fx-ring-delay, 0ms);will-change:transform,opacity}#board .cell.fx-wave{z-index:1;will-change:transform;animation:fx-wave .62s ease-out var(--fx-delay, 0ms)}@keyframes fx-wave{0%,to{transform:none}35%{transform:translateY(-8%) scale(1.08)}}@keyframes fx-ring{0%{transform:translate(-50%,-50%) scale(.05);opacity:.95}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.fx-bloom{background:radial-gradient(circle,color-mix(in srgb,var(--fx-c) 55%,transparent) 0%,transparent 65%);animation:fx-bloom .8s ease-out forwards}@keyframes fx-bloom{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}to{transform:translate(-50%,-50%) scale(1.3);opacity:0}}.cell.fx-settled{animation:none}.cell.fx-in{animation:fx-in .52s var(--ease-pop) var(--fx-delay, 0ms) both}@keyframes fx-in{0%{transform:translateY(-30%) scale(.4);opacity:0}70%{transform:translateY(0) scale(1.06);opacity:1}to{transform:none}}.cell.clue.fx-ignite .arrows-svg{animation:fx-draw .42s ease-out var(--fx-ignite, 0ms) both}@keyframes fx-draw{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:none}}.cell.clue.fx-ignite:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0}.cell.clue.fx-ignite:before{box-shadow:0 0 14px 2px rgb(var(--cyan-rgb) / .55);animation:fx-glow-pulse .6s ease-out var(--fx-ignite, 0ms)}@keyframes fx-glow-pulse{25%{opacity:1}}.cell.fx-slam,.cell.fx-close{z-index:1}.cell.hit.fx-slam{animation:fx-slam .52s var(--ease-pop) var(--fx-delay, 0ms) both}@keyframes fx-slam{0%{transform:scale(1.35);opacity:0;filter:brightness(3.2) saturate(.2)}35%{transform:scale(.92);opacity:1;filter:brightness(2) saturate(.6)}70%{transform:scale(1.04);filter:brightness(1.2)}to{transform:none;filter:none}}.cell.done.fx-close{animation:fx-close .7s ease-out var(--fx-delay, 0ms)}@keyframes fx-close{0%{filter:saturate(1.35) brightness(1)}30%{filter:saturate(1.35) brightness(1.9);box-shadow:0 0 6px 1px var(--fx-c),0 0 18px 4px var(--fx-c);transform:scale(1.08)}to{filter:saturate(1.35) brightness(1)}}.fx-bodies{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.cell.done.fx-slab{background:transparent;box-shadow:none}.fx-glint{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fx-glint-band{position:absolute;background:linear-gradient(135deg,transparent 42%,var(--gloss-glint) 50%,transparent 58%);will-change:transform;animation:fx-glint .65s cubic-bezier(.4,0,.6,1) both}@keyframes fx-glint{0%{transform:translate(-100%,-100%)}to{transform:translate(100%,100%)}}.fx-body-fill{fill:var(--fx-c);filter:saturate(1.35)}.fx-body-seam{fill:none;stroke:color-mix(in srgb,var(--fx-c) 55%,rgb(var(--ink-rgb)));stroke-width:1.5}.fx-outlines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:13}.fx-edge path{fill:none;stroke-linejoin:round}.fx-outline{stroke:color-mix(in srgb,var(--fx-c) 45%,rgb(var(--gloss-rgb)));stroke-width:2.5}.fx-glow-1,.fx-glow-2,.fx-glow-3{stroke:var(--fx-c)}.fx-glow-1{stroke-width:5;opacity:.4}.fx-glow-2{stroke-width:10;opacity:.2}.fx-glow-3{stroke-width:18;opacity:.1}.fx-landing{position:absolute;overflow:visible;pointer-events:none}.fx-landing-body{z-index:12}.fx-landing-edge{z-index:13}.fx-land{animation:fx-outline-in .46s cubic-bezier(.2,.7,.3,1) .12s both}@keyframes fx-outline-in{0%{opacity:0;transform:scale(1.18)}60%{opacity:1}to{opacity:1;transform:none}}.fx-wipe{position:absolute;left:0;right:0;overflow:hidden;pointer-events:none}.fx-wipe-out{animation:fx-wipe-out var(--fx-sweep-ms) var(--fx-sweep-ease, linear) both}.fx-wipe-out>.fx-wipe-inner{animation:fx-wipe-out-inner var(--fx-sweep-ms) var(--fx-sweep-ease, linear) both}.fx-wipe-inner{position:absolute;top:0;right:0;bottom:0;left:0}@keyframes fx-wipe-out{0%{transform:none}to{transform:translateY(calc(-1 * var(--fx-h)))}}@keyframes fx-wipe-out-inner{0%{transform:none}to{transform:translateY(var(--fx-h))}}.fx-chip{position:absolute;border-radius:var(--radius-sm);background:linear-gradient(rgb(var(--gold-rgb) / .22),rgb(var(--gold-rgb) / .22)),linear-gradient(160deg,var(--bg-raised-hi),var(--bg-raised));box-shadow:inset 0 0 0 2px rgb(var(--gold-rgb) / .85)}.fx-sweep{position:absolute;left:0;right:0;pointer-events:none;background:repeating-linear-gradient(to bottom,rgb(0 240 255 / .22) 0 1px,transparent 1px 4px),linear-gradient(to bottom,rgb(255 255 255 / .95) 0,rgb(0 240 255 / .9) 2px,rgb(255 40 200 / .55) 5px,rgb(0 240 255 / .18) 30%,transparent 100%);box-shadow:0 -3px 16px 3px #00f0ff99;animation:fx-sweep var(--fx-sweep-ms) var(--fx-sweep-ease, linear) both,fx-sweep-out .22s ease-out var(--fx-sweep-ms) forwards}@keyframes fx-sweep{0%{transform:translateY(var(--fx-h))}to{transform:none}}@keyframes fx-sweep-out{to{opacity:0}}.fx-hold .fx-wipe-out,.fx-hold .fx-wipe-inner,.fx-hold .fx-sweep,.fx-hold .fx-pop,.fx-hold .fx-ghosts{animation-play-state:paused}.fx-pop{position:absolute;z-index:12;pointer-events:none;animation:fx-glitch var(--fx-pop-ms) steps(1,end) var(--fx-delay, 0ms) both;will-change:transform,opacity}.fx-pop>svg,.fx-ghost{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}@keyframes fx-glitch{0%{opacity:.01;transform:translate(-5px) scale(1.06,.9)}12%{opacity:1;transform:translate(4px) scale(.96,1.04)}24%{opacity:.35;transform:translate(-3px,1px)}36%{opacity:1;transform:translate(2px) scale(1.03,.97)}50%{opacity:1;transform:translate(-1px)}64%,to{opacity:1;transform:none}}.fx-ghosts{position:absolute;top:0;right:0;bottom:0;left:0;animation:fx-ghosts var(--fx-pop-ms) steps(4,end) var(--fx-delay, 0ms) both;will-change:opacity}.fx-ghost path{stroke:none}.fx-ghost-c{transform:translate(-4px)}.fx-ghost-c path{fill:#00f0ffbf}.fx-ghost-m{transform:translate(4px)}.fx-ghost-m path{fill:#ff28c8b3}@keyframes fx-ghosts{0%{opacity:.01}1%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.fx-layer{display:none}.fx-land{animation:none}.cell.fx-in,.cell.clue.fx-ignite,.cell.clue.fx-ignite:before,.cell.clue.fx-ignite .arrows-svg,.cell.hit.fx-slam,.cell.done.fx-close,#board .cell.fx-wave{animation:none}}#stage.chill{animation:stage-chill 1.2s ease-out}@keyframes stage-chill{0%{filter:none}25%{filter:saturate(.15) brightness(.72)}to{filter:none}}.cell.lock-dud{animation:lock-dud 1.2s ease-out}@keyframes lock-dud{0%{opacity:1}30%{opacity:.25;transform:scale(.94)}to{opacity:1}}#app.shake{animation:app-shake .4s linear}@keyframes app-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:clamp(.5rem,2vh,1rem);background:var(--scrim-overlay);border-radius:inherit;z-index:10}.overlay[hidden]{display:none}#app:has(#overlay:not([hidden])) #keys{visibility:hidden}#overlay{position:fixed;pointer-events:none;z-index:150;padding-bottom:max(clamp(.5rem,2vh,1rem),env(safe-area-inset-bottom));background:none}#ov-panel{pointer-events:auto}#ov-toggle{align-self:center;min-height:44px;margin-bottom:.25rem}:root #overlay.result-collapsed #ov-panel.panel{min-height:0;padding:.25rem 1rem max(.25rem,env(safe-area-inset-bottom))}#overlay.result-collapsed #ov-panel>:not(#ov-toggle){display:none}#stage:has(>#overlay:not([hidden])) #frame{transform:scale(var(--overlay-zoom, 1))}#stage:has(>#unrated-ask:not([hidden])) #frame{transform:scale(.5)}.panel{background:var(--bg-panel);border:1px solid var(--edge-line);border-radius:var(--radius-lg);padding:.85rem 1.25rem;text-align:center;max-width:min(94%,420px);box-shadow:0 20px 60px var(--sheet-cast)}.panel h2{margin:0 0 .4rem;font-size:1.25rem;letter-spacing:.03em}.panel p{margin:0 0 .9rem;color:var(--text-dim);font-size:.9rem;line-height:1.45}@media not ((pointer: coarse) or (max-width: 700px)){:root:not([data-touch-ui]) #ov-panel{min-width:34rem;max-width:min(94%,42rem);padding:1.5rem 2rem 1.15rem}:root:not([data-touch-ui]) #overlay:not(.result-collapsed) #ov-panel{position:relative}:root:not([data-touch-ui]) #overlay:not(.result-collapsed) #ov-toggle{position:absolute;top:.75rem;left:.75rem;margin:0}}@media (max-height: 1000px){#ov-keys{display:none}}#unrated-ask .unrated-choices{display:flex;flex-direction:column;gap:.75rem;align-items:stretch}.stars-row{font-size:2rem;letter-spacing:.15em;color:var(--neon-gold);margin:.2rem 0 .4rem}.stars-row:empty{display:none}.panel .ov-prompt{margin:0 0 .5rem;font-size:.82rem;letter-spacing:.02em}.overlay .choices{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center}.overlay .choices[hidden]{display:none}#ov-choices:not([hidden]){display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%;gap:.5rem}#ov-choices button{min-width:0;min-height:48px;padding:.55rem .25rem}@media not ((pointer: coarse) or (max-width: 700px)){:root:not([data-touch-ui]) #ov-choices:not([hidden]){width:auto;justify-content:center;grid-auto-columns:minmax(0,9rem)}:root:not([data-touch-ui]) #ov-choices.one-choice:not([hidden]){grid-auto-columns:minmax(0,14rem)}}#ov-keys{margin-top:.85rem}#ov-choices .choice-sub{white-space:nowrap}#ov-choices .btn.quiet{background:var(--bg-raised);border:1px solid var(--edge-line-hi);color:var(--text);padding:.55rem .25rem}#ov-choices .btn.quiet .choice-label{text-decoration:none}#ov-choices .choice-label{font-size:min(.88rem,14.5px);font-weight:600;line-height:1.15;text-align:center}#ov-choices button[data-band]{--band: var(--band-medium);--band-rgb: var(--cyan-rgb);--band-fill: var(--band);--band-on: var(--on-shape)}#ov-choices button[data-band=easy]{--band: var(--band-easy);--band-rgb: var(--band-easy-rgb)}#ov-choices button[data-band=hard]{--band: var(--band-hard);--band-rgb: var(--band-hard-rgb)}#ov-choices button[data-band=extra-hard]{--band: var(--band-xh);--band-rgb: var(--band-xh-rgb)}:root[data-theme=light] #ov-choices button[data-band]{--band-on: #ffffff}:root[data-theme=light] #ov-choices button[data-band=hard]{--band-fill: var(--gold-fill);--band-on: var(--on-shape)}#ov-choices button[data-band].quiet{border-color:rgb(var(--band-rgb) / .55);background:linear-gradient(180deg,rgb(var(--band-rgb) / .16),rgb(var(--band-rgb) / .04) 65%),var(--bg-raised);box-shadow:inset 0 1px rgb(var(--band-rgb) / .32);color:var(--text)}#ov-choices button[data-band].quiet:hover:not(:disabled){border-color:rgb(var(--band-rgb) / .85)}#ov-choices button[data-band].primary{border-color:var(--band-fill);background:var(--band-fill);color:var(--band-on);box-shadow:0 0 20px rgb(var(--band-rgb) / .55)}#ov-bust-choices:not([hidden]){margin-top:.35rem}#ov-bust-choices .btn.quiet{text-decoration:underline}.btn.quiet{background:none;border:none;color:var(--text-dim);text-decoration:underline;padding:.3rem .5rem}.btn.quiet:hover{color:var(--text)}.overlay .choices button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;line-height:1.15}.choice-sub{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.66rem;font-weight:600;letter-spacing:.03em;text-transform:lowercase;text-decoration:none;opacity:.72}.btn.quiet{text-decoration:none}.btn.quiet .choice-label{text-decoration:underline}.overlay.bust .panel{border-color:rgb(var(--magenta-rgb) / .55);box-shadow:0 0 50px rgb(var(--magenta-rgb) / .35),0 -14px 34px var(--sheet-cast-up)}.overlay.bust .panel h2{color:var(--neon-magenta);text-shadow:0 0 16px rgb(var(--magenta-rgb) / .6)}.overlay.win .panel{border-color:rgb(var(--green-rgb) / .5);box-shadow:0 0 50px rgb(var(--green-rgb) / .3),0 -14px 34px var(--sheet-cast-up)}.overlay.win .panel h2{color:var(--neon-green);text-shadow:0 0 16px rgb(var(--green-rgb) / .55)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--edge-line);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--text);padding:.7rem 1rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.btn:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px);filter:brightness(.95)}.btn:disabled{cursor:not-allowed;transform:none;box-shadow:none;filter:grayscale(.6);opacity:.5}.btn.primary{background:linear-gradient(160deg,var(--accent-fill-from),var(--accent-fill-to));border-color:var(--gloss-fill-edge);color:var(--accent-fill-ink);box-shadow:0 0 18px rgb(var(--cyan-rgb) / .35)}.btn.primary:disabled,.btn.ghost:disabled{background:var(--bg-raised);color:var(--text-faint);border-color:var(--edge-hair);box-shadow:none}.btn.ghost{background:transparent;border-color:var(--edge-line-hi);color:var(--text-dim)}#mobile-toolbar{position:fixed;left:0;right:0;bottom:0;z-index:100;display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-top:1px solid var(--edge-line-hi);background:color-mix(in srgb,var(--bg-sunken) 94%,transparent);box-shadow:0 -8px 24px var(--bar-cast)}#mobile-toolbar button{display:grid;grid-template-rows:auto auto .95em;align-content:center;justify-items:center;row-gap:1px}.mode-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0;min-height:48px;padding:4px 2px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);font-size:.64rem;font-weight:700;line-height:1.1;cursor:pointer}.mode-icon{font-size:1.15rem;line-height:1}.hint-icon:before{content:"?"}.empty-icon:before{content:"●"}.shape-icon:before{content:"■"}.lock-icon:before{content:"✓"}.auto-icon:before{content:"A"}.empty-icon{color:var(--text-dim)}.shape-icon{color:var(--neon-gold)}.tool-sub{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.58rem;font-weight:700;letter-spacing:.02em;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lock-badge{color:var(--text-dim);font-variant-numeric:tabular-nums;transition:color .15s ease,text-shadow .15s ease}.lock-badge.ready{color:var(--neon-gold);text-shadow:0 0 10px rgb(var(--gold-rgb) / .55)}.mode-btn[aria-pressed=true]{border-color:rgb(var(--cyan-rgb) / .6);background:rgb(var(--cyan-rgb) / .14);color:var(--neon-cyan);box-shadow:inset 0 0 0 1px rgb(var(--cyan-rgb) / .15),0 0 12px rgb(var(--cyan-rgb) / .15)}.tool-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;display:flex;align-items:center;gap:.4rem;height:48px;padding:0 .9rem;border:1px solid rgb(var(--gold-rgb) / .35);border-radius:var(--radius-md);background:linear-gradient(rgb(var(--gold-rgb) / .08),rgb(var(--gold-rgb) / .08)),color-mix(in srgb,var(--bg-sunken) 94%,transparent);box-shadow:0 6px 18px var(--bar-cast);color:var(--text);font-family:inherit;font-size:.75rem;font-weight:700;line-height:1;cursor:pointer}.tool-btn:active:not(:disabled){background:linear-gradient(rgb(var(--gold-rgb) / .18),rgb(var(--gold-rgb) / .18)),color-mix(in srgb,var(--bg-sunken) 94%,transparent)}.tool-btn:disabled{cursor:not-allowed;filter:grayscale(.6);opacity:.45}.hint-icon{color:var(--neon-gold);font-size:1.05rem}.control-copy-icon{display:inline-block;min-width:1em;margin-right:.28em;font-size:.95em;text-align:center;vertical-align:-.05em}.hint-budget{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.7rem;font-weight:700;letter-spacing:.02em;color:var(--neon-gold)}.tool-btn:disabled .hint-budget,.tool-btn:disabled .hint-icon{color:var(--text-faint)}:root[data-touch-ui] #mobile-toolbar{display:grid}:root{--history-reserve: calc(.9rem + 48px) }.history-icon{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.history-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.btn.history-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .6rem;font-size:.85rem}#touch-actions{position:fixed;left:max(.6rem,env(safe-area-inset-left));right:max(.6rem,env(safe-area-inset-right));bottom:calc(5.2rem + env(safe-area-inset-bottom));z-index:80;display:none;justify-content:space-between;align-items:flex-end;gap:.5rem;pointer-events:none}#touch-actions #hint-touch{padding:0 .75rem;flex-shrink:0}.history-pair{pointer-events:auto;display:flex;gap:2px;padding:3px;border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-sunken) 94%,transparent);box-shadow:0 6px 18px var(--bar-cast)}.history-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:.3rem;height:40px;padding:0 .55rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-family:inherit;font-size:.75rem;font-weight:700;cursor:pointer}.history-chip .history-icon{color:var(--neon-cyan);width:1.25em;height:1.25em}.history-chip:active:not(:disabled){background:rgb(var(--cyan-rgb) / .14)}.history-chip:disabled{color:var(--text-faint);cursor:not-allowed}.history-chip:disabled .history-icon{color:inherit}.lock-all-btn{pointer-events:auto;border-color:rgb(var(--green-rgb) / .5);background:linear-gradient(rgb(var(--green-rgb) / .12),rgb(var(--green-rgb) / .12)),color-mix(in srgb,var(--bg-sunken) 94%,transparent);color:var(--neon-green);box-shadow:0 6px 18px var(--bar-cast),0 0 12px rgb(var(--green-rgb) / .18);padding:0 .65rem;gap:.35rem;white-space:nowrap;flex-shrink:0}.lock-all-btn[hidden]{display:none!important}.lock-all-btn .lock-icon{color:var(--neon-green)}.lock-all-btn #lock-all-label{white-space:nowrap}.lock-all-btn .lock-all-count{font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.7rem;font-weight:700;color:var(--neon-green);overflow:visible;text-overflow:clip;white-space:nowrap;flex-shrink:0}.lock-all-btn:active:not(:disabled){background:linear-gradient(rgb(var(--green-rgb) / .24),rgb(var(--green-rgb) / .24)),color-mix(in srgb,var(--bg-sunken) 94%,transparent)}.lock-all-btn.pressed,:root[data-theme=light] .lock-all-btn.pressed{border-color:var(--neon-green);background:linear-gradient(rgb(var(--green-rgb) / .4),rgb(var(--green-rgb) / .4)),color-mix(in srgb,var(--bg-sunken) 94%,transparent);box-shadow:0 0 22px rgb(var(--green-rgb) / .65)}:root[data-touch-ui] #touch-actions{display:flex}@media (max-height: 659px),(max-height: 719px) and (not (max-aspect-ratio: 375/665)){:root{--history-reserve: 0px}#mobile-toolbar{padding-left:calc(max(6px,env(safe-area-inset-left)) + 46px);padding-right:calc(max(6px,env(safe-area-inset-right)) + 82px)}#touch-actions{left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));bottom:calc(6px + env(safe-area-inset-bottom));z-index:101;align-items:stretch;height:48px}#touch-actions #lock-all-touch{display:none!important}#touch-actions .tool-btn{flex-direction:column;justify-content:center;gap:3px;width:42px;height:100%;padding:0;box-shadow:none}#touch-actions .tool-btn>span:not(.mode-icon),#touch-actions .history-chip>span{display:none}.history-pair{padding:0;border:0;box-shadow:none;background:transparent}.history-chip{justify-content:center;width:38px;height:100%;padding:0}}@media (min-height: 660px) and (max-height: 719px) and (max-aspect-ratio: 375/665){:root{--history-reserve: 31px}#touch-actions{bottom:calc(4rem + 3px + env(safe-area-inset-bottom))}#touch-actions .tool-btn{height:38px}.history-pair{padding:2px}.history-chip{height:32px}}:root[data-touch-ui] .rail-action,:root[data-touch-ui] #stat-hints,:root[data-touch-ui] #progress{display:none}:root[data-touch-ui] #app{padding-bottom:calc(4.75rem + var(--history-reserve) + env(safe-area-inset-bottom))}:root[data-touch-ui] .msg{left:0;right:0;bottom:calc(5.2rem + env(safe-area-inset-bottom));width:fit-content;margin-inline:auto;text-align:center}.hold-indicator{position:absolute;width:max(calc(var(--hold-cell, 45px) * 1.6),72px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}.hold-indicator svg{width:100%;height:100%;transform:rotate(-90deg)}.hold-indicator circle{fill:none;stroke:var(--neon-magenta);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:hold-progress var(--hold-ms, .45s) linear forwards}.hold-indicator circle.hold-glow{stroke-width:5.5;opacity:.35}@keyframes hold-progress{to{stroke-dashoffset:0}}:root[data-keys] .cell.cursor{outline:3px solid var(--cursor-ring);outline-offset:-3px}:root[data-keys] .cell.tutorial-target.cursor{outline-color:var(--tut-hue)}.cell.hidden.mark-empty:after,.cell.hidden.mark-shape:after{content:"";position:absolute;top:18%;right:18%;bottom:18%;left:18%;pointer-events:none}.cell.hidden.mark-empty:after{top:32%;right:32%;bottom:32%;left:32%;border-radius:50%;background:var(--text-dim);box-shadow:0 0 0 1px var(--dot-ring),0 1px 1px var(--dot-lip),inset 0 2px 3px var(--dot-well),inset 0 -1px 1px var(--dot-floor)}.cell.hidden.mark-shape:after{top:26%;right:26%;bottom:26%;left:26%;border-radius:var(--radius-sm);background:var(--gold-fill);filter:drop-shadow(0 -1px 0 var(--x-bevel)) drop-shadow(0 0 4px rgb(var(--gold-rgb) / .65));opacity:.55}.cell.hidden.mark-shape.mark-active:after{opacity:1}.cell.hidden.mark-shape:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:rgb(var(--gold-rgb) / .13);box-shadow:inset 0 0 0 2px rgb(var(--gold-rgb) / .45)}.cell.hidden.mark-shape.mark-active:before{background:rgb(var(--gold-rgb) / .22);box-shadow:inset 0 0 0 2px rgb(var(--gold-rgb) / .85)}#keys{margin:auto 0 0;padding:.15rem .25rem 0;color:var(--text-dim);font-size:.75rem;letter-spacing:.01em;text-align:center}.legend{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.2rem 1.1rem}.legend-group{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .75rem}.legend-label{color:var(--text-dim);font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.legend-item{display:inline-flex;align-items:baseline;gap:.3rem;white-space:nowrap}.legend-item kbd+kbd{margin-left:-.15rem}.legend kbd{min-width:1.5em;text-align:center}.lock-status{font-variant-numeric:tabular-nums;transition:color .15s ease,text-shadow .15s ease}.lock-status.ready{color:var(--neon-gold);font-weight:700;text-shadow:0 0 10px rgb(var(--gold-rgb) / .55)}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:block}.menu[hidden]{display:none}.menu-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim-menu)}.menu-sheet{position:absolute;top:calc(3rem + env(safe-area-inset-top));right:.4rem;display:flex;flex-direction:column;gap:.15rem;width:min(20rem,calc(100vw - 1.1rem));padding:.35rem;background:var(--bg-panel);border:1px solid var(--edge-sheet);border-radius:var(--radius-md);box-shadow:0 24px 60px var(--menu-cast);transform-origin:top right;animation:menu-in .14s var(--ease-pop)}@media (pointer: fine) and (min-width: 701px){.menu-sheet{top:calc(env(safe-area-inset-top) + 2.5rem + 46px);right:calc(max(0px,(100vw - var(--page-max)) / 2) + clamp(.75rem,4vw,2rem))}.menu-backdrop{background:transparent}}@keyframes menu-in{0%{opacity:0;transform:scale(.94) translateY(-8px)}}.menu-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:.7rem;min-height:46px;padding:0 .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:.95rem;font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--bg-raised)}.menu-item:disabled{color:var(--text-faint);cursor:not-allowed}.menu-glyph{width:1.1rem;text-align:center;font-size:1rem;color:var(--neon-cyan)}.menu-item:disabled .menu-glyph{color:var(--text-faint)}.menu-detail{margin-left:auto;color:var(--text-dim);font-size:.78rem;font-weight:500;font-variant-numeric:tabular-nums}.menu-item:disabled .menu-detail{color:var(--text-faint)}.menu-tiles{display:grid;grid-template-columns:6.6rem repeat(2,minmax(0,1fr));gap:2px;padding-bottom:.3rem;margin-bottom:.15rem;border-bottom:1px solid var(--edge-line-hi)}.menu-settings{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding-top:.3rem;padding-bottom:0;margin-top:.15rem;margin-bottom:0;border-top:1px solid var(--edge-line-hi);border-bottom:0}.menu-tile{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-width:0;min-height:60px;padding:9px 2px 6px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-family:inherit;font-size:.7rem;font-weight:700;line-height:1.1;text-align:center;cursor:pointer}.menu-tile:hover:not(:disabled),.menu-tile:focus-visible{background:var(--bg-raised)}.menu-tile:disabled{color:var(--text-faint);cursor:not-allowed}.menu-tile-caption{color:var(--text-dim);font-size:.65rem;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.menu-tile-icon{width:1.4rem;height:1.4rem;fill:none;stroke:var(--neon-cyan);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.menu-tile:disabled .menu-tile-icon{stroke:var(--text-faint)}.menu-off-slash{display:none}.menu-tile[aria-checked=false] .menu-off-slash{display:inline}.menu-tile[aria-checked=false] .menu-tile-icon{stroke:var(--text-dim)}.menu-tile[data-theme-now=dark] .menu-icon-sun,.menu-tile[data-theme-now=light] .menu-icon-moon{display:none}.menu-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.menu-pair .menu-item{padding:0 .5rem;gap:.5rem}.menu-pair:has(>[hidden]){grid-template-columns:minmax(0,1fr)}.menu-glyph-icon{display:block;width:1.1rem;height:1.1rem;margin:0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.menu-glyph-icon .menu-glyph-fill{fill:currentColor;stroke:none}.menu-about{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:center;min-height:32px;padding:0 .9rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);font:inherit;font-size:.78rem;font-weight:500;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.menu-about:hover,.menu-about:focus-visible{color:var(--text);background:var(--bg-raised)}#rules-popup,#about-popup,#boards-popup,#level-popup,#custom-popup,#rank-popup,#lb-view,#lbs-view,#daily-sheet,#lb-ask,#lb-delete-ask,#link-ask,#leave-ask,#share-ask,#name-ask,#via-ask{position:fixed;align-items:center;padding:1rem;padding-top:max(1rem,calc(env(safe-area-inset-top) + .5rem));padding-bottom:max(1rem,calc(env(safe-area-inset-bottom) + .5rem));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));background:var(--scrim-rules);z-index:200}#link-ask,#leave-ask,#share-ask,#name-ask,#via-ask{z-index:250}#lb-view{z-index:210}#lbs-view{z-index:205}#lb-ask,#lb-delete-ask{z-index:240}.share-choices .btn:not(#share-close){display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left}.share-choices .choice-sub{font-family:inherit;font-size:.75rem;font-weight:500;letter-spacing:0;text-transform:none}.panel .share-why{margin:-.35rem 0 0;color:var(--text-dim);font-size:.78rem;line-height:1.4;text-align:left}.name-field{display:block;margin:.75rem 0 .3rem;font-size:.82rem;font-weight:700;text-align:left}.name-input{box-sizing:border-box;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);background:var(--bg-sunken);color:var(--text);padding:.6rem .7rem;font:inherit;font-size:1rem}.name-input:focus-visible{outline:3px solid var(--neon-gold);outline-offset:1px}.profile-name{display:flex;flex-direction:column;gap:.3rem}.profile-name .profile-section-title{margin:0}.profile-body .profile-name-help{margin:0;color:var(--text-dim);font-size:.78rem}.profile-body #profile-lb-msg{margin:0;font-size:.78rem}.link-panel{max-height:100%;min-width:min(100%,20rem)}.link-choices{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;margin-top:.9rem}.rules-panel{position:relative;display:flex;flex-direction:column;gap:.7rem;max-width:min(100%,34rem);max-height:min(84vh,46rem,100%);padding:.9rem 1rem;text-align:left}.rules-panel h2{margin:0}.rules-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.35rem;padding-bottom:2rem}.rules-body h3{margin:1rem 0 .3rem;font-size:.66rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--neon-cyan-dim)}.rules-body h3:first-child{margin-top:0}.rules-body p{margin:0;color:var(--text-dim);font-size:.86rem;line-height:1.5}.rule-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.7rem;margin-bottom:1rem}.rule-tile{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0;padding:.7rem .6rem;border-radius:var(--radius-md);background:rgb(var(--ink-rgb) / .16);box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .22)}.rule-frame{--cell: 20px;--label: 12px;display:grid;grid-template-columns:var(--label) auto;grid-template-rows:var(--label) auto;gap:2px}.rule-cols{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(var(--cols),var(--cell));gap:2px}.rule-rows{grid-column:1;grid-row:2;display:grid;grid-auto-rows:var(--cell);gap:2px}.rule-frame .axis{font-size:.6rem;letter-spacing:.04em}.rule-grid{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-auto-rows:var(--cell);gap:2px}.rule-grid .cell.rule-claim{z-index:1;outline:2px solid var(--neon-cyan);outline-offset:1px;filter:drop-shadow(0 0 5px rgb(var(--cyan-rgb) / .65))}.rule-caption{margin:0;color:var(--text-dim);font-size:.78rem;line-height:1.4;text-align:center;text-wrap:balance}.rule-more>summary{cursor:pointer;padding:.35rem 0;font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--neon-cyan-dim)}.rule-more>summary:focus-visible{outline:2px solid var(--neon-cyan);outline-offset:2px}.rule-more[open]>summary{margin-bottom:.5rem}.rules-panel>.btn{align-self:stretch;flex:none}.about-panel{width:min(100%,24rem);gap:.9rem}.about-product{display:grid;gap:.28rem;padding:.8rem 0;border-block:1px solid var(--edge-hair)}.about-product strong{color:var(--neon-cyan);font-size:1rem;letter-spacing:.2em;text-transform:uppercase;text-shadow:0 0 14px rgb(var(--cyan-rgb) / .35)}.about-product span{color:var(--text-dim);font-size:.82rem}.about-product .about-version{color:var(--text-dim);font-variant-numeric:tabular-nums}.about-product a{color:var(--text)}.about-update{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:.75rem;padding:0 .5rem 0 .75rem;border:1px solid rgb(var(--cyan-rgb) / .45);border-radius:var(--radius-md);color:var(--neon-cyan);font-size:.84rem;font-weight:600}.about-update[hidden]{display:none}.about-update button{min-height:34px;padding:0 .7rem;border:1px solid rgb(var(--gold-rgb) / .45);border-radius:var(--radius-sm);background:var(--bg-raised);color:var(--neon-gold);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.about-update button:hover,.about-update button:focus-visible{filter:brightness(1.08)}.about-links{display:grid;gap:.35rem}.about-links a{display:flex;min-height:44px;align-items:center;justify-content:space-between;padding:0 .75rem;border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);color:var(--text);font-size:.88rem;font-weight:600;text-decoration:none}.about-links a:after{content:"↗";color:var(--neon-cyan-dim)}.about-links a:hover,.about-links a:focus-visible{background:var(--bg-raised)}.rules-scroll{position:relative;display:flex;min-height:0}.rules-scroll:after{content:"";position:absolute;inset:auto 0 0;height:2rem;pointer-events:none;background:linear-gradient(to top,var(--bg-panel),transparent)}.tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.25rem;flex:none;padding:.25rem;border:1px solid var(--edge-line);border-radius:var(--radius-md);background:var(--bg-sunken)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:calc(var(--radius-md) - .25rem);background:none;color:var(--text-dim);padding:.42rem .5rem;font:inherit;font-size:.82rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .12s ease,color .12s ease}.tab[aria-selected=true]{background:var(--bg-raised-hi);border-color:var(--edge-line-hi);color:var(--text)}.tab:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}.rank-bar{--from: 0;--to: 0;display:grid;gap:.25rem;margin:0 auto .6rem;max-width:15rem;width:100%}.rank-bar:empty{display:none}.rank-line{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.rank-name{font-weight:700;color:var(--text)}.rank-gain{margin-right:auto;font-weight:700;color:var(--neon-gold)}.rank-count{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.66rem;letter-spacing:.03em}@property --gain-n{syntax: "<integer>"; inherits: false; initial-value: 0;}@property --into-n{syntax: "<integer>"; inherits: false; initial-value: 0;}.rank-gain{--gain-n: var(--gain);counter-reset:gain var(--gain-n);animation:rank-count-gain var(--rank-ms, .7s) cubic-bezier(.3,.6,.35,1) var(--rank-delay, 0ms) both}.rank-gain:before{content:"+" counter(gain) / ""}.rank-count{--into-n: var(--into);counter-reset:into var(--into-n);animation:rank-count-into var(--rank-ms, .7s) cubic-bezier(.3,.6,.35,1) var(--rank-delay, 0ms) both}.rank-count:before{content:counter(into) " / " attr(data-need) / ""}.rank-say{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@keyframes rank-count-gain{0%{--gain-n: 0}to{--gain-n: var(--gain)}}@keyframes rank-count-into{0%{--into-n: var(--into-from)}to{--into-n: var(--into)}}.rank-track{position:relative;height:4px;border-radius:999px;background:var(--bg-sunken);border:1px solid var(--edge-line);overflow:hidden}.rank-fill{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left center;transform:scaleX(var(--to));background:linear-gradient(90deg,rgb(var(--gold-rgb) / .55),var(--gold-fill));animation:rank-fill var(--rank-ms, .7s) cubic-bezier(.16,.9,.3,1) var(--rank-delay, 0ms) both}@keyframes rank-fill{0%{transform:scaleX(var(--from))}to{transform:scaleX(var(--to))}}.rank-up .rank-name{animation:rank-up .9s ease-out both}@keyframes rank-up{0%{color:var(--text);text-shadow:none}25%{color:var(--neon-gold);text-shadow:0 0 14px rgb(var(--gold-rgb) / .75)}to{color:var(--text);text-shadow:none}}@media (prefers-reduced-motion: reduce){.rank-fill,.rank-gain,.rank-count{animation:none}.rank-up .rank-name{animation:none;color:var(--neon-gold)}}.level-panel{gap:.6rem;width:min(100%,22rem)}.level-stats{margin:0;flex:none;color:var(--text-dim);font-size:.74rem;line-height:1.45}.level-rungs{display:grid;grid-template-columns:minmax(4.6rem,auto) repeat(var(--level-cols, 3),minmax(0,1fr));gap:.4rem;align-items:center;min-height:0}.level-head{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--neon-cyan-dim);text-align:center;font-variant-numeric:tabular-nums}.level-head.level-band{text-align:left;letter-spacing:.04em;text-transform:none;font-size:.8rem;color:var(--text)}.level-tile{min-height:2.75rem;padding:.4rem;font-size:.85rem;font-variant-numeric:tabular-nums;background:var(--bg-raised);border:1px solid var(--edge-line-hi)}.level-tile.primary{background:linear-gradient(160deg,var(--accent-fill-from),var(--accent-fill-to));border-color:var(--gloss-fill-edge)}.level-experimental{display:flex;flex-direction:column;gap:.4rem;padding-top:.6rem;border-top:1px solid var(--edge-hair)}.level-experimental h3{margin:0;font-size:.66rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--neon-cyan-dim)}.level-experimental .btn{background:var(--bg-raised);border:1px dashed var(--edge-line-hi);font-size:.85rem;min-height:2.75rem}.custom-panel{gap:.5rem;width:min(100%,26rem);overflow-y:auto;overscroll-behavior:contain}.custom-note{margin:0;color:var(--text-dim);font-size:.74rem;line-height:1.45}.custom-panel .custom-slow{margin:0;color:var(--neon-gold);font-size:.74rem;line-height:1.4}.custom-field:has(>.custom-slow:not([hidden])){margin-bottom:.5rem}.custom-form{display:flex;flex-direction:column;gap:.6rem}.custom-form.is-busy{opacity:.5}.custom-field{display:flex;flex-direction:column;gap:.3rem}.custom-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;font-size:.85rem;font-weight:600}.custom-head output{font-variant-numeric:tabular-nums;color:var(--neon-cyan);font-weight:700}.custom-field{--custom-thumb: 1.5rem;--custom-groove: .5rem}.custom-field input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:100%;height:var(--custom-thumb);margin:0;padding:0;background:transparent;cursor:pointer}.custom-field input[type=range]::-webkit-slider-runnable-track{height:var(--custom-groove);box-sizing:border-box;border:1px solid var(--edge-line-hi);border-radius:999px;background:var(--bg-sunken)}.custom-field input[type=range]::-moz-range-track{height:var(--custom-groove);box-sizing:border-box;border:1px solid var(--edge-line-hi);border-radius:999px;background:var(--bg-sunken)}.custom-field>input[type=range]::-webkit-slider-runnable-track{--stop: calc(var(--custom-thumb) / 2 + var(--hi, 0) * (100% - var(--custom-thumb)));background:linear-gradient(to right,var(--neon-cyan) var(--stop),var(--bg-sunken) var(--stop))}.custom-field>input[type=range]::-moz-range-track{--stop: calc(var(--custom-thumb) / 2 + var(--hi, 0) * (100% - var(--custom-thumb)));background:linear-gradient(to right,var(--neon-cyan) var(--stop),var(--bg-sunken) var(--stop))}.custom-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:var(--custom-thumb);height:var(--custom-thumb);margin-top:calc((var(--custom-groove) - var(--custom-thumb)) / 2);border:3px solid var(--bg-raised);border-radius:50%;background:var(--neon-cyan);box-shadow:0 1px 4px #00000073}.custom-field input[type=range]::-moz-range-thumb{box-sizing:border-box;width:var(--custom-thumb);height:var(--custom-thumb);border:3px solid var(--bg-raised);border-radius:50%;background:var(--neon-cyan);box-shadow:0 1px 4px #00000073}.custom-field input[type=range]:focus-visible{outline:none}.custom-field input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--neon-cyan);outline-offset:2px}.custom-field input[type=range]:focus-visible::-moz-range-thumb{outline:2px solid var(--neon-cyan);outline-offset:2px}.custom-dual{position:relative;height:var(--custom-thumb);touch-action:pan-y;cursor:pointer}.custom-dual-track{position:absolute;inset:calc((var(--custom-thumb) - var(--custom-groove)) / 2) 0;box-sizing:border-box;border:1px solid var(--edge-line-hi);border-radius:999px;background:var(--bg-sunken);overflow:hidden}.custom-dual-track:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;left:calc(var(--custom-thumb) / 2 + var(--lo, 0) * (100% - var(--custom-thumb)));right:calc(var(--custom-thumb) / 2 + (1 - var(--hi, 1)) * (100% - var(--custom-thumb)));background:var(--neon-cyan)}.custom-dual input[type=range]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.custom-dual input[type=range]::-webkit-slider-runnable-track{border-color:transparent;background:transparent}.custom-dual input[type=range]::-moz-range-track{border-color:transparent;background:transparent}.custom-dual input[type=range]:focus-visible{z-index:1}.custom-checks{display:flex;flex-direction:column;margin-bottom:.4rem}.custom-check{display:flex;align-items:center;gap:.6rem;min-height:2.5rem;font-size:.85rem;cursor:pointer}.custom-check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:none;display:grid;place-content:center;width:1.25rem;height:1.25rem;margin:0;border:1px solid var(--edge-line-hi);border-radius:.3rem;background:var(--bg-raised);cursor:pointer}.custom-check input:checked{background:linear-gradient(160deg,var(--accent-fill-from),var(--accent-fill-to));border-color:var(--gloss-fill-edge)}.custom-check input:checked:after{content:"";width:.35rem;height:.65rem;margin-top:-.1rem;border:solid var(--accent-fill-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}.custom-check input:focus-visible{outline:2px solid var(--neon-cyan);outline-offset:2px}.custom-status{display:flex;align-items:center;gap:.7rem;margin:0;font-size:.85rem}.custom-fail{color:var(--neon-magenta)}.custom-actions{display:flex;flex-direction:column;gap:.5rem}.rank-panel{width:min(100%,26rem);max-height:min(94dvh,64rem,100%);gap:.75rem}.profile-body{display:flex;flex-direction:column;gap:.85rem;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding:.15rem .2rem .2rem 0}.profile-body::-webkit-scrollbar{display:none}.profile-body>*{flex:none}.profile-body p{margin:0}.profile-hero{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.05rem;padding:.85rem 1rem .85rem .85rem;border-radius:var(--radius-md);background:radial-gradient(circle at 3rem 45%,rgb(var(--gold-rgb) / .16),transparent 5.5rem),var(--bg-sunken);box-shadow:inset 0 2px 6px var(--cell-recess),inset 0 0 0 1px var(--edge-hair)}.profile-badge{display:grid;grid-template-areas:"chip" "label";justify-items:center;row-gap:.3rem}.profile-badge-chip,.profile-rank-number{grid-area:chip;align-self:center}.profile-badge-chip{position:relative;width:3.4rem;height:3.4rem;margin:.7rem;border-radius:.6rem;transform:rotate(45deg);overflow:hidden;background:linear-gradient(90deg,var(--metal-0) 0%,var(--metal-1) 16%,var(--metal-2) 36%,var(--metal-3) 55%,var(--metal-4) 76%,var(--metal-5) 100%);box-shadow:2px 2px 0 var(--metal-lip),0 0 .9rem rgb(var(--gold-rgb) / .35),inset 0 0 0 1.5px rgb(var(--gloss-rgb) / .45)}.profile-badge-chip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(90deg,transparent 40%,var(--gloss-glint) 50%,transparent 60%);background-size:300% 100%;background-repeat:no-repeat;background-position:120% 0;animation:profile-glint .9s ease-out .25s both}@keyframes profile-glint{0%{background-position:120% 0}to{background-position:-20% 0}}.profile-rank-number{position:relative;z-index:1;color:var(--on-shape);font-size:1.75rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-shadow:0 1px 0 rgb(var(--gloss-rgb) / .45)}.profile-badge-label{grid-area:label;color:var(--text-dim);font-size:.72rem;font-weight:600}.profile-hero-side{display:grid;gap:.4rem;min-width:0}.profile-points{color:var(--text-dim);font-size:.85rem;font-weight:600;line-height:1}.profile-points b{margin-right:.15em;color:var(--text);font-size:2rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.profile-hero .rank-bar{max-width:none;margin:.15rem 0 0}.profile-hero .rank-line{display:none}.profile-hero .rank-track{height:8px;border:none;background:var(--sensor-bg);box-shadow:inset 0 1px 3px var(--sensor-recess),inset 0 0 0 1px var(--edge-sensor)}.profile-hero .rank-fill{border-radius:inherit;background:linear-gradient(180deg,var(--metal-1),var(--gold-fill) 55%,var(--metal-4))}.profile-next{color:var(--text-dim);font-size:.74rem;font-variant-numeric:tabular-nums}.profile-tiles{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.profile-tile{display:flex;flex-direction:column;gap:.2rem;min-width:0;padding:.65rem .75rem .7rem;border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid var(--edge-hair)}.profile-tile-label{color:var(--text-dim);font-size:.74rem;font-weight:600;line-height:1.25}.profile-tile-value{color:var(--text);font-size:1.45rem;font-weight:800;line-height:1.15;letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap}.profile-unit{margin-left:.08em;color:var(--text-dim);font-size:.6em;font-weight:700;letter-spacing:0}.profile-tile-note{color:var(--text-dim);font-size:.7rem;line-height:1.3}.profile-tile.is-quiet .profile-tile-value{color:var(--text-dim)}.profile-streak{grid-column:1 / -1;gap:.3rem}.profile-streak.is-live{border-color:rgb(var(--gold-rgb) / .4);background:linear-gradient(115deg,rgb(var(--gold-rgb) / .13),transparent 65%),var(--bg-raised)}.profile-streak-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.profile-streak-title{display:flex;align-items:center;gap:.4rem}.profile-info{position:relative;display:inline-grid;place-items:center;width:1.1rem;height:1.1rem;padding:0;border:1px solid var(--edge-hair);border-radius:50%;background:transparent;color:var(--text-dim);font-size:.68rem;font-style:italic;font-weight:700;line-height:1;cursor:pointer}.profile-info:after{content:"";position:absolute;top:-.45rem;right:-.45rem;bottom:-.45rem;left:-.45rem}.info-tip{position:absolute;z-index:5;width:max-content;padding:.5rem .65rem;border-radius:var(--radius-sm);background:var(--bg-raised-hi);border:1px solid rgb(var(--gold-rgb) / .55);box-shadow:0 2px 0 var(--chip-lip),0 8px 22px var(--sheet-cast);color:var(--text);font-size:.74rem;font-weight:500;line-height:1.4;text-align:left;pointer-events:none;animation:info-tip-in .12s ease-out both}.info-tip[hidden]{display:none}.info-tip:after{content:"";position:absolute;left:calc(var(--arrow-x, 50%) - 5px);width:8px;height:8px;background:var(--bg-raised-hi);border:1px solid rgb(var(--gold-rgb) / .55);transform:rotate(45deg)}.info-tip[data-side=above]:after{bottom:-5px;border-top:none;border-left:none}.info-tip[data-side=below]:after{top:-5px;border-bottom:none;border-right:none}@keyframes info-tip-in{0%{opacity:0}}@media (prefers-reduced-motion: reduce){.info-tip{animation:none}}:root[data-fx=off] .info-tip{animation:none}.profile-info[aria-expanded=true]{border-color:rgb(var(--gold-rgb) / .6);color:var(--text)}.profile-streak-best{color:var(--text-dim);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums}.profile-streak-body{display:flex;align-items:center;gap:.9rem}.profile-streak-count{min-width:1.4ch;font-size:2.1rem;line-height:1;color:var(--text-dim)}.profile-streak.is-live .profile-streak-count{color:var(--neon-gold)}.profile-pips{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;padding:.2rem .15rem}.profile-pip{width:.74rem;height:.74rem;border-radius:2px;transform:rotate(45deg);background:var(--cell-recess-faint);box-shadow:inset 1px 1px 2px var(--cell-recess),0 0 0 1px var(--edge-line-hi)}.profile-pip.is-lit{background:linear-gradient(90deg,var(--metal-1),var(--metal-3) 50%,var(--metal-5));box-shadow:1px 1px 0 var(--metal-lip),0 0 6px rgb(var(--gold-rgb) / .55);animation:profile-pip-in .36s var(--ease-pop) both;animation-delay:calc(.2s + var(--i, 0) * 55ms)}@keyframes profile-pip-in{0%{opacity:.3;transform:rotate(45deg) scale(.4)}to{opacity:1;transform:rotate(45deg) scale(1)}}.profile-section-title{margin:0 0 .3rem;color:var(--text);font-size:.82rem;font-weight:700}.profile-table{--gap: .3rem;width:calc(100% + 2 * var(--gap));margin:0 calc(-1 * var(--gap));border-collapse:separate;border-spacing:var(--gap);table-layout:fixed;text-align:center;font-variant-numeric:tabular-nums}.profile-table caption{caption-side:bottom;padding:.15rem var(--gap) 0;color:var(--text-dim);font-size:.7rem;line-height:1.4;text-align:left}.profile-table th,.profile-table td{padding:0}.profile-custom{margin:.15rem 0 0;color:var(--text-dim);font-size:.7rem;line-height:1.4}.profile-table thead th{padding-bottom:.05rem;vertical-align:bottom;color:var(--axis-ink);font-size:.7rem;font-weight:700;line-height:1.15}.profile-table thead td{width:2.7rem}.profile-table tbody th{color:var(--axis-ink);font-size:.74rem;font-weight:700;letter-spacing:.02em;text-align:left;white-space:nowrap}.profile-table tbody td{height:2.9rem;border-radius:var(--radius-sm);vertical-align:middle}.profile-table td.is-played{background:linear-gradient(160deg,rgb(var(--gloss-rgb) / .06),transparent 60%),color-mix(in srgb,rgb(var(--cyan-rgb)) calc(5% + var(--played, 0) * 32%),var(--bg-raised-hi));box-shadow:0 2px 0 var(--chip-lip),0 3px 6px var(--chip-cast),inset 0 1px 0 var(--gloss-chip)}.profile-table td.is-full{box-shadow:0 2px 0 var(--chip-lip),0 3px 6px var(--chip-cast),inset 0 0 0 1.5px rgb(var(--cyan-rgb) / .9)}.profile-table td.is-empty{background:var(--cell-recess-faint);box-shadow:inset 0 2px 4px var(--cell-recess),inset 0 0 0 1px var(--edge-hair);color:var(--text-faint);font-size:.8rem}.profile-cell-main{display:block;color:var(--text);font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.86rem;font-weight:700;line-height:1.1}.profile-cell-sub{display:block;margin-top:.1rem;color:color-mix(in srgb,var(--text) 68%,transparent);font-size:.66rem;font-weight:600;line-height:1}.profile-since{color:var(--text-dim);font-size:.66rem;line-height:1.3}.profile-charts{display:flex;flex-direction:column;gap:.85rem}.profile-chart{display:flex;flex-direction:column;gap:.4rem}.profile-chart .profile-section-title{margin:0}.profile-body .profile-chart-note{margin:0;color:var(--text-dim);font-size:.72rem;line-height:1.4}.profile-plot{padding:.55rem .6rem .4rem .35rem;border-radius:var(--radius-md);background:var(--bg-sunken);box-shadow:inset 0 2px 6px var(--cell-recess),inset 0 0 0 1px var(--edge-hair)}.profile-hints-svg{display:block;width:100%;height:auto;overflow:visible}.profile-hints-svg .grid{stroke:var(--edge-line-hi);stroke-width:1;stroke-dasharray:2 3}.profile-hints-svg .axis{stroke:color-mix(in srgb,var(--axis-ink) 45%,transparent);stroke-width:1}.profile-hints-svg .tick{fill:var(--axis-ink);font-size:8px;font-weight:700;text-anchor:end;font-variant-numeric:tabular-nums}.profile-hints-svg .socket{fill:var(--text-faint);opacity:.55}.profile-hints-svg .bar{fill:rgb(var(--cyan-rgb) / .85)}.profile-hints-svg .zero{fill:var(--bg-sunken);stroke:var(--text-dim);stroke-width:1.2}.profile-hints-svg .clean{fill:var(--neon-gold);stroke:var(--metal-lip);stroke-width:.6}.profile-hints-svg .average{fill:none;stroke:var(--text);stroke-opacity:.55;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.profile-axis{display:flex;justify-content:space-between;color:var(--axis-ink);font-size:.64rem;font-weight:700;line-height:1.2}.profile-plot .profile-axis{margin:.15rem 0 0 5%}.profile-legend{display:flex;flex-wrap:wrap;gap:.25rem 1rem;color:var(--text-dim);font-size:.68rem;line-height:1.3}.profile-legend-item{display:inline-flex;align-items:center;gap:.4rem}.profile-key{flex:none}.profile-key-clean{width:.5rem;height:.5rem;margin:0 .1rem;border-radius:1px;transform:rotate(45deg);background:var(--neon-gold);box-shadow:0 0 0 .5px var(--metal-lip)}.profile-key-average{width:.9rem;height:2px;border-radius:1px;background:color-mix(in srgb,var(--text) 55%,transparent)}.profile-pieces{--box: 30px;--bit: 5px;--bit-gap: 1px;display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem;margin:0;padding:0;list-style:none}.profile-piece{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:0;padding:.35rem .1rem .3rem;border-radius:var(--radius-sm);background:var(--cell-recess-faint);box-shadow:inset 0 2px 4px var(--cell-recess),inset 0 0 0 1px var(--edge-hair)}.profile-piece .bank-shape .bit{background:transparent;box-shadow:inset 0 0 0 1px var(--text-faint);border-radius:1px}.profile-piece.is-found{background:linear-gradient(160deg,rgb(var(--gloss-rgb) / .06),transparent 60%),color-mix(in srgb,var(--pc) 16%,var(--bg-raised-hi));box-shadow:0 2px 0 var(--chip-lip),0 3px 6px var(--chip-cast),inset 0 1px 0 var(--gloss-chip)}.profile-piece.is-found .bank-shape .bit{background:var(--pc);box-shadow:0 0 4px color-mix(in srgb,var(--pc) 75%,transparent),inset 0 1px #ffffff59}:root[data-theme=light] .profile-piece.is-found .bank-shape .bit{box-shadow:0 0 3px color-mix(in srgb,var(--pc) 55%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--pc) 55%,#000)}.profile-piece-label{display:flex;align-items:baseline;gap:.3rem;line-height:1}.profile-piece-letter{color:var(--text-dim);font-size:.66rem;font-weight:700}.profile-piece-count{color:var(--text-dim);font-size:.8rem;font-weight:800;font-variant-numeric:tabular-nums}.profile-piece.is-found .profile-piece-count{color:var(--text)}.profile-days{display:grid;grid-template-columns:repeat(30,1fr);gap:3px;padding:.45rem;border-radius:var(--radius-md);background:var(--bg-sunken);box-shadow:inset 0 2px 6px var(--cell-recess),inset 0 0 0 1px var(--edge-hair)}.profile-day{height:1.35rem;border-radius:2px;background:var(--cell-recess-faint);box-shadow:inset 0 1px 2px var(--cell-recess),0 0 0 1px var(--edge-hair)}.profile-day:not([data-level="0"]){box-shadow:0 1px 0 var(--chip-lip)}.profile-day[data-level="1"]{background:rgb(var(--cyan-rgb) / .3)}.profile-day[data-level="2"]{background:rgb(var(--cyan-rgb) / .5)}.profile-day[data-level="3"]{background:rgb(var(--cyan-rgb) / .72)}.profile-day[data-level="4"]{background:rgb(var(--cyan-rgb) / .95)}.profile-day.is-today{outline:1.5px solid var(--neon-gold);outline-offset:1.5px}.profile-activity .profile-axis{margin-top:-.15rem;padding:0 .2rem}.profile-axis .is-today{color:var(--neon-gold)}.profile-fun-card{border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid var(--edge-hair)}.profile-body .profile-fun-card>.profile-chart-note{padding:.6rem .75rem}.profile-fact:first-child{border-top:0}.profile-facts-list{margin:0;padding:0 .75rem .45rem}.profile-fact{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.75rem;padding:.45rem 0;border-top:1px solid var(--edge-hair)}.profile-fact dt{color:var(--text-dim);font-size:.74rem;font-weight:600;line-height:1.3}.profile-fact dd{margin:0;color:var(--text);font-size:.86rem;font-weight:800;line-height:1.25;text-align:right;font-variant-numeric:tabular-nums}.profile-fact dd small{display:block;color:var(--text-dim);font-size:.68rem;font-weight:600}@media (prefers-reduced-motion: reduce){.profile-badge-chip:after,.profile-pip.is-lit{animation:none}.profile-badge-chip:after{background-position:120% 0}}:root[data-fx=off] .profile-badge-chip:after,:root[data-fx=off] .profile-pip.is-lit{animation:none}.btn:has(>.btn-icon){display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.btn-icon{flex:none;width:1.05em;height:1.05em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.btn-label{min-width:0;white-space:nowrap}.boards-panel{width:min(100%,34rem);height:min(88vh,50rem,100%);max-height:none;gap:.55rem}.boards-panel>.rules-scroll{flex:1}@media (max-width: 520px){#boards-popup{padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right));padding-top:max(.5rem,calc(env(safe-area-inset-top) + .25rem));padding-bottom:max(.5rem,calc(env(safe-area-inset-bottom) + .25rem))}.boards-panel{width:100%;max-width:none;height:100%}}.boards-actions{display:grid;gap:.4rem;flex:none}.boards-actions .btn{padding:.6rem .85rem;font-size:.88rem}.boards-dev{flex:none;display:grid;gap:.35rem;margin-top:.75rem;padding-top:.55rem;border-top:1px solid var(--edge-line)}.boards-dev-title{margin:0;color:var(--text-dim);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.boards-dev-row{display:flex;gap:.4rem}.boards-dev-row .btn{flex:1;padding:.5rem .7rem;font-size:.85rem}.code-entry{display:grid;gap:.35rem;flex:none}.code-row{display:flex;gap:.4rem}.code-input{flex:1;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);background:var(--bg-sunken);color:var(--text);padding:.6rem .7rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}.code-input::placeholder{color:var(--text-faint);text-transform:none;letter-spacing:.04em}.code-input:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}.code-row .btn{flex:none;padding:.6rem .9rem;font-size:.88rem}.boards-msg{margin:0;flex:none;color:var(--text-dim);font-size:.78rem;line-height:1.4}.boards-msg[data-bad]{color:var(--neon-magenta)}.boards-msg code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.86rem;letter-spacing:.06em;color:var(--neon-gold);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.ov-actions{display:contents}@media not ((pointer: coarse) or (max-width: 700px)){:root:not([data-touch-ui]) .ov-actions:has(#ov-race-row:not([hidden]) #ov-race-card[hidden]){display:flex;flex-wrap:nowrap;gap:.5rem;margin-top:.75rem}:root:not([data-touch-ui]) .ov-actions:has(#ov-race-row:not([hidden]) #ov-race-card[hidden])>.ov-keep-row{display:contents}:root:not([data-touch-ui]) .ov-actions:has(#ov-race-row:not([hidden]) #ov-race-card[hidden]) .ov-keep-row button{max-width:none}}.ov-keep-row{margin-top:.75rem;flex-wrap:nowrap}.overlay .ov-keep-row button{flex-direction:row;gap:.4rem;padding-inline:.5rem;flex:1 1 0;min-width:0;max-width:13rem;min-height:44px;font-size:.85rem}.ov-keep-row .keep-action{background:var(--bg-raised);border:1px solid var(--edge-line-hi);color:var(--text);padding:.7rem 1rem;text-decoration:none}.ov-keep-row .keep-action.primary{background:var(--bg-raised-hi);border-color:var(--neon-cyan);color:var(--text);box-shadow:0 0 14px rgb(var(--cyan-rgb) / .2)}@media (max-width: 520px){.overlay .ov-race-row:has(#ov-race-card:not([hidden])) .keep-action{flex-direction:column;gap:.2rem;padding-inline:.3rem;font-size:.8rem}.overlay .ov-race-row:has(#ov-race-card:not([hidden])) .keep-action .btn-icon{width:1.3rem;height:1.3rem}}.panel .ov-share-msg{margin:.5rem 0 0}.boards-msg:has(code.share-link),.boards-msg code.share-link{-webkit-text-size-adjust:100%;text-size-adjust:100%}.boards-msg code.share-link{display:block;margin-top:.25rem;letter-spacing:0;font-size:.75rem;word-break:break-all;-webkit-user-select:all;user-select:all}#link-ask-title,#leave-ask-title,#via-ask-body{text-wrap:balance}.ov-get-app{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.75rem;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--edge-hair)}.ov-get-app[hidden]{display:none}.panel .ov-get-app p{margin:0;font-size:.78rem;color:var(--text-dim)}.ov-get-app .btn{flex:none;width:auto;min-height:44px;padding:.4rem .9rem;font-size:.8rem}.kept-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:.3rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem;padding-bottom:2rem}.kept-empty{margin:.6rem 0 0;color:var(--text-faint);font-size:.82rem;line-height:1.5}.kept-row{display:flex;align-items:stretch;gap:.25rem;border:1px solid var(--edge-line);border-radius:var(--radius-md);background:var(--bg-raised)}.kept-resume{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:inherit;background:none;color:var(--text);padding:.5rem .15rem .5rem .6rem;font:inherit;text-align:left;cursor:pointer}.kept-line{font-size:.85rem;font-weight:600;letter-spacing:.01em}.kept-when{color:var(--text-faint);font-size:.72rem;letter-spacing:.04em}.kept-act{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-left:1px solid var(--edge-hair);background:none;color:var(--text-dim);padding:0 .55rem;font-size:1rem;line-height:1;cursor:pointer}.kept-act:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}.kept-resume:hover,.kept-act:hover{background:var(--bg-raised-hi);color:var(--text)}.kept-resume:focus-visible,.kept-act:focus-visible{outline:3px solid var(--neon-gold);outline-offset:-2px}.kept-row[data-arm]{border-color:var(--neon-magenta)}.kept-row[data-arm] .kept-act[data-act=×]{color:var(--neon-magenta);font-weight:700}.kept-row[data-arm] .kept-line{color:var(--neon-magenta)}.boards-lists{flex:1;min-height:0;display:flex;flex-direction:column;gap:.3rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem;padding-bottom:1.5rem}.boards-lists .kept-list{flex:none;overflow:visible;padding-right:0;padding-bottom:0}.boards-tabs{margin-top:.75rem}.boards-tabpanel{display:flex;flex-direction:column;gap:.3rem}.boards-tabpanel[hidden]{display:none}.boards-open-replay{margin-top:.6rem}.solved-list{display:flex;flex-direction:column;gap:.3rem}.solved-row{align-items:center}.solved-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem;padding:.5rem .15rem .5rem .6rem}.solved-share{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:stretch;border:none;border-left:1px solid var(--edge-hair);border-radius:0 var(--radius-md) var(--radius-md) 0;background:none;color:var(--text-dim);padding:0 .75rem;font:inherit;font-size:.78rem;font-weight:600;white-space:nowrap;cursor:pointer}.solved-share:hover{background:var(--bg-raised-hi);color:var(--text)}.solved-share:focus-visible{outline:3px solid var(--neon-gold);outline-offset:-2px}.solved-msg{margin:.4rem 0 0;color:var(--text-dim);font-size:.78rem;line-height:1.4}.solved-msg[data-bad]{color:var(--neon-magenta)}:root[data-keys] .cell:focus-visible,.bank-item:focus-visible,.btn:focus-visible,.menu-toggle:focus-visible,.menu-item:focus-visible,.menu-tile:focus-visible,.menu-about:focus-visible,.about-product a:focus-visible,.about-links a:focus-visible,.mode-btn:focus-visible,.tool-btn:focus-visible,.hint-proof-toggle:focus-visible,.hint-close:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}@media (min-width: 701px) and (max-width: 1060px){:root{--rail: 232px}}@media (min-width: 701px) and (max-width: 1060px),(min-width: 701px) and (max-height: 780px){.bank-grid{--box: 40px;--bit: 7px;--bit-gap: 1px;gap:.35rem}.bank-letter{font-size:.66rem}}@media (pointer: fine) and (min-width: 701px) and (max-height: 780px){#app{height:100dvh}#side{min-height:0;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}#shape-bank h2,#hint-why h2{margin-bottom:.4rem}}@media (prefers-reduced-motion: reduce){.hint-proof-toggle:after{transition:none}.board-loader-scan{animation:none;width:100%;opacity:.55}#app.shake{animation:none}#stage.flash:after{animation:none}#stage.flash.lock:after{animation:none}.cell.hit{animation:none}.cell.hint{animation:none;box-shadow:0 0 0 3px var(--neon-cyan)}.cell.hint-wrong{animation:none;box-shadow:0 0 0 3px var(--neon-magenta)}.cell.tutorial-target.tutorial-act{animation:none;box-shadow:0 0 0 2px var(--ring-gap),0 0 18px var(--tut-glow)}.lock-size{animation:none;opacity:1;transform:translate(-50%,-50%) rotate(0)}.spark,.cell.done:after{display:none}#stage.chill,.cell.lock-dud{animation:none}#frame,.axis{transition:none}.menu-sheet{animation:none}.msg{transition:none;transform:translateY(0)}}@media (pointer: coarse),(max-width: 700px){#mobile-toolbar{display:grid}#touch-actions{display:flex}.tab{min-height:44px;padding:.42rem .9rem}.kept-act{min-width:44px}#keys,.menu-word{display:none}.menu-toggle{padding:0}.rail-action,#stat-hints{display:none}#app{padding-bottom:calc(4.75rem + var(--history-reserve) + env(safe-area-inset-bottom))}.msg{bottom:calc(5.2rem + env(safe-area-inset-bottom))}#overlay{padding-bottom:0}#overlay .panel{position:relative;width:100%;max-width:none;border-width:1px 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:max(.9rem,env(safe-area-inset-bottom))}#overlay:has(#ov-choices:not([hidden])) .panel{display:flex;flex-direction:column;min-height:clamp(16rem,34vh,18.5rem);padding:1rem 1rem 0}#overlay:has(#ov-choices:not([hidden])) .ov-keep-row{margin-top:auto;padding:1.5rem 0 max(1.5rem,calc(env(safe-area-inset-bottom) + .75rem))}#overlay:has(#ov-choices:not([hidden])) .ov-race-row{padding-bottom:0}#overlay:has(#ov-choices:not([hidden])) .ov-race-row:not([hidden])+#ov-keep-row{margin-top:0;padding-top:.75rem}#overlay:has(#ov-bust-choices:not([hidden])) .panel{display:flex;flex-direction:column;min-height:clamp(12rem,26vh,15rem);padding:1rem 1rem 0}#overlay:has(#ov-bust-choices:not([hidden])) #ov-bust-choices{margin-top:auto;padding:1.25rem 0 max(1.5rem,calc(env(safe-area-inset-bottom) + .75rem))}#overlay .panel:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:2.4rem;pointer-events:none;background:linear-gradient(to top,var(--sheet-fade),transparent)}#overlay:has(#ov-choices:not([hidden])):has(#ov-share-msg:not([hidden]),#ov-get-app:not([hidden])) #ov-keep-row{padding-bottom:.25rem}#overlay #ov-get-app,#overlay #ov-share-msg:has(+#ov-get-app[hidden]){margin-bottom:max(1.25rem,calc(env(safe-area-inset-bottom) + .75rem))}}:root[data-touch-ui] #overlay{padding-bottom:0}:root[data-touch-ui] #overlay .panel{position:relative;width:100%;max-width:none;border-width:1px 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:max(.9rem,env(safe-area-inset-bottom))}:root[data-touch-ui] #overlay:has(#ov-choices:not([hidden])) .panel{display:flex;flex-direction:column;min-height:clamp(16rem,34vh,18.5rem);padding:1rem 1rem 0}:root[data-touch-ui] #overlay:has(#ov-choices:not([hidden])) .ov-keep-row{margin-top:auto;padding:1.5rem 0 max(1.5rem,calc(env(safe-area-inset-bottom) + .75rem))}:root[data-touch-ui] #overlay:has(#ov-choices:not([hidden])) .ov-race-row{padding-bottom:0}:root[data-touch-ui] #overlay:has(#ov-choices:not([hidden])) .ov-race-row:not([hidden])+#ov-keep-row{margin-top:0;padding-top:.75rem}:root[data-touch-ui] #overlay:has(#ov-choices:not([hidden])):has(#ov-share-msg:not([hidden]),#ov-get-app:not([hidden])) #ov-keep-row{padding-bottom:.25rem}:root[data-touch-ui] #overlay #ov-get-app,:root[data-touch-ui] #overlay #ov-share-msg:has(+#ov-get-app[hidden]){margin-bottom:max(1.25rem,calc(env(safe-area-inset-bottom) + .75rem))}:root[data-touch-ui] #overlay:has(#ov-bust-choices:not([hidden])) .panel{display:flex;flex-direction:column;min-height:clamp(12rem,26vh,15rem);padding:1rem 1rem 0}:root[data-touch-ui] #overlay:has(#ov-bust-choices:not([hidden])) #ov-bust-choices{margin-top:auto;padding:1.25rem 0 max(1.5rem,calc(env(safe-area-inset-bottom) + .75rem))}:root[data-touch-ui] #overlay.result-collapsed #ov-panel.panel{min-height:0;padding:.25rem 1rem max(.25rem,env(safe-area-inset-bottom))}:root[data-touch-ui] #overlay .panel:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:2.4rem;pointer-events:none;background:linear-gradient(to top,var(--sheet-fade),transparent)}@media (max-width: 700px),(max-height: 500px) and (pointer: coarse),(pointer: coarse) and (orientation: portrait){#app{min-height:0;gap:.4rem;padding:.25rem;padding-top:max(.25rem,calc(env(safe-area-inset-top) + .2rem))}.wordmark{display:none}header{flex-wrap:nowrap;justify-content:space-between;gap:.4rem;padding:.25rem .4rem .25rem .35rem;border-radius:var(--radius-md)}.menu-toggle{margin-block:-.35rem}.stats{flex:1;min-width:0;align-items:baseline;flex-wrap:nowrap;justify-content:space-between;gap:.4rem}.stat{min-width:0;gap:.25rem}.stat .k{font-size:.56rem}.stat-band{margin-left:.3rem;font-size:.56rem}.stat b{font-size:.92rem}main{flex:0 0 auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:.6rem;align-items:start}#stage{min-height:0;padding:.25rem;border-radius:var(--radius-md);overflow-x:clip}#frame{--label: 14px;gap:2px}#col-labels,#row-labels,#board{gap:3px}.axis{font-size:.66rem;letter-spacing:.04em}.cell{border-radius:4px;touch-action:manipulation;-webkit-touch-callout:none}#side{width:100%;gap:.35rem}.msg{font-size:.82rem}#shape-bank,#hint-why{border-radius:var(--radius-md)}.hint-close{margin:-.55rem -.8rem 0 0;padding:.55rem .8rem}#hint-why .hint-head{margin-bottom:0}#shape-bank{padding:.5rem .55rem}#shape-bank h2{margin-bottom:.4rem;font-size:.62rem}.bank-grid{--box: 32px;--bit: 6px;--bit-gap: 1px;grid-template-columns:repeat(6,1fr);gap:.3rem}.bank-item{gap:.1rem;padding:.25rem .1rem}.bank-letter{font-size:.72rem}}@media (max-width: 700px) and (max-height: 800px),(max-height: 500px) and (pointer: coarse){#shape-bank h2{display:none}#shape-bank{padding:.35rem .4rem}.bank-item{padding:.15rem .1rem}}@media (max-width: 700px) and (pointer: coarse),(max-height: 500px) and (pointer: coarse),(pointer: coarse) and (orientation: portrait){#app{padding-bottom:calc(4.75rem + var(--history-reserve) + env(safe-area-inset-bottom))}}@media (hover: none),(pointer: coarse){.cell.hidden:hover{filter:none;transform:none;box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 1px 0 var(--gloss-chip)}}.panel .stars-row{--star-size: clamp(2.6rem, min(21vw, 8vh), 5rem);display:flex;justify-content:center;align-items:center;padding:calc(var(--star-size) * .3) calc(var(--star-size) * .22);margin:0;position:relative;isolation:isolate;--star-beat: .18s;--star-gap: .17s;--star-lit-in: 60ms}.overlay.staged .panel .stars-row{--star-beat: .52s;--star-gap: .42s}.overlay.staged #ov-panel{animation:result-panel-in .46s cubic-bezier(.2,.8,.3,1) both}@keyframes result-panel-in{0%{opacity:0;transform:translateY(1.5rem) scale(.97)}to{opacity:1;transform:none}}.overlay.staged .rank-bar{--rank-ms: 1.1s}.star{position:relative;z-index:1;font-size:var(--star-size);width:1em;height:1em;flex:0 0 auto;margin:0 .06em;--star-delay: calc(var(--star-beat) + var(--i, 0) * var(--star-gap));--star-burst-delay: calc(var(--star-delay) + var(--star-lit-in))}.star-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;overflow:visible}.star-art-dark{filter:drop-shadow(0 .03em .035em var(--socket-cast))}.star-socket{animation:star-socket-settle .2s ease-out both}@keyframes star-socket-settle{0%{opacity:.45}to{opacity:1}}.star-lit{--star-pop: 1.42;--star-bloom: 1;--star-ring: 1.5;animation:star-ignite .62s ease-out both;animation-delay:var(--star-delay)}.star-final{--star-pop: 1.66;--star-bloom: 1.4;--star-ring: 1.6;animation-duration:.72s}@keyframes star-ignite{0%{opacity:.42;transform:scale(.8)}8%{opacity:1;transform:scale(.98)}24%{transform:scale(var(--star-pop))}52%{transform:scale(.94)}74%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.star-lit .star-art-gold{opacity:1;filter:drop-shadow(0 0 .22em rgb(var(--gold-rgb) / .5));animation:star-fill var(--star-lit-in) linear both,star-glow .62s ease-out both;animation-delay:var(--star-delay)}.star-final .star-art-gold{animation-duration:var(--star-lit-in),.72s}.star-lit .star-art-gold .star-shine{animation:star-shine 4.6s linear infinite;animation-delay:calc(var(--star-burst-delay) + .42s)}@keyframes star-shine{0%{transform:translate(-30px)}13%{transform:translate(145px)}to{transform:translate(145px)}}@keyframes star-fill{0%{opacity:0}to{opacity:1}}@keyframes star-glow{0%{filter:drop-shadow(0 0 0 rgb(var(--gold-rgb) / 0))}8%{filter:drop-shadow(0 0 calc(.28em * var(--star-bloom)) rgb(var(--gold-rgb) / .85))}24%{filter:drop-shadow(0 0 calc(.42em * var(--star-bloom)) rgb(var(--gold-rgb) / .95))}52%{filter:drop-shadow(0 0 .34em rgb(var(--gold-rgb) / .72))}to{filter:drop-shadow(0 0 .22em rgb(var(--gold-rgb) / .5))}}.star-lit:before,.star-lit:after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;pointer-events:none;z-index:-1;animation-delay:var(--star-burst-delay);animation-fill-mode:both;animation-timing-function:ease-out}.star-lit:before{width:1.3em;height:1.3em;background:radial-gradient(closest-side,rgb(var(--gold-rgb) / 0) 44%,rgb(var(--gold-rgb) / 1) 70%,rgb(var(--gold-rgb) / .22) 88%,rgb(var(--gold-rgb) / 0));filter:blur(.035em);animation-name:star-ring;animation-duration:.44s}@keyframes star-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.5);filter:blur(.02em)}10%{opacity:1}34%{opacity:.4}54%{opacity:0}to{opacity:0;transform:translate(-50%,-50%) scale(var(--star-ring));filter:blur(.18em)}}.star-lit:after{width:1.7em;height:1.7em;background:repeating-conic-gradient(from -9deg,rgb(var(--gold-rgb) / .68),rgb(var(--gold-rgb) / .68) 10deg,rgb(var(--gold-rgb) / 0) 10deg,rgb(var(--gold-rgb) / 0) 45deg);-webkit-mask:radial-gradient(closest-side,#000 8%,rgba(0,0,0,.5) 44%,rgba(0,0,0,0) 92%);mask:radial-gradient(closest-side,#000 8%,rgba(0,0,0,.5) 44%,rgba(0,0,0,0) 92%);filter:blur(.07em);animation-name:star-sparks;animation-duration:.42s}@keyframes star-sparks{0%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(0);filter:blur(.03em)}14%{opacity:1}48%{opacity:.2}72%{opacity:0}to{opacity:0;transform:translate(-50%,-50%) scale(1.05) rotate(14deg);filter:blur(.16em)}}.star-rays{position:absolute;left:50%;top:50%;z-index:-1;width:1.3em;height:1.3em;pointer-events:none;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgb(var(--gold-rgb) / .26),rgb(var(--gold-rgb) / .26) 7deg,rgb(var(--gold-rgb) / 0) 13deg,rgb(var(--gold-rgb) / 0) 30deg);-webkit-mask:radial-gradient(closest-side,#000 45%,transparent 100%);mask:radial-gradient(closest-side,#000 45%,transparent 100%);opacity:0;translate:-50% -50%;animation:star-rays-in .9s ease-out calc(var(--star-burst-delay) + .25s) forwards,star-rays-turn 24s linear calc(var(--star-burst-delay) + .25s) infinite}.star-final .star-rays{width:1.45em;height:1.45em;background:repeating-conic-gradient(from 0deg,rgb(var(--gold-rgb) / .38),rgb(var(--gold-rgb) / .38) 7deg,rgb(var(--gold-rgb) / 0) 13deg,rgb(var(--gold-rgb) / 0) 30deg)}.star:nth-child(2n) .star-rays{animation-direction:normal,reverse}@keyframes star-rays-in{to{opacity:1}}@keyframes star-rays-turn{0%{rotate:0deg}to{rotate:360deg}}.star-twinkle{position:absolute;z-index:2;width:.5em;height:.5em;pointer-events:none;translate:-50% -50%;scale:0;animation:star-twinkle 4.2s ease-in-out infinite;animation-delay:calc(var(--star-burst-delay) + .7s + var(--i, 0) * .45s)}.star-twinkle:before,.star-twinkle:after{content:"";position:absolute;left:0;top:45%;width:100%;height:10%;border-radius:50%;background:radial-gradient(closest-side,rgb(var(--gloss-rgb)),rgb(var(--gold-rgb) / .6) 45%,rgb(var(--gold-rgb) / 0))}.star-twinkle:after{rotate:90deg}@keyframes star-twinkle{0%,to{scale:0;rotate:0deg}6%{scale:1;rotate:30deg}14%{scale:0;rotate:60deg}}:root[data-fx=off] .rank-gain,:root[data-fx=off] .rank-count{animation:none}:root[data-fx=off] .star-rays,:root[data-fx=off] .star-twinkle,:root[data-fx=off] .star-cut{display:none}.stars-halo{position:absolute;left:50%;top:50%;z-index:0;width:4.2em;height:1.9em;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgb(var(--gold-rgb) / .4),rgb(var(--gold-rgb) / .15) 50%,rgb(var(--gold-rgb) / 0) 78%);animation:stars-halo .86s ease-out both;animation-delay:calc(var(--star-beat) + 2 * var(--star-gap) + var(--star-lit-in))}@keyframes stars-halo{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}26%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1.4)}}@media (prefers-reduced-motion: reduce){.star-lit,.star-lit .star-art-gold,.star-socket{animation:none}.star-lit:before,.star-lit:after,.stars-halo,.star-rays,.star-twinkle,.star-lit .star-art-gold .star-shine{display:none}}:root[data-theme=light] #stage:after{mix-blend-mode:multiply}:root[data-theme=light] .fx-outline{stroke:color-mix(in srgb,var(--fx-c) 70%,rgb(var(--ink-rgb)))}:root[data-theme=light] .cell.hidden:hover{filter:none;background:linear-gradient(160deg,var(--bg-raised-hi),var(--bg-sunken))}:root[data-theme=light] .btn:hover:not(:disabled):not(.primary){filter:brightness(.97)}:root[data-theme=light] .cell.hidden{box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 0 0 1px var(--edge-hair)}:root[data-theme=light] .cell.hidden:hover{box-shadow:0 5px 0 var(--chip-lip),0 10px 16px var(--chip-cast-hi),inset 0 0 0 1px var(--edge-line)}:root[data-theme=light] .cell.hidden:active{box-shadow:0 1px 0 var(--chip-lip),0 2px 4px var(--chip-cast-hi),inset 0 0 0 1px var(--edge-line)}@media (hover: none),(pointer: coarse){:root[data-theme=light] .cell.hidden:hover{box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 0 0 1px var(--edge-hair)}}:root[data-theme=light] .mode-btn[aria-pressed=true]{border-color:var(--neon-cyan);background:rgb(var(--cyan-rgb) / .07);box-shadow:inset 0 0 0 2px rgb(var(--cyan-rgb) / .16)}:root[data-theme=light] .tool-btn{background:linear-gradient(rgb(var(--gold-rgb) / .1),rgb(var(--gold-rgb) / .1)),color-mix(in srgb,var(--bg-sunken) 94%,transparent)}:root[data-theme=light] .tool-btn:active:not(:disabled){background:linear-gradient(rgb(var(--gold-rgb) / .2),rgb(var(--gold-rgb) / .2)),color-mix(in srgb,var(--bg-sunken) 94%,transparent)}:root[data-theme=light] .lock-all-btn{background:linear-gradient(rgb(var(--green-rgb) / .12),rgb(var(--green-rgb) / .12)),color-mix(in srgb,var(--bg-sunken) 94%,transparent)}:root[data-theme=light] .lock-all-btn:active:not(:disabled){background:linear-gradient(rgb(var(--green-rgb) / .22),rgb(var(--green-rgb) / .22)),color-mix(in srgb,var(--bg-sunken) 94%,transparent)}:root[data-theme=light] #hint-why{border-color:rgb(var(--cyan-rgb) / .55)}:root[data-theme=light] .cell.bust{box-shadow:0 0 0 2px var(--bust-ring),0 0 10px 2px rgb(var(--magenta-rgb) / .45)}:root[data-theme=light] .overlay.bust .panel{box-shadow:0 0 0 1px rgb(var(--magenta-rgb) / .5),0 -14px 34px var(--sheet-cast-up)}:root[data-theme=light] .overlay.win .panel{box-shadow:0 0 0 1px rgb(var(--green-rgb) / .5),0 -14px 34px var(--sheet-cast-up)}:root[data-theme=light] .overlay.bust .panel h2,:root[data-theme=light] .overlay.win .panel h2{text-shadow:none}:root[data-theme=light] .bank-item.used .bank-letter{color:color-mix(in srgb,var(--pc) 40%,var(--text));text-decoration-color:color-mix(in srgb,var(--pc) 40%,var(--text))}:root[data-theme=light] .bank-item.used .bank-shape .bit{background:color-mix(in srgb,var(--pc) 55%,var(--text));opacity:.55}.overlay.tour{position:fixed;align-items:center;padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));background:var(--scrim-rules);z-index:300}.tour-panel{display:flex;flex-direction:column;align-items:stretch;gap:.7rem;width:min(100%,25rem);max-width:none;padding:.9rem 1.2rem 1rem}.tour-head{display:flex;align-items:center;justify-content:space-between}.tour-head{margin:-.15rem 0 .1rem;padding-bottom:.55rem;border-bottom:1px solid var(--edge-hair)}.tour-heading{display:flex;align-items:baseline;gap:.6rem}.tour-name{font-size:.82rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--neon-cyan)}.tour-count{font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--text-dim);font-variant-numeric:tabular-nums}.tour-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:.3rem .1rem;color:var(--text-dim);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.tour-close:hover{color:var(--text)}.tour-panel h2{margin:0;text-align:center}.tour-stage-host{display:flex;justify-content:center;cursor:pointer;flex-direction:column;align-items:center;gap:.4rem}.tour-caption{min-height:2.8em;max-width:30rem;padding:0 .8rem;color:var(--text);font-size:.78rem;line-height:1.4;text-align:center;visibility:hidden}.tour-caption.show{visibility:visible}.tour-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;padding:.85rem 0 .7rem;border-radius:var(--radius-md);background:rgb(var(--ink-rgb) / .16);box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .22);overflow:hidden}.tour-frame{--cell: 44px;--label: 16px}.tour-frame .axis{font-size:.72rem}.tour-frame .rule-grid,.tour-frame .rule-cols,.tour-frame .rule-rows{gap:4px}.tour-grid{perspective:800px}.tour-grid .cell.hidden{cursor:inherit}.tour-stage.still .cell,.tour-stage.still .cell:before,.tour-stage.still .cell:after{animation:none!important;transition:none!important}.tour-grid .cell.tour-ring{z-index:2;outline:2px solid var(--neon-cyan);outline-offset:2px;filter:drop-shadow(0 0 6px rgb(var(--cyan-rgb) / .7))}.tour-grid .cell.tour-ray:after,.tour-grid .cell.tour-ray-none:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:inherit;pointer-events:none;animation:tour-fade-in .22s ease both}.tour-grid .cell.tour-ray:after{background:#ffffff1f;box-shadow:inset 0 0 0 3px var(--text)}.tour-grid .cell.tour-ray-none:after{border:2px dashed var(--text-dim)}.tour-grid .cell.hidden.mark-shape.tour-ray:after,.tour-grid .cell.hidden.mark-empty.tour-ray:after{content:none}.tour-badge{position:absolute;top:-7px;right:-7px;z-index:3;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--text);box-shadow:0 0 0 2px var(--bg-panel),0 2px 6px var(--chip-cast);color:var(--bg-panel);font-size:.72rem;font-weight:700;line-height:18px;text-align:center;font-variant-numeric:tabular-nums;animation:tour-pop .26s var(--ease-pop) both}.tour-grid .cell.tour-cursor{z-index:2;outline:3px solid var(--cursor-ring);outline-offset:-3px}.tour-frame{position:relative;transform:translate(calc((var(--label) + 2px) / -2))}.tour-bubble{position:absolute;left:calc(var(--label) + 2px);right:0;bottom:0;z-index:5;padding:.55rem .7rem;border-radius:var(--radius-sm);background:var(--bg-panel);box-shadow:0 0 0 1px rgb(var(--gold-rgb) / .5),0 8px 22px var(--sheet-cast);color:var(--text);font-size:.78rem;line-height:1.4;text-align:left;opacity:0;transform:translateY(6px);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.tour-bubble.show{opacity:1;transform:none}.tour-toolbar{display:grid;grid-template-columns:minmax(0,1.15fr) repeat(4,minmax(0,1fr));gap:2px;width:calc(100% - 1.2rem);padding:5px;border-radius:var(--radius-sm);border:1px solid var(--edge-line-hi);background:var(--bg-sunken)}.tour-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;min-height:52px;align-items:center}.tour-toolbar.off,.tour-keys.off{visibility:hidden}.tour-bank-row{width:calc(100% - 1.2rem)}.tour-stage .tour-bank{--box: 30px;--bit: 5px;--bit-gap: 1px;grid-template-columns:repeat(6,1fr);gap:.3rem}.tour-stage .tour-bank .bank-item{gap:.1rem;padding:.2rem .1rem;cursor:inherit}.tour-stage .tour-bank .bank-letter{font-size:.66rem}.tour-stage .tour-bank .bank-item.tour-ring{outline:2px solid var(--neon-cyan);outline-offset:1px}.tour-slot{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px}.tour-tool{display:grid;justify-items:center;align-content:center;row-gap:2px;min-height:40px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);font-size:.62rem;font-weight:700;transition:background .15s ease,border-color .15s ease,color .15s ease}.tour-tool.hint{margin-right:6px;background:rgb(var(--gold-rgb) / .06);color:var(--text)}.tour-tool .mode-icon{font-size:1.05rem}.tour-tool.pressed{border-color:rgb(var(--cyan-rgb) / .6);background:rgb(var(--cyan-rgb) / .14);color:var(--neon-cyan)}.tour-tool.tap{animation:tour-press .26s ease}.tour-key{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-dim);font-size:.78rem}.tour-key kbd{min-width:1.9em;padding:.12rem .45rem;border:1px solid var(--edge-line-hi);border-bottom-width:3px;border-radius:5px;background:var(--bg-raised);color:var(--text);font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.78rem;font-weight:700;text-align:center;transition:transform 90ms ease,border-color 90ms ease,color 90ms ease}.tour-key.down kbd{animation:tour-key-down .36s ease}.tour-pointer{position:absolute;left:0;top:0;z-index:6;pointer-events:none;opacity:0;transition:transform .52s cubic-bezier(.45,0,.2,1),opacity .2s ease}.tour-pointer.show{opacity:1}.tour-pointer.finger:before{content:"";position:absolute;left:-15px;top:-15px;width:30px;height:30px;border-radius:50%;background:#ffffff47;box-shadow:0 0 0 2px #ffffffd9,0 4px 12px #00000059;transition:transform .12s ease}.tour-pointer.finger.down:before{transform:scale(.82);background:#ffffff73}.tour-pointer.finger.tap:after{content:"";position:absolute;left:-15px;top:-15px;width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 2px #ffffffe6;animation:tour-ripple .42s ease-out both}.tour-pointer.mouse svg{display:block;width:22px;height:22px;margin:-2px 0 0 -4px;overflow:visible;filter:drop-shadow(0 2px 3px rgb(0 0 0 / .45))}.tour-pointer.mouse path{fill:#fff;stroke:#111;stroke-width:1.4;stroke-linejoin:round}.tour-pointer.mouse.tap svg{animation:tour-click .22s ease}.tour-panel .tour-body{margin:0;color:var(--text);font-size:.92rem;line-height:1.5;text-align:center;text-wrap:pretty}.tour-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem}.tour-nav .btn{padding:.6rem .9rem;white-space:nowrap}.tour-nav .btn:first-child{justify-self:start}.tour-nav .btn:last-child{justify-self:end;min-width:6.5rem}.tour-nav .btn:first-child:disabled{visibility:hidden}.tour-nav .btn.primary:disabled{opacity:.35;box-shadow:none;cursor:default}.tour-dots{display:flex;justify-content:center;gap:6px}.tour-dots span{width:7px;height:7px;border-radius:50%;background:var(--edge-line-hi);transition:background .2s ease,transform .2s ease}.tour-dots span.on{background:var(--neon-cyan);transform:scale(1.25)}.tour-text{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.7rem;min-height:7.4rem}@media (max-width: 380px),(max-height: 720px){.tour-frame{--cell: 36px}.tour-slot{min-height:106px}.tour-panel{gap:.55rem}.tour-panel{padding:.8rem .85rem .9rem}}@keyframes tour-pop{0%{transform:scale(.4);opacity:0}}@keyframes tour-press{40%{transform:scale(.9);background:rgb(var(--cyan-rgb) / .22)}}@keyframes tour-key-down{30%{transform:translateY(2px);border-bottom-width:1px;border-color:var(--neon-cyan);color:var(--neon-cyan)}}@keyframes tour-ripple{0%{transform:scale(.6);opacity:1}to{transform:scale(1.9);opacity:0}}@keyframes tour-click{50%{transform:scale(.85)}}.kept-spacer{visibility:hidden;pointer-events:none}.trophy-icon{display:block;overflow:visible}:root[data-theme=light] .trophy-icon .trophy-halo{transform:translateY(2.5px)}.trophy-icon .trophy-shine{transform:translate(-40px)}.trophy-icon[data-glint=once] .trophy-shine{animation:trophy-shine .9s ease-out .25s both}.trophy-icon[data-glint=loop] .trophy-shine{animation:trophy-shine-loop 4.6s linear .4s infinite}@keyframes trophy-shine{0%{transform:translate(-40px)}to{transform:translate(150px)}}@keyframes trophy-shine-loop{0%{transform:translate(-40px)}14%{transform:translate(150px)}to{transform:translate(150px)}}@media (prefers-reduced-motion: reduce){.trophy-icon[data-glint] .trophy-shine{animation:none}}:root[data-fx=off] .trophy-icon[data-glint] .trophy-shine{animation:none}.ov-trophies{display:flex;justify-content:center;margin:0 auto .6rem;max-width:100%}.ov-trophies:empty{display:none}.ov-trophy-link{min-height:36px;padding:.3rem .9rem;border:1px solid rgb(var(--gold-rgb) / .45);border-radius:999px;background:var(--bg-raised);color:var(--text);font:inherit;font-size:.8rem;font-weight:600;line-height:1.25;cursor:pointer;-webkit-tap-highlight-color:transparent}.ov-trophy-link:after{content:"›" / "";margin-left:.45rem;color:var(--neon-gold)}.ov-trophy-link:hover,.ov-trophy-link:focus-visible{outline:none;border-color:rgb(var(--gold-rgb) / .8);background:var(--bg-raised-hi)}.trophy-toasts{--trophy-toast-top: calc(max(1.25rem, env(safe-area-inset-top) + .35rem) + 46px + 1.4rem) ;position:fixed;top:var(--trophy-toast-top);left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));z-index:260;display:flex;justify-content:center;pointer-events:none}@media (max-width: 700px),(max-height: 500px) and (pointer: coarse),(pointer: coarse) and (orientation: portrait){.trophy-toasts{--trophy-toast-top: calc(max(.25rem, env(safe-area-inset-top) + .2rem) + 44px + .5rem) }}.trophy-toast{position:relative;display:flex;align-items:stretch;width:min(100%,26rem);border:1px solid rgb(var(--gold-rgb) / .55);border-radius:var(--radius-lg);background:var(--bg-panel);color:var(--text);box-shadow:0 6px 24px #00000059;pointer-events:auto;touch-action:none;transform:translateY(calc(-100% - var(--trophy-toast-top) - .5rem));transition:transform .45s cubic-bezier(.22,1.2,.36,1)}.trophy-toast.is-in{transform:none}.trophy-toast.is-out{transform:translateY(calc(-100% - var(--trophy-toast-top) - .5rem));transition:transform .3s cubic-bezier(.55,0,.75,.2)}.trophy-toast-body{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:.75rem;padding:.55rem .5rem .55rem .7rem;border:0;border-radius:var(--radius-lg);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.trophy-toast-body:focus-visible,.trophy-toast-close:focus-visible{outline:2px solid rgb(var(--gold-rgb) / .8);outline-offset:-2px}.trophy-toast-icon{flex:0 0 48px;width:48px;height:48px}.trophy-toast-badge{flex:0 0 48px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:2px solid rgb(var(--gold-rgb) / .7);color:var(--neon-gold);font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}.trophy-toast-text{display:grid;gap:.1rem;min-width:0}.trophy-toast-kicker{color:var(--neon-gold);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.trophy-toast-title{font-size:.95rem;font-weight:700;line-height:1.25;overflow-wrap:anywhere}.trophy-toast-close{flex:0 0 44px;width:44px;border:0;border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:none;color:var(--text-dim);font:inherit;font-size:.9rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.trophy-toast-close:hover{color:var(--text)}@media (prefers-reduced-motion: reduce){.trophy-toast,.trophy-toast.is-out{opacity:0;transform:none;transition:opacity .15s ease}.trophy-toast.is-in{opacity:1}}.trophy-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.trophy-head .profile-section-title{margin:0}.trophy-count{color:var(--text-dim);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums}.trophy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));justify-items:center;gap:.4rem .2rem}.trophy-slot{display:grid;place-items:center;padding:.25rem;border:1px solid transparent;border-radius:var(--radius-md);background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.trophy-slot svg{display:block}.trophy-slot:hover{background:var(--bg-raised)}.trophy-slot:focus-visible,.trophy-slot.is-open{outline:none;border-color:rgb(var(--gold-rgb) / .6);background:var(--bg-raised)}.trophy-detail{display:grid;gap:.15rem;justify-items:start;margin-top:.4rem;padding:.55rem .7rem;border-radius:var(--radius-md);background:var(--bg-raised);border:1px solid rgb(var(--gold-rgb) / .4);animation:info-tip-in .12s ease-out both;position:relative}.trophy-detail-icon{justify-self:center;width:min(60%,240px);margin:.2rem 0 0}.trophy-detail-icon svg{width:100%;height:auto}.trophy-detail>.trophy-detail-name,.trophy-detail>.trophy-detail-condition,.trophy-detail>.trophy-detail-status{justify-self:stretch;text-align:center}.trophy-detail>.trophy-steps{justify-self:stretch}.trophy-detail[hidden]{display:none}.profile-body .trophy-detail p{margin:0;font-size:.74rem;line-height:1.4}.profile-body .trophy-detail .trophy-detail-name{font-size:.82rem;font-weight:700;color:var(--text)}.profile-body .trophy-detail .trophy-detail-condition{color:var(--text-dim)}.profile-body .trophy-detail .trophy-detail-status{font-weight:600;font-variant-numeric:tabular-nums;color:var(--neon-gold)}.profile-body .trophy-detail .trophy-steps{display:grid;gap:.15rem;margin:.2rem 0 0;padding:0;list-style:none}.trophy-step{display:flex;justify-content:space-between;gap:.5rem;font-size:.74rem;line-height:1.4;color:var(--text-dim)}.trophy-step.is-earned .trophy-step-name{color:var(--text);font-weight:700}.trophy-step-when{font-variant-numeric:tabular-nums;text-align:right}.trophy-detail-close{position:absolute;top:0;right:0;width:44px;height:44px;padding:0;display:grid;place-items:center;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text-dim);font:inherit;font-size:.85rem;line-height:1;cursor:pointer}.trophy-detail-close:hover{color:var(--text)}.trophy-detail-close:focus-visible{outline:2px solid rgb(var(--gold-rgb) / .8);outline-offset:1px}@media (prefers-reduced-motion: reduce){.trophy-detail{animation:none}}:root[data-fx=off] .trophy-detail{animation:none}.custom-status[hidden],.stat[hidden]{display:none}.tour-panel{max-height:calc(100dvh - 2rem);overflow-y:auto}.tour-lesson-host{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%}.tour-lesson-host[hidden],.tour-stage[hidden],.tour-panel.closing .tour-lesson-host{display:none}.tour-lesson-host #stage{width:100%;min-width:0;min-height:0;padding:0;background:none;border:0}.tour-panel .tour-how{margin-top:-.35rem}.tour-feedback{margin:0;color:var(--neon-gold);font-size:.88rem;line-height:1.45;text-align:center}.tour-feedback[hidden]{display:none}.tool-word{display:inline-flex;align-items:center;gap:.25em;padding:0 .35em;border:1px solid var(--edge-line-hi);border-radius:.35em;background:var(--bg-raised);font-weight:700;white-space:nowrap}.tool-word .mode-icon{font-size:.8em}#mobile-toolbar .mode-btn.tutorial-gesture{position:relative;overflow:visible}#mobile-toolbar .mode-btn.tutorial-gesture:after{content:"";position:absolute;top:calc(50% - 4px);left:50%;width:28px;height:28px;margin-left:-12px;background:var(--text) center / contain no-repeat;-webkit-mask:var(--gesture-icon) center / contain no-repeat;mask:var(--gesture-icon) center / contain no-repeat;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .6));animation:tutorial-gesture-tap 1.1s ease-in-out infinite;pointer-events:none}#mobile-toolbar .mode-btn.tutorial-gesture[data-gesture=tap]{--gesture-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 2.5a1.5 1.5 0 0 1 3 0V10l.6-.1a1.5 1.5 0 0 1 1.9 1l.1.4.5-.1a1.5 1.5 0 0 1 1.8 1.1l.3-.1a1.5 1.5 0 0 1 1.8 1.4V17a6 6 0 0 1-6 6h-1a6 6 0 0 1-4.9-2.6l-3-4.5a1.5 1.5 0 0 1 2.3-1.9L9 15.6z'/%3E%3C/svg%3E")}#mobile-toolbar .mode-btn.tutorial-gesture[data-gesture=click]:after{margin-left:-6px}#mobile-toolbar .mode-btn.tutorial-gesture[data-gesture=click]{--gesture-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 2l14 11.5-6.2.6 3.6 7-2.7 1.4-3.6-7L5 20z'/%3E%3C/svg%3E")}@keyframes tutorial-gesture-tap{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(6px) scale(.92)}}@media (prefers-reduced-motion: reduce){#mobile-toolbar .mode-btn.tutorial-gesture:after{animation:none}}body.tutorial-lesson-open #app,body.tutorial-lesson-open #mobile-toolbar,body.tutorial-lesson-open #touch-actions{visibility:hidden}.tour .tour-stage-host{cursor:default}.tour .tour-grid{position:relative}.tour .tour-scans{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none;overflow:visible}.tour .tour-scan{stroke:var(--text);stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:opacity .25s ease}.tour .tour-scan.nearest{stroke:var(--neon-cyan);stroke-width:var(--arrow-shaft, 3px);stroke-linecap:round;filter:drop-shadow(0 0 2px rgb(var(--cyan-rgb) / .7))}.tour .tour-scan.farther{opacity:0}.tour .tour-scan-head{fill:var(--neon-cyan);filter:drop-shadow(0 0 2px rgb(var(--cyan-rgb) / .7));animation:tour-fade-in .25s ease both}.tour .tour-scans{transition:opacity .6s ease}.tour .tour-scans.fading{opacity:0}.tour .tour-fade-in{animation:tour-fade-in .6s ease both}@keyframes tour-fade-in{0%{opacity:0}}.tour .tour-grid .tour-badge{z-index:4}.tour .tour-stage.still .tour-scan,.tour .tour-stage.still .tour-scans{transition:none}.tour .tour-stage.still .tour-scan-head,.tour .tour-stage.still .tour-fade-in{animation:none}@media (prefers-reduced-motion: reduce){.tour .tour-scan,.tour .tour-scans{transition:none}.tour .tour-scan-head,.tour .tour-fade-in,.tour .tour-badge{animation:none}}body.tutorial-lesson-open .tour-lesson-host #mobile-toolbar{position:static;display:grid;visibility:visible;width:100%;padding:6px;box-shadow:none;border:1px solid var(--edge-line-hi);border-radius:var(--radius-sm)}.tour-lesson-host #mobile-toolbar button{min-height:58px;font-size:.78rem}.tour-lesson-host #mobile-toolbar .mode-btn[aria-pressed=true]{border:2px solid var(--neon-cyan);background:rgb(var(--cyan-rgb) / .22);box-shadow:inset 0 0 0 1px rgb(var(--cyan-rgb) / .25);outline:none}.tour-lesson-host #mobile-toolbar .mode-btn:disabled{opacity:.4;cursor:default}.tour-lesson-host #mobile-toolbar .tool-sub{display:none}.race-gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:11;display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1rem 1rem;overflow-y:auto;border-radius:inherit;background:var(--bg-panel)}@media (min-width: 701px){.race-gate{padding-top:clamp(2.5rem,12vh,7rem)}}.race-gate[hidden]{display:none}.race-gate-panel{display:flex;flex-direction:column;align-items:center;gap:.9rem;max-width:22rem;text-align:center}.race-gate-panel h2{margin:0;text-wrap:balance}.race-gate-panel p{margin:0;color:var(--text-dim);line-height:1.45;text-wrap:balance}.race-gate-go{min-width:10rem;min-height:3.5rem;font-size:1.35rem;letter-spacing:.04em}.race-gate-share,.race-gate-help{min-width:10rem}.race-gate-panel .race-gate-rule{font-size:.9rem}.race-gate-panel .race-gate-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;letter-spacing:.04em;word-break:break-all;user-select:all;-webkit-user-select:all}:root:not([data-keys]) .race-gate-panel .btn:focus-visible{outline:none}#app.race-gated #shape-bank{visibility:hidden}.ghost{flex:1 0 100%;display:flex;align-items:center;gap:.6rem;min-width:0;font-size:.72rem;font-weight:700;color:var(--text-dim)}.ghost[hidden]{display:none}.ghost-label{flex:none;white-space:nowrap;font-variant-numeric:tabular-nums}.ghost-track{flex:1;height:4px;overflow:hidden;border-radius:999px;background:var(--bg-sunken)}.ghost-fill{display:block;height:100%;border-radius:inherit;background:var(--neon-cyan);transform:scaleX(var(--ghost, 0));transform-origin:left center;transition:transform 1s linear}.ghost.past{color:var(--neon-gold)}.ghost.past .ghost-fill{background:var(--neon-gold)}@media (prefers-reduced-motion: reduce){.ghost-fill{transition:none}}#import-ask{position:fixed;align-items:center;padding:1rem;padding-top:max(1rem,calc(env(safe-area-inset-top) + .5rem));padding-bottom:max(1rem,calc(env(safe-area-inset-bottom) + .5rem));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));background:var(--scrim-rules);z-index:250}#import-title{text-wrap:balance}.import-panel p{text-wrap:pretty}.import-ghost{margin-top:.6rem}.import-panel .import-warning{margin:.6rem 0 0;font-weight:700}header:has(>.ghost:not([hidden])){flex-wrap:wrap}:root{--cmp-mine-rgb: 77 163 255;--cmp-theirs-rgb: 255 154 60}:root[data-theme=light]{--cmp-mine-rgb: 24 104 204;--cmp-theirs-rgb: 196 94 0}:root[data-replay-view] .rail-action,:root[data-replay-view] #mobile-toolbar,:root[data-replay-view] #touch-actions,:root[data-replay-view] #keys,:root[data-replay-view] #menu-toggle,:root[data-replay-view] .hint-close{display:none}.replay-bar{display:flex;flex-direction:column;gap:.55rem;padding:.75rem .8rem;background:var(--bg-panel);border:1px solid rgb(var(--cyan-rgb) / .35);border-radius:var(--radius-lg)}.replay-bar[hidden]{display:none}.replay-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.replay-titles{min-width:0}.replay-title{margin:0;font-size:.95rem;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-bar[data-kind=compare] .replay-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem .6rem}.replay-bar[data-kind=compare] .replay-titles{display:contents}.replay-bar[data-kind=compare] .replay-title{grid-column:1 / -1;white-space:normal;overflow-wrap:anywhere}.replay-bar[data-kind=compare] .replay-clock{margin:0}.replay-name{display:inline-block;max-width:100%}.replay-clock{margin:.1rem 0 0;color:var(--text-dim);font-size:.8rem;font-variant-numeric:tabular-nums}.btn.replay-close{flex:none;padding:.45rem .8rem;font-size:.82rem;min-height:40px}.replay-axis{--thumb: 18px;position:relative;display:flex;flex-direction:column}.replay-marks{position:relative;height:.95rem}.replay-marks[hidden]{display:block;visibility:hidden}.replay-mark{position:absolute;bottom:0;left:calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--at));transform:translate(-50%);font-size:.7rem;line-height:1;pointer-events:none}.replay-mark-hint{color:var(--neon-cyan)}.replay-mark-bust{color:var(--bust-fill);font-weight:700}.replay-mark-retry{color:var(--text);font-weight:700}.replay-marks-below[hidden]{display:none}.replay-marks-below{margin-top:-.45rem;pointer-events:none}.replay-bar[data-kind=compare] .replay-marks:not(.replay-marks-below){position:relative;z-index:1;margin-bottom:-.45rem;pointer-events:none}.replay-marks-below .replay-mark{top:0;bottom:auto}.replay-mark-hint-mine{color:rgb(var(--cmp-mine-rgb))}.replay-mark-hint-theirs{color:rgb(var(--cmp-theirs-rgb))}.replay-slider{--fill: 0;-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:28px;margin:0;background:transparent;cursor:pointer}.replay-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,rgb(var(--cyan-rgb) / .75) calc(var(--fill) * 100%),var(--bg-sunken) calc(var(--fill) * 100%));box-shadow:inset 0 0 0 1px var(--edge-line)}.replay-slider::-moz-range-track{height:6px;border-radius:3px;background:var(--bg-sunken);box-shadow:inset 0 0 0 1px var(--edge-line)}.replay-slider::-moz-range-progress{height:6px;border-radius:3px;background:rgb(var(--cyan-rgb) / .75)}.replay-slider::-webkit-slider-thumb{-webkit-appearance:none;width:var(--thumb, 18px);height:var(--thumb, 18px);margin-top:-6px;border-radius:50%;border:2px solid var(--bg-panel);background:var(--neon-cyan);box-shadow:0 0 0 1px rgb(var(--cyan-rgb) / .6)}.replay-slider::-moz-range-thumb{width:var(--thumb, 18px);height:var(--thumb, 18px);border-radius:50%;border:2px solid var(--bg-panel);background:var(--neon-cyan)}.replay-slider:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px;border-radius:var(--radius-sm)}.replay-info{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.15rem .6rem;min-height:1.2rem;margin-top:-.2rem}.replay-status{margin:0;min-width:0;max-width:100%;white-space:nowrap;color:var(--text);font-size:.8rem;font-variant-numeric:tabular-nums}.replay-status-line{display:block;white-space:normal;overflow-wrap:anywhere}.replay-status-tail{white-space:nowrap}.replay-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.2rem .6rem;margin:0;color:var(--text-dim);font-size:.72rem}.replay-legend-item{display:inline-flex;align-items:baseline;gap:.25rem;color:var(--text-dim)}.replay-legend-glyph{font-size:.7rem}.replay-legend-item.replay-mark-hint .replay-legend-glyph{color:var(--neon-cyan)}.replay-legend-item.replay-mark-bust .replay-legend-glyph{color:var(--bust-fill)}.replay-legend-item.replay-mark-hint-mine .replay-legend-glyph{color:rgb(var(--cmp-mine-rgb))}.replay-legend-item.replay-mark-hint-theirs .replay-legend-glyph{color:rgb(var(--cmp-theirs-rgb))}.replay-said{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.replay-transport{display:flex;justify-content:center;gap:.4rem}.replay-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;width:46px;height:44px;padding:0;border:1px solid var(--edge-line);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--text);cursor:pointer}.replay-btn svg{width:20px;height:20px;fill:currentColor;stroke:currentColor;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.replay-btn:hover:not(:disabled){filter:brightness(1.15)}.replay-btn:disabled{color:var(--text-faint);cursor:not-allowed}.replay-btn:focus-visible,.replay-seg button:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}.replay-btn.replay-play{width:58px;border-color:rgb(var(--cyan-rgb) / .55);background:rgb(var(--cyan-rgb) / .12);color:var(--neon-cyan)}.replay-play .replay-icon-pause,.replay-play.playing .replay-icon-play{display:none}.replay-play.playing .replay-icon-pause{display:block}.replay-options{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.replay-seg{display:inline-flex;gap:.2rem;padding:.2rem;border:1px solid var(--edge-line);border-radius:var(--radius-md);background:var(--bg-sunken)}.replay-seg[hidden]{display:none}.replay-show{display:flex;flex-wrap:wrap;max-width:100%}.replay-show button{flex:1 1 7rem;justify-content:center;padding:0 .4rem;text-align:center;overflow-wrap:break-word;line-height:1.15}.replay-show button[data-show=both]{flex:0 0 auto;padding:0 .7rem}.replay-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.3rem;min-height:34px;padding:0 .6rem;border:1px solid transparent;border-radius:calc(var(--radius-md) - .2rem);background:none;color:var(--text-dim);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.replay-seg button[aria-pressed=true]{background:var(--bg-raised-hi);border-color:var(--edge-line-hi);color:var(--text)}.replay-seg button:disabled{opacity:.4;cursor:default}.replay-half{font-size:.85rem;line-height:1}.replay-half-mine{color:rgb(var(--cmp-mine-rgb))}.replay-half-theirs{color:rgb(var(--cmp-theirs-rgb))}.legend.replay-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem .7rem;margin:0;color:var(--text-dim);font-size:.72rem}.legend.replay-keys kbd{font-size:.62rem}@media (pointer: coarse),(max-width: 700px){:root[data-replay-view] .replay-bar{position:fixed;left:0;right:0;bottom:0;z-index:100;gap:.4rem;padding:.55rem max(.75rem,env(safe-area-inset-right)) calc(.55rem + env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));border-width:1px 0 0;border-color:var(--edge-line-hi);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:color-mix(in srgb,var(--bg-sunken) 94%,transparent);box-shadow:0 -8px 24px var(--bar-cast)}:root[data-replay-view] #app{padding-bottom:calc(var(--replay-bar-h, 12rem) + .5rem)}.legend.replay-keys{display:none}}:root[data-replay-view][data-touch-ui] .replay-bar{position:fixed;left:0;right:0;bottom:0;z-index:100}:root[data-replay-view][data-touch-ui] #app{padding-bottom:calc(var(--replay-bar-h, 12rem) + .5rem)}:root[data-touch-ui] .legend.replay-keys{display:none}#shape-bank.under-replay-bar{display:none}.cell.cmp{background:linear-gradient(160deg,var(--bg-raised-hi),var(--bg-raised));box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 1px 0 var(--gloss-chip);cursor:default}.cell.cmp:before,.cell.cmp:after{--c: var(--cmp-mine-rgb);--a: .45;content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background-repeat:no-repeat}.cell.cmp:before{clip-path:polygon(0 0,100% 0,0 100%);--spot: 27.6%}.cell.cmp:after{clip-path:polygon(100% 0,100% 100%,0 100%);--spot: 72.4%}.cell.cmp.cmp-a-theirs:before,.cell.cmp.cmp-b-theirs:after{--c: var(--cmp-theirs-rgb)}.cell.cmp.cmp-a-mine:before,.cell.cmp.cmp-b-mine:after{--c: var(--cmp-mine-rgb)}.cell.cmp.cmp-a-strong:before,.cell.cmp.cmp-b-strong:after{--a: .95}.cell.cmp.cmp-solo:before{clip-path:none;--spot: 50%}.cell.cmp.cmp-solo:after{display:none}.cell.cmp.cmp-first-mine,.cell.cmp.cmp-first-theirs{position:relative;z-index:1}.cell.cmp.cmp-first-mine{box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 1px 0 var(--gloss-chip),0 0 14px 1px rgb(var(--cmp-mine-rgb) / .55)}.cell.cmp.cmp-first-theirs{box-shadow:0 3px 0 var(--chip-lip),0 6px 10px var(--chip-cast),inset 0 1px 0 var(--gloss-chip),0 0 14px 1px rgb(var(--cmp-theirs-rgb) / .55)}.cell.cmp.cmp-a-open:before,.cell.cmp.cmp-b-open:after{background-color:rgb(var(--c) / var(--a))}.cell.cmp.cmp-a-piece:not(.cmp-a-open):before,.cell.cmp.cmp-b-piece:not(.cmp-b-open):after{background-image:linear-gradient(rgb(var(--c) / var(--a)),rgb(var(--c) / var(--a)));background-size:24% 24%;background-position:var(--spot) var(--spot)}.cell.cmp.cmp-a-empty:before,.cell.cmp.cmp-b-empty:after{background-image:radial-gradient(circle closest-side,rgb(var(--c) / .9) 70%,transparent 76%);background-size:20% 20%;background-position:var(--spot) var(--spot)}.cell.cmp.cmp-a-miss:before,.cell.cmp.cmp-b-miss:after{background-color:var(--bust-fill)}.cmp-slabs,.cmp-frames{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.cmp-frames{z-index:13}.cmp-line-mine{--c: var(--cmp-mine-rgb)}.cmp-line-theirs{--c: var(--cmp-theirs-rgb)}.cmp-slab{fill:rgb(var(--c) / .7)}.cmp-seam{fill:none;stroke:color-mix(in srgb,rgb(var(--c)) 55%,rgb(var(--ink-rgb)));stroke-width:1.5}.cmp-frame,.cmp-side{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.cmp-frame{stroke:color-mix(in srgb,rgb(var(--c)) 45%,rgb(var(--gloss-rgb)))}.cmp-side{stroke:rgb(var(--c))}:root[data-theme=light] .cmp-frame{stroke:color-mix(in srgb,rgb(var(--c)) 70%,rgb(var(--ink-rgb)))}.race-gate-note{font-size:.85rem}.solved-list{container-type:inline-size}.solved-share:not(:last-child){border-radius:0}@container (max-width: 26rem){.solved-row:has(>.solved-share:nth-of-type(3)){flex-wrap:wrap}.solved-row:has(>.solved-share:nth-of-type(3)) .solved-text{flex-basis:100%}.solved-row:has(>.solved-share:nth-of-type(3)) .solved-share{flex:1;min-height:44px;border-top:1px solid var(--edge-hair);border-radius:0}.solved-row:has(>.solved-share:nth-of-type(3)) .solved-share:first-of-type{border-left:none;border-bottom-left-radius:var(--radius-md)}.solved-row:has(>.solved-share:nth-of-type(3)) .solved-share:last-child{border-bottom-right-radius:var(--radius-md)}}@media (max-height: 700px){#overlay .ov-get-app{display:none}#overlay:has(#ov-choices:not([hidden])):has(#ov-share-msg[hidden]):has(#ov-get-app:not([hidden])) #ov-keep-row,:root[data-touch-ui] #overlay:has(#ov-choices:not([hidden])):has(#ov-share-msg[hidden]):has(#ov-get-app:not([hidden])) #ov-keep-row{padding-bottom:max(1.5rem,calc(env(safe-area-inset-bottom) + .75rem))}}#overlay:has(#ov-share-msg:not([hidden])) .ov-get-app{display:none}#overlay #ov-share-msg:not([hidden]){margin-bottom:max(1.25rem,calc(env(safe-area-inset-bottom) + .75rem))}.lb-panel{width:min(100%,30rem)}#lb-view,#lbs-view{padding:0;background:var(--bg-panel)}#lb-view .lb-panel,#lbs-view .lb-panel{width:100%;max-width:none;height:100%;max-height:none;border:0;border-radius:0;box-shadow:none;padding-top:max(1rem,calc(env(safe-area-inset-top) + .5rem));padding-bottom:max(1rem,calc(env(safe-area-inset-bottom) + .5rem));padding-left:max(1rem,env(safe-area-inset-left),calc((100% - 40rem)/2));padding-right:max(1rem,env(safe-area-inset-right),calc((100% - 40rem)/2))}#lb-view .lb-panel>:last-child,#lbs-view .lb-panel>:last-child{margin-top:auto}.lb-board{margin:0;color:var(--text-dim);font-size:.85rem}.lb-note[data-bad],.boards-msg[data-bad]{color:var(--neon-magenta)}.lb-state{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;padding:.8rem .9rem;border:1px solid var(--edge-line);border-radius:var(--radius-md);background:var(--bg-raised)}.lb-state p{margin:0;font-size:.88rem;line-height:1.45}.lb-state .btn{min-height:44px}.lb-scroll{flex:1}.lb-scroll-inner{flex:1;min-width:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:1.5rem}.lb-scroll-inner:focus-visible{outline:3px solid var(--neon-gold);outline-offset:-2px}.lb-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.88rem}.lb-table thead th{padding:0 .4rem .35rem;color:var(--text-faint);font-size:.72rem;font-weight:600;letter-spacing:.04em;text-align:left}.lb-table thead th:nth-child(3){text-align:right}.lb-table td,.lb-table tbody th{padding:.15rem .4rem;border-top:1px solid var(--edge-hair);text-align:left;font-weight:500}.lb-rank{width:2.6rem;color:var(--text-dim)}.lb-name{width:100%;max-width:0;white-space:nowrap}.lb-name-text{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.lb-mine .lb-name-text{max-width:calc(100% - 3.4rem)}.lb-you{margin-left:.5rem;padding:.05rem .4rem;border:1px solid var(--neon-cyan);border-radius:999px;color:var(--neon-cyan);font-size:.7rem;font-weight:700;letter-spacing:.04em;vertical-align:middle;white-space:nowrap}.lb-mine td,.lb-mine th{background:rgb(var(--cyan-rgb) / .1)}.lb-time{text-align:right!important;font-weight:600!important;white-space:nowrap}.lb-act{width:1%;white-space:nowrap}.lb-gap td{padding:0;border-top:0;color:var(--text-faint);text-align:center!important;line-height:1.2}.lb-watch{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.3rem;min-height:44px;padding:0 .7rem;border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--text);font:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.lb-watch:hover{background:var(--bg-raised-hi)}.lb-watch:focus-visible{outline:3px solid var(--neon-gold);outline-offset:-2px}.lb-confirm{display:flex;flex-direction:column;gap:.6rem;padding:.8rem .9rem;border:1px solid var(--neon-gold);border-radius:var(--radius-md);background:var(--bg-raised)}.lb-confirm p{margin:0;font-size:.85rem;line-height:1.45}.lb-confirm-actions,.lb-actions{display:flex;flex-wrap:wrap;gap:.5rem}.lb-confirm-actions .btn,.lb-actions .btn{flex:1 1 8rem;min-height:44px}.lb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.btn.danger-action{border-color:var(--neon-magenta);color:var(--neon-magenta)}.btn.danger-action:hover:not(:disabled){background:rgb(var(--magenta-rgb) / .12)}.profile-leaderboard{display:flex;flex-direction:column;gap:.35rem}.profile-leaderboard .profile-section-title{margin:0}.profile-leaderboard .btn{align-self:flex-start;min-height:44px;margin-top:.3rem}@media (max-width: 520px){.overlay .ov-keep-row:has(#ov-leaderboard:not([hidden])) .keep-action{flex-direction:column;gap:.2rem;padding-inline:.3rem;font-size:.8rem}.overlay .ov-keep-row:has(#ov-leaderboard:not([hidden])) .keep-action .btn-icon{width:1.3rem;height:1.3rem}}.vote-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .75rem;margin:.5rem 0}#lb-view .vote-row{justify-content:flex-start;margin:0}.vote-label{color:var(--text-dim);font-size:.85rem}.vote-buttons{display:flex;gap:.4rem}.btn.vote-btn{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0;font-size:1.2rem;line-height:1}.btn.vote-btn[aria-pressed=true]{border-color:rgb(var(--gold-rgb) / .7);background:rgb(var(--gold-rgb) / .14)}.vote-row .vote-msg{flex-basis:100%;margin:0;text-align:inherit}.profile-name-row{display:flex;align-items:center;gap:.5rem}.profile-lb-name-help{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.profile-body .profile-lb-name-help p{margin:0;font-size:inherit}.profile-lb-name-help a{color:var(--text);min-height:24px}.daily-drawer,.daily-panel{border-color:rgb(var(--cyan-rgb) / .22);background:radial-gradient(26rem 11rem at 0% 0%,rgb(var(--cyan-rgb) / .16),transparent 72%) no-repeat,radial-gradient(20rem 10rem at 100% 0%,rgb(var(--gold-rgb) / .1),transparent 72%) no-repeat,linear-gradient(180deg,transparent 0,var(--bg-panel) 9rem) no-repeat,linear-gradient(rgb(var(--text-rgb) / .06) 1px,transparent 1px) -1px -1px / 20px 20px,linear-gradient(90deg,rgb(var(--text-rgb) / .06) 1px,transparent 1px) -1px -1px / 20px 20px,var(--bg-panel)}.daily-icon{flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.daily-icon-day{width:2.3rem;height:2.3rem;padding:.42rem;border:1px solid rgb(var(--cyan-rgb) / .32);border-radius:10px;background:rgb(var(--cyan-rgb) / .1);color:var(--neon-cyan)}.daily-icon-today{fill:var(--gold-fill);stroke:none}.daily-chip{display:inline-flex;flex:none;align-items:center;gap:.3rem;margin:0;padding:.22rem .6rem .22rem .42rem;border:1px solid rgb(var(--gold-rgb) / .42);border-radius:999px;background:rgb(var(--gold-rgb) / .13);color:var(--neon-gold);font-size:.8rem;font-weight:700;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}.daily-chip .daily-icon-flame{width:1.05rem;height:1.05rem;fill:rgb(var(--gold-rgb) / .85);filter:drop-shadow(0 0 4px rgb(var(--gold-rgb) / .55))}.daily-chip[data-streak=off]{border-style:dashed;background:rgb(var(--gold-rgb) / .06);color:var(--text);font-weight:600}.daily-chip[data-streak=off] .daily-icon-flame{filter:none}.daily-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none}.daily-tile{--band: var(--band-medium);--band-rgb: var(--cyan-rgb);--band-fill: var(--band);--band-on: var(--on-shape);-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:44px;margin:0;padding:.6rem .55rem .55rem;container-type:inline-size;border:1px solid rgb(var(--band-rgb) / .4);border-radius:14px;background:linear-gradient(180deg,rgb(var(--band-rgb) / .14),rgb(var(--band-rgb) / .02) 65%),var(--bg-raised);box-shadow:inset 0 1px rgb(var(--band-rgb) / .32),0 8px 20px -12px rgb(var(--band-rgb) / .7);color:var(--text);font:inherit;text-align:left;font-variant-numeric:tabular-nums}.daily-tile[data-band=easy]{--band: var(--band-easy);--band-rgb: var(--band-easy-rgb)}.daily-tile[data-band=hard]{--band: var(--band-hard);--band-rgb: var(--band-hard-rgb)}.daily-tile[data-band=extra-hard]{--band: var(--band-xh);--band-rgb: var(--band-xh-rgb)}:root[data-theme=light] .daily-tile{--band-on: #ffffff}:root[data-theme=light] .daily-tile[data-band=hard]{--band-fill: var(--gold-fill);--band-on: var(--on-shape)}button.daily-tile{cursor:pointer;transition:border-color .12s ease,background-color .12s ease}button.daily-tile:hover:not(:disabled){border-color:rgb(var(--band-rgb) / .8)}button.daily-tile:active:not(:disabled){background:linear-gradient(180deg,rgb(var(--band-rgb) / .22),rgb(var(--band-rgb) / .05) 65%),var(--bg-raised)}.daily-tile:focus-visible{outline:2px solid var(--band);outline-offset:2px}button.daily-tile:disabled{cursor:default}.daily-tile[data-state=cleared]{border-color:rgb(var(--band-rgb) / .22);background:var(--bg-raised);box-shadow:none}.daily-tile[data-state=cleared] .daily-tile-band{color:var(--text-dim)}.daily-tile-top{display:flex;align-items:center;justify-content:space-between;gap:.3rem;min-height:1rem}.daily-pips{display:flex;gap:3px}.daily-pip{width:7px;height:7px;border:1.5px solid rgb(var(--band-rgb) / .55);border-radius:2px}.daily-pip[data-on]{border-color:var(--band-fill);background:var(--band-fill);box-shadow:0 0 6px rgb(var(--band-rgb) / .55)}.daily-tile[data-state=cleared] .daily-pip[data-on]{box-shadow:none}.daily-tile-tag{padding:.05rem .35rem;border-radius:999px;background:rgb(var(--band-rgb) / .16);color:var(--band);font-size:.66rem;font-weight:700;line-height:1.3}.daily-tile-size{margin-top:.4rem;color:var(--text-dim);font-size:.72rem;font-weight:600;line-height:1.2}.daily-tile-band{color:var(--text);font-size:min(1.05rem,23cqi);font-weight:700;line-height:1.2;white-space:nowrap}.daily-tile-band:first-letter{text-transform:uppercase}.daily-tile-record{display:flex;flex-direction:column;min-width:0;margin-top:.45rem;color:var(--text-dim);font-size:.74rem;line-height:1.3}.daily-tile-record-label{font-size:.66rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.daily-tile-record-time{color:var(--text);font-size:min(.9rem,19cqi);font-weight:700;white-space:nowrap}.daily-tile-holder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-tile-cta,.daily-tile-done,.daily-tile-state,.daily-card-actions{margin-top:auto}.daily-tile-record{margin-bottom:.6rem}.daily-tile-state+.daily-card-actions,.daily-tile-done+.daily-card-actions{margin-top:0;padding-top:.5rem}.daily-tile-cta{display:flex;align-items:center;justify-content:center;min-height:2.1rem;margin-top:auto;padding:.35rem .4rem;border:1px solid var(--band-fill);border-radius:9px;background:var(--band-fill);color:var(--band-on);font-size:.88rem;font-weight:700;line-height:1.1;text-align:center;white-space:nowrap}.daily-tile[data-state=cleared] .daily-tile-cta,.daily-tile[data-state=miss] .daily-tile-cta,.daily-tile[data-state=played] .daily-tile-cta{border-color:rgb(var(--band-rgb) / .5);background:transparent;color:var(--band)}.daily-tile-state{color:var(--text-dim);font-size:.78rem;font-weight:600;line-height:1.25}.daily-tile-done{display:flex;flex-direction:column;gap:.05rem}.daily-tile-time{display:flex;align-items:center;gap:.25rem;color:var(--text);font-size:min(.95rem,17cqi);font-weight:700;line-height:1.2}.daily-icon-check{width:1.05rem;height:1.05rem;color:var(--band);stroke-width:2.4}.daily-tile-place{color:var(--text-dim);font-size:.72rem;line-height:1.25}.daily-panel{width:min(100%,30rem)}.daily-heading{display:flex;align-items:center;gap:.6rem}.daily-view{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.daily-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem}.daily-meta-text{min-width:0}.daily-panel .daily-date,.daily-panel .daily-longest{margin:0;font-size:.85rem;line-height:1.35}.daily-panel .daily-date{color:var(--text);font-weight:600;white-space:nowrap}.daily-panel .daily-longest{color:var(--text-dim);font-variant-numeric:tabular-nums}.daily-panel .daily-rule{margin:0;color:var(--text-dim);font-size:.85rem;line-height:1.45}.daily-status{margin:0}.daily-card-actions{display:flex;flex-direction:column;gap:.35rem}.daily-card-actions .btn{width:100%;min-height:44px;padding:.4rem .15rem;font-size:min(.8rem,15cqi);letter-spacing:0;white-space:nowrap}.daily-card-actions .daily-tile-cta{border-radius:var(--radius-md)}button.daily-table-open{display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;min-height:44px;padding:0;border:0;background:none;color:var(--text-dim);font-family:inherit;font-size:.74rem;line-height:1.3;text-align:left;cursor:pointer}button.daily-table-open .daily-tile-record-time{align-self:flex-start}button.daily-table-open .daily-tile-record-time{text-decoration:underline;text-underline-offset:.2em}button.daily-table-open .daily-tile-record-time:after{content:" ›"}.daily-note{margin:0}.daily-hints,.daily-miss{text-align:right;white-space:nowrap}.daily-table thead th:nth-child(4),.daily-table thead th:nth-child(5){text-align:right}.ov-daily{margin:.2rem 0 0;color:var(--neon-cyan);font-size:.9rem;font-weight:600;text-align:center}.daily-drawer{position:fixed;top:0;left:50%;z-index:120;display:flex;flex-direction:column;gap:.7rem;width:min(100% - 1rem,30rem);margin-top:max(.5rem,calc(env(safe-area-inset-top) + .25rem));padding:.8rem .75rem .6rem;border:1px solid rgb(var(--cyan-rgb) / .22);border-radius:var(--radius-lg);box-shadow:0 14px 44px var(--sheet-cast);transform:translate(-50%);touch-action:pan-x;animation:daily-drawer-in .24s cubic-bezier(.2,.8,.2,1)}@keyframes daily-drawer-in{0%{opacity:0;transform:translate(-50%,-1.5rem)}}@media (prefers-reduced-motion: reduce){.daily-drawer{animation:none}}.daily-drawer-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:.65rem;row-gap:.1rem}.daily-drawer-head .daily-icon-day{grid-row:1 / span 2}.daily-drawer-title{display:contents}.daily-drawer-title>:first-child{grid-column:2 / span 2;grid-row:1;color:var(--text);font-size:1.05rem;font-weight:700;line-height:1.2}.daily-drawer-date{grid-column:2;grid-row:2;color:var(--text-dim);font-size:.8rem;font-weight:500;font-variant-numeric:tabular-nums}.daily-drawer-head .daily-chip{grid-column:3;grid-row:2}.daily-drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.daily-drawer-rule{margin:0;color:var(--text-dim);font-size:.78rem;line-height:1.3}.daily-drawer-close{flex:none;min-height:44px;padding:.5rem 1.1rem;background:transparent}.lbs-heading{display:flex;align-items:center;gap:.6rem}.lbs-icon{flex:none;width:2.3rem;height:2.3rem;padding:.42rem;border:1px solid rgb(var(--gold-rgb) / .4);border-radius:10px;background:rgb(var(--gold-rgb) / .12);color:var(--neon-gold);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.lbs-icon .lbs-icon-cup{fill:rgb(var(--gold-rgb) / .35)}.lbs-tabs .tab,.lb-tables .tab{min-height:44px}.lbs-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:1.5rem}.lbs-pane{display:flex;flex-direction:column;gap:.6rem}.lbs-pane[hidden]{display:none}.lbs-filters-box{border:1px solid var(--edge-line-hi);border-radius:var(--radius-md);background:var(--bg-sunken)}.lbs-filters-bar{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:.7rem;width:100%;min-height:48px;padding:.25rem .8rem .25rem .25rem;border:0;border-radius:var(--radius-md);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.lbs-filters-bar:after{content:"";flex:none;width:.5rem;height:.5rem;margin-left:auto;border:solid var(--text-dim);border-width:0 2px 2px 0;transform:translateY(-25%) rotate(45deg)}.lbs-filters-bar[aria-expanded=true]:after{transform:translateY(25%) rotate(-135deg)}.lbs-filters-bar:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}.lbs-filters-btn{display:inline-flex;flex:none;align-items:center;gap:.4rem;min-height:40px;padding:0 .75rem;border-radius:9px;background:var(--bg-raised);font-size:.88rem;font-weight:700;white-space:nowrap}.lbs-filters-icon{width:1rem;height:1rem;fill:currentColor}.lbs-filters-now{min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text-dim);font-size:.82rem;line-height:1.3}.lbs-filters{display:grid;gap:.7rem;padding:.6rem .75rem .8rem;border-top:1px solid var(--edge-line)}.lbs-filters[hidden]{display:none}.lbs-filter{display:grid;gap:.3rem}.lbs-filter-label{color:var(--text-dim);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.lbs-chips{display:flex;flex-wrap:wrap;gap:.35rem}.lbs-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:.25rem;min-height:44px;padding:0 .75rem;border:1px solid var(--edge-line-hi);border-radius:999px;background:rgb(var(--text-rgb) / .03);color:var(--text);font:inherit;font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer}.lbs-chip:hover:not(:disabled){border-color:rgb(var(--cyan-rgb) / .5);background:rgb(var(--text-rgb) / .07)}.lbs-chip[aria-pressed=true]{border-color:var(--neon-cyan);background:rgb(var(--cyan-rgb) / .16);box-shadow:inset 0 0 0 1px var(--neon-cyan);cursor:default}.lbs-chip[aria-pressed=true]:before{content:"✓";color:var(--neon-cyan);font-weight:800}.lbs-chip:disabled{border-style:dashed;background:none;color:var(--text-faint);cursor:not-allowed}.lbs-chip:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}.lbs-filter-note{margin:0;color:var(--text-dim);font-size:.78rem}.lbs-count{margin:0;color:var(--text-dim);font-size:.85rem}.lbs-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.lbs-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:0 .75rem;width:100%;min-height:48px;padding:.6rem .75rem .65rem;border:1px solid var(--edge-line-hi);border-radius:14px;background:linear-gradient(180deg,var(--bg-raised-hi),var(--bg-raised));box-shadow:0 4px 14px -8px #00000080;color:var(--text);font:inherit;text-align:left;cursor:pointer}:root[data-theme=light] .lbs-card{background:var(--bg-raised-hi);box-shadow:0 4px 12px -8px rgb(var(--ink-rgb) / .35)}.lbs-card:hover{border-color:rgb(var(--cyan-rgb) / .45)}.lbs-card:focus-visible{outline:3px solid var(--neon-gold);outline-offset:2px}.lbs-card-body{display:flex;flex-direction:column;min-width:0;gap:.15rem}.lbs-card-title{font-size:1rem;font-weight:700;line-height:1.3}.lbs-card:hover .lbs-card-title{color:var(--neon-cyan)}.lbs-card-tag{align-self:flex-start;padding:.05rem .45rem;border:1px solid rgb(var(--gold-rgb) / .42);border-radius:999px;background:rgb(var(--gold-rgb) / .12);color:var(--neon-gold);font-size:.72rem;font-weight:700;line-height:1.35}.lbs-stats{display:flex;flex-wrap:wrap;gap:0 .75rem;color:var(--text-dim);font-size:.82rem;font-variant-numeric:tabular-nums}.lbs-stat b{color:var(--text);font-weight:700}.lbs-rating{white-space:nowrap}.lbs-card-code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;letter-spacing:.03em}.lbs-badge{--band: var(--neon-cyan);--band-rgb: var(--cyan-rgb);display:grid;justify-items:center;align-content:center;gap:.3rem;width:3.9rem;min-height:3.2rem;padding:.4rem .25rem;border:1px solid rgb(var(--band-rgb) / .5);border-radius:10px;background:radial-gradient(circle at 50% 0%,rgb(var(--band-rgb) / .22),transparent 75%),var(--bg-sunken);box-shadow:0 0 12px rgb(var(--band-rgb) / .14)}.lbs-badge[data-band=easy]{--band: var(--band-easy);--band-rgb: var(--band-easy-rgb)}.lbs-badge[data-band=hard]{--band: var(--band-hard);--band-rgb: var(--band-hard-rgb)}.lbs-badge[data-band=extra-hard]{--band: var(--band-xh);--band-rgb: var(--band-xh-rgb)}.lbs-badge-size{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;font-weight:800;line-height:1;letter-spacing:-.02em;white-space:nowrap}.lbs-pips{display:flex;gap:3px}.lbs-pips i{width:7px;height:7px;border:1px solid rgb(var(--band-rgb) / .55);border-radius:2px}.lbs-pips i[data-on]{border-color:var(--band);background:var(--band)}:root[data-theme=light] .lbs-badge[data-band=hard] .lbs-pips i[data-on]{border-color:var(--gold-fill);background:var(--gold-fill)}.lbs-badge-custom{color:var(--text-dim);font-size:.58rem;font-weight:700;letter-spacing:.1em;line-height:1;text-transform:uppercase}.lbs-state-actions{display:flex;flex-wrap:wrap;gap:.5rem}.lbs-more{align-self:center;min-height:44px;padding:0 1.2rem}.lbs-days{display:flex;flex-direction:column;gap:1rem}.lbs-days:empty{display:none}.lbs-day-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2rem .6rem;margin-bottom:.45rem}.lbs-day-date{margin:0;font-size:.92rem;font-weight:700}.lbs-day-status{color:var(--text-dim);font-size:.76rem;font-weight:600}.lbs-day-status[data-open=true]{color:var(--neon-gold)}.lbs-tiles>li{display:flex;min-width:0}.lbs-tile{flex:1;width:100%}.lbs-tile .daily-tile-record{margin-bottom:.15rem}.lbs-tile-players{margin-bottom:.5rem;color:var(--text-dim);font-size:.72rem;line-height:1.25}.lb-panel .lb-daily{align-self:flex-start;margin:0;padding:.1rem .55rem;border:1px solid rgb(var(--gold-rgb) / .42);border-radius:999px;background:rgb(var(--gold-rgb) / .12);color:var(--neon-gold);font-size:.78rem;font-weight:700}.lb-row-meta{display:block;color:var(--text-dim);font-size:.72rem;line-height:1.2}
