:root{--paper: #e9eef0;--paper-2: #dde5e9;--ink: #14304a;--ink-soft: #4a6276;--rule: #b9c7cf;--accent: #b3263e;--card: min(27vw, 7.5rem);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--paper: #0f2233;--paper-2: #16304a;--ink: #dce6ea;--ink-soft: #94aab8;--rule: #2b465d;--accent: #f0798d}}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font-family:system-ui,sans-serif;display:grid;place-items:start center}.game{width:min(100%,30rem);padding:1.25rem 1rem 2rem;position:relative}header{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.25rem 1rem;margin-bottom:1rem}.back{grid-column:1 / -1;justify-self:start;color:var(--ink-soft);font-size:.875rem;text-decoration-color:var(--accent);text-underline-offset:.18em}h1{margin:0;font-size:2.25rem;font-weight:800;letter-spacing:-.04em;line-height:1}.meta{margin:0;color:var(--ink-soft);font-size:.875rem;font-variant-numeric:tabular-nums;text-align:right}.lead{line-height:1.5;margin:0 0 1.25rem}button,input{font:inherit;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:8px;padding:.6rem 1rem}button{cursor:pointer}button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#lobby .primary,#invite .primary{width:100%;font-size:1.1rem;padding:.8rem 1rem}.join{margin-top:1.75rem}.join label{display:block;color:var(--ink-soft);font-size:.875rem;margin-bottom:.4rem}.join-row{display:flex;gap:.5rem}.join input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.2em;font-family:ui-monospace,monospace}.error{color:var(--accent);min-height:1.5em}.code{font-family:ui-monospace,monospace;font-size:2.5rem;font-weight:700;letter-spacing:.25em;text-align:center;margin:0 0 1.25rem}.link{color:var(--ink-soft);font-size:.8rem;word-break:break-all;text-align:center}.waiting{text-align:center;color:var(--ink-soft)}.player{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem}.who{font-weight:700}.count{color:var(--ink-soft);font-variant-numeric:tabular-nums}.chip{font-size:.8rem;color:var(--ink-soft)}.chip.ready{color:var(--ink)}.chip.off{color:var(--accent)}.pile{position:relative;width:calc(var(--card) * .45);height:calc(var(--card) * .63)}.pile svg{position:absolute;inset:0;width:100%;height:100%}.pile.empty{border:1.5px dashed var(--rule);border-radius:4px}.battle{display:grid;grid-template-rows:auto auto auto;gap:.5rem;margin:1rem 0;padding:.75rem 0;border-block:1px solid var(--rule)}.line{display:flex;align-items:flex-end;justify-content:center;min-height:calc(var(--card) * 1.4);gap:.25rem}.line .up{width:var(--card);height:calc(var(--card) * 1.4);flex:none}.line .up.small{width:calc(var(--card) * .5);height:calc(var(--card) * .7)}.line .up.lost{opacity:.55}.line .downs{display:flex;flex:none}.line .downs span{width:calc(var(--card) * .3);height:calc(var(--card) * .42);margin-right:calc(var(--card) * -.18)}.line .downs span:last-child{margin-right:.15rem}.line svg{display:block;width:100%;height:100%}.line .placeholder{width:var(--card);height:calc(var(--card) * 1.4);border:1.5px dashed var(--rule);border-radius:6px}.line>*{animation:deal .26s ease-out both}@keyframes deal{0%{opacity:0;transform:translateY(-8px) scale(.96)}}.result{margin:0;text-align:center;font-weight:700;min-height:1.5em}.result.war{color:var(--accent)}.controls{display:flex;align-items:center;gap:1rem;margin-top:1rem}.flip{flex:1;font-size:1.25rem;padding:.9rem 1rem}.auto{display:flex;align-items:center;gap:.4rem;color:var(--ink-soft)}.auto input{width:1.25rem;height:1.25rem;accent-color:var(--accent)}.banner{position:sticky;bottom:1rem;margin:1rem 0 0;padding:.6rem .9rem;border-radius:8px;background:var(--paper-2);border:1px solid var(--rule);text-align:center}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--paper) 72%,transparent);z-index:10}.overlay[hidden]{display:none}.over-box{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:1.25rem 1.5rem;text-align:center;width:min(20rem,90%);display:grid;gap:.6rem}.over-box .title{font-size:1.9rem;font-weight:800;letter-spacing:-.03em;margin:0}.over-box p{margin:0 0 .5rem;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.line>*{animation:none}}
