:root{--bg: #1b1b1e;--surface: #242428;--surface-raised: #2c2c31;--border: #3a3a40;--text: #e6e2dd;--text-dim: #9b968f;--accent: #c98a8a;--accent-strong: #dba3a3;--data: #d4b45f;--danger: #d4756b;--ok: #8fb98b;--font-mono: ui-monospace, "Cascadia Code", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:15px;line-height:1.5}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.screen{max-width:880px;margin:0 auto;padding:2rem 1.25rem 4rem;display:flex;flex-direction:column;gap:1.25rem}h1{font-size:1.7rem;margin:0;letter-spacing:.02em}h2{font-size:1rem;margin:0 0 .6rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.panel{background:var(--surface);border:1px solid var(--border);padding:1rem 1.25rem}button{font-family:inherit;font-size:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.primary-button{background:var(--accent);color:#231818;border:1px solid var(--accent);padding:.7rem 1.6rem;font-weight:700;letter-spacing:.03em}.primary-button:not(:disabled):hover{background:var(--accent-strong)}.ghost-button{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:.55rem 1rem}.ghost-button:not(:disabled):hover{color:var(--text);border-color:var(--text-dim)}.button-row{display:flex;gap:.75rem;flex-wrap:wrap}.error-box{border:1px solid var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent);padding:.6rem .9rem;margin:0}.badge{font-size:.7rem;padding:.1rem .45rem;border:1px solid var(--data);color:var(--data);text-transform:uppercase;letter-spacing:.06em;vertical-align:middle}.home-header .tagline{color:var(--text-dim);max-width:60ch}.dev-status{color:var(--data);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.ruleset-name{font-weight:700}.ruleset-facts{margin:.5rem 0 0;padding-left:1.2rem;color:var(--text-dim)}.home-footer{color:var(--text-dim);font-size:.78rem;border-top:1px solid var(--border);padding-top:.9rem}.preview-instructions{color:var(--text-dim);margin:0}.preview-roster{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;margin:0;padding:0}.preview-slot{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.6rem .4rem;border:1px solid var(--border);background:var(--surface-raised);width:100%;color:var(--text);position:relative}.preview-slot-button.picked{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pick-order{position:absolute;top:.3rem;right:.3rem;font-size:.7rem;color:var(--accent-strong);border:1px solid var(--accent);padding:0 .3rem}.pick-count{color:var(--text-dim);margin:.75rem 0 0}.battle-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.75rem}.battle-phase{color:var(--data)}.battlefield{display:flex;flex-direction:column;gap:1.5rem;background:var(--surface);border:1px solid var(--border);padding:1.5rem}.combatant{display:flex;align-items:center;gap:1.25rem}.combatant-opponent{justify-content:flex-end}.combatant-player{justify-content:flex-start}.combatant-info{min-width:220px}.combatant-name{margin:0 0 .35rem;font-weight:700;display:flex;gap:.5rem;align-items:center}.sprite{width:96px;height:96px;image-rendering:pixelated}.sprite-fainted{filter:grayscale(1) brightness(.5)}.sprite-fallback{display:flex;align-items:center;justify-content:center;background:var(--surface-raised);border:1px dashed var(--border);color:var(--text-dim);font-weight:700;border-radius:50%}.hpbar{display:flex;align-items:center;gap:.6rem}.hpbar-track{flex:1;height:10px;background:var(--surface-raised);border:1px solid var(--border)}.hpbar-fill{height:100%}.hpbar-high{background:var(--ok)}.hpbar-mid{background:var(--data)}.hpbar-low{background:var(--danger)}.hpbar-text{color:var(--data);font-size:.82rem;min-width:5.5ch;text-align:right}.team-dots{margin:.4rem 0 0;display:flex;gap:.3rem}.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}.dot-fainted{background:transparent;border:1px solid var(--border)}.status-tag{font-size:.7rem;border:1px solid var(--data);color:var(--data);padding:0 .35rem;text-transform:uppercase}.controls{display:flex;flex-direction:column;gap:.75rem}.move-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem}.move-button{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;background:var(--surface-raised);border:1px solid var(--accent);color:var(--text);padding:.7rem .9rem}.move-button:not(:disabled):hover{border-color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 12%,var(--surface-raised))}.move-name{font-weight:700}.move-pp{color:var(--data);font-size:.78rem}.switch-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.switch-label{color:var(--text-dim)}.switch-button{background:transparent;border:1px solid var(--border);color:var(--text);padding:.45rem .8rem}.switch-button:not(:disabled):hover{border-color:var(--accent)}.trapped-note{color:var(--text-dim);font-size:.82rem;margin:0}.team-strip{display:flex;gap:.5rem;flex-wrap:wrap}.team-chip{display:flex;gap:.5rem;align-items:center;border:1px solid var(--border);background:var(--surface);padding:.3rem .6rem;font-size:.82rem}.team-chip.active{border-color:var(--accent)}.team-chip.fainted{opacity:.5}.team-chip-hp{color:var(--data)}.battle-log{background:var(--surface);border:1px solid var(--border);padding:.9rem 1.1rem;max-height:260px;overflow-y:auto;font-size:.85rem}.log-line{margin:0 0 .15rem;color:var(--text-dim)}.log-line.log-turn-started{color:var(--data);margin-top:.5rem}.log-line.log-move-used,.log-line.log-switch{color:var(--text)}.log-line.log-faint,.log-line.log-battle-ended{color:var(--accent-strong);font-weight:700}.result-win{color:var(--ok)}.result-loss{color:var(--danger)}.result-facts{display:flex;gap:2rem;margin:0}.result-facts dt{color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.result-facts dd{margin:.2rem 0 0;font-size:1.3rem;color:var(--data)}@media(max-width:640px){.combatant{flex-direction:column;align-items:center;text-align:center}.combatant-opponent,.combatant-player{justify-content:center}.result-facts{flex-direction:column;gap:.8rem}}
