.attract{z-index:5000;color:#f4f1ea;cursor:none;background:#0d1512;grid-template-rows:minmax(0,1fr) auto;font-size:clamp(14px,1.15vw,26px);display:grid;position:fixed;inset:0;overflow:hidden}.attract-bg{background:radial-gradient(40% 50% at 20% 20%,#4caf7847,#0000 70%),radial-gradient(35% 45% at 85% 75%,#e0b04a38,#0000 70%),radial-gradient(50% 60% at 60% 10%,#2f6fb82e,#0000 70%),#0d1512;animation:24s ease-in-out infinite alternate attract-drift;position:absolute;inset:-20%}@keyframes attract-drift{to{transform:translate(4%,-3%)rotate(3deg)scale(1.05)}}.attract-stage{min-height:0;padding:3.2vh 4vw 1vh;animation:.7s cubic-bezier(.2,.8,.2,1) both attract-in;display:grid;position:relative}@keyframes attract-in{0%{opacity:0;transform:translateY(24px)scale(.985)}to{opacity:1;transform:none}}.attract-muted{color:#f4f1eaa6}.attract-heading{text-align:center;letter-spacing:-.01em;margin:0 0 .4em;font-size:2.6em}.attract-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#e0b04a;font-size:.9em;font-weight:800}.attract-footer{background:linear-gradient(#0000,#00000073);grid-template-columns:1fr auto 1fr;align-items:center;padding:1.4vh 4vw 2.2vh;display:grid;position:relative}.attract-brand{opacity:.9;align-items:center;gap:10px;font-size:1.3em;font-weight:800;display:inline-flex}.attract-press{letter-spacing:.12em;color:#ffd76a;text-shadow:0 0 18px #ffc85099;font-size:1.7em;font-weight:900;animation:1.2s steps(2,jump-none) infinite attract-blink}@keyframes attract-blink{50%{opacity:.15}}.attract-dots{justify-self:end;gap:8px;display:flex}.attract-dots span{background:#ffffff40;border-radius:50%;width:10px;height:10px;transition:background .3s,transform .3s}.attract-dots span.is-on{background:#ffd76a;transform:scale(1.3)}.attract-title{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.attract-title h1{letter-spacing:-.03em;background:linear-gradient(#fff 30%,#e0b04a);color:#0000;-webkit-background-clip:text;background-clip:text;margin:.1em 0;font-size:7em;font-weight:900;line-height:1;animation:.9s cubic-bezier(.2,1.4,.3,1) both attract-pop}.attract-logo{margin-bottom:2.4em;animation:1.1s cubic-bezier(.2,1.2,.3,1) both attract-spin-in;transform:scale(3.2)}.attract-welcome{margin:.2em 0;font-size:2em;font-weight:700}.attract-tagline{color:#f4f1eabf;margin:0 0 1.6em;font-size:1.5em}.attract-insert{letter-spacing:.06em;color:#ffd76a;font-size:2.2em;font-weight:900;animation:1.6s ease-in-out infinite attract-pulse}@keyframes attract-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes attract-spin-in{0%{opacity:0;transform:scale(.5)rotate(-200deg)}to{opacity:1;transform:scale(3.2)}}@keyframes attract-pulse{50%{opacity:.75;transform:scale(1.06)}}.attract-floaters{pointer-events:none;position:absolute;inset:0}.attract-floaters span{opacity:.08;left:calc(6% + var(--i) * 12%);animation:14s linear infinite attract-float;animation-delay:calc(var(--i) * -1.7s);font-size:6em;position:absolute;top:110%}@keyframes attract-float{to{transform:translateY(-140vh)rotate(360deg)}}.attract-podium{flex-direction:column;justify-content:center;display:flex}.attract-podium .podium{color:inherit}.attract-note{text-align:center;color:#ffd76a;margin:1.2em 0 0;font-size:1.4em}.attract-board{grid-template-rows:auto minmax(0,1fr);width:100%;max-width:1500px;min-height:0;margin:0 auto;display:grid}.attract-board header{text-align:center;margin-bottom:1.2vh}.attract-board header .attract-heading{margin-bottom:.1em}.attract-board-viewport{min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 3% 92%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 3% 92%,#0000 100%)}.attract-board-list{will-change:transform;padding:1vh 0 4vh}.attract .lb-rows.is-big .lb-row{color:inherit}.attract .lb-rows.is-big .lb-xp{color:#7fe0a6}.attract .lb-rows.is-big .muted{color:#f4f1ea99}.attract .lb-rows.is-big .lb-row.is-top{background:linear-gradient(90deg,#e0b04a38,#e0b04a0a)}.attract .lb-rows.is-big .lb-row.place-1{box-shadow:inset 4px 0 #e0b04a}.attract .lb-rows.is-big .lb-row.place-2{box-shadow:inset 4px 0 #b8c0c9}.attract .lb-rows.is-big .lb-row.place-3{box-shadow:inset 4px 0 #d79a66}.attract-replay{grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:center;gap:4vw;min-height:0;display:grid}.attract-replay-board{aspect-ratio:1;border-radius:14px;height:min(78vh,52vw);position:relative;box-shadow:0 30px 80px -20px #000c}.attract-replay-board>*{width:100%;height:100%}.attract-replay-board.is-mate{animation:.5s ease-in-out attract-shake}@keyframes attract-shake{25%{transform:translate(-8px)rotate(-.6deg)}75%{transform:translate(8px)rotate(.6deg)}}.attract-mate-stamp{color:#fff;letter-spacing:.04em;text-shadow:0 0 30px #e8505be6,0 6px #a5222e;pointer-events:none;place-items:center;font-size:9em;font-weight:900;animation:.65s cubic-bezier(.2,1.6,.3,1) both attract-stamp;display:grid;position:absolute;inset:0}@keyframes attract-stamp{0%{opacity:0;transform:scale(3)rotate(-12deg)}to{opacity:1;transform:rotate(-8deg)}}.attract-replay-side{flex-direction:column;gap:1.6vh;min-width:0;display:flex}.attract-replay-title{margin:0;font-size:3em;line-height:1.05}.attract-players{gap:1.2vh;margin-top:1vh;display:grid}.attract-player{background:#ffffff0f;border-radius:14px;align-items:center;gap:18px;min-width:0;padding:.35em .5em;font-size:1.8em;font-weight:800;transition:background .4s,transform .4s;display:flex}.attract-player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attract-player.is-winner{background:linear-gradient(90deg,#e0b04a73,#e0b04a14);transform:scale(1.04)}.attract-player-piece{text-align:center;width:72px;font-size:2em;line-height:1}.attract-player-crown{margin-left:auto;animation:2s ease-in-out infinite crown-bob}.attract-vs{color:#e0b04a;letter-spacing:.2em;padding-left:.6em;font-weight:900}.attract-tags{flex-wrap:wrap;gap:10px;display:flex}.attract-tag{color:#ffd76a;background:#e0b04a2e;border:1px solid #e0b04a73;border-radius:999px;padding:.3em .8em;font-size:1.2em;font-weight:800}.attract-move{gap:.6vh;margin-top:1vh;display:grid}.attract-move-san{font-variant-numeric:tabular-nums;font-size:3.4em;font-weight:900;animation:.3s ease-out both attract-tick}@keyframes attract-tick{0%{opacity:.2;transform:translateY(8px)}}.attract-move-bar{background:#ffffff1f;border-radius:99px;height:8px;overflow:hidden}.attract-move-bar span{background:linear-gradient(90deg,#4caf78,#e0b04a);height:100%;transition:width .3s linear;display:block}.attract-result{color:#ffd76a;margin:.4em 0 0;font-size:2.2em;font-weight:900;animation:.6s cubic-bezier(.2,1.4,.3,1) both attract-pop}.attract-features{flex-direction:column;justify-content:center;display:flex}.attract-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.4vw;display:grid}.attract-feature{--tone:#2f8a57;text-align:center;background:linear-gradient(160deg, color-mix(in srgb, var(--tone) 55%, #0d1512), color-mix(in srgb, var(--tone) 18%, #0d1512));border:1px solid color-mix(in srgb, var(--tone) 70%, transparent);box-shadow:0 30px 60px -30px color-mix(in srgb, var(--tone) 80%, black);animation:.8s cubic-bezier(.2,1.2,.3,1) both attract-card;animation-delay:calc(var(--i) * .22s);border-radius:22px;padding:3.4vh 2vw;position:relative}@keyframes attract-card{0%{opacity:0;transform:translateY(60px) rotate(calc((var(--i) - 1) * 4deg))}}.attract-feature-icon{animation:2.4s ease-in-out infinite attract-bounce;animation-delay:calc(var(--i) * .3s);font-size:6em;line-height:1.1;display:inline-block}.attract-feature-img{object-fit:contain;width:9em;height:9em;animation:2.4s ease-in-out infinite attract-bounce}@keyframes attract-bounce{50%{transform:translateY(-12px)scale(1.05)}}.attract-feature h3{margin:.5em 0 .3em;font-size:2em}.attract-feature p{color:#f4f1ead9;margin:0;font-size:1.35em;line-height:1.35}@media (max-aspect-ratio:1){.attract-replay{grid-template-columns:1fr;justify-items:center}.attract-replay-board{width:min(88vw,60vh);height:auto}.attract-feature-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.attract *,.attract-bg{animation-duration:1ms!important;animation-iteration-count:1!important}}
html.pad-active :focus-visible,html.pad-active :focus{outline-offset:3px;border-radius:12px;outline:4px solid #ffcf3f;transition:outline-offset .12s;box-shadow:0 0 0 9px #ffcf3f47}html.pad-active .board:focus,html.pad-active .osk-key:focus{box-shadow:none;outline:none}.sq-pad{z-index:4;pointer-events:none;border-radius:10%;animation:1.1s ease-in-out infinite pad-pulse;position:absolute;inset:3%}.sq-pad-0{box-shadow:inset 0 0 0 5px #ffcf3f,0 0 18px 2px #ffcf3fb3}.sq-pad-1{inset:9%;box-shadow:inset 0 0 0 5px #4fc3ff,0 0 18px 2px #4fc3ffb3}.sq-pad-2{inset:15%;box-shadow:inset 0 0 0 5px #ff6fae}.sq-pad.is-target{background:#ffffff29}@keyframes pad-pulse{50%{transform:scale(.94)}}.promotion-choice.is-pad{background:radial-gradient(#fff 55%,#ffcf3f);transform:scale(1.12);box-shadow:0 0 0 4px #ffcf3f,0 6px 16px #0006}html.kiosk{cursor:none;-webkit-user-select:none;user-select:none}html.kiosk .site-footer{display:none}html.kiosk body{padding-bottom:64px}html.kiosk.osk-open body{padding-bottom:46vh}.kiosk-hints{z-index:40;color:#f3f1ec;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e1014e0;justify-content:space-between;align-items:center;gap:16px;padding:10px 28px;font-size:1.05rem;font-weight:600;display:flex;position:fixed;bottom:0;left:0;right:0}.kiosk-hints-keys{flex-wrap:wrap;gap:28px;display:flex}.kiosk-hint{align-items:center;gap:8px;display:inline-flex}.pad-btn{color:#fff;background:#555;border-radius:16px;place-items:center;min-width:32px;height:32px;padding:0 8px;font-size:.85rem;font-weight:800;display:inline-grid}.pad-btn-a{background:#3aa76d}.pad-btn-b{background:#d9534f}.pad-btn-start{background:#6b7280;border-radius:8px}.kiosk-pads{color:#c9c5bd;gap:14px;display:flex}.kiosk-pad{border-radius:999px;padding:2px 10px}.kiosk-pad-0{color:#ffdf7a;background:#ffcf3f2e}.kiosk-pad-1{color:#9adcff;background:#4fc3ff2e}.kiosk-home{max-width:1400px;margin:0 auto;padding:24px 8px 40px}.kiosk-home-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.kiosk-home-head h1{margin:0 0 6px;font-size:clamp(2rem,4vw,3.2rem)}.kiosk-home-head p{margin:0;font-size:1.25rem}.kiosk-pad-count{background:var(--surface);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:10px 18px;font-weight:700}.kiosk-pad-count.is-on{background:var(--accent-soft);color:var(--accent);border-color:#0000}.kiosk-tiles{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.kiosk-tile{--tone:#2f7d4f;color:#fff;background:linear-gradient(150deg, color-mix(in srgb, var(--tone) 82%, #fff) 0%, var(--tone) 55%, color-mix(in srgb, var(--tone) 70%, #000) 100%);min-height:170px;box-shadow:0 14px 30px -16px var(--tone);border-radius:22px;flex-direction:column;gap:6px;padding:26px 24px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.kiosk-tile.is-big{grid-column:span 2;min-height:230px}.kiosk-tile.is-wide{grid-column:span 2}.kiosk-tile:focus,.kiosk-tile:hover{transform:translateY(-4px)scale(1.02)}html.pad-active .kiosk-tile:focus{outline-offset:4px;box-shadow:0 0 0 12px #ffcf3f40, 0 24px 40px -18px var(--tone);outline:5px solid #ffcf3f}.kiosk-tile-icon{font-size:2.8rem;line-height:1}.kiosk-tile.is-big .kiosk-tile-icon{font-size:3.6rem}.kiosk-tile-title{letter-spacing:-.01em;margin-top:auto;font-size:1.55rem;font-weight:800}.kiosk-tile.is-big .kiosk-tile-title{font-size:2rem}.kiosk-tile-body{opacity:.9;font-size:1.02rem}.tone-gold{--tone:#c98a1b}.tone-green{--tone:#2f8a57}.tone-blue{--tone:#2f6fb8}.tone-purple{--tone:#7a4cc2}.tone-teal{--tone:#1f8f8a}.tone-rose{--tone:#c2456b}.tone-slate{--tone:#4b5563}.kiosk-signout{margin-top:24px}@media (max-width:900px){.kiosk-tiles{grid-template-columns:repeat(2,1fr)}}.osk{z-index:60;color:#f2efe9;background:#1b1e24;border-radius:22px 22px 0 0;width:min(1100px,100%);padding:14px 16px 10px;animation:.18s ease-out osk-up;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -20px 50px #00000073}@keyframes osk-up{0%{opacity:0;transform:translate(-50%,30px)}}.osk-preview{white-space:nowrap;background:#0f1115;border-radius:12px;align-items:center;min-height:48px;margin-bottom:10px;padding:6px 14px;font-size:1.5rem;font-weight:600;display:flex;overflow:hidden}.osk-caret{background:#ffcf3f;width:3px;height:1.4em;margin-left:2px;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.osk-row{gap:8px;margin-bottom:8px;display:flex}.osk-key{cursor:pointer;min-width:0;height:56px;color:inherit;background:#2c3039;border:0;border-radius:12px;flex:1 1 0;font-family:inherit;font-size:1.45rem;font-weight:700;transition:transform 80ms,background 80ms}.osk-num .osk-key{height:64px}.osk-key.osk-done{background:#2f8a57;font-size:1.1rem}.osk-key.osk-erase,.osk-key.osk-shift,.osk-key.osk-layout{background:#3a3f4b;font-size:1.1rem}.osk-key.osk-space{font-size:1.1rem}.osk-key.is-on{background:#6b5a1d}.osk-key.is-pad{color:#1b1e24;background:#ffcf3f;transform:scale(1.08);box-shadow:0 0 0 3px #fff3c4,0 8px 18px #ffcf3f66}.osk-help{color:#aaa59c;text-align:center;margin:4px 0 0;font-size:.9rem}.osk-help b{color:#f2efe9}.kiosk-pad-list{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;display:grid}.kiosk-pad-card h2{margin:0}.kiosk-pad-card.kiosk-pad-0{border-top:5px solid #ffcf3f}.kiosk-pad-card.kiosk-pad-1{border-top:5px solid #4fc3ff}.kiosk-pad-id{word-break:break-all;font-size:.8rem}.kiosk-raw{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.kiosk-raw-btn,.kiosk-raw-axis{background:var(--surface-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:8px;padding:4px 8px;font-size:.85rem}.kiosk-raw-btn{text-align:center;min-width:32px}.kiosk-raw-btn.is-on,.kiosk-raw-axis.is-on{color:#1b1e24;background:#ffcf3f;border-color:#0000}.kiosk-logical{min-height:1.5em;font-weight:700}.kiosk-wizard{color:var(--accent);font-size:1.3rem;font-weight:800}.seat-cards{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px;display:grid}.seat-card{text-align:left;border:2px dashed var(--border);background:var(--surface);min-height:104px;color:var(--text);font:inherit;cursor:pointer;border-radius:20px;align-items:center;gap:18px;padding:16px 22px;transition:transform .15s;display:flex;position:relative}.seat-card.is-in{border-style:solid}.seat-card-0.is-in{background:linear-gradient(120deg, #ffcf3f29, var(--surface) 60%);border-color:#e2b324}.seat-card-1.is-in{background:linear-gradient(120deg, #4fc3ff29, var(--surface) 60%);border-color:#3aa9e6}.seat-card:focus,.seat-card:hover{transform:translateY(-3px)}.seat-card .seat-chip{position:absolute;top:-12px;left:18px}.seat-card-text{flex-direction:column;gap:2px;display:flex}.seat-card-text strong{font-size:1.45rem}.seat-empty{background:var(--surface-2);width:64px;height:64px;color:var(--muted);border:2px dashed var(--border);border-radius:50%;place-items:center;font-size:2rem;display:grid}.seat-chip{color:#1b1e24;border-radius:999px;padding:3px 12px;font-size:.85rem;font-weight:800;display:inline-block}.seat-chip-0{background:#ffcf3f}.seat-chip-1{background:#4fc3ff}.kiosk-pad{align-items:center;gap:6px;display:inline-flex}.kiosk-pad .avatar{flex:none}.seat-picker{text-align:center;width:min(860px,100%)}.seat-picker-0{border-top-color:#ffcf3f}.seat-picker-1{border-top-color:#4fc3ff}.seat-picker h2{margin-top:10px}.seat-profiles{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:14px;max-height:52vh;margin:16px 0 6px;padding:8px;display:grid;overflow:auto}.seat-profile{border:2px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;transition:transform .12s;display:flex}.seat-profile:focus,.seat-profile:hover{transform:scale(1.05)}.seat-profile:disabled{opacity:.35}.seat-profile-name{overflow-wrap:anywhere;font-size:1.05rem;font-weight:700}.seat-profile-new{border-style:dashed}.seat-profile-plus{background:var(--surface);border-radius:50%;place-items:center;width:84px;height:84px;font-size:2.4rem;display:grid}.seat-me{flex-direction:column;align-items:center;gap:6px;margin:12px 0;display:flex}.seat-me h2{margin:0}.seat-pin{text-align:left;flex-direction:column;gap:12px;display:flex}.seat-picker .avatar-gallery{margin:14px 0}html.osk-open .seat-picker-backdrop{align-items:start;padding-top:3vh}
:root{--bg:#f6f3ee;--bg-2:#efe9e0;--surface:#fff;--surface-2:#faf8f5;--text:#1f1d1a;--muted:#6e6a64;--border:#e5dfd5;--accent:#2f7d4f;--accent-2:#3c9a63;--accent-soft:#e3f1e8;--accent-text:#fff;--gold:#c9962b;--danger:#c0392b;--good:#2f7d4f;--shadow-sm:0 1px 2px #1f1d1a0f, 0 1px 1px #1f1d1a0a;--shadow:0 10px 30px -12px #1f1d1a40, 0 2px 6px #1f1d1a0f;--radius:14px;--radius-sm:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#16181c;--bg-2:#1c1f24;--surface:#22252b;--surface-2:#272a31;--text:#ecebe8;--muted:#a3a09a;--border:#33363e;--accent:#4caf78;--accent-2:#5cc189;--accent-soft:#1f3529;--accent-text:#0e1a13;--gold:#e0b04a;--shadow-sm:0 1px 2px #00000059;--shadow:0 14px 34px -14px #000000b3, 0 2px 6px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Helvetica Neue,Arial,sans-serif;line-height:1.5;display:flex}main{flex:1;width:100%}a{color:inherit}h1,h2,h3{letter-spacing:-.01em;line-height:1.2}img{-webkit-user-drag:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.875rem}.container{max-width:1180px;margin:0 auto;padding:0 16px}.site-header{z-index:30;background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header-inner{align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:10px 16px;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.logo{background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:var(--shadow-sm);border-radius:9px;place-items:center;display:inline-grid}.nav{flex:1;gap:4px;display:flex}.nav-link{color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-link:hover{color:var(--text);background:var(--bg-2)}.nav-link.is-active{color:var(--accent);background:var(--accent-soft)}.nav-icon{font-size:.95rem}.nav-label{white-space:nowrap}@media (min-width:1161px) and (max-width:1360px){.nav{gap:0}.nav-link{gap:4px;padding:8px 7px}}@media (max-width:1160px){.site-header-inner{flex-wrap:wrap;gap:8px 12px}.nav{flex-basis:100%;order:3;justify-content:space-between;min-width:0}.nav-link{border-radius:10px;flex-direction:column;flex:1;gap:0;min-width:0;padding:6px 8px;font-size:.75rem}.nav-icon{font-size:1.15rem}.level-chip{margin-left:auto}}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:48px;padding:20px 0;font-size:.875rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform 60ms,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.button:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.button:active:not(:disabled){transform:translateY(1px)}.button.primary{background:linear-gradient(180deg, var(--accent-2), var(--accent));color:#fff;box-shadow:0 6px 16px -8px var(--accent);border-color:#0000}.button.primary:hover:not(:disabled){filter:brightness(1.05)}.button.ghost{box-shadow:none;background:0 0}.button.danger{background:var(--danger);color:#fff;border-color:#0000}.button.large{border-radius:12px;padding:13px 22px;font-size:1.05rem}.button:disabled{opacity:.45;cursor:default}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;flex:1;padding:8px;font-size:.9rem}.icon-btn:disabled{opacity:.35;cursor:default}.controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.segmented{background:var(--bg-2);border-radius:12px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.segmented button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:7px 12px;font-weight:600}.segmented button.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 6px;font-size:.8rem;font-weight:700;display:block}.check{color:var(--muted);align-items:center;gap:8px;margin-top:10px;font-size:.9rem;display:flex}.back-link{color:var(--muted);font-size:.9rem;font-weight:600;text-decoration:none;display:block}.back-link:hover{color:var(--text)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:8px 0 4px;font-size:.78rem;font-weight:800;display:inline-block}.page{padding:28px 0 8px}.page.center{text-align:center;place-items:center;min-height:50vh;display:grid}.page-header{margin-bottom:20px}.page-header h1{margin:0 0 6px;font-size:2rem}.page-header p{margin:0}.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.panel-card h2{margin:0 0 12px;font-size:1.05rem}.panel-title{margin:0 0 6px;font-size:1.25rem}body{overflow-x:clip}.bleed{margin-inline:calc(50% - 50vw)}.landing{--ink:#0c1712;--ink-2:#12241b;--mint:#6ee7a8;--lime:#c6f36b;--amber:#ffc857;padding-bottom:8px}.grad-text{background:linear-gradient(100deg, var(--mint) 0%, var(--lime) 45%, var(--amber) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.lp-hero{isolation:isolate;color:#f3f7f4;background:radial-gradient(120% 90% at 85% 10%, #1d3b2b 0%, var(--ink-2) 40%, var(--ink) 100%);position:relative;overflow:hidden}.lp-hero:before{content:"";z-index:-1;opacity:.07;background:conic-gradient(#fff 25%, transparent 0 50%, #fff 0 75%, transparent 0) 0 0 / 64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 70% at 70% 40%,#000,#0000 75%);mask-image:radial-gradient(80% 70% at 70% 40%,#000,#0000 75%)}.lp-hero:after{content:"";z-index:-1;background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--ink) 40%, transparent));height:90px;position:absolute;bottom:0;left:0;right:0}.lp-hero-bg{z-index:-2;pointer-events:none;position:absolute;inset:0}.orb{filter:blur(70px);opacity:.55;border-radius:50%;animation:18s ease-in-out infinite alternate drift;position:absolute}.orb-1{background:#2f9e62;width:520px;height:520px;top:-160px;right:-120px}.orb-2{opacity:.45;background:#1f6a8a;width:380px;height:380px;animation-delay:-6s;bottom:-180px;left:-140px}.orb-3{opacity:.28;background:#c98f1f;width:260px;height:260px;animation-delay:-12s;top:40%;left:46%}@keyframes drift{to{transform:translate(40px,30px)scale(1.08)}}.lp-hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:56px;max-width:1280px;margin:0 auto;padding:72px 24px 88px;display:grid}.lp-hero h1{letter-spacing:-.035em;text-wrap:balance;margin:20px 0;font-size:clamp(2.4rem,5.2vw,4.4rem);font-weight:850;line-height:1.04}.lp-hero h1 .grad-text{padding-bottom:.08em;display:inline-block}.lp-lead{color:#ebf5eebd;text-wrap:pretty;max-width:560px;margin:0 0 32px;font-size:clamp(1.05rem,1.4vw,1.22rem)}.lp-pill{letter-spacing:.08em;text-transform:uppercase;color:var(--mint);background:#6ee7a81a;border:1px solid #6ee7a840;border-radius:999px;align-items:center;gap:10px;padding:7px 14px 7px 10px;font-size:.8rem;font-weight:750;display:inline-flex}.lp-pill-dot{background:var(--mint);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 4px #6ee7a833}@keyframes pulse{50%{box-shadow:0 0 0 8px #6ee7a800}}.lp-ctas{flex-wrap:wrap;gap:12px;display:flex}.lp-ctas.center{justify-content:center}.lp-btn{white-space:nowrap;border-radius:14px;align-items:center;gap:10px;padding:15px 26px;font-size:1.05rem;font-weight:750;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s;display:inline-flex}.lp-btn span{transition:transform .2s}.lp-btn:hover span{transform:translate(4px)}.lp-btn:hover{transform:translateY(-2px)}.lp-btn-primary{color:#06200f;background:linear-gradient(135deg,#8af5bb,#3fcf83 55%,#2aa865);box-shadow:0 10px 30px -10px #3fcf83cc,inset 0 1px #ffffff80}.lp-btn-primary:hover{box-shadow:0 16px 40px -12px #3fcf83f2,inset 0 1px #ffffff80}.lp-btn-glass{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff2e}.lp-btn-glass:hover{background:#ffffff24}.lp-stats{flex-wrap:wrap;gap:10px;margin:44px 0 0;padding:0;list-style:none;display:flex}.lp-stats li{color:#ebf5eeb3;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;align-items:baseline;gap:8px;padding:10px 16px;font-size:.92rem;font-weight:600;display:flex}.lp-stats strong{color:#fff;font-variant-numeric:tabular-nums;font-size:1.45rem;font-weight:850}.lp-hero-board{justify-self:center;width:min(100%,560px);position:relative}.lp-board-glow{filter:blur(60px);opacity:.5;background:conic-gradient(from 180deg,#3fcf83,#ffc857,#2f8fbf,#3fcf83);border-radius:30px;animation:16s linear infinite spin-slow;position:absolute;inset:8%}@keyframes spin-slow{to{transform:rotate(360deg)}}.lp-board-frame{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(160deg,#ffffff29,#ffffff0a);border:1px solid #ffffff2e;border-radius:22px;padding:14px;transition:transform .6s cubic-bezier(.2,.8,.2,1);position:relative;transform:perspective(1400px)rotateY(-7deg)rotateX(4deg);box-shadow:0 40px 80px -30px #000c}.lp-hero-board:hover .lp-board-frame{transform:perspective(1400px)rotateY(0)rotateX(0)}.lp-board-frame .demo-board .board-wrap{box-shadow:none;border-radius:10px;transform:none}.lp-board-frame .board{border-radius:10px}.lp-board-frame .demo-caption{color:#ebf5ee99;margin-top:10px;font-size:.8rem}.float-card{z-index:3;color:#10261a;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:16px;align-items:center;gap:10px;padding:10px 14px 10px 10px;font-size:.9rem;animation:6s ease-in-out infinite bob;display:flex;position:absolute;box-shadow:0 18px 40px -16px #0009}.fc-icon{background:#fff1d6;border-radius:11px;place-items:center;width:34px;height:34px;font-size:1.1rem;display:grid}.fc-streak{top:-18px;left:-40px}.fc-xp{animation-delay:-2s;top:44%;right:-48px}.fc-xp .fc-icon{background:#e4f7ec}.fc-puzzle{animation-delay:-4s;bottom:10%;left:-64px}.fc-puzzle .fc-icon{background:#e3eefc}@keyframes bob{50%{transform:translateY(-10px)}}.lp-section{padding:88px 0 0}.lp-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:28px;display:flex}.lp-section-head.center{text-align:center;justify-content:center}.lp-title{letter-spacing:-.03em;text-wrap:balance;margin:6px 0 10px;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:850}.lp-sub{color:var(--muted);text-wrap:pretty;max-width:620px;margin:0;font-size:1.08rem}.lp-link{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;gap:8px;padding:10px 16px;font-weight:750;text-decoration:none;display:inline-flex}.lp-link span{transition:transform .2s}.lp-link:hover span{transform:translate(4px)}.realm-rail{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.realm-card a{aspect-ratio:3/4;color:#fff;isolation:isolate;box-shadow:var(--shadow);border-radius:22px;text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;display:block;position:relative;overflow:hidden}.realm-card img{object-fit:cover;z-index:-2;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.realm-card-shade{z-index:-1;background:linear-gradient(#0000 30%,#080e0a8c 62%,#080e0aeb 100%);position:absolute;inset:0}.realm-card a:hover{box-shadow:0 30px 50px -24px color-mix(in srgb, var(--realm) 70%, #000);transform:translateY(-6px)}.realm-card a:hover img{transform:scale(1.07)}.realm-card-emblem{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-shadow:0 1px 3px #0006;background:#ffffff38;border:1px solid #ffffff59;border-radius:14px;place-items:center;width:44px;height:44px;font-size:1.5rem;display:grid;position:absolute;top:14px;left:14px}.realm-card-text{flex-direction:column;gap:3px;padding:18px;display:flex;position:absolute;bottom:0;left:0;right:0}.realm-card-index{letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb, var(--realm) 40%, #fff);font-size:.72rem;font-weight:800}.realm-card-text strong{letter-spacing:-.01em;font-size:1.25rem;line-height:1.15}.realm-card-tagline{color:#ffffffc7;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.86rem;line-height:1.35;display:-webkit-box;overflow:hidden}.realm-card a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:16px;display:grid}.bento>.tile{min-height:230px}.bento>.tile-online{min-height:0}.tile{background:var(--surface);border:1px solid var(--border);isolation:isolate;box-shadow:var(--shadow-sm);border-radius:24px;flex-direction:column;padding:26px;text-decoration:none;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.tile:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb, var(--accent) 35%, var(--border));transform:translateY(-4px)}.tile h3{letter-spacing:-.015em;margin:14px 0 6px;font-size:1.25rem}.tile p{color:var(--muted);margin:0;font-size:.95rem}.tile-icon{background:var(--accent-soft);border-radius:15px;place-items:center;width:48px;height:48px;font-size:1.5rem;display:inline-grid}.tile-cta{color:var(--accent);margin-top:18px;font-weight:750;display:inline-block}.tile-learn{color:#f2f7f3;background:radial-gradient(110% 80% at 100% 0,#2f9e62 0%,#1b5a3a 45%,#0f2a1d 100%);border:0;flex-direction:row;grid-area:span 2/span 2;gap:16px}.tile-learn .tile-copy{z-index:1;flex-direction:column;flex:1;justify-content:flex-end;display:flex}.tile-learn h3{font-size:1.8rem}.tile-learn p{color:#f0f8f3c7;max-width:340px;font-size:1.02rem}.tile-learn .tile-icon,.tile-themes .tile-icon{background:#ffffff24}.tile-learn .tile-cta{color:var(--lime)}.tile-learn-path{flex:0 0 42%;position:relative}.tile-learn-path:before{content:"";border-left:4px dashed #ffd86e8c;width:0;position:absolute;top:6%;bottom:6%;left:50%;transform:rotate(12deg)}.tile-learn-path .n{object-fit:contain;filter:drop-shadow(0 8px 10px #00000073);width:72px;height:72px;transition:transform .3s;position:absolute}.tile-learn-path .n1{top:4%;left:58%}.tile-learn-path .n2{top:28%;left:26%}.tile-learn-path .n3{width:84px;height:84px;top:52%;left:52%}.tile-learn-path .n4{width:96px;height:96px;top:74%;left:16%}.tile-learn:hover .n{transform:translateY(-4px)scale(1.05)}.bot-stack{margin:auto 0 0;padding:18px 0 0;list-style:none;display:flex}.bot-stack li{flex-direction:column;align-items:center;gap:4px;margin-right:-6px;transition:transform .2s;display:flex}.bot-stack li span{background:var(--bg-2);border:3px solid var(--surface);border-radius:50%;place-items:center;width:46px;height:46px;font-size:1.4rem;display:grid}.bot-stack small{color:var(--muted);font-size:.7rem;font-weight:800}.tile-bots:hover .bot-stack li:nth-child(odd){transform:translateY(-4px)}.rating-spark{align-items:flex-end;gap:5px;height:78px;margin-top:auto;padding-top:18px;display:flex}.rating-spark span{background:linear-gradient(to top, var(--accent-soft), var(--accent));opacity:.85;transform-origin:bottom;border-radius:5px 5px 2px 2px;flex:1;transition:transform .3s}.tile-puzzles:hover .rating-spark span{transform:scaleY(1.08)}.versus{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:18px;display:flex}.vs-avatar{background:var(--bg-2);border-radius:16px;place-items:center;width:50px;height:50px;font-size:1.6rem;display:grid}.vs-live{text-transform:uppercase;letter-spacing:.06em;color:#d6324a;background:#d6324a1f;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;font-weight:800;display:inline-flex}.vs-live i{background:#e0475b;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite blink}@keyframes blink{50%{opacity:.25}}.tile-online{flex-direction:row;grid-column:span 4;align-items:center;gap:20px}.tile-online h3{margin-top:0}.tile-online .tile-copy{flex:1}.tile-online .versus{gap:14px;margin:0;padding:0}.tile-themes{color:#f4f1ff;background:radial-gradient(120% 100% at 0 100%,#6a3fd0 0%,#2b1a5c 50%,#120c26 100%);border:0;flex-direction:row;grid-column:span 2;align-items:center;gap:24px}.tile-themes .tile-copy{flex-direction:column;flex:0 0 38%;display:flex}.tile-themes p{color:#f0ecffbf}.tile-themes .tile-cta{color:#d8c8ff}.theme-fan{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;display:grid}.theme-fan figure{flex-direction:column;gap:6px;margin:0;transition:transform .25s;display:flex}.theme-fan figure:nth-child(2n){transform:translateY(10px)}.tile-themes:hover .theme-fan figure{transform:translateY(-3px)}.tile-themes:hover .theme-fan figure:nth-child(2n){transform:translateY(7px)}.theme-fan figcaption{color:#f0ecffb3;text-align:center;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:700;overflow:hidden}.mini-board{aspect-ratio:1;border-radius:10px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden;box-shadow:0 12px 24px -12px #000000b3}.mini-board span{position:relative}.mini-board img{object-fit:contain;width:92%;height:92%;position:absolute;inset:4%}.lp-final{isolation:isolate;text-align:center;color:#f3f7f4;background:radial-gradient(100% 140% at 50% 0,#1f5a3a 0%,#0f2a1d 55%,#0a1611 100%);border-radius:32px;margin-top:88px;padding:72px 24px;position:relative;overflow:hidden}.lp-final-bg{z-index:-1;opacity:.08;background:conic-gradient(#fff 25%, transparent 0 50%, #fff 0 75%, transparent 0) 0 0 / 56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 80% at 50% 100%,#000,#0000);mask-image:radial-gradient(60% 80% at 50% 100%,#000,#0000)}.lp-final-piece{opacity:.12;z-index:-1;pointer-events:none;width:200px;position:absolute;bottom:-30px;right:4%;transform:rotate(12deg)}.lp-final h2{letter-spacing:-.03em;text-wrap:balance;margin:0 0 10px;font-size:clamp(1.9rem,4vw,3rem);font-weight:850}.lp-final p{color:#ebf5eeb8;margin:0 0 28px;font-size:1.1rem}@media (max-width:1100px){.fc-streak{left:-12px}.fc-xp{right:-12px}.fc-puzzle{left:0}.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-themes,.tile-online{grid-column:span 2}}@media (max-width:900px){.lp-hero-inner{text-align:center;grid-template-columns:1fr;gap:44px;padding:44px 20px 64px}.lp-lead{margin-inline:auto}.lp-ctas,.lp-stats{justify-content:center}.lp-stats{margin-top:32px}.lp-board-frame{transform:none}.realm-rail{scroll-snap-type:x mandatory;scrollbar-width:none;gap:12px;margin:0 -16px;padding:4px 16px 16px;display:flex;overflow-x:auto}.realm-rail::-webkit-scrollbar{display:none}.realm-card{scroll-snap-align:start;flex:0 0 min(62vw,260px)}.lp-section{padding-top:64px}}@media (max-width:640px){.lp-hero h1{font-size:clamp(2.1rem,9vw,2.8rem)}.lp-btn{flex:auto;justify-content:center;padding:14px 20px}.lp-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.lp-stats li{flex-direction:column;align-items:center;gap:0;padding:8px 4px;font-size:.78rem}.lp-stats strong{font-size:1.2rem}.lp-board-frame{border-radius:16px;padding:8px}.float-card{border-radius:12px;gap:7px;padding:6px 10px 6px 6px;font-size:.78rem}.fc-icon{border-radius:8px;width:26px;height:26px;font-size:.9rem}.fc-streak{top:-14px;left:-6px}.fc-xp{top:auto;bottom:18%;right:-6px}.fc-puzzle{display:none}.bento{grid-template-columns:1fr;grid-auto-rows:auto;gap:12px}.tile-learn,.tile-themes,.tile-online{flex-direction:column;grid-area:auto;align-items:stretch}.tile-online .versus{margin-top:18px}.tile-learn{min-height:0}.tile-learn-path{display:none}.tile-themes .tile-copy{flex:none}.theme-fan{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-final{border-radius:24px;margin-top:64px;padding:52px 20px}.lp-final-piece{width:130px}}@media (prefers-reduced-motion:reduce){.lp-board-frame{transform:none}}.demo-board{position:relative}.demo-board .board-wrap{box-shadow:var(--shadow);border-radius:10px}.demo-caption{text-align:center;color:var(--muted);margin:14px 0 0;font-size:.85rem;font-style:italic}.section{padding:40px 0 8px}.section-title{margin:0 0 6px;font-size:1.7rem}.section-lead{margin:0 0 20px}.board-wrap{width:100%;box-shadow:var(--shadow);touch-action:none;border-radius:8px;position:relative}.board-wrap,.board-wrap *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.board{aspect-ratio:1;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;position:relative;overflow:hidden;container-type:inline-size}.sq{width:12.5%;height:12.5%;position:absolute}.sq-tint,.sq-check,.sq-hover{position:absolute;inset:0}.sq-dot{z-index:3;pointer-events:none;border-radius:50%;width:30%;height:30%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sq-capture{z-index:3;pointer-events:none;position:absolute;inset:0}.coord{pointer-events:none;z-index:1;font-family:ui-sans-serif,system-ui,sans-serif;font-size:max(9px,2.3cqw);font-weight:700;line-height:1;position:absolute}.coord-file{bottom:5%;right:5%}.coord-rank{top:5%;left:5%}.piece{z-index:2;pointer-events:none;background:50%/100% 100% no-repeat;width:12.5%;height:12.5%;position:absolute}.piece-ghost{z-index:100;pointer-events:none;filter:drop-shadow(0 8px 10px #00000059);position:fixed;transform:scale(1.08)}.board-svg{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0}.promotion{z-index:10;background:#00000073;position:absolute;inset:0}.promotion-choice{cursor:pointer;background:radial-gradient(#fff 55%,#ddd);border:0;border-radius:50%;width:12.5%;height:12.5%;padding:4%;transition:transform .1s;position:absolute;box-shadow:0 4px 12px #00000059}.promotion-choice:hover{background:radial-gradient(#fff 55%,#f6d77a);transform:scale(1.06)}.promotion-choice img{width:100%;height:100%}main.container:has(.game-layout){max-width:none;padding:0}body:has(.game-layout) .site-footer{margin-top:16px}.game-layout{--header:62px;--bars:0px;--reserve:116px;grid-template-columns:minmax(0,1fr);gap:10px;padding:0 0 16px;display:grid}.game-layout:has(.player-bar){--bars:96px}.game-board-col{min-width:0;width:min(100%, max(280px, calc(100vh - var(--header) - var(--bars) - var(--reserve))));width:min(100%, max(280px, calc(100svh - var(--header) - var(--bars) - var(--reserve))));flex-direction:column;gap:4px;margin-inline:auto;display:flex}.game-panel{flex-direction:column;gap:10px;min-width:0;padding-inline:12px;display:flex}.game-panel .panel-card{padding:12px}.game-panel .panel-moves{padding:6px 10px}.game-panel .panel-actions{order:1}.game-panel .panel-info{order:2}.game-panel .controls{flex-wrap:wrap}@media (max-width:1000px){.game-layout{--header:55px}body:has(.game-layout) .site-header-inner{flex-wrap:nowrap;gap:6px;padding:6px 10px}body:has(.game-layout) .brand span{display:none}body:has(.game-layout) .nav{flex:auto;order:0;justify-content:space-around;min-width:0}body:has(.game-layout) .nav-link{flex:0 auto;padding:6px;font-size:0}body:has(.game-layout) .nav-icon{font-size:1.25rem}}@media (max-width:600px){.game-board-col .board-wrap,.game-board-col .board{box-shadow:none;border-radius:0}}@media (min-width:900px) and (min-aspect-ratio:1){.game-layout{--bars:0px;--gap:20px;--panel:clamp(300px, 25vw, 360px);--board:max(300px, min(1200px, calc(100vw - 56px - var(--panel) - var(--gap)), calc(100svh - var(--header) - 28px - var(--bars))));grid-template-columns:var(--board) var(--panel);justify-content:center;gap:var(--gap);padding:14px 20px}.game-layout:has(.player-bar){--bars:112px}.game-board-col{gap:8px;width:auto;margin:0}.game-panel{max-height:calc(var(--board) + var(--bars));padding-inline:0;overflow-y:auto}.game-panel .panel-card{flex-shrink:0}.game-panel .panel-moves{flex:1 1 0;min-height:96px;padding:12px}.game-panel .panel-actions{z-index:1;order:0;position:sticky;bottom:0}.game-panel .panel-info{order:0}}@media (min-width:720px) and (max-height:520px) and (min-aspect-ratio:1){.game-layout{--board:calc(100svh - var(--header) - 14px);--bars:0px;--gap:12px;--side:160px;--panel:minmax(0, 1fr);grid-template-columns:auto minmax(0,1fr);justify-content:stretch;padding:7px 12px}.game-layout:has(.player-bar){--bars:0px}.game-board-col{width:var(--board)}.game-board-col:has(.player-bar){grid-template-columns:var(--board) var(--side);grid-template-areas:"board top""board bottom";gap:0 8px;width:auto;display:grid}.game-board-col .board-wrap{grid-area:board}.game-board-col .player-bar:first-child{grid-area:top;align-self:start}.game-board-col .player-bar:last-child{grid-area:bottom;align-self:end}.game-panel{max-height:var(--board);padding-inline:0;overflow-y:auto}.game-panel .panel-card{flex-shrink:0}}.status-line{margin:4px 0 0;font-size:1.05rem}.status-line.is-over strong{color:var(--accent)}.player-bar{align-items:center;gap:10px;min-height:44px;padding:2px 10px;display:flex}.player-bar.is-active .player-avatar{box-shadow:0 0 0 2px var(--accent)}.player-bar.is-active .player-name{color:var(--accent)}.player-avatar{background:var(--bg-2);border-radius:9px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:1.2rem;transition:box-shadow .2s;display:grid}.player-info{flex:1;min-width:0}.player-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;line-height:1.25;overflow:hidden}.player-sub{color:var(--muted);font-size:.85rem;font-weight:500}.captured{align-items:center;height:18px;display:flex;overflow:hidden}.captured:empty{display:none}.captured-piece{flex-shrink:0;width:16px;height:16px;margin-right:-5px}.advantage{color:var(--muted);margin-left:10px;font-size:.8rem;font-weight:700}.clock{font-variant-numeric:tabular-nums;background:var(--bg-2);color:var(--muted);text-align:right;border-radius:8px;flex-shrink:0;min-width:80px;padding:4px 10px;font-size:1.2rem;font-weight:800}.clock.is-running{background:var(--text);color:var(--bg)}.clock.is-low.is-running{background:var(--danger);color:#fff}.move-panel{flex-direction:column;height:100%;display:flex}.move-list{font-variant-numeric:tabular-nums;flex:1 1 0;min-height:0;overflow:auto}@media not all and (min-width:900px) and (min-aspect-ratio:1){.game-panel .move-panel{flex-direction:row;align-items:center;gap:6px}.game-panel .move-list{white-space:nowrap;scrollbar-width:none;align-items:center;display:flex;overflow-y:hidden}.game-panel .move-row{flex:none;align-items:center;display:flex}.game-panel .move-no{margin-left:8px}.game-panel .move-empty{margin:0}.game-panel .move-nav{border:0;flex:none;margin:0;padding:0}}.move-row{grid-template-columns:38px 1fr 1fr;align-items:center;display:grid}.move-row:nth-child(odd){background:var(--surface-2)}.move-no{color:var(--muted);padding-left:6px;font-size:.85rem}.move{color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 8px;font-weight:600}.move:hover{background:var(--bg-2)}.move.is-current{background:var(--accent);color:#fff}.move-empty{margin:8px;font-size:.9rem}.move-nav{gap:6px;margin-top:10px;display:flex}.dialog-backdrop{z-index:50;background:#0a0a0a73;place-items:center;padding:16px;animation:.2s ease-out fade;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);text-align:center;width:min(420px,100%);box-shadow:var(--shadow);border-top:6px solid var(--border);border-radius:20px;padding:28px;animation:.25s cubic-bezier(.2,1.4,.4,1) pop}.dialog.outcome-win{border-top-color:var(--gold)}.dialog.outcome-loss{border-top-color:var(--muted)}.dialog h2{margin:6px 0;font-size:1.6rem}.dialog-emoji{font-size:3rem;line-height:1}.dialog-actions{flex-direction:column;gap:8px;margin-top:18px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.92)translateY(8px)}}.setup-row{flex-wrap:wrap;gap:8px 32px;margin-bottom:20px;display:flex}.bot-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.bot-card{text-align:left;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;align-items:flex-start;gap:4px;padding:18px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.bot-card:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb, var(--accent) 40%, var(--border));transform:translateY(-3px)}.bot-avatar{background:var(--bg-2);border-radius:16px;place-items:center;width:56px;height:56px;margin-bottom:6px;font-size:2rem;display:grid}.bot-avatar.small{width:44px;height:44px;margin:0;font-size:1.5rem}.bot-name{font-size:1.05rem;font-weight:800}.bot-rating{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 8px;font-size:.85rem;font-weight:800;position:absolute;top:16px;right:16px}.bot-bio{color:var(--muted);flex:1;font-size:.9rem}.bot-play{color:var(--accent);margin-top:8px;font-size:.9rem;font-weight:700}.style-random .bot-avatar{background:#fff4d6}.style-beginner .bot-avatar{background:#e6f0ff}.style-solid .bot-avatar{background:#efe6ff}.style-sharp .bot-avatar{background:#ffe9e0}.style-strong .bot-avatar{background:#fde8c8}.opponent-head{align-items:center;gap:12px;display:flex}.opponent-head p{margin:0}.mode-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (max-width:760px){.mode-grid{grid-template-columns:1fr}}.mode-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:column;gap:6px;padding:24px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.mode-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.mode-card h2{margin:6px 0 0}.mode-card p{flex:1;margin:0}.mode-icon{font-size:2.4rem}.mode-cta{color:var(--accent);margin-top:10px;font-weight:700}.tc-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}@media (max-width:600px){.tc-grid{grid-template-columns:1fr 1fr}}.tc-card{border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:18px 10px;display:flex}.tc-card strong{font-size:1.4rem}.tc-card.is-on{border-color:var(--accent);background:var(--accent-soft)}.tc-icon{font-size:1.4rem}.invite p{margin:4px 0 8px}.invite-row{gap:8px;display:flex}.invite-row input{border:1px solid var(--border);background:var(--surface-2);min-width:0;color:var(--text);font:inherit;border-radius:9px;flex:1;padding:9px 10px;font-size:.85rem}.draw-offer{background:var(--accent-soft);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px;display:flex}.draw-offer>span{flex:100%;font-weight:600}.game-banner{border-radius:10px;margin:10px 0 0;padding:8px 12px;font-size:.92rem;line-height:1.35}.game-banner.is-info{background:var(--accent-soft)}.game-banner.is-warn{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--text);border-left:4px solid var(--danger);font-weight:600}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin;display:inline-block}.spinner.small{border-width:2px;border-top-color:#fff;width:16px;height:16px}@keyframes spin{to{transform:rotate(360deg)}}.learn-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.continue-card{border-radius:var(--radius);background:linear-gradient(135deg, var(--accent), #1f5a38);color:#fff;box-shadow:var(--shadow);flex-direction:column;min-width:260px;padding:14px 52px 14px 18px;text-decoration:none;display:flex;position:relative}.continue-card .muted{color:#fffc}.continue-arrow{font-size:1.4rem;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.tier{margin-top:32px}.tier-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;display:flex}.tier-icon{background:var(--surface);border:1px solid var(--border);border-radius:14px;place-items:center;width:48px;height:48px;font-size:1.5rem;display:grid}.tier-text{flex:1;min-width:200px}.tier-text h2{margin:0;font-size:1.35rem}.tier-text p{margin:2px 0 0}.tier-progress{align-items:center;gap:10px;min-width:180px;display:flex}.progress{background:var(--bg-2);border-radius:999px;flex:1;height:8px;margin:8px 0;overflow:hidden}.progress>span{border-radius:inherit;background:linear-gradient(90deg, var(--accent-2), var(--accent));height:100%;transition:width .4s;display:block}.module-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.module-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:16px}.module-card.is-soon{box-shadow:none;background:0 0;border-style:dashed}.module-card h3{margin:0 0 10px;font-size:1.05rem}.module-card p{margin:0 0 10px}.soon-badge{background:var(--bg-2);color:var(--muted);border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:700;display:inline-block}.lesson-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.lesson-link{border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-weight:600;text-decoration:none;display:flex}.lesson-link:hover{background:var(--bg-2)}.lesson-check{border:2px solid var(--border);width:24px;height:24px;color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;font-size:.75rem;display:grid}.lesson-link.is-done .lesson-check{background:var(--accent);border-color:var(--accent);color:#fff}.lesson-link.is-next{background:var(--accent-soft)}.lesson-link.is-next .lesson-check{border-color:var(--accent);color:var(--accent)}.coach{align-items:flex-start;gap:12px;transition:border-color .2s,background .2s;display:flex}.coach.is-wrong{border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.coach.is-right{border-color:color-mix(in srgb, var(--good) 50%, var(--border))}.coach-avatar{background:var(--accent-soft);border-radius:50%;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:1.6rem;display:grid}.coach-bubble p{margin:0 0 8px}.coach-bubble p:last-child{margin-bottom:0}.feedback{font-weight:700}.feedback.good{color:var(--good)}.feedback.bad{color:var(--danger);animation:.3s shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.done-card{background:var(--accent-soft);border-color:#0000;align-items:center;gap:12px;animation:.3s pop;display:flex}.done-emoji{font-size:1.8rem}.stat-row{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.stat{background:var(--surface-2);border-radius:10px;flex-direction:column;align-items:center;padding:10px 4px;display:flex}.stat-value{font-size:1.25rem;font-weight:800}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.puzzle-turn{align-items:center;gap:10px;margin:0 0 6px;font-size:1.1rem;font-weight:700;display:flex}.turn-dot{border:2px solid var(--muted);border-radius:50%;width:16px;height:16px}.turn-dot.w{background:#fff}.turn-dot.b{background:#222}.puzzle-state.state-solved{border-color:color-mix(in srgb, var(--good) 50%, var(--border));background:var(--accent-soft)}.puzzle-state.state-failed{border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.puzzle-state p:last-child{margin:0}.settings-layout{grid-template-columns:minmax(0,420px) 1fr;align-items:start;gap:24px;display:grid}.settings-preview{position:sticky;top:80px}.settings-options{flex-direction:column;gap:14px;display:flex}@media (max-width:860px){.settings-layout{grid-template-columns:1fr}.settings-preview{max-width:420px;position:static}}.theme-grid,.piece-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.theme-option,.piece-option{border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px;font-size:.88rem;font-weight:600;transition:border-color .15s;display:flex}.theme-option[aria-pressed=true],.piece-option[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.theme-swatch{aspect-ratio:1;border-radius:8px;grid-template-columns:repeat(4,1fr);width:100%;display:grid;position:relative;overflow:hidden}.theme-piece{filter:drop-shadow(0 2px 3px #0000004d);width:50%;height:50%;position:absolute;top:25%;left:25%}.piece-sample{background:var(--bg-2);border-radius:8px;justify-content:center;width:100%;padding:6px;display:flex}.piece-sample img{aspect-ratio:1;width:34%;margin:0 -3%}.switch-row{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;padding:10px 0;font-weight:600;display:flex;position:relative}.switch-row:last-child{border-bottom:0}.switch-row input{opacity:0;width:1px;height:1px;position:absolute}.switch{background:var(--border);border-radius:999px;flex-shrink:0;width:44px;height:26px;transition:background .2s;position:relative}.switch:after{content:"";width:20px;height:20px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;position:absolute;top:3px;left:3px}.switch-row input:checked+.switch{background:var(--accent)}.switch-row input:checked+.switch:after{transform:translate(18px)}.switch-row input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}.credits{margin:0;padding-left:18px}.level-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:4px 10px 4px 4px;text-decoration:none;display:flex}.level-chip:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.level-badge{background:linear-gradient(180deg, var(--gold), color-mix(in srgb, var(--gold) 70%, #000));color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:.85rem;font-weight:800;display:grid}.level-chip-text{flex-direction:column;min-width:64px;font-weight:700;line-height:1.1;display:flex}.level-bar{background:var(--bg-2);border-radius:999px;height:5px;margin-top:3px;display:block;overflow:hidden}.level-bar>span{background:var(--gold);border-radius:inherit;height:100%;transition:width .4s;display:block}.streak-flame{font-weight:800}@media (max-width:720px){.level-chip-text{display:none}.level-chip{padding:3px}.streak-flame{padding-right:6px}}.toasts{z-index:50;pointer-events:none;flex-direction:column;gap:8px;max-width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 14px;animation:.3s toast-in;display:flex}.toast p{margin:2px 0 0}.toast.is-big{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 25%, transparent), var(--shadow)}.toast-icon{font-size:1.4rem;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.xp-pill{background:color-mix(in srgb, var(--gold) 20%, transparent);color:var(--text);border-radius:999px;margin-left:8px;padding:2px 10px;font-size:.9rem;font-weight:800;display:inline-block}.progress.big{height:12px}.progress-hero{grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:14px;display:grid}@media (max-width:760px){.progress-hero{grid-template-columns:1fr}}.level-card,.goal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:18px;display:flex}.level-card-icon{background:color-mix(in srgb, var(--gold) 18%, var(--surface));border-radius:50%;place-items:center;width:72px;height:72px;font-size:3.2rem;line-height:1;display:grid}.level-card-text{flex:1;min-width:0}.level-card h2{margin:0;font-size:1.6rem}.goal-ring{--pct:0%;background:conic-gradient(var(--accent) var(--pct), var(--bg-2) 0);border-radius:50%;flex-shrink:0;place-items:center;width:84px;height:84px;display:grid}.goal-ring span{background:var(--surface);border-radius:50%;place-items:center;width:64px;height:64px;font-size:.85rem;font-weight:800;display:grid}.goal-card .controls{margin-top:8px}.button.small{padding:6px 12px;font-size:.85rem}.stat-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (max-width:760px){.stat-grid{grid-template-columns:1fr 1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;display:flex}.rank-ladder{grid-template-columns:repeat(7,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:760px){.rank-ladder{grid-template-columns:repeat(4,1fr)}}.rank-step{border:1px solid var(--border);background:var(--surface);opacity:.55;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.rank-step.is-reached{opacity:1}.rank-step.is-current{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 25%, transparent)}.rank-icon{font-size:1.8rem;line-height:1.1}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:10px;display:grid}.achievement{border:1px solid var(--border);background:var(--surface);opacity:.6;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.achievement p{margin:2px 0 0}.achievement.is-unlocked{opacity:1;border-color:color-mix(in srgb, var(--gold) 55%, var(--border))}.achievement-icon{text-align:center;filter:grayscale();width:40px;font-size:1.6rem}.achievement.is-unlocked .achievement-icon{filter:none}.quiz-options{flex-direction:column;gap:8px;margin:10px 0 6px;display:flex}.quiz-option{text-align:left;justify-content:flex-start;width:100%}.quiz-option.is-wrong{border-color:var(--danger);color:var(--danger)}.quiz-option.is-right{border-color:var(--good);background:var(--accent-soft);opacity:1}.source-badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.78rem;font-weight:700;text-decoration:none}.source-badge:hover{color:var(--text)}.puzzle-filters{flex-direction:column;gap:10px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field select{border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;border-radius:10px;padding:9px 10px;font-weight:600}.segmented{background:var(--bg-2);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.segment{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:7px 6px;font-size:.88rem;font-weight:700}.segment.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.puzzle-credit{margin:10px 0 0}.atlas-page{--seam:110px;--row:108px;--node:60px;--amp:16%;--plaque:#fbf3df;--ink:#2a2116;--ink-soft:#5d5242}.atlas{grid-template-columns:196px minmax(0,1fr);align-items:start;gap:20px;display:grid}.atlas-rail{z-index:6;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:4px;padding:8px;display:flex;position:sticky;top:84px}.rail-stop{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:5px;font-size:.84rem;font-weight:700;line-height:1.15;display:flex}.rail-stop:hover{background:var(--bg-2)}.rail-stop.is-active{background:color-mix(in srgb, var(--gold) 22%, var(--surface))}.rail-stop img{object-fit:cover;width:40px;height:40px;box-shadow:0 0 0 2px var(--border);border-radius:50%;flex-shrink:0}.rail-stop.is-active img{box-shadow:0 0 0 2px var(--gold)}.rail-stop.is-cleared img{box-shadow:0 0 0 2px #4d9a5b}.rail-stop.is-locked{color:var(--muted)}.rail-stop.is-locked img{filter:grayscale(.85)brightness(.92)}.atlas-map{box-shadow:var(--shadow);isolation:isolate;border-radius:22px;position:relative;overflow:hidden}.realm{scroll-margin-top:76px;position:relative}.realm+.realm{margin-top:calc(var(--seam) * -1)}.realm-art,.realm-fog{object-fit:cover;z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.realm+.realm .realm-art,.realm+.realm .realm-fog{-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--seam));-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--seam));mask-image:linear-gradient(to bottom, transparent, #000 var(--seam))}.realm.is-locked .realm-art{filter:saturate(.5)brightness(.98)}.realm-fog{opacity:.82}.realm-head{z-index:2;justify-content:center;padding:26px 16px 44px;display:flex;position:relative}.realm+.realm .realm-head{padding-top:calc(var(--seam) + 22px)}.realm-plaque{z-index:2;border-top:5px solid var(--realm);background:var(--plaque);width:min(100%,460px);color:var(--ink);text-align:center;border-radius:16px;padding:14px 18px;position:relative;box-shadow:0 10px 24px -12px #1e1405a6}.realm-plaque h2{color:var(--ink);margin:1px 0 3px;font-size:1.5rem;line-height:1.15}.realm-plaque p{color:var(--ink-soft);margin:0 0 9px;font-size:.92rem}.realm-seal{width:72px;height:72px;margin:0 auto 6px;display:block}.realm-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--realm);font-size:.72rem;font-weight:800}.realm-progress{background:#e4d8bb;border-radius:999px;max-width:280px;height:8px;margin:0 auto 9px;overflow:hidden}.realm-progress>span{border-radius:inherit;background:linear-gradient(90deg,#d59a1f,#efc14a);height:100%;display:block}.realm-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;display:flex}.realm-badge{color:var(--ink);background:#efe3c5;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:700}.realm-badge.is-cleared{background:#f4d67b}.realm-badge.is-locked{color:var(--ink-soft);background:#e6e0d2}.realm-band{color:var(--ink-soft);font-weight:600}.road{left:calc(50% - var(--amp));width:calc(var(--amp) * 2);pointer-events:none;z-index:1;filter:url(#road-rough);position:absolute;overflow:visible}.road path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:butt;stroke-linejoin:round}.road-edge{stroke:#7d6440;stroke-width:32px}.road-bed{stroke:var(--road,#e9d8ab);stroke-width:26px}.road-walked{stroke:#e0a32a;stroke-width:11px;stroke-dasharray:1 19;stroke-linecap:round}.road-main,.road-link{height:100%;top:0}.road-in{top:var(--seam);height:calc(100% - var(--seam))}.realm:first-child .realm-head{padding-bottom:28px}.realm[data-scenery=forest]{--road:#cdb98a}.realm[data-scenery=coast]{--road:#e3dcc4}.realm[data-scenery=desert]{--road:#f6e7c3}.realm[data-scenery=caverns]{--road:#c9bde8}.realm[data-scenery=citadel]{--road:#efe2cd}.realm[data-scenery=peak]{--road:#f2f6fa}.realm.is-locked .road{opacity:.55}.realm-path{z-index:2;height:calc(var(--n) * var(--row));position:relative}.realm-path ol{margin:0;padding:0;list-style:none;position:absolute;inset:0}.realm-tail{height:calc(var(--seam) + 40px);position:relative}.stage{top:calc(var(--i) * var(--row));left:calc(50% + var(--dx) * var(--amp));height:var(--row);width:max-content;transform:translateX(calc(var(--node) / -2));z-index:2;align-items:center;display:flex;position:absolute}.stage.kind-gate{--node:66px}.stage.kind-trial{--node:84px}.stage.is-current{z-index:3}.stage-link{color:var(--ink);align-items:center;gap:8px;text-decoration:none;display:flex}.stage.label-left .stage-link{text-align:right;transform:translateX(calc(-100% + var(--node)));flex-direction:row-reverse}.node{width:var(--node);height:var(--node);border-radius:50%;flex-shrink:0;transition:transform .15s;display:block;position:relative}.node img{object-fit:contain;filter:drop-shadow(0 5px 5px #1e140580);width:100%;height:100%;display:block}.stage-link:hover .node{transform:translateY(-3px)scale(1.06)}.stage.is-locked .node img{filter:grayscale(.9)brightness(.86)drop-shadow(0 3px 3px #1e140566)}.stage.is-current .node:before{content:"";background:radial-gradient(circle,#ffd86e99,#0000 70%);border:4px solid #ffd25e;border-radius:50%;animation:1.9s ease-in-out infinite beacon;position:absolute;inset:-9px}@keyframes beacon{0%,to{opacity:1;transform:scale(.94)}50%{opacity:.62;transform:scale(1.1)}}.node-badge{border:2px solid var(--plaque);border-radius:50%;place-items:center;width:24px;height:24px;font-size:.72rem;font-weight:900;line-height:1;display:grid;position:absolute;bottom:-2px;right:-3px}.node-badge.is-done{color:#fff;background:#2f8a4a}.node-badge.is-locked{background:#4d463a;font-size:.62rem}.node-label{background:var(--plaque);border-radius:10px;flex-direction:column;width:max-content;max-width:230px;padding:5px 11px;line-height:1.2;display:flex;box-shadow:0 4px 10px -5px #1e140599}.node-kind{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-size:.66rem;font-weight:800}.node-title{color:var(--ink);font-size:.92rem;font-weight:700}.stage.is-locked .node-label{background:#ece6d8}.stage.is-locked .node-title{color:var(--ink-soft);font-weight:600}.stage.is-current .node-label{outline:3px solid #ffd25e}.node-start{color:#fff;background:#1f6a3f;border-radius:999px;align-self:flex-start;margin-top:4px;padding:2px 10px;font-size:.78rem;font-weight:800}.stage.label-left .node-start{align-self:flex-end}.stage-link:focus-visible{outline-offset:3px;border-radius:12px;outline:3px solid #fff}@media (max-width:900px){.atlas-page{--row:100px;--node:54px;--amp:21%;--seam:80px}.atlas{display:block}.atlas-rail{scrollbar-width:none;flex-direction:row;justify-content:space-between;gap:2px;margin:0 -2px 10px;padding:5px;top:68px;overflow-x:auto}.rail-stop{border-radius:50%;padding:2px}.rail-stop .rail-name{display:none}.rail-stop img{width:34px;height:34px}.stage.kind-gate{--node:60px}.stage.kind-trial{--node:74px}.atlas-map{border-radius:18px}.realm-plaque h2{font-size:1.28rem}.node-label{max-width:146px;padding:4px 9px}.node-title{font-size:.82rem}}@media (max-width:1000px){.atlas-rail{top:131px}.realm{scroll-margin-top:180px}}.realm-banner{object-fit:cover;width:100%;height:150px;display:block}.realm-banner.is-locked{filter:saturate(.5)}.lives{margin:6px 0 0;font-weight:700}.heart{color:#e0475b;margin-left:2px;font-size:1.25rem}.heart.is-lost{color:var(--border)}.fail-card{border-color:var(--danger)}.fail-card .controls{margin-top:10px}.locked-stage{max-width:640px}.locked-stage .realm-banner{border-radius:16px;margin-bottom:16px}.realm-strip{border-left:4px solid var(--realm);align-items:flex-start;gap:12px;display:flex}.realm-strip strong{display:block}.realm-strip p{margin:2px 0 8px}.realm-strip-emblem{color:var(--realm);font-size:2rem;line-height:1}.form{background:var(--surface);border:1px solid var(--border);max-width:380px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:12px;margin:40px auto;padding:28px;display:flex}.form h1{margin:0 0 8px}.form input{border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;border-radius:10px;padding:11px 12px}.error{color:var(--danger)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.confetti-canvas{pointer-events:none;z-index:80;width:100vw;height:100vh;position:fixed;inset:0}.assess{--gold-1:#f6e27a;--gold-2:#d4a52c;--emerald:#0d3b2c}.assess-hero,.assess-analysing,.assess-reveal{text-align:center;max-width:680px;margin:0 auto;padding:28px 0 8px}.assess-hero h1{margin:4px 0 10px;font-size:clamp(1.9rem,5vw,2.8rem)}.assess-lead{color:var(--muted);max-width:560px;margin:0 auto 18px;font-size:1.1rem}.assess-hero-art,.assess-reveal-art{place-items:center;width:200px;height:200px;margin:0 auto 6px;display:grid;position:relative}.assess-hero-art img,.assess-reveal-art img{filter:drop-shadow(0 14px 22px #3c280059);width:82%;height:auto;animation:3.2s ease-in-out infinite bob;position:relative}.assess-rays{background:repeating-conic-gradient(#f6e27a8c 0deg 8deg,#0000 8deg 22deg);border-radius:50%;animation:18s linear infinite spin-slow;position:absolute;inset:-30%;-webkit-mask:radial-gradient(circle,#000 20%,#0000 68%);mask:radial-gradient(circle,#000 20%,#0000 68%)}.assess-how{text-align:left;gap:10px;max-width:520px;margin:0 auto 22px;padding:0;list-style:none;display:grid}.assess-how li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:10px 14px;display:flex}.assess-how li span{background:linear-gradient(135deg, var(--gold-1), var(--gold-2));color:#3d2a05;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.assess-cta{min-width:240px;font-size:1.15rem;animation:2.4s ease-in-out infinite cta-glow}@keyframes cta-glow{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 22%, transparent), 0 10px 28px -8px var(--accent)}}.assess-card{background:var(--surface);border:1px solid var(--border);max-width:560px;box-shadow:var(--shadow);border-radius:20px;margin:28px auto 0;padding:26px;animation:.3s cubic-bezier(.2,1.4,.4,1) pop}.assess-card h1{margin:10px 0 6px;font-size:1.7rem}.assess-input{width:100%;font:inherit;border:2px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:12px;outline:none;padding:14px 16px;font-size:1.25rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.assess-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.assess-exp{gap:8px;display:grid}.assess-exp button{text-align:left;font:inherit;border:2px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-weight:600;transition:border-color .15s,transform .1s,background .15s;display:flex}.assess-exp button span{text-align:center;width:28px;font-size:1.3rem}.assess-exp button:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border))}.assess-exp button.is-on{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.assess-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;display:flex}.assess-steps{gap:6px;display:flex}.assess-steps span{background:var(--bg-2);border-radius:99px;flex:1;height:6px;transition:background .4s}.assess-steps span.done{background:var(--accent)}.assess-steps span.on{background:linear-gradient(90deg, var(--gold-2), var(--gold-1));animation:1.6s ease-in-out infinite blink}.assess-game .panel-info .panel-title{margin:8px 0 2px}.assess-movecap{background:var(--bg-2);border-radius:99px;height:4px;margin-top:8px;overflow:hidden}.assess-movecap span{background:var(--accent);height:100%;transition:width .3s;display:block}.assess-game .assess-meter{order:3}.assess-meter .field-label{margin-top:0}.assess-meter-value{font-variant-numeric:tabular-nums;background:linear-gradient(180deg, var(--gold-1), var(--gold-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:900;line-height:1.1}.assess-meter-value small{color:var(--muted);-webkit-text-fill-color:var(--muted);font-size:.9rem;font-weight:700}.assess-meter-track{background:linear-gradient(90deg,#cfd8d3,#9fc7ad 40%,#e9cf78 75%,#d4a52c);border-radius:99px;height:10px;margin-top:8px;position:relative}.assess-meter-band{background:#0d3b2c38;border-radius:99px;transition:left .9s,right .9s;position:absolute;top:-3px;bottom:-3px}.assess-meter-dot{background:var(--emerald);border:3px solid var(--gold-1);border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;transition:left .9s cubic-bezier(.2,1.3,.4,1);position:absolute;top:50%;box-shadow:0 2px 8px #0000004d}.assess-result{border-top-width:8px}.assess-result.outcome-win{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--gold) 22%, var(--surface)), var(--surface) 60%)}.assess-result-emoji{font-size:4.2rem;line-height:1;animation:.7s cubic-bezier(.2,1.6,.4,1) trophy-in}@keyframes trophy-in{0%{opacity:0;transform:scale(.2)rotate(-25deg)}}.assess-delta{font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:2.2rem;font-weight:900}.assess-delta.up{color:var(--good)}.assess-delta.down{color:var(--muted)}.assess-analysing{padding-top:64px}.assess-analysing h1{margin:18px 0 6px;font-size:1.5rem}.assess-spinner{background:conic-gradient(from 0deg, var(--gold-2), var(--accent), var(--gold-1), var(--gold-2));border-radius:50%;place-items:center;width:120px;height:120px;margin:0 auto;animation:1.1s linear infinite spin;display:grid}.assess-spinner span{background:var(--bg);border-radius:50%;place-items:center;width:100px;height:100px;font-size:3.2rem;animation:1.1s linear infinite reverse spin;display:grid}.assess-slot{font-variant-numeric:tabular-nums;color:var(--muted);opacity:.55;filter:blur(1px);margin-top:18px;font-size:3rem;font-weight:900}.assess-analyse-line{color:var(--muted);animation:.35s ease-out pop}.assess-reveal{padding-top:16px}.assess-big{letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:linear-gradient(180deg, #fff3b0 0%, var(--gold-1) 30%, var(--gold-2) 60%, #a5761a 100%);color:#0000;filter:drop-shadow(0 6px #5a3c0a40);-webkit-background-clip:text;background-clip:text;font-size:clamp(5rem,22vw,9.5rem);font-weight:900;line-height:1}.assess-reveal.is-done .assess-big{animation:.6s cubic-bezier(.2,1.8,.4,1) big-pop}@keyframes big-pop{40%{transform:scale(1.12)}}.assess-pm{color:var(--muted);margin:4px 0 12px;font-weight:700}.assess-tier{background:var(--emerald);color:var(--gold-1);border:2px solid var(--gold-2);opacity:0;border-radius:999px;align-items:center;gap:8px;padding:10px 22px;font-size:1.25rem;font-weight:800;display:inline-flex;transform:scale(.6)}.assess-reveal.is-done .assess-tier{animation:.6s cubic-bezier(.2,1.6,.4,1) .15s forwards tier-in}@keyframes tier-in{to{opacity:1;transform:none}}.assess-tierline{opacity:0;margin:14px 0 4px;font-size:1.1rem}.assess-reveal.is-done .assess-tierline{animation:.5s ease-out .5s forwards tier-in}.assess-saved{color:var(--good);font-weight:700}.assess-reveal .assess-cta{margin-top:14px}.assess-cert{text-align:center;padding:24px 0 8px}.assess-cert h1{margin:0 0 16px}.assess-cert-canvas{display:none}.assess-cert-frame{aspect-ratio:2339/1654;background:#0d3b2c;border-radius:10px;max-width:980px;margin:0 auto;animation:.8s cubic-bezier(.2,1.2,.4,1) cert-in;position:relative;overflow:hidden;box-shadow:0 30px 60px -24px #0000008c,0 0 0 1px #0000000f}@keyframes cert-in{0%{opacity:0;transform:perspective(1200px)rotateX(18deg)translateY(30px)scale(.94)}}.assess-cert-img{width:100%;height:auto;display:block}.assess-cert-loading{color:var(--gold-1);place-items:center;font-size:3rem;display:grid;position:absolute;inset:0}.assess-cert-loading span{animation:1.2s linear infinite spin}.assess-shine{pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffff73 50%,#0000 65%);animation:2.8s ease-in-out .6s infinite shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes shine{60%,to{transform:translate(100%)}}.assess-cert-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.assess-print-only{display:none}@media (prefers-reduced-motion:reduce){.assess *,.assess :before{animation-duration:.01ms!important;animation-iteration-count:1!important}.assess-shine{display:none}}@media print{@page{size:A4 landscape;margin:0}body *{visibility:hidden!important}.assess-print-only,.assess-print-only *{visibility:visible!important}.assess-print-only{object-fit:contain;width:100vw;height:100vh;position:fixed;inset:0;display:block!important}}@media (max-width:480px){.nav-link{min-width:0;padding:6px 2px;font-size:.68rem}.nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}}.bot-img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.bot-avatar:has(.bot-img){background:0 0;overflow:hidden}.player-avatar:has(.bot-img){background:0 0;overflow:hidden}.bot-stack li span:has(.bot-img){background:0 0;overflow:hidden}.games-bot-avatar:has(.bot-img){background:0 0;overflow:hidden}.bot-world{margin:28px 0 12px}.bot-world:first-of-type{margin-top:8px}.bot-world h2{margin:0;font-size:1.25rem}.bot-world p{margin:2px 0 0}.bot-card.world-blocks{background:linear-gradient(160deg, color-mix(in srgb, #7cc36b 14%, var(--surface)), var(--surface) 55%)}.bot-card.world-city{background:linear-gradient(160deg, color-mix(in srgb, #ff4fa3 12%, var(--surface)), color-mix(in srgb, #23c9d6 8%, var(--surface)))}.bot-card .bot-avatar:has(.bot-img){border-radius:50%;width:72px;height:72px}.player-bar{position:relative}.bot-says{z-index:6;background:var(--surface);max-width:min(78%,320px);color:var(--text);border:2px solid var(--accent);box-shadow:var(--shadow);pointer-events:none;border-radius:4px 14px 14px;padding:6px 12px;font-size:.95rem;font-weight:700;line-height:1.25;animation:.25s ease-out bot-says-pop;position:absolute;top:calc(100% - 4px);left:48px}@keyframes bot-says-pop{0%{opacity:0;transform:scale(.6)translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.bot-says{animation:none}}
.board-wrap.has-side{margin-top:12px}.eval-bar{z-index:2;background:#3a3a3a;border-radius:999px;outline:1px solid #00000038;height:9px;position:absolute;bottom:calc(100% + 3px);left:0;right:0;overflow:hidden}.eval-bar-white{width:var(--share);background:#f4f1ea;transition:width .6s cubic-bezier(.2,.8,.2,1),height .6s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0}.eval-bar.is-flipped .eval-bar-white{inset:0 0 0 auto}.eval-bar.is-pending .eval-bar-white{opacity:.85}.eval-bar-text{display:none}@media (min-width:900px) and (min-aspect-ratio:1){.board-wrap.has-side{margin-top:0}.eval-bar{border-radius:6px;width:14px;height:auto;inset:0 calc(100% + 6px) 0 auto}.eval-bar-white{width:auto;height:var(--share);inset:auto 0 0}.eval-bar.is-flipped .eval-bar-white{inset:0 0 auto}.eval-bar-text{writing-mode:vertical-rl;letter-spacing:.02em;font-variant-numeric:tabular-nums;pointer-events:none;font-size:10px;font-weight:800;display:block;position:absolute;left:50%;transform:translate(-50%)rotate(180deg)}.eval-bar-text.on-white{color:#333;bottom:4px}.eval-bar-text.on-black{color:#eee;top:4px}.eval-bar.is-flipped .eval-bar-text.on-white{top:4px;bottom:auto}.eval-bar.is-flipped .eval-bar-text.on-black{top:auto;bottom:4px}}@media (min-width:720px) and (max-height:520px) and (min-aspect-ratio:1){.board-wrap.has-side{margin-top:0}.eval-bar{width:8px;height:auto;inset:0 calc(100% + 3px) 0 auto}.eval-bar-white{width:auto;height:var(--share);inset:auto 0 0}.eval-bar.is-flipped .eval-bar-white{inset:0 0 auto}.eval-bar-text{display:none}}.move-badge{color:#fff;letter-spacing:-.04em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:1.5em;height:1.5em;padding:0 .2em;font-size:.8rem;font-weight:900;line-height:1;display:inline-flex;box-shadow:0 1px 3px #00000059,inset 0 0 0 1.5px #ffffff8c}.square-badge-slot{z-index:6;pointer-events:none;width:12.5%;height:12.5%;position:absolute}.square-badge-slot .move-badge{font-size:clamp(9px,2.6cqi,18px);position:absolute;top:3%;right:3%}.square-badge-slot .move-badge.is-pop{animation:.45s cubic-bezier(.3,1.6,.5,1) both badge-pop}.square-badge-slot .badge-brilliant.is-pop{animation:.45s cubic-bezier(.3,1.6,.5,1) both badge-pop,1.4s ease-in-out .45s 2 badge-glow}@keyframes badge-pop{0%{transform:scale(0)rotate(-30deg)}to{transform:scale(1)rotate(0)}}@keyframes badge-glow{50%{box-shadow:0 0 0 4px #16b5c973,0 0 18px #16b5c9e6}}.move-list-badge{margin-left:3px;font-size:.8em;font-weight:900}.board-wrap.shake-big{animation:.6s cubic-bezier(.36,.07,.19,.97) both board-shake-big}.board-wrap.shake-small{animation:.45s cubic-bezier(.36,.07,.19,.97) both board-shake-small}@keyframes board-shake-big{10%,90%{transform:translate(-2px,1px)rotate(-.4deg)}20%,80%{transform:translate(5px,-2px)rotate(.6deg)}30%,50%,70%{transform:translate(-8px,3px)rotate(-.9deg)scale(1.01)}40%,60%{transform:translate(8px,-3px)rotate(.9deg)scale(1.01)}}@keyframes board-shake-small{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.celebrate{z-index:7;pointer-events:none;position:absolute;inset:0;overflow:hidden}.celebrate-ring{aspect-ratio:1;opacity:0;border:.9cqi solid #ffd23f;border-radius:50%;width:12.5%;animation:.8s ease-out forwards celebrate-ring;position:absolute;transform:translate(-50%,-50%)scale(.4)}.celebrate-brilliant .celebrate-ring{border-color:#3be0ef}.celebrate-great .celebrate-ring{border-color:#7aa2ff}.celebrate-best .celebrate-ring{border-color:#8ed14f}.celebrate-ring.is-late{animation-delay:.25s}@keyframes celebrate-ring{0%{opacity:1;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(3.2)}}.celebrate-spark{opacity:0;border-radius:50%;width:1.6cqi;height:1.6cqi;animation:.9s cubic-bezier(.15,.7,.3,1) forwards celebrate-spark;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 6px}@keyframes celebrate-spark{0%{opacity:1;transform:translate(-50%,-50%)scale(1.3)}to{opacity:0;transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.3)}}.celebrate-banner{text-align:center;white-space:nowrap;color:#fff;background:linear-gradient(135deg,#0d1e30e0,#193c5ae0);border-radius:3cqi;flex-direction:column;align-items:center;gap:.6cqi;padding:2cqi 5cqi;animation:1.9s cubic-bezier(.2,1.4,.4,1) forwards celebrate-banner;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1.5cqi 5cqi #00000059}.celebrate-banner strong{letter-spacing:.01em;font-size:clamp(18px,6.5cqi,54px);font-weight:900}.celebrate-banner span{opacity:.9;font-size:clamp(12px,3cqi,24px)}.celebrate-brilliant .celebrate-banner strong{background:linear-gradient(90deg,#6ff3ff,#fff,#ffe066,#6ff3ff) 0 0/300% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;animation:1.2s linear infinite celebrate-shine}.celebrate-great .celebrate-banner{background:linear-gradient(135deg,#2846a0e6,#466edce6)}@keyframes celebrate-banner{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)rotate(-6deg)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.08)rotate(1deg)}28%{transform:translate(-50%,-50%)scale(1)rotate(0)}80%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-60%)scale(.96)}}@keyframes celebrate-shine{to{background-position:300% 0}}.celebrate-confetti{position:absolute;inset:0}.celebrate-confetti i{opacity:0;border-radius:2px;width:2%;height:3.2%;animation:2s cubic-bezier(.2,.6,.4,1) forwards celebrate-fall;position:absolute;top:-4%}@keyframes celebrate-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--drift), 105cqi) rotate(540deg)}}@media (prefers-reduced-motion:reduce){.board-wrap.shake-big,.board-wrap.shake-small,.celebrate-spark,.celebrate-confetti,.celebrate-ring{animation:none;display:none}.celebrate-banner{animation-duration:10ms;animation-fill-mode:none}}.game-panel .coach-card{border-left:4px solid var(--border);flex-direction:column;order:1;gap:6px;transition:border-color .3s;display:flex}@media (min-width:900px) and (min-aspect-ratio:1){.game-panel .coach-card{order:0}}.coach-card.is-brilliant{border-left-color:#16b5c9}.coach-card.is-great{border-left-color:#4f7dea}.coach-card.is-best,.coach-card.is-excellent{border-left-color:#6fb52c}.coach-card.is-good{border-left-color:#8aa66c}.coach-card.is-inaccuracy{border-left-color:#e8b923}.coach-card.is-mistake{border-left-color:#ee8a2b}.coach-card.is-blunder{border-left-color:#df3b2f}.coach-card-head{align-items:center;gap:8px;display:flex}.coach-card-avatar{font-size:1.4rem;line-height:1}.coach-card p{margin:0}.coach-card-verdict{align-items:center;gap:8px;display:flex}.coach-card-text{line-height:1.4}.coach-better-toggle{align-self:flex-start}.coach-better{background:#3cbe5a1f;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.button.small{padding:6px 10px;font-size:.85rem}.game-settings{text-align:left;width:calc(100% - 32px);max-width:420px}.game-settings h2{margin:0 0 6px}.game-settings-row>span:first-child{flex-direction:column;gap:2px;padding-right:12px;display:flex}.game-settings-row small{font-size:.8rem;font-weight:400}@media (max-width:600px){.game-settings-label{display:none}}button.game-settings-row{border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;font:inherit;text-align:left;background:0 0;font-weight:600}button.game-settings-row:last-child{border-bottom:0}.game-settings-row.is-on .switch{background:var(--accent)}.game-settings-row.is-on .switch:after{transform:translate(18px)}button.game-settings-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
.game-topbar{display:none}body:has(.play-layout) .site-footer{display:none}.play-layout{--evalh:0px}.play-layout:has(.board-wrap.has-side){--evalh:14px}.game-icon{flex:none;width:24px;height:24px;display:block}.game-icon-glyph{place-items:center;font-size:1.25rem;font-weight:900;line-height:1;display:grid}.game-actions{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;padding:6px;display:grid}.game-action{min-height:54px;color:var(--muted);font:inherit;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 2px;font-size:.78rem;font-weight:700;line-height:1.15;text-decoration:none;transition:background .15s,color .15s,transform 60ms;display:flex}.game-action:hover:not(:disabled){color:var(--text);background:color-mix(in srgb, var(--text) 7%, transparent)}.game-action:active:not(:disabled){transform:scale(.96)}.game-action:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.game-action:disabled{opacity:.38;cursor:default}.game-action-label{white-space:nowrap;max-width:100%}.game-action.is-primary{color:var(--accent)}.game-action.is-primary:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.game-action.is-busy .game-icon{animation:.9s ease-in-out infinite game-pulse}@keyframes game-pulse{50%{opacity:.35}}.game-sheet{overscroll-behavior:contain;background:var(--surface);width:min(440px,100%);max-height:min(86vh,720px);color:var(--text);box-shadow:var(--shadow);border-radius:20px;padding:10px 18px 18px;animation:.22s cubic-bezier(.2,1.3,.4,1) pop;overflow-y:auto}.game-sheet-grip{display:none}.game-sheet-head{justify-content:space-between;align-items:center;gap:12px;margin:4px 0 6px;display:flex}.game-sheet-head h2{margin:0;font-size:1.2rem}.game-sheet-close{background:var(--bg-2);width:40px;height:40px;color:var(--text);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.game-sheet-close .game-icon{width:20px;height:20px}.game-sheet-items{flex-direction:column;display:flex}.game-sheet-item{border:0;border-bottom:1px solid var(--border);width:100%;min-height:52px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:14px;padding:10px 6px;font-size:1rem;font-weight:700;text-decoration:none;display:flex}.game-sheet-item .game-icon{color:var(--muted)}.game-sheet-item.is-primary,.game-sheet-item.is-primary .game-icon{color:var(--accent)}.game-sheet-item:hover{background:var(--surface-2)}.game-sheet-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}.game-sheet-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 2px;font-size:.78rem;font-weight:800}.game-sheet .game-settings-row{padding:12px 6px}.game-sheet-extra{padding:6px 6px 0}.game-sheet-extra .field-label{margin-top:14px}.phone-only{display:none}.coach-chip{border:1px solid var(--border);background:var(--surface);max-width:100%;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 4px;font-size:.82rem;font-weight:700;animation:.25s cubic-bezier(.2,1.4,.4,1) pop;display:inline-flex}.coach-chip .move-badge{color:#fff;width:22px;min-width:22px;height:22px;font-size:.72rem}.coach-chip-owl{padding-left:4px;font-size:1rem;line-height:1}.coach-chip-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.coach-chip.is-pending{color:var(--muted);font-weight:600}.coach-chip.is-better{border-color:var(--accent);color:var(--accent)}.game-sheet .coach-card{box-shadow:none;background:0 0;border:0;padding:0}.game-sheet .coach-card-head{display:none}@media (max-aspect-ratio:1),(max-width:719px),(max-width:899px) and (min-height:521px){:is(body:has(.play-layout) .site-header,body:has(.play-layout) .site-footer){display:none}main.container:has(.play-layout){padding:0}body:has(.play-layout){min-height:0}html:has(.play-layout){overscroll-behavior-y:none}.play-layout{--top:52px;--pbar:48px;--strip:46px;--acts:60px;flex-direction:column;gap:0;min-height:100dvh;padding:0;display:flex}.game-topbar{z-index:20;height:var(--top);background:var(--bg);grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;padding:0 6px;display:grid;position:sticky;top:0}.game-topbar-back{width:44px;height:44px;color:var(--text);border-radius:50%;place-items:center;text-decoration:none;display:grid}.game-topbar-back:active{background:var(--bg-2)}.game-topbar-text{text-align:center;min-width:0;line-height:1.2}.game-topbar-title{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:800;overflow:hidden}.game-topbar-status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:700;overflow:hidden}.game-topbar-status.is-turn{color:var(--accent)}.game-topbar-status.is-over{color:var(--gold)}.play-layout .game-board-col{width:min(100%, max(260px, calc(100vh - var(--top) - 2 * var(--pbar) - var(--strip) - var(--acts) - var(--evalh) - 8px)));width:min(100%, max(260px, calc(100svh - var(--top) - 2 * var(--pbar) - var(--strip) - var(--acts) - var(--evalh) - 8px)));gap:0;margin:auto auto 0}.play-layout .game-board-col .board-wrap,.play-layout .game-board-col .board{box-shadow:none;border-radius:0}.play-layout .player-bar{min-height:var(--pbar);padding:4px 10px}.play-layout{padding-bottom:calc(var(--acts) + env(safe-area-inset-bottom))}.play-layout .game-panel{flex-direction:column;flex:none;gap:8px;margin-bottom:auto;padding:0 0 8px;display:flex}.play-layout .desktop-only{display:none}.play-layout .game-panel>.panel-card{order:1;margin-inline:10px}.play-layout .game-panel>.panel-moves{height:var(--strip);box-shadow:none;border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;order:0;margin:0;padding:0 2px}.play-layout .move-panel{gap:0;height:100%}.play-layout .move-nav{display:contents}.play-layout .move-nav .icon-btn.nav-first,.play-layout .move-nav .icon-btn.nav-last{display:none}.play-layout .move-nav .nav-prev{order:-1}.play-layout .move-nav .icon-btn{width:42px;height:42px;color:var(--text);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.play-layout .move-nav .icon-btn:active:not(:disabled){background:var(--bg-2)}.play-layout .move-list{scroll-behavior:smooth;height:100%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000);mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000)}.play-layout .move-row{background:0 0!important}.play-layout .move-no{margin-left:6px;padding-left:4px;font-weight:600}.play-layout .move{border-radius:6px;padding:6px 7px;font-size:1rem}.play-layout .move.is-current{background:var(--bg-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.play-layout .move-empty{padding-left:8px}.play-layout .game-panel .coach-card{padding:10px 12px}.play-layout .game-action{min-height:50px;padding:4px 2px}.play-layout .game-actions{z-index:15;min-height:var(--acts);padding:4px 4px max(4px, env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--border);order:99;position:fixed;bottom:0;left:0;right:0}.sheet-backdrop{align-items:end;padding:0}.game-sheet{width:100%;max-width:560px;padding-bottom:max(18px, env(safe-area-inset-bottom));border-radius:22px 22px 0 0;justify-self:center;animation:.26s cubic-bezier(.2,.9,.3,1) sheet-up}.game-sheet-grip{background:var(--border);border-radius:99px;width:40px;height:5px;margin:0 auto 6px;display:block}}@keyframes sheet-up{0%{transform:translateY(100%)}}@media (max-width:599px),(max-height:520px){.play-layout .phone-only{display:contents}.play-layout .hide-on-phone{display:none}}@media (min-width:600px) and (max-aspect-ratio:1){.play-layout{--top:60px;--pbar:60px;--strip:52px;--acts:74px}.play-layout .game-board-col{width:min(calc(100% - 48px), max(300px, calc(100svh - var(--top) - 2 * var(--pbar) - var(--strip) - var(--acts) - 180px)))}.play-layout .game-board-col .board-wrap,.play-layout .game-board-col .board{border-radius:10px}.play-layout .player-bar{padding-inline:0}.play-layout .game-panel{width:min(100%,760px);margin-inline:auto}.play-layout .game-actions{border-radius:0}.game-action{font-size:.9rem}.game-topbar-title{font-size:1.1rem}}@media (min-width:720px) and (max-height:520px) and (min-aspect-ratio:1){:is(body:has(.play-layout) .site-header,body:has(.play-layout) .site-footer){display:none}.play-layout{--header:0px}.play-layout .game-actions{background:var(--bg);border-top:1px solid var(--border);margin-top:auto;position:sticky;bottom:0}.play-layout .game-panel{flex-direction:column;gap:8px;display:flex}.play-layout .desktop-only{display:none}.play-layout .game-panel>.panel-moves{flex:none;order:0;padding:4px 6px}.play-layout .game-panel>.panel-card{order:1}.play-layout .game-actions{order:99;padding:4px 0}.play-layout .game-action{min-height:50px;font-size:.62rem}.play-layout .coach-chip{padding-right:4px}.play-layout .coach-chip-text,.play-layout .move-nav .icon-btn.nav-first,.play-layout .move-nav .icon-btn.nav-last{display:none}.play-layout .move.is-current{background:var(--bg-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.play-layout .move-nav .icon-btn{place-items:center;padding:6px;display:grid}}@media (min-width:900px) and (min-aspect-ratio:1){.play-layout .game-panel{height:calc(var(--board) + var(--bars));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:none;box-shadow:var(--shadow-sm);gap:0;overflow:hidden}.play-layout .game-panel>.panel-card{box-shadow:none;border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;padding:14px 16px}.play-layout .game-panel>.coach-card{border-left:4px solid #0000}.play-layout .game-panel>.panel-moves{flex:1 1 0;min-height:120px;padding:8px 10px;overflow:hidden}.play-layout .move-nav{margin-top:8px}.play-layout .move-nav .icon-btn{background:var(--bg-2);border:0;place-items:center;display:grid}.play-layout .move-nav .game-icon{width:20px;height:20px}.play-layout .game-panel>.panel-card:has(+.game-actions){border-bottom:0}.play-layout .game-actions{border-top:1px solid var(--border);background:var(--surface-2);flex:none;padding:6px}.play-layout .game-action{min-height:60px;font-size:.82rem}.play-layout .game-action.is-primary{background:var(--accent);color:var(--accent-text)}.play-layout .game-action.is-primary:hover:not(:disabled){background:var(--accent-2);color:var(--accent-text)}html.kiosk .play-layout{--header:130px}}
