:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1117;--panel:#121821db;--border:#ffffff1f;--text:#e6edf3;--muted:#8b98a5;--ok:#3fb950;--bad:#f85149;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}.app{height:100%;position:relative}.viewport{touch-action:none;outline:none;width:100%;height:100%;display:block}.hud{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.75rem;min-width:17rem;padding:1rem 1.15rem;font-size:.8125rem;line-height:1.5;position:absolute;top:1rem;left:1rem}.hud h1{letter-spacing:.02em;margin:0;font-size:1.05rem}.subtitle{color:var(--muted);margin:.15rem 0 .85rem;font-size:.75rem}.row{justify-content:space-between;gap:1rem;padding:.15rem 0;display:flex}.label{color:var(--muted)}.value{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace}.value.ok{color:var(--ok)}.value.bad{color:var(--bad)}.error{color:var(--bad);overflow-wrap:anywhere;margin:.6rem 0 0;font-size:.75rem}.verdict{border-top:1px solid var(--border);color:var(--muted);margin:.85rem 0 0;padding-top:.7rem;font-size:.75rem}.verdict.ok{color:var(--ok)}.hint{color:var(--muted);margin:.5rem 0 0;font-size:.6875rem}.overlay{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.75rem;width:20rem;max-height:calc(100% - 2rem);padding:.85rem .95rem;font-size:.75rem;position:absolute;top:1rem;right:1rem;overflow-y:auto}.overlay-head{justify-content:space-between;align-items:baseline;margin-bottom:.6rem;display:flex}.overlay-head h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.8125rem}.overlay-close,.overlay-toggle{border:1px solid var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:.4rem;padding:.15rem .5rem;font-size:.6875rem}.overlay-toggle{background:var(--panel);position:absolute;top:1rem;right:1rem}.devices{gap:.35rem;margin-bottom:.7rem;display:grid}.device{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.device-name{font-variant-numeric:tabular-nums}.device select{border:1px solid var(--border);color:var(--text);font:inherit;background:#ffffff0a;border-radius:.35rem;padding:.1rem .25rem;font-size:.6875rem}.device-pad{color:var(--ok);font-size:.6875rem}.device-pad.muted{color:var(--muted)}.seats{gap:.5rem;display:grid}.seat{border:1px solid var(--border);border-radius:.5rem;padding:.5rem .55rem}.seat.empty{opacity:.45}.seat-head{align-items:center;gap:.35rem;margin-bottom:.35rem;display:flex}.seat-id{font-family:ui-monospace,Consolas,monospace;font-weight:600}.seat-id.red{color:#ff7b72}.seat-id.blue{color:#79c0ff}.seat-note{color:var(--muted)}.chip{letter-spacing:.03em;border:1px solid var(--border);border-radius:999px;padding:.05rem .4rem;font-size:.625rem}.chip.local{color:var(--ok);border-color:#3fb95066}.chip.vote{color:#d29922;background:#d299221f;border-color:#d2992280}.hand{margin-bottom:.3rem}.hand-head{color:var(--muted);align-items:center;gap:.4rem;font-size:.6875rem;display:flex}.hand-name{width:2.8rem;color:var(--text)}.axis{align-items:center;gap:.35rem;font-size:.6875rem;display:flex}.axis-label{width:2.8rem;color:var(--muted)}.axis-track{background:#ffffff12;border-radius:999px;flex:1;height:.4rem;position:relative;overflow:hidden}.axis-track:after{content:"";background:#fff3;width:1px;position:absolute;top:0;bottom:0;left:50%}.axis-fill{background:#79c0ff;position:absolute;top:0;bottom:0}.axis-value{text-align:right;font-variant-numeric:tabular-nums;width:2.6rem;font-family:ui-monospace,Consolas,monospace}.seat-foot{color:var(--muted);align-items:center;gap:.4rem;margin-top:.35rem;font-size:.6875rem;display:flex}.cooldown .ok{color:var(--ok)}.cooldown .bad{color:#d29922}.cooldown-track{background:#ffffff12;border-radius:999px;flex:1;height:.25rem;overflow:hidden}.cooldown-fill{background:#d29922;height:100%;display:block}.seq{font-variant-numeric:tabular-nums;font-family:ui-monospace,Consolas,monospace}.chip.stale{color:var(--muted)}.matchhud{pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.scoreline{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;border-radius:.75rem;align-items:center;gap:1.25rem;padding:.4rem 1.25rem;display:flex}.score-side{text-align:center;min-width:1.4ch;font-size:2.25rem;font-weight:700;line-height:1}.clock{text-align:center;min-width:5ch;font-size:1.5rem;font-weight:600;line-height:1}.clock.stopped{color:var(--muted)}.plates{gap:.5rem;display:flex}.plate{border:1px solid var(--border);background:var(--panel);border-left-width:3px;border-radius:.5rem;align-items:center;gap:.45rem;padding:.25rem .6rem;font-size:.75rem;display:flex}.plate-swatch,.card-swatch{border-radius:999px;flex:none;justify-content:center;align-items:center;width:1rem;height:1rem;display:inline-flex}.plate-swatch-inner,.card-swatch-inner{border-radius:999px;width:.45rem;height:.45rem}.card-swatch{width:1.5rem;height:1.5rem}.card-swatch-inner{width:.65rem;height:.65rem}.plate-you{color:var(--muted)}.plate-rods{color:var(--muted);font-variant:small-caps}.plate-hand{font-variant:normal;text-align:center;border-radius:.2rem;min-width:1.1em;padding:0 .2em;font-size:.85em;display:inline-block}.plate-hand.left{color:var(--text);background:#2a2d33}.plate-hand.right{color:#14171c;background:#e4e2da}.banner{letter-spacing:.08em;background:#0000008c;border-radius:.5rem;padding:.35rem 1.5rem;font-size:2rem;font-weight:800}.banner-goal{color:#ffd33d}.banner-paused,.banner-final{color:var(--muted);font-size:1.4rem}.toasts{pointer-events:none;flex-direction:column;align-items:center;gap:.4rem;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:.4rem 1rem;font-size:.8125rem}.toast-noSpinning{color:#d29922;border-color:#d29922}.rules-toggle{position:absolute;bottom:1rem;left:1rem}.rules-panel{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.75rem;width:16rem;padding:.85rem 1rem;font-size:.8125rem;position:absolute;bottom:1rem;left:1rem}.rules-panel h2{margin:0;font-size:.9rem}.rule-row{justify-content:space-between;align-items:center;gap:.75rem;padding:.25rem 0;display:flex}.rule-label{color:var(--muted)}.results{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05080cb8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow-y:auto}.results-panel{border:1px solid var(--border);background:var(--panel);text-align:center;border-radius:1rem;width:min(52rem,100% - 2rem);margin:1rem;padding:1.5rem}.series{justify-content:center;align-items:baseline;gap:1.5rem;display:flex}.series-side{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;flex:1;font-size:1rem}.series-score{font-variant-numeric:tabular-nums;font-size:3.5rem;font-weight:800;line-height:1}.series-draws,.final{color:var(--muted);margin:.4rem 0 0;font-size:.875rem}.cards{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.75rem;margin:1.25rem 0;display:grid}.card{border:1px solid var(--border);text-align:left;background:#ffffff08;border-top-width:4px;border-radius:.6rem;flex-direction:column;display:flex;overflow:hidden}.card-head{align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex}.card-name{flex:1;font-weight:600}.card-end{color:var(--muted);font-variant:small-caps;font-size:.7rem}.stats{grid-template-columns:repeat(4,1fr);padding:0 .75rem .6rem;display:grid}.stat{flex-direction:column;align-items:center;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}.card-actions{gap:.4rem;padding:0 .75rem .6rem;display:flex}.card-actions button{flex:1;font-size:.75rem}.ready{letter-spacing:.12em;text-align:center;text-transform:uppercase;padding:.5rem;font-size:1rem;font-weight:800}.ready-yes{color:#0d1117}.ready-no{color:var(--muted);background:#ffffff0d}.results-actions{justify-content:center;align-items:center;gap:1rem;display:flex}.rematch{border-radius:.5rem;padding:.6rem 2rem;font-size:1rem;font-weight:700}.rematch:focus-visible{outline:3px solid var(--ok);outline-offset:2px}.rematch-countdown{color:var(--ok);font-variant-numeric:tabular-nums}:root{--ring:#fff;--ring-shadow:#000000bf;--accent:#4c9aff}.screen{flex-direction:column;gap:1.25rem;padding:clamp(1rem,3vh,2.5rem) clamp(1rem,4vw,3.5rem);display:flex;position:absolute;inset:0;overflow:auto}.screen:before{content:"";pointer-events:none;background:linear-gradient(90deg,#080b10f0 0%,#080b108c 45%,#080b10f0 100%);position:absolute;inset:0}.screen>*{position:relative}.screenTitle{letter-spacing:.01em;margin:0;font-size:1.6rem}.screenLead{max-width:44rem;color:var(--muted);margin:0;font-size:.95rem;line-height:1.55}.mainMenuHeader{justify-content:space-between;align-items:center;gap:1rem;display:flex}.mainMenuTitle{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:1.5rem;font-weight:650}.mainMenuIdentity{align-items:center;gap:.6rem;display:flex}.identityChip{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:.4rem .75rem;font-size:.85rem}.identityKit{cursor:pointer;border:3px solid;border-radius:.5rem;width:1.9rem;height:1.9rem}.mainMenuColumns{flex:1;grid-template-columns:minmax(13rem,17rem) minmax(0,1fr) minmax(15rem,21rem);gap:clamp(1rem,2.5vw,2.5rem);min-height:0;display:grid}@media (width<=60rem){.mainMenuColumns{grid-template-rows:auto minmax(8rem,1fr) auto;grid-template-columns:minmax(0,1fr)}}.mainMenuNav{flex-direction:column;align-self:start;gap:.35rem;display:flex}.mainMenuStage{flex-direction:column;justify-content:flex-end;min-height:0;display:flex}.mainMenuStageControls{flex-direction:column;align-self:center;gap:.35rem;width:min(100%,22rem);margin-bottom:clamp(.5rem,4vh,2.5rem);display:flex}.panelPending{color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}.mainMenuPanel{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex;overflow:auto}.menuItem,.menuOption,.menuSlider,.menuAction{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.55rem;transition:background .12s,transform .12s,border-color .12s;position:relative}.menuItem[data-focused],.menuOption[data-focused],.menuSlider[data-focused],.menuAction[data-focused]{outline:2px solid var(--ring);outline-offset:2px;border-color:var(--ring);box-shadow:0 0 0 4px var(--ring-shadow);background:#ffffff1a}.menuItem:focus,.menuOption:focus,.menuSlider:focus,.menuAction:focus{outline:2px solid var(--ring);outline-offset:2px}.menuItem:disabled,.menuOption:disabled,.menuSlider:disabled,.menuAction:disabled{color:var(--muted);cursor:not-allowed}.menuItem{flex-direction:column;gap:.1rem;padding:.6rem .9rem;font-size:1.05rem;display:flex}.menuItem[data-focused]{transform:translate(.25rem)}.menuItem[data-focused] .menuItemLabel{font-size:1.3rem}.menuItemLabel{font-weight:550;transition:font-size .12s}.menuItemHint,.menuItemReason{color:var(--muted);font-size:.75rem;line-height:1.4}.menuItemReason{color:#d9a441}.menuItemCaret{background:var(--accent);border-radius:2px;width:3px;height:1.1rem;position:absolute;top:50%;left:-.55rem;transform:translateY(-50%)}.menuOption,.menuSlider{border-color:var(--border);background:#ffffff08;grid-template-columns:1fr auto;align-items:center;gap:.5rem .75rem;padding:.55rem .8rem;font-size:.9rem;display:grid}.menuOptionLabel{color:var(--muted)}.menuOptionValue{font-variant-numeric:tabular-nums;align-items:center;gap:.55rem;font-weight:550;display:inline-flex}.menuOptionValue[data-unavailable]{color:#d9a441}.menuItemReason,.menuOption .menuItemReason,.menuSlider .menuItemReason{grid-column:1/-1}.menuSlider{grid-template-columns:1fr minmax(6rem,10rem) auto}.menuSliderTrack{background:#ffffff24;border-radius:999px;height:.35rem;overflow:hidden}.menuSliderFill{background:var(--accent);height:100%;display:block}.actionRow{align-items:center;gap:.6rem;margin-top:auto;padding-top:.5rem;display:flex}.menuAction{border-color:var(--border);text-align:center;background:#ffffff0d;padding:.55rem 1.2rem;font-size:.9rem;font-weight:550}.menuAction[data-primary]{border-color:var(--accent);background:#4c9aff2e}.creditsList{max-width:34rem}.oskWrap{flex-direction:column;gap:.6rem;max-width:34rem;display:flex}.osk{gap:.35rem;display:grid}.oskActions{gap:.35rem;display:flex}.oskKey{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;text-transform:uppercase;cursor:pointer;border-radius:.4rem;padding:.55rem 0;font-size:.95rem}.oskKeyWide{text-transform:none;flex:1;padding:.55rem 1rem}.oskKey[data-focused]{outline:3px solid var(--ring);outline-offset:2px;background:#4c9aff38}.oskKey:disabled{opacity:.35;cursor:default}.nameField{border:1px solid var(--border);background:var(--panel);border-radius:.5rem;justify-content:space-between;align-items:baseline;gap:1rem;max-width:34rem;padding:.7rem 1rem;display:flex}.nameValue{letter-spacing:.02em;font-size:1.5rem}.nameCount{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.setupColumns,.settingsColumns{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));align-items:start;gap:clamp(1rem,2.5vw,2.5rem);display:grid}.setupColumn,.settingsColumn{flex-direction:column;gap:.6rem;min-width:0;display:flex}.settingsSubgroup{flex-direction:column;gap:.4rem;display:flex}.setupDevices{border:1px solid var(--border);background:var(--panel);border-radius:.5rem;padding:.75rem 1rem}.testStrip{border:1px dashed var(--border);background:var(--panel);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:.5rem;flex-direction:column;gap:.3rem;padding:.9rem 1rem;display:flex}.testStrip[data-armed]{border-style:solid;border-color:var(--accent);background:#4c9aff29}.testStrip[data-focused]{outline:3px solid var(--ring);outline-offset:2px}.testStripLabel{font-weight:600}.testStripHint{color:var(--muted);font-size:.82rem}.testBars{border:1px solid var(--border);background:var(--panel);border-radius:.5rem;flex-direction:column;gap:.3rem;padding:.75rem 1rem;display:flex}.kitEditor{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:clamp(1rem,2.5vw,2.5rem);display:grid}@media (width<=62rem){.kitEditor{grid-template-columns:minmax(0,1fr)}}.kitColumn{flex-direction:column;gap:.9rem;min-width:0;display:flex}.kitHeading{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.78rem;font-weight:650}.kitHint,.kitNote{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.kitSetRow{gap:.5rem;display:flex}.kitSetTab{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;border-radius:.5rem;align-items:center;gap:.5rem;padding:.5rem .85rem;display:flex}.kitSetTab[data-active]{border-color:var(--accent);background:#4c9aff2e}.kitSetTab[data-invalid]{border-color:var(--bad)}.kitSetTab[data-focused]{outline:3px solid var(--ring);outline-offset:2px}.kitSetSwatch{border:3px solid;border-radius:.3rem;width:1.2rem;height:1.2rem}.kitSwatches{border:2px solid #0000;border-radius:.5rem;gap:.35rem;padding:.4rem;display:grid}.kitSwatches[data-invalid]{border-color:var(--bad)}.kitSwatch{aspect-ratio:1;cursor:pointer;border:2px solid #00000059;border-radius:.35rem}.kitSwatch[data-selected]{border-color:var(--text);box-shadow:0 0 0 2px var(--bg) inset}.kitSwatch[data-focused]{outline:3px solid var(--ring);outline-offset:2px}.kitSwatch:disabled{opacity:.22;cursor:not-allowed}.kitPreviewColumn{border:1px solid var(--border);background:var(--panel);border-radius:.6rem;padding:1rem}.kitPreviewRow{flex-wrap:wrap;gap:.9rem;display:flex}.kitPreview,.kitReference{flex-direction:column;align-items:center;gap:.3rem;display:flex}.kitPreviewFigure{border-radius:.4rem .4rem .2rem .2rem;width:2.4rem;height:3.2rem;position:relative}.kitPreviewHead{border-radius:50%;width:1.2rem;height:1.2rem;position:absolute;top:-.55rem;left:50%;transform:translate(-50%)}.kitPreviewLegs{border-radius:0 0 .2rem .2rem;height:1.1rem;position:absolute;bottom:0;left:0;right:0}.kitPreviewLabel{color:var(--muted);text-align:center;font-size:.72rem}.kitReferencePair{display:flex}.kitReferencePair>span{width:1.6rem;height:2.4rem}.kitReferencePair>span:first-child{border-radius:.3rem 0 0 .3rem}.kitReferencePair>span:last-child{border-radius:0 .3rem .3rem 0}.kitDistance{border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:.4rem;padding:.5rem .75rem;font-size:.85rem}.kitDistance[data-bad]{border-color:var(--bad);color:var(--bad)}.kitViolations,.kitAdvisories{margin:0;padding-left:1.1rem;font-size:.82rem;line-height:1.5}.kitViolations{color:var(--bad)}.kitAdvisories{color:#d9a441}.kitActionRow{grid-column:1/-1}.bindChoiceRow{flex-wrap:wrap;gap:.6rem;max-width:46rem;display:flex}.bindChoiceRow>*{flex:16rem}.bindRows{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:.4rem;max-width:62rem;display:grid}.bindRow{border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:.45rem;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem .9rem;display:flex}.bindRow[data-focused]{outline:3px solid var(--ring);outline-offset:2px}.bindRow[data-capturing]{border-color:var(--accent);background:#4c9aff33}.bindRow[data-conflict]{border-color:var(--bad)}.bindKey{border:1px solid var(--border);white-space:nowrap;background:#00000059;border-radius:.3rem;padding:.15rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.bindRefused{color:var(--bad);margin:0;font-size:.85rem}.controlsPanel{flex-direction:column;gap:.75rem;display:flex}.controlsPanelHead{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.controlsPanelDevice{color:var(--muted);text-transform:capitalize;font-size:.75rem}.rodSchematic{width:100%;height:auto;color:var(--text);opacity:.85}.controlsList{flex-direction:column;gap:.3rem;margin:0;display:flex}.controlsRow{justify-content:space-between;align-items:center;gap:.75rem;font-size:.82rem;display:flex}.controlsRow dt{color:var(--muted)}.controlsRow dd{align-items:center;gap:.25rem;margin:0;display:flex}.controlsRow kbd{border:1px solid var(--border);background:#00000059;border-radius:.25rem;padding:.1rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.controlsSep{color:var(--muted)}.controlsPanelNote{color:var(--muted);margin:0;font-size:.75rem;line-height:1.5}.flowColumn{flex-direction:column;gap:.5rem;max-width:40rem;display:flex}.lobbyColumns{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));align-items:start;gap:clamp(1rem,2.5vw,2.5rem);max-width:62rem;display:grid}.lobbyPanel{border:1px solid var(--border);background:var(--panel);border-radius:.6rem;flex-direction:column;gap:.6rem;min-width:0;padding:1rem;display:flex}.lobbyPanelHead{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.lobbyCount{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.lobbySeats{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.lobbySeat{border:1px solid var(--border);border-radius:.4rem;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.45rem .55rem;display:grid}.lobbySwatch{border:3px solid;border-radius:.3rem;width:1.1rem;height:1.1rem}.lobbyName{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.4rem;min-width:0;display:flex;overflow:hidden}.lobbyRules{flex-direction:column;gap:.25rem;margin:0;display:flex}@media (prefers-reduced-motion:reduce){.menuItem,.menuOption,.menuSlider,.menuAction,.menuItemLabel{transition:none}.menuItem[data-focused]{transform:none}}
