@font-face{font-family:Bebas Neue;src:url(/fonts/BebasNeue-Regular.ttf)format("truetype");font-weight:400;font-display:swap}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{color-scheme:light dark;--bg:light-dark(#f0f3f7,#0f1419);--panel:light-dark(#fff,#1a222c);--text:light-dark(#101820,#e6edf3);--muted:light-dark(#566370,#8b98a5);--border:light-dark(#ccd5de,#2b3642);--on-accent:light-dark(#fff,#0b1116);--go:light-dark(#157f43,#27ae60);--warn:light-dark(#b02a26,#eb5757);--caution:light-dark(#7d6200,#f2c94c);--lift:light-dark(#000,#fff);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:16px/1.4 system-ui,Segoe UI,Roboto,sans-serif}*{--team-accent:light-dark(oklch(from var(--team) calc(l * .62) c h),var(--team))}.team-ink{color:var(--team-accent)}.team-fill{background:var(--team-accent);color:var(--on-accent)}*{box-sizing:border-box}body{margin:0}#root{min-height:100svh}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}code{border-radius:3px;padding:1px 4px;font-size:12px}.confetti{z-index:1;pointer-events:none;--piece:10px;--fall:1;position:fixed;inset:0;overflow:hidden}.confetti-piece{background:var(--team-accent);opacity:0;border-radius:1px;animation-name:confetti-fall;animation-timing-function:ease-in;animation-fill-mode:forwards;position:absolute;top:-8%}.confetti-piece.is-pale{background:var(--text)}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-12vh)translate(0)rotate(0)}85%{opacity:1}to{transform:translateY(112vh) translateX(var(--drift)) rotate(var(--rot));opacity:0}}@media (prefers-reduced-motion:reduce){.confetti-piece{display:none}}.game-stats{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px 12px}.game-stats-empty{text-align:center;color:var(--muted);margin:0;padding:6px 0;font-size:13px}.game-stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.game-stats-table th,.game-stats-table td{text-align:right;white-space:nowrap;padding:6px 4px}.game-stats-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);font-size:10px;font-weight:700}.game-stats-table tbody th,.game-stats-table thead th:first-child{text-align:left;width:40%;max-width:0;padding-left:0;font-weight:600;overflow:hidden}.game-stats-player{align-items:baseline;min-width:0;display:flex}.game-stats-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.game-stats-table tbody tr+tr th,.game-stats-table tbody tr+tr td{border-top:1px solid var(--border)}.game-stats-fb{background:color-mix(in srgb, var(--lift) 8%, transparent);color:var(--muted);border-radius:4px;flex:none;margin-left:6px;padding:1px 4px;font-size:10px;font-weight:700}.game-stats-foot{color:var(--muted);text-align:center;margin:8px 0 0;font-size:11px}.form-line{align-items:center;gap:3px;display:inline-flex}.form-line-spoken{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-line-pip{background:var(--border);border-radius:50%;width:7px;height:7px}.form-line-pip.is-win{background:var(--team-accent,var(--text))}.lineup{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px 12px}.lineup-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:10px;font-weight:700}.lineup-record{justify-content:center;align-items:baseline;gap:8px;margin:0 0 8px;font-size:13px;display:flex}.lineup-record b{font-variant-numeric:tabular-nums}.lineup-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.lineup-table th,.lineup-table td{text-align:right;white-space:nowrap;padding:6px 4px}.lineup-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);font-size:10px;font-weight:700}.lineup-table tbody th,.lineup-table thead th:first-child{text-align:left;width:40%;max-width:0;padding-left:0;font-weight:600;overflow:hidden}.lineup-table tbody tr+tr th,.lineup-table tbody tr+tr td{border-top:1px solid var(--border)}.lineup-player{align-items:baseline;min-width:0;display:flex}.lineup-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.lineup-streak{background:color-mix(in srgb, var(--lift) 8%, transparent);color:var(--muted);border-radius:4px;flex:none;margin-left:6px;padding:1px 4px;font-size:10px;font-weight:700}.lineup-first{color:var(--muted);font-size:12px}.positions{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;padding:12px;display:flex}.court{flex-direction:column;gap:4px;width:100%;max-width:420px;margin:0 auto;display:flex}.court-end{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:8px;display:grid}.cornhole-board{border:1px solid var(--border);background:color-mix(in srgb, var(--lift) 5%, transparent);border-radius:4px;width:26px;height:52px;position:relative}.board-hole{border:1px solid var(--border);background:var(--bg);border-radius:50%;width:7px;height:7px;margin-left:-3.5px;position:absolute;left:50%}.court-end.at-near .board-hole{top:6px}.court-end.at-far .board-hole{bottom:6px}.swap-sides{width:22px;height:22px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0;font-size:12px;line-height:1;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.swap-sides:before{content:"";position:absolute;inset:-50% -8px}.swap-sides:active{color:var(--text)}.pitch-box{text-align:center;border-radius:8px;justify-content:center;align-items:center;min-width:0;padding:7px 8px;font-size:13px;font-weight:600;display:flex;position:relative}.box-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.pitch-box.is-throwing{color:var(--team-accent);border:1px solid var(--team-accent)}.pitch-box.is-throwing:after{content:"";border-radius:inherit;background:var(--team-accent);opacity:.12;position:absolute;inset:0}.pitch-box.is-waiting{color:var(--team-accent);border:1px dashed var(--border);opacity:.55}.pitch-box.is-empty{border:1px dashed var(--border);opacity:.4;border-radius:8px}.pitch-box:not(.is-empty):before{content:"";border:1px solid var(--muted);opacity:.6;border-radius:2px;flex:none;width:8px;height:8px;margin-right:5px}.pitch-box.is-throwing:before{border-color:currentColor}.pitch-box.is-first:before{opacity:1;background:currentColor;border-color:currentColor}.throw-dir{text-align:center;color:var(--muted);letter-spacing:2px;font-size:11px}.positions-hint{color:var(--muted);text-align:center;margin:0;font-size:12px}@media (orientation:landscape) and (height<=450px){.positions{gap:6px;padding:8px}.cornhole-board{width:20px;height:40px}.board-hole{width:5px;height:5px;margin-left:-2.5px}.court-end.at-near .board-hole{top:5px}.court-end.at-far .board-hole{bottom:5px}.swap-sides{width:18px;height:18px;bottom:1px}.pitch-box{padding:4px 8px}.positions-hint{display:none}}.stat-chips{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px;display:grid}.stat-chip{border:1px solid var(--border);background:var(--panel);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:12px 8px;display:flex}.stat-chip-value{font-size:22px;font-weight:700;line-height:1}.stat-chip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:center;font-size:11px}.app.stats-screen{gap:20px;max-width:1040px;padding-top:24px}.stats-head{align-items:center;gap:12px;display:flex}.stats-head h1{margin:0;font-size:20px;font-weight:700}.stats-back{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:8px 14px;font-size:14px}.stats-empty{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:12px;margin:0;padding:20px;font-size:14px}.stats-section h2{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:12px;font-weight:700}.stats-scroll{--name-col:96px;scroll-snap-type:x proximity;scroll-padding-left:var(--name-col);border:1px solid var(--border);background:var(--panel);border-radius:12px;overflow-x:auto}.stats-table thead th+th{scroll-snap-align:start}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.stats-table th,.stats-table td{text-align:right;white-space:nowrap;padding:10px 12px}.stats-table thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);font-size:11px;font-weight:700}.stats-table tbody th,.stats-table thead th:first-child{width:var(--name-col);min-width:var(--name-col);max-width:var(--name-col);z-index:1;background:var(--panel);box-shadow:1px 0 0 var(--border);text-align:left;font-weight:600;position:sticky;left:0}.stats-table tbody tr+tr th,.stats-table tbody tr+tr td{border-top:1px solid var(--border)}.h2h,.recent{border:1px solid var(--border);background:var(--panel);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.h2h li{align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.recent-open{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:11px 14px;font-size:14px;display:flex}.recent-chevron{color:var(--muted);flex:none;margin-left:auto;font-size:13px;line-height:1;transition:transform .15s;display:inline-block}.recent-open[aria-expanded=true] .recent-chevron{transform:rotate(180deg)}.h2h li+li,.recent li+li{border-top:1px solid var(--border)}.h2h-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.h2h-score,.recent-score{font-variant-numeric:tabular-nums;font-weight:700}.recent-date{width:64px;color:var(--muted);flex:none;font-size:12px}.recent-teams{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.recent-v{color:var(--muted)}.recent-paging{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.recent-at{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.recent-arrows{flex:none;gap:6px;margin-left:auto;display:flex}.recent-paging button{border:1px solid var(--border);background:var(--panel);width:44px;height:40px;color:var(--text);border-radius:8px;font-size:16px;line-height:1}.recent-paging button[aria-disabled=true]{color:var(--border)}.match-rounds{border-top:1px solid var(--border);background:var(--bg);font-variant-numeric:tabular-nums;padding:0 14px 12px;font-size:13px}.match-rounds-head,.match-round{grid-template-columns:3.2em 1fr 1fr 4.6em;align-items:center;gap:8px;padding:6px 0;display:grid}.match-rounds-head{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-top:10px;font-size:10px;font-weight:700}.match-rounds-head span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.match-rounds-head span:last-child,.mr-running{text-align:right}.match-round+.match-round{border-top:1px solid var(--border)}.mr-n{color:var(--muted);flex-direction:column;font-size:12px;display:flex}.mr-n em{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-style:normal}.mr-side{flex-direction:column;gap:1px;min-width:0;display:flex}.mr-thrower{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:normal;overflow:hidden}.mr-counts{color:var(--muted);white-space:nowrap}.mr-counts.is-four{color:var(--text)}.mr-counts b{margin-left:6px;font-weight:700}.mr-running{white-space:nowrap;font-weight:700}.match-round.is-wash .mr-running{opacity:.5}.match-rounds-foot{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin:10px 0 0;font-size:11px;display:flex}.match-rounds-foot>span{flex:1;min-width:0}.match-edit,.match-drop{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:none;padding:6px 10px;font-size:11px}.match-drop{border-color:var(--warn);color:var(--warn)}.match-names{margin-top:14px}.match-name-heads,.match-name-team{gap:8px;display:flex}.match-name-heads{color:var(--muted);margin-bottom:6px;font-size:11px}.match-name-heads span{text-align:center;flex:1}.match-name-team+.match-name-team{margin-top:8px}.match-name-input{flex:1;min-width:0}.match-names-note{color:var(--warn);margin:10px 0 0;font-size:12px;line-height:1.4}.stats-table tbody th{padding:0}.player-select{width:100%;color:inherit;font:inherit;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:10px 12px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.player-select[aria-pressed=true]{color:var(--text);text-decoration-style:solid}.stats-table tbody tr.is-selected th,.stats-table tbody tr.is-selected td{background:var(--border)}.stats-table tbody tr.is-inactive td,.stats-table tbody tr.is-inactive .player-select{opacity:.45}.match-name-input,.rename-input{border:1px solid var(--border);background:var(--bg);color:var(--text);text-align:center;border-radius:10px;padding:10px 12px;font-size:17px;font-weight:600}.rename-input{width:100%;margin-top:14px}.rename-note{color:var(--caution);margin:12px 0 0;font-size:12px;line-height:1.4}.rename-refused{color:var(--warn)}.match-name-input[aria-invalid=true],.rename-input[aria-invalid=true]{border-color:var(--warn)}.durability{border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:14px}.durability p{max-width:72ch;margin:0 0 12px;font-size:13px;line-height:1.5}.durability-ok{color:var(--muted)}.durability-warn{color:var(--caution)}.durability-pending,.durability-notice{color:var(--muted)}.durability-notice{margin:12px 0 0}.durability-actions{gap:8px;display:flex}.durability-actions button,.file-button{border:1px solid var(--border);background:var(--bg);color:var(--text);text-align:center;border-radius:10px;flex:1;padding:12px;font-size:14px}.file-button{cursor:pointer}.file-button:has(:focus-visible){outline:auto;outline-color:-webkit-focus-ring-color}@media (prefers-reduced-motion:reduce){.recent-chevron{transition:none}}.rivals-sub{text-transform:none;letter-spacing:0;font-weight:600}.rivals-sub b{color:var(--text)}.rivals-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:8px 0 0;font-size:11px;display:flex}.rivals-buttons{gap:8px;margin-left:auto;display:flex}.rivals-inactive{color:var(--text);font-weight:600}.rivals-none{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:12px;margin:0;padding:12px 14px;font-size:13px}.rivals{border:1px solid var(--border);background:var(--panel);border-radius:12px;overflow:hidden}.rivals .h2h{background:0 0;border:0;border-radius:0}.rivals-head{border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;padding:8px 14px;font-size:11px;font-weight:700;display:flex}.h2h-score{margin-left:auto}.rival-tag{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex:none;font-size:10px;font-weight:700}.h2h-spoken{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dev-reset{gap:8px;margin-top:4px;display:flex}.dev-reset button{border:1px dashed var(--warn);color:var(--warn);background:0 0;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}.recent li.is-tie .recent-open{position:relative}.recent li.is-tie .recent-open:before{content:"";background:var(--go);border-radius:2px;width:3px;position:absolute;top:8px;bottom:8px;left:5px}.recent-key{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 8px;font-size:11px;font-weight:700;display:flex}.recent-key-mark{background:var(--go);border-radius:2px;width:3px;height:12px}.app.tournament-screen{--row-w:560px;gap:20px;max-width:1040px}.draw,.ceremony,.tournament-empty{width:100%;max-width:var(--row-w)}.tournament-empty{color:var(--muted);text-align:center;margin:0;font-size:14px}.tournament-list{flex-direction:column;gap:8px;width:100%;display:flex}.tournament-list h2{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.tournament-list>ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tournament-list>ul>li{background:var(--panel);border:1px solid var(--border);max-width:var(--row-w);border-radius:12px;flex-direction:column;gap:12px;padding:12px;display:flex}.tournament-list>ul>li.is-open{max-width:none}.tournament-row{text-align:left;width:100%;color:inherit;background:0 0;border:none;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 12px;padding:0;display:grid}.tournament-name{text-overflow:ellipsis;white-space:nowrap;grid-area:1/1;min-width:0;font-size:16px;font-weight:700;overflow:hidden}.tournament-progress,.champion-who,.series-count,.series-holder{color:var(--muted);white-space:nowrap;grid-area:1/2;justify-self:end;font-size:13px}.champion-who,.series-holder{color:var(--text);font-size:14px;font-weight:700}.tournament-when{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);grid-area:2/1;font-size:12px;overflow:hidden}.runner-up-who{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);grid-area:2/2;justify-self:end;font-size:12px;overflow:hidden}.result-cap{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.tournament-head{align-self:flex-start;align-items:center;gap:12px;display:flex}.tournament-tabs{border:1px solid var(--border);border-radius:10px;display:flex;overflow:hidden}.tournament-tabs button{background:var(--panel);color:var(--muted);border:none;padding:8px 14px;font-size:14px;font-weight:600}.tournament-tabs button.is-on{background:var(--text);color:var(--bg)}.tournament-target{color:var(--muted);white-space:nowrap;font-size:12px}.tournament-panel{min-width:0}.recorded-note{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.recorded-field{flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:10px 0 0;font-size:13px;display:flex}.recorded-who:not(:last-child):after{content:"·";color:var(--muted);margin-left:8px}.bracket{--box-w:176px;--conn:28px;--kid-gap:10px;--line:var(--border);--tie-row:22px;--tie-gap:2px;flex-direction:column;gap:8px;min-width:0;display:flex}.bracket-route{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.bracket-route-who{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.bracket-route button{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:8px;flex:none;padding:4px 10px;font-size:12px;font-weight:600}.bracket.has-route .tie:not(.is-route){opacity:.3}.bracket-heads{gap:var(--conn);margin-bottom:8px;display:flex}.bracket-head{flex:0 0 var(--box-w);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.bracket-paging{justify-content:space-between;align-items:center;gap:10px;display:none}.bracket-arrows{flex:none;gap:6px;display:flex}.bracket-at{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700;overflow:hidden}.bracket-paging button{border:1px solid var(--border);background:var(--panel);width:36px;height:32px;color:var(--text);border-radius:8px;font-size:16px;line-height:1}.bracket-paging button:disabled{color:var(--border)}.bracket-scroll{flex-direction:column;align-items:flex-start;padding-bottom:4px;display:flex;overflow:auto hidden}.node{align-items:center;display:flex}.node-kids{gap:var(--kid-gap);margin-right:var(--conn);flex-direction:column;display:flex}.node-kid{position:relative}.node-kid:before{content:"";width:calc(var(--conn) / 2);border-top:2px solid var(--line);position:absolute;top:50%;left:100%}.node-kid:first-child:after,.node-kid:last-child:after{content:"";left:calc(100% + var(--conn) / 2 - 2px);border-left:2px solid var(--line);position:absolute}.node-kid:first-child:after{height:calc(50% + var(--kid-gap) / 2);top:50%}.node-kid:last-child:after{height:calc(50% + var(--kid-gap) / 2);bottom:50%}.node.has-kids>.tie:before{content:"";width:calc(var(--conn) / 2);border-top:2px solid var(--line);position:absolute;top:50%;right:100%}.bracket .tie{flex:0 0 var(--box-w);width:var(--box-w);scroll-snap-align:start;position:relative}.tie.is-seat{border-style:dashed}.tie{background:var(--panel);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.tie.is-playable{border-color:var(--go)}.tie-sides{gap:var(--tie-gap);min-width:0;min-height:calc(var(--tie-row) * 2 + var(--tie-gap));flex-direction:column;flex:auto;display:flex}.tie-side{font-size:15px;font-weight:600;line-height:var(--tie-row);justify-content:space-between;align-items:baseline;gap:10px;display:flex}.tie-side.is-waiting{color:var(--muted);font-size:13px;font-style:italic;font-weight:400}.tie-side.is-winner{color:var(--text)}.tie-side.is-loser{color:var(--muted);font-weight:400}.tie-play{color:var(--go);font-size:15px;line-height:1;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.tie.is-playable .tie-sides{padding-right:20px}button.tie{text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex}.champion-who{font-size:15px;font-weight:700}.draw-cancel,.tournament-award,.tournament-drop{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600}.tournament-drop{align-self:center}.draw-cancel{align-self:flex-end}.tournament-new{border:1px solid var(--border);background:var(--panel);color:var(--text);white-space:nowrap;border-radius:10px;flex:none;margin-left:auto;padding:8px 14px;font-size:14px;font-weight:600}.tournament-drop{border-color:var(--warn);color:var(--warn);align-self:flex-start;padding:6px 12px;font-size:13px}.tournament-actions{align-items:flex-start;gap:8px;display:flex}.tournament-award{padding:6px 12px;font-size:13px}.award-list{flex-direction:column;gap:18px;max-height:55vh;margin:0 0 4px;padding:0;list-style:none;display:flex;overflow-y:auto}.award-list>li{flex-direction:column;gap:12px;display:flex}.award-tie{flex-direction:column;gap:4px;display:flex}.award-round{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:11px;font-weight:700}.award-side{border:1px solid var(--border);background:var(--panel);color:var(--text);text-align:left;border-radius:10px;padding:10px 12px;font-size:15px;font-weight:600}.award-failed{color:var(--warn);margin:0;font-size:13px}.roster{flex-direction:column;gap:8px;display:flex}.roster-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.roster h3,.draw-next h3{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.roster-all{color:var(--text);font:inherit;white-space:nowrap;background:0 0;border:0;padding:4px 0;font-size:13px;font-weight:600;text-decoration:underline}.roster-all:disabled{color:var(--muted);opacity:.5;text-decoration:none}.roster-chips{flex-wrap:wrap;gap:8px;display:flex}.roster-chip{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:600}.roster-chip.is-on{background:var(--text);border-color:var(--text);color:var(--bg)}.draw{flex-direction:column;gap:14px;display:flex}.draw-name,.draw-target{color:var(--muted);align-items:center;gap:10px;font-size:14px;display:flex}.draw-name{flex-direction:column;align-items:stretch;gap:6px}.draw-name input,.draw-target input,.entrant-name{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font:600 17px system-ui,sans-serif}.draw-target input{text-align:center;width:72px}.draw-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.entrants ol{flex-direction:column;gap:8px;margin:0 0 10px;padding:0;list-style:none;display:flex}.entrants li{align-items:center;gap:8px;display:flex}.entrant-seed{color:var(--muted);text-align:right;flex:0 0 22px;font-size:13px}.entrant-name{flex:auto;min-width:0}.entrants li.is-faulted .entrant-name,.draw-name input[aria-invalid]{border-color:var(--warn)}.entrant-drop{border:1px solid var(--border);width:32px;height:32px;color:var(--muted);background:0 0;border-radius:8px;flex:none;font-size:16px;line-height:1}.entrant-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.entrant-add{border:1px dashed var(--border);color:var(--muted);background:0 0;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600}.entrant-shuffle{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600}.entrant-shuffle:disabled{color:var(--muted);opacity:.5}.draw-hint{color:var(--warn);margin:0;font-size:12px}.draw-note{color:var(--muted);margin:0;font-size:12px}.draw-go{background:var(--go);color:var(--on-accent);border:none;border-radius:12px;padding:12px 18px;font-size:16px;font-weight:700}.draw-go:disabled{background:var(--panel);color:var(--muted)}.ceremony{flex-direction:column;align-items:stretch;gap:12px;display:flex}.ceremony h2{text-align:center;margin:0;font-size:18px}.ceremony-count{color:var(--muted);letter-spacing:.08em;text-align:center;text-transform:uppercase;margin:0;font-size:13px}.ceremony-card{border:1px solid var(--border);background:var(--panel);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:128px;padding:16px 12px;display:flex}.ceremony-round{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:12px}.ceremony-name{overflow-wrap:anywhere;margin:0;font-size:28px;font-weight:800;line-height:1.1}.ceremony-versus{overflow-wrap:anywhere;color:var(--muted);margin:0;font-size:15px}.ceremony-card.is-pulling .ceremony-name{animation:1.1s ease-in-out ceremony-pulse}@keyframes ceremony-pulse{0%{opacity:.35}50%{opacity:1}to{opacity:.35}}.ceremony-actions{justify-content:center;align-items:center;gap:10px;display:flex}.ceremony-pull{background:var(--go);max-width:320px;color:var(--on-accent);border:none;border-radius:12px;flex:auto;padding:16px 18px;font-size:18px;font-weight:700}.ceremony-pull:disabled{background:var(--panel);color:var(--muted)}.ceremony-skip{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:10px;flex:none;padding:10px 16px;font-size:14px;font-weight:600}.ceremony-sheet{grid-template-columns:auto minmax(0,1fr);gap:2px 0;margin:0;padding:0;list-style:none;display:grid}.ceremony-sheet li{display:contents}.ceremony-sheet-round,.ceremony-sheet-tie{background:var(--panel);padding:7px 0}.ceremony-sheet-round{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:8px 0 0 8px;align-items:center;padding-left:10px;padding-right:10px;font-size:11px;display:flex}.ceremony-sheet-tie{overflow-wrap:anywhere;color:var(--muted);border-radius:0 8px 8px 0;padding-left:10px;padding-right:10px;font-size:13px}.ceremony-sheet-tie b{color:var(--text)}.tie-who{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tie-points{font-variant-numeric:tabular-nums;flex:none}.tournament-stats{flex-direction:column;gap:16px;min-width:0;display:flex}.tournament-section{min-width:0}.tournament-section h3{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.route-sub{color:var(--muted);letter-spacing:0;text-transform:none;font-weight:400}.tournament-note,.tournament-none{color:var(--muted);margin:8px 0 0;font-size:12px}.tournament-none{border:1px solid var(--border);text-align:center;border-radius:12px;margin:0;padding:16px;font-size:14px}.stats-table td.entrant-reached{color:var(--muted)}.tournament-stats .stat-chips{grid-template-columns:repeat(auto-fit,minmax(92px,160px));justify-content:start}.route{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.route li{align-items:baseline;gap:10px;font-size:14px;display:flex}.route li.is-waiting{color:var(--muted);font-style:italic}.route-round{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;flex:0 0 104px;font-size:12px;font-weight:700}.route-what{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tie-extremes{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tie-extremes li{flex-direction:column;gap:2px;display:flex}.extreme-what{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.extreme-round{color:var(--muted);font-weight:400}.tie-log{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tie-log li{flex-direction:column;gap:2px;min-width:0;display:flex}.tie-log-who{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.tie-log-when{color:var(--muted);font-size:12px}.series-stats{flex-direction:column;gap:16px;min-width:0;display:flex}.honours{grid-template-columns:auto minmax(0,1fr);gap:8px 12px;margin:0;padding:0;list-style:none;display:grid}.honours li{display:contents}.honours-edition{white-space:nowrap;font-size:13px;font-weight:700}.honours-what{overflow-wrap:anywhere;min-width:0;font-size:13px}.honours-what.is-waiting{color:var(--muted);font-style:italic}.honours-when{color:var(--muted);font-style:normal;font-weight:400}.series-stats .stats-table tbody th{padding:10px 12px}.series-stats .stat-chips{grid-template-columns:repeat(auto-fit,minmax(92px,160px));justify-content:start}.draw-next{flex-direction:column;gap:8px;display:flex}@media (width<=640px){.bracket{--box-w:calc(100vw - 60px)}.bracket-heads{display:none}.bracket-paging{display:flex}.bracket-scroll{scroll-snap-type:x mandatory}}@media (prefers-reduced-motion:reduce){.ceremony-card.is-pulling .ceremony-name{animation:none}}.app{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;padding:16px 16px 48px;display:flex}.main{gap:inherit;flex-direction:column;min-width:0;max-width:408px;margin-inline:auto;display:flex}.footer{padding:28px 0 calc(24px + env(safe-area-inset-bottom,0px));text-align:center;color:var(--muted);font-size:13px}.footer-heart{color:var(--warn)}.save-warning{color:var(--caution);font-weight:700}.save-warning:not(:empty){padding-bottom:8px;display:block}.setup{gap:20px;padding-top:32px}.logo-word{--chalk:light-dark(var(--team-accent),color-mix(in srgb, var(--team-accent) 72%, white))}.logo-word rect{stroke:var(--chalk)}.logo-word text{fill:var(--chalk)}.setup-logo{width:100%;max-width:320px;margin:0 auto;display:block}.setup-top{justify-content:center;align-items:stretch;gap:8px;display:flex}.mode-toggle{border:1px solid var(--border);border-radius:10px;gap:0;display:flex;overflow:hidden}.start-game{background:var(--go);min-width:0;color:var(--on-accent);white-space:nowrap;border:none;border-radius:10px;flex:0 auto;padding:8px 16px;font-size:15px;font-weight:700}.start-game:disabled{background:var(--panel);color:var(--muted)}.mode-toggle button{background:var(--panel);color:var(--muted);border:none;padding:8px 10px;font-size:14px;font-weight:600}.mode-toggle button.is-on{background:var(--text);color:var(--bg)}.mode-toggle button.is-on:disabled{background:var(--muted);color:var(--bg)}.casual-toggle{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:7px 12px;font-size:13px;font-weight:600}.casual-toggle.is-on{background:var(--text);border-color:var(--text);color:var(--bg)}.casual-hint{color:var(--muted);text-align:center;margin:0;font-size:12px}.lineup-hint{color:var(--warn);text-align:center;margin:0;font-size:12px}.teams-fields{flex-direction:column;gap:14px;display:flex}.team-field{background:var(--panel);border:1px solid var(--border);border-radius:14px;align-items:center;gap:12px;padding:14px;display:flex}.field-rows{flex:auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;display:grid}.field-row{display:contents}.field-row .first-bag:before{content:"";position:absolute;inset:-13px -10px}.field-row .first-bag{position:relative}.team-name-input{text-align:center;border:none;border-bottom:1px solid var(--border);background:0 0;flex:auto;width:100%;min-width:0;padding:4px;font:700 18px system-ui,sans-serif}.team-name-static{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:4px;font:700 18px system-ui,sans-serif;overflow:hidden}.end-chip{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600;position:relative}.end-chip.at-start{color:var(--text);border-color:var(--muted)}.team-name-input:focus{border-bottom-color:var(--text);outline:none}.team-name-input[aria-invalid=true]{border-bottom-color:var(--warn)}.toss-row{justify-content:center;align-items:center;gap:10px;display:flex}.toss{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:7px 12px;font-size:13px;font-weight:600}.toss-result{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;transition:opacity .15s;overflow:hidden}.toss-result.is-tossing{opacity:0}.target-fixed{text-align:center;color:var(--muted);margin:0;font-size:15px}.target-field{color:var(--muted);justify-content:center;align-items:center;gap:10px;font-size:15px;display:flex}.target-field input{text-align:center;background:var(--panel);border:1px solid var(--border);width:72px;color:var(--text);border-radius:8px;padding:8px;font:700 18px system-ui,sans-serif}.scoreboard-settings{background:var(--panel);border:1px solid var(--border);width:100%;color:var(--muted);border-radius:10px;padding:10px 14px;font-size:14px}.scoreboard-settings summary{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:10px;display:flex}.link-status{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px}.link-status.is-connected{color:var(--go)}.link-status.is-error,.link-status.is-offline{color:var(--warn)}.sb-toggle{color:var(--text);align-items:center;gap:8px;margin-top:12px;display:flex}.sb-field{letter-spacing:.03em;text-transform:uppercase;flex-direction:column;gap:4px;margin-top:10px;font-size:12px;display:flex}.sb-field input{background:var(--bg);border:1px solid var(--border);color:var(--text);text-transform:none;letter-spacing:normal;border-radius:8px;min-width:0;padding:8px 10px;font:400 15px system-ui,sans-serif}.sb-inline{gap:8px;display:flex}.sb-inline input{flex:1}.sb-inline button,.sb-actions button,.sb-actions a{background:var(--bg);border:1px solid var(--border);color:var(--text);text-align:center;border-radius:8px;padding:8px 12px;font-size:14px;text-decoration:none}.sb-actions button:disabled{opacity:.5}.sb-pair{gap:8px;display:flex}.sb-pair .sb-field{flex:1;min-width:0}.sb-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.sb-layout{border:1px solid var(--border);border-radius:10px;margin:14px 0 0;padding:8px 12px 2px}.sb-layout legend{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);padding:0 4px;font-size:12px}.sb-layout label{color:var(--text);align-items:center;gap:8px;margin:4px 0;display:flex}.sb-layout code{background:var(--bg)}.sb-error{color:var(--warn);margin:10px 0 0;font-size:13px}.sb-hint{margin:10px 0 2px;font-size:12px;line-height:1.45}.sb-link-dialog{background:var(--panel);border:1px solid var(--border);width:min(92vw,440px);color:var(--text);border-radius:12px;padding:16px}.sb-link-dialog::backdrop{background:#0009}.sb-link-dialog p{color:var(--muted);margin:0 0 10px;font-size:14px;line-height:1.45}.sb-qr{width:min(70vw,45vh,260px);margin:0 auto 12px}.sb-qr svg{border-radius:8px;width:100%;height:auto;display:block}.sb-link-dialog input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px}.sb-link-dialog button{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;margin-top:12px;padding:8px 12px;font-size:14px}.scoreboard{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.team-score{border-radius:12px;flex-direction:column;align-items:center;min-width:0;padding:8px;transition:background .2s;display:flex}.team-score.is-winner{background:color-mix(in srgb, var(--lift) 6%, transparent)}.names{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:100%;display:flex}.name-row{align-items:center;gap:5px;min-width:0;max-width:100%;display:flex}.first-bag{border:1.5px solid var(--muted);opacity:.5;background:0 0;border-radius:3px;flex:none;width:13px;height:13px;padding:0;transition:opacity .15s}.first-bag.at-throwing{border-color:var(--team-accent);opacity:.8}.first-bag.is-first{background:var(--team-accent);border-color:var(--team-accent);opacity:1;box-shadow:0 1px 3px #0006}.first-bag-spacer{flex:none;width:13px}.name-row.benched{opacity:.4}.team-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:2px 4px;font:600 15px system-ui,sans-serif;overflow:hidden}.swatches{flex:none;grid-template-columns:repeat(2,20px);gap:6px;display:grid}.swatch{background:var(--team-accent);border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.swatch.is-selected{border-color:var(--text);box-shadow:0 0 0 2px var(--bg) inset}.swatch:disabled{opacity:.25}.score{font-variant-numeric:tabular-nums;font:800 56px/1 system-ui,sans-serif}.center-readout{flex-direction:column;align-items:center;gap:2px;display:flex}.target{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.projection{flex-direction:column;align-items:center;gap:1px;display:flex}.projection.is-idle{visibility:hidden}.projection-cap{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:10px}.projection-score{color:var(--muted);font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;font:700 17px/1.1 system-ui,sans-serif;display:flex}.casual-note{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:12px}.winner-banner{text-align:center;color:var(--on-accent);border-radius:12px;padding:12px;font-size:20px;font-weight:700}.scoring{touch-action:manipulation;flex-direction:column;gap:14px;display:flex}.team-lanes{background:var(--panel);border:1px solid var(--team-accent);border-radius:14px;padding:10px 12px 14px;position:relative}.lanes-header{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.lanes-team{font-size:16px;font-weight:700}.lanes-raw{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.lanes-grid{grid-template-columns:auto repeat(4,minmax(0,72px));justify-content:start;gap:8px;display:grid}.tier-labels{text-align:right;flex-direction:column;justify-content:space-between;padding:4px 0;display:flex}.tier-labels span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;justify-content:flex-end;align-items:center;height:33.3333%;font-size:11px;display:flex}.lane{background:linear-gradient(light-dark(#00000024,#00000047) 0 33.33%,light-dark(#00000005,#ffffff0a) 33.33% 66.66%,light-dark(#00000017,#0000002e) 66.66% 100%);border-radius:10px;height:168px;position:relative;overflow:visible}.tier-zone{appearance:none;border:none;border-bottom:1px dashed color-mix(in srgb, var(--lift) 8%, transparent);background:0 0;width:100%;height:33.3333%;margin:0;display:block}.tier-zone:last-of-type{border-bottom:none}.tier-zone:active{background:color-mix(in srgb, var(--lift) 8%, transparent)}.tier-zone:focus-visible{outline:2px solid var(--text);outline-offset:-3px;border-radius:8px}.bag-token{aspect-ratio:1;background:var(--team-accent);pointer-events:none;transform-origin:50%;border-radius:18%;height:calc(33.3333% - 10px);margin:0 auto;transition:top .28s cubic-bezier(.2,.8,.3,1);position:absolute;left:0;right:0;box-shadow:0 2px 6px #0006}.bag-token.unthrown{filter:grayscale();opacity:.35;box-shadow:none;outline:1px dashed color-mix(in srgb, var(--lift) 40%, transparent);outline-offset:-3px}.bag-token.vibrating{animation:token-vibrate var(--vdur,.18s) linear infinite}.bag-token.in-hole:after{content:"";border-radius:inherit;border:2px solid #fff;animation:.6s ease-out hole-ripple;position:absolute;inset:0}@keyframes token-vibrate{0%,to{transform:translate(0)}20%{transform:translate(calc(var(--amp) * -1), calc(var(--amp) * .6))}40%{transform:translate(var(--amp), calc(var(--amp) * -.4))}60%{transform:translate(calc(var(--amp) * -.5), calc(var(--amp) * -.7))}80%{transform:translate(calc(var(--amp) * .7), var(--amp))}}@keyframes hole-ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.sparkles{pointer-events:none;z-index:2;width:0;height:0;position:absolute;top:16.66%;left:50%}.spark{background:var(--team-accent);opacity:0;border-radius:50%;width:7px;height:7px;margin:-3.5px;animation:.62s ease-out forwards spark;position:absolute}.spark.is-pale,.big-spark.is-pale{background:var(--text)}@keyframes spark{0%{opacity:1;transform:translate(0)scale(.3)}60%{opacity:1}to{transform:translate(var(--tx), var(--ty)) scale(1.1);opacity:0}}.four-bagger{z-index:4;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.four-text{letter-spacing:3px;color:var(--text);text-shadow:0 2px 10px #000000b3;font-family:Bebas Neue,sans-serif;font-size:44px;animation:1.3s ease-out forwards four-text}.big-sparkles{width:0;height:0;position:absolute;top:50%;left:50%}.big-spark{background:var(--team-accent);opacity:0;border-radius:50%;width:9px;height:9px;margin:-4.5px;animation:.9s ease-out forwards spark;position:absolute}@keyframes four-text{0%{opacity:0;transform:scale(.3)rotate(-6deg)}20%{opacity:1;transform:scale(1.15)rotate(-2deg)}70%{opacity:1;transform:scale(1)rotate(-2deg)}to{opacity:0;transform:scale(1.05)rotate(-2deg)}}.callout{z-index:10;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.callout-text{letter-spacing:4px;text-align:center;text-shadow:0 3px 16px #000c;font-family:Bebas Neue,sans-serif;font-size:72px;line-height:1;animation:1.6s ease-out forwards callout}.callout-four{letter-spacing:3px;font-size:30px;display:block}@keyframes callout{0%{opacity:0;transform:scale(.4)rotate(-5deg)}15%{opacity:1;transform:scale(1.2)rotate(-2deg)}75%{opacity:1;transform:scale(1.05)rotate(-2deg)}to{opacity:0;transform:scale(1.1)rotate(-2deg)}}@keyframes callout-fade{0%,to{opacity:0}15%,75%{opacity:1}}.scoreboard,.winner-banner{z-index:2;position:relative}.setup-links{justify-content:center;gap:10px;display:flex}.tie-banner{color:var(--muted);text-align:center;margin:0;font-size:12px}.tie-leave{color:var(--text);font:inherit;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}@media (prefers-reduced-motion:reduce){.spark,.big-spark{display:none}.bag-token.vibrating{animation:none}.callout-text{animation:1.6s ease-out forwards callout-fade}.toss-result{transition:none}}.controls{display:flex}.end-round{background:var(--go);color:var(--on-accent);border:none;border-radius:12px;flex:1;padding:16px 20px;font-size:17px;font-weight:700}.secondary-controls{flex-wrap:wrap;gap:8px;display:flex}.secondary-controls button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;flex:calc(50% - 4px);padding:10px;font-size:14px}.secondary-controls .abandon-game{border-color:var(--warn);color:var(--warn)}.modal{border:1px solid var(--border);background:var(--panel);width:calc(100% - 48px);max-width:320px;color:var(--text);border-radius:14px;margin:auto;padding:20px}.modal::backdrop{background:#0009}.modal-title{text-align:center;margin:0 0 6px;font-size:17px;font-weight:700}.modal-body{text-align:center;color:var(--muted);margin:0;font-size:14px}.confirm-actions{gap:8px;margin-top:18px;display:flex}.confirm-actions button{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:10px;flex:1;padding:10px;font-size:14px;font-weight:600}.confirm-actions .confirm-danger{background:var(--warn);border-color:var(--warn);color:var(--on-accent)}.confirm-actions .confirm-primary{background:var(--go);border-color:var(--go);color:var(--on-accent)}.setup-stats{border:1px solid var(--border);color:var(--muted);background:0 0;border-radius:10px;align-self:center;padding:8px 20px;font-size:14px}@media (height<=740px){.app{gap:10px;padding:12px 16px 24px}.scoring{gap:10px}.score{font-size:44px}.team-lanes{padding:8px 12px 10px}.lanes-header{margin-bottom:6px}.lane{height:132px}.end-round{padding:12px 20px}.footer{padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px))}.setup{gap:14px;padding-top:16px}.setup-logo{max-width:280px}}@media (height<=640px){.score{font-size:38px}.lane{height:108px}.team-lanes{padding:6px 12px 8px}.setup-logo{max-width:240px}}@media (orientation:landscape) and (height<=450px){.app{gap:8px;max-width:none;padding:8px 14px 12px}.score{font-size:32px}.main{max-width:none}.scoring{flex-direction:row;gap:8px}.team-lanes{flex:1;min-width:0;padding:6px 8px 8px}.lanes-grid{gap:5px}.lane{height:84px}.lanes-header{margin-bottom:4px}.controls{justify-content:center}.secondary-controls button{flex:auto}.end-round{border-radius:8px;flex:none;padding:9px 56px;font-size:15px}.footer{padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px))}}.side-rail{display:contents}.history-panel:empty{display:none}.history-empty{background:var(--panel);border:1px solid var(--border);text-align:center;color:var(--muted);border-radius:12px;margin:0;padding:16px;font-size:14px}.history{background:var(--panel);font-variant-numeric:tabular-nums;border-radius:12px;padding:0 12px 12px;font-size:14px}.history-table{border-collapse:collapse;text-align:left;width:100%}.history-table th,.history-table td{font-weight:inherit;padding:4px 8px 4px 0}.history-table thead th{background:var(--panel);padding-top:12px;padding-bottom:8px;font-weight:700;position:sticky;top:0}.history-round{white-space:nowrap;width:1%;color:var(--muted);font-weight:700}@media (width>=900px) and (orientation:landscape) and (height>=451px){.app.play-screen{grid-template-columns:minmax(0,408px) minmax(260px,340px);justify-content:center;align-items:start;gap:16px 24px;max-width:1040px;display:grid}.app.play-screen>:not(.side-rail):not(.footer){grid-column:1}.app.play-screen>.footer{grid-column:1/-1}.side-rail{flex-direction:column;grid-column:2;align-self:start;gap:16px;max-height:calc(100vh - 32px);display:flex;position:sticky;top:16px}.side-rail>.history-panel{flex-direction:column;min-height:0;display:flex}.side-rail>.history-panel .history{flex:1;min-height:0;overflow-y:auto}}.display{background:#05080b;justify-content:center;align-items:center;gap:clamp(8px,3vw,48px);min-height:100svh;padding:2vmin;display:flex;position:relative;overflow:hidden}.display-side{flex-direction:column;align-items:center;gap:1.5vmin;display:flex}.display-team{letter-spacing:.06em;text-transform:uppercase;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:40vw;margin:0;font-family:Bebas Neue,system-ui,sans-serif;font-size:clamp(20px,6vmin,72px);overflow:hidden}.thrower{vertical-align:baseline;border:.08em solid;border-radius:.1em;width:.4em;height:.4em;margin-right:.14em;display:inline-block}.thrower.is-first{background:currentColor}.thrower-gap{width:.4em;margin-right:.14em;display:inline-block}.seg-number{gap:1.2vmin;display:flex}.seg-digit{width:auto;height:min(62vh,35vw);display:block}.seg{opacity:.08}.seg.on{opacity:1;filter:drop-shadow(0 0 .5vmin)}.seg-fill{opacity:.26}.display-middle{color:#8b9aa8;letter-spacing:.08em;flex-direction:column;align-items:center;gap:2vmin;font-family:Bebas Neue,system-ui,sans-serif;font-size:clamp(14px,3.4vmin,40px);display:flex}.display-round,.display-target{text-align:center;min-width:2.2em;min-height:1lh}.display-dash{background:#485765;border-radius:999px;width:clamp(18px,4vmin,52px);height:clamp(4px,1.2vmin,12px)}.display-banner{text-align:center;color:var(--on-accent);letter-spacing:.08em;text-transform:uppercase;z-index:2;padding:1.4vmin;font-family:Bebas Neue,system-ui,sans-serif;font-size:clamp(18px,4vmin,44px);animation:.6s cubic-bezier(.2,.9,.3,1.2) both banner-in;position:absolute;bottom:0;left:0;right:0}@keyframes banner-in{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.display .confetti{--piece:2vmin;--fall:1.6}.display-side,.display-middle{z-index:2;position:relative}.display-side.is-winner .seg-number{animation:.9s ease-out both win-pulse}@keyframes win-pulse{0%{transform:scale(1)}30%{transform:scale(1.07)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.display-banner,.display-side.is-winner .seg-number{animation:none}}.display-status{color:#6b7885;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:clamp(11px,1.8vmin,20px);position:absolute;top:1.5vmin;right:2vmin}:fullscreen .display-status{top:calc(max(env(safe-area-inset-top,0px), 24px) + 1.5vmin)}.display.is-stale>:not(.display-status){opacity:.7}.display.is-stale .seg.on{filter:none}.display-message{text-align:center;color:var(--muted);flex-direction:column;gap:12px;padding:24px;line-height:1.5}.display-message p{max-width:34em;margin:0}.display-title{letter-spacing:.08em;color:var(--text);font-family:Bebas Neue,system-ui,sans-serif;font-size:34px}.display-form{align-items:center}.form-table{--form-size:min(7.8vw, 10.2vh);align-items:baseline;gap:calc(.3 * var(--form-size)) calc(.5 * var(--form-size));width:100%;max-width:min(92vw, calc(13.5 * var(--form-size)));font-size:var(--form-size);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) max-content max-content max-content;display:grid}.form-head,.form-row{grid-template-columns:subgrid;grid-column:1/-1;align-items:baseline;display:grid}.form-row{padding-bottom:.14em}.form-table:not(.is-card) .form-row:not(:last-child){border-bottom:.035em solid #2c353f}.form-title{letter-spacing:.1em;text-transform:uppercase;color:#6b7885;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;margin:0;font-family:Bebas Neue,system-ui,sans-serif;font-size:.42em;overflow:hidden}.form-tie{color:#cfd8e3}.form-side{text-align:center;grid-column:1/-1}.form-table.is-card .form-title{text-align:center}.form-head>span{letter-spacing:.08em;text-transform:uppercase;color:#6b7885;text-align:right;white-space:nowrap;font-size:.28em}.form-name{letter-spacing:.04em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-family:Bebas Neue,system-ui,sans-serif;overflow:hidden}.form-record,.form-ppr{color:#cfd8e3;text-align:right;white-space:nowrap;font-family:Bebas Neue,system-ui,sans-serif}.form-pips{justify-content:flex-end;align-items:center;gap:.18em;min-width:2.72em;display:flex}.form-spoken{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.form-pip{background:#232a31;border-radius:50%;width:.4em;height:.4em}@media (orientation:portrait){.display{flex-direction:column}.seg-digit{height:min(38vh,45vw)}.display-team{max-width:80vw}.display-middle{flex-direction:row;gap:3vmin}}.display-draw{justify-content:center;align-items:center}.draw-card{--draw-size:min(9vw, 13vh);align-items:center;gap:calc(.25 * var(--draw-size));text-align:center;flex-direction:column;max-width:92vw;display:flex}.draw-card p{margin:0}.draw-card-round,.draw-card-title{color:var(--muted);font-size:calc(.5 * var(--draw-size));letter-spacing:.12em;text-transform:uppercase;font-weight:700}.draw-card-name{overflow-wrap:anywhere;font-size:var(--draw-size);font-weight:800;line-height:1.05}.draw-card-meets{overflow-wrap:anywhere;color:var(--muted);font-size:calc(.42 * var(--draw-size))}.draw-card-count{margin-top:calc(.25 * var(--draw-size));color:var(--muted);font-size:calc(.3 * var(--draw-size));letter-spacing:.08em;text-transform:uppercase}.champion-card{z-index:6;text-align:center;--hold:4.6s;animation:champion-in .7s cubic-bezier(.2, .9, .3, 1.15) both, champion-out .9s ease-in var(--hold) forwards;background:radial-gradient(120% 90% at 50% 46%,#17130a 0%,#07090b 62%);flex-direction:column;justify-content:center;align-items:center;gap:1.8vmin;font-family:Bebas Neue,system-ui,sans-serif;display:flex;position:fixed;inset:0}@keyframes champion-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@keyframes champion-out{to{opacity:0;visibility:hidden}}.champion-card p{margin:0}.champion-card>p,.champion-rule{z-index:1;position:relative}.champion-cup-name{color:var(--champion);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;font-size:8vmin;line-height:1}.champion-rule{background:linear-gradient(90deg, transparent, var(--champion), transparent);width:62vmin;height:2px}.champion-name{color:var(--champion);font-size:min(34vmin, 88vw / var(--chars) * 1.9);white-space:nowrap;text-transform:uppercase;text-shadow:0 0 7vmin #ff8c0055;line-height:.94}.champion-title{color:var(--text);letter-spacing:.44em;text-indent:.44em;text-transform:uppercase;font-size:11vmin;line-height:1}.champion-round{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:1.6vmin;font-size:4.6vmin;line-height:1}.champion-cup{opacity:.82;font-weight:600}@media (prefers-reduced-motion:reduce){.champion-card{animation:champion-out 1ms linear var(--hold) forwards}}.panel{background:#000;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100svh;padding:16px;display:flex}.panel-frame{justify-content:center;width:100%;display:flex}.panel-canvas{border-radius:3px;outline:6px solid #101418}.panel-caption{letter-spacing:.04em;color:var(--muted);text-align:center;margin:0;font-size:12px}.panel-message{color:var(--text);text-align:center;gap:8px}.panel-title{letter-spacing:.06em;margin:0;font-family:Bebas Neue,system-ui,sans-serif;font-size:28px}.panel-message p{max-width:32ch;margin:0;line-height:1.5}.panel-message code{background:var(--panel)}
