@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:500;src:url(./oswald-latin-500-normal-B-eyT0Dw.woff2)format("woff2"),url(./oswald-latin-500-normal-DM85Di4w.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:600;src:url(./oswald-latin-600-normal-plFmSr5g.woff2)format("woff2"),url(./oswald-latin-600-normal-DRToI_2E.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:700;src:url(./oswald-latin-700-normal-vy6hmKSr.woff2)format("woff2"),url(./oswald-latin-700-normal-UmC9Ev9x.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(./barlow-latin-400-normal-fsAxiSwU.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(./barlow-latin-500-normal-C1h8hMer.woff)format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(./barlow-latin-600-normal-CNwfPWQD.woff)format("woff")}:root{--bg:#0f1511;--bg-2:#121a15;--panel:#161e18;--panel-2:#1c241f;--section:#141b16;--line:#ffffff14;--text:#f3e9d2;--text-2:#e2d6b8;--muted:#a9a48f;--faint:#8d8770;--brass:#d4a64a;--brass-hi:#f0c66a;--brass-ink:#1b1408;--brass-line:#d4a64a26;--brass-line-2:#d4a64a59;--accent:#2fa36b;--accent-2:#22925a;--warn:#e0b42a;--bad:#d8452e;--gold:#f2c230;--radius:12px;--heading:Oswald, "Arial Narrow", system-ui, sans-serif;--felt:radial-gradient(ellipse at 50% 40%, #2a8150 0, #1d6a3c 55%, #124a29 100%);--panel-bg:radial-gradient(ellipse at 50% 0%, #1f3d2a 0, #0f1511 60%);--wood-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='420'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0035 0.11' numOctaves='4' seed='11'/%3E%3CfeColorMatrix values='0 0 0 0 0.08  0 0 0 0 0.04  0 0 0 0 0.01  -2.4 0 0 0 1.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");--wood:var(--wood-grain) 0 0 / 700px 420px, linear-gradient(172deg, #8a5a2e, #5a3618 45%, #3a2210);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-family:Barlow,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#d4a64a73 #00000040}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#00000040}::-webkit-scrollbar-thumb{background:#d4a64a73;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#d4a64ab3}::-webkit-scrollbar-corner{background:0 0}html,body,#root{background:var(--bg);height:100%;margin:0}body{overscroll-behavior:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--brass-line-2);background:var(--panel);color:var(--text-2);touch-action:manipulation;border-radius:10px;padding:8px 12px;transition:background .15s,transform 80ms,box-shadow 80ms,border-color .15s}button:hover:not(:disabled){background:#1d2720}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,svg:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brass);outline-offset:2px}button.primary{color:#fff;font-family:var(--heading);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 2px #00000040;background:linear-gradient(#46c886,#22925a);border:none;border-radius:14px;margin-bottom:5px;font-weight:700;box-shadow:0 5px #135a35,0 12px 22px #00000073,inset 0 1px #ffffff59}button.primary:hover:not(:disabled){background:linear-gradient(#52d293,#27a064)}button.primary:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #135a35,inset 0 1px #ffffff59}button.gold{color:var(--brass-ink);font-family:var(--heading);letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(#f0c66a,#d4a64a);border:none;border-radius:12px;margin-bottom:4px;font-weight:700;box-shadow:0 4px #7a5a1c,0 10px 18px #0006}button.gold:hover:not(:disabled){background:linear-gradient(#f5d07c,#dcb058)}button.gold:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #7a5a1c}button.ghost{border-color:var(--brass-line-2);color:var(--text-2);background:0 0}button.ghost:hover:not(:disabled){background:#d4a64a1a}button.small{padding:5px 10px;font-size:13px}button.big{padding:12px 22px;font-size:17px}button.link{color:var(--brass);background:0 0;border:none;padding:0;font-size:12px}button.link:hover:not(:disabled){color:var(--brass-hi);background:0 0}button[aria-pressed=true]{border-color:var(--brass)}button.square{border:1px solid var(--brass-line-2);width:36px;height:36px;color:var(--text);background:0 0;border-radius:8px;flex:none;place-items:center;padding:0;display:inline-grid}button.square:hover:not(:disabled),button.square[aria-expanded=true]{border-color:var(--brass);background:#d4a64a26}button.round{border-radius:50%}.label{font-family:var(--heading);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-size:12px;font-weight:600;line-height:1.25}.ball{--c:#f3efe4;background:radial-gradient(circle at 34% 30%, #ffffffe6 0, var(--c) 38%, color-mix(in oklab, var(--c) 55%, black) 100%);border-radius:50%;flex:none;width:20px;height:20px;display:inline-block;box-shadow:0 2px 4px #00000073}.seg{background:#0006;border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.seg button{white-space:nowrap;color:#ffffffb3;background:0 0;border:none;border-radius:8px;padding:7px 14px;font-size:14px;font-weight:600}.seg button:hover:not(.on):not(:disabled){color:var(--text);background:#ffffff0f}.seg button.on,.seg button.on:hover:not(:disabled){background:var(--brass);color:var(--brass-ink)}.seg.lang button{font-family:var(--heading);padding:6px 10px;font-size:12px}kbd{color:#d9d0b8;background:#1c241f;border:1px solid #ffffff1f;border-bottom-width:2px;border-radius:5px;padding:2px 6px;font:600 11px ui-monospace,Menlo,Consolas,monospace;display:inline-block}h1,h2,h3{font-family:var(--heading);letter-spacing:.02em;font-weight:700}.muted{color:var(--muted)}.small{font-size:12px}.stage{height:100%}.setup-layer{z-index:50;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.setup-backdrop{-webkit-backdrop-filter:blur(3px)saturate(.8);background:#0508069e;position:fixed;inset:0}.setup-modal{background:var(--wood);flex-direction:column;width:min(640px,100%);min-width:0;max-height:calc(100dvh - 32px);padding:16px;animation:.25s ease-out modal-in;display:flex;position:relative;box-shadow:inset 0 2px #ffdcaa38,inset 0 -3px #00000073,0 30px 80px #0009}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}.lobby-panel{background:var(--panel-bg);flex-direction:column;flex:auto;min-height:0;display:flex;box-shadow:0 0 0 2px #2a170a,0 0 0 3px #d4a64a8c}.lobby{flex-direction:column;flex:auto;gap:14px;min-height:0;padding:22px 24px 18px;display:flex;overflow-y:auto}.lobby>*{flex:none}.lobby-head{align-items:center;gap:12px;display:flex}.lobby-head h1{white-space:nowrap;flex:1;align-items:center;gap:10px;min-width:0;margin:0;font-size:26px;display:flex}.lobby-head h1 .beta{position:static}.resume-card{box-sizing:border-box;width:100%;min-width:0;box-shadow:inset 0 0 0 1.5px var(--brass-line-2);color:var(--text);text-align:left;font:inherit;cursor:pointer;background:linear-gradient(#d4a64a29,#d4a64a12);border:0;border-radius:14px;align-items:center;gap:14px;padding:12px 14px;display:flex}.resume-card:hover,.resume-card:focus-visible{box-shadow:inset 0 0 0 1.5px var(--brass)}.resume-icon{background:var(--brass);width:38px;height:38px;color:var(--brass-ink);border-radius:50%;flex:none;place-items:center;display:grid}.resume-icon .btn-icon{width:22px;height:22px}.resume-text{flex-direction:column;flex:1 1 0;gap:2px;min-width:0;display:flex;overflow:hidden}.resume-title{font-family:var(--heading);color:var(--brass-hi);font-size:18px;font-weight:600;line-height:1.2}.resume-detail{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.vs-box{background:#00000059;border-radius:14px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;padding:14px;display:grid;box-shadow:inset 0 0 0 1px #d4a64a33}.vs-side{align-items:center;gap:12px;min-width:0;display:flex}.vs-side.right{text-align:right;justify-content:flex-end}.vs-ball{width:44px;height:44px}.vs-text{flex-direction:column;min-width:0;display:flex}.vs-name{font-family:var(--heading);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:19px;font-weight:600;line-height:1.25;overflow:hidden}.vs-side.right .vs-name{text-align:right}input.vs-name{cursor:text;background:0 0;border:none;border-bottom:1px dashed #0000;border-radius:4px;outline:none;width:100%;min-width:0;margin:0 -4px;padding:0 4px}input.vs-name::placeholder{color:var(--text)}input.vs-name:hover{border-bottom-color:#d4a64a73}input.vs-name:focus{border-bottom-color:var(--brass);background:#00000059}.vs-sub{color:var(--muted);font-size:12px;font-weight:500}.vs-mark{font-family:var(--heading);color:var(--brass);text-shadow:0 2px #5a3d10;padding:0 4px;font-size:34px;font-style:italic;font-weight:700;line-height:1}.seg.mode{display:flex}.seg.mode button{font-family:var(--heading);letter-spacing:.08em;text-transform:uppercase;flex:1}.vs-box.solo{grid-template-columns:auto minmax(0,1fr);gap:14px}.solo-balls{display:flex}.solo-balls .ball{width:34px;height:34px}.solo-balls .ball+.ball{margin-left:-8px}.lobby-sections{flex-direction:column;gap:10px;display:flex}.lobby-section{background:var(--section);border:1px solid var(--brass-line);border-radius:12px;transition:border-color .2s;overflow:hidden}.lobby-section.open{border-color:#d4a64a8c}button.lobby-section-head{text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px 10px 12px;display:flex}button.lobby-section-head:hover:not(:disabled){background:#d4a64a0d}button.lobby-section-head:active:not(:disabled){transform:none}.lobby-thumb{flex:none;place-items:center;width:46px;height:30px;display:grid}.thumb{border-radius:4px;width:46px;height:30px;display:block;overflow:hidden;box-shadow:0 2px 4px #00000080}.thumb canvas{width:100%;height:100%;display:block}.lobby-section-text{flex-direction:column;flex:1;min-width:0;display:flex}.lobby-section-text .label{font-size:11px}.lobby-value{font-family:var(--heading);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;line-height:1.3;overflow:hidden}.lobby-chevron{width:28px;height:28px;color:var(--brass);background:#d4a64a1f;border-radius:50%;flex:none;place-items:center;font-size:16px;transition:transform .2s;display:grid}.lobby-section.open .lobby-chevron{transform:rotate(180deg)}.lobby-section-body{flex-direction:column;gap:14px;padding:2px 12px 14px;display:flex}.lobby-section-body>*{flex:none}.rival-thumb,.sets-thumb{align-items:center;gap:4px;display:inline-flex}.sets-thumb{flex-wrap:wrap;justify-content:center;gap:3px;max-width:40px}.sets-thumb .ball{width:10px;height:10px}.level-meter{align-items:flex-end;gap:2px;height:18px;display:inline-flex}.level-meter i{opacity:.2;background:#4a8fd6;border-radius:1px;width:4px}.level-meter i.on{opacity:1}.lobby-row{color:var(--text-2);justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}.card-grid{gap:10px;display:grid}.card-grid.two{grid-template-columns:1fr 1fr}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}button.card{text-align:left;background:var(--panel);border:1.5px solid #ffffff14;border-radius:12px;flex-direction:column;align-items:stretch;gap:2px;padding:8px 8px 10px;transition:all .18s;display:flex;position:relative;box-shadow:0 2px #00000059}button.card:hover:not(:disabled){background:#1a231c;border-color:#d4a64a59}button.card.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass), 0 14px 28px -10px #d4a64a73;transform:translateY(-3px)}button.card:active:not(:disabled){transform:translateY(-1px)}.check-badge{z-index:1;background:var(--brass);width:21px;height:21px;color:var(--brass-ink);opacity:0;border-radius:50%;place-items:center;font-size:11.5px;font-weight:800;transition:all .2s cubic-bezier(.3,1.6,.5,1);display:grid;position:absolute;top:6px;right:6px;transform:scale(.4);box-shadow:0 1px 3px #00000080}.on>.check-badge,.on>*>.check-badge{opacity:1;transform:scale(1)}.card-name{font-family:var(--heading);color:var(--text);font-size:16px;font-weight:600;line-height:1.3}.card-name.caps{text-transform:uppercase;letter-spacing:.04em}.card-sub{color:var(--muted);font-size:12px}.card-sub.brass{color:var(--brass)}.game-card .tile-icon{margin-bottom:6px}.level-card{gap:4px;padding:10px 12px 12px}.tile-icon{aspect-ratio:240/136;border-radius:6px;display:block;position:relative;overflow:hidden;box-shadow:0 3px 8px #00000073}.tile-icon canvas{width:100%;height:100%;display:block}.tile-badge{background:var(--gold);color:#2a1a00;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:800;position:absolute;top:6px;left:6px;box-shadow:0 1px 3px #00000080}.game-extras{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.variant-pick{color:var(--text-2);align-items:center;gap:12px;font-size:14px;font-weight:500;display:flex}button.rules-for{font-size:14px}button.theme-tile{color:var(--text-2);background:0 0;border:none;flex-direction:column;align-items:stretch;gap:6px;padding:0;font-size:13px;display:flex}button.theme-tile:hover:not(:disabled){background:0 0}.theme-frame{background:var(--panel);border:1.5px solid #ffffff14;border-radius:10px;padding:4px;transition:all .18s;display:block;position:relative}button.theme-tile:hover .theme-frame{border-color:#d4a64a59}button.theme-tile.on .theme-frame{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass), 0 14px 28px -10px #d4a64a73;transform:translateY(-3px)}.theme-name{text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.temp-block{border-top:1px solid #d4a64a26;flex-direction:column;gap:12px;margin-top:18px;padding-top:18px;display:flex}.lobby-section-body>.temp-block{margin-top:4px}.temp-value{font-family:var(--heading);color:var(--text);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.temp-slider{touch-action:none;cursor:pointer;border-radius:14px;height:28px;position:relative}.temp-track{background:linear-gradient(90deg,#3d7fd6,#3fae6a 45%,#e0a32a 70%,#d8452e);border-radius:3px;height:6px;position:absolute;top:11px;left:0;right:0}.temp-thumb{width:26px;height:26px;position:absolute;top:1px;transform:translate(-50%);box-shadow:0 3px 6px #0000008c}.temp-note{color:var(--muted);margin:0;font-size:12px}.measles-label{align-items:center;gap:8px;display:inline-flex}.measles-ball{background:radial-gradient(circle at 34% 30%, #ffffffbf 0, #fff0 30%), radial-gradient(circle at 56% 52%, #c4161f 0 17%, transparent 19%), radial-gradient(ellipse 8% 17% at 13% 44%, #c4161f 0 90%, transparent 100%), radial-gradient(ellipse 18% 8% at 60% 88%, #c4161f 0 90%, transparent 100%), radial-gradient(circle at 34% 30%, #fff 0, var(--c) 38%, color-mix(in oklab, var(--c) 55%, black) 100%)}.stepper{background:#0006;border-radius:10px;align-items:center;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff0f}.stepper button{width:40px;height:40px;color:var(--brass);background:0 0;border:none;padding:0;font-size:20px;font-weight:600}.stepper output{text-align:center;min-width:64px;font-family:var(--heading);color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.sets-choice{gap:8px;display:inline-flex}.sets-choice button{background:#00000059;border:1.5px solid #ffffff14;border-radius:10px;justify-content:center;align-items:center;gap:3px;min-width:34px;height:44px;padding:0 10px;display:inline-flex}.sets-choice button .ball{--c:#5b625d;width:11px;height:11px}.sets-choice button.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}.sets-choice button.on .ball{--c:#f3efe4}.name-rows{grid-template-columns:1fr 1fr;gap:10px;display:grid}.name-field{background:#00000059;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:10px;height:52px;padding:0 12px;display:flex}.name-field:focus-within{border-color:var(--brass)}.name-field-text{flex-direction:column;flex:1;min-width:0;display:flex}.name-field-text .label{font-size:10px}.name-field input{width:100%;min-width:0;color:var(--text);background:0 0;border:none;outline:none;padding:0;font-size:16px;font-weight:500}.lobby-foot{background:#00000040;border-top:1px solid #d4a64a26;flex:none;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px 13px;display:flex}button.back-btn{height:46px;padding:0 18px;font-size:15px}button.break-btn{height:58px;padding:0 40px;font-size:26px}.with-icon{align-items:center;gap:8px;display:inline-flex}.btn-icon{flex-shrink:0}@media (width<=680px){.setup-layer{place-items:stretch stretch;padding:0}.setup-modal{background:var(--panel-bg);width:100%;height:100dvh;max-height:none;box-shadow:none;padding:0;animation-name:sheet-in}.lobby-panel{box-shadow:none;background:0 0}.lobby{padding:calc(16px + env(safe-area-inset-top)) 16px 120px}.lobby-head h1{font-size:22px}.vs-box{gap:6px;padding:12px}.vs-ball{width:36px;height:36px}.vs-side{gap:8px}.vs-name{font-size:17px}.vs-mark{font-size:26px}.lobby-row{flex-wrap:wrap}.game-extras{flex-direction:column;align-items:stretch}.variant-pick{justify-content:space-between}.game-extras button.rules-for{align-self:flex-start}.seg button{padding:10px 14px}.stepper button{width:44px;height:44px}.name-rows{grid-template-columns:1fr}.card-grid.three{gap:8px}.lobby-foot{padding:14px 16px calc(30px + env(safe-area-inset-bottom));box-shadow:none;background:linear-gradient(#0000,#0f1511 30%);border:none;margin:0;position:absolute;bottom:0;left:0;right:0}button.break-btn{flex:1;height:60px;font-size:24px}button.back-btn{height:60px}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.game,.temp-slider,.power-meter,.pad,.aim-preview,.menu-panel,.lobby-section-head,.card,.theme-tile{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.game{grid-template:"side top""side table"minmax(0,1fr)/340px minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.game>.topbar{grid-area:top}.game>.main{display:contents}.game .table-area{grid-area:table}.game .panel{grid-area:side}.topbar .game-menu,.extras-toggle{display:none}.match-info{flex:none;margin-left:auto}.topbar .match-info{display:none}.shot-extras{display:contents}.panel>.panel-header{order:0}.panel .c-aim{order:1}.panel .panel-grid{order:2}.panel .c-effect{order:3}.c-effect{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.panel .c-spot{order:4}.panel .c-power{order:5}.panel .c-shoot{order:6}.panel .c-skip{order:7}.panel .last-event{order:8}.panel .replay-bar{order:9}.panel-header{align-items:center;gap:10px;display:flex;position:relative}.brand{align-items:center;gap:8px;min-width:0;display:flex}.brand-name{white-space:nowrap;font-size:16px}.brand-title{--logo-h:1.45em;align-items:baseline;gap:.28em;line-height:1;display:inline-flex}.brand-logo{height:var(--logo-h);width:auto;top:calc(var(--logo-h) * .059);position:relative}h1 .beta{margin-left:4px;font-size:11px;position:relative;top:-3px}.panel-header .menu-toggle{display:inline-grid!important}.topbar{border-bottom:1px solid var(--brass-line);background:var(--bg);align-items:center;gap:12px;padding:8px 12px;display:flex;position:relative}.main{flex:1;min-height:0;display:flex}.table-area{flex:1;min-width:0;min-height:0;position:relative}.table-wrap{position:absolute;inset:0}.table-canvas{touch-action:none;cursor:crosshair;display:block}.panel{background:linear-gradient(#ffdcaa40, #ffdcaa40) right 17px top / 1px 100% no-repeat, repeating-linear-gradient(90deg, #0000001f 0 1px, transparent 1px 4px) right / 18px 100% no-repeat, linear-gradient(90deg, #8a5a2e, #6b4321 40%, #5a3618 70%, #3a2210) right / 18px 100% no-repeat, var(--panel-bg);flex-direction:column;flex-shrink:0;gap:14px;padding:16px 34px 16px 16px;display:flex;overflow-y:auto}.panel>*{flex:none}.panel-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.scoreboard{flex:1;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;min-width:0;display:grid}.player-card{border:1px solid var(--line);background:var(--panel);border-radius:10px;align-items:center;gap:10px;min-width:0;padding:6px 10px;transition:border-color .2s,box-shadow .2s;display:flex}.player-card.right{text-align:right;flex-direction:row-reverse}.player-card.right .player-status{justify-content:flex-end}.player-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 18px #3fb27f40}.ball-swatch{border-radius:50%;flex-shrink:0;width:22px;height:22px;display:inline-block;box-shadow:inset -3px -4px 6px #00000059,0 1px 2px #00000080}.ball-swatch.small{width:12px;height:12px}.player-info{flex:1;min-width:0}.player-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.player-status{flex-wrap:wrap;align-items:center;gap:4px;min-height:18px;display:flex}.chip{white-space:nowrap;color:#8fe0b8;background:#3fb27f2e;border-radius:999px;padding:1px 7px;font-size:11px}.chip.muted-chip{color:var(--muted);font-variant-numeric:tabular-nums;background:#ffffff0f}.chip.warn{color:var(--warn);background:#f2b1342e}.balls-left{gap:3px;display:inline-flex}.ball-dot{border-radius:50%;width:9px;height:9px;box-shadow:inset -1px -2px 2px #00000059}.ball-dot.used{opacity:.18}.announce-item{flex-direction:column;align-items:center;display:flex}.announce-item+.announce-item{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.led-window{background:linear-gradient(#050505,#0d0d0d);border:1px solid #000;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:4px 7px;display:flex;box-shadow:inset 0 2px 6px #000000e6,0 1px #ffffff0f}.player-card.right .led-window{flex-direction:row-reverse}.led-window.small{border-radius:4px;padding:3px 5px}.led{display:block;overflow:visible}.led-off{fill:#ffffff0b}.led-score{width:auto;height:36px}.led-small{width:auto;height:18px}.led-lamp{background:#1c1c1c;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;box-shadow:inset 0 1px 2px #000c}.led-sets{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.led-center{justify-content:center;gap:8px;display:flex}.led-center-item{flex-direction:column;align-items:center;gap:2px;display:flex}.led-caption{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:9px}.set-info{text-align:center;font-size:14px;font-weight:600}.set-info .muted{font-size:12px;font-weight:400}.training-bar{border:1px solid var(--line);background:var(--panel);border-radius:10px;flex:1;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:6px 12px;display:flex}.training-title{flex-direction:column;min-width:0;display:flex}.training-game{font-family:var(--heading);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.rack{gap:4px;display:flex}button.rack-ball{aspect-ratio:1;border:1px solid var(--line);background:#0000004d;border-radius:50%;flex:0 34px;place-items:center;min-width:0;padding:0;display:grid}button.rack-ball:hover:not(:disabled){border-color:var(--brass-line-2)}button.rack-ball.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}button.rack-ball.away{border-style:dashed}button.rack-ball .ball{width:70%;height:70%}button.rack-ball .ball.pallino{width:60%;height:60%}button.rack-ball.away .ball{opacity:.35}.panel .c-rack{order:1}.control{flex-direction:column;gap:8px;display:flex}.control-head{justify-content:space-between;align-items:center;gap:8px;min-height:24px;display:flex}.control-head>span:first-child:not(.label){font-family:var(--heading);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-size:12px;font-weight:600}.control-head .value,.head-value{min-width:0;font-family:var(--heading);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.control-head>span:first-child{flex:none}.head-right{align-items:center;gap:8px;display:inline-flex}.big-value{font-family:var(--heading);color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1}.control-note{color:var(--muted);margin:0;font-size:12px}.control-foot{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.row-buttons{gap:6px;display:flex}.row-buttons>button{flex:1;padding:6px 4px}.aim-chip{color:var(--brass);font-family:var(--heading);letter-spacing:.1em;text-transform:uppercase;background:#d4a64a26;border-radius:4px;padding:3px 7px;font-size:11px;font-weight:600}.aim-preview{background:var(--felt);cursor:ew-resize;touch-action:none;border-radius:12px;width:100%;height:130px;display:block;box-shadow:inset 0 0 0 1px #00000059,inset 0 6px 18px #00000059}.aim-preview.disabled{cursor:default}.aim-fraction{fill:#ffffffbf;font:600 5px Barlow,sans-serif}.aim-buttons{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.aim-buttons>button{background:var(--panel);height:44px;color:var(--text);font-family:var(--heading);border:none;border-radius:10px;padding:0;font-size:20px;box-shadow:0 0 0 1px #d4a64a40,0 3px #0006}.aim-buttons>button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 0 1px #d4a64a59,0 1px #0006}.pad{background:#0000004d;border-radius:12px;width:100%;height:140px;display:block;box-shadow:inset 0 0 0 1px #d4a64a26}.spin-svg{touch-action:none;cursor:pointer}.tilt-pad{position:relative;overflow:hidden}.elev-svg{touch-action:none;cursor:ns-resize;width:100%;height:100%;display:block}.tilt-mark{fill:#f3e9d273;font:600 7px Oswald,sans-serif}.tilt-mark.near{fill:var(--brass)}.tilt-buttons{gap:4px;display:flex;position:absolute;top:6px;right:6px}.tilt-buttons button{width:28px;height:28px;color:var(--text);background:#00000073;border:none;border-radius:7px;padding:0;font-size:16px;box-shadow:0 0 0 1px #d4a64a40}.spin-svg.disabled,.elev-svg.disabled,.c-power.disabled .power-meter{opacity:.5;cursor:default}.c-power{padding-bottom:14px}.power-meter{touch-action:none;cursor:pointer;grid-template-columns:repeat(20,1fr);gap:3px;height:26px;display:grid;position:relative}.seg-cell{border-radius:3px;transition:opacity 80ms}.power-last{pointer-events:none;background:#f3e9d2;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.power-last span{color:var(--muted);white-space:nowrap;font-size:10px;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%)}button.shoot{justify-content:center;align-items:center;gap:12px;height:64px;font-size:28px;display:flex}button.shoot.fast,button.shoot.long{font-size:21px}.lob-svg{height:96px}.shoot-icon{letter-spacing:-.1em;place-items:center;font-size:.75em;display:inline-grid}.shoot-icon .btn-icon{width:26px;height:26px}button.c-skip{align-self:center;margin-top:-6px;font-size:13px}.last-event{color:var(--text-2);background:#0000004d;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex;position:relative}.event-dot{background:var(--brass);border-radius:50%;flex:none;width:8px;height:8px}.event-dot.good{background:var(--accent)}.event-dot.bad{background:var(--bad)}.event-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.last-event>button.link{flex:none;font-size:13px;font-weight:600}.history-pop{z-index:20;background:#121914f7;border-radius:12px;max-height:min(60dvh,420px);padding:12px 14px;position:absolute;bottom:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 0 0 1px #d4a64a4d,0 18px 36px #0009}.history-pop ol{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.history-pop li{border-left:3px solid var(--line);padding-left:8px}.history-pop li.good{border-left-color:var(--accent)}.history-pop li.bad{border-left-color:var(--bad)}.history-pop li small{color:var(--muted);display:block}.history-pop .who{color:var(--muted)}.popover{z-index:55;background:#121914f7;border-radius:12px;width:290px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 80px);padding:14px;animation:.14s ease-out menu-in;position:fixed;overflow-y:auto;box-shadow:0 0 0 1px #d4a64a4d,0 18px 36px #0009}.info-rows{margin:8px 0 0}.info-rows>div{justify-content:space-between;align-items:center;gap:12px;padding:4px 0;display:flex}.info-rows dt{color:var(--muted);font-size:13px}.info-rows dd{color:var(--text);text-align:right;margin:0;font-size:13px;font-weight:600}.info-keys{border-top:1px solid #d4a64a26;margin-top:12px;padding-top:12px}.info-keys-head{justify-content:space-between;align-items:baseline;display:flex}.info-keys dt{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.info-keys dd{font-weight:500}.key-group{align-items:center;gap:3px;display:inline-flex}@media (hover:none) and (pointer:coarse){.info-keys{display:none}}.announce{text-align:center;pointer-events:none;background:#121914f2;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:2px;max-width:min(90%,560px);padding:10px 18px;animation:.25s ease-out pop;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #d4a64a4d,0 12px 30px #0000008c}.announce span{color:var(--muted);font-size:13px}.announce strong{font-family:var(--heading);letter-spacing:.02em;font-size:17px;font-weight:600}.announce.good{box-shadow:0 0 0 1px var(--accent), 0 12px 30px #0000008c}.announce.bad{box-shadow:0 0 0 1px var(--bad), 0 12px 30px #0000008c}.announce.bad strong{color:#ff9b9b}.announce.good strong{color:#9be8c2}@keyframes pop{0%{opacity:0;transform:translate(-50%,-8px)}}.hint{color:var(--text-2);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#0f1511cc;border-radius:999px;max-width:94%;padding:4px 12px;font-size:13px;position:absolute;bottom:14px;left:50%;overflow:hidden;transform:translate(-50%)}.hint.thinking{color:var(--text);border:1px solid var(--line);animation:1.4s ease-in-out infinite pulse}.hint.error{color:#ff9b9b;white-space:normal}@keyframes pulse{50%{opacity:.55}}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;place-items:center;display:grid;position:absolute;inset:0}.overlay-card{background:var(--panel-bg);outline-offset:-13px;text-align:center;border:12px solid #0000;border-image:linear-gradient(172deg,#8a5a2e,#5a3618 45%,#3a2210) 1;border-radius:0;outline:1px solid #d4a64a8c;padding:24px 36px;animation:.3s ease-out pop2;box-shadow:0 20px 60px #00000080}@keyframes pop2{0%{opacity:0;transform:scale(.95)}}.overlay-card h2{margin:0 0 6px}.trophy{font-size:44px}.final-score{font-family:var(--heading);font-variant-numeric:tabular-nums;margin:6px 0 16px;font-size:34px;font-weight:700}.replay-vignette{pointer-events:none;background:radial-gradient(closest-side,#0000 72%,#00000052 100%,#0009 140%);animation:.3s ease-out fade-in;position:absolute;inset:0}.replay-badge{height:34px;font-family:var(--heading);letter-spacing:.16em;text-transform:uppercase;pointer-events:none;background:#0f1511e6;border-radius:6px;align-items:center;gap:8px;padding:0 12px;font-size:15px;font-weight:700;animation:.3s ease-out fade-in;display:inline-flex;position:absolute;top:12px;left:12px;box-shadow:0 0 0 1px #d4a64a59,0 8px 20px #00000073}.replay-who{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;text-transform:none;max-width:12em;color:var(--text-2);font-family:Barlow,system-ui,sans-serif;font-size:13px;font-weight:600;overflow:hidden}.replay-dot{background:var(--bad);width:9px;height:9px;box-shadow:0 0 8px var(--bad);border-radius:50%;animation:1.4s ease-in-out infinite pulse}.replay-speed{background:var(--brass);color:var(--brass-ink);letter-spacing:.02em;border-radius:4px;padding:1px 6px;font-size:12px}@keyframes fade-in{0%{opacity:0}}.replay-bar{align-items:center;gap:8px;display:flex}.replay-bar-label{flex:none;align-items:center;gap:5px;display:inline-flex}.replay-bar-label .btn-icon{width:16px;height:16px}button.replay-chip{border-radius:999px;flex:auto;justify-content:center;align-items:center;gap:6px;min-width:0;height:32px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.replay-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}button.replay-link{align-items:center;gap:6px;margin:16px auto 0;font-size:13px;display:flex}.replay-link .btn-icon{width:16px;height:16px}.dialog{max-width:min(640px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--wood);border:none;border-radius:0;padding:12px;box-shadow:inset 0 2px #ffdcaa38,inset 0 -3px #00000073,0 30px 80px #0009}.dialog[open]{display:flex}.dialog-body{background:var(--panel-bg);flex:1;min-width:0;padding:20px 24px;overflow-y:auto;box-shadow:0 0 0 2px #2a170a,0 0 0 3px #d4a64a8c}.beta{font-family:var(--heading);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--brass);color:var(--brass);vertical-align:middle;border-radius:4px;padding:1px 7px;font-size:11px;font-weight:600;line-height:1.25;display:inline-block}h2 .beta{margin-left:4px;font-size:11px;position:relative;top:-3px}.rules a,.dialog a{color:var(--brass)}.rules a:hover,.dialog a:hover{color:var(--brass-hi)}.install-steps{padding-left:22px;line-height:1.7}.table-prefs-dialog{max-width:min(760px,100vw - 32px)}.info-dialog{max-width:min(520px,100vw - 32px)}.dialog::backdrop{background:#05080699}.dialog h2{margin-top:0}.rules h3,.dialog h3{font-family:var(--heading);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:18px 0 6px;font-size:13px;font-weight:600}.rules p,.rules li{font-size:14px;line-height:1.5}.rules ul{padding-left:20px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.overlay-card .dialog-actions{justify-content:center}.menu-backdrop{z-index:60;background:#0508068c;position:fixed;inset:0}.menu-panel{z-index:61;background:linear-gradient(#141c17,#0f1511);width:310px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 80px);animation:.16s ease-out menu-in;position:fixed;overflow-y:auto;box-shadow:0 0 0 1px #d4a64a73,0 24px 48px #000000a6}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}}.menu-head{border-bottom:1px solid #d4a64a33;flex-direction:column;gap:12px;padding:14px 12px;display:flex}.menu-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.menu-paused{font-family:var(--heading);letter-spacing:.1em;text-transform:uppercase;color:var(--text);font-size:18px;font-weight:700}.menu-game{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}button.resume{justify-content:center;align-items:center;gap:10px;height:48px;font-size:20px;display:flex}.esc-key{color:var(--brass-ink);letter-spacing:.08em;background:#1b140826;border-color:#1b140859;font-size:10px}.menu-group{flex-direction:column;padding:10px 0 6px;display:flex}.menu-group>.label{padding:4px 12px 6px;font-size:11px}.menu-row{text-align:left;min-height:44px;color:var(--text);background:0 0;border:none;border-radius:0;align-items:center;gap:12px;padding:0 12px;font-size:15px;font-weight:500;display:flex}button.menu-row:hover:not(:disabled),button.menu-row:focus-visible{background:#d4a64a14}button.menu-row:active:not(:disabled){transform:none}.row-icon{width:28px;height:28px;color:var(--brass);border:1px solid #d4a64a66;border-radius:4px;flex:none;place-items:center;display:grid}.row-icon svg{width:16px;height:16px}.row-letter{font-family:var(--heading);font-size:14px;font-weight:600}.row-label{flex:1;min-width:0}.row-chevron{color:var(--faint);font-size:18px}button.switch{background:#2a312c;border:none;border-radius:13px;flex:none;width:46px;height:26px;padding:0;transition:background .2s;position:relative}button.switch.on{background:#2fa36b}button.switch:hover:not(:disabled){background:#333b35}button.switch.on:hover:not(:disabled){background:#35b177}.switch-knob{width:22px;height:22px;transition:transform .2s cubic-bezier(.3,1.4,.5,1);position:absolute;top:2px;left:2px}button.switch.on .switch-knob{transform:translate(20px)}.confirm-box{background:#d8452e1a;border-radius:8px;flex-direction:column;gap:4px;margin:2px 12px 6px;padding:12px;display:flex;box-shadow:inset 0 0 0 1px #d8452e59}.confirm-box strong{font-family:var(--heading);font-size:16px;font-weight:600}.confirm-box span{color:var(--muted);font-size:13px}.confirm-actions{gap:8px;margin-top:8px;display:flex}.confirm-actions button{white-space:nowrap;flex:auto;height:40px;padding:0 8px;font-size:14px}button.danger{background:var(--bad);color:#fff;border:none;font-weight:600}button.danger:hover:not(:disabled){background:#e4553e}@media (pointer:coarse){.menu-row{min-height:52px}button.resume{height:56px}.esc-key{display:none}}.menu-toggle{display:none!important}@media (height<=560px) and (orientation:landscape){.topbar{padding:4px 8px}.led-score{height:26px}.player-card{padding:3px 8px}.set-info .muted,.hint,.control-note,.last-event,.c-power .power-last span{display:none}.game{grid-template-columns:270px minmax(0,1fr)}.panel{gap:8px;padding:8px 26px 8px 8px}.brand-name{font-size:14px}.panel-header .beta,.replay-bar-text{display:none}.aim-preview{height:64px}.aim-buttons>button{height:34px}.pad{height:88px}.c-power{padding-bottom:0}.power-meter{height:20px}button.shoot{height:48px;font-size:22px}}@media (orientation:portrait),(width<=760px){.game{flex-direction:column;display:flex}.game>.main{display:flex}.panel-header{display:none}.topbar .game-menu{display:contents}.topbar .match-info{display:block}.main{flex-direction:column}.panel{background:var(--bg);border-top:1px solid var(--brass-line);width:auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom));grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"toggle power shoot";align-items:center;gap:12px;display:grid;position:relative;overflow:visible}.extras-toggle{border-radius:12px;grid-area:toggle;justify-content:center;align-items:center;width:48px;height:48px;padding:0;display:flex}.extras-toggle[aria-expanded=true]{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}.shot-extras{z-index:40;background:var(--panel-bg);border-top:1px solid #d4a64a59;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"aim aim""spin elev""spot spot""replay replay";gap:10px;padding:12px;display:none;position:absolute;bottom:100%;left:0;right:0;box-shadow:0 -12px 28px #00000073}.panel.extras-open .shot-extras{display:grid}.panel-grid{display:contents}.panel-grid>:first-child{grid-area:spin}.panel-grid>:last-child{grid-area:elev}.c-aim{grid-area:aim}.c-spot{grid-area:spot}.replay-bar{border-top:1px solid var(--brass-line);grid-area:replay;padding-top:10px}.c-effect,.control-note,.last-event{display:none}.aim-preview{height:84px}.pad{height:112px}.c-power{grid-area:power;gap:4px;padding-bottom:0}.c-power .big-value{font-size:16px}.c-power .control-head{min-height:0}.power-meter{gap:2px;height:24px}.power-last span{display:none}.panel:has(.c-skip) .c-power{display:none}.c-skip{grid-area:power;justify-self:center;margin:0}.c-shoot{grid-area:shoot}button.shoot{border-radius:50%;width:56px;height:56px;padding:0;font-size:22px}.shoot-label{display:none}.hint{font-size:11px;bottom:4px}.announce{font-size:13px;top:6px}.replay-badge{height:30px;padding:0 10px;font-size:13px;top:8px;left:8px}.topbar{gap:4px;padding:6px 8px}.scoreboard{gap:6px}.player-card{gap:6px;padding:4px 6px}.ball-swatch{width:16px;height:16px}.led-score{height:20px}.led-small{height:13px}.led-window{padding:3px 4px}.led-window .led-lamp{display:none}.set-info{font-size:12px}.menu-toggle{display:inline-grid!important}.player-status{min-height:0}.player-status .chip,.set-info .muted{display:none}.set-info{white-space:nowrap;font-size:11px}.player-name{font-size:13px}.player-info{min-width:32px;overflow:hidden}.balls-left{flex-wrap:nowrap;gap:2px;display:flex}.ball-dot{flex:none;width:6.5px;height:6.5px}.player-card:has(.balls-left)>.ball-swatch{display:none}}.update-notice{top:max(12px, env(safe-area-inset-top));z-index:50;background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px 16px;width:max-content;max-width:calc(100% - 24px);padding:10px 12px 10px 16px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000073}.update-text{flex-direction:column;gap:2px;display:flex}.update-actions{gap:8px;margin-left:auto;display:flex}.dialog.rules-dialog{width:min(920px,100vw - 32px);max-width:none}.rules-window{flex-direction:column;padding:0;display:flex}.rules-head{border-bottom:1px solid #d4a64a26;padding:24px 28px 18px;position:relative}.rules-head h2{text-transform:uppercase;letter-spacing:.02em;margin:4px 0 8px;font-size:38px;line-height:1.1}.rules-head h2 small{text-transform:none;letter-spacing:0;color:var(--muted);font-size:16px;font-weight:500}.rules-intro{color:#c9c2ae;max-width:680px;margin:0;font-size:15px;line-height:1.55}.rules-intro strong{color:var(--text)}.rules-chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.rules-chips span{color:var(--text-2);border:1px solid #d4a64a59;border-radius:4px;padding:4px 9px;font-size:13px}button.rules-close{border-radius:0;width:40px;height:40px;font-size:18px;position:absolute;top:24px;right:28px}.rules-body{grid-template-columns:304px minmax(0,1fr);gap:24px;padding:22px 28px;display:grid;overflow-y:auto}.rules-body.no-diagram{grid-template-columns:minmax(0,1fr)}.rules-diagram,.rules-cards{flex-direction:column;gap:12px;min-width:0;display:flex}.rules-rail{background:var(--wood);padding:12px;box-shadow:inset 0 2px #ffdcaa38,inset 0 -3px #00000073}.rules-felt{aspect-ratio:1;background:var(--felt);width:100%;display:block;position:relative;box-shadow:inset 0 0 0 1px #00000059,inset 0 6px 18px #0000004d}.rules-felt.carom{aspect-ratio:280/160}.felt-line{background:#ffffff1f;position:absolute}.felt-line.h{height:1px;top:50%;left:0;right:0}.felt-line.v{width:1px;top:0;bottom:0;left:50%}.pin-spot{flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;transform:translate(-50%,-11px)}.pin-top{background:radial-gradient(circle at 36% 32%,#fff 0,#ece6d6 45%,#a8a190 100%);border-radius:50%;width:22px;height:22px;box-shadow:0 2px 4px #00000073}.pin-top.red{background:radial-gradient(circle at 36% 32%,#ff9a9a 0,#d02a2a 45%,#7a1010 100%)}.pin-tag{font-family:var(--heading);color:var(--text);white-space:nowrap;background:#0009;border-radius:3px;padding:1px 5px;font-size:11px;font-weight:600}.pin-tag.red{color:#ff8b8b}.rules-note{color:var(--muted);margin:0;font-size:12px}.score-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.score-card,.foul-card{background:var(--panel);align-items:center;gap:12px;padding:12px 14px 12px 8px;display:flex;box-shadow:inset 0 0 0 1px #d4a64a2e}.score-n{text-align:center;width:56px;font-family:var(--heading);color:var(--text);flex:none;font-size:30px;font-weight:700;line-height:1}.score-n.red{color:#ff8b8b}.score-text{flex-direction:column;gap:2px;min-width:0;display:flex}.score-text strong{color:var(--text);font-size:15px;font-weight:600}.score-text span{color:var(--muted);font-size:13px;line-height:1.4}.foul-card{background:#d8452e12;align-items:flex-start;padding-left:14px;box-shadow:inset 0 0 0 1px #d8452e40}.foul-x{background:var(--bad);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:grid}.fouls-label{margin-top:10px}.rules-more{color:#c9c2ae;margin:0;padding-left:18px;font-size:14px;line-height:1.5}.rules-foot{border-top:1px solid #d4a64a26;justify-content:space-between;align-items:center;gap:16px;padding:16px 28px 13px;font-size:13px;display:flex}button.got-it{height:54px;padding:0 36px;font-size:22px}@media (width<=760px){.dialog.rules-dialog{width:100vw;height:100dvh;max-height:none;margin:0;padding:0}.rules-dialog .dialog-body{box-shadow:none}.rules-head{padding:18px 16px 14px}.rules-head h2{padding-right:44px;font-size:30px}button.rules-close{top:16px;right:16px}.rules-body{grid-template-columns:minmax(0,1fr);padding:16px}.rules-diagram{max-width:320px}.score-grid{grid-template-columns:1fr}.rules-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.rules-foot .muted{display:none}button.got-it{flex:1}}.beta-box{color:var(--text-2);background:#d4a64a14;border-radius:8px;align-items:flex-start;gap:10px;margin:16px 0 12px;padding:12px 14px;display:flex;box-shadow:inset 0 0 0 1px #d4a64a59}.beta-box .beta{flex:none;margin-top:1px}.rules p.beta-box{font-size:13px}.author{color:var(--muted)}@media (width<=380px) and (orientation:portrait){.led-score{height:17px}.led-small{height:11px}.ball-swatch{width:13px;height:13px}.player-card{gap:4px;padding:4px 5px}.scoreboard{gap:4px}}.install-window{text-align:center;width:min(420px,100vw - 32px)}.install-window::backdrop{-webkit-backdrop-filter:blur(3px);background:#050806b8}.install-window h2{margin:10px 0 6px}.install-window p{color:var(--text-2);margin:0 0 6px}.install-window-icon img{border-radius:16px;margin:0 auto;display:block;box-shadow:0 6px 16px #00000080}.install-window .dialog-actions{justify-content:center;margin-top:18px}@media (orientation:portrait),(width<=760px){.shot-extras:has(.c-rack){grid-template-areas:"rack rack""aim aim""spin elev""replay replay"}.c-rack{grid-area:rack}.training-bar{gap:8px;padding:4px 8px}.training-game{font-size:14px}}.crash{background:var(--panel-bg);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.crash-card{width:min(480px,100%);box-shadow:inset 0 0 0 1.5px var(--brass-line-2);background:#00000059;border-radius:16px;flex-direction:column;gap:12px;padding:24px;display:flex}.crash-brand{font-family:var(--heading);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin:0;font-size:13px;font-weight:600}.crash h1{font-family:var(--heading);color:var(--text);margin:0;font-size:26px}.crash p{margin:0;line-height:1.5}.crash-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.crash-note{color:var(--muted);font-size:13px}.crash-report{color:var(--brass-hi);align-self:flex-start;font-size:14px}.crash-error{color:var(--muted);word-break:break-word;opacity:.8;font-size:12px}.howto-art{width:100%;max-height:150px;margin:2px 0 4px;display:block}.howto h3{font-family:var(--heading);color:var(--brass-hi);margin:10px 0 6px;font-size:20px;font-weight:600}.howto p{min-height:6em;margin:0;line-height:1.5}.howto-dots{justify-content:center;gap:8px;margin-top:12px;display:flex}.howto-dots button{background:var(--brass-line-2);cursor:pointer;border:0;border-radius:50%;width:9px;height:9px;min-height:0;padding:0}.howto-dots button.on{background:var(--brass)}
