@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/be-vietnam-pro-400-vietnamese.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/be-vietnam-pro-400-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/be-vietnam-pro-400-latin.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/be-vietnam-pro-500-vietnamese.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/be-vietnam-pro-500-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/be-vietnam-pro-500-latin.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/be-vietnam-pro-600-vietnamese.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/be-vietnam-pro-600-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/be-vietnam-pro-600-latin.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/be-vietnam-pro-700-vietnamese.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/be-vietnam-pro-700-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/be-vietnam-pro-700-latin.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-vietnamese.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-400-vietnamese.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-italic-vietnamese.woff2)format("woff2");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:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-italic-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-italic-latin.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-vietnamese.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500-latin.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-500-vietnamese.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-500-latin-ext.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-500-latin.woff2)format("woff2");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}:root{--bg:#e9edf2;--paper:#f6f8fa;--panel:#f6f8fae0;--side:#eef1f5;--well:#e2e7ee;--hover:#dae1ea;--line:#14213d1a;--line-2:#14213d2b;--grid:#2448c911;--fg:#14213d;--muted:#55607a;--dim:#8a93a8;--accent:#2448c9;--accent-ink:#fff;--accent-soft:#2448c91a;--stage-1:#2a78d6;--stage-2:#eb6834;--stage-3:#1baf7a;--stage-4:#eda100;--s-w:#f5f5f0;--s-y:#ffd43b;--s-r:#e0383b;--s-o:#ff8a1f;--s-b:#2b6fef;--s-g:#23b26a;--good:#16834a;--warn:#b26a00;--bad:#c62828;--shadow:0 1px 2px #14213d0f, 0 10px 28px -14px #14213d33;--f-display:"Newsreader", Georgia, "Times New Roman", serif;--f-body:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--r-sm:8px;--r-md:12px;--r-lg:18px;--topbar:#e9edf2db;--stage-in:#f4f6f9;--stage-out:#e3e8ef;--float:#f6f8fae6;--cube-shadow:#14213d38;--empty-a:#aab1bd;--empty-b:#b6bdc8;--backdrop:#14213d52;--ledge:#18308a;--grid-2:#2448c908;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0e131c;--paper:#182031;--panel:#161d2ceb;--side:#131a27;--well:#212b3d;--hover:#273348;--line:#cddaf51a;--line-2:#cddaf52e;--grid:#7896ff0d;--grid-2:#7896ff06;--fg:#e7ecf6;--muted:#a4aec3;--dim:#8792aa;--accent:#7193ff;--accent-ink:#0b1124;--accent-soft:#7193ff29;--good:#45d08f;--warn:#f2b34d;--bad:#ff7070;--shadow:0 1px 2px #00000059, 0 10px 28px -14px #000000b3;--topbar:#0e131cdb;--stage-in:#1d2739;--stage-out:#101622;--float:#182031eb;--cube-shadow:#0000008c;--empty-a:#3b4457;--empty-b:#454f64;--backdrop:#0000008c;--ledge:#3e5bd0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--fg);font:15px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px), linear-gradient(var(--grid-2) 1px, transparent 1px), linear-gradient(90deg, var(--grid-2) 1px, transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-attachment:fixed;margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;font-weight:600;line-height:1.15}h2{letter-spacing:-.01em;font-size:clamp(26px,3.4vw,36px)}h3{font-size:19px}p{margin:0}code,.mono{font-family:var(--f-mono)}[hidden]{display:none!important}.app{flex-direction:column;min-height:100%;display:flex}.wrap{width:100%;max-width:1280px;margin:0 auto;padding-inline:20px}@media (width<=480px){.wrap{padding-inline:12px}}.top{z-index:20;background:var(--topbar);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0}.top .wrap{align-items:center;gap:16px;height:56px;display:flex}.brand{font:600 14px var(--f-mono);letter-spacing:.08em;white-space:nowrap;align-items:center;gap:10px;display:flex}.logo{background:var(--fg);border-radius:3px;grid-template-columns:repeat(3,6px);gap:2px;padding:2px;display:grid}.logo b{border-radius:1.5px;width:6px;height:6px}.tabs{background:var(--well);scrollbar-width:none;border-radius:999px;gap:2px;min-width:0;padding:3px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{font:600 13px var(--f-body);color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px}.tabs button:hover{color:var(--fg)}.tabs button.on{background:var(--fg);color:var(--paper)}.tabs sup{font:600 9px var(--f-mono);color:var(--accent);text-transform:uppercase;margin-left:3px}.top .spacer{flex:1}.lang{border:1px solid var(--line-2);border-radius:999px;flex-shrink:0;display:flex;overflow:hidden}.lang button{font:600 12px var(--f-mono);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 10px}.lang button.on{background:var(--fg);color:var(--paper)}@media (width<=640px){.brand span:last-child{display:none}}main{flex:1;padding-block:18px 28px}.glass{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}.label{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-size:11px;font-weight:600}.muted{color:var(--muted)}.pill{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-2);color:var(--muted);white-space:nowrap;border-radius:999px;padding:4px 10px}.pill.free,.pill.solved{color:var(--good);border-color:color-mix(in srgb, var(--good) 35%, transparent);background:color-mix(in srgb, var(--good) 7%, transparent)}.pill.dnf{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 35%, transparent);background:color-mix(in srgb, var(--bad) 7%, transparent)}.pill.inspect,.pill.scrambling{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 35%, transparent);background:color-mix(in srgb, var(--warn) 7%, transparent)}.pill.running,.pill.solving,.pill.replay{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent);background:var(--accent-soft)}.game{grid-template-columns:var(--cols,250px minmax(0, 1fr) 290px);display:grid;overflow:hidden}@media (width<=1040px){.game{grid-template-columns:minmax(0,1fr)}.game .left{order:2}.game .right{order:3}}.side{background:var(--side);grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;min-width:0;padding:16px;display:grid}.left{border-right:1px solid var(--line)}.right{border-left:1px solid var(--line)}@media (width<=1040px){.left,.right{border:0;border-top:1px solid var(--line)}}.timer{font:600 46px/1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.timer.inspect{color:var(--warn)}.timer.solved{color:var(--good)}.timer.late{color:var(--bad)}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;padding:8px 10px}.stat b{font:600 16px var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.scr{font:12.5px/1.65 var(--f-mono);color:var(--fg);background:var(--well);border-radius:var(--r-sm);word-break:break-word;min-height:42px;padding:8px 10px}.scr.empty{color:var(--muted);font-family:var(--f-body)}.times{font:13px var(--f-mono);font-variant-numeric:tabular-nums;gap:4px;margin:0;padding:0;list-style:none;display:grid}.times li{color:var(--muted);justify-content:space-between;display:flex}.times li b{color:var(--fg);font-weight:600}.stage{background:radial-gradient(ellipse at 50% 42%, var(--stage-in) 0%, var(--stage-out) 78%);grid-template-rows:minmax(0,1fr) auto;min-height:640px;display:grid;position:relative}@media (width<=1040px){.stage{min-height:0}}.canvas-wrap{cursor:grab;min-height:380px;position:relative}@media (width<=1040px){.canvas-wrap{height:min(68vw,460px);min-height:300px}}.canvas-wrap:active{cursor:grabbing}.canvas-wrap canvas{display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.canvas-wrap:before{content:"";background:radial-gradient(ellipse, var(--cube-shadow), transparent 70%);filter:blur(4px);pointer-events:none;border-radius:50%;width:40%;height:22px;position:absolute;bottom:10%;left:50%;transform:translate(-50%)}.stage-top{z-index:5;pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.stage-top>*{pointer-events:auto}.stage-top .spacer{flex:1}.icon-btn{border:1px solid var(--line-2);background:var(--paper);color:var(--muted);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.icon-btn:hover{color:var(--fg);background:var(--hover)}.toast{background:var(--fg);color:var(--paper);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:3;border-radius:999px;max-width:calc(100% - 24px);padding:8px 16px;font-size:13px;animation:3s forwards toast;position:absolute;bottom:46px;left:50%;overflow:hidden;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,-6px)}8%,82%{opacity:1;transform:translate(-50%)}to{opacity:0}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.timer.mini{background:var(--paper);border:1px solid var(--line-2);border-radius:999px;padding:2px 10px;font-size:22px;display:none}@media (width<=1040px){.timer.mini{display:block}}.coarse-only{display:none}@media (hover:none) and (pointer:coarse){.coarse-only{display:inline}.fine-only{display:none!important}}.stage.with-status{grid-template-rows:minmax(0,1fr) auto auto}.statusbar{height:3.1em;color:var(--muted);text-align:center;border-top:1px solid var(--line);background:var(--side);justify-content:center;align-items:center;padding:0 14px;font-size:12.5px;line-height:1.3;transition:background .15s,color .15s;display:flex;overflow:hidden}.statusbar>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.statusbar.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.settings{position:relative}.settings-panel{z-index:6;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);width:min(320px,100vw - 32px);max-height:min(70vh,520px);box-shadow:var(--shadow);gap:14px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.set-group{gap:6px;display:grid}.toggle{cursor:pointer;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:3px 0;font-size:13.5px;display:grid}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle .switch{background:var(--line-2);border-radius:999px;grid-row:1;width:32px;height:18px;transition:background .15s;position:relative}.toggle .switch:after{content:"";background:var(--paper);border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #14213d4d}.toggle input:checked+.switch{background:var(--accent)}.toggle input:checked+.switch:after{transform:translate(14px)}.toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}.toggle span:last-child{grid-area:1/2}.orbit-ring{aspect-ratio:1;border:2px dashed var(--accent);opacity:0;pointer-events:none;border-radius:50%;max-width:92%;height:84%;transition:opacity .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit-ring.on{opacity:.35}.netmap{z-index:2;background:var(--float);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:var(--shadow);grid-template-columns:repeat(4,auto);gap:3px;padding:7px;display:grid}.netface{background:#14161c;border-radius:3px;grid-template-columns:repeat(3,11px);grid-auto-rows:11px;gap:1.5px;padding:2px;display:grid}.netface i{font:700 8px/1 var(--f-mono);color:#14213dd9;border-radius:2px;place-items:center;font-style:normal;display:grid;position:relative}.netface i.lit{box-shadow:0 0 0 2px var(--accent);z-index:1}.net-overlay{position:absolute;top:52px;left:12px}.net-inline{justify-self:center;display:none}@media (width<=640px){.net-overlay{display:none}.net-inline{box-shadow:none;display:grid}.btn-text{display:none}.stage-top{flex-wrap:nowrap}}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:var(--accent-soft)}.pad{border-top:1px solid var(--line);background:var(--paper);gap:10px;padding:12px 14px 14px;display:grid}.faces{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}@media (width<=760px){.faces{grid-template-columns:repeat(3,minmax(0,1fr))}}.fgroup{gap:4px;min-width:0;display:grid}.fname{color:var(--muted);white-space:nowrap;align-items:center;gap:2px;font-size:12px;display:flex;overflow:hidden}.fname b{font-family:var(--f-mono);color:var(--fg);margin-left:4px}.fbtns{grid-template-columns:1fr 1fr;gap:4px;display:grid}.extras{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.extras .label{margin-right:4px}.extras .mv{min-width:52px}.extras.rot .mv{min-width:64px;font-family:var(--f-body);padding:5px 6px}.extras.rot .mv>span{justify-items:center;gap:0;display:grid}.rot-arrow{font:700 17px/1 var(--f-body);color:var(--accent)}.rot-text{font:600 12px/1.2 var(--f-body)}.pad-legend{color:var(--muted);font-size:12px}.mv{font:600 14px var(--f-mono);border:1px solid var(--line-2);background:var(--paper);cursor:pointer;box-shadow:0 3px 0 var(--line-2);border-radius:10px;justify-items:center;gap:1px;padding:7px 4px;transition:transform 60ms,box-shadow 60ms,background .15s;display:grid;position:relative}.mv:hover{background:var(--hover)}.mv:active:not(:disabled){box-shadow:0 0 0 var(--line-2);transform:translateY(3px)}.mv small{font:500 10px var(--f-mono);color:var(--dim)}.mv:disabled{opacity:.5;cursor:not-allowed}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{font:600 13px var(--f-body);border:1px solid var(--line-2);background:var(--paper);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;display:inline-flex}.btn:hover:not(:disabled){background:var(--hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}.btn.danger{color:var(--bad)}.kbd{font:600 11px var(--f-mono);border:1px solid var(--line-2);background:var(--paper);color:var(--fg);border-bottom-width:2px;border-radius:5px;padding:1px 6px}.result{z-index:4;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);width:min(320px,100% - 32px);box-shadow:var(--shadow);gap:12px;padding:16px;animation:.35s cubic-bezier(.2,.9,.3,1.2) rise;display:grid;position:absolute;inset:auto 16px 16px auto}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.result{animation:none}}@media (width<=560px){.result{width:auto;inset:auto 12px 12px}}.result .big{font:600 40px/1 var(--f-mono);font-variant-numeric:tabular-nums;color:var(--good);letter-spacing:-.03em}.result .big.dnf{color:var(--bad)}.result .meta{color:var(--muted);font-size:13px}.seg{flex-wrap:wrap;gap:4px;display:flex}.seg button{font:600 12px var(--f-body);border:1px solid var(--line-2);background:var(--paper);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 10px}.seg button.on{background:var(--fg);color:var(--paper);border-color:var(--fg)}.splits{border:1px solid var(--line-2);border-radius:5px;height:10px;display:flex;overflow:hidden}.splits i{height:100%;display:block}.legend{color:var(--muted);grid-template-columns:1fr 1fr;gap:4px 10px;font-size:12px;display:grid}.legend b{color:var(--fg);font-family:var(--f-mono);font-weight:600}.dot{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block;box-shadow:inset 0 0 0 1px #14213d24}.alg-list{gap:6px;display:grid}.alg{border-radius:var(--r-sm);background:var(--paper);border:1px solid var(--line);cursor:pointer;text-align:left;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;width:100%;padding:9px 10px;display:grid}.alg:hover{border-color:var(--accent)}.alg .n{font-size:13px;font-weight:600}.alg .s{font:12px var(--f-mono);color:var(--muted);grid-column:1/-1}.alg .play{color:var(--accent);font-size:11px;font-weight:600}.steps-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.steps-list button{text-align:left;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:26px 1fr;align-items:center;gap:10px;width:100%;padding:8px 10px;display:grid}.steps-list button:hover{background:var(--paper)}.steps-list button.cur{background:var(--paper);border-color:var(--accent)}.steps-list button.viewing{background:var(--paper);border-color:var(--line-2)}.steps-list .num{width:26px;height:26px;font:600 12px var(--f-mono);border:1.5px solid var(--line-2);color:var(--muted);border-radius:50%;place-items:center;display:grid}.steps-list .done .num{background:var(--good);border-color:var(--good);color:var(--paper)}.steps-list .cur .num{border-color:var(--accent);color:var(--accent)}.steps-list .t{font-size:14px;font-weight:600}.steps-list .done .t{color:var(--muted)}.meter{background:var(--well);border-radius:3px;height:6px;overflow:hidden}.meter i{background:var(--good);height:100%;transition:width .4s;display:block}.lesson{gap:12px;display:grid}.lesson h3{font-size:24px}.lesson p{color:var(--muted);font-size:14px}.lesson .hold{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--fg);padding:8px 10px;font-size:13px}.algchip{border-radius:var(--r-md);background:var(--paper);border:1px dashed var(--line-2);gap:6px;padding:10px;display:grid}.algchip .name{color:var(--muted);font-size:12px;font-weight:600}.algchip code{font-size:15px;font-weight:600}.algchip p{font-size:12.5px}.drill{gap:8px;display:grid}.drill p{margin:0;font-size:12.5px}.drill.done p{color:var(--good);font-weight:600}.hint-next{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hint-move{font:600 26px/1 var(--f-mono);color:var(--accent);background:var(--accent-soft);border-radius:var(--r-sm);text-align:center;min-width:52px;padding:6px 12px}.move-glyph{flex:none;width:64px;height:67px}.move-glyph rect{fill:var(--well)}.move-glyph rect.on{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5px}.move-glyph .g-arrow{stroke:var(--accent);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.move-glyph .g-face{font:700 13px var(--f-mono);fill:var(--accent)}.hint-next .desc{color:var(--muted);flex:1;min-width:120px;font-size:13px}.hint-card{border-radius:var(--r-md);background:var(--paper);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);gap:8px;padding:12px;display:grid}.hint-card .goal{font-size:13px;font-weight:600}.half-note{color:var(--accent);font-size:12px}.hint-card details{color:var(--muted);font-size:12.5px}.hint-card summary{cursor:pointer}.hint-card details code{color:var(--fg);word-break:break-word;margin-top:4px;display:block}.hint-card.done{border-color:var(--good);background:color-mix(in srgb, var(--good) 12%, var(--paper));box-shadow:0 3px 0 color-mix(in srgb, var(--good) 45%, transparent);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px}.hint-card.done b{color:var(--good);font-size:15px;display:block}.hint-card.done span:not(.done-badge){color:var(--fg);margin-top:2px;font-size:12.5px;line-height:1.35;display:block}.done-badge{background:var(--good);width:44px;height:44px;color:var(--paper);box-shadow:0 3px 0 color-mix(in srgb, var(--good) 55%, #000);border-radius:50%;place-items:center;animation:.35s cubic-bezier(.3,1.6,.5,1) pop;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.3)}}@media (prefers-reduced-motion:reduce){.done-badge{animation:none}}.done-card{border-radius:var(--r-md);background:color-mix(in srgb, var(--good) 10%, var(--paper));color:var(--good);padding:14px;font-weight:600}.page{gap:20px;display:grid}.page-head{gap:8px;display:grid}.eyebrow{font:12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.lead{color:var(--muted);max-width:64ch}.grid{gap:14px;display:grid}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}.card{align-content:start;gap:10px;min-width:0;padding:20px;display:grid}.nota{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px;display:grid}.nota div{border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);padding:12px}.nota b{font:600 22px var(--f-mono);color:var(--accent);display:block}.nota span{color:var(--muted);font-size:13px}.algrow{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 0;display:flex}.algrow:first-child{border-top:0}.algrow .k{min-width:170px;font-size:14px;font-weight:600}.algrow code{background:var(--well);word-break:break-word;border-radius:6px;padding:4px 8px;font-size:13px}.algrow .note{width:100%;color:var(--muted);font-size:12.5px}.tryb{font:600 12px var(--f-body);color:var(--accent);background:var(--paper);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);cursor:pointer;border-radius:999px;margin-left:auto;padding:3px 12px}.tryb:hover{background:var(--accent-soft)}.kpi{gap:2px;padding:16px;display:grid}.kpi b{font:600 26px var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.kpi span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.tbl-wrap{border-radius:var(--r-md);border:1px solid var(--line);overflow-x:auto}table{border-collapse:collapse;background:var(--paper);width:100%;min-width:620px;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 14px}th{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);background:var(--well);font-size:11px;font-weight:600}tr:last-child td{border-bottom:0}td.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}td.scr-cell{font:12px var(--f-mono);color:var(--muted)}.chart{width:100%;height:180px;display:block}.replay-bar{border-top:1px solid var(--line);background:var(--side);gap:8px;padding:10px 14px;display:grid}.replay-row{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.replay-row input[type=range]{min-width:120px;accent-color:var(--accent);flex:1}.replay-play{justify-content:center;min-width:44px}.replay-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.replay-turn{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.replay-turn code{font:600 15px var(--f-mono);color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:1px 8px}.replay-keys{margin:0;font-size:11.5px}.replay-bar .spacer{flex:1}.drill-kinds{grid-template-columns:1fr 1fr;display:grid}.drill-stats{grid-template-columns:repeat(auto-fit,minmax(68px,1fr));margin-top:6px}.drill-stats .stat span{white-space:nowrap}.seg.wrap{flex-wrap:wrap}.recog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.recog-grid.ocll{grid-template-columns:repeat(2,minmax(0,1fr))}.recog-grid .btn{justify-content:center;padding:8px 4px}.recog-grid .btn.right{background:color-mix(in srgb, var(--good) 14%, var(--paper));border-color:var(--good);color:var(--good);opacity:1}.recog-grid .btn.wrong{background:color-mix(in srgb, var(--bad) 10%, var(--paper));border-color:var(--bad);color:var(--bad);opacity:1}.drill-result{border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--paper);gap:6px;padding:12px;font-size:13px;display:grid}.drill-result.ok b{color:var(--good)}.drill-result.bad b{color:var(--bad)}.drill-result code{word-break:break-word;font-size:14px;font-weight:600}.drill-result .tryb{justify-self:start;margin-left:0}.hidden-alg{filter:blur(6px);-webkit-user-select:none;user-select:none}.stages{gap:12px;display:grid}.stages-lead{margin:0;font-weight:600}.stage-legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:12.5px;display:flex}.stage-legend i,.stage-table .key{vertical-align:0;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.stage-bars{gap:6px;display:grid}.stage-row{grid-template-columns:40px minmax(0,1fr) 52px;align-items:center;gap:10px;display:grid}.stage-row .no,.stage-row .total{color:var(--muted);font-size:12px}.stage-row .total{text-align:right;color:var(--fg)}.stage-row .track{min-width:0}.stage-row .bar{gap:2px;min-width:8px;height:14px;display:flex}.stage-row .bar i{min-width:2px;height:100%;display:block}.stage-row .bar i:last-child{border-radius:0 4px 4px 0}.stage-row .bar i.on{filter:brightness(1.12);outline:2px solid var(--fg);outline-offset:1px}.stage-readout{min-height:1.4em;color:var(--fg);margin:0;font-size:12.5px}.stage-table td:first-child{white-space:nowrap;font-weight:600}.stages-note{margin:0;font-size:12px}.tps{gap:10px;display:grid}.tps-plot{min-width:0;position:relative}.tps-plot svg{outline-offset:4px;touch-action:pan-y;display:block}.tps-plot .tick{font:11px var(--f-mono);fill:var(--dim)}.tps-plot .stage{font:600 10.5px var(--f-mono);fill:var(--muted)}.tps-plot .pause{fill:var(--warn);fill-opacity:.12}.tps-plot .pause-label{font:600 11px var(--f-mono);fill:var(--fg)}.tps-tip{border-radius:var(--r-sm);background:var(--paper);border:1px solid var(--line-2);box-shadow:var(--shadow);color:var(--muted);pointer-events:none;white-space:nowrap;gap:1px;padding:6px 10px;font-size:12px;display:grid;position:absolute;top:0;transform:translate(-50%)}.tps-tip b{font:600 14px var(--f-mono);color:var(--fg)}.tps-tip .warn{color:var(--fg)}.tps-sum{color:var(--muted);flex-wrap:wrap;gap:6px 20px;font-size:13px;display:flex}.tps-sum b{font:600 15px var(--f-mono);color:var(--fg)}.tps-sum .swatch{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:6px;display:inline-block}.swatch.pause{background:color-mix(in srgb, var(--warn) 22%, transparent);border:1px solid color-mix(in srgb, var(--warn) 55%, transparent)}.tps-note{margin:0;font-size:12px}tr.sel td{background:var(--accent-soft)}.empty-state{text-align:center;color:var(--muted);padding:32px}.mine-note{margin:0;font-size:12.5px}.mine-hold{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--fg);margin-top:6px;padding:8px 10px;font-size:13px;line-height:1.5}.mine-warn{border-radius:var(--r-sm);color:var(--fg);background:color-mix(in srgb, var(--warn) 9%, var(--paper));border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);margin:0;padding:8px 10px;font-size:12.5px}.mine-row{flex-wrap:wrap;gap:8px;display:flex}.mine-row .btn{flex:1;justify-content:center}.mine-faces{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.mine-faces button{border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--paper);font:600 12px var(--f-mono);color:var(--muted);cursor:pointer;justify-items:center;gap:2px;padding:6px 0 4px;display:grid;position:relative}.mine-faces button:hover{background:var(--hover)}.mine-faces button.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mine-faces i{border-radius:4px;width:16px;height:16px;box-shadow:inset 0 0 0 1px #14213d2e}.mine-faces small{color:var(--good);font-size:10px;position:absolute;top:1px;right:4px}.mine-editor{grid-template-rows:16px auto 16px;grid-template-columns:16px minmax(0,1fr) 16px;justify-self:center;gap:5px;width:min(100%,280px);display:grid}.mine-bar{font:700 10px/1 var(--f-mono);color:#fff;text-shadow:0 0 2px #000000bf,0 0 1px #000;border-radius:5px;place-items:center;font-style:normal;display:grid;box-shadow:inset 0 0 0 1px #14213d2e}.mine-bars-note{text-align:center}.mine-bar.b-up{grid-area:1/2}.mine-bar.b-down{grid-area:3/2}.mine-bar.b-left{grid-area:2/1}.mine-bar.b-right{grid-area:2/3}.mine-grid{background:#14161c;border-radius:10px;grid-area:2/2;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px;display:grid}.mine-cell,.mine-net button,.mine-palette button{-webkit-tap-highlight-color:transparent}.mine-cell{aspect-ratio:1;cursor:pointer;font:700 14px var(--f-mono);color:#14213d99;border:0;border-radius:7px;place-items:center;transition:transform 80ms;display:grid;position:relative}.mine-cell:active{transform:scale(.94)}.mine-cell.empty,.mine-net button.empty{background:repeating-linear-gradient(135deg, var(--empty-a) 0 6px, var(--empty-b) 6px 12px)}.mine-cell.bad,.mine-net button.bad{z-index:1;box-shadow:inset 0 0 0 2px var(--paper), 0 0 0 3px var(--bad)}.mine-palette{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:8px 0 6px;display:grid}.mine-palette button{border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--paper);cursor:pointer;color:var(--muted);justify-items:center;gap:3px;padding:6px 0;font-size:11.5px;display:grid}.mine-palette button:hover{background:var(--hover)}.mine-palette button.on{border-color:var(--fg);box-shadow:0 0 0 2px var(--fg);color:var(--fg)}.mine-palette i{width:30px;height:30px;font:700 12px var(--f-mono);color:#14213dbf;border-radius:7px;place-items:center;font-style:normal;display:grid;box-shadow:inset 0 0 0 1px #14213d33}.mine-palette .full span{color:var(--good);font-weight:600}.mine-palette .over span{color:var(--bad);font-weight:700}.mine-net{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.mine-netface{background:#14161c;border-radius:4px;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;transition:transform .15s ease-out,box-shadow .15s ease-out;display:grid;position:relative}.mine-netface.cur{z-index:2;transform:translateY(-3px)scale(1.08);box-shadow:0 9px 14px -5px #14213d8c,0 2px 3px #14213d4d}@media (prefers-reduced-motion:reduce){.mine-netface{transition:none}}.mine-net button{aspect-ratio:1;cursor:pointer;font:700 9px var(--f-mono);color:#14213d99;border:0;border-radius:3px;padding:0;position:relative}.mine-check{border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line-2);gap:6px;padding:10px 12px;font-size:13px;display:grid}.mine-check.ok{color:var(--good);border-color:color-mix(in srgb, var(--good) 40%, transparent);background:color-mix(in srgb, var(--good) 8%, var(--paper));font-weight:600}.mine-check.bad{border-color:color-mix(in srgb, var(--bad) 40%, transparent);background:color-mix(in srgb, var(--bad) 6%, var(--paper))}.mine-check.bad b{color:var(--bad)}.mine-check p{color:var(--muted);font-size:12.5px}.mine-solve{gap:10px;display:grid}.mine-solve .btn{justify-content:center}.solve-opt{border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line-2);box-shadow:0 3px 0 var(--line-2);gap:10px;padding:12px;transition:opacity .15s;display:grid}.solve-opt.main{border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 3px 0 color-mix(in srgb, var(--accent) 22%, var(--line-2))}.solve-opt.off{opacity:.6}.solve-opt p{margin:0;font-size:12.5px;line-height:1.45}.solve-opt-head{align-items:center;gap:8px;display:flex}.solve-opt-head b{flex:1;min-width:0;font-size:14px;line-height:1.25}.solve-opt-ic{border-radius:var(--r-sm);background:var(--accent-soft);width:30px;height:30px;color:var(--accent);flex:none;place-items:center;display:grid}.solve-chip{background:var(--well);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:600}.solve-opt .seg{grid-template-columns:1fr 1fr;display:grid}.solve-opt .seg button{text-align:center;padding:7px 10px}.mine-plan{gap:12px;max-height:560px;padding:2px;display:grid;position:relative;overflow-y:auto}@media (width<=1040px){.mine-plan{max-height:420px}}.mine-group{gap:4px;display:grid}.mine-lesson{font-size:12.5px;font-weight:700}.mine-chunk{text-align:left;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);cursor:pointer;gap:2px;width:100%;padding:7px 9px;display:grid}.mine-chunk:hover{border-color:var(--line-2);background:var(--hover)}.mine-chunk .goal{color:var(--muted);font-size:12px}.mine-chunk code{word-break:break-word;font-size:12.5px}.mine-chunk.done{opacity:.6}.mine-chunk.cur{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mine-chunk.cur .goal{color:var(--fg);font-weight:600}.mine-chunk .past{color:var(--dim)}.mine-chunk .now{color:var(--accent-ink);background:var(--accent);border-radius:4px;padding:0 3px}.gloss{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:8px 20px;margin:0;display:grid}.gloss div{border-top:1px solid var(--line);grid-template-columns:110px minmax(0,1fr);gap:10px;padding:8px 0;display:grid}.gloss dt{font:600 14px var(--f-mono);color:var(--accent)}.gloss dd{color:var(--muted);margin:0;font-size:13.5px}.welcome-backdrop{z-index:30;background:var(--backdrop);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.welcome{background:var(--paper);gap:18px;width:min(640px,100%);padding:24px;display:grid}.welcome h2{font-size:clamp(22px,3vw,28px)}.welcome-paths{gap:10px;display:grid}.welcome-path{text-align:left;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--side);cursor:pointer;gap:2px;padding:14px 16px;display:grid}.welcome-path:hover{border-color:var(--accent);background:var(--accent-soft)}.welcome-path b{font-size:16px}.welcome-path span{color:var(--muted);font-size:13.5px}.welcome-path:first-child{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.welcome-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.case{aspect-ratio:1;background:#14161c;border-radius:6px;flex-shrink:0;grid-template-rows:5px repeat(3,1fr) 5px;grid-template-columns:5px repeat(3,1fr) 5px;gap:2px;width:58px;padding:3px;display:inline-grid}.case i{border-radius:1.5px;min-width:0;min-height:0}.case-btn{cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0;line-height:0}.case-btn:hover .case{box-shadow:0 0 0 2px var(--accent)}.algchip .with-case,.algrow .with-case{align-items:center;gap:10px;min-width:0;display:flex}.spot{gap:6px;display:grid}.spot p{margin:0;font-size:12.5px}.btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.step-stats{margin:0;font-size:12.5px}.steps-list .needs{color:var(--warn);grid-column:2;margin-top:-4px;font-size:11px;font-weight:600}.pad-toggle{display:none}.pad-body{display:contents}@media (width<=640px){.pad-toggle{color:var(--muted);align-items:center;gap:10px;font-size:12.5px;display:flex}.pad-body.closed{display:contents}.pad-body.closed>:not(.extras.rot){display:none}.canvas-wrap{height:min(80vw,460px)}}.btn{box-shadow:0 2px 0 var(--line-2);transition:transform 60ms,box-shadow 60ms,background .15s}.btn:active:not(:disabled){box-shadow:0 0 0 var(--line-2);transform:translateY(2px)}.btn.primary{box-shadow:0 3px 0 var(--ledge)}.btn.primary:active:not(:disabled){box-shadow:0 0 0 var(--ledge);transform:translateY(3px)}.btn:disabled{box-shadow:none}.mine-palette button:active,.mine-faces button:active,.welcome-path:active{transform:translateY(2px)}.pips{background:#14161c;border-radius:3px;grid-template-columns:repeat(3,6px);grid-auto-rows:6px;gap:1.5px;padding:2px;display:grid}.pips b{background:#3a3f4b;border-radius:1px}.mine-palette .full .pips{box-shadow:0 0 0 2px var(--good)}.mine-palette .over .pips{box-shadow:0 0 0 2px var(--bad)}.mine-palette .over-n{color:var(--bad);font-size:10.5px;font-weight:700}.mine-check .meter i{background:var(--accent)}.confetti{pointer-events:none;z-index:4;width:0;height:0;position:absolute;top:45%;left:50%}.confetti i{width:8px;height:11px;animation:confetti var(--d) cubic-bezier(.15, .7, .4, 1) forwards;border-radius:2px;position:absolute;box-shadow:inset 0 0 0 1px #14213d26}@keyframes confetti{0%{opacity:1;transform:translate(0)rotate(0)}70%{opacity:1}to{transform:translate(var(--dx), calc(var(--dy) + 140px)) rotate(var(--r));opacity:0}}@media (width>=1041px){.game{grid-template-rows:minmax(0,1fr);height:max(600px,100dvh - 103px)}.game .side{overscroll-behavior:contain;scrollbar-width:thin;position:relative;overflow-y:auto}.stage{scrollbar-width:thin;grid-template-rows:minmax(260px,1fr) auto;min-height:0;overflow-y:auto}.stage.with-status{grid-template-rows:minmax(260px,1fr) auto auto}.stage .canvas-wrap{min-height:260px}}.canvas-wrap{overflow:hidden}@media (width>=1041px) and (height<=860px){.stage .coach{--coach-h:150px;grid-template-rows:auto 38px 56px;gap:6px;padding-block:8px}.coach-plan,.statusbar,.pad-legend,.extras.rot .label{display:none}.pad{gap:6px;padding:8px 14px 10px}.mv{padding:4px}.extras.rot .mv{padding:3px 6px}.speed-label .btn-text{display:none}.net-overlay{transform-origin:0 0;transform:scale(.62)}.stage-top{top:8px}}.net-inline{position:relative}.netmap.size-sm .netface{grid-template-columns:repeat(3,8px);grid-auto-rows:8px}.netmap.size-sm .netface i{font-size:6px}.netmap.size-lg .netface{grid-template-columns:repeat(3,15px);grid-auto-rows:15px}.netmap.size-lg .netface i{font-size:10px}.netmap-min{border:1px solid var(--line-2);background:var(--paper);width:20px;height:20px;color:var(--muted);cursor:pointer;z-index:3;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:4px;right:4px}.netmap-min:hover{color:var(--fg);background:var(--hover)}.netmap-chip{z-index:2;border:1px solid var(--line-2);background:var(--paper);font:600 12px var(--f-body);color:var(--muted);cursor:pointer;box-shadow:0 2px 0 var(--line-2);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;display:inline-flex}.netmap-chip:hover{color:var(--fg)}.net-inline.netmap-chip{justify-self:center;display:none}@media (width<=640px){.net-inline.netmap-chip{display:inline-flex}.net-overlay.netmap-chip{display:none}}.icon-btn.icon-only{place-items:center;padding:4px 7px;display:inline-grid}.size-row{grid-template-columns:1fr auto;align-items:center;gap:4px 10px;font-size:13.5px;display:grid}.size-row input[type=range]{accent-color:var(--accent);grid-column:1;width:100%}.size-row b{color:var(--muted);grid-area:2/2;font-size:12px}.size-row span:first-child{grid-column:1/-1}.qa-groups button small{font:600 10px var(--f-mono);opacity:.6;margin-left:2px}.qa-list{gap:8px;display:grid}.qa-card{text-align:left;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--paper);cursor:pointer;width:100%;box-shadow:0 3px 0 var(--line-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;transition:transform 60ms,box-shadow 60ms,border-color .15s,background .15s;display:grid;position:relative}.qa-card:hover:not(:disabled){border-color:var(--accent)}.qa-card:active:not(:disabled){box-shadow:0 0 0 var(--line-2);transform:translateY(3px)}.qa-card:disabled{opacity:.55;cursor:not-allowed}.qa-card.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--paper));box-shadow:0 3px 0 color-mix(in srgb, var(--accent) 45%, transparent), 0 0 0 3px var(--accent-soft)}.qa-card .case{width:46px}.qa-count{aspect-ratio:1;text-align:center;background:var(--well);width:46px;color:var(--muted);border-radius:8px;place-content:center;font-size:9.5px;line-height:1.1;display:grid}.qa-count b{font:700 18px var(--f-mono);color:var(--fg)}.qa-body{gap:5px;min-width:0;display:grid}.qa-name{font-size:13px;font-weight:700;line-height:1.25}.qa-keys{flex-wrap:wrap;gap:3px;display:flex}.qa-keys kbd{font:600 10.5px/1 var(--f-mono);text-align:center;border:1px solid var(--line-2);background:var(--side);min-width:18px;color:var(--fg);border-bottom-width:2px;border-radius:4px;padding:3px 4px 2px}.qa-play{background:var(--accent);width:32px;height:32px;color:var(--accent-ink);box-shadow:0 2px 0 var(--ledge);border-radius:50%;place-items:center;padding-left:2px;display:grid}.qa-card.on .qa-play{padding-left:0}.eq{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.eq i{background:currentColor;border-radius:1px;width:3px;height:100%;animation:.7s ease-in-out infinite eq}.eq i:nth-child(2){animation-delay:-.25s}.eq i:nth-child(3){animation-delay:-.5s}@keyframes eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.eq i{transform-origin:bottom}@media (prefers-reduced-motion:reduce){.eq i{animation:none;transform:scaleY(.7)}}.kbd.on-primary{color:inherit;border-color:color-mix(in srgb, currentColor 50%, transparent);background:0 0}.theme-row .seg button{flex:1}.mission{gap:14px}.mission-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{font:700 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--fg);color:var(--paper);border-radius:999px;padding:4px 9px}.chip.soft{background:var(--well);color:var(--muted)}.lesson-dots{gap:5px;margin-left:auto;display:flex}.lesson-dots button{border:2px solid var(--line-2);cursor:pointer;background:0 0;border-radius:50%;width:12px;height:12px;padding:0}.lesson-dots button.done{background:var(--good);border-color:var(--good)}.lesson-dots button.cur{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);transform:scale(1.15)}.callout{border-radius:var(--r-sm);background:var(--accent-soft);color:var(--fg);padding:9px 12px;font-size:13px}.callout.good{background:color-mix(in srgb, var(--good) 14%, var(--paper));color:var(--good);font-weight:600}.callout.accent{border-left:3px solid var(--accent)}.goal-box{text-align:center;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line-2);box-shadow:0 3px 0 var(--line-2);justify-items:center;gap:8px;padding:12px;display:grid}.goal-net{grid-template-columns:repeat(4,auto);gap:3px;padding:4px 0;display:grid}.goal-net .netface{grid-template-columns:repeat(3,12px);grid-auto-rows:12px;gap:1.5px;padding:2px}.goal-net .netface i{border-radius:1px;font-size:0}.goal-net .netface i.off{background:#3a3f4b}.goal-text{gap:6px;min-width:0;display:grid}.goal-text p{color:var(--fg);margin:0;font-size:13px;line-height:1.5}.hold-chip{background:var(--accent-soft);color:var(--fg);border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.goal-key{color:var(--muted);margin-top:-4px;font-size:11.5px}.goal-box p{color:var(--fg);text-align:left;margin:0;font-size:13.5px;line-height:1.5}.badges{flex-wrap:wrap;gap:6px;display:flex}.badge{background:var(--well);color:var(--muted);border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600}.badge.good{background:color-mix(in srgb, var(--good) 14%, var(--paper));color:var(--good)}.no-alg{font-size:13px}.how{counter-reset:how;gap:8px;margin:0;padding:0;list-style:none;display:grid}.how li{counter-increment:how;color:var(--fg);padding-left:30px;font-size:13.5px;line-height:1.5;position:relative}.how li:before{content:counter(how);background:var(--accent-soft);width:21px;height:21px;color:var(--accent);font:700 12px var(--f-body);border-radius:50%;place-items:center;display:grid;position:absolute;top:1px;left:0}.tips{border-radius:var(--r-md);border:1px dashed var(--line-2);padding:8px 12px}.tips summary{cursor:pointer;font-size:13px;font-weight:600}.tips p{color:var(--muted);margin-top:8px;font-size:13px}.trophy{text-align:center;border-radius:var(--r-lg);background:color-mix(in srgb, var(--good) 10%, var(--paper));border:1px solid color-mix(in srgb, var(--good) 35%, transparent);justify-items:center;gap:10px;padding:22px 14px;display:grid}.trophy-icon{font-size:44px;line-height:1}.trophy b{color:var(--good)}.ic{vertical-align:-.15em;flex-shrink:0}.with-ic{align-items:center;gap:6px;display:inline-flex}.label.with-ic{gap:5px}.icon-btn,.tryb{align-items:center;gap:5px;display:inline-flex}.btn .ic{margin:0 -2px}.hold-chip{align-items:center;gap:6px;display:inline-flex}.badge{align-items:center;gap:5px;display:inline-flex}.tips summary{align-items:center;gap:6px;list-style:none;display:flex}.tips summary::-webkit-details-marker{display:none}.tips summary:after{content:"";opacity:.6;border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.tips[open] summary:after{transform:rotate(-135deg)}.trophy-icon{background:color-mix(in srgb, var(--warn) 16%, var(--paper));width:72px;height:72px;color:var(--warn);border-radius:50%;place-items:center;display:grid}.steps-list .num .ic,.mine-faces small .ic{vertical-align:0}.mine-chunk .goal.with-ic{gap:4px}.mine-check.ok.with-ic{display:flex}.replay-play .ic{margin:0}.ref-tabs button{align-items:center;gap:6px;padding:6px 14px;font-size:13px;display:inline-flex}.algs-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.algs-tabs{flex-wrap:wrap;gap:6px;display:flex}.algs-tabs button{border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--paper);font:700 13.5px var(--f-body);color:var(--muted);cursor:pointer;box-shadow:0 3px 0 var(--line-2);align-items:center;gap:8px;padding:8px 14px;transition:transform 60ms,box-shadow 60ms;display:inline-flex}.algs-tabs button:active{box-shadow:0 0 0 var(--line-2);transform:translateY(3px)}.algs-tabs button small{font:700 11px var(--f-mono);background:var(--well);color:var(--muted);border-radius:999px;padding:2px 7px}.algs-tabs button.on{background:var(--fg);border-color:var(--fg);color:var(--paper);box-shadow:0 3px 0 color-mix(in srgb, var(--fg) 60%, transparent)}.algs-tabs button.on small{background:color-mix(in srgb, var(--paper) 22%, transparent);color:var(--paper)}.algs-progress{min-width:200px;color:var(--warn);gap:6px;font-size:13px;font-weight:600;display:grid}.algs-progress .meter i{background:var(--warn)}.algs-group-lead{margin-top:-8px;font-size:13.5px}.alg-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:12px;display:grid}.alg-tile{border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--paper);box-shadow:0 4px 0 var(--line-2);grid-template-rows:1fr auto;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;padding:14px;transition:border-color .15s,box-shadow .15s;display:grid}.alg-tile.known{border-color:color-mix(in srgb, var(--warn) 55%, transparent);box-shadow:0 4px 0 color-mix(in srgb, var(--warn) 35%, transparent)}.alg-tile.on{border-color:var(--accent);box-shadow:0 4px 0 color-mix(in srgb, var(--accent) 45%, transparent), 0 0 0 3px var(--accent-soft)}.alg-tile-pic{grid-row:1/3;align-self:start}.alg-tile-pic .case,.alg-tile-pic .qa-count{width:76px}.alg-tile-pic .qa-count b{font-size:24px}.alg-tile-body{align-content:start;gap:7px;min-width:0;display:grid}.alg-tile-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.alg-tile-head b{font-size:15px;line-height:1.3}.alg-tile-body p{margin:0;font-size:12.5px;line-height:1.45}.alg-tile .qa-keys kbd{min-width:22px;padding:4px 5px 3px;font-size:12px}.star{border:1px solid var(--line-2);background:var(--side);width:32px;height:32px;color:var(--dim);cursor:pointer;border-radius:50%;flex-shrink:0;place-items:center;padding:0;transition:transform .1s,color .15s;display:grid}.star:hover{color:var(--warn)}.star:active{transform:scale(.88)}.star.on{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 50%, transparent);background:color-mix(in srgb, var(--warn) 12%, var(--paper))}.alg-tile-play{background:var(--accent);color:var(--accent-ink);font:700 12.5px var(--f-body);cursor:pointer;box-shadow:0 3px 0 var(--ledge);border:0;border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:7px 14px;transition:transform 60ms,box-shadow 60ms;display:inline-flex}.alg-tile-play:active{box-shadow:0 0 0 var(--ledge);transform:translateY(3px)}@media (width<=480px){.alg-tile-pic .case,.alg-tile-pic .qa-count{width:60px}}.player-backdrop{z-index:40}.player{background:var(--paper);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;width:min(860px,100%);padding:20px;display:grid;position:relative}.player-cube{aspect-ratio:1;border-radius:var(--r-md);background:radial-gradient(ellipse at 50% 42%, var(--stage-in) 0%, var(--stage-out) 78%);cursor:grab;min-height:280px;position:relative;overflow:hidden}.player-cube canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.player-side{align-content:start;gap:14px;min-width:0;display:grid}.player-head{align-items:center;gap:12px;padding-right:36px;display:flex}.player-head .case{width:56px}.player-head h3{font-size:22px}.player-close{border:1px solid var(--line-2);background:var(--side);width:36px;height:36px;color:var(--muted);cursor:pointer;z-index:2;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:12px;right:12px}.player-close:hover{color:var(--fg)}.player-moves{flex-wrap:wrap;gap:5px;display:flex}.player-moves kbd{font:700 14px/1 var(--f-mono);text-align:center;border:1px solid var(--line-2);background:var(--side);min-width:32px;color:var(--fg);border-bottom-width:3px;border-radius:7px;padding:7px 8px 6px;transition:background .15s,color .15s,transform .15s}.player-moves kbd.past{color:var(--dim);background:0 0}.player-moves kbd.now{background:var(--accent);border-color:var(--ledge);color:var(--accent-ink);transform:translateY(-2px)}.player-now{border-radius:var(--r-md);background:var(--accent-soft);flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:14px;display:flex}.player-now b{font:700 20px var(--f-mono);color:var(--accent)}.player-now.done{background:color-mix(in srgb, var(--good) 14%, var(--paper));color:var(--good);font-weight:600}.player-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pc{border:1px solid var(--line-2);background:var(--paper);width:42px;height:42px;color:var(--fg);cursor:pointer;box-shadow:0 3px 0 var(--line-2);border-radius:50%;place-items:center;padding:0;transition:transform 60ms,box-shadow 60ms;display:grid}.pc:active:not(:disabled){box-shadow:0 0 0 var(--line-2);transform:translateY(3px)}.pc:disabled{opacity:.4;cursor:not-allowed}.pc.main{background:var(--accent);border-color:var(--accent);width:54px;height:54px;color:var(--accent-ink);box-shadow:0 4px 0 var(--ledge)}.pc.main:active{box-shadow:0 0 0 var(--ledge)}.player-speed{margin-left:auto}.player-note,.player-keys{margin:0;font-size:12.5px}.player-side>.btn{justify-self:start}@media (width<=720px){.player-backdrop{align-items:end;padding:0}.player{border-radius:var(--r-lg) var(--r-lg) 0 0;grid-template-columns:minmax(0,1fr);gap:14px;max-height:100dvh;padding:14px;overflow-y:auto}.player-cube{aspect-ratio:auto;height:min(62vw,300px);min-height:0}.player-head{padding-right:40px}}.speed-pick{background:var(--well);border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;margin-left:auto;padding:3px;display:inline-flex}.speed-label{color:var(--muted);align-items:center;gap:5px;padding:0 8px 0 6px;font-size:12px;font-weight:600;display:inline-flex}.speed-pick button{font:600 12px var(--f-body);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;transition:background .15s,color .15s;display:inline-flex}.speed-pick button:hover{color:var(--fg)}.speed-pick button.on{background:var(--paper);color:var(--accent);box-shadow:0 2px 0 var(--line-2)}.speed-pick .bars{align-items:flex-end;gap:1.5px;height:11px;display:inline-flex}.speed-pick .bars i{background:var(--line-2);border-radius:1px;width:3px}.speed-pick .bars i:first-child{height:4px}.speed-pick .bars i:nth-child(2){height:6px}.speed-pick .bars i:nth-child(3){height:9px}.speed-pick .bars i:nth-child(4){height:11px}.speed-pick .bars i.f{background:currentColor}@media (width<=760px){.speed-pick{width:100%;margin-left:0}.speed-pick button{flex:1;justify-content:center;padding:6px 4px}.speed-pick .name{font-size:11px}}@media (width<=400px){.speed-pick .bars{display:none}}.lookup-btn{border:1px solid var(--line-2);background:var(--paper);color:var(--muted);font:600 12.5px var(--f-body);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;padding:5px 8px 5px 12px;display:inline-flex}.lookup-btn:hover{color:var(--fg);border-color:var(--accent)}.lookup-btn .kbd{font-size:10.5px}@media (width<=640px){.lookup-btn{padding:6px 9px}}.lookup-backdrop{z-index:45;align-items:start;padding-top:min(12vh,90px)}.lookup{background:var(--paper);grid-template-rows:auto minmax(0,1fr) auto;width:min(640px,100%);max-height:min(72vh,620px);padding:0;display:grid;overflow:hidden}.lookup-search{border-bottom:1px solid var(--line-2);color:var(--muted);align-items:center;gap:10px;padding:14px 16px;display:flex}.lookup-search input{min-width:0;font:500 17px var(--f-body);color:var(--fg);background:0 0;border:0;outline:0;flex:1}.lookup-search input::placeholder{color:var(--dim)}.lookup-list{align-content:start;gap:2px;margin:0;padding:6px;list-style:none;display:grid;overflow-y:auto}.lookup-list li{border-radius:var(--r-sm);cursor:default;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.lookup-list li.sel{background:var(--accent-soft)}.lookup-list .case{justify-self:center;width:44px}.lookup-key{text-align:center;max-width:56px;font:700 15px var(--f-mono);color:var(--accent);overflow-wrap:anywhere;justify-self:center;line-height:1.15}.lookup-key.term{color:var(--fg);font-size:12px}.lookup-body{gap:2px;min-width:0;display:grid}.lookup-head{align-items:center;gap:8px;display:flex}.lookup-head b{font-size:14px}.lookup-kind{font:700 10px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.lookup-text{color:var(--muted);font-size:13px;line-height:1.45}.lookup-list .tryb{margin-left:0}.lookup-empty{text-align:center;color:var(--muted);padding:18px;font-size:13.5px;display:block!important}.lookup-foot{border-top:1px solid var(--line);color:var(--dim);padding:8px 16px;font-size:11.5px}@media (width<=640px){.lookup-backdrop{padding:10px}.lookup{max-height:calc(100dvh - 20px)}.lookup-list li{grid-template-columns:46px minmax(0,1fr)}.lookup-list .tryb{grid-column:2;justify-self:start}}.mine-palette button{position:relative}.mine-palette button.full:not(.on){opacity:.62}.mine-palette .done-tick{background:var(--good);width:18px;height:18px;color:var(--paper);box-shadow:0 0 0 2px var(--side);border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px}.mine-palette .done-tick .ic{vertical-align:0}.mine-warn-full{border-radius:var(--r-sm);color:var(--bad);background:color-mix(in srgb, var(--bad) 9%, var(--paper));border:1px solid color-mix(in srgb, var(--bad) 30%, transparent);margin:0;padding:8px 10px;font-size:12.5px;font-weight:600}.swap-tool{border:1px dashed var(--line-2);background:var(--paper);font:600 12.5px var(--f-body);color:var(--muted);cursor:pointer;border-radius:999px;justify-self:start;align-items:center;gap:7px;margin-bottom:6px;padding:6px 12px;display:inline-flex}.swap-tool:hover{color:var(--fg);border-color:var(--accent)}.swap-tool.on{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.mine-cell.picked,.mine-net button.picked{z-index:2;box-shadow:inset 0 0 0 3px var(--paper), 0 0 0 3px var(--accent);transform:scale(.92)}.mine-cell.spot,.mine-net button.spot{z-index:2;animation:.9s ease-in-out infinite spot}@keyframes spot{0%,to{box-shadow:0 0 0 2px var(--accent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 45%, transparent)}}@media (prefers-reduced-motion:reduce){.mine-cell.spot,.mine-net button.spot{box-shadow:0 0 0 3px var(--accent);animation:none}}.quick-fix{border-radius:var(--r-md);background:var(--paper);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);gap:8px;padding:12px;display:grid}.quick-fix>b{color:var(--accent);font-size:13.5px}.quick-fix ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.quick-fix li{border-radius:var(--r-sm);background:var(--side);border:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.quick-fix li:hover{border-color:var(--accent)}.fix-what{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;font-size:12.5px;display:flex}.fix-kind{font-weight:700}.fix-cell{gap:4px}.fix-arrow{color:var(--dim);font-weight:700}.fix-sw{border-radius:3px;flex-shrink:0;width:14px;height:14px;box-shadow:inset 0 0 0 1px #14213d40}.fix-suspect{flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:12.5px;font-weight:600;display:flex}.quick-fix p.muted{margin:0;font-size:12px}.mine-tools-box{gap:8px;display:grid}.mine-tools{border-radius:var(--r-md);background:var(--well);border:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:4px;padding:3px;display:grid}.mine-tools button{font:600 12.5px var(--f-body);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:7px 4px;display:inline-flex}.mine-tools button:hover{color:var(--fg)}.mine-tools button.on{background:var(--paper);color:var(--accent);box-shadow:0 2px 0 var(--line-2)}.mine-palette{margin:2px 0 0}.mine-palette.idle{opacity:.5}.mini-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:-4px;font-size:12.5px;font-weight:600;display:flex}.mini-status.ok{color:var(--good)}.mini-status.bad b{color:var(--bad)}.mini-meter{background:var(--well);border-radius:3px;flex:0 0 70px;height:6px;overflow:hidden}.mini-meter i{background:var(--accent);height:100%;display:block}.mini-tip{margin-left:auto;font-size:11.5px;font-weight:500}@media (hover:none){.mini-tip{display:none}}.follow-card{align-content:start;min-height:172px}.follow-card .mine-note{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.9em;display:-webkit-box;overflow:hidden}.follow-card .goal{min-height:2.6em}.follow-card .hint-next .desc{align-items:center;min-height:2.7em;display:flex}.mine-note.reserve{visibility:hidden}.done-card.follow-card{align-content:center;display:grid}.player-now{align-content:center;height:66px;min-height:0;overflow:hidden}.mine-chunk{cursor:default}.mine-chunk>.goal{text-align:left;width:100%;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;display:flex}.mine-chunk>.goal:hover{color:var(--accent)}.mine-chunk code{flex-wrap:wrap;gap:2px 3px;display:flex}.mv-jump{font:inherit;color:var(--fg);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:1px 3px}.mv-jump:hover{background:var(--accent-soft);color:var(--accent)}.mv-jump.past{color:var(--dim)}.mv-jump.now{color:var(--accent-ink);background:var(--accent)}.learn-block{gap:14px;display:grid}.learn-foot{border-top:1px dashed var(--line-2);margin-top:18px;padding-top:14px;display:grid}.btn.sm{padding:6px 12px;font-size:12.5px}.btn.ghost{color:var(--muted);box-shadow:none;background:0 0}.btn.ghost:hover:not(:disabled){background:var(--paper);color:var(--fg)}@media (width>=1041px){.learn-foot{margin-top:auto;position:sticky;bottom:0}}@media (width<=1040px){.learn-left{display:contents}.learn-left~.right{order:2}.learn-block{background:var(--side);border-top:1px solid var(--line);order:3;padding:16px}.learn-foot{background:var(--side);border:0;order:4;margin:0;padding:0 16px 16px}.learn-block .steps-list{scrollbar-width:thin;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.learn-block .steps-list li{flex:none}.learn-block .steps-list button{grid-template-columns:26px auto;gap:8px;width:auto}.learn-block .steps-list button:not(.cur):not(.viewing) .t,.learn-block .steps-list .needs{display:none}.learn-block .steps-list button:not(.cur):not(.viewing){grid-template-columns:26px;padding:8px}}.hint-strip{display:none}@media (width<=1040px){.hint-strip{border-top:1px solid var(--line);background:var(--accent-soft);box-sizing:border-box;align-items:center;gap:10px;min-height:54px;padding:8px 14px;display:flex}.hint-strip .hint-move{background:var(--paper);min-width:44px;padding:4px 10px;font-size:20px}.hint-strip .desc{min-width:0;color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;line-height:1.3;display:-webkit-box;overflow:hidden}.hint-strip .tryb{margin-left:0}}@media (width<=640px){.top .wrap{flex-wrap:wrap;gap:8px 10px;height:auto;padding-block:8px}.tabs{flex:1 0 100%;order:3}}.mission h3{font-size:24px}.mission-head{gap:6px}.lesson-dots{gap:4px;width:100%;margin:0}.lesson-dots button{background:var(--line-2);cursor:pointer;width:auto;height:22px;box-shadow:none;background-clip:content-box;border:0;border-radius:4px;flex:1;padding:8px 0;transform:none}.lesson-dots button.done{background:var(--good);background-clip:content-box}.lesson-dots button.cur{background:var(--accent);box-shadow:none;background-clip:content-box;transform:none}.goal-box{justify-items:stretch;gap:10px;padding:14px 14px 0;overflow:hidden}.goal-box>.label{justify-self:start}.goal-box>.goal-net,.goal-box>.goal-key{text-align:center;justify-self:center}.goal-box p{font-size:14px;line-height:1.55}.hold-bar{background:var(--accent-soft);color:var(--fg);border-top:1px solid var(--line);align-items:center;gap:8px;margin:2px -14px 0;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.hold-bar .ic{color:var(--accent)}.coach{--coach-h:160px;height:var(--coach-h);box-sizing:border-box;border-top:1px solid var(--line);background:var(--side);grid-template-rows:auto 30px 46px 26px;align-content:start;gap:5px;padding:8px 14px;display:grid;overflow:hidden}.coach.idle,.coach.done{justify-content:space-between;align-items:center;gap:14px;display:flex}.coach.idle p{color:var(--muted);max-width:46ch;margin:0;font-size:13px;line-height:1.45}.coach.done>div{flex:1;min-width:0}.coach.done b{color:var(--good);font-size:15px;display:block}.coach.done span:not(.done-badge){color:var(--fg);font-size:12.5px;display:block}.coach-top{align-items:center;gap:8px;min-width:0;display:flex}.coach-goal{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;font-size:14px;line-height:1.3;overflow:hidden}.coach-piece{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;flex:none;padding:2px 9px;font-size:11.5px;font-weight:600}.coach-count{font:600 12px var(--f-mono);color:var(--muted);flex:none;margin-left:auto}.coach-why{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.25;display:-webkit-box;overflow:hidden}.coach-main{grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.coach .hint-move{place-items:center;width:46px;min-width:0;height:46px;padding:0;font-size:23px;display:grid}.coach-say{gap:2px;min-width:0;display:grid}.coach-say .desc{color:var(--fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.35;display:-webkit-box;overflow:hidden}.coach-btns{gap:6px;display:grid}.coach-btns .tryb{white-space:nowrap;justify-content:center;margin:0;padding:6px 12px}.tryb.solid{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.tryb.solid:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}.tryb:disabled{opacity:.5;cursor:not-allowed}.coach-plan{gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.coach-plan li{border-radius:var(--r-sm);border:1px solid var(--line);min-width:0;color:var(--muted);white-space:nowrap;align-items:baseline;gap:6px;padding:3px 9px;font-size:12px;display:flex}.coach-plan li:last-child{flex:1}.coach-plan li b{text-transform:uppercase;letter-spacing:.04em;flex:none;font-size:10.5px}.coach-plan li code{color:var(--fg);text-overflow:ellipsis;overflow:hidden}.coach-plan li.on{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:var(--accent-soft);color:var(--fg)}.coach-plan li.on b{color:var(--accent)}.coach-plan li.past{opacity:.55}@media (width<=1040px){.coach{--coach-h:154px;border-bottom:1px solid var(--line);grid-template-rows:auto 38px 56px}.coach:has(.coach-plan){--coach-h:186px;grid-template-rows:auto 38px 56px 26px}.coach.idle,.coach.done{flex-wrap:wrap;align-content:center}}@media (width<=460px){.coach-count{display:none}.coach-goal{font-size:13.5px}.speed-pick .name{white-space:nowrap;font-size:10.5px}.speed-pick button{padding:6px 2px}.extras.rot{gap:5px}.extras.rot .label{flex:1 0 100%}.extras.rot .mv{flex:1;min-width:0;padding:4px 2px}.coach-main{grid-template-columns:48px minmax(0,1fr) auto;gap:8px}.coach .hint-move{width:48px;height:48px;font-size:24px}.coach-say .desc{-webkit-line-clamp:3;font-size:12.5px}.coach-btns .tryb{padding:5px 9px;font-size:11.5px}}.chip-btn{font:600 12.5px var(--f-body);border:1px solid var(--line-2);background:var(--paper);color:var(--fg);cursor:pointer;border-radius:999px;justify-self:start;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.chip-btn:hover{border-color:var(--accent)}.chip-btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.how-box{border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--paper);padding:8px 12px}.how-box summary{cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:600;list-style:none;display:flex}.how-box summary::-webkit-details-marker{display:none}.how-box summary .count{font:600 11px var(--f-mono);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 7px}.how-box summary:after{content:"";opacity:.6;border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.how-box[open] summary:after{transform:rotate(-135deg)}.how-box .how{margin-top:10px}.lesson-foot{border-top:1px dashed var(--line-2);justify-items:start;gap:6px;margin-top:8px;padding-top:12px;display:grid}.lesson-foot small{font-size:12px;line-height:1.4}.btn.ghost.hot{color:var(--accent);border-color:var(--accent)}@media (width>=1041px){.lesson-dots{display:none}}@media (width<=1040px){.learn-block .steps-list,.learn-block .steps-progress{display:none}}.callout.spot-note{margin:0}@media (width<=1040px){.app:has(:is(.drill-left,.mine-left)) main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.drill-actions,.follow-nav{z-index:15;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--topbar);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);position:fixed;bottom:0;left:0;right:0}}@media (width<=1040px) and (height>=600px){.app:has(:is(.learn-left,.drill-left,.mine-left)) .top{position:static}.game:has(>:is(.learn-left,.drill-left,.mine-left)){--cube-h:clamp(220px, min(72vw, 38vh), 360px);overflow:clip}.game:has(>:is(.learn-left,.drill-left,.mine-left)) .stage{display:contents}.game:has(>:is(.learn-left,.drill-left,.mine-left)) .canvas-wrap{z-index:12;height:var(--cube-h);background:radial-gradient(ellipse at 50% 42%, var(--stage-in) 0%, var(--stage-out) 78%);min-height:0;position:sticky;top:0}.game:has(>:is(.drill-left,.mine-left)) .hint-strip{top:var(--cube-h);z-index:11;box-sizing:border-box;background:linear-gradient(var(--accent-soft), var(--accent-soft)), var(--side);height:54px;min-height:0;position:sticky}.game:has(>:is(.drill-left,.mine-left)) .hint-strip.idle{background:var(--side)}.game:has(>.learn-left) .coach{top:var(--cube-h);z-index:11;position:sticky}}.tabs[data-more=right]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),#0000)}.tabs[data-more=left]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 36px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 36px),#0000)}.tabs[data-more=both]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 36px calc(100% - 36px),#0000);mask-image:linear-gradient(90deg,#0000,#000 36px calc(100% - 36px),#0000)}.drill-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px;display:grid}.drill-card{text-align:left;border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--paper);cursor:pointer;box-shadow:0 4px 0 var(--line-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;transition:transform 60ms,box-shadow 60ms,border-color .15s;display:grid}.drill-card:hover{border-color:var(--accent)}.drill-card:active{box-shadow:0 0 0 var(--line-2);transform:translateY(4px)}.drill-card-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:14px;place-items:center;display:grid}.drill-card-body{gap:4px;min-width:0;display:grid}.drill-card-body>span{color:var(--muted);font-size:13.5px;line-height:1.45}.drill-card-body small{color:var(--accent);font-size:12px;font-weight:600}.drill-card-go{color:var(--muted)}.drill-card:hover .drill-card-go{color:var(--accent)}.drill-back{justify-self:start;align-items:center;gap:6px;display:inline-flex}.drill-intro{gap:6px;display:grid}.drill-intro h3{font-size:22px}.drill-intro p{margin:0;font-size:13.5px;line-height:1.5}.drill-actions{gap:12px;display:grid}.drill-task{border-radius:var(--r-md);background:var(--accent-soft);border-left:4px solid var(--accent);gap:4px;padding:14px;display:grid}.drill-task b{font-size:16px;line-height:1.4}.drill-task.done{background:color-mix(in srgb, var(--good) 12%, var(--paper));border-left-color:var(--good)}@media (width<=1040px){.game .drill-left{order:3}.game .drill-left~.right{order:2}.drill-actions{padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--topbar);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:15;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;bottom:0;left:0;right:0}.drill-actions .label{display:none}.drill-actions .timer{font-size:30px}.drill-clock{min-width:84px}}.recog-grid.pics .btn{flex-direction:column;gap:6px;height:auto;padding:8px 4px 7px}.recog-grid.pics .case{width:50px}.recog-grid.pics.pll{grid-template-columns:repeat(3,minmax(0,1fr))}.recog-grid .btn span{text-align:center;font-size:12.5px;line-height:1.2}.why-case{border-top:1px solid var(--line);gap:6px;padding-top:8px;display:grid}.why-head{align-items:center;gap:10px;display:flex}.why-head .case{width:52px}.why-head b{font-size:14.5px}.why-case p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.drill-result .why-head b{color:var(--fg)}.recog-grid.pics .btn{border-radius:var(--r-md)}.ref-card{gap:14px}.ref-toggle{text-align:left;cursor:pointer;width:100%;color:var(--fg);background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:14.5px;display:flex}.ref-toggle .muted{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;overflow:hidden}.ref-toggle .chev{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:8px;height:8px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.ref-toggle[aria-expanded=true] .chev{transform:rotate(-135deg)}.ref-toggle[aria-expanded=true] .muted{flex:0}.star{border-radius:999px;align-items:center;gap:5px;width:auto;height:30px;padding:0 10px 0 8px;font-size:12px;font-weight:600;display:inline-flex}.back-chip{background:var(--paper);border:1px solid var(--line-2);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600}.alg-tile-actions{flex-wrap:wrap;grid-column:2;align-items:center;gap:8px;display:flex}.alg-tile-drill{border:1px solid var(--line-2);background:var(--paper);color:var(--fg);font:700 12.5px var(--f-body);cursor:pointer;box-shadow:0 3px 0 var(--line-2);border-radius:999px;align-items:center;gap:6px;padding:6px 13px;transition:transform 60ms,box-shadow 60ms;display:inline-flex}.alg-tile-drill:hover{border-color:var(--accent);color:var(--accent)}.alg-tile-drill:active{box-shadow:0 0 0 var(--line-2);transform:translateY(3px)}.pinned{border-radius:var(--r-md);background:var(--accent-soft);justify-items:start;gap:6px;padding:12px;display:grid}.pinned b{font-size:15px}.welcome.leave{gap:12px;width:min(420px,100%)}.welcome.leave h2{font-size:22px}.welcome.leave p{margin:0;font-size:14px;line-height:1.5}.leave-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.mine-faces .mini-face{background:#14161c;border-radius:3px;grid-template-columns:repeat(3,8px);gap:1px;padding:2px;display:grid}.mine-faces .mini-face i{width:8px;height:8px;box-shadow:none;background:#3a3f4b;border-radius:1.5px}.mine-faces .mini-face i.e{background:repeating-linear-gradient(135deg,#4a4f5c 0 2px,#3a3f4b 2px 4px)}@media (width<=1040px){.stage.entering,.follow-card{display:none}.follow-nav{background:var(--topbar);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:15;padding:10px 16px calc(10px + env(safe-area-inset-bottom));bottom:0;left:0;right:0}.follow-nav .btn{flex:1;justify-content:center}.mine-strip .label{font:700 11px var(--f-mono);color:var(--muted);white-space:nowrap}.mine-check .meter{display:none}}@media (width<=640px){.wordy{display:none}}@media (hover:none){.mini-tip{display:none}}@media (width<=1040px){.mine-check.soft{display:none}}.stat-hero{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch;gap:14px;display:grid}.record-card{border-radius:var(--r-lg);color:#fff;background:linear-gradient(135deg,#f2a900,#e0731a);align-items:center;gap:18px;padding:22px;display:flex;position:relative;overflow:hidden;box-shadow:0 5px #a44d0c}.record-card:after{content:"";background:#ffffff29;border-radius:50%;width:160px;height:160px;position:absolute;top:-40px;right:-30px}.record-icon{background:#ffffff38;border-radius:18px;flex:none;place-items:center;width:64px;height:64px;display:grid;box-shadow:inset 0 -3px #0000001f}.record-label{font:700 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.9;display:block}.record-time{font:700 clamp(38px, 5vw, 52px) / 1.05 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;text-shadow:0 2px #00000026;display:block}.record-card small{opacity:.92;font-size:12.5px;font-weight:600}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stat-card{--tone:var(--accent);border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--line-2);box-shadow:0 4px 0 color-mix(in srgb, var(--tone) 45%, var(--line-2));grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:0 12px;padding:14px 16px;display:grid}.stat-icon{color:#fff;background:var(--tone);border-radius:12px;grid-row:1/3;place-items:center;width:42px;height:42px;display:grid;box-shadow:inset 0 -3px #00000029}.stat-k{font:700 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-self:end}.stat-card b{font:700 24px/1.15 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;align-self:start}.gcard{border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--line-2);box-shadow:0 4px 0 var(--line-2);gap:14px;min-width:0;padding:18px;display:grid}.gcard>header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.gcard>header h3{flex:1;min-width:0;font-size:18px}.gcard-icon{--tone:var(--accent);color:#fff;background:var(--tone);border-radius:9px;place-items:center;width:30px;height:30px;display:grid;box-shadow:inset 0 -2px #00000029}.an-sub{margin:-6px 0 0;font-size:13px}.chart-box{width:100%;min-width:0}.chart{max-width:100%;height:auto;display:block}.stages-lead{border-radius:var(--r-md);background:var(--accent-soft);border-left:4px solid var(--accent);align-items:center;gap:8px;margin:0;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.stages-lead .ic{color:var(--accent)}.solve-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.solve{border-radius:var(--r-md);background:var(--side);border:1px solid var(--line);box-shadow:0 3px 0 var(--line);grid-template-columns:52px minmax(0,1fr) auto auto;align-items:center;gap:4px 14px;padding:10px 14px 10px 10px;display:grid}.solve.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 3px 0 color-mix(in srgb, var(--accent) 40%, transparent)}.solve.pb{border-color:#e0971a99}.solve-no{background:var(--well);height:40px;color:var(--muted);font:700 13px var(--f-mono);border-radius:12px;place-items:center;display:grid}.solve.pb .solve-no{color:#fff;background:linear-gradient(135deg,#f2a900,#e0731a);box-shadow:inset 0 -3px #00000026}.solve-main{gap:1px;min-width:0;display:grid}.solve-time{font:700 21px/1.2 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.solve-time small{font:700 12px var(--f-mono);color:var(--warn);margin-left:4px}.solve.dnf .solve-time{color:var(--bad)}.solve-meta{color:var(--muted);font-size:12px}.solve-actions{align-items:center;gap:8px;display:flex}.solve-del{border:1px solid var(--line-2);background:var(--paper);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center}.solve-del:hover{color:var(--bad);border-color:var(--bad)}.solve-scr{font:11.5px var(--f-mono);color:var(--dim);white-space:nowrap;text-overflow:ellipsis;grid-column:2/-1;overflow:hidden}@media (width<=760px){.stat-hero{grid-template-columns:1fr}.solve{grid-template-columns:46px minmax(0,1fr) auto}.solve-pen{grid-area:2/2/auto/3}.solve-actions{flex-direction:column;grid-area:1/3/3;align-items:flex-end}.solve-scr{grid-area:3/1/auto/-1}}@media (width<=400px){.stat-card b{font-size:20px}.record-card{padding:18px}}.ref-card{gap:10px;display:grid}.ref-toggle{border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--paper);width:100%;color:var(--fg);text-align:left;cursor:pointer;box-shadow:0 4px 0 var(--line-2);align-items:center;gap:12px;padding:11px 14px;transition:transform 60ms,box-shadow 60ms,border-color .15s;display:flex}.ref-toggle:hover{border-color:var(--accent)}.ref-toggle:active{box-shadow:0 0 0 var(--line-2);transform:translateY(4px)}.ref-toggle[aria-expanded=true]{border-color:var(--accent);box-shadow:0 4px 0 color-mix(in srgb, var(--accent) 45%, transparent)}.ref-toggle .gcard-icon{border-radius:11px;flex:none;width:36px;height:36px}.ref-text{flex:1;gap:1px;min-width:0;display:grid}.ref-text b{font-size:15px}.ref-text small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.ref-chev{background:var(--well);border-radius:50%;flex:none;place-items:center;width:30px;height:30px;transition:background .15s;display:grid}.ref-chev i{border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:8px;height:8px;margin-top:-3px;transition:transform .2s cubic-bezier(.3,1.5,.5,1);transform:rotate(45deg)}.ref-toggle[aria-expanded=true] .ref-chev{background:var(--accent-soft)}.ref-toggle[aria-expanded=true] .ref-chev i{border-color:var(--accent);transform:rotate(-135deg)translate(-1px,-1px)}.ref-panel{border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--line-2);box-shadow:0 4px 0 var(--line-2);gap:14px;padding:16px;animation:.2s ease-out rise;display:grid}.ref-note{margin:0;font-size:12.5px}@media (prefers-reduced-motion:reduce){.ref-panel{animation:none}.ref-chev i{transition:none}}.algs-group-lead{margin:0;font-size:13px}.stats-page .stat-icon,.stats-page .gcard-icon{background:var(--accent-soft);color:var(--accent);box-shadow:none}.stats-page .stat-card{box-shadow:0 4px 0 var(--line-2)}.drill-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.drill-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:16px;padding:20px}.drill-card-icon{border-radius:16px;width:56px;height:56px}.drill-card-body{align-content:start;gap:6px}.drill-card-body b{font-size:18px}.drill-card-desc{color:var(--muted);min-height:2.9em;font-size:14px;line-height:1.45}.drill-card-tags{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.drill-card-tags small{background:var(--well);color:var(--muted);font:600 11.5px var(--f-body);border-radius:999px;padding:3px 10px}.drill-card-tags small.done{background:color-mix(in srgb, var(--good) 14%, var(--paper));color:var(--good)}.drill-card-go{align-self:center}@media (width<=760px){.drill-cards{grid-template-columns:1fr}.drill-card-desc{min-height:0}}.online-page{width:100%;max-width:980px}.online-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:16px;display:grid}.online-col{gap:16px;min-width:0;display:grid}@media (width<=800px){.online-grid{grid-template-columns:1fr}}.tiny{font-size:13px}.daily-hero{border-radius:var(--r-lg);color:#fff;background:linear-gradient(135deg,#3b5fe8,#2340b8);align-items:center;gap:16px;padding:22px;display:flex;position:relative;overflow:hidden;box-shadow:0 5px #16286f}.daily-hero:after{content:"";pointer-events:none;background:#ffffff21;border-radius:50%;width:170px;height:170px;position:absolute;top:-44px;right:-34px}.hero-icon{background:#fff3;border-radius:18px;flex:none;place-items:center;width:64px;height:64px;display:grid;box-shadow:inset 0 -3px #00000024}.hero-main{z-index:1;gap:8px;min-width:0;display:grid;position:relative}.hero-label{font:700 12px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.92}.hero-label i{background:#fff3;border-radius:999px;margin-left:8px;padding:2px 8px;font-style:normal}.hero-sub,.hero-note{opacity:.92;font-size:14px;font-weight:600}.hero-note{opacity:1;font-size:16px}.hero-btn{font:800 17px var(--f-body);color:#2340b8;cursor:pointer;background:#fff;border:0;border-radius:999px;justify-self:start;align-items:center;gap:8px;padding:11px 26px;transition:transform 60ms,box-shadow 60ms;display:inline-flex;box-shadow:0 4px #00000047}.hero-btn:hover:not(:disabled){filter:brightness(.96)}.hero-btn:disabled{opacity:.7;cursor:wait}.hero-btn:active{transform:translateY(4px);box-shadow:0 0 #00000047}.hero-btn:focus-visible{outline-offset:3px;outline:3px solid #fff}.hero-result{justify-items:start;gap:6px;display:grid}.hero-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.hero-link{color:#fff;font:600 14px var(--f-body);cursor:pointer;opacity:.9;background:0 0;border:0;padding:4px;text-decoration:underline}.hero-link:hover{opacity:1}.hero-time{font:700 clamp(36px, 6vw, 50px) / 1.05 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;text-shadow:0 2px #0000002e}.hero-chips{flex-wrap:wrap;gap:6px;display:flex}.hero-chip{font:700 12px var(--f-mono);background:#fff3;border-radius:999px;padding:3px 10px}.hero-chip.gold{color:#5a3b00;background:#ffd43b}.board{gap:6px;margin:0;padding:0;list-style:none;display:grid}.board li{border-radius:var(--r-md);background:var(--well);align-items:center;gap:12px;padding:8px 12px;display:flex}.board li.me{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.board-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.board-time{font:700 16px var(--f-mono);font-variant-numeric:tabular-nums}.rank{width:32px;height:32px;font:700 14px var(--f-mono);color:var(--muted);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-2);border-radius:10px;flex:none;place-items:center;display:grid}.rank.r1,.rank.r2,.rank.r3{color:#3a2a00;box-shadow:inset 0 -3px #0000002e}.rank.r1{background:linear-gradient(135deg,#ffe066,#f2a900)}.rank.r2{background:linear-gradient(135deg,#eef1f5,#aeb6c4)}.rank.r3{background:linear-gradient(135deg,#f0b27a,#c4733a)}.ac-card{gap:14px}.ac-card>header .pill{margin-left:auto}.ac-who{align-items:center;gap:12px;display:flex}.ac-who form{flex:1;min-width:0;display:grid}.avatar{background:#1a2238;border-radius:14px;flex:none;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:3px;width:52px;height:52px;padding:5px;display:grid;box-shadow:inset 0 -3px #0000004d}.avatar b{border-radius:3px;box-shadow:inset 0 -1px #0000002e}.ac-name{font:700 18px var(--f-body);color:var(--fg);background:0 0;border:0;border-bottom:2px dashed #0000;width:100%;min-width:0;padding:2px 0}.ac-name:hover{border-bottom-color:var(--line-2)}.ac-name:focus-visible{border-bottom-color:var(--accent);outline:none}.ac-email{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ac-row{flex-wrap:wrap;gap:8px;display:flex}.ac-row input{min-width:160px;font:15px var(--f-body);border:1px solid var(--line-2);background:var(--bg);color:var(--fg);border-radius:999px;flex:1;padding:9px 14px}.ac-row input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ac-sent{gap:2px;margin:0;font-size:14px;display:grid}.ac-or{color:var(--muted);align-items:center;gap:12px;font-size:13px;display:flex}.ac-or:before,.ac-or:after{content:"";background:var(--line-2);flex:1;height:1px}.ac-sync{align-items:center;gap:8px;font-size:14px;display:flex}.ac-icon{flex:none;place-items:center;padding:7px;display:inline-grid}.ac-resync{margin-left:auto}.ac-save{justify-self:start}.ac-cloud{color:var(--muted);flex:none}.ac-sync[data-state=done] .ac-cloud{color:var(--good)}.ac-sync[data-state=syncing] .ac-cloud{color:var(--accent);animation:1s infinite ac-pulse}.ac-sync[data-state=error] .ac-cloud{color:var(--bad)}.ac-error{color:var(--bad);overflow-wrap:anywhere;margin:0;font-size:14px}.ac-out{justify-self:start}@keyframes ac-pulse{50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.ac-sync[data-state=syncing] .ac-cloud{animation:none}.hero-btn{transition:none}}.daily-tag{font:600 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:999px;justify-self:start;padding:4px 10px}.daily-modal{text-align:center;justify-items:center;gap:8px;width:min(400px,100%)}.daily-modal .hero-icon{color:#fff;background:linear-gradient(135deg,#3b5fe8,#2340b8);box-shadow:inset 0 -3px #0003,0 4px #16286f}.daily-big{font:700 clamp(44px, 12vw, 60px) / 1.05 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em}.daily-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;display:flex}.ac-log summary{cursor:pointer;font:600 14px var(--f-body);padding:2px 0}.ac-log ol{gap:4px;max-height:260px;margin:8px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.ac-log li{border-radius:var(--r-sm);background:var(--well);grid-template-columns:18px auto 1fr;align-items:baseline;gap:8px;padding:4px 8px;font-size:13px;display:grid}.ac-log time{color:var(--muted);font-size:12px}.log-ic{align-self:center;place-items:center;display:grid}.log-pull .log-ic{color:var(--stage-1)}.log-push .log-ic{color:var(--stage-3)}.log-idle .log-ic{color:var(--muted)}.log-error .log-ic,.log-error .log-text{color:var(--bad)}.board-watch{width:30px;height:30px;color:var(--accent);flex:none;place-items:center;padding:0;display:inline-grid}.solve-time{align-items:baseline;gap:4px;font-size:14px;display:flex}.solve-time b{letter-spacing:-.02em;font-size:30px}.solve-seek{width:100%;accent-color:var(--accent)}.solve-recent{flex-wrap:wrap;gap:4px;margin-left:auto;display:inline-flex}.solve-recent kbd{font:700 13px/1 var(--f-mono);border:1px solid var(--line-2);background:var(--side);border-bottom-width:3px;border-radius:6px;padding:5px 6px 4px}.solve-recent kbd.now{background:var(--accent);border-color:var(--ledge);color:var(--accent-ink)}.solve-recent kbd.past{color:var(--dim);background:0 0}@media (width>=641px){.mine-faces .mini-face{display:none}.mine-faces button{padding:8px 0;font-size:14px}}@media (width>=1041px){.coach-btns{grid-auto-flow:column}}.result .dnf-why{color:var(--fg);max-width:32ch;margin:0;font-size:13px;line-height:1.45}.learn-this{white-space:nowrap}.learn-this .short{display:none}@media (width<=640px){.learn-this .long{display:none}.learn-this .short{display:inline}}.board-name small{font:500 11.5px var(--f-mono);color:var(--muted);margin-left:8px}.board-note{margin:-4px 0 10px}
