:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101018;--panel:#1a1a26;--line:#2c2c3d;--fg:#e8e8f0;--muted:#6a6a80;--accent:#6ee7b7;--warn:#fbbf24;--c0:#f87171;--c1:#facc15;--c2:#60a5fa}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-user-select:none;user-select:none;touch-action:manipulation;font-family:system-ui,sans-serif;overflow:hidden}#app{height:100dvh;padding:.5rem env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;align-items:center;gap:.25rem;display:flex}.screen{flex-direction:column;flex:auto;width:100%;max-width:34rem;min-height:0;display:flex}.screen[hidden]{display:none}.screen--options{gap:.75rem;padding:.5rem .75rem 1.5rem;overflow-y:auto}.screen--game{gap:.5rem}.options-title{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:1.6rem}.options-subtitle{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem;font-size:.9rem}.options-form{background:var(--panel);border:1px solid var(--line);border-radius:.75rem;flex-direction:column;gap:.6rem;padding:.9rem;display:flex}.field{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.field label{font-size:.95rem}.field select,.field input{min-width:7rem;font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:.4rem;flex:0 12rem;padding:.45rem .5rem;font-size:1rem}button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--fg);cursor:pointer;border-radius:.5rem;padding:.5rem .9rem}button.primary{border-color:var(--accent);color:var(--bg);background:var(--accent);padding:.7rem 1rem;font-size:1.05rem;font-weight:600}button.secondary{color:var(--fg)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.note{color:var(--muted);margin:0;font-size:.85rem;line-height:1.4}.hint{color:var(--muted);margin:0;font-size:.78rem;line-height:1.4}.options-help{flex-direction:column;gap:.3rem;display:flex}.hud{justify-content:space-between;align-items:flex-start;gap:.5rem;width:100%;padding:0 .25rem;display:flex}.hud-stats,.hud-side{gap:.75rem;display:flex}.hud-side{align-items:flex-start}.stat,.hud-next,.hud-tempo{flex-direction:column;gap:.1rem;display:flex}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.stat-value{font-variant-numeric:tabular-nums;font-size:1.05rem;line-height:1.1}canvas.preview{display:block}.hud-tempo{min-width:5.5rem;position:relative}.tempo-meter{background:var(--line);border-radius:2px;height:3px;overflow:hidden}.tempo-fill{background:var(--accent);width:0;height:100%;transition:width .12s linear}.tempo-marker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);opacity:0;font-size:.7rem;position:absolute;top:100%;left:0}.hud.is-speedup .tempo-marker{animation:1.4s ease-out speedup}.hud.is-speedup .tempo-fill{animation:1.4s ease-out speedup-fill}@keyframes speedup{0%{opacity:0;transform:translateY(-.3rem)}15%{opacity:1;transform:translateY(0)}75%{opacity:1}to{opacity:0}}@keyframes speedup-fill{0%,to{filter:none}50%{filter:brightness(2.2)}}.hud-menu{color:var(--muted);padding:.35rem .6rem;font-size:.8rem}.stage{flex:1 1 0;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}canvas.board{touch-action:none;display:block}.overlay{z-index:1;background:#101018d6;place-content:center;padding:1rem;display:grid;position:absolute;inset:0}.overlay[hidden]{display:none}.panel{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:.9rem;flex-direction:column;align-items:stretch;gap:.5rem;min-width:min(18rem,80vw);padding:1.1rem 1.25rem;display:flex}.panel-title{letter-spacing:.04em;margin:0 0 .25rem;font-size:1.3rem}.panel--cutscene .panel-title{color:var(--accent)}.summary-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.15rem 0;font-size:.95rem;display:flex}.summary-label{color:var(--muted)}.summary-value{font-variant-numeric:tabular-nums}.panel button{margin-top:.4rem}.cutscene-art{justify-content:center;gap:.35rem;height:3rem;margin-bottom:.25rem;display:flex;overflow:hidden}.cutscene-pill{width:.7rem;height:1.4rem;animation:1.6s cubic-bezier(.3,0,.4,1) infinite cutscene-fall;animation-delay:calc(var(--i) * .13s);border-radius:.35rem}.cutscene-pill.c0{background:linear-gradient(180deg, var(--c0) 50%, var(--c1) 50%)}.cutscene-pill.c1{background:linear-gradient(180deg, var(--c1) 50%, var(--c2) 50%)}.cutscene-pill.c2{background:linear-gradient(180deg, var(--c2) 50%, var(--c0) 50%)}@keyframes cutscene-fall{0%{opacity:0;transform:translateY(-3rem)rotate(0)}20%{opacity:1}to{opacity:0;transform:translateY(3rem)rotate(180deg)}}@media (prefers-reduced-motion:reduce){.cutscene-pill,.hud.is-speedup .tempo-marker,.hud.is-speedup .tempo-fill{animation:none}.hud.is-speedup .tempo-marker{opacity:1}}.version{color:var(--muted);opacity:.5;font-variant-numeric:tabular-nums;margin:0;font-size:.7rem}.screen--connect{gap:.75rem;padding:.5rem .75rem 1.5rem;overflow-y:auto}.connect-roles{gap:.5rem;display:flex}.connect-roles button{flex:1 1 0}.connect-box{flex-direction:column;gap:.35rem;display:flex}.connect-box[hidden]{display:none}.connect-box label{color:var(--muted);font-size:.8rem}.connect-box textarea{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--fg);overflow-wrap:anywhere;resize:vertical;border-radius:.4rem;padding:.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.connect-status{color:var(--accent);min-height:1.2em;margin:0;font-size:.85rem}.screen--versus{gap:.5rem}.versus-boards{flex:auto;align-items:stretch;gap:.25rem;min-height:0;padding:0 .3rem;display:flex}.versus-side{flex-direction:column;gap:.25rem;min-width:0;display:flex}.versus-side--local{flex:2 1 0}.versus-side--remote{flex:1 1 0}@media (orientation:landscape){.screen--versus{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:auto minmax(0,1fr) auto;max-width:none;padding:.25rem .75rem;display:grid}.versus-boards{grid-area:1/1/2/4}.versus-round{text-align:left;grid-area:2/1;align-self:center}.versus-banner{grid-area:2/2;align-self:center}.versus-actions{grid-area:2/3;align-self:center}.versus-side{grid-template-rows:auto auto auto 1fr;gap:0 .5rem;display:grid}.versus-side--local{flex:1.5 1 0;grid-template-columns:6.5rem minmax(0,1fr)}.versus-side--remote{grid-template-columns:minmax(0,1fr) 6.5rem}.versus-side--local .stage--versus{grid-area:1/2/-1/3;justify-content:flex-end}.versus-side--remote .stage--versus{grid-area:1/1/-1/2;justify-content:flex-start}.versus-side--local>:not(.stage--versus){text-align:left;grid-column:1;justify-content:flex-start}.versus-side--remote>:not(.stage--versus){text-align:right;grid-column:2;justify-content:flex-end}.versus-side--remote .versus-stats .stat,.versus-stats .stat{width:100%;min-width:0}.versus-side--remote .stat-label,.stat-label{font-size:.55rem}.versus-side--remote .versus-stats .stat-value,.versus-stats .stat-value{font-size:.85rem}}.versus-name{text-align:center;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8rem;overflow:hidden}.stage--versus{align-items:flex-start}.versus-stats{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.versus-stats .stat{min-width:3rem;padding:.15rem .35rem}.versus-stats .stat-value{font-size:.9rem}.versus-side--remote .versus-stats .stat{min-width:2.4rem;padding:.1rem .15rem}.versus-side--remote .stat-label{letter-spacing:.04em;font-size:.52rem}.versus-side--remote .versus-stats .stat-value{font-size:.78rem}.versus-round{text-align:center;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.7rem}.crowns{justify-content:center;gap:.25rem;display:flex}.crown{border:1px solid var(--line);width:1.1rem;height:1.1rem;color:var(--accent);border-radius:.2rem;justify-content:center;align-items:center;font-size:.8rem;line-height:1;display:flex}.crown.is-won{border-color:var(--accent)}.versus-tempo{padding:0 .25rem .9rem;position:relative}.versus-tempo .tempo-marker{left:50%;transform:translate(-50%)}.versus-tempo.is-speedup .tempo-marker{animation:1.4s ease-out speedup}.versus-tempo.is-speedup .tempo-fill{animation:1.4s ease-out speedup-fill}.versus-banner{text-align:center;color:var(--accent);margin:0;font-size:.95rem}.screen--versus.is-offline .versus-banner{color:var(--warn)}.versus-banner[hidden]{display:none}.versus-actions{justify-content:center;gap:.5rem;display:flex}.versus-actions button[hidden]{display:none}.connect-modes{gap:.5rem;display:flex}.connect-modes button{flex:1 1 0}button.mode--on{border-color:var(--accent);color:var(--accent)}.room-panel[hidden],.manual-panel[hidden],.room-code-box[hidden],.room-join-box[hidden]{display:none}.room-panel{flex-direction:column;gap:.6rem;display:flex}.room-code-box,.room-join-box{flex-direction:column;gap:.4rem;display:flex}.room-code{letter-spacing:.12em;text-align:center;color:var(--accent);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.6rem}.room-qr{width:min(60vw,220px);height:auto;image-rendering:pixelated;background:#fff;border-radius:.4rem;align-self:center;padding:.25rem}.room-qr[hidden]{display:none}.room-scan{object-fit:cover;background:#000;border-radius:.4rem;width:100%;max-height:40vh}.room-scan[hidden]{display:none}.room-status{min-height:1.2em;color:var(--accent);margin:0;font-size:.85rem}.contacts{flex-direction:column;gap:.4rem;display:flex}.contacts-title{color:var(--muted);margin:0;font-size:.95rem}.contact-list{flex-direction:column;gap:.35rem;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.contact{border:1px solid var(--line);background:var(--panel);border-radius:.4rem;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.4rem .5rem;display:flex}.contact-name{overflow-wrap:anywhere;flex:6rem}.contact-meta,.contact-changed{color:var(--muted);font-size:.75rem}.contact-changed[hidden]{display:none}.contact input{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:.3rem;flex:100%;padding:.35rem}.contact input[hidden]{display:none}button.danger{border-color:var(--line);color:var(--muted)}.contact-transfer{gap:.5rem;display:flex}.contact-transfer button[hidden]{display:none}#contacts-transfer{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--fg);overflow-wrap:anywhere;border-radius:.4rem;padding:.4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}#contacts-transfer[hidden]{display:none}.contact button{padding:.35rem .6rem;font-size:.85rem}.contact button.primary{padding:.35rem .8rem;font-size:.9rem}
