:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d1a;--card:#171a33;--text:#f1f2ff;--muted:#a3a7c9;--accent:#ffc400;--line:#ffffff24;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overscroll-behavior:none}h1{color:var(--accent);text-shadow:0 0 24px #ffc40080;margin:.2em 0;font-size:2.4rem}h2{margin:.2em 0 .4em}button{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;border-radius:12px;padding:.75em 1.1em;font-weight:600}button.primary{background:var(--accent);color:#1b1400;border-color:#0000}button.icon{padding:.3em .7em;font-size:1.3rem;line-height:1}input,textarea{font:inherit;border:1px solid var(--line);width:100%;color:var(--text);background:#0f1226;border-radius:10px;padding:.6em .8em}textarea{resize:vertical;word-break:break-all;font-family:ui-monospace,monospace;font-size:.75rem}label{gap:.4em;font-weight:600;display:grid}.muted{color:var(--muted);font-size:.9rem}.screen{max-width:34rem;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));flex-direction:column;gap:.9rem;margin:0 auto;display:flex}.screen header{align-items:center;gap:.6rem;display:flex}.home{justify-content:center;min-height:100%}.tagline{margin:0;font-size:1.1rem}.buttons{flex-wrap:wrap;gap:.6rem;display:flex}.buttons>button{flex:1}.buttons.column{flex-direction:column}.row{align-items:stretch;gap:.5rem;margin-top:.5rem;display:flex}.qr-box{justify-content:center;display:flex}.qr{aspect-ratio:1;background:#fff;border-radius:12px;width:min(78vw,22rem);overflow:hidden}.qr svg{width:100%;height:100%;display:block}.viewfinder{cursor:crosshair;position:relative}.camera{object-fit:cover;background:#000;border-radius:12px;width:100%;height:30vh;display:block}.viewfinder.big .camera{aspect-ratio:1;height:auto;max-height:55vh}.focus-ring{border:2px solid var(--accent);pointer-events:none;opacity:0;border-radius:8px;width:64px;height:64px;margin:-32px 0 0 -32px;position:absolute}.focus-ring.pulse{animation:.9s ease-out focus}@keyframes focus{0%{opacity:1;transform:scale(1.5)}60%{opacity:1;transform:scale(1)}to{opacity:0}}.scan{flex-direction:column;gap:.6rem;display:flex}.scan p{margin:0}.camera-controls{gap:.4rem;display:grid}.camera-controls:empty{display:none}.slider{grid-template-columns:7rem 1fr;align-items:center;font-weight:500}.slider input{accent-color:var(--accent);padding:0}.status:empty{display:none}.text-codes summary{color:var(--muted);cursor:pointer}.game{max-width:none;height:100%;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);gap:0;overflow:hidden}.hud{align-items:center;gap:.4rem;min-height:3.2rem;padding:.4rem .5rem .2rem;display:flex}.scores{flex-wrap:wrap;justify-content:center;gap:.3rem;padding:0 .5rem .3rem;display:flex}.chip{white-space:nowrap;background:var(--card);border-radius:999px;align-items:center;gap:.35em;padding:.25em .6em;font-size:.85rem;font-weight:600;display:inline-flex}.chip.self{box-shadow:inset 0 0 0 2px #ffffff8c}.stage{flex-direction:column;flex:1;min-height:0;display:flex}.field{aspect-ratio:1;flex:0 auto;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.arena{touch-action:none;flex:1;width:100%;min-height:0;display:block}.joystick{touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-content:flex-end;align-items:center;margin-top:auto;padding:.4rem 1.6rem .8rem;display:flex}.joystick-left .joystick{justify-content:flex-start}.joystick .base{border:2px solid var(--line);background:radial-gradient(circle,#ffffff0a,#ffffff1a);border-radius:50%;place-items:center;width:min(8.5rem,22vh);height:min(8.5rem,22vh);display:grid;position:relative}.joystick .knob{background:#ffffff40;border:2px solid #ffffff80;border-radius:50%;width:45%;height:45%;transition:transform 80ms}.joystick.held .knob{border-color:var(--accent);background:#ffc4008c;transition:none}@media (orientation:landscape) and (width>=40rem){.stage{flex-direction:row}.field{aspect-ratio:auto;flex:1}.joystick{margin-top:0}.joystick-left .stage{flex-direction:row-reverse}.joystick{padding:1rem 1.6rem}}.status{flex:1;place-items:center;min-width:0;display:grid}.clock{justify-items:center;gap:.25rem;min-width:6.5rem;padding:0 .9rem .3rem;display:grid}.clock-time{font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.7rem;font-weight:800;line-height:1.1}.clock-track{background:#ffffff26;border-radius:2px;width:100%;height:4px;display:block;overflow:hidden}.clock-bar{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s linear;display:block}.clock.urgent .clock-time{color:#ff5470;animation:1s ease-out infinite tick}.clock.urgent .clock-bar{background:#ff5470}@keyframes tick{0%{transform:scale(1.2)}35%,to{transform:scale(1)}}.banner{white-space:nowrap;border:2px dashed var(--accent);background:var(--card);border-radius:14px;align-items:center;gap:.7rem;max-width:100%;padding:.2rem .8rem;animation:2.4s ease-in-out infinite breathe;display:flex}.banner strong{white-space:nowrap;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:1rem}.banner.over{border-style:solid;animation:none}@keyframes breathe{0%,to{opacity:.8}50%{opacity:1}}.flash{color:var(--accent);text-shadow:0 0 30px #ffc40099;pointer-events:none;opacity:0;place-items:center;font-size:5rem;font-weight:900;display:grid;position:absolute;inset:0}.flash.show{animation:1s ease-out forwards go}@keyframes go{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.1)}65%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}button.net{font-variant-numeric:tabular-nums;border-radius:10px;flex:none;align-items:center;gap:.35rem;padding:.25rem .45rem;font-size:.75rem;display:flex}canvas.net-graph{width:48px;height:22px;display:block}canvas.net-graph.large{width:100%;height:9rem}.net[data-quality=good] .net-ping{color:#6be06b}.net[data-quality=fair] .net-ping{color:#ffcf3f}.net[data-quality=poor] .net-ping{color:#ff5470}.graph-label{font-size:.85rem;font-weight:600}.connection-view{flex-direction:column;gap:.6rem;display:flex}.connection-view h3{margin:.3rem 0 0;font-size:.95rem}dl.connection-stats{grid-template-columns:minmax(6.5rem,38%) 1fr;gap:.15rem .7rem;margin:.2rem 0 0;font-size:.82rem;display:grid}dl.connection-stats dt{color:var(--muted)}dl.connection-stats dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}dl.connection-stats dt.name{color:var(--text);font-weight:600}.connection-transport summary{cursor:pointer;color:var(--muted);font-size:.82rem}.connection-view .address{font-family:ui-monospace,monospace}.connection-buttons{flex-wrap:wrap;gap:.5rem;display:flex}button.attention{animation:1.6s ease-out infinite attention}@keyframes attention{0%{box-shadow:0 0 #ffc400b3}70%,to{box-shadow:0 0 0 12px #ffc40000}}button.link{color:var(--muted);background:0 0;border:none;padding:.3em 0;font-size:.9rem;font-weight:500;text-decoration:underline}.sheet{background:var(--card);border-radius:18px 18px 0 0;max-height:45%;padding:.8rem 1rem 1rem;overflow-y:auto}.sheet p{margin:.2rem 0 .6rem}.result{color:var(--accent);font-size:1.3rem;font-weight:700}.dot{border-radius:50%;flex:none;width:.8em;height:.8em;display:inline-block}.roster{gap:.3rem;margin:0 0 .8rem;padding:0;list-style:none;display:grid}.roster li{align-items:center;gap:.5rem;display:flex}.roster .name{flex:1}.roster .ping{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.roster .score{text-align:right;min-width:2ch;font-weight:700}.modal{padding:max(1rem, env(safe-area-inset-top)) .8rem 1rem;z-index:10;background:#05060fd9;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.card{background:var(--card);border-radius:18px;flex-direction:column;gap:.7rem;width:100%;max-width:30rem;padding:1rem;display:flex}.card p{margin:0}.toast{left:50%;top:calc(env(safe-area-inset-top) + 4rem);z-index:20;background:#2a2f57;border-radius:999px;padding:.6em 1em;transition:opacity .5s;position:fixed;transform:translate(-50%)}.toast.gone{opacity:0}.home-header{justify-content:space-between}.header-buttons{gap:.4rem;display:flex}.get-app a{color:var(--accent)}select{font:inherit;border:1px solid var(--line);width:100%;color:var(--text);background:#0f1226;border-radius:10px;padding:.6em .8em}.toggle{align-items:center;gap:.7rem;font-weight:500;display:flex}.toggle input{width:1.3rem;height:1.3rem;accent-color:var(--accent)}button.danger{color:#ff8a9a;border-color:#ff547080}.roster li.away{opacity:.5}.lost{justify-content:center;min-height:100%}.choice{text-align:left;gap:.2rem;display:grid}.requests,.hosts{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.requests li{gap:.4rem;display:grid}.request{font-weight:600}.hosts .host{width:100%}textarea.report{min-height:14rem;font-size:.7rem}a.button{border:1px solid var(--line);background:var(--card);color:var(--text);text-align:center;border-radius:12px;flex:1;justify-content:center;align-items:center;padding:.75em 1.1em;font-weight:600;text-decoration:none;display:inline-flex}a.button.primary{background:var(--accent);color:#1b1400;border-color:#0000}.settings h3{border-top:1px solid var(--line);color:var(--accent);margin:.8rem 0 0;padding-top:.8rem;font-size:1rem}.settings details>summary{cursor:pointer;font-weight:600}.settings details[open]>summary{margin-bottom:.6rem}.bindings{border-collapse:collapse;width:100%}.bindings th{text-align:left;color:var(--muted);font-size:.8rem;font-weight:500}.bindings td,.bindings th{padding:.2rem}.bindings button{width:100%;padding:.45em .4em;font-size:.85rem}.bindings button.listening{border-color:var(--accent);color:var(--accent)}.game [hidden]{display:none}@media (prefers-reduced-motion:reduce){.clock.urgent .clock-time,.banner,.flash.show,button.attention{animation:none}.clock-bar,.joystick .knob{transition:none}}.update progress{width:100%;height:.6rem;accent-color:var(--accent)}.warning{color:#ffc9a3;background:#ff8a3c1f;border:1px solid #ff8a3c80;border-radius:10px;padding:.6rem .8rem}.changelog details,.license-list details{border-bottom:1px solid var(--line);padding:.5rem 0}.changelog summary,.license-list summary{cursor:pointer;font-weight:600}.changelog h4{color:var(--accent);margin:.6rem 0 .2rem;font-size:.9rem}.changelog ul{gap:.3rem;margin:0;padding-left:1.2rem;font-size:.9rem;display:grid}.license-list{margin:0;padding:0;font-size:.9rem;list-style:none}.license-list>li:not(:has(details)){border-bottom:1px solid var(--line);padding:.35rem 0}.license-text{white-space:pre-wrap;background:#0f1226;border-radius:8px;max-height:16rem;padding:.6rem;font-size:.7rem;overflow:auto}.about a{color:var(--accent)}table.stats{border-collapse:collapse;width:100%;margin:0 0 .8rem;font-size:.9rem;display:table}.stats th{color:var(--muted);font-size:.75rem;font-weight:500}.stats td,.stats th{padding:.2rem .3rem}.stats td:first-child{width:100%}.stats .num{text-align:right;font-variant-numeric:tabular-nums}.stats .score{font-weight:700}.stats tr.away{opacity:.5}.who{align-items:center;gap:.5rem;display:inline-flex}.badge{color:#6be06b;white-space:nowrap;background:#6be06b26;border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.75rem;font-weight:600}svg.dot{width:1em;height:1em}button.mute{flex:none;font-size:1.1rem}button.ready-on{color:#6be06b;border-color:#6be06b}.document h3{color:var(--accent);margin:1.2rem 0 .3rem;font-size:1.05rem}.document p,.document ul{margin:.3rem 0;line-height:1.45}.document ul{gap:.35rem;padding-left:1.2rem;display:grid}.document a{color:var(--accent)}
