:root{--text:#3d3a44;--text-h:#08060d;--muted:#6b6775;--bg:#fff;--surface:#f6f5f8;--border:#e2e0e7;--accent:#4a6fe3;--accent-text:#fff;--danger:#c2413b;--last-move:#ffd54f73;--selected:#4a6fe366;--target:#14141e40;--check:radial-gradient(circle, #d64541d9 25%, transparent 80%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#c4c7ce;--text-h:#f3f4f6;--muted:#8d909a;--bg:#16171d;--surface:#1f2028;--border:#2e2f39;--accent:#7b96f0;--accent-text:#0d0e14;--danger:#ef7a73}}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2{color:var(--text-h);line-height:1.2}a{color:var(--accent)}.muted,.fine-print{color:var(--muted);font-size:.9rem}.top-nav{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.top-nav-inner{justify-content:space-between;align-items:center;max-width:72rem;margin:0 auto;padding:.75rem 1rem;display:flex}.wordmark{color:var(--text-h);font-size:1.15rem;font-weight:700;text-decoration:none}.tabs{gap:.25rem;display:flex}.tabs a{color:var(--text);border-radius:999px;padding:.35rem .85rem;text-decoration:none}.tabs a.active{background:var(--surface);color:var(--text-h);font-weight:600}.button,.promotion button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;border-radius:.5rem;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;display:inline-block}.button.secondary,.promotion button.secondary{color:var(--text-h);border-color:var(--border);background:0 0}.button:disabled{opacity:.5;cursor:default}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}label{flex-direction:column;gap:.25rem;margin:0 0 .85rem;font-size:.95rem;display:flex}label.inline{flex-direction:row;align-items:center}input:not([type]),input[type=number],select{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:.4rem;padding:.5rem .6rem}input[aria-invalid=true]{border-color:var(--danger)}.field-error,[role=alert]{color:var(--danger);font-size:.9rem}.home{max-width:72rem;margin:0 auto;padding:2.5rem 1rem 4rem}.hero{margin-bottom:2.5rem}.hero p{max-width:44rem}.hero-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin-bottom:1rem;display:flex}.hero h1{flex:24rem;max-width:44rem;margin:0;font-size:clamp(2rem,5vw,3rem)}.lede{font-size:1.15rem}.trainers{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.25rem;display:grid}.trainer-card{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;flex-direction:column;display:flex;overflow:hidden}.trainer-board{margin:0}.trainer-board,.board-wrap{isolation:isolate}[data-square]>div{position:relative}.credits{color:var(--muted);text-align:center;margin-top:2.5rem;font-size:.9rem}.trainer-body{padding:1rem 1.1rem 1.25rem}.trainer-body header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.trainer-body h2{margin:0}.trainer-body p{margin:.5rem 0}.role{color:var(--accent);font-weight:600}.badge{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.75rem}.feature{grid-template-columns:minmax(0,22rem) minmax(0,1fr);align-items:center;gap:2.5rem;margin-top:4rem;display:grid}.feature:nth-of-type(2n) .feature-graphic{order:2}@media (width<=44rem){.feature{grid-template-columns:minmax(0,1fr);gap:1.25rem;margin-top:3rem}.feature-graphic{max-width:22rem}.feature:nth-of-type(2n) .feature-graphic{order:0}.feature-body{display:contents}.feature-body h2{order:-1;margin:0}}.feature-body h2{margin:0 0 .75rem;font-size:1.75rem}.feature-body p{max-width:34rem;font-size:1.1rem}.feature-graphic{border:1px solid var(--border);background:var(--surface);isolation:isolate;border-radius:.75rem;margin:0;padding:.85rem}.feature-graphic figcaption{color:var(--muted);text-align:center;margin-top:.6rem;font-size:.9rem}.hint-bubble{border-left:3px solid var(--danger);background:var(--bg);border-radius:.4rem;margin-top:.65rem;padding:.6rem .75rem;font-size:.9rem}.hint-bubble strong{color:var(--danger)}.loop{counter-reset:loop;margin:0;padding:.25rem 0;list-style:none;position:relative}.loop:before{content:"";border-left:2px solid var(--border);position:absolute;top:1rem;bottom:1rem;left:.85rem}.loop:after{content:"↺ and again";color:var(--accent);margin:.25rem 0 0 2.5rem;font-size:.85rem;font-weight:600;display:block}.loop li{counter-increment:loop;flex-direction:column;padding:.5rem 0 .5rem 2.5rem;display:flex;position:relative}.loop li:before{content:counter(loop);background:var(--accent);width:1.75rem;height:1.75rem;color:var(--accent-text);border-radius:50%;place-items:center;font-size:.85rem;font-weight:700;display:grid;position:absolute;top:.5rem;left:0}.loop strong{color:var(--text-h)}.loop span{color:var(--muted);font-size:.9rem}.cta{background:var(--surface);text-align:center;border-radius:.75rem;margin-top:3.5rem;padding:2.5rem 1rem}.cta h2{margin-top:0}.cta-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.modal{border:1px solid var(--border);background:var(--bg);width:min(28rem,100vw - 2rem);color:var(--text);border-radius:.75rem;padding:1.5rem}.modal::backdrop{background:#0a0a0f8c}.modal h2{margin-top:0}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.play,.play-empty{max-width:72rem;margin:0 auto;padding:1.5rem 1rem 3rem}.play-empty{text-align:center;max-width:32rem;padding-top:4rem}.play-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.play-layout{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;gap:1.5rem;display:grid}@media (width<=52rem){.play-layout{grid-template-columns:minmax(0,1fr)}}.board-wrap{width:100%;max-width:min(40rem,100vh - 8rem);position:relative}.promotion{background:#0a0a0f8c;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;inset:0}.promotion button{min-width:8rem}.panel{flex-direction:column;gap:1rem;display:flex}.status{color:var(--text-h);margin:0;font-size:1.1rem;font-weight:600}.row{flex-wrap:wrap;gap:.5rem;display:flex}fieldset{border:1px solid var(--border);border-radius:.6rem;margin:0;padding:.75rem 1rem .25rem}legend{padding:0 .35rem;font-weight:600}.debug summary{cursor:pointer;font-weight:600}dt{font-size:.85rem;font-weight:600}dd{margin:0 0 .6rem}dd ol{margin:0;padding-left:1.25rem}
