@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff")}:root{--night:#0f1220;--panel:#171b2d;--raised:#21263b;--line:#2e3550;--text:#eef0f8;--muted:#98a1bd;--action:#ffd23f;--action-ink:#1b1600;--ok:#45d483;--warn:#ffb547;--danger:#ff6b6b;--blind:#55585f;--action-text:var(--action);--danger-text:#ffb3b3;--danger-bg:#3a1f2a;--info-bg:#1d2a3f;--stage-glow:#1c2240;--move-bg:#21263bdd;--rot:#b9a2ff;--cone-mid:#2c3250;--face-U:#ece8e2;--face-R:#eb4242;--face-F:#1abe57;--face-D:#ffe62a;--face-L:#ff801f;--face-B:#3d7ce0;--r-sm:8px;--r-md:12px;--r-lg:18px;--panel-w:420px;--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font-text:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-text);font-size:16px;line-height:1.45}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--night:#eef0f7;--panel:#fff;--raised:#e5e8f2;--line:#cdd3e4;--text:#161a2c;--muted:#586180;--action-text:#8a6500;--ok:#1d9454;--warn:#b06400;--danger:#d43d3d;--blind:#9a9da6;--danger-text:#b22a2a;--danger-bg:#fde9eb;--info-bg:#e2ebfb;--stage-glow:#fff;--move-bg:#fffd;--rot:#6a4fd6;--cone-mid:#d9dded;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--night:#eef0f7;--panel:#fff;--raised:#e5e8f2;--line:#cdd3e4;--text:#161a2c;--muted:#586180;--action-text:#8a6500;--ok:#1d9454;--warn:#b06400;--danger:#d43d3d;--blind:#9a9da6;--danger-text:#b22a2a;--danger-bg:#fde9eb;--info-bg:#e2ebfb;--stage-glow:#fff;--move-bg:#fffd;--rot:#6a4fd6;--cone-mid:#d9dded;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{touch-action:manipulation;background:var(--night);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#app{left:0;right:0;top:var(--vv-top,0px);height:var(--vv-h,100%);position:fixed}:focus-visible{outline:2px solid var(--action);outline-offset:2px}.stage{touch-action:none;background:radial-gradient(ellipse 60% 45% at 50% 52%, var(--stage-glow) 0%, var(--night) 70%);position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block}.hud{z-index:5;padding:max(10px, env(safe-area-inset-top)) 14px 0;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.hud>*>*,.hud .banner{pointer-events:auto}.topbar{align-items:center;gap:10px;min-width:0;display:flex}.topbar .app-title,.topbar .status{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.topbar .battery{white-space:nowrap;align-items:center;gap:6px;margin-left:auto;display:inline-flex}.topbar .battery:before{content:"";background:var(--ok);border-radius:50%;width:8px;height:8px}.topbar .battery:not([hidden])+.quick-connect{margin-left:0}@media (max-width:380px){.topbar .app-title{font-size:1rem}}.topbar strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.15rem;font-weight:700}.topbar .status,.topbar .battery{color:var(--muted);font-size:.85rem}.topbar .status.on{color:var(--ok)}.topbar .status.flash{color:var(--action-text);font-weight:700}.topbar .theme-toggle{border:1px solid var(--line);border-radius:50%;flex:none;width:36px;height:36px;min-height:0;font-size:1.05rem;line-height:1}.topbar .quick-connect{min-height:34px;color:var(--action-text);border:1px solid color-mix(in srgb, var(--action) 40%, transparent);white-space:nowrap;background:0 0;border-radius:999px;margin-left:auto;padding:4px 14px;font-size:.85rem}button{touch-action:manipulation;font:inherit;color:var(--action-ink);background:var(--action);border-radius:var(--r-md);cursor:pointer;border:0;min-height:44px;padding:10px 16px;font-weight:700;transition:transform 80ms}button:active{transform:scale(.98)}button.secondary{background:var(--raised);color:var(--text)}button.link{color:var(--action-text);text-underline-offset:3px;background:0 0;min-height:0;padding:4px 0;font-weight:400;text-decoration:underline}button.icon{background:var(--raised);color:var(--text);width:44px;padding:0;font-size:1.2rem}select,input[type=text],input[type=number]{font:inherit;color:var(--text);background:var(--raised);border:1px solid var(--line);border-radius:var(--r-sm);max-width:100%;min-height:42px;padding:8px 10px}input[type=number]{width:5.5em}input[type=checkbox]{accent-color:var(--action);width:18px;height:18px}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:inline-flex}label.check{flex-direction:row;align-items:center;gap:8px}label.stack,.stack{flex-direction:column;gap:6px;display:flex}.row{align-items:flex-end;gap:8px;margin:8px 0;display:flex}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.small{margin:2px 0 8px;font-size:.82rem}.mono{font-family:var(--font-mono)}h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em}h2{margin:6px 0 12px;font-size:1.35rem;font-weight:700}h3{margin:18px 0 8px;font-size:1.02rem;font-weight:650}h4{color:var(--muted);margin:12px 0 4px;font-size:.9rem;font-weight:600}.panel{z-index:4;background:var(--panel);border-radius:var(--r-lg) var(--r-lg) 0 0;border-top:1px solid var(--line);opacity:0;visibility:hidden;flex-direction:column;height:58vh;transition:transform .32s cubic-bezier(.4,0,.6,1),opacity .26s,visibility 0s linear .32s;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%)}#app.keyboard-open .panel{height:calc(var(--vv-h,100%) - 64px)}.panel.open{opacity:1;visibility:visible;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s,height .32s cubic-bezier(.2,.8,.2,1),visibility;transform:none}@media (max-width:899px){#app:has(.panel.open) .move-pad{display:none}#app:has(.panel.open) .training-toggle{bottom:calc(58vh + 10px)}}@media (min-width:900px){.panel{width:var(--panel-w);border-top:0;border-left:1px solid var(--line);border-radius:0;height:auto;top:0;left:auto;transform:translate(100%)}#app:has(.panel.open) .move-pad{right:var(--panel-w)}#app:has(.panel.open) .training-toggle{right:calc(var(--panel-w) + 14px)}}@media (prefers-reduced-motion:reduce){.panel,.panel.open,button{transition:none}}.training-toggle{z-index:3;right:14px;bottom:calc(126px + env(safe-area-inset-bottom));background:var(--raised);min-height:38px;color:var(--text);font-family:var(--font-display);border-radius:999px;padding:6px 16px;font-size:.9rem;font-weight:700;transition:bottom .32s cubic-bezier(.2,.8,.2,1),right .32s cubic-bezier(.2,.8,.2,1);position:absolute;box-shadow:0 6px 18px #0006}.training-toggle:before{content:"";background:var(--face-R);vertical-align:0;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.training-toggle.on{background:var(--action);color:var(--action-ink)}#app:has(.move-pad[hidden]) .training-toggle{bottom:calc(16px + env(safe-area-inset-bottom))}.panel-head{justify-content:space-between;align-items:center;padding:12px 12px 4px 18px;display:flex}.panel-title{margin:0}.panel-close{font-size:1.4rem}.panel-back{background:var(--raised);min-height:40px;color:var(--text);border-radius:999px;order:-1;margin-right:12px;padding:6px 14px;font-weight:700}.panel-head:has(.panel-back){justify-content:flex-start}.tab-content.slide-forward{animation:.28s cubic-bezier(.2,.8,.2,1) tab-forward}.tab-content.slide-back{animation:.28s cubic-bezier(.2,.8,.2,1) tab-back}.panel-title.title-in{animation:.28s ease-out title-in}@keyframes title-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes tab-forward{0%{opacity:0;transform:translate(40%)}}@keyframes tab-back{0%{opacity:0;transform:translate(-40%)}}@media (max-width:899px){.panel.full{height:calc(var(--vv-h,100%) - 64px - env(safe-area-inset-top))}#app:has(.panel.full.open) .letters-wrap{visibility:hidden}#app:has(.panel.full.open) .stage canvas{visibility:hidden}}.menu-wrap{margin-left:auto;position:relative}.topbar .quick-connect+.menu-wrap{margin-left:0}.app-menu{z-index:6;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #0009}.menu-item{color:var(--text);text-align:left;border-radius:var(--r-sm);background:0 0;align-items:center;gap:12px;min-height:46px;padding:8px 12px;font-weight:600;display:flex}.menu-item:hover,.menu-item:focus-visible,.menu-item.active{background:var(--raised)}.menu-dot{background:var(--c,var(--line));width:22px;height:22px;color:var(--night);border-radius:6px;place-items:center;display:inline-grid;box-shadow:inset 0 -2px #0003}.menu-dot svg{width:15px;height:15px}.menu-training .menu-dot{--c:var(--face-R)}.menu-blind .menu-dot{--c:var(--face-D)}.menu-item.menu-gap{margin-top:10px}.menu-route .menu-dot{--c:var(--face-B)}.menu-multi .menu-dot{--c:var(--face-F)}.menu-images .menu-dot{--c:var(--face-L)}.menu-settings .menu-dot{--c:var(--face-U)}.menu-history .menu-dot{--c:var(--rot)}.tab-content{padding:14px 18px calc(20px + env(safe-area-inset-bottom));overflow-y:auto}fieldset.segmented{border:0;margin:0 0 10px;padding:0;display:flex}fieldset.segmented legend{color:var(--muted);margin-bottom:6px;font-size:.85rem}fieldset.segmented label{background:var(--raised);color:var(--text);cursor:pointer;flex-direction:row;flex:1;justify-content:center;align-items:center;padding:11px;font-size:.95rem;font-weight:700}fieldset.segmented label:first-of-type{border-radius:var(--r-md) 0 0 var(--r-md)}fieldset.segmented label:last-of-type{border-radius:0 var(--r-md) var(--r-md) 0}fieldset.segmented label:has(input:checked){background:var(--action);color:var(--action-ink)}fieldset.segmented input{opacity:0;pointer-events:none;position:absolute}.error-box{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--r-md);margin:10px 0;padding:10px 14px}.error-box p{margin:4px 0 10px}.error{color:var(--danger)}.move-log{word-spacing:2px;background:var(--raised);border-radius:var(--r-sm);max-height:7.5em;margin:0;padding:8px 12px;font-size:.88rem;line-height:1.7;overflow-y:auto}.debug-list{font-family:var(--font-mono);word-break:break-all;max-height:260px;margin:0;padding:0;font-size:.72rem;list-style:none;overflow-y:auto}.debug-list li{border-bottom:1px solid var(--line);padding:3px 0}.debug-list li.warn{color:var(--warn)}.debug-list .time{color:var(--muted);margin-right:6px}details>summary{cursor:pointer;font-family:var(--font-display);padding:10px 0;font-weight:650}.move-pad{z-index:2;left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom));grid-template-columns:repeat(6,1fr);gap:6px;padding:0 14px;display:grid;position:absolute}.move-pad[hidden]{display:none}.move-pad .move{background:var(--move-bg);color:var(--text);font-family:var(--font-display);min-height:46px;padding:0;font-weight:700}.scramble{word-spacing:4px;background:var(--raised);border-radius:var(--r-md);-webkit-user-select:all;user-select:all;padding:10px 14px;font-size:1rem;line-height:1.7}.badge{background:var(--raised);border-radius:999px;margin:4px 0;padding:4px 10px;font-size:.82rem;display:inline-block}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.letters{flex-wrap:wrap;gap:5px;display:flex}.letter{min-width:1.9em;height:1.9em;font-family:var(--font-display);background:var(--raised);border-radius:6px;place-items:center;font-size:1.05rem;font-weight:700;display:inline-grid}.letter.break{box-shadow:inset 0 0 0 2px var(--warn)}button.letter{color:inherit;cursor:pointer;border:0;padding:0}.letter.break.moved{background:color-mix(in srgb, var(--warn) 30%, var(--raised))}.letter.break.open,.break-picker .letter.current{box-shadow:inset 0 0 0 2px var(--action)}.break-picker{background:var(--panel);border-radius:8px;margin-top:8px;padding:8px}.break-picker p{margin:0 0 6px}.break-picker .letter{min-width:2.4em;height:2.4em}.letter.twist{position:relative}.letter.twist:after{content:attr(data-mark);color:var(--night);background:var(--rot);border-radius:999px;padding:1px 3px;font-size:.7em;line-height:1;position:absolute;top:-.55em;right:-.35em}.images{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.chip{white-space:nowrap;background:var(--raised);border-radius:999px;align-items:baseline;gap:5px;padding:4px 12px;font-size:.88rem;display:inline-flex}.chip b{font-family:var(--font-display)}.chip.single{border:1px solid var(--line);background:0 0}.chip.verb{font-style:italic}.route-list{margin:4px 0;padding-left:1.6em;font-size:.92rem;line-height:1.75}.route-list .locus{color:var(--muted)}.execution-list{margin:4px 0;padding-left:1.6em;font-size:.82rem;line-height:1.75}.prompt{margin:12px 0;font-size:1.15rem}.answer{font-family:var(--font-display);margin:12px 0;font-size:1.45rem;font-weight:700}.card-key{font-family:var(--font-display);letter-spacing:.04em;margin:12px 0;font-size:3rem;font-weight:800}.sticker{--c:var(--face-U);width:40px;height:40px;min-height:0;font-family:var(--font-display);color:#14161c;background:var(--c);box-shadow:inset 0 -3px 0 #0003, 0 0 0 3px var(--panel);border-radius:9px;place-items:center;padding:0;font-size:1.05rem;font-weight:800;display:inline-grid}.sticker.small{border-radius:7px;width:30px;height:30px;font-size:.9rem}.sticker.face-U{--c:var(--face-U)}.sticker.face-R{--c:var(--face-R);color:#fff}.sticker.face-F{--c:var(--face-F);color:#fff}.sticker.face-D{--c:var(--face-D)}.sticker.face-L{--c:var(--face-L)}.sticker.face-B{--c:var(--face-B);color:#fff}.sticker.selected{box-shadow:inset 0 -3px 0 #0003, 0 0 0 3px var(--panel), 0 0 0 5px var(--action)}.set-rows .sticker{box-shadow:inset 0 -3px 0 #0003, 0 0 0 3px var(--raised)}.set-rows .sticker.selected{box-shadow:inset 0 -3px 0 #0003, 0 0 0 3px var(--raised), 0 0 0 5px var(--action)}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:8px;display:grid}.set-group{margin:0 0 22px}.set-group h3{margin:4px 2px 8px}.set-rows{background:var(--raised);border-radius:var(--r-lg);padding:4px 14px}.set-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 0;display:flex}.set-row+.set-row{border-top:1px solid var(--line)}.set-label{flex-direction:column;flex:10em;min-width:8em;display:flex}.set-label small{color:var(--muted);margin-top:2px;font-size:.8rem}.set-control{flex:14em;justify-content:flex-end;display:flex}:is(.set-row:has(.sticker-grid) .set-control,.set-row:has(.helper-chips) .set-control){flex-basis:100%;justify-content:stretch}.set-control .sticker-grid,.set-control .helper-chips{width:100%}.set-warn{color:var(--warn);margin:8px 2px 0;font-size:.85rem}.swatches{gap:8px;display:flex}.swatch{background:var(--c,#888);width:34px;height:34px;min-height:0;box-shadow:inset 0 -3px 0 #0003, 0 0 0 3px var(--raised);border-radius:9px;padding:0}.swatch.face-U{--c:var(--face-U)}.swatch.face-R{--c:var(--face-R)}.swatch.face-F{--c:var(--face-F)}.swatch.face-D{--c:var(--face-D)}.swatch.face-L{--c:var(--face-L)}.swatch.face-B{--c:var(--face-B)}.swatch.selected{box-shadow:inset 0 -3px 0 #0003, 0 0 0 3px var(--raised), 0 0 0 5px var(--action)}.seg{background:var(--night);border-radius:999px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border-radius:999px;min-height:36px;padding:4px 14px;font-size:.9rem}.seg-methods button{white-space:nowrap;padding-inline:min(14px,2.5vw);font-size:min(.9rem,4.2vw)}.seg button.on{background:var(--action);color:var(--action-ink)}input.switch{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;width:48px;height:28px;transition:background .15s;position:relative}input.switch:after{content:"";background:var(--text);border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px}input.switch:checked{background:var(--action)}input.switch:checked:after{background:var(--action-ink);transform:translate(20px)}.helper-chips{flex-direction:column;gap:6px;display:flex}.helper{border-radius:var(--r-md);background:var(--night);color:var(--text);cursor:pointer;border:1px solid #0000;flex-direction:row;align-items:center;gap:12px;padding:8px 10px;font-size:.92rem}.helper.on{border-color:color-mix(in srgb, var(--action) 53%, transparent)}.helper input{opacity:0;pointer-events:none;position:absolute}.helper:has(input:focus-visible){outline:2px solid var(--action)}.set-rows .helper .sticker{box-shadow:inset 0 -3px #0003}.helper-chips .link{align-self:flex-start}.helper:not(.on) .sticker{opacity:.45}.helper-text{flex-direction:column;display:flex}.helper-text small{color:var(--muted);font-size:.78rem}.letters-wrap{align-self:flex-start;position:relative}.stage-tools{flex-wrap:wrap;gap:8px;display:flex}.home-orientation{background:var(--raised);width:34px;min-height:34px;color:var(--muted);place-items:center;padding:0;display:grid}.letters-toggle{min-height:34px;font-family:var(--font-display);letter-spacing:.06em;background:var(--raised);color:var(--muted);padding:4px 12px;font-size:.82rem;font-weight:800}.letters-toggle.active{background:var(--action);color:var(--action-ink)}.letter-menu{z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:4px;min-width:240px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.letter-menu button{color:var(--text);text-align:left;background:0 0;min-height:40px;font-size:.92rem;font-weight:400}.letter-menu button.active{background:var(--raised);color:var(--action-text);font-weight:700}dialog.mac-dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--r-lg);max-width:min(440px,100vw - 32px)}dialog.mac-dialog input{width:100%;margin:8px 0}dialog::backdrop{background:#05070fcc}.export-options{gap:8px;margin:12px 0;display:grid}.export-option{text-align:left;gap:2px;padding:10px 14px;display:grid}[hidden]{display:none!important}.gesture-chip{background:var(--raised);min-height:34px;color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.82rem;font-weight:400;display:inline-flex}.gesture-chip:has(.gesture-move:not([hidden])){padding-left:4px}.gesture-chip{transition:opacity .35s,filter .35s}.gesture-chip.idle{opacity:.42;filter:saturate(.4)}@media (prefers-reduced-motion:reduce){.gesture-chip{transition:none}}.gesture-move{background:var(--night);height:26px;color:var(--text);font-family:var(--font-display);border-radius:999px;place-items:center;padding:0 7px;font-size:.78rem;font-weight:800;display:inline-grid}.banner{background:var(--danger-bg);border:1px solid var(--danger);border-radius:var(--r-md);align-items:center;gap:10px;padding:10px 8px 10px 14px;font-size:.9rem;display:flex}.banner p{flex:1;margin:0}.banner-action{border-radius:999px;flex:none;min-height:34px;padding:6px 14px;font-size:.85rem}.banner-close{color:var(--text);background:0 0;width:28px;min-height:28px;padding:0;font-size:1.2rem}@media (min-width:900px){#app:has(.panel.open) .hud{right:var(--panel-w)}}.topbar .quick-connect.connected{color:var(--muted);border-color:var(--line)}.set-note{color:var(--muted);margin:0 0 12px;font-size:.8rem}.set-rows.diag{padding:10px 14px}.view-title{margin-top:0}select.fancy-native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;min-height:0;padding:0;position:absolute}.fancy-select{background:var(--raised);width:100%;min-width:9em;min-height:44px;color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px 8px 14px;font-weight:600;display:inline-flex}.fancy-select[aria-expanded=true]{border-color:color-mix(in srgb, var(--action) 60%, transparent)}.fancy-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fancy-chevron{color:var(--muted);flex:none;transition:transform .2s}.fancy-select[aria-expanded=true] .fancy-chevron{color:var(--action-text);transform:rotate(180deg)}.fancy-list{z-index:50;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:6px;animation:.14s ease-out fancy-in;position:fixed;overflow-y:auto;box-shadow:0 14px 36px #000a}@keyframes fancy-in{0%{opacity:0;transform:translateY(-4px)}}.fancy-group{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:10px 12px 4px;font-size:.75rem;font-weight:700}.fancy-group:first-child{padding-top:4px}.fancy-option{border-radius:var(--r-sm);cursor:pointer;min-height:42px;color:var(--text);align-items:center;gap:10px;padding:8px 12px 8px 30px;display:flex;position:relative}.fancy-option.active,.fancy-option:hover{background:var(--raised)}.fancy-option.selected{color:var(--action-text);font-weight:700}.fancy-option.selected:before{content:"";background:var(--action);border-radius:3px;width:9px;height:9px;position:absolute;left:11px}@media (prefers-reduced-motion:reduce){.fancy-list{animation:none}.fancy-chevron{transition:none}}label .fancy-select{min-width:7em}.route-range{background:var(--raised);border-radius:var(--r-lg);margin:0 0 14px;padding:12px 14px}.range-head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.range-head span{color:var(--muted);font-size:.85rem}.range-head b{font-family:var(--font-display)}.range-steppers{flex-wrap:wrap;gap:10px;display:flex}.stepper{background:var(--night);border-radius:999px;align-items:center;gap:4px;padding:3px;display:inline-flex}.stepper-label{color:var(--muted);padding:0 6px 0 10px;font-size:.85rem}.stepper button{background:var(--raised);width:36px;min-height:36px;color:var(--text);border-radius:50%;padding:0;font-size:1.15rem;line-height:1}.stepper-value{text-align:center;min-width:2.2em;font-family:var(--font-display);font-size:1.05rem;font-weight:800}.range-bar{grid-template-columns:repeat(35,1fr);gap:3px;margin:4px 0 12px;display:grid}.range-cell{background:var(--line);border-radius:3px;height:14px;min-height:14px;padding:0;transition:background .2s}.range-cell.in{background:var(--face-B)}.range-cell.edge{background:var(--action)}.range-presets{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip-button{background:var(--night);min-height:34px;color:var(--muted);border-radius:999px;padding:4px 12px;font-size:.85rem;font-weight:600}.chip-button.on{color:var(--action-ink);background:var(--action)}.route-need{border:1px solid var(--line);border-radius:var(--r-lg);margin-top:18px;padding:12px 14px;font-size:.88rem}.route-need h4{margin-top:0}.route-need p{margin:4px 0}.parity-step{border-left:3px solid var(--warn);background:var(--raised);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:10px 0;padding:8px 12px;font-size:.9rem}.fade-in{animation:.24s ease-out content-in}@keyframes content-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.fade-in{animation:none}.range-cell{transition:none}}.popover{opacity:0;visibility:hidden;transform-origin:100% 0;pointer-events:none;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1),visibility 0s linear .22s;transform:translateY(-6px)scale(.98)}.letter-menu.popover{transform-origin:0 0}.popover.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1),visibility;transform:none}@media (prefers-reduced-motion:reduce){.popover,.popover.open{transition:none}}.letters-toggle{align-items:center;gap:6px;display:inline-flex}.letters-mode{align-items:center;display:none}.letters-toggle[data-mode=position] .letters-mode,.letters-toggle[data-mode=target] .letters-mode{animation:.2s ease-out content-in;display:inline-flex}.letters-toggle .icon-target,.letters-toggle[data-mode=target] .icon-position{display:none}.letters-toggle[data-mode=target] .icon-target{display:inline}.update-banner{left:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));z-index:20;background:var(--text);max-width:520px;color:var(--night);border:0;margin:0 auto;animation:.35s ease-out update-banner-in;position:fixed;box-shadow:0 8px 28px #00000059}.update-banner .banner-close{color:inherit}@keyframes update-banner-in{0%{opacity:0;transform:translateY(24px)}}.update-reload{border-radius:999px;min-height:34px;padding:4px 14px;font-size:.85rem}input.break-order{width:100%;font-family:var(--font-display);letter-spacing:.08em;font-weight:700}.scramble-card{background:var(--raised);border-radius:var(--r-lg);margin:10px 0 6px;padding:10px 12px 12px}.scramble-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.scramble-title{font-family:var(--font-display);font-weight:700}.scramble-progress{color:var(--muted);margin-right:auto;font-size:.85rem}button.mini{background:var(--night);min-height:32px;color:var(--text);border-radius:999px;padding:4px 12px;font-size:.82rem}button.mini.icon-only{width:32px;padding:0;font-size:1rem}.scramble-moves{flex-wrap:wrap;gap:6px;display:flex}.move-chip{min-width:1.6em;font-family:var(--font-display);color:var(--text);flex-direction:column;align-items:center;padding:2px 3px;font-size:1.15rem;font-weight:700;transition:color .2s,opacity .2s,transform .2s;display:inline-flex}.move-chip.done{color:var(--ok);opacity:.5}.move-chip.next{color:var(--action-text);text-shadow:0 0 12px color-mix(in srgb, var(--action) 40%, transparent);transform:scale(1.25)}.move-chip.next.blocked{text-shadow:none;opacity:.7;transform:none}.move-chip.fix{color:var(--danger);animation:.2s ease-out content-in;transform:scale(1.15)}.move-chip.todo{opacity:.85}.move-chip small{font-family:var(--font-text);font-size:.68rem;font-weight:400;line-height:1.1}.scramble-note{min-height:1.2em;margin:8px 2px 0;font-size:.85rem}.scramble-note.off-track{color:var(--danger-text)}.scramble-note.needs-solve{color:var(--warn)}.scramble-note.done{color:var(--ok);font-weight:700}@media (prefers-reduced-motion:reduce){.move-chip,.move-chip.fix{transition:none;animation:none}}.memo-route{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:2px 10px;padding-left:0;list-style:none;display:grid}.memo-route li{display:contents}.memo-route .num{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.memo-route .images{grid-template-columns:2.4em auto;align-content:start;display:grid}.memo-route .chip{font-size:inherit;display:contents}.memo-route .chip b{white-space:nowrap}.solved-note{font-family:var(--font-text);font-size:.95rem}.memo-route-head{justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.memo-route-head h4{margin:0}.seg-small button{min-height:30px;padding:2px 12px;font-size:.82rem}.memo-route li.empty .locus{opacity:.55}.multi-head{justify-content:space-between;align-items:center;gap:12px;margin:0 0 4px;display:flex}.multi-head b{font-family:var(--font-display);font-size:1.1rem}.multi-clock{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--action-text);font-size:1.6rem;font-weight:800}.multi-clock.over{color:var(--danger)}.multi-list{gap:8px;margin:14px 0;padding:0;list-style:none;display:grid}.multi-cube{background:var(--raised);border-radius:var(--r-md);border-left:4px solid var(--line);padding:10px 12px;transition:border-color .2s}.multi-cube.ok{border-left-color:var(--ok)}.multi-cube.fail{border-left-color:var(--danger)}.multi-cube-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.multi-cube-head b{font-family:var(--font-display);margin-right:auto}.multi-cube .scramble-line{font-family:var(--font-mono);word-spacing:.15em;margin:6px 0;font-size:.85rem}.multi-cube summary{color:var(--muted);cursor:pointer;font-size:.85rem}.mini.result.yes.on{background:var(--ok);color:var(--night)}.mini.result.no.on{background:var(--danger);color:var(--night)}.multi-memo p{margin:4px 0}.multi-result{background:var(--raised);border-radius:var(--r-lg);align-items:center;gap:16px;margin:0 0 12px;padding:16px;display:flex}.multi-points{font-family:var(--font-display);color:var(--ok);font-size:3rem;font-weight:800;line-height:1}.multi-result.dnf .multi-points{color:var(--danger)}.multi-saved-list,.multi-history ul{gap:6px;margin:6px 0 14px;padding:0;list-style:none;display:grid}.multi-saved-list li{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.multi-saved-list li span{margin-right:auto;font-size:.9rem}.multi-import{box-sizing:border-box;width:100%;font-family:var(--font-mono);background:var(--night);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px;font-size:.85rem}.multi-tools{margin-top:8px}.solve-hud{border-radius:var(--r-lg);background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);align-self:center;justify-items:center;gap:2px;min-width:min(320px,100%);padding:8px 18px 10px;display:grid}.solve-hud[hidden]{display:none}.solve-hud-row{align-items:baseline;gap:12px;display:flex}.solve-hud-label{color:var(--muted);font-size:.85rem}.solve-hud-clock{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--action-text);font-size:2rem;font-weight:800}.solve-hud-status{text-align:center;font-size:.9rem}.solve-hud[data-state=ok]{border-color:var(--ok)}.solve-hud[data-state=ok] .solve-hud-status{color:var(--ok)}.solve-hud[data-state=fail]{border-color:var(--danger)}.solve-hud[data-state=fail] .solve-hud-status{color:var(--danger)}.solve-hud[data-state=warn] .solve-hud-status{color:var(--warn)}.bld-card{background:var(--raised);border-radius:var(--r-lg);margin:14px 0;padding:12px 14px}.bld-head{align-items:center;gap:10px;display:flex}.bld-head h3{margin:0}.bld-history{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.bld-history li{border-left:4px solid var(--line);padding:4px 0 4px 10px}.bld-history li.ok{border-left-color:var(--ok)}.bld-history li.fail{border-left-color:var(--danger)}.bld-history-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bld-history-head .muted{margin-right:auto}.bld-history p{margin:2px 0}.replay{margin-top:8px}.replay-verdict.ok{color:var(--ok)}.replay-verdict.fail{color:var(--danger)}.replay-verdict.warn{color:var(--warn)}.replay .row{align-items:center}.replay-slider{accent-color:var(--action);flex:1}.replay-moves{flex-wrap:wrap;gap:6px;max-height:260px;margin:8px 0;display:flex;overflow-y:auto}.replay-seg{border-radius:var(--r-sm);background:var(--night);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.replay-seg:empty{display:none}.replay-seg.bad{outline:2px solid var(--danger)}.replay-seg.lost{outline:1px dashed var(--warn)}.replay-move{min-height:28px;color:var(--text);font-family:var(--font-mono);background:0 0;border-radius:6px;padding:2px 6px;font-size:.8rem}.replay-move.here{background:var(--action);color:var(--action-ink)}.multi-solve{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.tutorial h3{margin:18px 0 8px}.tut-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tut-item{text-align:left;background:var(--raised);width:100%;color:var(--text);align-items:center;gap:10px;font-weight:400;display:flex}.tut-item.next{box-shadow:inset 0 0 0 2px var(--action)}.tut-item.done{color:var(--muted)}.tut-item small{color:var(--muted);margin-left:auto}.tut-num{background:var(--night);border-radius:50%;flex:none;place-items:center;width:1.8em;height:1.8em;font-weight:700;display:grid}.tut-item.done .tut-num{color:var(--ok)}.tut-lesson p{line-height:1.5}.tut-task{border-radius:var(--r-md);background:var(--night);border:1px solid var(--line);gap:10px;margin:14px 0;padding:12px;display:grid}.tut-task p{margin:0 0 8px}.tut-status{gap:10px;display:grid}.tut-goal{color:var(--muted);align-items:center;gap:10px;font-size:.9rem;display:flex}.tut-goal progress{accent-color:var(--ok);flex:1}.tut-pad{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;margin:8px 0;display:grid}.tut-pad button{padding:4px 0;font-weight:700}.tut-choices{gap:6px;margin:8px 0;display:grid}.tut-choices button.right{box-shadow:inset 0 0 0 2px var(--ok)}.tut-choices button.wrong{box-shadow:inset 0 0 0 2px var(--danger)}.tut-feedback{min-height:1.2em;font-weight:700}.tut-feedback.ok{color:var(--ok)}.tut-feedback.fail{color:var(--danger)}.tut-feedback.warn{color:var(--warn)}.tut-route ol{gap:6px;padding-left:0;list-style:none;display:grid}.tut-route label{grid-template-columns:4.5em 1fr;align-items:center;gap:8px;display:grid}.tut-route input{min-width:0}.tut-route-mini{color:var(--muted);columns:2;margin:0 0 10px;padding-left:1.4em}.tut-word{font-size:1.3rem}.tut-alg,.tut-typed{font-family:var(--font-mono);overflow-wrap:anywhere}.tut-typed{letter-spacing:.08em;font-size:1.2rem}.tut-cut{color:var(--muted);align-self:center;padding:0 2px;font-size:.75rem}.tut-setups ul{columns:2;padding-left:1em}.solve-hud-detail:empty{display:none}.solve-hud-detail .scramble-moves{justify-content:center;gap:4px;max-width:min(520px,92vw);margin-top:6px}.solve-hud-detail .move-chip{min-width:1.5em;padding:1px 2px}@media (max-width:899px){#app:has(.panel.open) .solve-hud-detail{display:none}}.cube-net{grid-template-columns:repeat(12,minmax(0,24px));grid-auto-rows:24px;justify-content:center;gap:2px;margin:4px 0 10px;display:grid}.net-cell{color:#111;text-shadow:0 0 2px #fff;border-radius:4px;place-items:center;font-size:.72rem;font-weight:700;display:grid}.net-cell.dim{filter:brightness(.35)}.net-cell.focus{outline:2px solid var(--text);outline-offset:1px;z-index:1}#app.competition .letters-toggle,#app.competition .letter-menu,#app.competition [data-gesture=D4]{display:none}#app:has(.multi-layer:not([hidden])) .training-toggle{display:none}.stage canvas{transition:opacity .6s ease-out}#app.cube-hidden .stage canvas{opacity:0;transition:none}.stage canvas.slide-out-left{opacity:0;transition:transform .18s ease-in,opacity .18s ease-in;transform:translate(-70%)}.stage canvas.slide-out-right{opacity:0;transition:transform .18s ease-in,opacity .18s ease-in;transform:translate(70%)}.stage canvas.slide-in-right{animation:.26s ease-out slide-in-right}.stage canvas.slide-in-left{animation:.26s ease-out slide-in-left}@keyframes slide-in-right{0%{opacity:0;transform:translate(70%)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-70%)}}.multi-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.multi-layer[hidden]{display:none}.multi-layer>*{pointer-events:auto}@media (min-width:900px){#app:has(.panel.open) .multi-layer{right:var(--panel-w)}}.multi-cover{justify-items:center;gap:10px;display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.cover-box{cursor:grab;touch-action:none;filter:drop-shadow(0 12px 24px #0009);width:min(80vw,330px)}.cover-box:active{cursor:grabbing}.cover-box svg{width:100%;display:block}.cover-hint{background:color-mix(in srgb, var(--panel) 88%, transparent);text-align:center;border-radius:999px;margin:0;padding:6px 12px;font-size:.9rem;transition:opacity .2s}.multi-cover.lifted .cover-hint{opacity:0}.multi-dock{left:14px;right:14px;bottom:calc(16px + env(safe-area-inset-bottom));border-radius:var(--r-lg);background:color-mix(in srgb, var(--panel) 90%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);gap:8px;padding:8px 10px 10px;display:grid;position:absolute}#app.moves-locked .move-pad{display:none}#app:not(.moves-locked):has(.move-pad:not([hidden])) .multi-dock{bottom:calc(126px + env(safe-area-inset-bottom))}.multi-dock-bar{align-items:center;gap:10px;display:flex}.multi-dock-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:var(--font-display);flex:1;font-weight:700;overflow:hidden}.multi-dock-label.ok{color:var(--ok)}.multi-dock-label.fail{color:var(--danger)}.multi-dock .multi-clock{font-size:1.3rem}.multi-nav{background:var(--raised);width:36px;min-height:36px;color:var(--text);padding:0;font-size:1.4rem}.multi-dock-actions{grid-template-columns:1fr auto;align-items:stretch;gap:8px;display:grid}.multi-dock-actions button.hold.compact{height:100%;padding:4px 12px}.multi-dock-actions button.hold.compact .hold-text{justify-items:center;gap:0;display:grid}.multi-dock-hint{color:var(--muted);margin:0;font-size:.8rem}.multi-strip{scroll-snap-type:x proximity;scrollbar-width:thin;gap:6px;padding:2px 2px 4px;display:flex;overflow-x:auto}.multi-mini{border-radius:var(--r-sm);background:var(--night);width:46px;min-height:0;color:var(--muted);scroll-snap-align:center;flex:none;justify-items:center;gap:1px;padding:4px 2px 2px;font-weight:400;display:grid}.multi-mini.active{box-shadow:inset 0 0 0 2px var(--action);color:var(--text)}.multi-mini.ok{box-shadow:inset 0 -3px 0 var(--ok)}.multi-mini.fail{box-shadow:inset 0 -3px 0 var(--danger)}.multi-mini.active.ok,.multi-mini.active.fail{box-shadow:inset 0 0 0 2px var(--action), inset 0 -4px 0 var(--ok)}.multi-mini.active.fail{box-shadow:inset 0 0 0 2px var(--action), inset 0 -4px 0 var(--danger)}.multi-mini small{font-size:.68rem;line-height:1}.multi-mini-pic{width:34px;height:34px;display:block}.mini-cube{width:100%;height:100%;display:block}.mini-cube polygon{stroke:#111;stroke-width:.08px}.mini-cover{clip-path:polygon(22% 0,78% 0,100% 100%,0 100%);background:linear-gradient(90deg, var(--raised), var(--cone-mid) 55%, var(--line));width:28px;height:30px;margin:2px auto 0;display:block}.hold-wrap{min-height:52px}.hold{background:var(--raised);width:100%;color:var(--text);touch-action:none;position:relative;overflow:hidden}.hold,.hold *,.cover-box,.cover-box *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.hold-fill{transform-origin:0;background:var(--action);opacity:.85;position:absolute;inset:0;transform:scaleX(0)}.hold.holding .hold-fill{transition:transform var(--hold-ms,1.5s) linear;transform:scaleX(1)}.hold-text{line-height:1.15;display:grid;position:relative}.hold.holding .hold-text{color:var(--action-ink)}.hold-text small{opacity:.8;font-size:.72rem;font-weight:400}.multi-big-result{left:50%;top:calc(112px + env(safe-area-inset-top));border-radius:var(--r-lg);background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--line);text-align:center;justify-items:center;gap:2px;max-width:calc(100% - 28px);padding:10px 20px 12px;display:grid;position:absolute;transform:translate(-50%)}.multi-big-result b{font-family:var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ok);font-size:clamp(1.8rem,8vw,2.8rem);font-weight:800;line-height:1.1}.multi-big-result.dnf b{color:var(--danger)}.multi-big-result span{color:var(--muted);font-size:.85rem}.multi-count-label{color:var(--muted);margin-bottom:8px;font-size:.85rem;display:block}.stepper-value.bump{animation:.22s ease-out value-bump}@keyframes value-bump{0%{opacity:.4;transform:translateY(-4px)}to{opacity:1;transform:none}}.range-presets .chip-button{transition:background .2s,color .2s}.panel-tools{align-items:center;margin-left:10px;margin-right:auto;display:flex}button.help-toggle{background:0 0;place-items:center;width:32px;min-height:32px;padding:0;transition:opacity .25s,transform .25s;display:grid}button.help-toggle.gone{opacity:0;pointer-events:none;transform:scale(.6)}.help-icon{background:var(--raised);width:24px;height:24px;color:var(--text);border-radius:50%;place-items:center;font-family:Georgia,serif;font-size:.85rem;font-style:italic;font-weight:700;display:inline-grid}button.help-toggle.on .help-icon{background:var(--action);color:var(--action-ink)}.multi-help{border-radius:var(--r-md);background:var(--night);border:1px solid var(--line);color:var(--muted);margin:0 0 12px;padding:10px 12px;font-size:.88rem;animation:.2s ease-out content-in}.multi-help p{margin:0 0 6px}.multi-help p:last-child{margin:0}.multi-import-row{margin-top:14px}.multi-import-row button.link{color:var(--muted);font-size:.9rem}.multi-import-row p{margin:4px 0 0}.multi-result-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px 12px;padding-left:0;list-style:none;display:grid}.multi-result-list li{align-items:baseline;gap:8px;font-size:.85rem;display:flex}.multi-result-list li.ok span{color:var(--ok)}.multi-result-list li.fail span{color:var(--danger)}.multi-details{border-radius:var(--r-md);background:var(--night);border:1px solid var(--line);margin-top:12px;padding:12px}.multi-details h4{margin:0 0 6px}.multi-details h4.ok{color:var(--ok)}.multi-details h4.fail{color:var(--danger)}.multi-details p{margin:4px 0}.mini-cube.turn-in{animation:.45s ease-out mini-turn}@keyframes mini-turn{0%{opacity:.3;transform:rotateY(90deg)scale(.8)}to{opacity:1;transform:none}}@media (pointer:coarse){input:not([type=checkbox],[type=radio],[type=range]),select,textarea{font-size:16px}}.cards-controls{gap:8px;margin-bottom:12px;display:grid}.cards-controls label.stack{gap:4px;display:grid}.held-preview{justify-content:center;padding:4px 0 8px;display:flex}.held-preview .mini-cube{width:76px;height:76px}.confetti{z-index:50;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.multi-big-result.perfect{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok), 0 0 40px #45d48366;animation:1.2s ease-in-out 3 perfect-pulse}.multi-big-result.perfect b{font-size:clamp(2.2rem,11vw,3.6rem)}@keyframes perfect-pulse{50%{transform:translate(-50%)scale(1.06)}}.multi-big-result .row{justify-content:center;gap:8px;margin-top:4px}.multi-result.fresh{animation:.7s cubic-bezier(.2,.9,.25,1.25) result-in}.multi-result.fresh .multi-points{animation:.9s cubic-bezier(.2,.9,.25,1.3) .15s both points-in}.multi-result.perfect{box-shadow:0 0 0 2px var(--ok), 0 0 36px #45d48355}.multi-result.perfect.fresh{animation:.7s cubic-bezier(.2,.9,.25,1.25) result-in,1.4s ease-in-out .7s 3 perfect-glow}@keyframes result-in{0%{opacity:0;transform:translateY(30px)scale(.85)}}@keyframes points-in{0%{opacity:0;transform:scale(.3)rotate(-8deg)}}@keyframes perfect-glow{50%{box-shadow:0 0 0 3px var(--ok), 0 0 60px #45d483aa}}dialog.app-dialog{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel);width:min(420px,100vw - 32px);color:var(--text);padding:20px 20px 16px;box-shadow:0 20px 60px #0009}dialog.app-dialog[open]{animation:.22s cubic-bezier(.2,.9,.3,1.2) dialog-in}dialog.app-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05070fb3}dialog.app-dialog h2{margin:0 0 8px;font-size:1.2rem}dialog.app-dialog p{color:var(--muted);margin:0 0 16px;line-height:1.45}.app-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}button.danger{background:var(--danger);color:#1b0606}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}.hold-wrap:has(.hold.compact){min-height:0}button.hold.compact{width:auto;min-height:34px;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:4px 14px;font-size:.82rem;font-weight:400}button.hold.compact .hold-fill{background:var(--danger);opacity:.35}button.hold.compact.holding .hold-text{color:var(--text)}button.hold.compact .hold-text{align-items:baseline;gap:6px;display:inline-flex}button.step-button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.cards-group-bar[hidden]{display:none}.cards-groups-head{color:var(--muted);align-items:baseline;gap:12px;margin-bottom:6px;font-size:.85rem;display:flex}.cards-groups-head span{margin-right:auto}.cards-groups{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:5px;display:grid}.cards-groups .chip-button{min-height:32px;padding:0}.own-step-list{gap:4px;margin:6px 0 10px;padding-left:1.6em;font-size:.88rem;display:grid}.own-step{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.own-letter{border-radius:var(--r-sm);background:var(--raised);width:1.8em;min-height:1.8em;color:inherit;text-align:center;font-family:var(--font-display);flex:none;padding:0;font-size:1.05rem;font-weight:700}.own-step.picked .own-letter{outline:2px solid var(--action);outline-offset:1px}.own-step-note:empty{display:none}.own-step-note{border-radius:var(--r-md);background:var(--info-bg);padding:8px 10px}.own-mark{flex:none;min-width:1.1em}.own-step.ok .own-letter,.own-step.ok .own-mark{color:var(--ok)}.own-step.fail .own-letter,.own-step.fail .own-mark{color:var(--danger)}.own-step.corrected{color:var(--muted)}.own-step.corrected .own-letter,.own-step.corrected .own-moves{text-decoration:line-through}.hide-cube{margin-top:8px}.result-tags{flex-wrap:wrap;gap:6px;margin:8px 0 2px;display:flex}.result-tag{background:var(--raised);color:var(--action-text);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600}.history-chip{padding:0 10px}.history-chip svg,.sound-chip svg{display:block}.sound-chip{padding:0 10px}.sound-chip.muted-chip{color:var(--muted)}.history-note{color:var(--ok);margin:6px 0 0;font-size:.85rem}.history-note.first{border:1px solid var(--ok);border-radius:var(--r-md);padding:8px 12px}.history-filter{margin:10px 0 14px}.history-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.history-item{border-radius:var(--r-md);background:var(--raised)}.history-head{width:100%;color:var(--text);text-align:left;background:0 0;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px;padding:10px 12px;display:grid}.history-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.75rem;font-weight:700}.history-result{font-family:var(--font-display);font-size:1.05rem}.history-result.ok{color:var(--ok)}.history-result.fail{color:var(--danger)}.history-tags{margin:-6px 12px 8px}.history-repeat{color:var(--warn)}.history-head{grid-template-columns:auto 1fr auto auto}.history-go{color:var(--muted);font-size:1.2rem;line-height:1}.history-back{margin:0 0 8px;padding:0}.history-entry-head{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.history-actions{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.review-state{justify-self:center}.replay-move.replay-rot{color:var(--rot);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--rot) 40%, transparent);font-style:italic}.replay-move.replay-rot.here{background:var(--rot);color:var(--night)}.rotation-toggle small{font-family:var(--font-mono)}.info-dialog ul{gap:8px;margin:8px 0 4px;padding-left:1.2em;display:grid}.swipe-wrap{justify-items:center;gap:10px;margin:8px 0 4px;display:grid}.swipe-card{border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;align-content:center;place-items:center;gap:10px;width:min(100%,340px);min-height:210px;padding:22px 18px;transition:transform .2s;display:grid;position:relative}.swipe-card:focus-visible{outline:2px solid var(--action);outline-offset:3px}.swipe-card.pressed{cursor:grabbing}.swipe-card.pressed:not(.revealed){animation:.38s ease-out forwards swipe-hold}@keyframes swipe-hold{to{box-shadow:inset 0 0 0 2px var(--action)}}.swipe-prompt .card-key,.swipe-prompt .prompt{margin:0}.swipe-solution{--show:0;border-radius:var(--r-md);background:var(--panel);border:1px solid var(--line);text-align:center;pointer-events:none;width:min(100%,340px);min-height:76px;opacity:var(--show);transform:translateY(calc((1 - var(--show)) * 8px)) scale(calc(.96 + var(--show) * .04));place-items:center;padding:8px 14px;font-weight:700;transition:opacity .22s ease-out,transform .22s ease-out;display:grid;box-shadow:0 8px 22px #0003}.swipe-solution.tracking{transition:none}.swipe-solution .answer{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;margin:0;font-size:1.2rem;line-height:1.25;display:flex}.swipe-solution .answer .muted{font-size:.85rem;font-weight:400}.swipe-solution .card-photo{border-radius:var(--r-sm);max-width:60px;max-height:60px}.swipe-stamp{text-transform:uppercase;letter-spacing:.05em;opacity:0;border-radius:6px;padding:2px 8px;font-size:.8rem;font-weight:800;transition:opacity .12s;position:absolute;top:12px}.swipe-stamp.known{color:var(--ok);box-shadow:inset 0 0 0 2px var(--ok);left:12px}.swipe-stamp.unknown{color:var(--danger);box-shadow:inset 0 0 0 2px var(--danger);right:12px}.swipe-card[data-lean=toward-known] .swipe-stamp.known{opacity:.45}.swipe-card[data-lean=known] .swipe-stamp.known,.swipe-card[data-lean=unknown] .swipe-stamp.unknown{opacity:1}.swipe-card[data-lean=toward-unknown] .swipe-stamp.unknown{opacity:.45}.swipe-card.fly-right{opacity:0;transition:transform .22s ease-in,opacity .22s ease-in;transform:translate(120%)rotate(14deg)!important}.swipe-card.fly-left{opacity:0;transition:transform .22s ease-in,opacity .22s ease-in;transform:translate(-120%)rotate(-14deg)!important}.swipe-hints .muted{text-align:center;font-size:.75rem}.swipe-hints{justify-content:space-between;align-items:center;gap:8px;width:min(100%,340px);display:flex}.swipe-side{white-space:nowrap;background:0 0;min-height:36px;padding:4px 6px;font-size:.85rem;font-weight:700}.swipe-side.known{color:var(--ok)}.swipe-side.unknown{color:var(--danger)}.swipe-edit{white-space:nowrap;font-size:.75rem}.cards-count{text-align:center}@media (prefers-reduced-motion:reduce){.swipe-card,.swipe-card.fly-left,.swipe-card.fly-right{transition:none}.swipe-solution{transform:none}}.knowledge-box{margin-top:14px}.knowledge{gap:6px;margin-top:6px;display:grid}.knowledge-head{color:var(--muted);align-items:baseline;gap:10px;font-size:.85rem;display:flex}.knowledge-total{white-space:nowrap;font-family:var(--font-display);color:var(--text);font-size:1.6rem}.knowledge-readout{min-height:1.3em}.knowledge-frame{grid-template-columns:26px 1fr;gap:4px;display:grid}.knowledge-y{text-align:right;flex-direction:column;justify-content:space-between;padding:0 0 2px;font-size:.65rem;display:flex}.knowledge-plot{touch-action:pan-y;width:100%;height:110px;overflow:visible}.knowledge-grid{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.knowledge-area{fill:color-mix(in srgb, var(--ok) 32%, transparent)}.knowledge-line{fill:none;stroke:var(--ok);stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.knowledge-cursor{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.knowledge-axis{margin-left:30px;display:grid}.knowledge-axis button{min-height:30px;color:var(--muted);background:0 0;border-radius:6px;padding:0;font-size:.72rem;font-weight:700}.knowledge-axis button.on{background:var(--action);color:var(--action-ink)}.knowledge-words{border-radius:var(--r-md);background:var(--raised);margin-top:10px;padding:10px 12px}.knowledge-words-head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.knowledge-words ul{gap:4px;max-height:320px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.knowledge-words li{grid-template-columns:3.2em 1fr auto;align-items:center;gap:10px;min-height:30px;display:grid}.recall-dots{gap:4px;display:inline-flex}.recall-dots i{width:9px;height:9px;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:50%}.recall-dots i.ok{background:var(--ok);box-shadow:none}.recall-dots i.slow{background:var(--warn);box-shadow:none}.recall-dots i.fail{background:var(--danger);box-shadow:none}.account-box{gap:8px;display:grid}.account-pitch{border-radius:var(--r-md);background:color-mix(in srgb, var(--action) 12%, var(--raised));border:1px solid color-mix(in srgb, var(--action) 35%, transparent);margin:0;padding:10px 12px}.account-form{gap:8px;display:flex}.account-input{flex:1;min-width:0}.account-in{align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.account-dot{background:var(--ok);border-radius:50%;width:9px;height:9px}.account-card{text-align:left;width:100%;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-weight:400;display:flex}.account-card.active{border:2px solid var(--action);padding:11px 13px}.account-card-icon{flex:none;font-size:1.4rem}.account-card-body{min-width:0;color:var(--muted);flex:1;gap:2px;font-size:.9rem;display:grid}.account-card-body b{color:var(--text);font-size:1rem}.account-card-check{width:1.2em;color:var(--action-text);flex:none;font-weight:700}.account-signin{gap:8px;display:grid}.account-signin>p,.account-why ul,.account-welcome>*{margin:0}.account-why{gap:6px;display:grid}.account-why>button.link,.account-links button.link{justify-self:start}.account-why ul,.account-welcome ul{gap:4px;padding-left:0;font-size:.9rem;list-style:none;display:grid}.account-error{color:var(--danger-text);margin:0}.account-welcome{border:2px solid var(--ok);background:color-mix(in srgb, var(--ok) 10%, var(--panel));border-radius:14px;gap:10px;padding:14px;display:grid}.account-welcome h4{font-size:1.05rem}.account-box>button.link{justify-self:start}.account-delete{border-radius:var(--r-md);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);background:color-mix(in srgb, var(--danger) 8%, var(--raised));gap:8px;padding:10px 12px;display:grid}.account-delete p{margin:0}.own-label-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.own-back{justify-self:start;margin-bottom:6px;padding:0}.own-title{margin:4px 0 10px}.own-editor{gap:10px;display:grid}.own-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.own-list li{border-radius:var(--r-md);background:var(--raised);align-items:center;gap:8px;padding-right:8px;display:flex}.own-open{color:var(--text);text-align:left;background:0 0;flex:1;justify-items:start;gap:2px;padding:10px 12px;display:grid}.own-copy{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.own-copy select{flex:1;min-width:10em}.own-tools .own-delete{color:var(--danger)}.own-filter{margin:4px 0}.own-rows{gap:4px;display:grid}.own-row{grid-template-columns:3.6em 1.4fr 1fr 28px;align-items:center;gap:4px;display:grid}.own-row input{min-width:0;padding:6px 8px}.own-clash{border-radius:var(--r-sm);background:color-mix(in srgb, var(--warn) 14%, var(--raised));margin:-2px 0 4px;padding:4px 8px}.own-clash[hidden]{display:none}.own-row-head{padding:0 2px;font-size:.72rem}.own-row-head span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.own-key{text-transform:uppercase}.own-thumb{background:var(--night);width:40px;height:40px;color:var(--muted);border:1px dashed var(--line);border-radius:8px;place-items:center;padding:0;display:grid;overflow:hidden}.own-thumb img{object-fit:cover;width:100%;height:100%}.own-thumb.busy{opacity:.5}.own-del{color:var(--muted)}.own-loci{gap:6px;margin:0;padding-left:1.8em;display:grid}.own-locus{grid-template-columns:1fr 1.3fr auto;align-items:center;gap:4px;display:grid}.own-locus input{min-width:0;padding:6px 8px}.own-move{display:inline-flex}.own-move .icon{width:30px;min-height:30px;padding:0}.card-photo{object-fit:cover;border-radius:var(--r-md);width:140px;height:140px;margin:0 auto 8px;display:block}.card-photo:not([src]){visibility:hidden}dialog.onboarding{background:var(--night);width:100%;max-width:none;height:100%;max-height:none;color:var(--text);border:0;margin:0;padding:0}dialog.onboarding::backdrop{background:var(--night)}.onboarding-body{box-sizing:border-box;max-width:440px;height:100%;padding:max(28px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));flex-direction:column;gap:12px;margin:0 auto;display:flex;overflow:hidden auto}.onboarding-icon{border-radius:16px;align-self:center}.onboarding-body h2{text-align:center;font-family:var(--font-display);color:var(--action-text);margin:0;font-size:1.5rem}.onboarding-lead{text-align:center;color:var(--muted);margin:0 0 4px}.onboarding-area{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:14px;gap:4px;padding:12px 14px;font-size:.92rem;display:grid}.onboarding-area b{color:var(--text);font-size:1rem}.onboarding-body>.muted{margin:0}.onboarding-done{text-align:center;color:var(--ok);margin:0;font-weight:700}.ob-stats{text-align:left;cursor:pointer;flex-direction:row;align-self:stretch;align-items:center;gap:14px;display:flex}.ob-stats-text{color:var(--muted);flex:1;gap:2px;font-size:.85rem;display:grid}.ob-stats-text strong{color:var(--text);font-size:.95rem}.ob-stats .switch{flex:none}.onboarding-next{border-radius:12px;width:100%;margin-top:auto;padding:14px 16px}.set-intro{justify-self:start;margin:4px 0 0}.cards-start{border-radius:12px;width:min(100%,340px);margin:12px auto 4px;padding:14px 16px;display:block}dialog.card-session{inset:var(--session-top,0px) 0 0 0;z-index:6;border-radius:var(--r-lg) var(--r-lg) 0 0;overscroll-behavior:contain;width:100%;max-width:none;height:auto;max-height:none;color:var(--text);background:radial-gradient(ellipse 70% 42% at 50% 46%, color-mix(in srgb, var(--action) 20%, transparent) 0%, transparent 72%), radial-gradient(ellipse 90% 60% at 50% 40%, var(--stage-glow) 0%, var(--night) 78%);border:0;margin:0;padding:0;animation:.24s ease-out card-session-in;position:fixed;overflow-y:auto;box-shadow:0 -6px 24px #0002}@keyframes card-session-in{0%{opacity:0;transform:translateY(14px)}}body.card-session-open .hud{z-index:7}body.card-session-open .letters-wrap{visibility:hidden}.card-session-head,.card-session-progress,.card-session-body{box-sizing:border-box;max-width:440px;margin:0 auto;padding-left:16px;padding-right:16px}.card-session-head{align-items:center;gap:12px;padding-top:12px;display:flex}.card-session-title{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1.1rem;overflow:hidden}.card-session-progress{gap:8px;padding-top:10px;display:grid}.card-session-track{background:color-mix(in srgb, var(--line) 70%, transparent);border-radius:999px;height:6px;display:block;overflow:hidden}.card-session-fill{border-radius:inherit;background:linear-gradient(90deg, var(--action), color-mix(in srgb, var(--action) 60%, var(--ok)));width:0;height:100%;transition:width .3s ease-out;display:block}.card-session-stats{align-items:center;gap:8px;font-size:.85rem;display:flex}.card-session-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.card-tally{font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 10px;font-weight:700}.card-tally.ok{color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent)}.card-tally.fail{color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}.card-tally.bump{animation:.4s ease-out tally-bump}@keyframes tally-bump{40%{box-shadow:0 0 0 4px color-mix(in srgb, currentColor 25%, transparent);transform:scale(1.25)}}.card-session-body{padding-top:10px;padding-bottom:max(24px, env(safe-area-inset-bottom));text-align:center}.card-session .swipe-card{background:linear-gradient(165deg, color-mix(in srgb, var(--panel) 70%, var(--raised)) 0%, var(--raised) 100%);border-top:3px solid var(--action);min-height:240px;box-shadow:0 14px 34px #0003,0 2px 6px #0002}.card-session .swipe-prompt .card-key{font-family:var(--font-display);letter-spacing:.04em;font-size:3.4rem}.card-session .swipe-prompt .prompt{font-family:var(--font-display);font-size:1.35rem}.card-round-end{justify-items:center;gap:10px;padding:18px 0 4px;animation:.3s ease-out card-session-in;display:grid}.card-round-score{font-family:var(--font-display);align-items:baseline;gap:6px;display:flex}.card-round-score b{color:var(--action-text);font-size:4rem;line-height:1}.card-round-end.perfect .card-round-score b{color:var(--ok)}.card-round-score span{color:var(--muted);font-size:1.4rem}.card-round-end p{margin:0;font-weight:700}.card-round-missed{justify-items:center;gap:6px;display:grid}.card-round-missed>div{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.card-missed-chip{background:color-mix(in srgb, var(--danger) 12%, var(--raised));border-radius:999px;padding:3px 10px;font-size:.85rem}.card-missed-chip.slow{background:color-mix(in srgb, var(--warn) 16%, var(--raised))}button.card-missed-chip{min-height:0;color:var(--text);font-weight:400}.card-undo{font-size:1.3rem}.card-intro{text-align:center;justify-items:center;gap:10px;padding-top:12px;display:grid}.card-intro-face{box-sizing:border-box;border-radius:var(--r-lg);background:var(--raised);width:min(100%,340px);box-shadow:inset 0 0 0 2px var(--action);justify-items:center;gap:6px;padding:22px 16px 26px;display:grid}.card-intro-tag{background:var(--action);color:var(--action-ink);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700}.card-intro-face .card-key{font-size:2.6rem}.card-intro-word{font-size:1.6rem;font-weight:700}.card-intro .cards-start{margin-top:4px}.leech{text-align:center;gap:10px;max-width:400px;margin:0 auto;padding-top:12px;display:grid}.leech h3{margin:0}.leech-head{margin:4px 0 0;font-weight:600}.leech-suggest{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.leech-suggest:empty{display:none}.leech-own{gap:8px;display:flex}.leech-own input{flex:1;min-width:0}.leech-keep{justify-self:center}.word-clash{border-radius:var(--r-md);background:color-mix(in srgb, var(--warn) 14%, var(--raised));text-align:left;gap:6px;padding:10px 12px;display:grid}.word-clash[hidden]{display:none}.word-clash p{margin:0}.word-clash-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.cards-free{margin:2px auto 6px;display:block}.cards-next{text-align:center;margin:0}.cards-per-day{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;width:min(100%,340px);margin:6px auto;display:flex}.cards-per-day>.fancy-select{flex:0 0 88px;width:88px;min-width:0}@media (prefers-reduced-motion:reduce){dialog.card-session,.card-round-end,.card-tally.bump{animation:none}}.letter-pad{gap:8px;display:grid}.letter-pad-head{grid-template-columns:1fr auto auto;align-items:center;gap:8px;display:grid}.letter-pad-last{grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;min-width:0;display:grid}.letter-pad-last>small:first-child{color:var(--muted);grid-column:1/-1;font-size:.72rem}.letter-pad-last b{font-family:var(--font-display);color:var(--action-text);font-size:2.2rem;line-height:1}.letter-pad-last b.parity{color:var(--warn);font-size:1.4rem}.letter-pad-undo,.letter-pad-switch{border-radius:var(--r-md);min-height:44px;padding:6px 12px;font-size:.9rem}.letter-pad-switch{background:var(--raised);color:var(--text);font-weight:700;line-height:1.15;display:grid}.letter-pad-switch small{color:var(--muted);font-size:.7rem;font-weight:400}.letter-pad-parity{border-radius:var(--r-md);background:var(--warn);min-height:42px;color:var(--action-ink)}.letter-pad-keys{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.letter-key{border-radius:var(--r-sm);background:var(--raised);min-height:42px;color:var(--text);font-family:var(--font-display);touch-action:manipulation;padding:0;font-size:1.15rem;font-weight:700}.letter-pad.kind-corner .letter-key{border-radius:4px var(--r-sm) 4px var(--r-sm)}.letter-key:disabled{opacity:.35}.tut-teaser{border-radius:var(--r-md);background:var(--info-bg);margin:0 0 4px;padding:10px 14px;font-weight:700}.letter-pad-kind{align-self:center;padding:0 8px}.cube-picker-list{gap:6px;max-height:50vh;margin:8px 0;padding:0;list-style:none;display:grid;overflow-y:auto}.cube-picker-item{border-radius:var(--r-md);background:var(--raised);width:100%;min-height:48px;color:var(--text);text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;display:flex}.account-box.compact{gap:10px;display:grid}.account-line{align-items:center;gap:12px;display:flex}.account-line .account-card-body{flex:1;min-width:0}.account-line-action{flex:none;min-height:40px;padding:6px 14px}.about{border-radius:var(--r-lg);background:var(--raised);gap:12px;margin:18px 0 8px;padding:16px;display:grid}.about-head{align-items:center;gap:14px;display:flex}.about-logo{border-radius:14px;flex:none}.about-head>div{gap:2px;display:grid}.about-head b{font-family:var(--font-display);font-size:1.15rem}.about-head small{color:var(--muted)}.about-links{flex-wrap:wrap;gap:6px 16px;font-size:.9rem;display:flex}.about-links a,.about-links .link{color:var(--action-text)}.about-links .link{min-height:0;font:inherit;padding:0}.review-view{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.tut-steps{color:var(--muted);gap:6px;margin:0 0 12px;padding:0;font-size:.78rem;list-style:none;display:flex}.tut-steps li{background:var(--raised);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex:1;align-items:center;gap:5px;min-width:0;padding:5px 6px;display:flex;overflow:hidden}.tut-steps li.now{color:var(--action-ink);background:var(--action);font-weight:700}.tut-steps li.done{color:var(--ok)}.tut-step-num{background:color-mix(in srgb, currentColor 18%, transparent);border-radius:50%;flex:none;place-items:center;width:1.4em;height:1.4em;font-size:.72rem;display:inline-grid}#app.veil-anim .multi-strip{transition:filter .24s ease-out,opacity .24s ease-out}#app.veiled .multi-strip{filter:grayscale();opacity:.3}dialog.onboarding{background:radial-gradient(circle at 20% 15%, color-mix(in srgb, var(--action) 18%, transparent), transparent 45%), radial-gradient(circle at 85% 80%, #3d7ce038, transparent 50%), var(--night);background-size:160% 160%;animation:14s ease-in-out infinite alternate ob-drift;overflow:hidden}@keyframes ob-drift{to{background-position:100% 60%}}.ob-page{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-top:auto;animation:.4s ease-out ob-in;display:flex}.ob-page.from-left{animation-name:ob-in-left}@keyframes ob-in{0%{opacity:0;transform:translate(36px)}}@keyframes ob-in-left{0%{opacity:0;transform:translate(-36px)}}.ob-extra{color:var(--action-text);margin:0;font-weight:700}.ob-dots{justify-content:center;gap:8px;margin-top:auto;display:flex}.ob-dot{background:var(--line);border-radius:999px;width:9px;height:9px;min-height:0;padding:0;transition:width .25s,background .25s}.ob-dot.on{background:var(--action);width:24px}.ob-scene{place-items:center;width:240px;height:200px;margin:8px 0 4px;display:grid;position:relative;overflow:hidden}.ob-face{background:#0b0b0d;border-radius:16px;grid-template-columns:repeat(3,52px);gap:6px;padding:8px;display:grid;box-shadow:0 16px 40px #0006}.ob-tile{color:#161a2c;width:52px;height:52px;font-family:var(--font-display);background:#ece8e2;border-radius:9px;place-items:center;font-size:1.4rem;font-weight:800;display:grid}.ob-shuffle{animation:ob-colors 4.8s var(--d) ease-in-out infinite}@keyframes ob-colors{0%,to{background:var(--c1)}33%{background:var(--c2)}66%{background:var(--c3)}}.ob-band{border-top:4px solid var(--action);background:#171b2d;border-radius:12px;height:46px;margin-top:-23px;animation:4.8s ease-in-out infinite ob-band;position:absolute;top:50%;left:-6px;right:-6px;transform:translate(-130%)rotate(-4deg)}@keyframes ob-band{0%,20%{transform:translate(-130%)rotate(-4deg)}40%,80%{transform:translate(0)rotate(-4deg)}to{transform:translate(130%)rotate(-4deg)}}.ob-letter{color:#0000;animation:ob-letter 4s var(--d) ease-out infinite}.ob-letter.edge{border-radius:9px 9px 18px 18px}@keyframes ob-letter{0%,5%{color:#0000;transform:scale(1)}12%{color:#161a2c;box-shadow:0 0 0 3px var(--action);transform:scale(1.18)}20%,85%{color:#161a2c;box-shadow:none;transform:scale(1)}to{color:#0000}}.ob-memo .ob-chip,.ob-memo .ob-word{font-family:var(--font-display);border-radius:12px;place-items:center;font-weight:800;display:grid;position:absolute}.ob-chip{background:var(--action);width:48px;height:48px;color:var(--action-ink);font-size:1.4rem;top:20px}.ob-chip-a{animation:5s ease-in-out infinite ob-chip-a;left:30px}.ob-chip-b{animation:5s ease-in-out infinite ob-chip-b;right:30px}@keyframes ob-chip-a{0%,10%{opacity:1;transform:none}30%{opacity:1;transform:translate(52px)}36%,to{opacity:0;transform:translate(52px)scale(.6)}}@keyframes ob-chip-b{0%,10%{opacity:1;transform:none}30%{opacity:1;transform:translate(-52px)}36%,to{opacity:0;transform:translate(-52px)scale(.6)}}.ob-word{background:var(--panel);border:1px solid var(--line);color:var(--text);opacity:0;padding:10px 16px;font-size:1.15rem;animation:5s ease-in-out infinite ob-word;top:14px;box-shadow:0 10px 26px #0005}@keyframes ob-word{0%,32%{opacity:0;transform:scale(.5)}42%{opacity:1;transform:scale(1.1)}55%{opacity:1;transform:scale(1)}75%,92%{opacity:1;transform:translate(-70px,112px)scale(.7)}to{opacity:0;transform:translate(-70px,112px)scale(.7)}}.ob-route{border:2px dashed var(--line);border-radius:999px;gap:34px;padding:8px 18px;display:flex;position:absolute;bottom:18px}.ob-stop{background:var(--raised);border-radius:50%;place-items:center;width:36px;height:36px;font-size:1.1rem;display:grid}.ob-stop:first-child{animation:5s ease-in-out infinite ob-stop}@keyframes ob-stop{0%,70%{box-shadow:none}78%,92%{box-shadow:0 0 0 3px var(--action)}}.ob-solve{animation:ob-solve 5.5s var(--d) ease-in-out infinite}@keyframes ob-solve{0%,22%{background:var(--c1)}30%,62%{background:#55585f}72%,92%{background:#1abe57}to{background:var(--c1)}}.ob-band-blind{animation:5.5s ease-in-out infinite ob-band-blind}@keyframes ob-band-blind{0%,12%{transform:translate(-130%)rotate(-4deg)}26%,62%{transform:translate(0)rotate(-4deg)}70%,to{transform:translate(130%)rotate(-4deg)}}.ob-key{background:var(--raised);width:40px;height:40px;color:var(--text);font-family:var(--font-display);opacity:0;border-radius:10px;place-items:center;font-weight:800;display:grid;position:absolute;bottom:0}.ob-key-1{animation:5.5s ease-in-out infinite ob-key;left:72px}.ob-key-2{animation:5.5s ease-in-out .45s infinite ob-key;right:72px}@keyframes ob-key{0%,32%{opacity:0;transform:translateY(10px)}38%{opacity:1;background:var(--action);color:var(--action-ink);transform:none}46%,60%{opacity:1;background:var(--raised);color:var(--text)}68%,to{opacity:0}}.ob-check{background:var(--ok);color:#fff;opacity:0;border-radius:50%;place-items:center;width:42px;height:42px;font-size:1.4rem;font-weight:800;animation:5.5s ease-out infinite ob-check;display:grid;position:absolute;top:2px;right:22px}@keyframes ob-check{0%,70%{opacity:0;transform:scale(.4)}76%{opacity:1;transform:scale(1.2)}82%,94%{opacity:1;transform:scale(1)}to{opacity:0}}.ob-cloud{height:110px;font-size:4.5rem;animation:3.5s ease-in-out infinite alternate ob-float}@keyframes ob-float{to{transform:translateY(-10px)}}@media (prefers-reduced-motion:reduce){dialog.onboarding,.ob-page,.ob-scene *,.ob-cloud{animation:none!important}.ob-band,.ob-letter,.ob-key{opacity:1;color:inherit}}.cards-start:disabled{opacity:.4;cursor:not-allowed}.own-list li:has(.own-builtin){flex-wrap:wrap;padding:8px 10px 10px}.own-builtin{cursor:default;flex:100%}.own-subtitle{color:var(--muted);margin:18px 0 6px;font-size:.95rem}.tut-demo-memo{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px;display:flex}.tut-demo-memo .letter.now{box-shadow:inset 0 0 0 2px var(--action)}.tut-demo-memo .letter.done{color:var(--ok);min-width:2.4em}.tut-demo-controls{gap:8px}.tut-ref{flex-wrap:wrap;gap:8px;display:flex}.ref-perm{border:1px solid var(--line);border-radius:var(--r-md);margin:8px 0;padding:10px 12px}.ref-perm-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.ref-table{border-collapse:collapse;width:100%}.ref-table tr{cursor:pointer;border-bottom:1px solid var(--line)}.ref-table tr:hover,.ref-table tr:focus-visible{background:var(--raised)}.ref-table th,.ref-table td{text-align:left;padding:6px}.ref-table th{font-family:var(--font-display);width:2em;font-size:1.1rem}.ref-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised);text-align:center;margin-top:10px;padding:14px}.ref-card-letter{font-family:var(--font-display);margin:0;font-size:3rem;font-weight:800;line-height:1.1}.ref-card .row{justify-content:center}.tut-gate{border:1px dashed var(--warn);border-radius:var(--r-md);padding:12px 14px}.m2-pair{align-items:center;gap:10px;display:flex}.ref-firsts{flex-wrap:wrap;gap:5px;margin:8px 0;display:flex}.ref-firsts .letter{cursor:pointer;color:inherit;border:0}.ref-firsts .letter.now{box-shadow:inset 0 0 0 2px var(--action)}.set-fade{animation:.26s ease-out set-fade}@keyframes set-fade{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.set-fade{animation:none}}.listen-row{flex-wrap:wrap;justify-content:center;gap:8px;width:min(100%,340px);margin:8px auto 4px;display:flex}.listen-row>*{flex:140px}.listen-sleep-pick{gap:6px;display:flex}.listen-button{border-radius:12px;flex:1;padding:12px 14px}.listen-minutes,.listen-sleep-pick>.fancy-select{flex:0 0 112px;width:112px}.listen-intro{width:min(100%,340px);margin:6px auto 0}.listen-offer{gap:6px;width:min(100%,340px);margin:8px auto 4px;display:flex}.listen-offer-close{flex:none}.listen-evening{justify-content:space-between;align-items:center;gap:8px;width:min(100%,340px);margin:10px auto 0;display:flex}.listen-evening .listen-offer-close{width:32px;height:32px;min-height:32px;font-size:1rem}details.listen-intro summary{color:var(--muted);text-align:center;font-family:inherit;font-size:.85rem;font-weight:400}details.listen-intro p{margin:0 0 8px}.listen-surface{min-height:calc(100dvh - var(--session-top,0px) - 120px);padding:16px 16px max(16px, env(safe-area-inset-bottom));border-radius:var(--r-lg);text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;outline:none;grid-template-rows:1fr auto auto;place-items:center;margin:10px -16px 0;transition:background-color .25s;display:grid;position:relative}.listen-surface[data-lean=known],.listen-surface[data-flash=known]{background:color-mix(in srgb, var(--ok) 14%, transparent)}.listen-surface[data-lean=unknown],.listen-surface[data-flash=unknown]{background:color-mix(in srgb, var(--danger) 14%, transparent)}.listen-card{justify-items:center;gap:10px;display:grid}.listen-card .card-key{margin:0}.listen-answer{opacity:0;min-height:1.6em;font-size:1.5rem;font-weight:700;transition:opacity .25s}.listen-surface.answered .listen-answer{opacity:1}.listen-side{opacity:.55;writing-mode:vertical-rl;pointer-events:none;font-size:.8rem;font-weight:700;position:absolute;top:50%;transform:translateY(-50%)}.listen-side.unknown{color:var(--danger);left:6px;transform:translateY(-50%)rotate(180deg)}.listen-side.known{color:var(--ok);right:6px}.listen-hint{max-width:300px;margin:8px 0 0}.listen-timer{font-variant-numeric:tabular-nums}:root body.listen-sleep{background:#000}:root:has(body.listen-sleep){background:#000}body.listen-sleep .stage{visibility:hidden}body.listen-sleep dialog.card-session .panel-close{opacity:.25}body.listen-sleep dialog.card-session{color:#555;background:#000}body.listen-sleep .topbar,body.listen-sleep .hud,body.listen-sleep .update-banner,body.listen-sleep .card-session-progress{opacity:.12}body.listen-sleep .listen-surface .card-key,body.listen-sleep .listen-answer{color:#444}body.listen-sleep .listen-side,body.listen-sleep .muted{color:#333}.listen-goodnight{font-family:var(--font-display);margin:0;font-size:1.6rem}.remind-pick{align-items:center;gap:10px;display:inline-flex}.remind-time{width:auto;padding:6px 8px}.remind-time:disabled{opacity:.4}.sleep-intro{text-align:left;gap:10px;padding:16px 0 24px;line-height:1.45;display:grid}.sleep-intro h3{font-family:var(--font-display);margin:0}.sleep-intro p,.sleep-intro ol{margin:0}.sleep-intro ol{gap:6px;padding-left:1.3em;display:grid}.sleep-intro-head{font-weight:700;margin-top:6px!important}.sleep-intro-choice{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.sleep-intro-choice>*{flex:140px}.challenge-view{--face-X:var(--blind);gap:14px;padding-bottom:24px;display:grid}.ch-subs{width:100%;display:flex}.ch-subs button{flex:1}.ch-today,.ch-community,.ch-progress{gap:14px;display:grid}.ch-card{border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);padding:14px}.ch-card h4,.ch-section-head h4{color:var(--text);font-family:var(--font-display);margin:0 0 6px;font-size:1.05rem}.ch-card>p{margin:4px 0}.ch-card.highlight{border-color:color-mix(in srgb, var(--action) 55%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--action) 12%, transparent)}.ch-section-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.ch-section-head h4{margin:0}.ch-time{font-family:var(--font-mono);color:var(--muted);font-size:.78rem}.challenge-view :is(b,span,p).ok{color:var(--ok)}.challenge-view :is(b,span,p).fail{color:var(--danger-text)}.ch-hero{border-radius:var(--r-lg);background:radial-gradient(circle at 92% 10%, color-mix(in srgb, var(--action) 28%, transparent), transparent 55%), radial-gradient(circle at 0% 100%, color-mix(in srgb, var(--face-B) 30%, transparent), transparent 60%), var(--raised);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:18px 16px;display:flex;position:relative;overflow:hidden}.ch-hero-text small{color:var(--muted);text-transform:capitalize}.ch-hero h3{font-family:var(--font-display);margin:2px 0 6px;font-size:1.4rem;line-height:1.15}.ch-hero p{max-width:24ch;margin:0}.ch-flame{text-align:center;min-width:84px;color:var(--muted);justify-items:center;display:grid}.ch-flame-icon{width:42px;height:42px;fill:var(--blind)}.ch-flame.lit .ch-flame-icon{fill:var(--warn);filter:drop-shadow(0 0 10px color-mix(in srgb, var(--warn) 70%, transparent))}.ch-flame.lit.today .ch-flame-icon{fill:var(--action);animation:2.4s ease-in-out infinite ch-flicker}.ch-flame b{font-family:var(--font-display);color:var(--text);font-size:2rem;line-height:1}.ch-flame small{font-size:.72rem}@keyframes ch-flicker{0%,to{transform:scale(1)rotate(0)}40%{transform:scale(1.06)rotate(-3deg)}70%{transform:scale(.97)rotate(2deg)}}.ch-tiles,.ch-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ch-tile{border-radius:var(--r-md);background:var(--raised);border:1px solid var(--line);align-content:start;gap:8px;padding:12px;transition:border-color .2s,box-shadow .2s;display:grid;position:relative}.ch-tile.themed:before{content:"";border-radius:var(--r-md) var(--r-md) 0 0;background:linear-gradient(90deg, var(--face-R), var(--face-L), var(--face-D), var(--face-F), var(--face-B));height:4px;position:absolute;inset:0 0 auto}.ch-tile.ok{border-color:color-mix(in srgb, var(--ok) 60%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--ok) 14%, var(--raised)), var(--raised) 70%)}.ch-tile.fail{border-color:color-mix(in srgb, var(--danger) 45%, transparent)}.ch-tile.live{border-color:var(--action);animation:1.8s ease-in-out infinite ch-pulse}@keyframes ch-pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--action) 25%, transparent)}}.ch-tile-icon{width:48px;height:48px;position:relative}.ch-tile-icon .mini-cube{width:48px;height:48px}.ch-cubes{background:var(--action);color:var(--action-ink);border-radius:999px;padding:0 5px;font-size:.72rem;font-weight:800;position:absolute;bottom:-4px;right:-10px}.ch-tile-text{gap:2px;min-width:0;display:grid}.ch-tile-text b{font-family:var(--font-display);font-size:1rem;line-height:1.2}.ch-status{font-family:var(--font-display);font-size:1.15rem;font-weight:800}.ch-status.ok{color:var(--ok)}.ch-status.fail{color:var(--danger-text)}.ch-status.live{color:var(--action-text);font-size:.95rem}button.ch-go{width:100%;min-height:38px;padding:6px 12px}.ch-tile-actions{flex-wrap:wrap;gap:6px;display:flex}.ch-tile-actions button{flex:1}.ch-sprint-icon{border:3px solid var(--face-B);font-family:var(--font-display);color:var(--face-B);border-radius:50%;place-items:center;font-weight:800;display:grid}button.ch-world{text-align:left;background:var(--night);width:100%;color:var(--text);align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}button.ch-world>span:nth-child(2){flex:1}p.ch-world{text-align:center;margin:0}.ch-avatar{color:#14161f;width:28px;height:28px;box-shadow:0 0 0 2px var(--panel);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:800;display:inline-grid}.ch-avatars{display:inline-flex}.ch-avatars .ch-avatar+.ch-avatar{margin-left:-8px}.ch-toast{z-index:3;border-radius:var(--r-md);background:var(--action);color:var(--action-ink);padding:10px 14px;font-weight:700;animation:.35s ease-out ch-drop;position:sticky;top:0}@keyframes ch-drop{0%{opacity:0;transform:translateY(-12px)}}.ch-badge{background:var(--action);color:var(--action-ink);font-size:.72rem;font-family:var(--font-text);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 8px}.ch-duel{border-color:color-mix(in srgb, var(--rot) 60%, transparent);background:linear-gradient(160deg, color-mix(in srgb, var(--rot) 16%, var(--raised)), var(--raised) 70%)}.ch-duel-head{align-items:center;gap:10px;display:flex}.ch-duel-head>div{display:grid}.ch-duel-vs{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;margin:12px 0;display:grid}.ch-duel-vs>div{gap:2px;display:grid}.ch-duel-vs b{font-size:1.8rem;font-family:var(--font-display)}.ch-vs{color:var(--muted);font-weight:800}.ch-duel-verdict{text-align:center;font-family:var(--font-display);font-size:1.1rem;font-weight:800}.ch-advent{background:radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--face-R) 22%, transparent), transparent 55%), var(--raised)}.ch-doors{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}button.ch-door{aspect-ratio:1;border-radius:var(--r-sm);min-height:0;font-family:var(--font-display);background:color-mix(in srgb, var(--face-F) 70%, var(--night));color:#fff;padding:0;font-weight:800}button.ch-door.today{background:var(--face-R);box-shadow:0 0 0 3px color-mix(in srgb, var(--action) 50%, transparent)}button.ch-door.locked{background:var(--night);color:var(--muted)}button.ch-door.ok{background:var(--action);color:var(--action-ink)}button.ch-door.fail{background:var(--night);color:var(--danger-text)}button.ch-door:disabled{cursor:default;transform:none}.ch-event.live-event{border-color:var(--action)}.ch-stepper{align-items:center;gap:10px;margin:8px 0 12px;display:flex}.ch-stepper b{text-align:center;min-width:2ch;font-family:var(--font-display);font-size:1.4rem}.ch-focus-item{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 0;display:grid}.ch-focus-item+.ch-focus-item{border-top:1px solid var(--line)}.ch-focus-item>div{display:grid}.memo-ch-chip{border-radius:var(--r-sm);background:var(--night);min-width:30px;height:30px;font-family:var(--font-display);place-items:center;padding:0 6px;font-weight:800;display:inline-grid}.memo-ch-chip.kind-corner{border-radius:4px var(--r-sm) 4px var(--r-sm)}.memo-ch-chip.ok{background:color-mix(in srgb, var(--ok) 25%, var(--night));color:var(--ok)}.memo-ch-chip.miss{outline:2px solid var(--danger);outline-offset:-2px;color:var(--danger-text)}.memo-ch,.sprint{gap:14px;display:grid}.ch-title{font-family:var(--font-display);margin:0;font-size:1.3rem}.memo-ch-steps{gap:6px;margin:0;padding-left:1.2em;display:grid}.memo-ch-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.memo-ch-clock{font-family:var(--font-mono);font-size:1.4rem}.memo-ch .cube-net{grid-template-columns:repeat(12,minmax(0,30px));grid-auto-rows:30px;gap:3px}.memo-ch-typed{flex-wrap:wrap;align-items:center;gap:6px;min-height:36px;display:flex}.memo-ch-actions button{flex:1}button.wide{width:100%}.memo-ch-review{gap:10px;display:grid}.memo-ch-review-group{gap:4px;display:grid}.memo-ch-review-group p{margin:0}.sprint-head{justify-content:space-between;align-items:center;display:flex}.sprint-clock{--left:1;width:54px;height:54px;font-family:var(--font-mono);background:radial-gradient(closest-side, var(--panel) 78%, transparent 80%), conic-gradient(var(--action) calc(var(--left) * 360deg), var(--night) 0);border-radius:50%;place-items:center;font-weight:700;display:grid}.sprint-score b{font-family:var(--font-display);font-size:1.8rem}.sprint-card{border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);place-items:center;gap:6px;min-height:170px;display:grid}.sprint-key{font-family:var(--font-display);letter-spacing:.06em;font-size:3.2rem}.sprint-word{min-height:1.6em;color:var(--ok);font-size:1.25rem;font-weight:700}.sprint-card.revealed .sprint-word{animation:.25s ease-out ch-drop}.sprint-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sprint-actions button{min-height:64px;font-size:1.05rem}.ch-me{align-items:center;gap:12px;display:flex}.ch-me .ch-avatar{width:44px;height:44px;font-size:1.2rem}.ch-me>div{display:grid}.ch-me b{font-family:var(--font-display);font-size:1.2rem}.ch-name details{margin:10px 0 4px}.ch-name-edit{margin:8px 0}.ch-name-edit input{flex:1;min-width:0}.ch-switch{align-items:center;gap:10px;margin:8px 0;display:flex}.ch-chips{flex-wrap:wrap;gap:6px;margin:8px 0 10px;display:flex}.ch-board,.ch-feed{gap:6px;margin:0;padding:0;list-style:none;display:grid}.ch-board-row{border-radius:var(--r-md);background:var(--night);grid-template-columns:22px 28px minmax(0,1fr) auto;grid-template-areas:"rank av name pill""rank av time pill";align-items:center;column-gap:10px;padding:8px 10px;display:grid}.ch-board-row.mine{outline:2px solid color-mix(in srgb, var(--action) 60%, transparent)}.ch-board-row.fail{opacity:.75}.ch-rank{font-family:var(--font-display);color:var(--muted);text-align:center;grid-area:rank;font-weight:800}.ch-board-row:first-child.ok .ch-rank{color:var(--action-text)}.ch-board-row .ch-avatar{grid-area:av}.ch-board-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;overflow:hidden}.ch-board-row .ch-time{grid-area:time}.ch-pill{border-radius:999px;grid-area:pill;padding:3px 10px;font-size:.9rem;font-weight:800}.ch-pill.ok{background:color-mix(in srgb, var(--ok) 22%, transparent);color:var(--ok)}.ch-pill.fail{background:var(--danger-bg);color:var(--danger-text)}.ch-feed-row{border-radius:var(--r-md);background:var(--night);grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:10px;display:grid}.ch-feed-text{min-width:0;display:grid}.ch-feed-result{justify-items:end;display:grid}.ch-feed-actions{flex-wrap:wrap;grid-column:2/-1;gap:6px;display:flex}.ch-rate{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;display:grid}.ch-rate p{margin:2px 0}.ch-ring{width:96px;height:96px;position:relative}.ch-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ch-ring circle{fill:none;stroke-width:8px}.ch-ring .track{stroke:var(--night)}.ch-ring .fill{stroke:var(--ok);stroke-linecap:round;transition:stroke-dasharray .8s ease-out}.ch-ring b{font-family:var(--font-display);place-items:center;font-size:1.5rem;display:grid;position:absolute;inset:0}.ch-trend.up{color:var(--ok)}.ch-trend.down{color:var(--warn)}.ch-calendar{grid-template-rows:repeat(7,18px);grid-auto-columns:18px;grid-auto-flow:column;gap:4px;margin-top:10px;display:grid}.ch-day{background:var(--night);border-radius:4px}.ch-day.ok{background:var(--ok)}.ch-day.tried{background:color-mix(in srgb, var(--warn) 55%, var(--night))}.ch-day.future{outline:1px dashed var(--line);outline-offset:-1px;background:0 0}.ch-day.today{outline:2px solid var(--text);outline-offset:-2px}.ch-ladder{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid;position:relative}.ch-ladder:before{content:"";background:var(--line);width:2px;position:absolute;top:14px;bottom:14px;left:13px}.ch-step{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 0;display:grid;position:relative}.ch-step.locked{opacity:.45}.ch-ladder-dot{z-index:1;background:var(--night);border:2px solid var(--line);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:800;display:grid}.ch-step.done .ch-ladder-dot{background:var(--ok);border-color:var(--ok);color:#0d2a19}.ch-step.current .ch-ladder-dot,.ch-ladder-dot.current{background:var(--action);border-color:var(--action);color:var(--action-ink)}.ch-step-text{gap:4px;display:grid}.ch-dots{gap:4px;display:flex}.ch-dots i{background:var(--night);border:1px solid var(--line);border-radius:50%;width:9px;height:9px}.ch-dots i.ok{background:var(--ok);border-color:var(--ok)}.ch-dots i.fail{background:var(--danger);border-color:var(--danger)}.ch-trophies{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.ch-trophy{border-radius:var(--r-md);background:var(--night);text-align:center;filter:grayscale();opacity:.45;justify-items:center;gap:2px;padding:10px 8px;display:grid}.ch-trophy.got{filter:none;opacity:1;background:linear-gradient(170deg, color-mix(in srgb, var(--action) 18%, var(--night)), var(--night) 75%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--action) 35%, transparent)}.ch-trophy-icon{font-size:1.7rem;line-height:1.2}.ch-trophy b{font-size:.85rem}.ch-trophy small{color:var(--muted);font-size:.72rem}@media (prefers-reduced-motion:reduce){.ch-flame.lit.today .ch-flame-icon,.ch-tile.live,.ch-toast,.sprint-card.revealed .sprint-word{animation:none}}#app.nxn-stage .move-pad{display:none}#app.nxn-stage .stage-tools{visibility:hidden}.timer-view{flex-direction:column;gap:14px;display:flex}.timer-pick{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.timer-sizes{flex:260px;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.timer-size{background:var(--raised);color:var(--muted);min-height:40px;font-family:var(--font-display);font-variant-numeric:tabular-nums;padding:6px 0;font-size:.95rem}.timer-size.on{background:var(--action);color:var(--action-ink)}.timer-main{background:var(--raised);border-radius:var(--r-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:14px 12px 12px;display:flex}.timer-clock{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:clamp(2.6rem,11vw,3.6rem);font-weight:700;line-height:1}.timer-main.phase-running .timer-clock,.timer-main.phase-solving .timer-clock{color:var(--action)}.timer-main.phase-memo .timer-clock{color:var(--rot)}.timer-main.phase-loading .timer-clock,.timer-main.phase-ready .timer-clock,.timer-main.phase-covered .timer-clock{color:var(--muted)}.timer-hint{color:var(--muted);margin:0;font-size:.9rem}.timer-start{text-align:center;justify-items:center;gap:4px;display:grid}.timer-start-cta{color:var(--action-text);font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:700}.timer-start-cta span{margin-right:6px;animation:1.6s ease-in-out infinite timer-start-nudge;display:inline-block}@keyframes timer-start-nudge{50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.timer-start-cta span{animation:none}}.timer-scramble{font-family:var(--font-mono);word-spacing:.15em;overflow-wrap:anywhere;color:var(--text);margin:0;font-size:.82rem;line-height:1.5}.timer-main .timer-scramble{background:var(--night);border-radius:var(--r-sm);width:100%;max-height:7.5em;padding:8px 10px;overflow-y:auto}.timer-actions{justify-content:center}.timer-result{color:var(--muted);flex-direction:column;gap:4px;font-size:.9rem;display:flex}.timer-best{color:var(--ok)}.timer-memo{color:var(--text);font-family:var(--font-mono);margin:4px 0 0}.timer-duel-result.won{color:var(--ok)}.timer-duel-result.lost{color:var(--warn)}.timer-stats{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:6px;display:grid}.timer-stat{background:var(--night);border-radius:var(--r-sm);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.timer-stat span{color:var(--muted);font-size:.75rem}.timer-stat b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.05rem}.timer-results h4{margin:0 0 6px}.timer-results ol{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.timer-results details{background:var(--night);border-radius:var(--r-sm);padding:6px 10px}.timer-results details[open]{flex-direction:column;gap:8px;padding-bottom:10px;display:flex}.timer-results summary{cursor:pointer;align-items:baseline;gap:10px;list-style:none;display:flex}.timer-results summary::-webkit-details-marker{display:none}.timer-results summary b{font-variant-numeric:tabular-nums;min-width:4.5em}.timer-results summary b.dnf{color:var(--danger-text)}.timer-results summary small{color:var(--muted);margin-left:auto}.timer-icon{font-size:.85rem}.timer-duel{border-radius:var(--r-lg);background:var(--info-bg);border:1px solid var(--line);padding:12px 14px}.timer-duel h4,.timer-duel p{margin:0 0 8px}.timer-toast{text-align:center;color:var(--ok);margin:0}.timer-empty,.timer-keys{margin:0}div.timer-memo{text-align:left;align-self:stretch}div.timer-memo p{margin:2px 0}div.timer-memo b{color:var(--muted);font-weight:600}:root[data-color-assist]{--face-U:#f6f6f2;--face-F:#12a974;--face-R:#b8141d;--face-D:#fff25c;--face-B:#2c66dd;--face-L:#ffa53a;--ok:#5aa9ff;--danger:#ff9d3b}@media (prefers-color-scheme:light){:root[data-color-assist]:not([data-theme=dark]){--ok:#1f6fd1;--danger:#b84f00}}:root[data-color-assist][data-theme=light]{--ok:#1f6fd1;--danger:#b84f00}.face-mark{fill:#111111d9;stroke:#ffffffe6;stroke-width:6px;stroke-linejoin:round;paint-order:stroke;vector-effect:non-scaling-stroke;display:none}:root[data-color-assist] .face-mark{display:inline}.mini-cube .face-mark{stroke-width:1.2px}.face-mark-svg{pointer-events:none;display:none}:root[data-color-assist] .face-mark-svg{display:block}.net-cell,.swatch{position:relative}.net-cell .face-mark-svg,.swatch .face-mark-svg{width:64%;height:64%;position:absolute;inset:18%}.swatch .face-mark-svg .face-mark,.net-cell .face-mark-svg .face-mark{stroke-width:1.5px}.net-cell .face-mark-svg.corner{width:38%;height:38%;inset:3% auto auto 3%}:root[data-color-assist] .recall-dots i.fail,:root[data-color-assist] .ch-dots i.fail{border-radius:1px;transform:scale(.85)}:root[data-color-assist] .multi-mini.ok:after{content:"✓";color:var(--ok);font-weight:700;line-height:1}:root[data-color-assist] .multi-mini.fail:after{content:"✗";color:var(--danger);font-weight:700;line-height:1}.held-finder{font-family:var(--font-text);margin-top:10px}.held-finder summary{cursor:pointer;color:var(--action-text)}.held-finder-input{text-transform:uppercase;width:100%;max-width:20em;margin:4px 0}.held-finder-list{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.held-finder-list li{background:var(--raised);font-family:var(--font-mono);overflow-wrap:anywhere;border-radius:8px;padding:6px 8px}.held-finder-list li.own{box-shadow:inset 0 0 0 2px var(--action)}.held-finder-name{font-weight:700;font-family:var(--font-display)}.held-finder-list li p{margin:2px 0;font-size:.85rem}.held-finder-list li b{color:var(--muted);font-weight:600}.held-finder-list li .held-finder-name{font-size:.95rem}.big-mix-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.big-mix-bar{flex-wrap:wrap;row-gap:6px}.big-cube-nav{flex:auto;align-items:center;gap:4px;min-width:0;display:flex}.big-cube-nav .multi-dock-label{text-align:center;flex:0 auto}.big-cube-nav .mini{min-width:2.2em;font-size:1.1rem}.big-mix-chip.ok{color:var(--ok)}.big-mix-chip.fail{color:var(--danger)}.big-mix-chip.on{color:inherit}
