:root{--ink:#f6ead2;--ink-dim:#c9b48e;--gold:#e3b866;--gold-hi:#ffe2a3;--gold-deep:#a8792f;--glass:#180e078c;--glass-strong:#160d06db;--hair:#e3b86661;--techelet:#3d7fe0;--zahav:#e0ac3d;--display:"Suez One", "Frank Ruhl Libre", serif;--body:"Frank Ruhl Libre", "Times New Roman", serif;--script:"Bellefair", "Frank Ruhl Libre", serif;--light-sq:#efdcb4;--dark-sq:#7a4e2c;--last-move:#ffd75e66;--selected:#7cc8ff73;--check:#ff6a1acc;--wood:#3a2210}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--ink);font-family:var(--body);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;background:#120b06;overflow:hidden}button{font:inherit;color:inherit}.app{position:fixed;inset:0;overflow:hidden}.stage{position:absolute;inset:0}.stage canvas{display:block}.loading{font-family:var(--display);color:var(--gold);letter-spacing:.02em;background:radial-gradient(circle at 50% 45%,#3a2210,#120b06 70%);place-items:center;font-size:2rem;animation:1.6s ease-in-out infinite breathe;display:grid;position:absolute;inset:0}@keyframes breathe{50%{opacity:.55}}.hud-top{top:0;z-index:5;padding:max(12px, env(safe-area-inset-top)) 18px 0;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;inset-inline:0}.hud-top>*{pointer-events:auto}.wordmark h1{font-family:var(--display);background:linear-gradient(180deg, var(--gold-hi), var(--gold) 55%, var(--gold-deep));color:#0000;filter:drop-shadow(0 2px 6px #0009);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(1.5rem,4.2vw,2.4rem);font-weight:400;line-height:1.1}.wordmark p{color:var(--ink-dim);letter-spacing:.02em;text-shadow:0 1px 4px #000;margin:4px 0 0;font-size:.85rem}.chip{border:1px solid var(--hair);background:var(--glass);color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:6px 14px}.chip:hover{border-color:var(--gold)}.nameplate{z-index:4;background:var(--glass);border:1px solid var(--hair);-webkit-backdrop-filter:blur(12px);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;max-width:calc(100vw - 24px);height:48px;padding:6px 16px 6px 8px;transition:box-shadow .4s,border-color .4s;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}[dir=rtl] .nameplate{padding:6px 8px 6px 16px}.nameplate-top{top:max(78px, calc(env(safe-area-inset-top) + 70px))}.nameplate-bottom{bottom:max(92px, calc(env(safe-area-inset-bottom) + 86px))}@media (width>=901px){.nameplate{left:auto;inset-inline-start:18px;transform:none}.nameplate-top{top:96px}.nameplate-bottom{bottom:22px}}.nameplate.active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold), 0 0 28px #ffc45c59}.seal{border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid;box-shadow:inset 0 2px 3px #ffffff59,inset 0 -3px 5px #00000059}.seal-w{background:radial-gradient(circle at 35% 30%, #7db0ff, var(--techelet) 55%, #1c4a96);color:#f4f8ff}.seal-b{background:radial-gradient(circle at 35% 30%, #ffe3a0, var(--zahav) 55%, #8a5d16);color:#3a2307}.np-text{white-space:nowrap;flex-direction:column;min-width:0;line-height:1.15;display:flex;overflow:hidden}.np-text small{text-overflow:ellipsis;overflow:hidden}.np-text strong{font-family:var(--display);font-size:1.05rem;font-weight:400}.np-text small{color:var(--gold-hi);font-size:.78rem;animation:2s ease-in-out infinite breathe}.np-bench{border-inline-start:1px solid var(--hair);flex-wrap:nowrap;flex:none;align-items:center;gap:6px;padding-inline-start:10px;display:flex}.bench-item{align-items:center;gap:1px;display:inline-flex}.bench-item b{font-family:var(--display);color:var(--ink-dim);font-size:.78rem;font-weight:400}.np-bench .piece-icon-w{color:#8fb8ff}.np-bench .piece-icon-b{color:var(--zahav)}.banner{z-index:6;font-family:var(--display);white-space:nowrap;color:var(--gold-hi);pointer-events:none;text-shadow:0 0 18px #ffaa3cbf,0 4px 18px #000c;font-size:clamp(2.2rem,9vw,4.6rem);animation:1.9s cubic-bezier(.2,.9,.2,1) forwards banner;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}@keyframes banner{0%{opacity:0;letter-spacing:.2em;transform:translate(-50%,-50%)scale(.6)}14%{opacity:1;letter-spacing:.02em;transform:translate(-50%,-50%)scale(1.06)}24%{transform:translate(-50%,-50%)scale(1)}78%{opacity:1}to{opacity:0;transform:translate(-50%,-62%)scale(1)}}.dock{z-index:5;left:50%;bottom:max(14px, env(safe-area-inset-bottom));background:var(--glass);border:1px solid var(--hair);-webkit-backdrop-filter:blur(14px);border-radius:22px;gap:4px;padding:6px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 30px #00000073}.dock button{min-width:64px;color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:3px;padding:8px 8px 6px;font-size:.72rem;transition:background .2s,color .2s;display:flex}.dock button:hover:not(:disabled),.dock button.on{color:var(--gold-hi);background:#e3b86624}.dock button:disabled{opacity:.35;cursor:default}.dock span{white-space:nowrap}@media (width<=480px){.dock button{flex:1;min-width:0;padding:7px 4px 5px;font-size:.66rem}.dock{justify-content:space-between;width:calc(100vw - 20px)}}.moves-panel{z-index:5;inset-inline-end:18px;background:var(--glass-strong);border:1px solid var(--hair);-webkit-backdrop-filter:blur(14px);border-radius:18px;width:270px;max-height:calc(100% - 220px);animation:.3s ease-out slidein;position:absolute;top:90px;overflow:auto;box-shadow:0 10px 30px #00000073}@keyframes slidein{0%{opacity:0;transform:translateY(-8px)}}@media (width<=900px){.moves-panel{inset-inline:12px;width:auto;max-height:38vh;top:auto;bottom:90px}}.move-list{padding:12px 14px}.move-list h3{font-family:var(--display);color:var(--gold);margin:0 0 8px;font-size:1.05rem;font-weight:400}.move-list ol{margin:0;padding:0;list-style:none}.move-list li{font-family:var(--script);letter-spacing:.01em;border-bottom:1px solid #e3b8661f;grid-template-columns:1.8em 1fr 1fr;align-items:baseline;gap:8px;padding:6px 2px;font-size:1.08rem;display:grid}.move-list li:nth-child(odd){background:linear-gradient(90deg,#0000,#e3b8660d,#0000)}.mv-num{font-family:var(--display);color:var(--gold);opacity:.75;font-size:.85rem}.mv-w{color:#a9c8ff}.mv-b{color:#f1cc7a}.muted{color:var(--ink-dim);opacity:.8;margin:0}.overlay{z-index:20;-webkit-backdrop-filter:blur(3px);background:radial-gradient(circle,#120b0659,#080402bf);place-items:center;padding:16px;animation:.25s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.dialog{text-align:center;border:1px solid var(--hair);background:linear-gradient(#2e1c0ef2,#160d06f5);border-radius:24px;width:min(440px,100%);padding:26px 24px 22px;animation:.35s cubic-bezier(.2,1.2,.3,1) pop;box-shadow:0 0 0 1px #0009,0 24px 60px #0009,inset 0 1px #ffe2a326}@keyframes pop{0%{opacity:0;transform:scale(.92)translateY(10px)}}.dialog h2{font-family:var(--display);background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 8px;font-size:1.9rem;font-weight:400;line-height:1.25}.dialog p{color:var(--ink);margin:6px 0;font-size:1.05rem}.dialog-text{line-height:1.5;font-size:1.15rem!important}.dialog .row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.btn{cursor:pointer;border:1px solid var(--gold);color:#2a1806;background:linear-gradient(180deg, var(--gold-hi), var(--gold) 60%, var(--gold-deep));border-radius:14px;min-height:46px;padding:10px 22px;font-size:1rem;font-weight:600;box-shadow:0 6px 16px #e3b86640,inset 0 1px #ffffff80}.btn.ghost{color:var(--ink);border-color:var(--hair);box-shadow:none;background:0 0;font-weight:400}.btn:active{transform:translateY(1px)}.promo-choices{grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 10px;display:grid}.promo-choice{border:1px solid var(--hair);cursor:pointer;background:#ffe2a30d;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;font-size:.85rem;transition:transform .15s,border-color .15s,background .15s;display:flex}.promo-choice:hover{border-color:var(--gold);background:#ffe2a31f;transform:translateY(-3px)}.promo-choice .piece{width:54px;height:54px}.end h2{font-size:2.6rem}.flat-board{place-items:center;padding:140px 12px 160px;display:grid;position:absolute;inset:0}.flat-board .board{width:min(92vw,100dvh - 300px)}.board{aspect-ratio:1;border:10px solid var(--wood);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:10px;grid-template-columns:repeat(8,1fr);width:100%;display:grid;overflow:hidden;box-shadow:0 20px 50px #0009}.sq{justify-content:center;align-items:center;display:flex;position:relative}.sq.light{background:var(--light-sq)}.sq.dark{background:var(--dark-sq)}.sq.last:before,.sq.selected:before,.sq.in-check:before{content:"";pointer-events:none;position:absolute;inset:0}.sq.last:before{background:var(--last-move)}.sq.selected:before{background:var(--selected)}.sq.in-check:before{background:radial-gradient(circle, var(--check) 30%, transparent 75%)}.sq.pickable{cursor:grab}.coord{opacity:.75;pointer-events:none;font-size:10px;font-weight:700;position:absolute}.coord.file{bottom:1px;right:3px}.coord.rank{top:1px;left:3px}.sq.light .coord{color:var(--dark-sq)}.sq.dark .coord{color:var(--light-sq)}.hint{pointer-events:none;background:#ffcf73d9;border-radius:50%;width:28%;height:28%;position:absolute}.hint.capture{background:0 0;border:4px solid #ffcf73d9;width:92%;height:92%}.piece{pointer-events:none;border-radius:50%;place-items:center;width:84%;height:84%;display:grid;position:relative;box-shadow:0 3px 5px #0006}.piece-w{color:#1f5fbf;background:radial-gradient(circle at 35% 30%,#fff4dc,#e3c48f);border:2px solid #1f5fbf}.piece-b{color:var(--zahav);border:2px solid var(--zahav);background:radial-gradient(circle at 35% 30%,#7a4a28,#2e180b)}.piece .piece-icon{width:72%;height:72%}.piece.ghosted{opacity:.3}.drag-layer{z-index:50;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.drag-layer .piece{width:100%;height:100%;transform:scale(1.12)}.scene-wrap{position:absolute;inset:0}.chips{align-items:center;gap:6px;display:flex}.chip.icon{align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.chip.icon.off{color:var(--ink-dim);opacity:.75}.reset-view{z-index:5;top:max(64px, calc(env(safe-area-inset-top) + 58px));align-items:center;gap:6px;animation:.3s fade;display:inline-flex;position:absolute;inset-inline-end:18px}@media (width<=900px){.reset-view{top:auto;bottom:150px;inset-inline-end:12px}}@media (width<=480px){.chip.icon span,.wordmark p{display:none}}.dock .count{color:var(--gold-hi);font-style:normal;font-family:var(--display)}.piece-hint{z-index:4;left:50%;top:max(136px, calc(env(safe-area-inset-top) + 128px));background:var(--glass-strong);border:1px solid var(--hair);color:var(--ink);-webkit-backdrop-filter:blur(12px);pointer-events:none;border-radius:16px;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:8px 16px;animation:.28s cubic-bezier(.2,1.1,.3,1) hintin;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 26px #00000073}@keyframes hintin{0%{opacity:0;transform:translate(-50%,-6px)scale(.96)}}@media (width>=901px){.piece-hint{top:22px}}.piece-hint .piece-icon{color:var(--gold-hi);flex:none}.piece-hint strong{font-family:var(--display);font-size:1.05rem;font-weight:400}.piece-hint .ph-chess{color:var(--ink-dim);font-size:.9rem}.piece-hint small{color:var(--ink-dim);font-size:.85rem;display:block}.how-overlay{padding:10px}.how{border:1px solid var(--hair);background:radial-gradient(120% 80% at 50% 0,#503216f7,#160d06fa 70%);border-radius:26px;flex-direction:column;width:min(760px,100%);max-height:calc(100dvh - 20px);animation:.4s cubic-bezier(.2,1.2,.3,1) pop;display:flex;overflow:hidden;box-shadow:0 30px 80px #000000b3,inset 0 1px #ffe2a326}.how-dots{flex-wrap:wrap;justify-content:center;gap:6px;padding:14px 10px 4px;display:flex}.how-dots button{border:1px solid var(--hair);cursor:pointer;width:34px;height:34px;color:var(--ink-dim);background:#ffe2a30a;border-radius:50%;place-items:center;transition:all .2s;display:grid}.how-dots button.on{border-color:var(--gold);color:var(--gold-hi);background:#e3b86633;transform:scale(1.08)}.how-dots .dot{background:currentColor;border-radius:50%;width:8px;height:8px}.how-body{flex:1;padding:8px 24px 4px;animation:.35s ease-out slidein;overflow:auto}.how h2{font-family:var(--display);background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:6px 0 4px;font-size:clamp(1.8rem,6vw,2.5rem);font-weight:400;line-height:1.2}.how h3{font-family:var(--display);color:var(--gold);margin:18px 0 4px;font-size:1.3rem;font-weight:400}.how h4{color:var(--gold);font-family:var(--display);margin:0 0 2px;font-size:1rem;font-weight:400}.how p{margin:4px 0 10px;font-size:1.08rem;line-height:1.6}.how-intro{text-align:center;max-width:560px;margin:0 auto;padding:10px 0}.how-piece{grid-template-columns:240px 1fr;align-items:start;gap:18px;display:grid}@media (width<=640px){.how-piece{grid-template-columns:1fr}}.how-stage{height:270px;color:var(--gold-hi);background:radial-gradient(circle at 50% 40%,#ffc87838,#0000 65%);border-radius:20px;place-items:center;display:grid}@media (width<=640px){.how-stage{height:200px}}.how-chess{color:var(--ink-dim)}.how-chess strong{color:var(--ink);font-size:1.15rem}.how-row{grid-template-columns:150px 1fr;align-items:start;gap:14px;margin-top:8px;display:grid}.how-tip{border-inline-start:3px solid var(--gold);background:#e3b8661a;border-radius:14px;padding:10px 14px;margin-top:6px!important;font-size:1rem!important}.how-tip strong{color:var(--gold-hi)}.how-nav{border-top:1px solid #e3b86626;justify-content:space-between;gap:10px;padding:12px 20px 18px;display:flex}.how-glossary{text-align:center;max-width:520px;margin:0 auto}.how-glossary dl{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}@media (width<=480px){.how-glossary dl{grid-template-columns:1fr}}.how-glossary dl>div{background:#ffe2a30f;border:1px solid #e3b86626;border-radius:12px;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 14px;display:flex}.how-glossary dt{font-family:var(--display);color:var(--gold-hi);font-size:1.05rem}.how-glossary dd{color:var(--ink-dim);font-family:var(--script);margin:0;font-size:1.05rem}.move-diagram{border-radius:10px;width:150px;height:150px;box-shadow:0 0 0 3px #3a2210,0 8px 18px #00000080}.md-light{fill:#efdcb4}.md-dark{fill:#8a5a33}.md-dot{fill:#f2b544;opacity:0;animation:2.4s ease-in-out infinite mdpop}.md-capture{fill:none;stroke:#e0612b;stroke-width:.09px;opacity:0;animation:2.4s ease-in-out infinite mdpop}@keyframes mdpop{0%{opacity:0}15%,75%{opacity:1}to{opacity:0}}.md-piece{color:#1f5fbf}.md-enemy{color:#6b3a14}.md-coord{fill:#3a2210;opacity:.7;font-size:.26px;font-family:var(--body)}.newgame{width:min(520px,100%);max-height:calc(100dvh - 24px);overflow:auto}.mode-cards{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;display:grid}.mode-card,.level,.side-pick{cursor:pointer;border:1px solid var(--hair);color:var(--ink);background:#ffe2a30a;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;transition:all .18s;display:flex}.mode-card:hover,.level:hover,.side-pick:hover{border-color:var(--gold)}.mode-card.on,.level.on,.side-pick.on{border-color:var(--gold);background:#e3b8662e;box-shadow:0 0 18px #ffc45c33}.mode-card strong{font-family:var(--display);font-size:1.1rem;font-weight:400}.mode-card small,.level small{color:var(--ink-dim);font-size:.8rem}.mode-icons{color:var(--gold-hi);gap:4px;display:flex}.cpu-options{margin-top:12px;animation:.25s ease-out slidein}.cpu-options h4{color:var(--gold);font-family:var(--display);margin:10px 0 6px;font-weight:400}.levels{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.level strong{font-size:.95rem}.level-stars{color:var(--gold-hi);letter-spacing:2px;font-size:.8rem}.sides{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.side-pick{flex-direction:row;justify-content:center;gap:8px;font-size:.9rem}.side-pick .seal{width:28px;height:28px}.seal-mix{background:conic-gradient(var(--techelet) 0 50%, var(--zahav) 0 100%);color:#fff;font-family:var(--display)}.credits{max-width:560px;margin:0 auto;padding-bottom:6px}.credits h2{text-align:center}.credits p{font-size:1rem!important}.credits ul{margin:4px 0 8px;padding-inline-start:1.2em}.credits li{margin:4px 0}.credits a{color:var(--gold-hi);text-underline-offset:3px}.how-dots .copy{font-family:var(--display);font-size:1rem;line-height:1}.level .pro-note{color:var(--gold-hi);opacity:.9;font-size:.72rem}
