:root{--night:#04060b;--navy:#0e1730;--haze:#18223f;--room:#060a16;--cream:#f4ecdc;--amber:#ffb31a;--go:#3ddc84;--miss:#ff3b2f;--muted:#9aa6c2;--orange-rgb:255, 122, 26;--orange:rgb(var(--orange-rgb));--ember:#ff4d1a;--cream-rgb:244, 236, 220;--glass:#060912a8;--line:rgba(var(--cream-rgb), .22);--line-strong:rgba(var(--cream-rgb), .6);--glow:0 0 22px rgba(var(--orange-rgb), .45);--blur:blur(14px) saturate(140%);--shade-blur:blur(6px);--big:"Bebas Neue", "Barlow Condensed", system-ui, sans-serif;--display:"Barlow Condensed", system-ui, sans-serif;--gutter:16px;--safe-top:max(var(--gutter), env(safe-area-inset-top));--safe-right:max(var(--gutter), env(safe-area-inset-right));--safe-bottom:max(var(--gutter), env(safe-area-inset-bottom));--safe-left:max(var(--gutter), env(safe-area-inset-left));--screen-height:100vh;--btn-height:40px;--primary-fill:linear-gradient(180deg, var(--orange), var(--ember));--primary-glow:var(--glow);--corner-gap:10px;--panel-width:380px;--panel-height:46%;--letterbox:max(0px, calc((var(--screen-height) - 100vw / 2.39) / 2));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (height:100dvh){:root{--screen-height:100dvh}}*{box-sizing:border-box}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit}::-webkit-scrollbar{display:none}:focus{outline:none}:focus-visible{outline:none}html,body{touch-action:pan-x pan-y;background:var(--night);height:100%;color:var(--cream);font-family:var(--display);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;font-size:17px;overflow:hidden}#scene{width:100%;height:var(--screen-height);touch-action:none;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{height:var(--screen-height);pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.slate{background:var(--glass);border:1px solid var(--line);box-shadow:0 10px 40px #00000080, inset 0 1px 0 rgba(var(--orange-rgb), .55);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);pointer-events:auto;border-radius:6px;padding:12px 14px}.label{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.btn{height:var(--btn-height);border:1px solid var(--line);background:rgba(var(--cream-rgb), .06);color:var(--cream);font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:17px;font-weight:600;transition:border-color .12s,box-shadow .12s;display:inline-flex}.btn:hover{border-color:var(--line-strong)}.btn:focus-visible{border-color:var(--line-strong)}.btn.selected{border-color:var(--orange);background:rgba(var(--orange-rgb), .18);box-shadow:var(--glow)}.btn.primary{border-color:var(--orange);background:linear-gradient(180deg, var(--orange), var(--ember));color:var(--night);box-shadow:var(--glow)}.btn.primary:hover{border-color:var(--cream)}.btn.primary:focus-visible{border-color:var(--cream)}.btn.wide{width:100%}.swatch{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block}.screen{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.start-room{background:radial-gradient(ellipse at 70% 25%, rgba(var(--orange-rgb), .3), transparent 60%), var(--room);position:absolute;top:0;bottom:0;left:0;right:0}.screen-body{inset:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute;overflow-y:auto}.logo{text-align:center;font-weight:400;font-family:var(--big);letter-spacing:.1em;color:var(--cream);text-shadow:0 0 40px rgba(var(--orange-rgb), .5), 0 6px 0 #000000b3;margin:0;padding-left:.1em;font-size:clamp(65px,13.5vw,144px);line-height:.85}.tagline{text-align:center;letter-spacing:.4em;text-transform:uppercase;color:var(--orange);text-shadow:0 0 6px var(--night), 0 0 14px var(--night), 0 2px 0 #000c;margin-top:-8px;padding-left:.4em;font-size:18px;font-weight:600}.card{flex-direction:column;gap:12px;width:min(380px,100%);padding:20px;display:flex}.card-hint{color:var(--muted);margin:0;font-size:15px}.player-row{align-items:center;gap:10px;display:flex}.field{height:var(--btn-height);border:1px solid var(--line);border-left:3px solid var(--team,var(--orange));color:var(--cream);font-family:var(--display);-webkit-user-select:text;user-select:text;background:#0000004d;border-radius:4px;flex:1;padding:0 12px;font-size:18px;font-weight:600}.field:focus{border-color:var(--line-strong)}.field.code{height:56px;font-family:var(--big);letter-spacing:.4em;text-indent:.4em;text-align:center;text-transform:uppercase;border-left-width:1px;flex:none;font-size:34px}.choices{gap:8px;display:flex}.choices .btn{flex:1 1 0;min-width:0;padding:0 6px}.choices .btn:first-child:nth-last-child(n+4),.choices .btn:first-child:nth-last-child(n+4)~.btn{letter-spacing:.02em;font-size:15px}.actions{gap:10px;display:flex}.actions .btn{flex:1 1 0}#film{height:var(--screen-height);pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.film{position:absolute;top:0;bottom:0;left:0;right:0}.film .bar{height:var(--letterbox);background:#000;transition-property:transform;transition-timing-function:cubic-bezier(.65,0,.35,1);position:absolute;left:0;right:0}.film .bar.top{top:0;transform:translateY(-100%)}.film .bar.bottom{bottom:0;transform:translateY(100%)}.film.boxed .bar{transform:none}.film .flash{opacity:0;mix-blend-mode:screen;background:#fff8ec;position:absolute;top:0;bottom:0;left:0;right:0}.film .ink{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.pitch-title{left:var(--safe-left);right:var(--safe-right);top:var(--place,60%);width:max-content;max-width:100%;font-family:var(--big);letter-spacing:.04em;color:var(--amber);text-shadow:0 0 40px #ff8c148c,0 6px #3c1400cc;transform:translateY(-50%) rotate(var(--tilt,-6deg)) scale(1.6);opacity:0;margin:auto;font-size:clamp(64px,15vw,190px);line-height:1;position:absolute}.pitch-title.shown{animation:title-slam var(--title-ms,1.1s) cubic-bezier(.15, .9, .3, 1) forwards}@keyframes title-slam{0%{opacity:0;letter-spacing:.3em;transform:translateY(-50%) rotate(var(--tilt,-6deg)) scale(1.7)}14%{opacity:1;letter-spacing:.04em;transform:translateY(-50%) rotate(var(--tilt,-6deg)) scale(1)}80%{opacity:1;transform:translateY(-50%) rotate(var(--tilt,-6deg)) scale(.97)}to{opacity:0;transform:translateY(-50%) rotate(var(--tilt,-6deg)) scale(.95)}}.hud{position:absolute;top:0;bottom:0;left:0;right:0}.scoreboard{top:var(--safe-top);left:var(--safe-left);border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#04060bc7;border-radius:4px;flex-direction:column;min-width:190px;display:flex;position:absolute;overflow:hidden}.score-row{border-left:4px solid var(--team,var(--orange));letter-spacing:.04em;text-transform:uppercase;opacity:.62;align-items:center;gap:10px;padding:2px 10px 2px 8px;font-size:18px;font-weight:700;display:flex}.score-row.at-bat{opacity:1;background:linear-gradient(90deg, rgba(var(--orange-rgb), .16), transparent)}.score-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.score-runs{font-family:var(--big);text-align:right;min-width:1.2em;font-size:28px;line-height:1.1}.situation{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:14px;padding:6px 10px 6px 12px;font-size:15px;font-weight:600;display:flex}.count{color:var(--cream)}.inning{color:var(--cream);align-items:center;gap:5px;display:inline-flex}.half{border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0}.half.top{border-bottom:8px solid var(--orange)}.half.bottom{border-top:8px solid var(--orange)}.outs{gap:3px;display:flex}.outs i{border:1px solid var(--muted);border-radius:50%;width:8px;height:8px}.outs i.on{background:var(--orange);border-color:var(--orange)}.bases{width:26px;height:18px;position:relative}.bases i{border:1px solid var(--muted);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.bases i.on{background:var(--orange);border-color:var(--orange)}.bases .base-1{top:0;left:9px}.bases .base-0{top:8px;right:0}.bases .base-2{top:8px;left:0}.setup-panel{top:var(--safe-top);bottom:var(--safe-bottom);right:var(--safe-right);height:max-content;width:min(var(--panel-width), calc(100vw - var(--safe-left) - var(--safe-right)));opacity:0;pointer-events:none;flex-direction:column;gap:16px;margin:auto 0;padding:20px;transition:transform .6s cubic-bezier(.65,0,.35,1),opacity .6s;display:flex;position:absolute;transform:translate(calc(100% + 40px))}.setup-panel.shown{opacity:1;pointer-events:auto;transform:none}.panel-title{font-family:var(--big);letter-spacing:.06em;color:var(--team,var(--cream));font-size:34px;line-height:1}.does{min-height:2.6em;color:var(--muted);margin:-6px 0 0;font-size:16px}.btn.ready{height:54px;font-size:24px;font-family:var(--big);letter-spacing:.12em}@media (orientation:portrait){.setup-panel{top:auto;left:var(--safe-left);width:auto;max-height:var(--panel-height);margin:0;overflow-y:auto;transform:translateY(calc(100% + 40px))}}.status-line{top:var(--safe-top);width:max-content;max-width:calc(100% - var(--safe-left) - var(--safe-right) - 2 * var(--panel-width) / 3);letter-spacing:.16em;text-transform:uppercase;text-align:center;color:var(--cream);border-color:var(--team,var(--line));margin:0 auto;padding:8px 18px;font-size:15px;font-weight:600;position:absolute;left:0;right:0}.status-line:empty{display:none}.action-hint{left:var(--safe-left);right:var(--safe-right);bottom:calc(var(--safe-bottom) + 24px);letter-spacing:.24em;text-transform:uppercase;text-align:center;width:max-content;max-width:100%;color:var(--cream);text-shadow:0 0 14px #000000e6, 0 0 24px rgba(var(--orange-rgb), .5);margin:auto;padding:0 12px;font-size:17px;font-weight:600;animation:1.6s ease-in-out infinite hint-pulse;position:absolute}.action-hint:empty{display:none}@keyframes hint-pulse{50%{opacity:.5}}.call{left:var(--safe-left);right:var(--safe-right);width:max-content;max-width:100%;font-family:var(--big);letter-spacing:.05em;text-align:center;text-transform:uppercase;color:var(--cream);text-shadow:0 6px #000000b3,0 0 50px #000c;opacity:0;pointer-events:none;margin:auto;font-size:clamp(56px,11vw,150px);line-height:1;position:absolute;top:50%;transform:translateY(-50%)scale(1.5)}.call.shown{animation:2.2s cubic-bezier(.15,.9,.3,1) forwards call-slam}.call.hit{color:var(--orange);text-shadow:0 6px 0 #3c1400cc, 0 0 60px rgba(var(--orange-rgb), .85)}.call.home-run{color:var(--amber);font-size:clamp(72px,15vw,210px)}.call.strike{color:var(--cream)}.call.out{color:var(--muted)}@keyframes call-slam{0%{opacity:0;transform:translateY(-50%)scale(1.6)}10%{opacity:1;transform:translateY(-50%)scale(1)}85%{opacity:1;transform:translateY(-50%)scale(.96)}to{opacity:0;transform:translateY(-50%)scale(.94)}}.banner{left:var(--safe-left);right:var(--safe-right);width:max-content;max-width:100%;font-family:var(--big);letter-spacing:.08em;text-align:center;color:var(--cream);border-top:2px solid var(--orange);opacity:0;pointer-events:none;background:#04060bb3;margin:auto;padding:6px 18px;font-size:clamp(30px,5vw,54px);transition:opacity .2s,transform .3s cubic-bezier(.2,1.4,.4,1);position:absolute;top:64%;transform:translateY(12px)}.banner.shown{opacity:1;transform:none}.banner.big{color:var(--orange)}.overlay{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);-webkit-backdrop-filter:var(--shade-blur);z-index:4;pointer-events:auto;background:radial-gradient(#04060b59,#04060bb3);justify-content:center;align-items:center;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.overlay.end{background:radial-gradient(#04060b59,#04060bcc)}.overlay.shown{display:flex}.overlay .notice{align-items:stretch;width:min(460px,100%);max-width:none;padding:0}.notice-kicker{letter-spacing:.4em;text-transform:uppercase;color:var(--team,var(--orange));font-size:15px;font-weight:600}.notice-title{font-family:var(--big);letter-spacing:.05em;font-size:32px;line-height:1}.notice-title.big{font-size:clamp(44px,9vw,76px)}.notice-title.huge{color:var(--team,var(--cream));text-shadow:0 0 40px #000c;font-size:clamp(56px,12vw,110px)}.overlay .notice .btn{height:52px;font-size:20px}.final{flex-direction:column;gap:6px;width:min(300px,100%);margin:0 auto;display:flex}.final-row{border-left:4px solid var(--team,var(--orange));text-transform:uppercase;align-items:center;gap:10px;padding-left:10px;font-size:22px;font-weight:700;display:flex}.final-name{text-align:left;flex:1}.final-runs{font-family:var(--big);font-size:36px}@media (max-width:860px),(max-height:500px){html,body{font-size:15px}.setup-panel{gap:10px;padding:14px}.panel-title{font-size:26px}.btn{font-size:15px}.scoreboard{min-width:150px}}@media (prefers-reduced-motion:reduce){.action-hint{animation:none}}.hint{color:var(--muted);font-size:13px;line-height:1.45}.screen.shade{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:auto;-webkit-backdrop-filter:var(--shade-blur);z-index:4;background:#04060bb8;justify-content:center;align-items:center;display:flex}.menu{flex-direction:column;gap:14px;width:420px;max-width:100%;display:flex}.menu-option{text-align:left;cursor:pointer;background:#060912d6;flex-direction:column;align-items:flex-start;gap:4px;width:100%;transition:border-color .12s,box-shadow .12s;display:flex}.menu-option strong{letter-spacing:.18em;text-transform:uppercase;color:var(--cream);font-size:17px;font-weight:700}.menu-option span{color:var(--muted);font-size:14px}.menu-option:hover{border-color:var(--line-strong);box-shadow:var(--glow)}.menu-option:focus-visible{border-color:var(--line-strong);box-shadow:var(--glow)}.menu-option.primary{background:linear-gradient(180deg, rgba(var(--orange-rgb), .32), rgba(var(--orange-rgb), .12)), #060912d6;border-color:var(--orange)}.install-hint{text-align:center;margin:0}.panel{flex-direction:column;gap:16px;width:440px;max-width:100%;padding:20px;display:flex}.panel h2{letter-spacing:.16em;text-transform:uppercase;color:var(--cream);font-size:20px;font-weight:700}.panel-head{align-items:center;gap:12px;display:flex}.panel-head .label{flex:1}.panel-head .hint{text-align:right}.players{flex-direction:column;gap:10px;display:flex}.setup-row{gap:10px;display:flex}.player-toggle{white-space:nowrap;flex:none;place-items:center;display:grid}.player-toggle>span{grid-area:1/1}.player-toggle>.hidden{visibility:hidden}.remove-player{width:var(--btn-height);flex:none;padding:0}.player-row.dimmed{opacity:.45}.invite{align-items:center;gap:16px;display:flex}.invite .qr{background:var(--cream);border-radius:2px;flex:none;width:128px;height:128px;padding:6px}.invite .qr svg{width:100%;height:100%;display:block}.invite-details{flex-direction:column;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.invite .actions{align-self:stretch}.invite .actions>.btn{white-space:nowrap;min-width:0;padding-inline-start:8px;padding-inline-end:8px}.copy-button{position:relative}.copy-button svg{display:none}.copy-button.copied span{visibility:hidden}.copy-button.copied svg{width:24px;height:24px;fill:var(--go);margin:auto;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.room-code{font:40px var(--display);letter-spacing:.3em;color:var(--cream);text-shadow:0 0 14px rgba(var(--orange-rgb), .6)}.corner{top:var(--safe-top);right:var(--safe-right);gap:var(--corner-gap);z-index:3;pointer-events:auto;display:flex;position:fixed}.corner .btn{width:var(--btn-height);padding:0}.corner svg{fill:currentColor;width:22px;height:22px}.corner .leave{display:none}.corner .leave.visible{display:inline-flex}.settings{top:calc(var(--safe-top) + var(--btn-height) + 12px);right:var(--safe-right);z-index:7;width:min(300px, calc(100vw - var(--safe-left) - var(--safe-right)));max-height:calc(var(--screen-height) - var(--safe-top) - var(--btn-height) - 12px - var(--safe-bottom));pointer-events:auto;flex-direction:column;display:none;position:fixed}.settings.visible{display:flex}.settings-body{flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.options{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.options .btn{padding-inline-start:8px;padding-inline-end:8px}.options .btn.active{border-color:var(--orange);background:rgba(var(--orange-rgb), .24)}.settings a{color:var(--orange)}.switch-row{background:0 0;border:none;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:4px 0;display:flex}.switch-row .label:after{content:none}.switch{background:var(--glass);border:2px solid var(--line);border-radius:15px;flex:none;width:72px;height:30px;transition:background .12s,border-color .12s,box-shadow .12s;position:relative}.switch-knob{background:var(--muted);border-radius:50%;width:22px;height:22px;transition:transform .12s,background .12s;position:absolute;top:2px;left:2px}.switch-text{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700;line-height:26px;position:absolute;top:0;right:9px}.switch-row[aria-checked=true] .switch{background:var(--primary-fill);border-color:var(--orange);box-shadow:var(--primary-glow)}.switch-row[aria-checked=true] .switch-knob{background:var(--cream);transform:translate(42px)}.switch-row[aria-checked=true] .switch-text{color:var(--night);left:9px;right:auto}.switch-row:hover .switch{border-color:var(--line-strong);box-shadow:var(--glow)}.switch-row:focus-visible .switch{border-color:var(--line-strong);box-shadow:var(--glow)}.sound-prompt{left:var(--safe-left);right:var(--safe-right);bottom:var(--safe-bottom);z-index:3;width:max-content;margin:0 auto;position:fixed}.notice{text-align:center;flex-direction:column;align-items:center;gap:18px;width:fit-content;max-width:min(440px,100%);padding:22px 26px;display:flex}.notice.read-only{pointer-events:none}.status-line,.notice.status-card{padding:10px 22px}.notice h2{font-family:var(--display);letter-spacing:.02em;color:var(--cream);text-wrap:balance;font-size:17px;font-weight:500;line-height:1.4}.notice>.btn{min-width:160px}.notice.choice{width:100%}.notice>.actions{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:100%;display:grid}.notice>.actions>.btn{white-space:nowrap;min-width:0;padding-inline-start:8px;padding-inline-end:8px}.notice-icon svg{width:40px;height:40px;fill:var(--orange);filter:drop-shadow(0 0 10px rgba(var(--orange-rgb), .6));display:block}.error-log{left:var(--safe-left);right:var(--safe-right);bottom:var(--safe-bottom);z-index:100;font:12px/1.3 var(--display);color:var(--cream);pointer-events:none;background:#000c;flex-direction:column;gap:2px;padding:6px 8px;display:flex;position:fixed}.error-log:empty{display:none}.still-picture{pointer-events:none;width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}#ui.holding .hud,#ui.holding .shade{visibility:hidden}#ui>.trailer-overlay{pointer-events:none}.trailer-overlay{z-index:5;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);text-align:center;background:var(--night);opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.trailer-credits{max-width:560px;color:var(--muted);flex-direction:column;gap:6px;display:flex}.trailer-credits .trailer-created{letter-spacing:.16em;text-transform:uppercase;color:var(--cream);font-size:1.1rem;font-weight:600}.trailer-credits .credit{margin-top:10px;font-size:.75rem;line-height:1.4}.trailer-credits .credit-heading{letter-spacing:.24em;text-transform:uppercase;color:var(--cream);margin-bottom:2px;font-size:.7rem;font-weight:600}.trailer-credits a{color:var(--orange)}.trailer-credits.shown a{pointer-events:auto}.trailer-controls{left:var(--safe-left);right:var(--safe-right);bottom:var(--safe-bottom);z-index:6;align-items:center;gap:12px;max-width:640px;margin:0 auto;padding:8px;transition:opacity .3s;display:flex;position:absolute}.trailer-controls.idle{opacity:0}#ui>.trailer-controls.idle{pointer-events:none}.trailer-button{width:var(--btn-height);flex:none;padding:0}.trailer-button svg,.trailer-start svg{fill:currentColor;width:22px;height:22px}.trailer-start{z-index:6;border-radius:50%;width:96px;height:96px;padding:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trailer-start svg{width:48px;height:48px}.trailer-slider{min-width:0;accent-color:var(--orange);flex:1}.trailer-time{font-family:var(--display);color:var(--muted);flex:none;font-size:.85rem}
