@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}:root{--bg:#0c0e11;--surface:#13161a;--surface-2:#1f2329;--surface-3:#2a2f36;--line:#2a2f36;--line-soft:#1e2228;--text:#f2f4ee;--muted:#a9b0a8;--accent:#c6f45c;--accent-ink:#12160a;--best:#c6f45c;--best-arrow:#86bd08;--level:#a78bff;--you:#ffb454;--good:#5fdcc0;--brilliant:#57c7ff;--book:#c9b48c;--ok:#f2d65c;--warn:#ff9a4d;--bad:#ff5d6c;--sq-light:#cdd3c9;--sq-dark:#4b5a5c;--last-l:#dbe89c;--last-d:#8ea65a;--active-l:#cfe878;--active-d:#a3c24e;--premove-l:#bcc2ea;--premove-d:#6a70b8;--sans:"Geist Variable", system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, monospace;--radius:16px;--header:64px;--evalbar:12px;--strip:36px;--board-size:min(calc(100dvh - var(--header) - 128px), calc(100vw - 500px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono);font-feature-settings:"zero" 0;font-size:.86em}.muted{color:var(--muted)}.icon{flex:none;width:18px;height:18px}.app{flex-direction:column;min-height:100dvh;display:flex;position:relative}.topbar{height:var(--header);padding:0 max(24px, env(safe-area-inset-right)) 0 max(24px, env(safe-area-inset-left));border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#0c0e11cc;align-items:center;gap:28px;display:flex;position:sticky;top:0}.settings{display:flex;position:relative}.settings-panel{width:340px;max-height:calc(100dvh - var(--header) - 16px);border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);gap:10px;padding:16px;animation:.14s ease-out rise-in;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 18px 50px #0000008c}.settings-panel h2{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:6px 0 0;font-size:12px;font-weight:600}.settings-panel h2:first-child{margin-top:0}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.theme-swatch{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:10px;gap:6px;padding:5px 5px 7px;font-size:12.5px;transition:border-color .15s,color .15s,background .15s;display:grid}.theme-swatch:hover{color:var(--text);background:var(--surface-2)}.theme-on,.theme-on:hover{border-color:var(--accent);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}.theme-board{border-radius:6px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.theme-board>span{aspect-ratio:1;background:var(--swatch-l);padding:2px}.theme-board>span+span{background:var(--swatch-d)}.theme-board img,.theme-board svg{width:100%;height:100%;display:block}.theme-name{font-weight:500}.switch-row{border:1px solid var(--line);text-align:left;background:0 0;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:10px 12px;display:flex}.switch-row:hover{background:var(--surface-2)}.switch-row strong{font-size:14px;font-weight:600;display:block}.switch-row small{color:var(--muted);font-size:12.5px;line-height:1.35;display:block}.switch{background:var(--surface-3);border-radius:999px;flex:none;width:36px;height:21px;transition:background .15s;position:relative}.switch:after{content:"";background:#c5cac2;border-radius:50%;width:17px;height:17px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}[aria-checked=true]>.switch{background:var(--accent)}[aria-checked=true]>.switch:after{background:var(--accent-ink);transform:translate(15px)}.draw-help{color:var(--muted);font-size:13px;line-height:1.45}.draw-help .icon{vertical-align:-3px;width:15px;height:15px}.draw-help kbd{font:500 11.5px/1 var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:2px 4px}.draw-help-touch{display:none}.draw-keys{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.draw-keys li{align-items:center;gap:6px;display:inline-flex}.draw-keys kbd{font:500 11.5px/1 var(--mono);background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:3px 5px}.draw-dot{--draw:#f2634f;background:var(--draw);border-radius:50%;width:10px;height:10px}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.brand-mark{flex:none;width:26px;height:26px}.nav{gap:4px;margin-right:auto;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:500;transition:color .15s,background .15s}.nav a:hover{color:var(--text)}.nav a.nav-on{background:var(--surface-2);color:var(--text)}.main{flex-direction:column;flex:1;display:flex}.screen-loading{flex:1;min-height:60vh}.crash{gap:12px;max-width:460px;margin:15vh auto 0;padding:0 24px;display:grid}.crash h1{letter-spacing:-.02em;font-size:24px}.crash div{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.engine-error{color:#ffc2c8;background:#ff5d6c24;border-bottom:1px solid #ff5d6c66;padding:10px 24px}.btn{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 14px;font-weight:600;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn-count{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.btn:hover:not(:disabled){background:var(--surface-3);border-color:#3a404c}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:#d6ff72;border-color:#d6ff72}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2);border-color:#0000}.btn-sm{min-height:34px;padding:5px 11px;font-size:13.5px}.btn-lg{border-radius:12px;min-height:56px;padding:12px 28px;font-size:16px}.btn-end{margin-left:auto}.icon-btn{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;place-items:center;width:40px;height:40px;transition:background .15s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-3)}.topbar .icon-btn{width:44px;height:44px;color:var(--muted);background:0 0;border-color:#0000}.icon-btn.icon-btn-on,.topbar .icon-btn.icon-btn-on{background:var(--surface-3);color:var(--accent)}.touch-only{display:none}.icon-btn-ghost{color:#c5cac2;background:0 0;border-color:#0000}.icon-btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.segmented{background:var(--bg);border:1px solid var(--line);border-radius:11px;gap:2px;max-width:100%;padding:3px;display:inline-flex}.segmented button{min-height:34px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:7px;padding:4px 12px;font-size:13.5px;font-weight:600;transition:color .15s,background .15s;display:inline-flex}.segmented button:hover{color:var(--text)}.segmented .seg-on{background:var(--surface-2);color:var(--text);box-shadow:inset 0 0 0 1px #3a404c}.field-label{letter-spacing:.02em;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.board{width:100%;aspect-ratio:1;-webkit-user-select:none;user-select:none;touch-action:none;isolation:isolate;border-radius:10px;width:round(down,100%,8px);position:relative;overflow:hidden}.board-static{touch-action:auto}.squares{grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;position:absolute;inset:0}.sq{transition:background-color .16s;position:relative}.sq-l{background:var(--sq-light);color:var(--sq-dark)}.sq-d{background:var(--sq-dark);color:var(--sq-light)}.sq-l.sq-last{background:var(--last-l);color:#0d0f1399}.sq-d.sq-last{background:var(--last-d);color:#ffffffd9}.sq-l.sq-premove{background:var(--premove-l);color:#0d0f1399}.sq-d.sq-premove{background:var(--premove-d);color:#ffffffd9}.sq-l.sq-active{background:var(--active-l);color:#0d0f1399}.sq-d.sq-active{background:var(--active-d);color:#ffffffd9}.sq-hover:before{content:"";z-index:1;position:absolute;inset:0;box-shadow:inset 0 0 0 clamp(2px,.5cqw,4px) #ffffffe6}.sq-l.sq-check{background:#f08a8f}.sq-d.sq-check{background:#c9545c}.sq-check:after{content:"";pointer-events:none;background:radial-gradient(circle,#ff3c46bf,#0000 72%);animation:.7s ease-out 80ms both check-flash;position:absolute;inset:0}.sq-victor:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--accent) 72%, transparent), transparent 72%);pointer-events:none;animation:1s ease-out .3s both victor;position:absolute;inset:0}.sq-mark:before{content:"";box-shadow:inset 0 0 0 clamp(3px, .8cqw, 6px) var(--brilliant);z-index:1;animation:1.2s ease-in-out infinite mark;position:absolute;inset:0}.coord{font:600 clamp(8px, 1.5cqw, 12px)/1 var(--sans);pointer-events:none;z-index:1;position:absolute}.coord-f{bottom:3px;right:3px}.coord-r{top:3px;left:3px}.dest{z-index:3;pointer-events:none;background:#0d0f1342;border-radius:50%;width:26%;height:26%;animation:.12s ease-out dest-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dest-take{background:radial-gradient(circle,#0000 66%,#0d0f1347 67%);border-radius:0;width:100%;height:100%}.board-premoving .dest{background:color-mix(in srgb, var(--premove-d) 72%, #0d0f13);opacity:.62}.board-premoving .dest-take{background:radial-gradient(circle, transparent 66%, color-mix(in srgb, var(--premove-d) 72%, #0d0f13) 67%)}.board-pencil{cursor:crosshair}.pieces{pointer-events:none;z-index:2;position:absolute;inset:0}.piece{width:12.5%;height:12.5%;transition:transform .18s cubic-bezier(.3,.7,.25,1);position:absolute;top:0;left:0}.piece-body{transform-origin:50% 88%;width:100%;height:100%}.piece-travel{animation:.25s ease-out piece-travel}.piece-drop{animation:.17s ease-out piece-drop}.piece-fallen{filter:brightness(.82)saturate(.7);transition:transform .5s cubic-bezier(.34,1.5,.5,1) .3s,filter .5s .3s;transform:rotate(-15deg)translate(-3%,3%)}.piece svg,.piece img,.drag-ghost svg,.drag-ghost img,.palette-btn svg,.palette-btn img,.promo-btn svg,.promo-btn img{width:100%;height:100%;display:block}.palette-btn img{pointer-events:none}.piece-instant{transition:none}.piece-held{opacity:.3}.piece-gone{width:100%;height:100%;animation:.17s ease-in 70ms forwards gone}.capture-ring{opacity:0;pointer-events:none;border:clamp(2px,.5cqw,4px) solid #ffffffd9;border-radius:50%;animation:.34s ease-out .1s capture-ring;position:absolute;inset:16%}.drag-ghost{z-index:100;pointer-events:none;position:fixed;top:0;left:0}.drag-ghost svg,.drag-ghost img{filter:drop-shadow(0 10px 10px #00000080);animation:.12s ease-out pick-up}.board-dragging{cursor:grabbing}.arrows{z-index:3;pointer-events:none;position:absolute;inset:0}.arrow{opacity:.86;animation:.2s ease-out fade-in}.board:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sq-cursor:after{content:"";box-shadow:inset 0 0 0 clamp(3px, .7cqw, 5px) var(--accent), inset 0 0 0 clamp(4px, .9cqw, 7px) #0d0f13;z-index:4;position:absolute;inset:0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.drawings{z-index:3;pointer-events:none;position:absolute;inset:0}.drawing{--draw:#f2634f;opacity:.84;transform-box:fill-box;transform-origin:50%;animation:.14s ease-out draw-in}.drawing path{fill:none;stroke:var(--draw);stroke-width:17px;stroke-linejoin:round}.drawing polygon{fill:var(--draw)}.drawing-ring{fill:none;stroke:var(--draw);stroke-width:7px}.drawing-sketch{opacity:.5;animation:none}.draw-gold{--draw:#f5c542}.draw-sky{--draw:#4aa8ff}.draw-green{--draw:#5cc96b}.sq-badge{z-index:4;min-width:22px;font:700 12px/1.3 var(--mono);text-align:center;pointer-events:none;background:#0d0f13;border-radius:999px;padding:2px 5px;animation:.2s ease-out pop;position:absolute;transform:translate(-90%,8%);box-shadow:0 0 0 1.5px}.promo-scrim{z-index:6;background:#0d0f1380;position:absolute;inset:0}.promo{background:var(--surface);border-radius:8px;flex-direction:column;width:12.5%;display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 30px #0009}.promo-btn{aspect-ratio:1;background:0 0;border:0;padding:4%}.promo-btn:hover{background:var(--surface-2)}.board-row{align-items:stretch;gap:10px;display:flex}.board-wrap{flex:1;min-width:0;position:relative;container-type:inline-size}.evalbar{width:var(--evalbar);background:#24282e;border-radius:6px;flex-direction:column;flex:none;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.evalbar-flip{flex-direction:column;justify-content:flex-start}.evalbar-white{background:var(--text);width:100%;transition:height .45s cubic-bezier(.3,.8,.3,1)}.evalbar-label{display:none}.evalbar-pending .evalbar-white{background:#4a505c;height:50%!important}.landing{flex-direction:column;flex:1;width:100%;display:flex}.home{min-height:calc(100dvh - var(--header));grid-template-columns:minmax(0, 1fr) min(calc(100dvh - var(--header) - 130px), calc(clamp(40px, 4.5vw, 72px) * 4.08 + 196px), 720px);grid-template-columns:minmax(0, 1fr) calc(round(down, min(calc(100dvh - var(--header) - 130px), calc(clamp(40px, 4.5vw, 72px) * 4.08 + 196px), 720px), 8px) + 22px);flex:none;align-items:center;gap:clamp(32px,6vw,88px);width:100%;max-width:1440px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(20px,5vw,72px);display:grid}.home h1{letter-spacing:-.04em;font-size:clamp(40px,4.5vw,72px);font-weight:600;line-height:1.02}.home h1 em{color:var(--accent);font-style:normal}.home-lead{color:#b4bab1;max-width:52ch;margin-top:24px;font-size:clamp(16px,1.4vw,18px);line-height:1.55}.home-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.home-facts{color:#c5cac2;flex-wrap:wrap;gap:8px 20px;margin:28px 0 0;padding:0;font-size:13.5px;list-style:none;display:flex}.home-facts li{align-items:center;gap:7px;display:inline-flex}.home-facts .icon{width:15px;height:15px;color:var(--accent)}.home-frame .board{margin-inline:auto}.home-frame{background:#15181d;border:1px solid #23272e;border-radius:20px;padding:10px}.home-caption{min-height:22px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;font-size:13px;display:flex}.home-caption .san,.home-caption .mono{color:var(--accent);font-size:13px}.home-move{color:var(--accent);align-items:center;gap:4px;display:inline-flex}.feature,.feature-wide{border-top:1px solid var(--line-soft);width:100%;max-width:1240px;margin:0 auto;padding:clamp(48px,7vw,96px) clamp(20px,5vw,72px)}.feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,88px);display:grid}.feature-board{justify-self:center;width:100%;max-width:480px;container-type:inline-size}.feature-copy{flex-direction:column;align-items:flex-start;gap:14px;min-width:0;display:flex}.feature-copy p{color:#b4bab1;max-width:54ch;font-size:16px;line-height:1.55}.eyebrow{color:var(--accent);font-size:13px;font-weight:600}.feature h2,.feature-wide h2,.closing h2{letter-spacing:-.03em;font-size:clamp(28px,3.2vw,44px);font-weight:600;line-height:1.08}.feature-sample{width:min(100%,360px)}.feature-copy .feature-note{align-items:center;gap:6px;font-size:14px;display:flex}.peek-list{flex-direction:column;gap:4px;width:min(100%,420px);min-height:92px;display:flex}.peek-list .prompt{width:100%;padding:12px 14px}.peek-row{grid-template-columns:56px 1fr 36px 84px;align-items:center;gap:10px;min-height:28px;display:grid}.feature-copy .peek-risk{font-size:14px}.peek-risk strong{font-size:15px}.peek-tag{text-align:right;font-size:12.5px;font-weight:600}.peek-row .mono{text-align:right}.ladder-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:28px 0 0;padding:0;list-style:none;display:grid}.ladder-cards a{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr auto;align-items:baseline;gap:4px 8px;padding:14px;transition:background .15s,border-color .15s;display:grid}.ladder-cards a:hover{background:var(--surface-2);border-color:#3a404c}.verdict-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;margin:28px 0 0;padding:0;list-style:none;display:grid}.verdict-grid li{align-items:center;gap:12px;display:flex}.verdict-grid strong,.verdict-grid .muted{display:block}.verdict-grid .muted{font-size:13.5px}.closing{text-align:center;border-top:1px solid var(--line-soft);flex-direction:column;align-items:center;gap:24px;padding:clamp(56px,8vw,104px) 20px;display:flex}.footer{padding:20px clamp(20px, 5vw, 72px) calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:13px;display:flex}.footer a{color:var(--text);text-underline-offset:2px;text-decoration:underline}.footer-brand{color:var(--text);letter-spacing:.01em;font-weight:600}.setup{width:min(1120px,100%);margin:0 auto;padding:clamp(20px,3.5vw,40px) clamp(16px,3vw,32px) 40px}.page-title{letter-spacing:-.03em;margin-bottom:24px;font-size:clamp(28px,3.4vw,42px);line-height:1.1}.level-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.level-card{text-align:left;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:4px 8px;padding:16px;transition:border-color .15s,background .15s,transform .15s;display:grid}.level-card:hover{background:var(--surface-2);transform:translateY(-2px)}.level-card-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--surface-2)}.level-card strong{letter-spacing:-.02em;font-size:18px}.level-elo{color:var(--muted)}.level-blurb{color:var(--muted);grid-column:1/-1;font-size:13.5px}.level-meter{grid-column:1/-1;gap:3px;margin-bottom:10px;display:flex}.level-meter i{background:var(--line);border-radius:2px;flex:1;height:4px}.level-meter i.on{background:var(--accent)}.setup-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:24px;display:flex}.note{color:var(--muted);max-width:72ch;margin-top:16px;font-size:13px}.stage{grid-template-columns:calc(var(--board-size) + var(--evalbar) + 10px) minmax(340px, 420px);flex:1;justify-content:center;align-items:start;gap:24px;padding:14px 20px;display:grid}.stage-lab{--board-size:min(calc(100dvh - var(--header) - 136px), calc(100vw - 500px))}.stage-board{flex-direction:column;gap:8px;min-width:0;display:flex}.player-strip{min-height:var(--strip);padding-left:calc(var(--evalbar) + 10px);align-items:center;gap:10px;display:flex}.player-avatar{border-radius:8px;flex:none;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.player-avatar-w{background:var(--text);color:#12160a}.player-avatar-b{color:var(--text);background:#24282e;box-shadow:inset 0 0 0 1px #3a404c}.player-dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.player-dot-w{background:#f2f3f0}.player-dot-b{background:#23262e;box-shadow:inset 0 0 0 1.5px #80889a}.premove-tag{background:color-mix(in srgb, var(--premove-d) 28%, var(--surface));height:28px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--premove-d) 62%, transparent);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 2px 0 10px;font-size:13px;font-weight:500;animation:.15s ease-out fade-in;display:inline-flex}.premove-tag img,.premove-tag svg:not(.icon){width:20px;height:20px;display:block}.premove-tag button{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.premove-tag button:hover{color:var(--text);background:#ffffff14}.premove-tag .icon{width:14px;height:14px}.premove-lost{color:var(--muted);font-size:13px;animation:.15s ease-out fade-in}.turn-tag{color:var(--accent);align-items:center;gap:7px;font-size:13px;font-weight:500;display:inline-flex}.turn-tag i{background:var(--accent);border-radius:50%;width:8px;height:8px}.captured{align-items:center;min-height:22px;margin-left:auto;display:flex}.captured svg,.captured img{width:20px;height:20px;margin-left:-7px}.captured em{color:var(--muted);margin-left:6px;font-style:normal}.thinking{align-items:center;gap:3px;display:inline-flex}.thinking i{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1s infinite blink}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}.panel{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-soft);max-height:calc(100dvh - var(--header) - 28px);scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;gap:14px;padding:16px;display:flex;overflow-y:auto}.panel>.segmented{flex:none;display:flex}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel-head .field-label{margin-bottom:0}.panel-title{letter-spacing:-.02em;font-size:21px;line-height:1.2}.san{font-family:var(--mono);white-space:nowrap;align-items:center;font-size:13.5px;font-weight:600;display:inline-flex}.san-piece{flex:none;width:1.35em;height:1.35em;margin-right:1px}.panel-game{gap:0;padding:0;overflow:hidden}.pg-head{border-bottom:1px solid var(--line-soft);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.pg-head small{color:var(--muted);font-size:12px;display:block}.pg-head strong{font-size:16px;font-weight:600}.pg-eval{border-bottom:1px solid var(--line-soft);flex-direction:column;flex:none;gap:8px;padding:14px 20px 12px;display:flex}.pg-eval-head{color:var(--muted);justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.pg-eval-score{font-family:var(--mono);letter-spacing:-.02em;color:var(--text);font-size:22px;font-weight:500}.pg-notice{background:#1a2010;border:1px solid #3f4f1c;border-radius:10px;flex:none;align-items:center;gap:8px;margin:0 12px 12px;padding:12px 14px;font-size:13px;display:flex}.pg-notice strong{color:var(--accent);font-weight:600}.pg-notice .san{font-size:14px}.pg-notice .btn{margin-left:auto}.pg-notice-plain{background:var(--surface-2);border-color:var(--line)}.pg-notice-plain strong{color:var(--text)}.pg-actions{border-top:1px solid var(--line-soft);flex-direction:column;flex:none;gap:8px;padding:12px;display:flex}.pg-main{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pg-main .btn{min-height:48px}.pg-tools{align-items:center;gap:2px;display:flex}.pg-tools .icon-btn{width:44px;height:44px}.pg-tools .btn{color:#c5cac2;min-height:44px;padding:8px 10px;font-size:13px;font-weight:500}.pg-tools .btn:first-of-type{margin-left:auto}.pg-tools .pg-confirm:not(:disabled),.pg-head .pg-confirm{color:var(--bad)}.chart{flex:none}.chart svg{width:100%;height:64px;display:block}.chart-clickable svg{cursor:pointer}.chart-area{fill:var(--accent);fill-opacity:.14}.chart-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-mid{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-tick{stroke-width:3px;vector-effect:non-scaling-stroke}.tick-warn{stroke:var(--warn)}.tick-bad{stroke:var(--bad)}.tick-brilliant{stroke:var(--brilliant)}.chart-marker{stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke}.moves{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:1;min-height:130px;padding:6px 12px;overflow-y:auto}.moves-empty{padding:8px}.opening-name{color:var(--book);padding:2px 8px 8px;font-size:12.5px;font-weight:500}.move-row>.mono{padding-left:8px}.move-row{grid-template-columns:36px 1fr 1fr;align-items:center;display:grid}.move-cell{text-align:left;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:4px;min-height:30px;padding:4px 8px;display:flex}.move-cell:hover{background:var(--surface-2)}.move-on,.move-on:hover{background:#2a3316}.move-on .san{color:var(--accent)}.mark{font:700 12px/1 var(--mono)}.end-card{z-index:8;border-radius:var(--radius);text-align:center;background:#15181ef7;border:1px solid #434a57;width:min(340px,86%);padding:22px;animation:.25s ease-out pop-center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 60px #0009}.end-summary{flex-wrap:wrap;justify-content:center;gap:4px 12px;margin-top:12px;font-size:12.5px;font-weight:600;display:flex}.end-card h2{letter-spacing:-.03em;font-size:27px}.end-card p{color:var(--muted);margin-top:4px}.deep-progress{color:var(--muted);gap:7px;margin-top:12px;font-size:13px;display:grid}.deep-bar{background:var(--surface-3);border-radius:999px;height:5px;display:block;overflow:hidden}.deep-bar i{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s;display:block}.help-note{color:var(--muted);margin-top:6px;font-size:12.5px}.end-card .end-accuracy{color:var(--muted);margin-top:10px;font-size:13.5px}.end-accuracy strong{color:var(--text);letter-spacing:-.02em;font-size:22px;font-weight:600}.end-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.tray{padding-left:calc(var(--evalbar) + 10px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.palette{background:var(--sq-dark);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:flex}.palette-btn{touch-action:none;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;width:36px;height:36px;padding:2px;transition:background .12s;display:grid}.palette-btn:hover{background:#ffffff29}.palette-btn svg.icon{filter:none;width:18px;height:18px}.palette-on{border-color:var(--accent);background:#0d0f1373}.tray-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tray-actions .icon-btn{width:34px;height:34px}.control-row{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.callout{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.callout ul{margin:6px 0 0;padding-left:18px}.callout-warn{background:#ffb45414;border-color:#ffb45480}.best-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.best-top{align-items:center;gap:7px;display:flex}.best-top .field-label{margin:0}.depth{margin-left:auto}.best-main{align-items:center;gap:12px;margin-top:6px;display:flex}.best-move .san{font-size:23px}.best-score{color:var(--best);font-size:15px;font-weight:600}.pv{flex-wrap:wrap;gap:2px 8px;margin-top:6px;display:flex}.pv .san{color:var(--muted);font-size:12px;font-weight:500}.ladder{flex-direction:column;gap:2px;display:flex}.rung{border:1px solid #0000;border-radius:9px}.rung-on{background:var(--surface-2);border-color:#a78bff8c}.rung-head{text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:1fr 60px 76px 38px;align-items:center;gap:6px;width:100%;min-height:36px;padding:6px 10px;display:grid}.rung-head:hover{background:var(--surface-2)}.rung-name{font-weight:600}.rung-on .rung-name{color:var(--level)}.rung-elo{font-size:11.5px}.rung-prob{text-align:right;color:var(--muted);font-size:12px}.rung-body{padding:0 10px 10px}.rung-body>p{margin-bottom:8px;font-size:13px}.chance{grid-template-columns:68px 1fr 34px 82px 24px;align-items:center;gap:6px;min-height:28px;display:grid}.chance-bar{background:var(--bg);border-radius:3px;height:6px;overflow:hidden}.chance-bar i{background:var(--level);border-radius:3px;height:100%;transition:width .3s;display:block}.chance-pct{text-align:right;font-size:11.5px}.chance-tag{text-align:right;white-space:nowrap;font-size:11.5px;font-weight:600}.chance-play{width:24px;height:24px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid}.chance-play:hover{background:var(--bg);color:var(--text)}.chance-play .icon{width:13px;height:13px}.tone-book{color:var(--book)}.tone-brilliant{color:var(--brilliant)}.best-brilliant{white-space:nowrap;font-size:13px;font-weight:700}.tone-best{color:var(--best)}.tone-good{color:var(--good)}.tone-ok{color:var(--ok)}.tone-warn{color:var(--warn)}.tone-bad{color:var(--bad)}.test{flex-direction:column;gap:14px;display:flex}.chip-row{flex-wrap:wrap;gap:5px;display:flex}.chip{border:1px solid var(--line);min-height:32px;color:var(--muted);background:0 0;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.chip:hover{color:var(--text)}.chip-on{border-color:var(--level);color:#d9ceff;background:#a78bff2e}.prompt{background:var(--bg);border:1px dashed #434a57;border-radius:12px;align-items:center;gap:14px;padding:16px;display:flex}.prompt p{margin-top:2px;font-size:13.5px}.prompt-pulse{background:var(--you);border-radius:50%;flex:none;width:12px;height:12px;animation:1.6s infinite pulse}.result{background:var(--bg);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:12px;padding:14px;animation:.25s ease-out pop;display:flex}.result-head{align-items:center;gap:12px;display:flex}.result-head strong{letter-spacing:-.02em;font-size:23px;line-height:1.1;display:block}.result-head .mono{color:var(--muted)}.result-symbol{background:var(--surface-2);border-radius:12px;flex:none;place-items:center;width:46px;height:46px;font-size:18px;font-weight:700;display:grid}.result-line{color:#c7cdd8;font-size:14px}.result-compare{gap:4px;display:grid}.result-compare>div{grid-template-columns:12px 1fr auto;align-items:center;gap:8px;min-height:26px;display:grid}.result-scale{grid-template-columns:repeat(8,1fr);gap:3px;display:grid}.scale-step i{background:var(--line);border-radius:3px;height:7px;display:block}.scale-on i{background:var(--you)}.scale-step small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:9.5px;display:block;overflow:hidden}.result-actions{flex-wrap:wrap;gap:6px;display:flex}.score-row{flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.score-row .field-label{margin:0}.fen-row .fen-field{gap:6px;display:flex}.fen-row input{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex:1;min-width:0;height:36px;padding:0 10px;font-size:11.5px}.fen-row .icon-btn{flex:none;width:36px;height:36px}.fen-row input[aria-invalid=true]{border-color:var(--bad)}.fen-error{color:var(--bad);margin-top:6px;font-size:12.5px}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend-dot{border-radius:3px;flex:none;width:11px;height:11px;display:inline-block}.legend-best{background:var(--best-arrow)}.legend-level{background:var(--level)}.legend-you{background:var(--you)}.panel-review{gap:14px}.review-head{align-items:center;gap:6px;display:flex}.review-head>div{margin-right:auto}.review-head small,.review-total small{color:var(--muted);font-size:12.5px;display:block}.review-head strong{letter-spacing:-.02em;font-size:21px;line-height:1.2}.review-steps{gap:4px;display:flex}.review-step{background:var(--surface-3);border-radius:3px;flex:1;height:5px}.step-now{box-shadow:0 0 0 1px var(--text)}.step-found{background:var(--best)}.step-revealed{background:var(--you)}.step-skipped{background:var(--muted)}.step-fine{background:var(--good)}.review-played{background:var(--bg);border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.review-symbol{background:var(--surface-2);border-radius:10px;flex:none;place-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:grid}.review-played .muted{font-size:13px;display:block}.review-played-move{align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.review-attempt{color:var(--muted);align-items:center;gap:8px;display:flex}.review-answer{background:var(--bg);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;padding:12px;display:flex}.answer-block{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.answer-block+.answer-block{border-top:1px solid var(--line-soft);padding-top:12px}.answer-head{align-items:center;gap:8px;width:100%;font-size:13.5px;display:flex}.answer-head strong{font-weight:600}.answer-head>:last-child{margin-left:auto}.answer-block p{color:#c7cdc4;font-size:13.5px}.answer-block .pv{margin:0}.pv-on .san{color:var(--accent)}.review-nav{justify-content:center;gap:4px;display:flex}.review-moves{flex:0 auto;min-height:96px;max-height:220px;padding:0}.variant{background:var(--bg);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.variant-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.variant-move{background:0 0;border:0;border-radius:4px;padding:2px 4px}.variant-move:hover{background:var(--surface-2)}.variant-eval{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.overview-stats{background:var(--bg);border:1px solid var(--line);border-radius:12px;align-items:center;gap:18px;padding:12px 14px;display:flex}.overview-accuracy{text-align:center;flex:none}.overview-accuracy .mono{letter-spacing:-.04em;font-size:38px;font-weight:600;line-height:1.05;display:block}.overview-accuracy small{color:var(--muted);font-size:12.5px}.overview-counts{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:13px;display:flex}.overview-counts>div{grid-template-columns:22px 1fr auto;align-items:center;display:grid}.review-actions{flex-wrap:wrap;gap:8px;display:flex}.review-actions .btn{white-space:nowrap;flex:1}.review-total strong{letter-spacing:-.02em;margin-top:2px;font-size:25px;line-height:1.2;display:block}.review-total em{color:var(--accent);font-style:normal}.review-total p{margin-top:6px;font-size:13.5px}.review-list{flex-direction:column;display:flex}.review-row{border-top:1px solid var(--line-soft);grid-template-columns:34px 1fr 24px auto;align-items:center;gap:6px;min-height:34px;display:grid}.review-status{text-align:right;color:var(--muted);font-size:12.5px;font-weight:600}.status-found{color:var(--best)}.status-revealed{color:var(--you)}.status-fine{color:var(--good)}@keyframes fade-in{0%{opacity:0}}@keyframes draw-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(-6px)}}@keyframes gone{to{opacity:0;transform:scale(.72)}}@keyframes capture-ring{0%{opacity:.8;transform:scale(.55)}to{opacity:0;transform:scale(1.3)}}@keyframes piece-travel{0%{transform:none}24%{transform:translateY(-5%)scale(1.08)}44%{transform:none}58%{transform:scale(1.04,.95)}to{transform:none}}@keyframes piece-drop{0%{transform:scale(1.1)}45%{transform:scale(1.04,.94)}to{transform:none}}@keyframes pick-up{0%{transform:scale(.84)}}@keyframes dest-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}}@keyframes check-flash{0%{opacity:0;transform:scale(.6)}30%{opacity:1;transform:scale(1.12)}to{opacity:.35;transform:scale(1)}}@keyframes victor{0%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1.18)}to{opacity:.7;transform:scale(1)}}@keyframes mark{50%{opacity:.35}}@keyframes pop{0%{opacity:0;transform:scale(.96)}}@keyframes pop-center{0%{opacity:0;transform:translate(-50%,-48%)scale(.96)}}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}@keyframes pulse{0%{box-shadow:0 0 #ffb45480}to{box-shadow:0 0 0 12px #ffb45400}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (hover:none){.level-card:hover{transform:none}.touch-only{display:inline-grid}.draw-help-mouse,.draw-keys{display:none}.draw-help-touch{display:block}.nav a,.brand{align-items:center;min-height:44px;display:inline-flex}.btn-sm,.segmented button,.chip{min-height:44px}.tray-actions .icon-btn,.fen-row .icon-btn{width:44px;height:44px}.move-cell{min-height:40px}}@media (width>=1041px){.panel-game{height:calc(var(--board-size) + 2 * var(--strip) + 16px);min-height:480px;max-height:none}}@media (width<=1040px){.stage,.stage-lab{--board-size:min(calc(100vw - 72px), calc(100dvh - var(--header) - 120px), 680px);grid-template-columns:minmax(0, calc(var(--board-size) + var(--evalbar) + 10px))}.panel{width:100%;max-height:none;max-width:calc(var(--board-size) + var(--evalbar) + 10px);justify-self:center}.stage-board{width:calc(var(--board-size) + var(--evalbar) + 10px);justify-self:center}.moves{max-height:240px}.home{grid-template-columns:minmax(0,1fr);min-height:0}.feature{grid-template-columns:minmax(0,1fr)}.feature-board{max-width:min(100%,460px)}.feature-flip .feature-board{order:-1}.feature>.feature-board:first-child{order:1}.verdict-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-board{justify-self:center;width:min(100%,520px)}.home-copy{text-align:left}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1041px){.home{--u:clamp(.6px, min(100vw / 1450, (100dvh - var(--header)) / 900), 4px);--h1:calc(72 * var(--u));--lead:max(15px, calc(19 * var(--u)));--fact:max(12.5px, calc(14.5 * var(--u)));--cap:max(12px, calc(13 * var(--u)));--inner:round(down, calc(620 * var(--u)), 8px);grid-template-columns:auto calc(var(--inner) + 20 * var(--u) + 2px);justify-content:center;gap:calc(110 * var(--u));max-width:none;padding:calc(30 * var(--u)) calc(60 * var(--u))}.home h1{white-space:nowrap;font-size:var(--h1);margin:0;line-height:1.04}.home-lead{max-width:26em;margin-top:calc(26 * var(--u));font-size:var(--lead);line-height:1.55}.home-actions{gap:calc(12 * var(--u));margin-top:calc(30 * var(--u));flex-wrap:nowrap}.home-actions .btn-lg{box-sizing:border-box;height:calc(58 * var(--u));min-height:0;padding:0 calc(30 * var(--u));border-radius:calc(12 * var(--u));font-size:max(14px, calc(17 * var(--u)));gap:calc(8 * var(--u))}.home-actions .btn-lg .icon{width:1.1em;height:1.1em}.home-facts{gap:calc(10 * var(--u)) calc(26 * var(--u));margin-top:calc(28 * var(--u));font-size:var(--fact);grid-template-columns:repeat(2,max-content);line-height:1.5;display:grid}.home-facts .icon{width:1.05em;height:1.05em}.home-frame{padding:calc(10 * var(--u));border-radius:calc(20 * var(--u))}.home-caption{height:calc(1.7 * var(--cap));min-height:0;margin-top:calc(12 * var(--u));flex-wrap:nowrap}.home-caption,.home-caption .san,.home-caption .mono{font-size:var(--cap)}}@media (width>=900px) and (width<=1040px) and (orientation:landscape){.home{min-height:calc(100dvh - var(--header));grid-template-columns:minmax(0,1fr) auto;gap:40px}.home-board{width:min(46vw, calc(100dvh - var(--header) - 120px));order:0}}@media (width<=620px){:root{--header:54px}.topbar{gap:8px;padding:0 10px}.topbar .icon-btn{width:40px;height:40px}.settings{position:static}.settings-panel{left:10px;right:10px;top:calc(var(--header) + 6px);width:auto}.brand{gap:7px;font-size:19px}.brand-mark{width:24px;height:24px}.nav a{padding:6px 10px;font-size:14px}.stage,.stage-lab{--board-size:calc(100vw - 42px);gap:12px;padding:8px}.stage-board{width:100%}.board-row{gap:6px}.player-strip,.tray{padding-left:calc(var(--evalbar) + 6px)}.panel:not(.panel-game){padding:12px}.panel{max-width:none}.palette{grid-template-columns:repeat(7,minmax(0,1fr));width:100%;display:grid}.palette-btn{aspect-ratio:1;width:100%;height:auto}.tray-actions{width:100%}.tray-actions .btn{flex:1}.home{gap:24px;padding:16px}.home-actions .btn{white-space:nowrap;flex:auto;padding-inline:18px}.ladder-cards,.verdict-grid{grid-template-columns:minmax(0,1fr)}.ladder-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.level-grid{gap:8px}.level-card{padding:12px}.setup-foot .btn,.setup-foot>div{width:100%}.setup-foot .segmented{display:flex}.chance{grid-template-columns:62px 1fr 32px 76px 24px;gap:4px}.rung-head{grid-template-columns:1fr 54px 72px 36px}}@media (height<=560px) and (width>=620px) and (orientation:landscape){:root{--header:46px;--strip:26px}.topbar{gap:12px}.stage,.stage-lab{--board-size:calc(100dvh - var(--header) - 2 * var(--strip) - 28px);grid-template-columns:calc(var(--board-size) + var(--evalbar) + 10px) minmax(0, 1fr);padding:6px max(10px, env(safe-area-inset-right)) 6px max(10px, env(safe-area-inset-left));gap:12px}.stage-review{--board-size:calc(100dvh - var(--header) - 14px)}.stage-board{justify-self:stretch;gap:4px;width:100%}.pg-head{padding:8px 14px}.pg-head small{display:none}.pg-eval{gap:4px;padding:8px 14px}.chart svg{height:40px}.player-strip{font-size:13px}.player-avatar{border-radius:6px;width:22px;height:22px;font-size:11px}.panel,.panel-game{max-width:none;max-height:calc(100dvh - var(--header) - 14px);justify-self:stretch;overflow-y:auto}.moves{flex:none;min-height:60px;max-height:none;overflow:visible}.home-board{width:min(40vw,70dvh)}.home{grid-template-columns:minmax(0,1fr) auto}.home-board{order:0}}@media (hover:none){.fen-field input{min-height:44px}.footer a{padding:12px 0;display:inline-block}.chance-play{width:40px;height:40px}.chance{grid-template-columns:62px 1fr 32px 70px 40px}}.clock{background:var(--surface-2);min-width:66px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;flex:none;padding:4px 9px;font-size:16px;font-weight:600}.clock-on{background:var(--text);color:#12160a}.clock-low{color:var(--bad)}.clock-on.clock-low{background:var(--bad);color:#12160a}.evalbar-off{visibility:hidden}.setup-switch{flex:280px;width:auto;max-width:400px}.page{width:min(920px,100%);margin:0 auto;padding:clamp(20px,3.5vw,40px) clamp(16px,3vw,32px) 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;margin-bottom:20px;display:flex}.page-head .page-title{margin-bottom:0}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.stat-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.stat strong{font-family:var(--mono);letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:1.2;display:block}.stat small{color:var(--muted);font-size:12.5px}.train-banner{background:color-mix(in srgb, var(--accent) 9%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.queue-banner{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.queue-banner .deep-progress{flex:240px;margin-top:0}.import-names{border:1px solid var(--line);background:var(--bg);width:100%;max-width:280px;color:var(--text);font:inherit;border-radius:10px;margin-top:8px;padding:8px 10px;font-size:13px;display:block}.import-box{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;display:flex}.import-box textarea{border:1px solid var(--line);background:var(--bg);width:100%;min-height:150px;color:var(--text);font-family:var(--mono);resize:vertical;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5}.import-foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.import-actions{flex-wrap:wrap;gap:8px;display:flex}.import-message{color:var(--muted);margin:0;font-size:13.5px}.game-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.game-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:4px;padding-right:8px;transition:background .15s;display:flex}.game-item:hover{background:var(--surface-2)}.game-link{border-radius:12px;flex:1;align-items:center;gap:12px;min-width:0;padding:10px 6px 10px 12px;display:flex}.game-badge{background:var(--surface-3);width:34px;height:34px;color:var(--muted);border-radius:9px;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.game-win{background:color-mix(in srgb, var(--best) 18%, transparent);color:var(--best)}.game-loss{background:color-mix(in srgb, var(--bad) 16%, transparent);color:var(--bad)}.game-main{flex:1;min-width:0}.game-main strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.game-main small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12.5px;display:block;overflow:hidden}.game-accuracy{text-align:right;flex:none;min-width:46px;font-size:15px}.game-accuracy small{font-family:var(--sans);color:var(--muted);font-size:11px;display:block}.game-tool{flex:none;width:38px;height:38px}.game-confirm{flex:none}.empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:12px;padding:36px 20px}.empty strong{color:var(--text);margin-bottom:4px;font-size:16px;display:block}.empty .btn{margin-top:14px}.train-lead{max-width:62ch;color:var(--muted);margin:0 0 20px}.train-start{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.help-note a{color:var(--accent)}@media (width<=620px){.nav{gap:0}.nav a{padding:6px 7px;font-size:13.5px}.nav-wide,.brand-word{display:none}.clock{min-width:58px;padding:3px 7px;font-size:14.5px}.setup-switch{flex-basis:100%;max-width:none}.game-accuracy small{display:none}.game-main small{white-space:normal}}.account-entry{min-width:44px;height:44px;color:var(--muted);border-radius:10px;flex:none;justify-content:center;align-items:center;gap:7px;font-size:14px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.account-entry:hover,.account-entry-on{background:var(--surface-2);color:var(--text)}.account-entry-guest{border:1px solid var(--line);color:var(--text);padding:0 12px}.avatar{border-radius:28%;flex:none;place-items:center;display:inline-grid;overflow:hidden}.avatar img,.avatar svg{width:84%;height:84%;display:block}.player-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sound-row{display:none}.volume-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 12px;display:grid}.volume-row input{width:100%;min-height:28px;accent-color:var(--accent)}.sync-offer{background:color-mix(in srgb, var(--accent) 9%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:10px 24px;font-size:14px;display:flex}.sync-offer-actions{gap:8px;display:flex}.access{flex:1;place-items:start center;padding:clamp(20px,6vh,64px) 16px 48px;display:grid}.access-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:16px;width:min(420px,100%);padding:clamp(20px,4vw,32px);animation:.16s ease-out rise-in;display:flex}.access-mark{display:inline-flex}.access-mark svg,.access-mark img{width:36px;height:36px}.access-card h1{letter-spacing:-.03em;margin:0;font-size:26px;line-height:1.15}.access-lead{color:var(--muted);margin:-6px 0 0}.access-note{color:var(--muted);margin:0;font-size:13px}.access-note a,.access-foot a,.form-row a{color:var(--accent)}.access-foot{text-align:center;color:var(--muted);margin:0;font-size:14px}.access-terms{text-align:center;color:var(--muted);margin:0;font-size:13px;line-height:1.45}.access-terms a{color:var(--text);text-underline-offset:2px;text-decoration:underline}.legal{max-width:720px;line-height:1.6}.legal h2{letter-spacing:-.02em;margin:36px 0 8px;scroll-margin-top:80px;font-size:24px}.legal h3{margin:22px 0 6px;font-size:16px}.legal p,.legal ul{margin:0 0 10px}.legal ul{padding-left:20px}.legal li{margin-bottom:6px}.legal a{color:var(--accent)}.legal-index{flex-wrap:wrap;gap:8px;margin:16px 0 0;display:flex}.legal-index a{border:1px solid var(--line);color:var(--text);border-radius:999px;padding:6px 12px;font-size:14px;text-decoration:none}.access-link{color:var(--muted);background:0 0;border:0;align-self:center;padding:6px 8px;font-size:14px}.access-link:hover{color:var(--text)}.access-card>.btn{align-self:stretch}.form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--muted);font-size:13px;font-weight:600}.field input{border:1px solid var(--line);background:var(--bg);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:10px;padding:8px 12px;transition:border-color .15s}.field input:hover{border-color:#3a404c}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.field input[readonly]{background:var(--surface-2);color:var(--muted);border-color:var(--line-soft);font-family:var(--mono)}.field input[readonly]:hover{border-color:var(--line-soft)}.field input[readonly]:focus{border-color:var(--line);box-shadow:none}.field small{color:var(--muted);font-size:12.5px}.code-input{font-family:var(--mono);letter-spacing:.2em;font-size:20px!important}.password-box{position:relative}.password-box input{padding-right:46px}.password-eye{width:38px;height:38px;color:var(--muted);background:0 0;border:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:3px;right:3px}.password-eye:hover{color:var(--text);background:var(--surface-2)}.meter{align-items:center;gap:10px;margin-top:8px;display:flex}.meter small,.meter-hint{color:var(--muted);font-size:12.5px}.meter-hint{margin-top:6px;display:block}.start-level{border:0;min-width:0;margin:0;padding:0}.start-level legend{padding:0}.start-level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.start-level-option{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;transition:border-color .15s;display:flex;position:relative}.start-level-option:hover{border-color:var(--muted)}.start-level-option input{opacity:0;pointer-events:none;margin:0;position:absolute;inset:0}.start-level-option strong{font-size:14px}.start-level-option span{color:var(--muted);font-size:12.5px;line-height:1.35}.start-level-on,.start-level-on:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.start-level-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}@media (width<=380px){.start-level-grid{grid-template-columns:1fr}}.meter-bars{flex:none;grid-template-columns:repeat(4,22px);gap:3px;display:grid}.meter-bars i{background:var(--line);border-radius:2px;height:4px}.meter-bars .meter-0,.meter-bars .meter-1{background:var(--bad)}.meter-bars .meter-2{background:var(--ok)}.meter-bars .meter-3{background:var(--good)}.meter-bars .meter-4{background:var(--accent)}.form-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.form-actions{flex-wrap:wrap;gap:8px;display:flex}.check{align-items:center;gap:8px;min-height:32px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--accent)}.form-error{color:#ffc2c8;background:#ff5d6c1f;border:1px solid #ff5d6c59;border-radius:10px;margin:0;padding:10px 12px;font-size:14px}.form-done{color:var(--good);align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.form-done .icon{flex:none;width:18px;height:18px}.btn-danger{color:#ffb3bb;background:0 0;border-color:#ff5d6c80}.btn-danger:hover:not(:disabled){border-color:var(--bad);background:#ff5d6c24}.btn:disabled{opacity:.55;cursor:not-allowed}.account-who{align-items:center;gap:14px;min-width:0;display:flex}.account-who>div{min-width:0}.account-name{letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:clamp(22px,3vw,30px);line-height:1.15}.account-tabs{margin:8px 0 16px}.account-tabs .segmented{width:100%;display:flex}.account-section{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:12px;margin-bottom:14px;padding:clamp(16px,3vw,22px);display:flex}.account-section h2{letter-spacing:-.01em;margin:0;font-size:17px}.account-section p{margin:0}.account-section .form{max-width:460px}.avatar-editor{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.avatar-options{gap:10px;display:grid}.avatar-row{flex-wrap:wrap;gap:6px;display:flex}.avatar-pick{border:1px solid var(--line);background:0 0;border-radius:10px;place-items:center;width:44px;height:44px;padding:0;display:grid}.avatar-color{border:2px solid var(--surface);border-radius:50%;width:32px;height:32px;padding:0}.avatar-pick-on{outline:2px solid var(--accent);outline-offset:1px}.status-on,.status-off{flex-wrap:wrap;align-items:center;gap:4px 8px;font-weight:600;display:flex}.status-on i,.status-off i{background:var(--muted);border-radius:50%;width:9px;height:9px}.status-on i{background:var(--accent)}.status-on .muted{font-size:13.5px;font-weight:400}.status-line{font-weight:500}.totp-setup{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.totp-setup p{color:var(--muted);margin:0 0 8px;font-size:14px}.totp-setup>div{flex:200px}.qr{border-radius:10px;flex:none;width:172px;height:172px}.totp-secret{background:var(--bg);border:1px solid var(--line);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:8px;padding:8px 10px;font-size:13px;display:block}.recovery{background:var(--surface-2);border:1px solid color-mix(in srgb, var(--you) 45%, var(--line));border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.recovery-codes{-webkit-user-select:all;user-select:all;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}.activity,.device-list,.inbox{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.activity li{border-top:1px solid var(--line-soft);flex-direction:column;padding:9px 0;display:flex}.activity li:first-child{border-top:0}.activity strong{font-weight:500}.activity small,.device-list small{color:var(--muted);font-size:12.5px}.device-list li{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.device-list li:first-child{border-top:0}.device-list small{display:block}.device-tag{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-radius:999px;margin-left:4px;padding:1px 7px;font-size:12px;font-weight:600}.inbox{gap:8px}.inbox li{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;display:flex}.inbox p{color:var(--muted);margin:0;font-size:14px}.inbox-head strong{display:block}.inbox-head small{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px}@media (width<=620px){.sound-btn{display:none!important}.sound-row{display:flex}.account-entry{min-width:40px;height:40px}.account-entry-guest{color:var(--muted);border:0;padding:0}.account-entry-guest span{display:none}.sync-offer{padding:10px 14px}.account-tabs .segmented button{padding-inline:6px}}.lesson-page{width:min(1040px,100%)}.lesson-page .eyebrow{margin-bottom:6px;display:block}.lesson-hero{grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:center;gap:clamp(20px,4vw,48px);margin-bottom:28px;display:grid}.lesson-hero .page-title{margin-bottom:14px}.lesson-hero .train-lead{margin-bottom:20px;line-height:1.6}.lesson-hero-board{background:#15181d;border:1px solid #23272e;border-radius:16px;padding:8px;box-shadow:0 20px 50px #00000059;container-type:inline-size}.lesson-meter{max-width:360px;color:var(--muted);flex-direction:column;gap:6px;margin-top:20px;font-size:13px;display:flex}.lesson-meter strong{color:var(--text);font-family:var(--mono)}.lesson-meter i{background:var(--surface-2);border-radius:999px;height:6px;display:block;overflow:hidden}.lesson-meter b{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--good));height:100%;transition:width .5s;display:block}.chapter-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.chapter-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;transition:border-color .2s,background .2s;display:grid}.chapter-card:hover{background:color-mix(in srgb, var(--surface-2) 50%, var(--surface));border-color:#3a404c}.chapter-card-done{border-color:color-mix(in srgb, var(--good) 40%, var(--line))}.chapter-number{background:var(--surface-2);width:38px;height:38px;font:600 15px/1 var(--mono);color:var(--accent);border-radius:11px;align-self:start;place-items:center;display:grid}.chapter-card-done .chapter-number{background:color-mix(in srgb, var(--good) 18%, transparent);color:var(--good)}.chapter-copy strong{font-size:16px;display:block}.chapter-copy p{color:var(--muted);margin:4px 0 10px;font-size:14px;line-height:1.5}.chapter-progress{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:inline-flex}.chapter-dots{gap:4px;display:inline-flex}.chapter-dots i{background:var(--surface-3);border-radius:50%;width:8px;height:8px;box-shadow:inset 0 0 0 1px #3a404c}.chapter-dots i.on{background:var(--good);box-shadow:0 0 8px color-mix(in srgb, var(--good) 60%, transparent)}.chapter-actions{flex-direction:column;gap:6px;display:flex}.stage-lesson{--board-size:min(calc(100dvh - var(--header) - 74px), calc(100vw - 540px));grid-template-columns:var(--board-size) minmax(340px, 440px)}.stage-lesson .stage-board{width:var(--board-size)}.stage-lesson .piece{transition-timing-function:cubic-bezier(.22,.8,.24,1);transition-duration:.3s!important}.stage-lesson .piece-travel{animation-duration:.3s}.stage-lesson .arrow{transform-box:view-box;animation:.22s cubic-bezier(.2,.8,.2,1) arrow-grow}@keyframes arrow-grow{0%{opacity:.6;transform:scale(.3)}}.rich .tok-later{opacity:.42}.rich>span,.rich .tok,.rich .tok-piece{transition:opacity .12s}.stage-lesson .arrow-look{opacity:.92}.stage-lesson .sq{--halo:var(--brilliant)}.stage-lesson .sq-enemy{--halo:var(--bad)}.stage-lesson .sq-mark:before{box-shadow:inset 0 0 0 clamp(2px, .6cqw, 4px) var(--halo), inset 0 0 18px color-mix(in srgb, var(--halo) 45%, transparent);animation:2.2s ease-in-out .6s infinite halo}.sq-focus:after{content:"";z-index:2;background:color-mix(in srgb, var(--halo,var(--brilliant)) 34%, transparent);box-shadow:inset 0 0 0 clamp(3px, .8cqw, 6px) var(--halo,var(--brilliant)), 0 0 24px 4px color-mix(in srgb, var(--halo,var(--brilliant)) 55%, transparent);pointer-events:none;animation:1.6s ease-in-out .6s infinite halo;position:absolute;inset:0}.sq-name{z-index:5;background:var(--halo,var(--brilliant));color:#06121c;font:700 clamp(9px, 1.6cqw, 12px)/1.45 var(--mono);pointer-events:none;border-radius:999px;padding:0 5px;position:absolute;top:3%;right:3%;box-shadow:0 2px 8px #0006}@keyframes halo{0%,to{opacity:1;filter:brightness()}50%{opacity:.55;filter:brightness(1.35)}}@keyframes focus-in{0%{opacity:0}}@keyframes name-in{0%{opacity:0;transform:translateY(3px)}}@keyframes arrow-in{0%{opacity:0}}.lesson-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;padding:2px 4px;font-size:12.5px;display:flex}.lesson-legend span{align-items:center;gap:6px;display:inline-flex}.legend-arrow{border-radius:3px;width:18px;height:5px;display:inline-block}.legend-plan{background:var(--best-arrow)}.legend-threat{background:var(--you)}.legend-mine{background:var(--brilliant)}.legend-ring{width:13px;height:13px;box-shadow:inset 0 0 0 2px var(--brilliant), 0 0 6px var(--brilliant);border-radius:3px;display:inline-block}.lesson-legend-tip{opacity:.8;flex-basis:100%;font-size:12px}.lesson-panel{gap:14px}.lesson-head{justify-content:space-between;align-items:center;margin:-4px -6px 0;display:flex}.lesson-count{font-variant-numeric:tabular-nums;font-size:12.5px}.lesson-panel .eyebrow{margin-bottom:4px;display:block}.lesson-say{background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;animation:.35s cubic-bezier(.2,.8,.2,1) lesson-in;display:flex}.lesson-say-goal{border-left-color:var(--good);background:color-mix(in srgb, var(--good) 8%, var(--surface-2))}.lesson-say-bad,.lesson-say-trap{border-left-color:var(--bad);background:color-mix(in srgb, var(--bad) 6%, var(--surface-2))}.lesson-say-wrong{border-left-color:var(--you)}.lesson-say-reply{border-left-color:#80889a}@keyframes lesson-in{0%{opacity:0;transform:translateY(6px)}}.mover-tag{color:var(--muted);align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:inline-flex}.mover-tag .player-dot{width:10px;height:10px}.rich{margin:0;font-size:16px;line-height:1.75}.tok{font:600 .92em/1.5 var(--mono);vertical-align:baseline;cursor:pointer;border:1px solid #0000;border-radius:7px;align-items:center;gap:1px;margin:0 1px;padding:0 6px;transition:background .15s,border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.tok-move{background:color-mix(in srgb, var(--accent) 13%, transparent);color:var(--accent)}.tok-move.tok-b{color:var(--text);background:#ffffff12}.tok-square{background:color-mix(in srgb, var(--brilliant) 14%, transparent);color:var(--brilliant)}.tok-square.tok-enemy,.tok-move.tok-b{background:color-mix(in srgb, var(--bad) 14%, transparent);color:#ff8b95}.tok-enemy:hover,.tok-enemy:focus-visible,.tok-enemy.tok-now,.tok-move.tok-b:hover,.tok-move.tok-b:focus-visible,.tok-move.tok-b.tok-now{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb, var(--bad) 22%, transparent);background:color-mix(in srgb, var(--bad) 22%, transparent);color:var(--text)}.tok:hover,.tok:focus-visible,.tok-now{border-color:var(--brilliant);box-shadow:0 0 0 3px color-mix(in srgb, var(--brilliant) 22%, transparent);color:var(--text);background:color-mix(in srgb, var(--brilliant) 22%, transparent)}.tok-icon{filter:drop-shadow(0 1px 1px #00000080);flex:none;width:1.3em;height:1.3em;margin:-.2em 0 -.25em}.tok-number{opacity:.7;letter-spacing:-.12em;margin-right:1px;font-weight:500}.tok-piece{white-space:nowrap;border-radius:6px;align-items:baseline;gap:2px;transition:background .15s;display:inline-flex}.tok-piece .tok-icon{align-self:center}.tok-piece.tok-now{background:color-mix(in srgb, var(--brilliant) 18%, transparent)}.goal-list,.intro-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.goal-list li{grid-template-columns:18px 1fr;align-items:start;gap:8px;display:grid}.goal-list li>.icon{width:18px;height:18px;color:var(--good);margin-top:5px}.goal-list .rich{font-size:15px}.intro-list{border-top:1px solid var(--line);gap:4px;padding-top:8px}.intro-list li{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.intro-list .icon{width:14px;height:14px;color:var(--accent)}.lesson-transport{flex-direction:column;gap:10px;display:flex}.lesson-scrub{--fill:0%;appearance:none;cursor:pointer;background:0 0;width:100%;height:18px;margin:0}.lesson-scrub::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--fill), var(--surface-3) var(--fill));border-radius:999px;height:5px}.lesson-scrub::-moz-range-track{background:linear-gradient(90deg, var(--accent) var(--fill), var(--surface-3) var(--fill));border-radius:999px;height:5px}.lesson-scrub::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text);width:15px;height:15px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent);border-radius:50%;margin-top:-5px;transition:transform .15s}.lesson-scrub::-moz-range-thumb{background:var(--text);width:15px;height:15px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent);border:0;border-radius:50%}.lesson-scrub:hover::-webkit-slider-thumb{transform:scale(1.2)}.lesson-controls{justify-content:center;align-items:center;gap:6px;display:flex}.lesson-controls .icon-btn,.lesson-voice-row .icon-btn{width:44px;height:44px}.lesson-panel .icon-btn:disabled{opacity:.35;cursor:default}.lesson-play{min-width:136px}.lesson-step{text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.lesson-voice-row{align-items:center;gap:10px;font-size:13px;display:flex}.voice-settings{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;padding:12px;animation:.25s ease-out lesson-in;display:flex}.move-strip{scrollbar-width:thin;scrollbar-color:var(--line) transparent;gap:4px;padding:2px 2px 6px;display:flex;position:relative;overflow-x:auto}.strip-move{border:1px solid var(--line);background:var(--surface);min-height:32px;font:600 13px/1.4 var(--mono);color:var(--text);border-radius:8px;flex:none;align-items:center;gap:1px;padding:3px 8px;transition:background .15s,border-color .15s,opacity .2s;display:inline-flex}.strip-move .tok-icon{width:1.35em;height:1.35em}.strip-move:hover:not(:disabled){border-color:var(--accent)}.strip-move:disabled{cursor:default;opacity:1}.strip-move.strip-later{opacity:.4}.strip-now{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.strip-now .tok-number{opacity:.8}.lesson-actions{flex-wrap:wrap;gap:8px;display:flex}.lesson-actions .btn{flex:auto}.practice-score{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.practice-score .icon{width:14px;height:14px}.lesson-panel .turn-tag{margin:0}.practice-done{background:color-mix(in srgb, var(--good) 10%, var(--surface-2));border:1px solid color-mix(in srgb, var(--good) 40%, var(--line));border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:14px 16px;animation:.4s ease-out lesson-in;display:grid}.practice-done p{color:var(--muted);margin:4px 0 0;font-size:14px;line-height:1.5}.practice-done-icon{background:var(--good);color:#06201a;border-radius:50%;place-items:center;width:36px;height:36px;animation:.35s cubic-bezier(.3,1.6,.5,1) pop;display:grid}.verdict{--tone:var(--good);background:color-mix(in srgb, var(--tone) 10%, var(--surface-2));border:1px solid color-mix(in srgb, var(--tone) 45%, var(--line));border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:14px 16px;animation:.28s cubic-bezier(.2,.8,.2,1) verdict-in;display:grid}.verdict-wrong,.verdict-trap{--tone:var(--bad);animation:.28s cubic-bezier(.2,.8,.2,1) verdict-in,.36s ease-in-out 50ms verdict-shake}.verdict-icon{background:var(--tone);color:#0b0d12;border-radius:50%;place-items:center;width:34px;height:34px;animation:.32s cubic-bezier(.3,1.6,.5,1) pop;display:grid}.verdict-icon .icon{stroke-width:2.6px;width:20px;height:20px}.verdict-body{flex-direction:column;gap:6px;min-width:0;display:flex}.verdict-body strong{color:var(--tone);font-size:16px}.verdict-sub{color:var(--muted);font-size:14px;line-height:1.45}.verdict-why{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-self:flex-start;padding:0;font-size:13.5px;font-weight:600;text-decoration:underline}.verdict .rich{margin:2px 0 0}@keyframes verdict-in{0%{opacity:0;transform:translateY(6px)scale(.98)}}@keyframes verdict-shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}@media (prefers-reduced-motion:reduce){.verdict,.verdict-icon{animation:none}}@media (width<=1040px){.stage-lesson{--board-size:min(calc(100vw - 40px), calc(100dvh - var(--header) - 240px), 680px);grid-template-columns:minmax(0, var(--board-size))}.stage-lesson .stage-board{justify-self:center}.stage-lesson .panel{max-width:var(--board-size)}.lesson-hero{grid-template-columns:minmax(0,1fr) minmax(180px,240px)}}@media (width<=620px){.stage-lesson{--board-size:calc(100vw - 16px)}.lesson-hero{grid-template-columns:minmax(0,1fr)}.lesson-hero-board{order:-1;justify-self:center;width:min(72vw,300px)}.chapter-card{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px}.chapter-actions{flex-direction:row;grid-column:1/-1}.chapter-actions .btn{flex:1}.rich{font-size:15.5px}.lesson-legend-tip{display:none}}@media (height<=560px) and (width>=620px) and (orientation:landscape){.stage-lesson{--board-size:calc(100dvh - var(--header) - 14px);grid-template-columns:var(--board-size) minmax(0, 1fr)}.stage-lesson .panel{max-width:none}.stage-lesson .lesson-legend{display:none}}@media (prefers-reduced-motion:reduce){.stage-lesson .sq-mark:before,.sq-focus:after{animation:none}}.lesson-layout{flex:1;grid-template-columns:248px minmax(0,1fr);align-items:start;gap:0;width:100%;max-width:1640px;margin:0 auto;display:grid}.lesson-layout .stage-lesson{--board-size:min(calc(100dvh - var(--header) - 64px), calc(100vw - 820px));padding-left:16px}.chapter-rail{top:var(--header);max-height:calc(100dvh - var(--header));border-right:1px solid var(--line-soft);scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;gap:12px;padding:14px 10px 14px 16px;display:flex;position:sticky;overflow-y:auto}.rail-head{flex-direction:column;gap:6px;padding:0 6px 4px;display:flex}.rail-back{color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:15px;font-weight:600;display:inline-flex}.rail-back .icon{width:16px;height:16px;color:var(--muted)}.rail-back:hover .icon{color:var(--accent)}.rail-sum{color:var(--muted);font-size:12px}.rail-meter{background:var(--surface-2);border-radius:999px;height:4px;display:block;overflow:hidden}.rail-meter b{background:linear-gradient(90deg, var(--accent), var(--good));border-radius:inherit;height:100%;transition:width .4s;display:block}.rail-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.rail-link{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:28px 1fr;align-items:start;gap:10px;padding:8px 6px;transition:background .15s;display:grid}.rail-link:hover{background:var(--surface-2)}.rail-open>.rail-link{background:color-mix(in srgb, var(--accent) 10%, var(--surface));box-shadow:inset 2px 0 0 var(--accent)}.rail-num{background:var(--surface-2);width:28px;height:28px;color:var(--muted);font:600 13px/1 var(--mono);border-radius:8px;place-items:center;display:grid}.rail-num .icon{width:15px;height:15px}.rail-num-seen{color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent)}.rail-num-done{background:color-mix(in srgb, var(--good) 18%, transparent);color:var(--good)}.rail-open .rail-num{background:var(--accent);color:var(--accent-ink)}.rail-title{flex-direction:column;gap:2px;font-size:13.5px;font-weight:600;line-height:1.3;display:flex}.rail-title small{color:var(--muted);font-size:11.5px;font-weight:500}.rail-lines{flex-direction:column;gap:2px;margin:4px 0 8px 44px;padding:0;list-style:none;display:flex}.rail-lines li{color:var(--muted);border-radius:8px;grid-template-columns:8px 1fr;align-items:center;gap:8px;padding:5px 8px 7px;font-size:12.5px;line-height:1.3;display:grid;position:relative}.rail-lines li>i{background:var(--surface-3);border-radius:50%;width:8px;height:8px;box-shadow:inset 0 0 0 1px #3a404c}.rail-lines li>i.on{background:var(--good);box-shadow:none}.rail-line-now{background:var(--surface-2);font-weight:600;color:var(--text)!important}.rail-line-bar{background:var(--surface-3);border-radius:999px;height:2px;position:absolute;bottom:2px;left:8px;right:8px;overflow:hidden}.rail-line-bar b{background:var(--accent);height:100%;transition:width .4s;display:block}.rail-switch{grid-template-columns:1fr 1fr;gap:6px;padding:4px 6px 0;display:grid}.rail-switch .btn{padding-inline:8px}.btn.btn-on{background:var(--surface-3);border-color:var(--accent);color:var(--accent)}.lesson-head{align-items:flex-start;gap:8px;margin:0}.lesson-head .eyebrow{margin:6px 0 0}.lesson-panel .panel-title{margin-top:-6px}.voice-corner{flex:none;gap:6px;display:flex;position:relative}.icon-btn-sm{border-radius:9px;width:36px;height:36px}.icon-btn-sm .icon{width:18px;height:18px}.sound-blocked{background:color-mix(in srgb, var(--brilliant) 12%, var(--surface-2));border:1px solid color-mix(in srgb, var(--brilliant) 40%, var(--line));border-radius:10px;align-items:center;gap:8px;margin:0;padding:10px 12px;font-size:13.5px;animation:.3s ease-out lesson-in;display:flex}.sound-blocked .icon{width:18px;height:18px;color:var(--brilliant)}.legend-look{background:var(--brilliant)}.legend-enemy{background:var(--bad)}.legend-ring-enemy{box-shadow:inset 0 0 0 2px var(--bad), 0 0 6px var(--bad)}.tok-castle{font-family:var(--sans,inherit);font-weight:600}.practice-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:-6px;display:flex}.practice-title .panel-title{margin:0}.chapter-seen{align-items:center;gap:4px;display:inline-flex}.chapter-seen .icon{width:14px;height:14px}.chapter-seen.on{color:var(--accent)}.chapter-end{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 14%, var(--surface-2)), var(--surface-2));border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));border-radius:14px;flex-direction:column;gap:12px;padding:16px;animation:.4s cubic-bezier(.2,.8,.2,1) lesson-in;display:flex}.chapter-end-badge{color:var(--accent);align-items:center;gap:8px;font-weight:700;display:inline-flex}.chapter-end-badge .icon{background:var(--accent);width:22px;height:22px;color:var(--accent-ink);border-radius:50%;padding:3px}.chapter-end-actions{flex-direction:column;gap:8px;display:flex}.chapter-next{text-align:left;justify-content:space-between}.chapter-next small{opacity:.75;font-size:12px;font-weight:600;display:block}.chapter-end-row{flex-wrap:wrap;gap:8px;display:flex}.chapter-end-row .btn{flex:auto}@media (width<=1280px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-layout .stage-lesson{--board-size:min(calc(100dvh - var(--header) - 140px), calc(100vw - 540px));padding-left:20px}.chapter-rail{border-right:0;border-bottom:1px solid var(--line-soft);flex-direction:row;align-items:center;gap:10px;max-height:none;padding:8px 16px;position:static;overflow:auto hidden}.rail-head{flex:none;padding:0}.rail-sum,.rail-meter,.rail-lines,.rail-switch,.rail-title small{display:none}.rail-back{background:var(--surface-2);border-radius:9px;justify-content:center;gap:0;width:36px;height:36px;font-size:0}.rail-back .icon{width:18px;height:18px}.rail-list{flex-direction:row;gap:4px}.rail-link{white-space:nowrap;grid-template-columns:26px auto;align-items:center;gap:8px;padding:5px 10px 5px 5px}.rail-num{width:26px;height:26px}.rail-title{font-size:13px}.rail-item:not(.rail-open) .rail-title{display:none}.rail-item:not(.rail-open) .rail-link{padding-right:5px}}@media (width<=1040px){.lesson-layout .stage-lesson{--board-size:min(calc(100vw - 40px), calc(100dvh - var(--header) - 300px), 680px);padding-left:20px}}@media (width<=620px){.lesson-layout .stage-lesson{--board-size:calc(100vw - 16px);padding-left:8px}.chapter-rail{padding:6px 8px}}@media (height<=560px) and (width>=620px) and (orientation:landscape){.lesson-layout .stage-lesson{--board-size:calc(100dvh - var(--header) - 66px)}}.eyebrow-link{text-decoration:none;display:inline-block}.eyebrow-link:hover{text-decoration:underline}.link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:14px;padding:4px 0;font-size:14px;font-weight:600;display:inline-flex}.link-btn:hover{text-decoration:underline}.goal-lead .rich{color:var(--accent);margin:0;font-size:15px;font-weight:600}.welcome-page .lesson-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.welcome-text{flex-direction:column;gap:10px;margin:8px 0 22px;display:flex}.welcome-part{border:1px solid #0000;border-left:3px solid var(--line);border-radius:12px;padding:10px 14px;transition:background .25s,border-color .25s,opacity .25s}.welcome-part .rich{margin:0;font-size:15.5px;line-height:1.6}.welcome-now{background:var(--surface-2);border-color:var(--line);border-left-color:var(--accent)}.welcome-later{opacity:.55}.course-card{background:var(--surface);border:1px solid var(--line);color:inherit;border-radius:14px;grid-template-columns:200px 1fr auto;align-items:center;gap:18px;padding:18px;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.course-card:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.course-card-cover .poster{transition:transform .2s;box-shadow:0 16px 36px #00000073}.course-card:hover .course-card-cover .poster{transform:translateY(-3px)rotate(-1deg)}.course-card strong{font-size:18px;display:block}.course-card p{color:var(--muted);margin:4px 0 8px;font-size:14px;line-height:1.5}.course-card small{color:var(--muted);font-size:13px}.course-card>.icon{color:var(--accent)}@media (width<=560px){.course-card{grid-template-columns:1fr}.course-card-cover{max-width:240px}.course-card>.icon{display:none}}@media (width<=900px){.topbar{gap:14px}.nav a{padding:8px 10px}}@media (width<=620px){.topbar{gap:8px}.nav{scrollbar-width:none;flex:auto;min-width:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),#0000)}.nav::-webkit-scrollbar{display:none}.nav a{white-space:nowrap;flex:none;padding:6px 8px}}.move-sheet{flex-direction:column;gap:6px;display:flex}.move-sheet-title{color:var(--muted);font-size:12px;font-weight:600}.move-sheet .move-strip{gap:10px}.strip-turn{flex:none;align-items:center;gap:3px;display:inline-flex}.strip-number{min-width:1.4em;font:600 12px/1 var(--mono);color:var(--muted);text-align:right}.strip-move.strip-b .tok-icon{filter:drop-shadow(0 0 1px #fffffff2)drop-shadow(0 0 2px #ffffff80)}.chapter-end-group{flex-direction:column;gap:8px;display:flex}.chapter-end-group+.chapter-end-group{border-top:1px solid var(--line);padding-top:12px}.chapter-end-label{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.poster{aspect-ratio:3/4;isolation:isolate;background:radial-gradient(58% 40% at 50% 44%, hsl(var(--hue) 85% 66% / .6), transparent 72%), linear-gradient(180deg, hsl(var(--hue) 55% 30%), hsl(var(--hue) 55% 14%) 60%, hsl(var(--hue) 45% 7%));box-shadow:inset 0 0 0 1px hsl(var(--hue) 60% 70% / .28), inset 0 1px 0 hsl(var(--hue) 80% 85% / .25);border-radius:14px;display:block;position:relative;overflow:hidden;container-type:inline-size}.poster:after{content:"";z-index:3;pointer-events:none;border-radius:inherit;background:linear-gradient(125deg,#ffffff29,#0000 32%),radial-gradient(130% 90% at 50% 120%,#0000 55%,#00000073);position:absolute;inset:0}.poster-board{z-index:-1;transform-origin:50% 100%;background:repeating-conic-gradient(hsl(var(--hue) 55% 42%) 0 25%, hsl(var(--hue) 55% 18%) 0 50%) 0 0 / 12.5% 12.5%;height:170%;position:absolute;bottom:0;left:-45%;right:-45%;transform:perspective(90cqw)rotateX(48deg);-webkit-mask-image:linear-gradient(#0000,#000 40%);mask-image:linear-gradient(#0000,#000 40%)}.poster-pieces{z-index:1;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:10% 3% 27%}.poster-pieces:after{content:"";z-index:-1;background:radial-gradient(closest-side,#000000a6,#0000);border-radius:50%;height:9%;position:absolute;bottom:-3%;left:22%;right:22%}.poster-piece{width:70%;height:auto;filter:drop-shadow(0 1.5cqw 2.5cqw #0000008c) drop-shadow(0 0 6cqw hsl(var(--hue) 90% 70% / .35))}.poster-pieces-2 .poster-piece{width:60%}.poster-pieces-2 .poster-piece:first-child{transform-origin:bottom;margin-right:-16%;transform:scale(.84)}.poster-pieces-3 .poster-piece{width:44%}.poster-pieces-3 .poster-piece:not(:nth-child(2)){transform-origin:bottom;transform:scale(.8)}.poster-pieces-3 .poster-piece:first-child{margin-right:-12%}.poster-pieces-3 .poster-piece:last-child{margin-left:-12%}.poster-caption{z-index:2;text-align:center;background:linear-gradient(#0000,#000000b3 60%);flex-direction:column;align-items:center;gap:1.5cqw;padding:14cqw 7cqw 7cqw;display:flex;position:absolute;inset:auto 0 0}.poster-caption strong{letter-spacing:-.02em;color:#fff;text-shadow:0 2px 12px #0009;font-size:10.5cqw;line-height:1}.poster-caption small{font:700 4.6cqw/1.3 var(--mono);letter-spacing:.02em;color:hsl(var(--hue) 80% 78%)}.poster-course .poster-pieces{inset:9% 3% 33%}.poster-kicker{z-index:2;text-align:center;letter-spacing:.18em;text-transform:uppercase;color:hsl(var(--hue) 80% 82%);font-size:4.2cqw;font-weight:800;position:absolute;top:6cqw;left:0;right:0}.poster-num{z-index:4;color:#1b1405;background:#f2c94c;border-radius:9px;place-items:center;min-width:30px;height:30px;padding:0 6px;font-size:15px;font-weight:800;display:grid;position:absolute;top:10px;left:10px;box-shadow:0 2px 8px #00000059}.poster-num-seen{color:#14161a;background:#e9ecef}.poster-flags{z-index:4;color:#fff;background:#0000008c;border-radius:8px;gap:4px;padding:4px 6px;display:flex;position:absolute;top:10px;right:10px}.poster-flags .icon{width:15px;height:15px}.poster-flags .off{opacity:.35}.poster-pill{z-index:4;border:1px solid hsl(var(--hue) 60% 55% / .6);color:#fff;background:#080c12c7;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:10px;left:10px}.poster-pill i{background:hsl(var(--hue) 75% 60%);border-radius:50%;width:6px;height:6px}.poster-move{z-index:4;color:#fff;font:700 12px/1.3 var(--mono);background:#0000008c;border-radius:8px;padding:3px 8px;position:absolute;bottom:44px;left:10px}.cover-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px 14px;margin:0;padding:0;list-style:none;display:grid}.cover-card{width:100%;color:inherit;font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:8px;padding:0;display:flex}.cover-card .poster{transition:transform .2s,box-shadow .2s}.cover-card:hover .poster,.cover-card:focus-visible .poster{box-shadow:inset 0 0 0 2px var(--accent), 0 14px 30px #00000073;transform:translateY(-3px)}.cover-card strong{font-size:15px;line-height:1.25}.cover-card small{color:var(--muted);font-size:12.5px}.cover-status{justify-content:center;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.cover-status i{background:var(--muted);border-radius:50%;width:7px;height:7px}.cover-status.on i{background:var(--good)}.cover-status.done i{background:var(--accent)}.cover-card:disabled{cursor:not-allowed}.cover-card-locked .poster{filter:grayscale(.85)brightness(.55)}.cover-card-locked:hover .poster{box-shadow:none;transform:none}.poster-lock{z-index:5;color:#fff;place-items:center;display:grid;position:absolute;inset:0}.poster-lock .icon{box-sizing:content-box;background:#0000008c;border-radius:50%;width:34px;height:34px;padding:9px}.cover-status-locked,.chapter-locked{color:var(--muted);text-wrap:balance;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.cover-status-locked{justify-content:center}.cover-status-locked .icon,.chapter-locked .icon{flex:none;width:14px;height:14px}.chapter-card-locked{opacity:.6}.rail-link:disabled{cursor:not-allowed;opacity:.5}.rail-link:disabled:hover{background:0 0}@media (width<=560px){.cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}}.list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 14px;display:flex}.list-head h2{margin:0;font-size:18px}.lesson-hero-cover{justify-self:center;width:min(300px,100%)}.lesson-hero-cover .poster{box-shadow:0 20px 50px #00000073}.chapter-card-welcome .chapter-number{background:var(--accent);color:var(--accent-ink)}.course-card-cover{width:100%}.poster-art{z-index:0;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.poster-image{background:#0c0e11}.poster-image .poster-caption{text-align:left;background:linear-gradient(#0000,#06080ad9 55%);align-items:flex-start}.poster-image .poster-caption strong{font-size:11.5cqw}.poster-image .poster-caption small{color:var(--accent)}.poster-image .poster-kicker{color:var(--accent);letter-spacing:.12em;background:#0c0e11b3;border:1px solid #c6f45c80;border-radius:999px;padding:1.2cqw 3cqw;left:7cqw;right:auto}.reset-course{align-self:center;width:48px;height:48px}.reset-ask{background:#ff5d6c14;border:1px solid #ff5d6c66;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;font-size:14px;display:flex}.reset-ask span{flex:220px}.play-choices{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.play-choices li{display:flex}.play-choice{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--text);flex:1;grid-template-rows:auto 1fr;grid-template-columns:auto 1fr;align-items:start;gap:6px 14px;padding:18px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;display:grid}a.play-choice:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-1px)}.play-choice-icon{background:var(--surface-2);width:44px;height:44px;color:var(--accent);border-radius:12px;grid-row:span 2;place-items:center;display:grid}.play-choice-copy{flex-direction:column;gap:4px;display:flex}.play-choice-copy strong{letter-spacing:-.01em;font-size:17px}.play-choice-copy small{color:var(--muted);font-size:14px;line-height:1.45}.play-choice-tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;grid-column:2;justify-self:start;padding:2px 9px;font-size:12px;font-weight:600}.play-choice-soon{opacity:.6;cursor:default}.play-choice-soon .play-choice-icon{color:var(--muted)}.play-resume{border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;text-decoration:none;display:flex}.play-resume span{flex-direction:column;gap:2px;display:flex}.play-resume small{opacity:.8}.play-resume:hover{filter:brightness(1.05)}.wall .btn{width:100%}.friend-card{width:min(460px,100%)}.friend-card .segmented{flex-wrap:wrap;display:flex}.friend-link{gap:8px;display:flex}.friend-link input{border:1px solid var(--line);background:var(--bg);min-width:0;min-height:44px;color:var(--text);border-radius:10px;flex:1;padding:8px 12px;font-size:13px}.friend-link input:focus{border-color:var(--accent);outline:none}.friend-qr{align-self:center}.friend-wait{color:var(--muted);justify-content:center;align-items:center;gap:10px;margin:0;font-size:14px;display:flex}.presence{background:#5a616d;border-radius:50%;flex:none;width:8px;height:8px}.presence-on{background:var(--accent)}.access-foot a .icon,.access-foot a svg{vertical-align:-2px;width:14px;height:14px}.challenge-page{flex-direction:column;gap:16px;display:flex}.challenge-page .page-title{margin-bottom:0}.challenge-options{flex-wrap:wrap;gap:16px 24px;display:flex}.challenge-options .segmented{flex-wrap:wrap;display:flex}.challenge-notice{margin:0}.challenge-search input[type=search]{border:1px solid var(--line);background:var(--bg);width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:10px;padding:8px 14px}.challenge-search input[type=search]:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);outline:none}.player-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.player-list li{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);align-items:center;gap:12px;padding:10px 12px;display:flex}.player-list-name{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.player-list-name strong,.player-list-name small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.challenge-inbox{z-index:50;flex-direction:column;gap:10px;width:min(380px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.challenge-card{border-radius:var(--radius);border:1px solid var(--accent);background:#15181efa;flex-direction:column;gap:12px;padding:14px;animation:.18s ease-out rise-in;display:flex;box-shadow:0 18px 50px #0000008c}.challenge-card-head{align-items:center;gap:10px;display:flex}.challenge-card-head>span:nth-child(2){flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.challenge-card-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.seek-page{flex-direction:column;gap:16px;display:flex}.seek-page .page-title{margin-bottom:0}.seek-rating{margin:0;font-size:16px}.seek-rating strong{color:var(--accent);font-size:20px}.seek-choices{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.seek-choice{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);width:100%;color:var(--text);flex-direction:column;align-items:center;gap:4px;padding:22px 12px;transition:border-color .15s,background .15s,transform .15s;display:flex}.seek-choice:hover{border-color:var(--accent);background:var(--surface-2);transform:translateY(-1px)}.seek-choice strong{letter-spacing:-.02em;font-size:26px}.seek-choice small{color:var(--muted);font-size:13px}.seek-waiting{border-radius:var(--radius);background:var(--surface);border:1px solid var(--accent);align-items:center;gap:14px;padding:18px;display:flex}.seek-waiting>div{flex-direction:column;flex:1;gap:2px;display:flex}.seek-page .note svg{vertical-align:-2px;width:14px;height:14px;color:var(--accent)}.rating-up{color:var(--accent)}.rating-down{color:#ff8f9a}.admin-page{width:min(1160px,100%)}.admin-updated{margin-top:6px;font-size:13px}.admin-tabs{margin-bottom:18px}.admin-tab-dot{border-radius:50%;width:7px;height:7px;margin-left:2px;display:inline-block}.admin-tab-dot-danger{background:var(--bad)}.admin-tab-dot-warn{background:var(--warn)}.admin-overview,.admin-users,.admin-costs{flex-direction:column;gap:14px;display:flex}.admin-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:14px;min-width:0;padding:clamp(16px,2.4vw,20px);display:flex}.admin-card>header{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.admin-card h2{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.admin-card-aside{color:var(--muted);text-align:right;font-size:13px}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.admin-card-wide{grid-column:1/-1}.admin-fine{margin:0;font-size:13px;line-height:1.45}.admin-ok{color:var(--good);align-items:center;gap:7px;display:inline-flex}.admin-bad{color:var(--bad)}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.admin-stats-tight{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.admin-now .admin-stat{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:16px 18px}.admin-stat{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-stat-label{color:var(--muted);align-items:center;gap:7px;font-size:12.5px;font-weight:500;display:inline-flex}.admin-stat-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(24px,3vw,32px);font-weight:650;line-height:1.05}.admin-stats-tight .admin-stat-value{font-size:22px}.admin-stat small{font-size:12.5px}.admin-live-dot{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px;position:relative}.admin-live-dot:after{content:"";border:2px solid var(--good);opacity:0;border-radius:50%;animation:2.2s ease-out infinite admin-pulse;position:absolute;inset:-4px}@keyframes admin-pulse{0%{opacity:.7;transform:scale(.5)}to{opacity:0;transform:scale(1.4)}}.admin-calm{border-radius:var(--radius);background:linear-gradient(90deg, #5fdcc01a, transparent 70%), var(--surface);border:1px solid #5fdcc059;align-items:center;gap:14px;padding:14px 18px;display:flex}.admin-calm>.icon{width:22px;height:22px;color:var(--good)}.admin-calm div,.admin-alert div{flex-direction:column;gap:2px;display:flex}.admin-calm small{font-size:13px}.admin-alerts{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-alert{--tone:var(--muted);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--tone);border-radius:12px;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.admin-alert>.icon{color:var(--tone);margin-top:2px}.admin-alert small{color:var(--muted);font-size:13px}.admin-alert-danger{--tone:var(--bad);background:linear-gradient(90deg, #ff5d6c1a, transparent 60%), var(--surface)}.admin-alert-warn{--tone:var(--warn);background:linear-gradient(90deg, #ff9a4d14, transparent 60%), var(--surface)}.admin-bars{flex-direction:column;gap:6px;margin:0;display:flex}.admin-bars svg{width:100%;height:84px;display:block;overflow:visible}.admin-bar{fill:var(--surface-3);transition:fill .15s}.admin-bar-today{fill:var(--accent)}.admin-bar-extra{fill:var(--level)}.admin-bar-hit{fill:#0000}.admin-bars g:hover .admin-bar:not(.admin-bar-extra):not(.admin-bar-today){fill:#4a525d}.admin-bars figcaption{color:var(--muted);justify-content:space-between;font-size:11.5px;display:flex}.admin-legend{color:var(--muted);gap:16px;margin:0;font-size:12.5px;display:flex}.admin-legend span{align-items:center;gap:6px;display:inline-flex}.admin-key{background:var(--surface-3);border-radius:3px;width:10px;height:10px}.admin-key-extra{background:var(--level)}.admin-meter{flex-direction:column;gap:7px;display:flex}.admin-meter-top{justify-content:space-between;gap:10px;font-size:13.5px;display:flex}.admin-meter-track{background:var(--bg);border:1px solid var(--line-soft);border-radius:999px;height:8px;overflow:hidden}.admin-meter-track span{border-radius:inherit;background:var(--accent);height:100%;transition:width .4s;display:block}.admin-meter-warn span{background:var(--warn)}.admin-meter-bad span{background:var(--bad)}.admin-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0;display:grid}.admin-facts div{flex-direction:column;gap:2px;min-width:0;display:flex}.admin-facts dt{color:var(--muted);font-size:12px}.admin-facts dd{overflow-wrap:anywhere;margin:0;font-size:14px}.admin-facts-grid{border-block:1px solid var(--line-soft);grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 0}.admin-backups{gap:10px;margin:0;padding:0;list-style:none;display:grid}.admin-backups li{--tone:var(--muted);background:var(--bg);border:1px solid var(--line-soft);border-radius:12px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.admin-backups li>.icon{color:var(--tone);margin-top:1px}.admin-backups div{flex-direction:column;gap:2px;display:flex}.admin-backups small{font-size:13px}.admin-backup-ok{--tone:var(--good)}.admin-backup-off{--tone:var(--warn)}.admin-backup-bad{--tone:var(--bad)}.admin-errors{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-errors li{border-top:1px solid var(--line-soft);grid-template-columns:minmax(90px,160px) 1fr auto;gap:12px;padding:9px 0;font-size:13.5px;display:grid}.admin-errors li:first-child{border-top:0}.admin-error-source{color:var(--warn);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-error-text{overflow-wrap:anywhere}.admin-error-time{white-space:nowrap;font-size:12.5px}.admin-gate{flex-flow:wrap;align-items:center;gap:18px}.admin-gate>.icon{width:34px;height:34px;color:var(--accent)}.admin-gate>div{flex-direction:column;flex:320px;gap:6px;display:flex}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-search{background:var(--surface);border:1px solid var(--line);min-height:44px;color:var(--muted);border-radius:12px;flex:320px;align-items:center;gap:10px;padding:0 14px;transition:border-color .15s;display:flex}.admin-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.admin-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1}.admin-empty{text-align:center;padding:28px 0}.admin-rows{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);margin:0;padding:0;list-style:none;overflow:hidden}.admin-rows>li+li{border-top:1px solid var(--line-soft)}.admin-row{text-align:left;background:0 0;border:0;grid-template-columns:34px minmax(0,2.4fr) minmax(0,1.3fr) 70px 80px 90px;align-items:center;gap:14px;width:100%;padding:11px 16px;transition:background .12s;display:grid}button.admin-row:hover{background:var(--surface-2)}.admin-row-head{color:var(--muted);background:var(--bg);padding-block:9px;font-size:12px;font-weight:600}.admin-who{flex-direction:column;min-width:0;display:flex}.admin-who strong,.admin-who small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-who small{font-size:12.5px}.admin-num{text-align:right;font-size:13.5px}.admin-badges{flex-wrap:wrap;gap:5px;display:flex}.admin-badge{color:var(--muted);background:var(--bg);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.admin-badge-ok{color:var(--good);background:#5fdcc014;border-color:#5fdcc059}.admin-pages{justify-content:center;align-items:center;gap:14px;display:flex}.admin-sheet-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;justify-content:flex-end;animation:.15s ease-out admin-fade;display:flex;position:fixed;inset:0}.admin-sheet{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;gap:16px;width:min(520px,100%);height:100%;padding:26px clamp(18px,4vw,28px) 40px;animation:.2s ease-out admin-slide;display:flex;position:relative;overflow-y:auto;box-shadow:-24px 0 60px #00000080}@keyframes admin-slide{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes admin-fade{0%{opacity:0}to{opacity:1}}.admin-sheet-close{position:absolute;top:18px;right:18px}.admin-sheet-head{align-items:center;gap:16px;padding-right:48px;display:flex}.admin-sheet-head h2{letter-spacing:-.02em;font-size:22px}.admin-sheet-email{overflow-wrap:anywhere;margin-top:4px}.admin-sheet h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:6px 0 0;font-size:12px;font-weight:600}.admin-list{flex-direction:column;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.admin-list li{border-top:1px solid var(--line-soft);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:10px;padding:8px 0;display:grid}.admin-list li:first-child{border-top:0}.admin-list li>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-list-warn>span:first-child{color:var(--warn)}.admin-hero{border-radius:var(--radius);background:radial-gradient(120% 140% at 0% 0%, #c6f45c1f, transparent 55%), var(--surface);border:1px solid var(--line);flex-direction:column;gap:6px;padding:clamp(20px,3vw,28px);display:flex}.admin-hero-label{color:var(--muted);font-size:13px;font-weight:600}.admin-hero-value{letter-spacing:-.04em;color:var(--accent);font-size:clamp(40px,6vw,56px);line-height:1}.admin-hero p{max-width:62ch;font-size:14px}.admin-cost-list{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.admin-cost-list header>div{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.admin-plan{color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600}.admin-price{white-space:nowrap;font-size:16px;font-weight:650}.admin-price-free{color:var(--good)}.admin-costs .note svg{vertical-align:-2px;width:14px;height:14px;color:var(--accent)}@media (width<=860px){.admin-grid{grid-template-columns:minmax(0,1fr)}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-row{grid-template-columns:34px minmax(0,1fr) auto;row-gap:6px}.admin-row-head{display:none}.admin-row .admin-badges{grid-area:2/2/auto/-1}.admin-row .admin-num{display:none}.admin-row .admin-rating{grid-area:1/3;display:block}.admin-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-errors li{grid-template-columns:1fr auto}.admin-error-source{grid-column:1/-1}}.install{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);grid-template-columns:44px 1fr auto auto;align-items:center;gap:12px;max-width:520px;margin:0 auto;padding:12px 10px 12px 12px;animation:.2s ease-out rise-in;display:grid;position:fixed;box-shadow:0 18px 50px #0000008c}.install-icon{border-radius:11px;width:44px;height:44px}.install-copy{min-width:0;color:var(--muted);gap:2px;font-size:13px;line-height:1.35;display:grid}.install-copy strong{color:var(--text);font-size:14px}.install-copy b{color:var(--text);font-weight:600}.install-entry{background:var(--accent);height:34px;color:var(--accent-ink);white-space:nowrap;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.install-entry .icon{width:16px;height:16px}@media (width<=520px){.install-entry{justify-content:center;width:34px;padding:0}.install-entry span{display:none}}.install-close{background:0 0;border:0;width:36px;height:36px}.shell{flex:1;min-width:0;display:flex}.shell>.main{flex:1;min-width:0}.topbar-end{display:none}.topbar-rating{color:var(--muted);padding:6px 4px;font-size:14px}.topbar-rating:hover{color:var(--text)}.nav .nav-home,.side,.dock{display:none}@media (width>=1100px){:root{--side:248px}.app-user .nav .nav-home{align-items:center;display:inline-flex}.app-user .topbar{position:sticky}.app-user .nav{margin:0;position:absolute;left:50%;transform:translate(-50%)}.app-user .topbar-end{margin-left:auto;display:block}.app-side .topbar{padding-left:0}.app-side .brand{width:var(--side);border-right:1px solid var(--line-soft);background:#0f1215;flex:none;justify-content:center;align-self:stretch}.app-side .side{width:var(--side);top:var(--header);height:calc(100dvh - var(--header));scrollbar-width:thin;border-right:1px solid var(--line-soft);background:#0f1215;flex-direction:column;flex:none;gap:18px;padding:20px 12px;display:flex;position:sticky;overflow-y:auto}.side-group{flex-direction:column;gap:2px;display:flex}.side-label{letter-spacing:.08em;text-transform:uppercase;color:#7d847c;padding:0 10px 4px;font-size:11px;font-weight:600}.side-link{color:#d5dad2;border-radius:10px;align-items:center;gap:10px;min-height:40px;padding:0 9px;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.side-link .icon{color:var(--muted)}a.side-link:hover{background:var(--surface);color:var(--text)}.side-on,a.side-on:hover{background:var(--surface-2);color:var(--text);font-weight:600}.side-on .icon{color:var(--accent)}.side-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.side-badge{color:var(--muted);font-size:12px}.side-badge-warn{color:var(--you)}.side-soon{color:#8b9289;cursor:default}.side-soon .icon{color:#5d645c}.side-tag{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;padding:1px 6px;font-size:10.5px;font-weight:600}.side-season{color:var(--muted);background:#171320;border:1px solid #3a2f5c;border-radius:12px;justify-items:start;gap:6px;margin-top:auto;padding:12px;font-size:13px;line-height:1.4;display:grid}.side-season-head{color:var(--text);align-items:center;gap:8px;display:flex}.side-season-head .icon{color:var(--level)}.app-side .dock{z-index:30;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;flex-direction:column;width:300px;display:flex;position:fixed;bottom:0;right:24px;box-shadow:0 -10px 40px #00000073}.dock-bar{text-align:left;background:0 0;border:0;align-items:center;gap:10px;height:48px;padding:0 14px;display:flex}.dock-bar .icon{color:var(--muted)}.dock-title{flex:1;font-weight:600}.dock-arrow{place-items:center;transition:transform .15s;display:grid}.dock-arrow-open{transform:rotate(180deg)}.dock-open .dock-bar{border-bottom:1px solid var(--line-soft);order:-1}.dock-panel{color:var(--muted);gap:10px;padding:14px;font-size:14px;line-height:1.5;display:grid}.dock-panel strong{color:var(--text)}.dock-panel .btn{justify-content:flex-start}}.dash{flex-direction:column;gap:18px;width:min(1160px,100%);margin:0 auto;padding:clamp(20px,3vw,32px) clamp(16px,3vw,32px) 72px;display:flex}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.dash-date{color:var(--muted)}.dash-title{letter-spacing:-.02em;margin-top:4px;font-size:clamp(28px,3vw,36px);line-height:1.1}.dash-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.dash-season{background:#171320;border:1px solid #3a2f5c;border-radius:20px;align-items:center;gap:18px;padding:18px 22px;display:flex}.dash-season-icon{background:var(--level);color:#130d24;border-radius:16px;flex:none;place-items:center;width:52px;height:52px;display:grid}.dash-season-icon .icon{width:28px;height:28px}.dash-season-copy{gap:4px;display:grid}.dash-season-copy strong{font-size:17px}.dash-kicker-season{color:var(--level)}.dash-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;display:grid}.dash-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:20px;flex-direction:column;gap:8px;padding:20px;display:flex}a.dash-card{transition:border-color .15s,background .15s}a.dash-card:hover{border-color:var(--line);background:#161a1f}.dash-last{flex-flow:wrap;gap:20px}.dash-last-board{flex:none;width:200px;container-type:inline-size}.dash-last-copy{flex-direction:column;flex:220px;gap:8px;display:flex}.dash-last-title{font-size:21px;line-height:1.25}.dash-actions{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.dash-todo{background:var(--surface-2);border-radius:12px;align-items:center;gap:12px;min-height:48px;padding:10px 14px;transition:background .15s;display:flex}.dash-todo:hover{background:var(--surface-3)}.dash-todo .icon{color:var(--muted)}.dash-todo span:first-of-type{flex:1}.dash-todo-count{color:var(--you);font-weight:600}.dash-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.dash-tile{min-height:132px}.dash-big{font-size:30px;font-weight:600;line-height:1.1}.dash-kicker-road{color:var(--level)}.dash-road{gap:5px;margin:8px 0 6px;display:flex}.dash-road span{background:var(--surface-3);border-radius:4px;flex:1;height:8px}.dash-road .dash-road-done{background:var(--level)}@media (width<=860px){.dash-grid{grid-template-columns:minmax(0,1fr)}.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.topbar-rating{display:none}.dash-head .btn{width:100%}.dash-season{align-items:flex-start;padding:16px}.dash-season-icon{border-radius:12px;width:42px;height:42px}.dash-last-board{width:100%;max-width:240px;margin:0 auto}.dash-tile{min-height:0}.dash-big{font-size:26px}}
