@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-h:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1024' height='48'%3E%3Cfilter id='w' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.004 0.2' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='2.6 0 0 0 -0.8 2.6 0 0 0 -0.8 2.6 0 0 0 -0.8 0 0 0 0 1' result='a'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0012 0.03' numOctaves='2' seed='3' stitchTiles='stitch' result='fig'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='table' tableValues='0 .7 .35 .9 .45 1 .5 .8 .2'/%3E%3CfeFuncG type='table' tableValues='0 .7 .35 .9 .45 1 .5 .8 .2'/%3E%3CfeFuncB type='table' tableValues='0 .7 .35 .9 .45 1 .5 .8 .2'/%3E%3C/feComponentTransfer%3E%3CfeComposite in='a' operator='arithmetic' k2='0.6' k3='0.4' result='c'/%3E%3CfeTurbulence type='turbulence' baseFrequency='0.05 0.8' numOctaves='1' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='6 0 0 0 0.35 6 0 0 0 0.35 6 0 0 0 0.35 0 0 0 0 1'/%3E%3CfeComposite in='c' operator='arithmetic' k1='0.35' k2='0.65'/%3E%3CfeComponentTransfer result='e'%3E%3CfeFuncR type='table' tableValues='.1 .19 .29 .41 .52'/%3E%3CfeFuncG type='table' tableValues='.045 .095 .16 .235 .3'/%3E%3CfeFuncB type='table' tableValues='.022 .042 .07 .11 .15'/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix in='fig' values='0 0.14 0 0 0.93 0 0.05 0 0 0.975 0 0 0 0 1 0 0 0 0 1'/%3E%3CfeComposite in='e' operator='arithmetic' k2='1' k3='1' k4='-1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E") 0 0 / 1024px 48px;--wood-v:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='1024'%3E%3Cfilter id='w' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.2 0.004' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='2.6 0 0 0 -0.8 2.6 0 0 0 -0.8 2.6 0 0 0 -0.8 0 0 0 0 1' result='a'/%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.03 0.0012' numOctaves='2' seed='3' stitchTiles='stitch' result='fig'/%3E%3CfeColorMatrix values='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='table' tableValues='0 .7 .35 .9 .45 1 .5 .8 .2'/%3E%3CfeFuncG type='table' tableValues='0 .7 .35 .9 .45 1 .5 .8 .2'/%3E%3CfeFuncB type='table' tableValues='0 .7 .35 .9 .45 1 .5 .8 .2'/%3E%3C/feComponentTransfer%3E%3CfeComposite in='a' operator='arithmetic' k2='0.6' k3='0.4' result='c'/%3E%3CfeTurbulence type='turbulence' baseFrequency='0.8 0.05' numOctaves='1' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='6 0 0 0 0.35 6 0 0 0 0.35 6 0 0 0 0.35 0 0 0 0 1'/%3E%3CfeComposite in='c' operator='arithmetic' k1='0.35' k2='0.65'/%3E%3CfeComponentTransfer result='e'%3E%3CfeFuncR type='table' tableValues='.1 .19 .29 .41 .52'/%3E%3CfeFuncG type='table' tableValues='.045 .095 .16 .235 .3'/%3E%3CfeFuncB type='table' tableValues='.022 .042 .07 .11 .15'/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix in='fig' values='0 0.14 0 0 0.93 0 0.05 0 0 0.975 0 0 0 0 1 0 0 0 0 1'/%3E%3CfeComposite in='e' operator='arithmetic' k2='1' k3='1' k4='-1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E") 0 0 / 48px 1024px;--wood:var(--wood-h);--fs-9:9px;--fs-10:10px;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--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}@media (hover:hover) and (pointer:fine) and (width>=761px) and (height>=600px){:root{--fs-9:10px;--fs-10:11px;--fs-11:12px;--fs-12:13px;--fs-13:14.5px;--fs-14:15px;--fs-15:16px}}*{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.gold:focus-visible{outline-color:var(--text)}button.ghost{border-color:var(--brass-line-2);color:var(--text-2);background:0 0}button.ghost:hover:not(:disabled){background:#d4a64a1a}button.small{font-size:var(--fs-13);padding:5px 10px}button.big{padding:12px 22px;font-size:17px}button.link{color:var(--brass);font-size:var(--fs-12);background:0 0;border:none;padding:0}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%}button.lang-btn{font-family:var(--heading);letter-spacing:.06em;color:var(--brass);font-size:16px;font-weight:600}.label{font-family:var(--heading);font-weight:600;font-size:var(--fs-12);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);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{font-weight:600;font-size:var(--fs-14);white-space:nowrap;color:#ffffffb3;background:0 0;border:none;border-radius:8px;padding:7px 14px}.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)}kbd{font:600 var(--fs-11) ui-monospace, Menlo, Consolas, monospace;color:#d9d0b8;background:#1c241f;border:1px solid #ffffff1f;border-bottom-width:2px;border-radius:5px;padding:2px 6px;display:inline-block}h1,h2,h3{font-family:var(--heading);letter-spacing:.02em;font-weight:700}.muted{color:var(--muted)}.small{font-size:var(--fs-12)}.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}.dialog,.setup-modal,.overlay-card,.rules-rail{--frame:16px;--safe:0;--bevel:min(4px, calc(var(--frame) / 4));--sight:min(4px, calc(var(--frame) / 4));--inlay:min(2px, calc(var(--frame) / 8));--mitre-a:linear-gradient(45deg, transparent calc(50% - .6px), #140802cc 50%, transparent calc(50% + .6px));--mitre-b:linear-gradient(-45deg, transparent calc(50% - .6px), #140802cc 50%, transparent calc(50% + .6px));--brass-inlay:0 0 0 var(--inlay) #b98a3f, calc(var(--inlay) / -2) calc(var(--inlay) / -2) 0 var(--inlay) #ffe8b08c, calc(var(--inlay) / 2) calc(var(--inlay) / 2) 0 var(--inlay) #0000008c;--frame-light:linear-gradient(135deg, #ffdeb01a, transparent 45%, #0000003d);isolation:isolate;padding:calc(var(--frame) + env(safe-area-inset-top) * var(--safe)) calc(var(--frame) + env(safe-area-inset-right) * var(--safe)) calc(var(--frame) + env(safe-area-inset-bottom) * var(--safe)) calc(var(--frame) + env(safe-area-inset-left) * var(--safe));background:var(--mitre-a) 0 0 / var(--frame) var(--frame) no-repeat, var(--mitre-b) 100% 0 / var(--frame) var(--frame) no-repeat, var(--mitre-b) 0 100% / var(--frame) var(--frame) no-repeat, var(--mitre-a) 100% 100% / var(--frame) var(--frame) no-repeat, linear-gradient(#ffe4ba2b, #ffe4ba2b) 0 0 / var(--bevel) 100% no-repeat, linear-gradient(#00000057, #00000057) 100% 0 / var(--bevel) 100% no-repeat, var(--frame-light), var(--wood-v);background-origin:border-box;box-shadow:0 0 0 1px #0000008c,0 3px 6px #00000073,0 30px 80px #0009}.dialog:before,.setup-modal:before,.overlay-card:before,.rules-rail:before,.dialog:after,.setup-modal:after,.overlay-card:after,.rules-rail:after{content:"";z-index:-1;pointer-events:none;position:absolute}.dialog:before,.setup-modal:before,.overlay-card:before,.rules-rail:before{background:linear-gradient(#fff0d280, #fff0d280) 0 0 / 100% 1px no-repeat, linear-gradient(#ffe4ba4d, #ffe4ba4d) 0 0 / 100% var(--bevel) no-repeat, linear-gradient(#00000075, #00000075) 0 100% / 100% var(--bevel) no-repeat, var(--mitre-a) 0 0 / var(--frame) var(--frame) no-repeat, var(--mitre-b) 100% 0 / var(--frame) var(--frame) no-repeat, var(--mitre-b) 0 100% / var(--frame) var(--frame) no-repeat, var(--mitre-a) 100% 100% / var(--frame) var(--frame) no-repeat, var(--frame-light), var(--wood-h);clip-path:polygon(0 0, 100% 0, calc(100% - var(--frame)) var(--frame), var(--frame) var(--frame), 0 0, 0 100%, var(--frame) calc(100% - var(--frame)), calc(100% - var(--frame)) calc(100% - var(--frame)), 100% 100%, 0 100%);inset:0}.dialog:after,.setup-modal:after,.overlay-card:after,.rules-rail:after{inset:calc(var(--frame) - var(--sight));border:var(--sight) solid;box-shadow:var(--brass-inlay);border-color:#00000080 #ffe4ba24 #ffe4ba3d #00000061}.setup-modal{--frame:18px;flex-direction:column;width:min(640px,100%);min-width:0;height:min(760px,100dvh - 32px);animation:.25s ease-out modal-in;display:flex;position:relative}@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:inset 0 3px 6px -2px #00000080}.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;min-width:0;margin:0;font-size:26px;line-height:44px}button.window-close{width:44px;height:44px;color:var(--brass);border-color:var(--brass-line-2);background:#00000040}button.window-close .btn-icon{width:22px;height:22px}.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{font-size:var(--fs-13);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;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-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(--faint)}input.vs-name:hover{border-bottom-color:#d4a64a73}input.vs-name:focus{border-bottom-color:var(--brass);background:#00000059}.vs-sub{font-weight:500;font-size:var(--fs-12);color:var(--muted)}.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}.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:var(--fs-11)}.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:34px;height:34px;color:var(--brass);background:#d4a64a1f;border-radius:50%;flex:none;place-items:center;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{font-weight:500;font-size:var(--fs-14);color:var(--text-2);justify-content:space-between;align-items:center;gap:12px;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{font-size:var(--fs-12);color:var(--muted)}.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-icon canvas[data-pending],.thumb canvas[data-pending]{background:radial-gradient(at 50% 55%,#24201b,#0b0d0c 75%)}.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{font-weight:500;font-size:var(--fs-14);color:var(--text-2);align-items:center;gap:12px;display:flex}button.rules-for{font-size:var(--fs-14)}button.theme-tile{color:var(--text-2);font-size:var(--fs-13);background:0 0;border:none;flex-direction:column;align-items:stretch;gap:6px;padding:0;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}button.theme-tile.locked{color:var(--muted);cursor:help}button.theme-tile.locked:hover .theme-frame{border-color:#ffffff29}button.theme-tile.locked .tile-icon{filter:grayscale(.85)brightness(.6)}.lock-badge{width:30px;height:30px;color:var(--text-2);background:#0c100dc7;border:1px solid #ffffff24;border-radius:50%;place-items:center;margin:-15px 0 0 -15px;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 1px 4px #00000080}.lock-badge svg{width:17px;height:17px}.ambient-lock-note{color:var(--text-2);font-size:var(--fs-13);background:#d4a64a14;border:1px solid #d4a64a40;border-radius:10px;align-items:flex-start;gap:8px;margin:12px 0 0;padding:10px 12px;line-height:1.4;display:flex}.ambient-lock-note:empty{display:none}.ambient-lock-note>svg{width:16px;height:16px;color:var(--brass);flex:none;margin-top:1px}.ambient-lock-note>.note-check{width:16px;color:var(--brass);text-align:center;flex:none;font-weight:800}.lock-note-body{flex:1;min-width:0}.lock-note-body a{color:var(--brass)}.code-row{gap:8px;margin-top:10px;display:flex}.code-row input{border:1px solid var(--brass-line-2);letter-spacing:.06em;background:#0006;border-radius:8px;flex:1;min-width:0;min-height:40px;padding:8px 10px;font-size:16px}.code-row input[aria-invalid=true]{border-color:var(--bad)}.code-row button{flex:none}.code-error{color:var(--bad);margin-top:6px;font-weight:600;display:block}.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{font-size:var(--fs-12);color:var(--muted);margin:0}.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%)}.measles-ball.is-triangles{--c:#f2c230;background:radial-gradient(circle at 34% 30%, #ffffffbf 0, #fff0 30%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%231d4a66'%3E%3Cpath d='M.2 -.81L.14 -.95L0 -1L-.14 -.95L-.2 -.81L-.26 -.51L-.38 -.22L-.57 .03L-.8 .23L-.89 .35L-.87 .5L-.75 .59L-.61 .58L-.31 .48L0 .44L.31 .48L.61 .58L.75 .59L.87 .5L.89 .35L.8 .23L.57 .03L.38 -.22L.26 -.51Z' transform='translate(11 10.6) rotate(15) scale(4.4)'/%3E%3Cpath d='M.2 -.81L.14 -.95L0 -1L-.14 -.95L-.2 -.81L-.26 -.51L-.38 -.22L-.57 .03L-.8 .23L-.89 .35L-.87 .5L-.75 .59L-.61 .58L-.31 .48L0 .44L.31 .48L.61 .58L.75 .59L.87 .5L.89 .35L.8 .23L.57 .03L.38 -.22L.26 -.51Z' transform='translate(2.7 8.4) scale(1.1 2.9) rotate(-30)'/%3E%3C/svg%3E") center / 100% 100% no-repeat, 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:var(--fs-10)}.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}.lobby-version{font-size:var(--fs-11);letter-spacing:.02em;color:var(--faint);white-space:nowrap;-webkit-user-select:text;user-select:text;margin-right:auto}button.back-btn{height:58px;color:var(--text);font-family:var(--heading);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:#0a0e0cb3;border:1.5px solid #d4a64a99;border-radius:12px;margin-bottom:4px;padding:0 24px;font-size:18px;font-weight:600}button.back-btn:hover:not(:disabled){border-color:var(--brass);background:#242216d9}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{--frame:0px;background:var(--panel-bg);width:100%;height:100dvh;max-height:none;box-shadow:none;animation-name:sheet-in}.setup-modal:before,.setup-modal:after{display:none}.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-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}.lobby-version{left:0;right:0;bottom:calc(9px + env(safe-area-inset-bottom));text-align:center;font-size:10px;line-height:1;position:absolute}.lobby-foot{flex-wrap:wrap-reverse}button.break-btn{flex:3 0 auto;height:60px;padding:0 20px;font-size:24px}button.back-btn{flex:1 0 auto;height:60px;padding:0 16px;font-size:16px}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.game,.temp-slider,.power-meter,.pad,.aim-preview,.board-menu,.lobby-section-head,.card,.theme-tile{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.stage.on-title{--title-cos:.9945;--title-sin:.1045;--title-ratio:1.8256;--title-zoom:1.02;--title-vw:100vw;--title-vh:100vh}@supports (height:100lvh){.stage.on-title{--title-vh:100lvh}}.stage.on-title .game>:not(.main),.stage.on-title .main>:not(.table-area),.stage.on-title .table-area>:not(.table-wrap){display:none}.stage.on-title .table-area{--h:calc(var(--title-zoom) * max((var(--title-vw) * var(--title-cos) + var(--title-vh) * var(--title-sin)) / var(--title-ratio), var(--title-vw) * var(--title-sin) + var(--title-vh) * var(--title-cos)));--w:calc(var(--h) * var(--title-ratio));width:var(--w);height:var(--h);left:calc(50% - var(--w) / 2);top:calc(50% - var(--h) / 2);position:fixed}@media (orientation:portrait){.stage.on-title .table-area{--w:calc(var(--title-zoom) * max(var(--title-vw) * var(--title-cos) + var(--title-vh) * var(--title-sin), (var(--title-vw) * var(--title-sin) + var(--title-vh) * var(--title-cos)) / var(--title-ratio)));--h:calc(var(--w) * var(--title-ratio))}}.stage.on-title .table-canvas{transform:rotate(-6deg)}.title-screen{z-index:50;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));-webkit-user-select:none;user-select:none;grid-template-rows:auto minmax(0,1fr) auto;animation:.3s ease-out title-in;display:grid;position:fixed;inset:0;overflow-y:auto}@keyframes title-in{0%{opacity:0}}.title-shade{pointer-events:none;background:radial-gradient(55% 60% at 50% 46%,#00000061 0,#0009 55%,#000000ed 100%);position:fixed;inset:0}.title-top,.title-main,.title-foot{position:relative}.title-top{align-items:center;gap:12px;display:flex}button.title-chip{min-width:0;max-width:60%;font-weight:600;font-size:var(--fs-15);color:var(--text);background:#0a0e0cb8;border-radius:999px;align-items:center;gap:10px;padding:4px 14px 4px 4px;display:flex}button.title-chip:hover:not(:disabled){border-color:var(--brass);background:#1e241ed9}.title-chip .avatar{box-shadow:0 0 0 1.5px var(--brass);border-radius:50%;flex:none}.title-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.title-corner{gap:8px;margin-left:auto;display:flex}.title-corner button.square{background:#0a0e0cb8;width:44px;height:44px}.title-corner .btn-icon{width:22px;height:22px}.title-main{flex-direction:column;justify-content:center;align-items:center;gap:30px;min-height:0;padding:16px 0;display:flex}.title-brand{flex-direction:column;align-items:center;gap:12px;display:flex}.title-brand h1{margin:0;line-height:1;position:relative}.title-brand .brand-title{--logo-h:min(92px, 16.4vw);filter:drop-shadow(0 6px 18px #0009);display:block}.title-brand .brand-logo{display:block;top:0}.title-brand h1 .beta{margin-left:8px;position:absolute;top:2px;left:100%}@media (width<=600px),(orientation:landscape) and (height<=500px){.title-brand h1 .beta{margin:0 0 6px;inset:auto 0 100% auto}}.title-tagline{font-family:var(--heading);font-weight:600;font-size:var(--fs-14);letter-spacing:.24em;text-transform:uppercase;color:var(--brass);text-align:center;text-shadow:0 1px 6px #000000b3;margin:0;padding-left:.24em}.title-buttons{flex-direction:column;gap:12px;width:min(360px,100%);display:flex}button.title-btn{min-height:58px;font-family:var(--heading);letter-spacing:.1em;text-transform:uppercase;border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:20px;font-weight:700;display:flex}button.title-outline{color:var(--text);background:#0a0e0cb3;border:1.5px solid #d4a64a99}button.title-outline:hover:not(:disabled){border-color:var(--brass);background:#242216d9}button.title-resume{flex-direction:column;gap:3px;min-height:66px}.title-resume-head{align-items:center;gap:10px;display:inline-flex}.title-resume small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:Barlow,system-ui,sans-serif;font-weight:600;font-size:var(--fs-13);letter-spacing:0;text-transform:none;opacity:.8;overflow:hidden}button.title-soon:disabled{opacity:.55}button.title-app .btn-icon{width:20px;height:20px}@media (orientation:portrait) and (height<=720px){.title-main:has(.title-buttons-long){gap:22px}.title-buttons-long{gap:10px}.title-buttons-long button.title-btn{min-height:50px}.title-buttons-long button.title-resume{min-height:58px}}.title-soon em{font-family:Barlow,system-ui,sans-serif;font-style:normal;font-weight:600;font-size:var(--fs-11);letter-spacing:.06em;color:var(--brass);border:1px solid #d4a64a99;border-radius:999px;padding:2px 8px}.title-foot{flex-direction:column;align-items:center;gap:4px;display:flex}.title-links{color:var(--muted);font-size:var(--fs-14);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;display:flex}.title-links button.link{color:var(--text);font-size:var(--fs-14);padding:6px 0}.title-links button.link:hover:not(:disabled){color:var(--brass-hi)}.title-version{font-size:var(--fs-11);letter-spacing:.02em;color:var(--faint);-webkit-user-select:text;user-select:text}.title-meta{font-size:var(--fs-11);color:var(--faint);align-items:center;gap:6px;display:flex}.title-privacy{min-height:32px;color:var(--faint);letter-spacing:.02em;align-items:center;padding:0 4px;text-decoration:none;display:inline-flex}.title-privacy:hover,.title-privacy:focus-visible{color:var(--muted);text-decoration:underline}.title-privacy:focus-visible{outline:2px solid var(--brass);outline-offset:0;border-radius:4px}.title-screen[inert] .title-meta>:not(.title-version){visibility:hidden}@media (width>=1600px) and (height>=950px){.title-brand .brand-title{--logo-h:112px}.title-buttons{gap:14px;width:420px}button.title-btn{min-height:66px;font-size:23px}button.title-resume{min-height:76px}}@media (orientation:landscape) and (height<=500px){.title-screen{padding-top:calc(10px + env(safe-area-inset-top));padding-bottom:calc(6px + env(safe-area-inset-bottom))}.title-corner button.square{width:40px;height:40px}button.title-chip{padding-block:2px}.title-main{flex-direction:row;gap:clamp(24px,6vw,64px);padding:4px 0}.title-brand .brand-title{--logo-h:min(64px, 7.5vw)}.title-buttons{gap:8px;width:min(320px,44vw)}button.title-btn{min-height:46px;font-size:18px}button.title-resume{gap:1px;min-height:54px}.title-buttons-long{gap:6px}.title-buttons-long button.title-btn{min-height:40px;padding-block:4px}.title-buttons-long button.title-resume{min-height:48px}.title-links button.link{padding:4px 0}.title-foot{gap:0}}.game{--side-w:340px;grid-template-columns:var(--side-w) minmax(0, 1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top top""side table";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}.extras-toggle{display:none}.shot-extras{display:contents}.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,.panel .c-playback{order:6}.panel .last-event{order:8}.brand{flex:none;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}.topbar{--bar-pad:12px;padding:8px var(--bar-pad);border-bottom:1px solid var(--brass-line);background:var(--bg);align-items:center;gap: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:var(--panel-bg);flex-direction:column;flex-shrink:0;gap:14px;padding:16px;display:flex;overflow:hidden}.panel>*{flex:none}.panel-body,.panel-foot{display:contents}@media (orientation:landscape){.panel>.panel-body{overscroll-behavior:contain;scrollbar-width:thin;gap:inherit;flex-direction:column;flex:0 auto;min-height:0;display:flex;overflow-y:auto}.panel-body>*,.shot-extras>*{flex:none}.panel-body .c-aim,.panel-body .panel-grid{flex:0 auto}.panel-body .c-aim{min-height:164px}.panel-body .panel-grid{grid-template-rows:minmax(0,1fr);min-height:132px}.panel-body .panel-grid>.control{min-height:0}.panel-body .aim-preview{flex:0 130px;height:auto;min-height:56px}.panel-body .pad{flex:0 140px;height:auto;min-height:76px}.panel-body .pad.lob-svg{flex-basis:96px;min-height:52px}.panel-foot{gap:inherit;flex-direction:column;display:flex}}.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;font-size:var(--fs-11);color:#8fe0b8;background:#3fb27f2e;border-radius:999px;padding:1px 7px}.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{font-size:var(--fs-9);letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.set-info{text-align:center;font-weight:600;font-size:var(--fs-14)}.board-controls{justify-content:center;align-items:center;gap:8px;display:flex}button.board-menu-toggle{width:52px;height:44px;color:var(--brass);background:#00000040;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:inline-flex}button.board-menu-toggle .btn-icon{width:20px;height:20px}.board-menu-name{font-family:var(--heading);font-weight:600;font-size:var(--fs-9);letter-spacing:.16em;text-transform:uppercase;margin-right:-.16em;line-height:1}@media (orientation:portrait),(width<=760px),(height<=560px) and (orientation:landscape){button.board-menu-toggle{width:36px;height:36px;position:relative}button.board-menu-toggle:after{content:"";position:absolute;inset:-4px}.board-menu-name{display:none}}dialog.board-menu{width:max-content;min-width:210px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);color:var(--text);background:var(--panel-bg);border:1px solid var(--brass);border-radius:8px;margin:0;padding:4px 0;animation:.12s ease-out board-menu-in;position:fixed;inset:auto;overflow-y:auto;box-shadow:0 12px 32px #0009}dialog.board-menu::backdrop{background:#05080659}@keyframes board-menu-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){dialog.board-menu{animation:none}}.board-menu-list{flex-direction:column;display:flex}.board-menu-list>.menu-row{width:100%;padding-right:20px}.board-menu-list>.menu-row:focus-visible{outline:none}.board-menu-list>.menu-row.on .row-icon{border-color:var(--brass);background:#d4a64a26}.board-menu-list>.menu-row.board-menu-leave{border-top:1px solid #d4a64a33;margin-top:4px}.training-bar{border:1px solid var(--line);background:var(--panel);border-radius:10px;flex:1;grid-template-columns:minmax(0,1fr) auto minmax(max-content,1fr);align-items:center;gap:12px;min-width:0;padding:6px 12px;display:grid}.training-title{flex-direction:column;min-width:0;display:flex}.training-tools{justify-content:flex-end;align-items:center;gap:inherit;display:flex}.training-bar>.board-controls{margin-block:-6px}.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);font-weight:600;font-size:var(--fs-12);letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}.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{font-size:var(--fs-12);color:var(--muted);margin:0}.control-foot{font-size:var(--fs-12);text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}.row-buttons{gap:6px;display:flex}.row-buttons>button{flex:1;padding:6px 4px}.aim-chip{color:var(--brass);font-family:var(--heading);font-weight:600;font-size:var(--fs-11);letter-spacing:.1em;text-transform:uppercase;background:#d4a64a26;border-radius:4px;padding:3px 7px}.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}.c-tilt .control-head>.label{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.c-tilt .head-value{flex:none}.label-short{display:none}button.shot-reset{width:26px;height:22px;color:var(--brass);box-shadow:0 0 0 1px var(--brass-line-2);background:#00000059;border:none;border-radius:6px;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}button.shot-reset:hover:not(:disabled){color:var(--brass-hi);background:#d4a64a24}button.shot-reset:disabled{opacity:.3}button.shot-reset:after{content:"";position:absolute;inset:-4px 0}.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.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}.playback-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:64px;margin-bottom:5px;display:grid}button.play-key{min-width:0;color:var(--brass);font-family:var(--heading);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;background:#d4a64a14;border-color:#d4a64a8c;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 6px;font-size:18px;font-weight:700;display:flex}button.play-key:hover:not(:disabled){color:var(--brass-hi);background:#d4a64a2e}button.play-key[aria-pressed=true]{border-color:var(--brass);color:var(--brass-ink);background:linear-gradient(#f0c66a,#d4a64a)}.play-key .btn-icon{width:18px;height:18px}.play-key-text{text-overflow:ellipsis;overflow:hidden}.last-event{font-size:var(--fs-13);color:var(--text-2);background:#0000004d;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;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{font-size:var(--fs-13);flex:none;font-weight:600}.history-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.history-row{border-left:3px solid var(--line);align-items:flex-start;gap:8px;padding-left:8px;display:flex}.history-row.good{border-left-color:var(--accent)}.history-row.bad{border-left-color:var(--bad)}.history-row.replaying{border-left-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass-line-2);background:#d4a64a1f;border-radius:0 6px 6px 0;margin:-4px -4px -4px 0;padding:4px 4px 4px 8px}.history-text{overflow-wrap:anywhere;flex:1;min-width:0}.history-text small{color:var(--muted);display:block}.history-text .who{color:var(--muted)}button.history-replay{width:28px;height:28px;color:var(--brass);background:#d4a64a14;border-color:#d4a64a73;border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}button.history-replay:hover:not(:disabled):not([aria-disabled=true]){color:var(--brass-hi);background:#d4a64a2e}button.history-replay:disabled,button.history-replay[aria-disabled=true]{opacity:.35;cursor:default}.history-replay .btn-icon{width:16px;height:16px}@media (pointer:coarse){.history-row{padding-right:4px}button.history-replay{position:relative}button.history-replay:after{content:"";position:absolute;inset:-4px}}.history-set{font-family:var(--heading);font-weight:600;font-size:var(--fs-11);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}.history-sets>section:first-child .history-set{margin-top:8px}.history-empty{margin:8px 0 0}.dialog.history-dialog{width:min(440px,100vw - 32px)}.history-dialog .dialog-body{flex-direction:column;display:flex;overflow:hidden}.history-dialog h2{flex:none;margin-bottom:4px}.history-scroll{overscroll-behavior:contain;min-height:0;font-size:var(--fs-13);color:var(--text-2);flex:0 auto;padding:0 2px 2px 0;overflow:hidden auto}.history-scroll:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:6px}@media (height<=560px) and (orientation:landscape){.dialog.history-dialog{--frame:8px;max-height:calc(100dvh - 16px)}.history-dialog .dialog-body{padding:12px 16px}}.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{font-size:var(--fs-13);color:var(--muted)}.info-rows dd{font-size:var(--fs-13);color:var(--text);text-align:right;margin:0;font-weight:600}.shortcuts-dialog{max-width:min(460px,100vw - 32px)}.shortcuts dt{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.shortcuts dd{font-weight:500}.key-group{align-items:center;gap:3px;display:inline-flex}@media (hover:hover) and (pointer:fine) and (width>=761px) and (height>=600px){.shortcuts-dialog{max-width:min(500px,100vw - 32px)}}.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{font-size:var(--fs-13);color:var(--muted)}.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{font-size:var(--fs-13);color:var(--text-2);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#0f1511cc;border-radius:999px;max-width:94%;padding:4px 12px;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{border:var(--frame) solid transparent;text-align:center;border-radius:0;padding:24px 36px;animation:.3s ease-out pop2;position:relative;box-shadow:0 0 0 1px #0000008c,0 3px 6px #00000073,0 20px 60px #00000080}.overlay-card:before{inset:calc(var(--frame) * -1)}.overlay-card:after{inset:calc(var(--sight) * -1);background:var(--panel-bg) padding-box;box-shadow:inset 0 3px 6px -2px #00000080, var(--brass-inlay)}@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;max-width:12em;font-family:Barlow,system-ui,sans-serif;font-weight:600;font-size:var(--fs-13);letter-spacing:.02em;text-transform:none;color:var(--text-2);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);font-size:var(--fs-12);letter-spacing:.02em;border-radius:4px;padding:1px 6px}@keyframes fade-in{0%{opacity:0}}button.replay-btn{width:32px;height:32px;color:var(--brass);background:#d4a64a14;border-color:#d4a64a73;border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}button.replay-btn:hover:not(:disabled){color:var(--brass-hi);background:#d4a64a2e}button.replay-btn[aria-pressed=true]{border-color:var(--brass);color:var(--brass-ink);background:linear-gradient(#f0c66a,#d4a64a)}button.replay-btn:disabled{opacity:.35}button.replay-btn.empty{visibility:hidden}.replay-btn .btn-icon{width:18px;height:18px}@media (pointer:coarse){button.replay-btn{position:relative}button.replay-btn:after{content:"";position:absolute;inset:-6px}}button.traj-btn{height:32px;font-size:var(--fs-13);white-space:nowrap;color:var(--brass);background:#d4a64a14;border-color:#d4a64a73;border-radius:16px;flex:none;align-items:center;gap:6px;margin-left:auto;padding:0 12px 0 8px;font-weight:600;display:inline-flex}button.traj-btn:hover:not(:disabled){color:var(--brass-hi);background:#d4a64a2e}button.traj-btn[aria-pressed=true]{border-color:var(--brass);color:var(--brass-ink);background:linear-gradient(#f0c66a,#d4a64a)}.traj-btn .btn-icon{flex:none;width:18px;height:18px}@media (pointer:coarse){button.traj-btn{position:relative}button.traj-btn:after{content:"";position:absolute;inset:-6px}}button.replay-link{font-size:var(--fs-13);align-items:center;gap:6px;margin:16px auto 0;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);border:none;border-radius:0}.dialog[open]{display:flex}.dialog-body{background:var(--panel-bg);min-width:0;box-shadow:inset 0 min(3px, var(--frame)) min(6px, calc(var(--frame) * 2)) -2px #00000080;flex:1;padding:20px 24px;overflow-y:auto}.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}.info-dialog{max-width:min(520px,100vw - 32px)}.dialog::backdrop{background:#05080699}button.window-close{z-index:1;top:calc(var(--frame) + 10px + env(safe-area-inset-top) * var(--safe,0));right:calc(var(--frame) + 10px + env(safe-area-inset-right) * var(--safe,0));position:absolute}.dialog:has(>.window-close) .dialog-body>h2:first-child{padding-right:40px}.dialog:has(>.window-close) .dialog-body>:first-child>h2:first-child{padding-right:40px}.dialog h2{margin-top:0}.rules h3,.dialog h3{font-family:var(--heading);font-weight:600;font-size:var(--fs-13);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:18px 0 6px}.rules p,.rules li{line-height:1.5;font-size:var(--fs-14)}.rules ul{padding-left:20px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.overlay-card .dialog-actions{flex-wrap:wrap;justify-content:center}@media (pointer:coarse){button.quick-btn{width:44px;height:44px}}.menu-row{text-align:left;min-height:44px;font-weight:500;font-size:var(--fs-15);color:var(--text);background:0 0;border:none;border-radius:0;align-items:center;gap:12px;padding:0 12px;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-label{flex:1;min-width:0}.row-chevron{color:var(--faint);font-size:18px}.row-icon:has(>.avatar){border:none}.row-icon>.avatar{width:28px;height:28px}.row-value{white-space:nowrap;text-overflow:ellipsis;max-width:45%;font-size:var(--fs-14);color:var(--muted);overflow:hidden}.menu-row:has(>button.switch){cursor:pointer;position:relative}.menu-row:has(>button.switch:focus-visible){background:#d4a64a14}@media (hover:hover){.menu-row:has(>button.switch:hover){background:#d4a64a14}}button.switch{background:0 0;border:1.5px solid #d4a64a66;border-radius:13px;flex:none;align-items:center;width:46px;height:26px;padding:0 3px;transition:background .2s,border-color .2s;display:flex}button.switch:after{content:"";position:absolute;inset:0}button.switch.on{border-color:var(--brass);background:#d4a64a24}button.switch:hover:not(:disabled){background:0 0;border-color:#d4a64ab3}button.switch.on:hover:not(:disabled){border-color:var(--brass-hi);background:#d4a64a33}button.switch:active:not(:disabled){transform:none}.switch-knob{border:1.5px solid #d4a64a99;border-radius:50%;flex:none;width:17px;height:17px;transition:transform .2s cubic-bezier(.3,1.3,.5,1),background .2s,border-color .2s}button.switch:hover:not(:disabled) .switch-knob{border-color:var(--brass)}button.switch.on .switch-knob{border-color:var(--brass-hi);background:linear-gradient(var(--brass-hi), var(--brass));transform:translate(20px);box-shadow:0 1px 2px #0006}@media (prefers-reduced-motion:reduce){button.switch,.switch-knob{transition:none}}.dialog.confirm-dialog{width:min(440px,100vw - 32px)}.confirm-dialog p{color:var(--text-2);margin:0;line-height:1.5}.confirm-dialog .dialog-actions{margin-top:18px}.confirm-dialog .dialog-actions button{min-width:0;height:48px;font-size:var(--fs-15);flex:1 1 0;padding:0 12px}.confirm-dialog .dialog-actions button.gold{font-size:16px}@media (pointer:coarse){.confirm-dialog .dialog-actions button{height:52px}.menu-row{min-height:52px}}@media (height<=560px) and (orientation:landscape){.menu-row{min-height:42px}}@media (height<=800px) and (orientation:landscape){.panel{gap:10px;padding-top:12px;padding-bottom:12px}.c-aim .control-note{display:none}.panel-body .c-aim{min-height:140px}button.shoot,.playback-bar{height:56px}}@media (height<=680px) and (orientation:landscape){.panel .last-event{display:none}}@media (height<=560px) and (orientation:landscape){.topbar{--bar-pad:8px;padding:4px var(--bar-pad)}.led-score{height:26px}.player-card{padding:3px 8px}.hint,.control-note,.last-event,.c-power .power-last span{display:none}.game{--side-w:270px}.panel{gap:8px;padding:8px}.training-title{flex-direction:row;align-items:baseline;gap:8px}.training-title .label{flex:none}.training-bar .led-center-item{flex-direction:row;gap:6px}button.replay-btn{width:28px;height:28px}button.traj-btn{height:28px}.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}.topbar{gap:6px}.control-foot,.c-tilt .label-long{display:none}.c-tilt .label-short{display:inline}.panel .control{gap:4px}.panel .control-head{min-height:20px}button.shot-reset{width:22px;height:20px}.panel .big-value{font-size:18px}.panel-body .c-aim{min-height:98px}.panel-body .panel-grid{min-height:80px}.panel-body .panel-grid:has(.lob-svg){min-height:92px}.panel-body .aim-preview{flex-basis:90px;min-height:36px}.aim-buttons{gap:6px}.aim-buttons>button{height:30px;font-size:18px}.panel-body .pad{flex-basis:120px;min-height:56px}.panel-body .pad.lob-svg{flex-basis:76px;min-height:32px}.row-buttons>button{min-width:0;padding:2px 0}.row-buttons svg{max-width:100%}.panel-foot{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"power shoot";align-items:center;gap:12px;display:grid}.c-power{grid-area:power;gap:2px}.c-power .control-head{min-height:0}.power-meter{gap:2px;height:22px}.panel:has(.playback-bar) .c-power{display:none}.playback-bar{grid-column:1/-1;gap:6px;height:52px}.c-shoot{grid-area:shoot}button.shoot{border-radius:50%;width:52px;height:52px;padding:0;font-size:21px}.shoot-label{display:none}}@media (orientation:landscape) and (width<=760px){.game{--side-w:clamp(210px, 37vw, 270px)}.rack-reset-text{display:none}}@media (height<=560px) and (orientation:landscape),(orientation:landscape) and (width<=760px){.playback-bar{gap:6px}button.play-key{border-radius:12px;flex-direction:column;gap:2px;padding:0 4px;font-size:11px}}@media (height<=340px) and (orientation:landscape){.panel{padding-top:6px;padding-bottom:6px}.panel .control-head{min-height:18px}button.shot-reset{height:18px}.aim-buttons>button{height:26px}.panel-body .c-aim{min-height:88px}.panel-body .panel-grid{min-height:78px}.panel-body .panel-grid:has(.lob-svg){min-height:88px}button.shoot{width:46px;height:46px}.playback-bar{height:46px}}@media (orientation:landscape){.panel{box-shadow:inset -1px 0 0 var(--brass-line-2)}.panel-right .game{grid-template-columns:minmax(0, 1fr) var(--side-w);grid-template-areas:"top top""table side"}.panel-right .panel{box-shadow:inset 1px 0 0 var(--brass-line-2)}.game>.topbar{grid-template-columns:var(--side-w) minmax(0, 1fr);padding-left:0;padding-right:var(--bar-pad);gap:0;display:grid}.game>.topbar>*{grid-row:1}.game>.topbar>.brand{padding:0 var(--bar-pad);grid-column:1;justify-content:center}.game>.topbar>:is(.scoreboard,.training-bar){grid-column:2}.panel-right .game>.topbar{grid-template-columns:minmax(0, 1fr) var(--side-w);padding-left:var(--bar-pad);padding-right:0}.panel-right .game>.topbar>.brand{grid-column:2}.panel-right .game>.topbar>:is(.scoreboard,.training-bar){grid-column:1}}.game{--log-w:300px}.log-dock{background:var(--panel-bg);min-width:0;min-height:0;box-shadow:inset 1px 0 0 var(--brass-line-2);flex-direction:column;grid-area:log;display:flex}.panel-right .log-dock{box-shadow:inset -1px 0 0 var(--brass-line-2)}.log-dock .log-scroll{flex:auto;padding:8px 16px 16px}.log-dock .log-scroll:focus-visible{outline-offset:-2px}.log-dock .history-list{margin-top:0}.game:has(>.log-dock.docked){grid-template-columns:var(--side-w) minmax(0, 1fr) var(--log-w);grid-template-areas:"top top top""side table log"}.panel-right .game:has(>.log-dock.docked){grid-template-columns:var(--log-w) minmax(0, 1fr) var(--side-w);grid-template-areas:"top top top""log table side"}.game:has(>.log-dock.docked)>.topbar{grid-template-columns:var(--side-w) minmax(0, 1fr) var(--log-w);padding-right:0}.panel-right .game:has(>.log-dock.docked)>.topbar{grid-template-columns:var(--log-w) minmax(0, 1fr) var(--side-w);padding-left:0}.topbar>.log-bar{min-width:0;padding:0 var(--bar-pad) 0 16px;grid-area:1/3;justify-content:space-between;align-items:center;gap:8px;display:flex}.log-bar .log-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.panel-right .game:has(>.log-dock.docked)>.topbar>.log-bar{grid-column:1}.panel-right .game:has(>.log-dock.docked)>.topbar>:is(.scoreboard,.training-bar){grid-column:2}.panel-right .game:has(>.log-dock.docked)>.topbar>.brand{grid-column:3}@media (height<=560px) and (orientation:landscape){.game>.topbar>.brand{display:none}.game{grid-template-areas:"side top""side table"}.panel-right .game{grid-template-areas:"top side""table side"}.game>.topbar,.panel-right .game>.topbar{grid-template-columns:minmax(0,1fr)}.game>.topbar>:is(.scoreboard,.training-bar),.panel-right .game>.topbar>:is(.scoreboard,.training-bar){grid-column:1}.game .panel{padding-top:calc(8px + env(safe-area-inset-top))}.game:has(>.log-dock.docked){grid-template-areas:"side top top""side table log"}.panel-right .game:has(>.log-dock.docked){grid-template-areas:"top top side""log table side"}.game:has(>.log-dock.docked)>.topbar{grid-template-columns:minmax(0, 1fr) var(--log-w)}.panel-right .game:has(>.log-dock.docked)>.topbar{grid-template-columns:var(--log-w) minmax(0, 1fr)}.game:has(>.log-dock.docked)>.topbar>.log-bar{grid-column:2}.panel-right .game:has(>.log-dock.docked)>.topbar>.log-bar{grid-column:1}.panel-right .game:has(>.log-dock.docked)>.topbar>:is(.scoreboard,.training-bar){grid-column:2}}@media (height<=340px) and (orientation:landscape){.game .panel{padding-top:calc(6px + env(safe-area-inset-top))}}.log-dock.drawer{z-index:3;width:min(var(--log-w), calc(100% - 48px));box-shadow:inset 1px 0 0 var(--brass-line-2), -16px 0 32px #00000080;grid-area:table;justify-self:end;animation:.2s ease-out log-in-right;position:relative}.panel-right .log-dock.drawer{box-shadow:inset -1px 0 0 var(--brass-line-2), 16px 0 32px #00000080;justify-self:start;animation-name:log-in-left}.log-backdrop{z-index:2;background:#0508068c;grid-area:table;animation:.2s ease-out log-dim;position:relative}@keyframes log-in-right{0%{transform:translate(100%)}}@keyframes log-in-left{0%{transform:translate(-100%)}}@keyframes log-dim{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.log-dock.drawer,.log-backdrop{animation:none}}.log-head{flex:none;justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 4px 16px;display:flex}.log-head h2{margin:0}button.log-close{color:var(--brass)}button.log-close .btn-icon{width:18px;height:18px}@media (hover:hover) and (pointer:fine) and (orientation:landscape) and (width>=761px) and (height>=600px){.game{--hairline:linear-gradient(var(--brass-line-2), var(--brass-line-2));--side-col:var(--hairline) left calc(var(--side-w) - 1px) top 0 / 1px 100% no-repeat, var(--panel-bg) left top / var(--side-w) 100% no-repeat;--log-col:none;--rule-left:var(--side-w);--rule-right:0px;background:var(--side-col), var(--log-col), var(--bg)}.panel-right .game{--side-col:var(--hairline) right calc(var(--side-w) - 1px) top 0 / 1px 100% no-repeat, var(--panel-bg) right top / var(--side-w) 100% no-repeat;--rule-left:0px;--rule-right:var(--side-w)}.game:has(>.log-dock.docked){--log-col:var(--hairline) right calc(var(--log-w) - 1px) top 0 / 1px 100% no-repeat, var(--panel-bg) right top / var(--log-w) 100% no-repeat;--rule-right:var(--log-w)}.panel-right .game:has(>.log-dock.docked){--log-col:var(--hairline) left calc(var(--log-w) - 1px) top 0 / 1px 100% no-repeat, var(--panel-bg) left top / var(--log-w) 100% no-repeat;--rule-left:var(--log-w);--rule-right:var(--side-w)}.game>.topbar{background:0 0;border-bottom-color:#0000}.game>.topbar:after{content:"";left:var(--rule-left);right:var(--rule-right);background:var(--brass-line);pointer-events:none;height:1px;position:absolute;bottom:-1px}.game .panel,.game>.log-dock.docked{box-shadow:none;background:0 0}}.panel-tab{z-index:5;box-sizing:border-box;background:var(--wood);width:18px;height:48px;min-height:0;color:var(--brass);border:1px solid #b98a3fb3;border-radius:6px;grid-area:table;place-self:start;place-items:center;padding:0;display:grid;position:relative;transform:translate(-50%);box-shadow:0 2px 8px #00000073}.panel-tab.closed{border-left:0;border-radius:0 6px 6px 0;transform:none}.panel-right .panel-tab{justify-self:end;transform:translate(50%)}.panel-right .panel-tab.closed{border-left:1px solid #b98a3fb3;border-right:0;border-radius:6px 0 0 6px;transform:none}.panel-tab:hover{color:var(--brass-hi);border-color:var(--brass)}.panel-tab .btn-icon{width:14px;height:14px}.panel-tab.closed .btn-icon,.panel-right .panel-tab.open .btn-icon{transform:scaleX(-1)}.panel-right .panel-tab.closed .btn-icon{transform:none}.panel-tab:after{content:"";position:absolute;inset:-3px -5px}.panel-tab.log-tab{justify-self:end;transform:translate(50%)}.panel-tab.log-tab.closed{border-left:1px solid #b98a3fb3;border-right:0;border-radius:6px 0 0 6px;transform:none}.panel-tab.log-tab.drawer{right:min(var(--log-w), calc(100% - 48px))}.panel-right .panel-tab.log-tab{justify-self:start;transform:translate(-50%)}.panel-right .panel-tab.log-tab.closed{border-left:0;border-right:1px solid #b98a3fb3;border-radius:0 6px 6px 0;transform:none}.panel-right .panel-tab.log-tab.drawer{right:auto;left:min(var(--log-w), calc(100% - 48px))}.panel-tab.log-tab.open .btn-icon{transform:scaleX(-1)}.panel-tab.log-tab.closed .btn-icon,.panel-right .panel-tab.log-tab.open .btn-icon{transform:none}.panel-right .panel-tab.log-tab.closed .btn-icon{transform:scaleX(-1)}@media (hover:hover) and (pointer:fine) and (orientation:landscape) and (width>=761px) and (height>=600px){.game:has(>.main>.aim-hud){--side-col:none;--rule-left:0px;--rule-right:0px;grid-template-columns:0 minmax(0,1fr)}.panel-right .game:has(>.main>.aim-hud){grid-template-columns:minmax(0,1fr) 0}.game:has(>.main>.aim-hud):has(>.log-dock.docked){--rule-right:var(--log-w);grid-template-columns:0 minmax(0, 1fr) var(--log-w)}.panel-right .game:has(>.main>.aim-hud):has(>.log-dock.docked){--rule-left:var(--log-w);--rule-right:0px;grid-template-columns:var(--log-w) minmax(0, 1fr) 0}.game:has(>.main>.aim-hud)>.topbar{padding-left:var(--bar-pad);padding-right:var(--bar-pad);grid-template-columns:minmax(0,1fr)}.game:has(>.main>.aim-hud)>.topbar>.brand{display:none}.game:has(>.main>.aim-hud)>.topbar>:is(.scoreboard,.training-bar){grid-column:1}.game:has(>.main>.aim-hud):has(>.log-dock.docked)>.topbar{grid-template-columns:minmax(0, 1fr) var(--log-w);padding-right:0}.game:has(>.main>.aim-hud):has(>.log-dock.docked)>.topbar>.log-bar{grid-column:2}.panel-right .game:has(>.main>.aim-hud):has(>.log-dock.docked)>.topbar{grid-template-columns:var(--log-w) minmax(0, 1fr);padding-left:0;padding-right:var(--bar-pad)}.panel-right .game:has(>.main>.aim-hud):has(>.log-dock.docked)>.topbar>.log-bar{grid-column:1}.panel-right .game:has(>.main>.aim-hud):has(>.log-dock.docked)>.topbar>:is(.scoreboard,.training-bar){grid-column:2}}.aim-hud{z-index:1;box-sizing:border-box;background:var(--panel-bg) padding-box, var(--wood) border-box;border:2px solid #0000;grid-area:table;place-self:start end;align-items:center;gap:10px;min-width:0;padding:0 10px 0 3px;animation:.2s ease-out fade-in;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #b98a3fb3,0 4px 12px #00000073}.aim-hud.left{justify-self:start}.hud-stroke{align-items:center;gap:6px;display:flex}button.hud-spin{background:0 0;border:0;border-radius:50%;place-items:center;width:24px;height:24px;min-height:0;padding:0;display:grid}button.hud-spin svg{width:100%;height:100%}button.hud-spin:hover{background:#d4a64a24}.hud-tilt,.aim-hud .control-head{white-space:nowrap;align-items:center;gap:5px;min-height:0;display:flex}.aim-hud .label{font-size:var(--fs-9);line-height:1}.hud-value,.aim-hud .big-value{font-family:var(--heading);font-weight:600;font-size:var(--fs-13);color:var(--text);font-variant-numeric:tabular-nums;line-height:1}.aim-hud .c-power{flex-direction:row-reverse;flex:1;align-items:center;gap:8px;min-width:0;padding:0;display:flex}.aim-hud .c-power .label{display:none}.aim-hud .control-head{flex:none;justify-content:flex-end;min-width:2.6em}.aim-hud .power-meter{flex:1;gap:1px;min-width:48px;height:8px}.aim-hud .seg-cell{border-radius:1px}.aim-hud .power-last{top:-2px;bottom:-2px}.aim-hud .power-last span{display:none}.aim-hud.corner{grid-template-rows:1fr 1fr;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 8px;padding:2px 8px 2px 4px;display:grid}.aim-hud.corner .hud-stroke{display:contents}.aim-hud.corner .hud-spin{grid-area:1/1/3;width:32px;height:32px}.aim-hud.corner .hud-tilt{grid-area:1/2}.aim-hud.corner .c-power{grid-area:2/2}.aim-hud :is(.c-shoot,.last-event){display:none}.aim-hud:has(.playback-bar){padding:2px}.aim-hud:has(.playback-bar)>:not(.playback-bar){display:none}.aim-hud .playback-bar{flex:1;grid-area:1/1/-1/-1;align-self:stretch;gap:2px;width:auto;height:auto;margin:0}.aim-hud .play-key{border-radius:0;gap:4px;min-height:0;padding:0 4px;font-size:12px}.aim-hud .play-key .btn-icon{width:11px;height:11px}@media (orientation:portrait){.game{flex-direction:column;display:flex}.game>.main{display:flex}.topbar .brand{display:none}.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";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}.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(.playback-bar) :is(.extras-toggle,.c-power){display:none}.playback-bar{grid-column:1/-1;gap:10px;height:56px}.c-shoot{grid-area:shoot}button.shoot{border-radius:50%;width:56px;height:56px;padding:0;font-size:22px}.shoot-label{display:none}.aim-strip{z-index:1;padding:8px 14px calc(8px + env(safe-area-inset-bottom)) 10px;background:var(--bg);opacity:0;visibility:hidden;pointer-events:none;align-items:center;gap:12px;transition:opacity .13s ease-out,visibility 0s linear .13s;display:flex;position:absolute;inset:0}.aim-strip.up{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .13s ease-out}.panel :is(.extras-toggle,.panel-foot>*){transition:opacity .13s ease-out}.panel.aiming :is(.extras-toggle,.panel-foot>*){opacity:0}.aim-strip-picture{aspect-ratio:150/65;background:var(--felt);border-radius:10px;flex:none;height:100%;box-shadow:inset 0 0 0 1px #00000059,inset 0 6px 18px #00000059}.aim-strip-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.aim-strip-fraction{font-family:var(--heading);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:20px;font-weight:600;overflow:hidden}.aim-strip-angle{flex:none}}@media (orientation:landscape){.aim-strip{display:none}}@media (orientation:portrait) and (prefers-reduced-motion:reduce){.aim-strip,.aim-strip.up,.panel :is(.extras-toggle,.panel-foot>*){transition:none}}@media (orientation:portrait),(width<=760px),(orientation:landscape) and (height<=560px) and (width<=860px){.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{--bar-pad:8px;padding:6px var(--bar-pad);gap:4px}.scoreboard{gap:6px}.player-card{gap:6px;padding:4px 6px}.ball-swatch{width:16px;height:16px}.player-card:has(>.replay-btn:not(.empty))>.ball-swatch{display:none}.player-card>button.replay-btn{background:var(--ball);width:24px;height:24px;color:var(--ball-ink);border:none;order:-1;box-shadow:inset -3px -4px 6px #00000059,0 1px 2px #00000080}.player-card>button.replay-btn.empty{display:none}.player-card>button.replay-btn:hover:not(:disabled){background:var(--ball);color:var(--ball-ink)}.player-card>button.replay-btn:disabled{opacity:1}.player-card>button.replay-btn:disabled .btn-icon{opacity:.3}.player-card>button.replay-btn[aria-pressed=true]{box-shadow:inset -3px -4px 6px #00000059, 0 0 0 2px var(--brass), 0 0 10px #d4a64a99}.player-card>.replay-btn .btn-icon{width:16px;height:16px}.led-score{height:20px}.led-small{height:13px}.led-window{padding:3px 4px}.led-window .led-lamp{display:none}.player-status{min-height:0}.player-status .chip{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}.fs-tip{top:max(12px, env(safe-area-inset-top));z-index:50;background:var(--panel-2);border:1px solid var(--brass);border-radius:var(--radius);align-items:center;gap:12px;width:max-content;max-width:calc(100% - 24px);padding:8px 8px 8px 12px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000073}.fs-tip-text{min-width:0;font-size:var(--fs-14);flex-direction:column;gap:2px;display:flex}.fs-tip button.gold{flex:none;min-height:40px}.fs-tip-close{font-size:18px}@media (pointer:coarse){button.fs-tip-close{width:40px;height:40px}}@media (width<=440px){.fs-tip{gap:8px}.fs-tip .row-icon,.fs-tip-text .muted{display:none}}.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;padding-right:48px;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{max-width:680px;font-size:var(--fs-15);color:#c9c2ae;margin:0;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{font-size:var(--fs-13);color:var(--text-2);border:1px solid #d4a64a59;border-radius:4px;padding:4px 9px}.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{--frame:12px;--inlay:0px;position:relative;box-shadow:0 0 0 1px #0000008c,0 3px 8px #0006}.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{font-size:var(--fs-12);color:var(--muted);margin:0}.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{font-weight:600;font-size:var(--fs-15);color:var(--text)}.score-text span{font-size:var(--fs-13);color:var(--muted);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{font-size:var(--fs-14);color:#c9c2ae;margin:0;padding-left:18px;line-height:1.5}.rules-foot{font-size:var(--fs-13);border-top:1px solid #d4a64a26;justify-content:space-between;align-items:center;gap:16px;padding:12px 28px;display:flex}button.link.rules-back{font-size:var(--fs-12);margin:-8px 0;padding:8px 0}.rules-index{flex-direction:column;gap:18px;padding:20px 28px 24px;display:flex}.dialog h3.rules-group-head{margin:0 0 8px}.rules-group-head small{font-family:Barlow,system-ui,sans-serif;font-weight:400;font-size:var(--fs-12);letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px}.rules-entries{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}button.rules-entry{text-align:left;background:var(--panel);border:1.5px solid #ffffff14;border-radius:12px;align-items:center;gap:12px;min-width:0;padding:10px 12px 10px 10px;display:flex;box-shadow:0 2px #00000059}button.rules-entry:hover:not(:disabled){background:#1a231c;border-color:#d4a64a59}.rules-entry .thumb{flex:none;width:64px;height:42px}.rules-entry-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.rules-entry-go{color:var(--brass);flex:none;font-size:24px;line-height:1}@media (width<=760px){.dialog.rules-dialog{--frame:0px;--safe:1;background:var(--panel-bg);width:100vw;height:100dvh;max-height:none;margin:0}.rules-dialog .dialog-body{box-shadow:none}.rules-head{padding:18px 16px 14px}.rules-head h2{font-size:30px}.rules-body{grid-template-columns:minmax(0,1fr);padding:16px}.rules-diagram{max-width:320px}.score-grid{grid-template-columns:1fr}.rules-index{padding:16px}.rules-entries{grid-template-columns:minmax(0,1fr)}.rules-foot{display:none}}@media (height<=560px) and (orientation:landscape){.dialog.rules-dialog{--frame:0px;--safe:1;background:var(--panel-bg);width:100vw;height:100dvh;max-height:none;margin:0}.rules-body{flex:none;overflow-y:visible}.rules-head{display:contents}.rules-title{z-index:1;background:var(--panel-bg);padding:10px 16px 6px;position:sticky;top:0;box-shadow:0 6px 8px -6px #0009}.rules-dialog>.window-close{z-index:2}.rules-head h2{margin:2px 0 0;font-size:26px}.rules-intro{padding:6px 16px 0}.rules-chips{margin:10px 16px 0}.rules-body,.rules-index{border-top:1px solid #d4a64a26;margin-top:12px}}.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:var(--fs-13)}.info-title{align-items:center;gap:10px;margin:0;font-size:22px;display:flex}@media (width<=440px){.info-title{font-size:18px}}.info-title .beta{font-size:11px}.rules ul.info-contacts{gap:8px;margin:4px 0 14px;padding:0;list-style:none;display:grid}.rules .info-contacts li{font-size:var(--fs-14);align-items:center;gap:10px;display:flex}.info-contacts svg{width:18px;height:18px;color:var(--muted);flex:none}.rules p.author{font-size:var(--fs-12);color:var(--muted);margin-bottom:0}.info-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;column-gap:12px;padding-right:48px;display:flex}.info-head p.app-version{font-size:var(--fs-12);color:var(--faint);white-space:nowrap;-webkit-user-select:text;user-select:text;margin:6px 0 0 auto}.beta.test{border-color:var(--bad);color:#f0846f}@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}.player-card>button.replay-btn{width:20px;height:20px}.player-card>.replay-btn .btn-icon{width:14px;height:14px}}.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"}.c-rack{grid-area:rack}.training-bar{gap:8px;padding:4px 8px}.training-bar>.board-controls{margin-block:-4px}.training-game{font-size:14px}button.traj-btn{border-radius:50%;justify-content:center;width:32px;padding:0}.traj-label{display:none}}.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;font-weight:600;font-size:var(--fs-13);color:var(--brass);margin:0}.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{font-size:var(--fs-13);color:var(--muted)}.crash-report{font-size:var(--fs-14);color:var(--brass-hi);align-self:flex-start}.crash-error{font-size:var(--fs-12);color:var(--muted);word-break:break-word;opacity:.8}.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)}@media (height<=560px) and (orientation:landscape){.howto .dialog-body{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-areas:"title title""art step""art text""dots actions";align-content:start;column-gap:18px;padding:14px 18px;display:grid}.dialog.howto{max-width:min(640px,100vw - 32px)}.howto h2{grid-area:title;margin-bottom:6px}.howto-art{grid-area:art;align-self:center;margin:0}.howto h3{grid-area:step;margin-top:0}.howto p{grid-area:text;min-height:0;font-size:13px;line-height:1.4}.howto-dots{grid-area:dots;justify-content:flex-start;align-self:center;margin-top:10px}.howto .dialog-actions{grid-area:actions;margin-top:10px}}.online-lobby{flex-direction:column;gap:14px;display:flex}.online-me{background:#00000059;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:inset 0 0 0 1px #d4a64a33}.online-name{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.online-name input{width:100%;min-width:0;font-family:var(--heading);color:var(--text);border:none;border-bottom:1px dashed var(--brass-line-2);background:0 0;outline:none;padding:2px 0;font-size:19px;font-weight:600}.online-name input:focus{border-bottom-color:var(--brass)}.online-name input::placeholder{color:var(--faint)}.vs-avatar.online-avatar .avatar{width:52px;height:52px}.online-me.need-name{box-shadow:inset 0 0 0 1.5px var(--brass)}.need-name-note{color:var(--brass-hi);margin-top:-6px}.dice-btn{flex:none;font-size:18px}.online-status{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:13px;display:inline-flex}.online-status .dot{background:var(--warn);border-radius:50%;width:9px;height:9px}.online-status.online .dot{background:var(--accent);box-shadow:0 0 6px var(--accent)}.online-status.offline .dot,.online-status.outdated .dot{background:var(--bad)}.online-status.connecting .dot{animation:1.4s ease-in-out infinite pulse}.online-list{flex-direction:column;gap:8px;display:flex}.online-list h3{margin:0}.online-list-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.online-list-head h3{margin:0}.lobby-sections[hidden]{display:none}.online-list ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.online-table{background:var(--section);box-shadow:inset 0 0 0 1px var(--brass-line);border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.online-table .thumb{flex:none}.online-table-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.online-table-name{font-family:var(--heading);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.online-table-line,.online-table-who{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.online-table-players{align-items:center;gap:6px;min-width:0;padding:2px 0;font-size:13px;display:flex}.online-table-who{min-width:0;color:var(--text-2)}.online-table-watching{white-space:nowrap;flex:none}.online-table-players .list-avatar{flex:none;width:22px;height:22px}.online-table button{flex:none;min-width:76px}.online-note{color:var(--muted);margin:0;font-size:14px}.online-note.bad{color:#ff9b9b}.online-banned{text-align:center;background:#00000040;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:26px 22px 22px;display:flex;box-shadow:inset 0 0 0 1px #d8452e8c}.online-banned svg{color:#ff8f7d;margin-bottom:4px}.online-banned h3{font-family:var(--heading);color:var(--text);margin:0;font-size:20px}.online-banned p{max-width:34em;margin:4px 0 0}.banned-dialog .online-banned{box-shadow:none;background:0 0;padding:4px 8px 0}.waiting-card{box-sizing:border-box;max-width:min(92vw,460px);position:relative}.waiting-card p{margin:8px 0}.waiting-game{font-family:var(--heading);font-size:18px}.waiting-game .muted{font-family:Barlow,system-ui,sans-serif;font-size:14px}.waiting-spinner{border:3px solid var(--brass-line-2);border-top-color:var(--brass);border-radius:50%;width:34px;height:34px;margin:0 auto 10px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.waiting-link input{box-sizing:border-box;border:1px solid var(--brass-line-2);width:100%;color:var(--text-2);font:inherit;text-align:center;background:#00000059;border-radius:8px;padding:8px 10px;font-size:13px}.waiting-card .dialog-actions{flex-wrap:wrap;justify-content:center}.waiting-practice{border-top:1px solid var(--brass-line-2);flex-direction:column;align-items:center;gap:8px;margin-top:18px;padding-top:16px;display:flex}.waiting-practice button{padding:10px 20px}.waiting-practice .muted{max-width:34em;font-size:13px}.waiting-badge{z-index:3;box-sizing:border-box;max-width:calc(100% - 24px);color:var(--text);white-space:nowrap;background:#0f1511eb;border-radius:999px;align-items:center;gap:10px;padding:5px 6px 5px 12px;font-size:14px;font-weight:600;animation:.3s ease-out fade-in;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #d4a64a73,0 8px 20px #00000073}.waiting-badge-spinner{border:2px solid var(--brass-line-2);border-top-color:var(--brass);border-radius:50%;flex:none;width:14px;height:14px;animation:1s linear infinite spin}.waiting-badge-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.waiting-badge button{border-radius:999px;flex:none;padding:4px 12px;font-size:13px}.online-hud{pointer-events:none;z-index:3;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:12px;right:12px}.online-pill{box-shadow:0 0 0 1px var(--brass-line-2);color:var(--text-2);white-space:nowrap;background:#0f1511e0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;display:inline-flex}.online-pill.clock{font-family:var(--heading);font-variant-numeric:tabular-nums;color:var(--text);font-size:18px;font-weight:600}.online-pill.clock.mine{box-shadow:0 0 0 1.5px var(--brass);color:var(--brass-hi)}.online-pill.clock.low{box-shadow:0 0 0 1.5px var(--bad);color:#ff9b9b;animation:1s ease-in-out infinite pulse}.clock-who,.clock-timeouts{color:var(--muted);font-family:Barlow,system-ui,sans-serif;font-size:13px;font-weight:500}.clock-timeouts{color:#ff9b9b}.online-banner{max-width:min(92%,560px);box-shadow:0 0 0 1px var(--warn), 0 12px 30px #0000008c;text-align:center;color:var(--text);z-index:3;background:#121914f2;border-radius:12px;padding:8px 16px;font-size:14px;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.online-banner.bad{box-shadow:0 0 0 1px var(--bad), 0 12px 30px #0000008c}.online-toss{top:64px}.online-toast{left:50%;top:calc(16px + env(safe-area-inset-top,0px));max-width:min(92vw,480px);box-shadow:0 0 0 1px var(--bad), 0 12px 30px #0000008c;color:var(--text);text-align:center;z-index:60;background:#121914f7;border-radius:12px;padding:10px 18px;font-size:14px;animation:.25s ease-out pop2;position:fixed;transform:translate(-50%)}.next-set-soon{color:var(--muted);margin:10px 0 0;animation:1.4s ease-in-out infinite pulse}.result-card .final-names{color:var(--muted);vertical-align:middle;font-size:16px;font-weight:500}.rematch-line:empty{display:none}.avatar{-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;display:block;box-shadow:0 2px 6px #00000080}.vs-avatar{background:0 0;border:none;border-radius:50%;flex:none;padding:0;display:block;position:relative}button.vs-avatar:hover:not(:disabled){background:0 0}button.vs-avatar:hover .avatar,button.vs-avatar:focus-visible .avatar{outline:2px solid var(--brass-hi);outline-offset:-1.5px;box-shadow:0 0 14px #d4a64a80}.vs-avatar .avatar{width:56px;height:56px}.vs-avatar-ball{width:20px;height:20px;position:absolute;bottom:-3px;right:-5px}.vs-avatar-edit{background:var(--brass);width:20px;height:20px;color:var(--brass-ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:-4px;right:-6px;box-shadow:0 1px 3px #00000080}.vs-side.right .vs-avatar-ball{left:-5px;right:auto}.vs-side.right .vs-avatar-edit{left:-6px;right:auto}.level-head{justify-content:space-between;align-items:flex-end;margin-bottom:4px;display:flex}.settings-dialog{width:min(460px,100vw - 32px)}.settings-section{border-top:1px solid #d4a64a26;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 0;display:flex}.settings-section:first-of-type{border-top:none;padding-top:0}.dialog .settings-section h3{margin:0 0 2px}.settings-section .menu-row{align-self:stretch;margin:0 -12px}.settings-section .measles-label .measles-ball{width:16px;height:16px}.settings-col+.settings-col .settings-section:first-of-type{border-top:1px solid #d4a64a26;padding-top:12px}@media (width<=599px){.dialog.settings-dialog{--frame:0px;--safe:1;background:var(--panel-bg);width:100vw;max-width:none;height:100dvh;max-height:none;margin:0}}@media (width>=600px){.dialog.settings-dialog{width:min(820px,100vw - 32px);max-width:none}.settings-cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0;display:grid}.settings-col+.settings-col{border-left:1px solid #d4a64a1f;padding-left:24px}.settings-col:first-child{padding-right:24px}.settings-col+.settings-col .settings-section:first-of-type{border-top:none;padding-top:0}}@media (height<=560px) and (orientation:landscape){.dialog.settings-dialog{--frame:0px;--safe:1;background:var(--panel-bg);width:100vw;max-width:none;height:100dvh;max-height:none;margin:0}.settings-dialog .dialog-body{padding:10px 18px}.settings-dialog h2{margin-bottom:0;font-size:20px;line-height:40px}.settings-section{gap:4px;padding:8px 0}.settings-section .menu-row{min-height:42px}}.profile-dialog{width:min(480px,100vw - 32px)}.profile{align-items:center;gap:20px;display:flex}.vs-avatar.profile-avatar .avatar{width:88px;height:88px}.profile-avatar .vs-avatar-edit{width:24px;height:24px;top:0;right:0}.profile-fields{flex-direction:column;flex:1;align-items:flex-start;gap:8px;min-width:0;display:flex}.profile-fields .name-field{align-self:stretch}.profile-note{font-size:var(--fs-13);color:var(--muted);margin:16px 0 0;line-height:1.45}@media (width<=420px){.profile{gap:14px}.vs-avatar.profile-avatar .avatar{width:72px;height:72px}}.avatar-dialog{width:min(620px,100vw - 32px)}.avatar-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}button.avatar-choice{background:#0000004d;border:1.5px solid #ffffff14;border-radius:12px;place-items:center;padding:6px;display:grid;position:relative}button.avatar-choice.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}button.avatar-choice:disabled{opacity:.3}.avatar-choice .avatar{aspect-ratio:1;width:100%;max-width:80px;height:auto}.avatar-choice .check-badge{top:3px;right:3px}.scoreboard{container:scoreboard/inline-size}.player-card>.avatar{width:36px;height:36px}@container scoreboard (width<=819px){.player-card>.avatar{display:none}}.overlay-card .winner-avatar{width:84px;height:84px;margin:0 auto 10px}.overlay-card .winner-avatar:has(+.trophy){vertical-align:middle;margin:0 14px 10px 0;display:inline-block}.overlay-card .winner-avatar+.trophy{vertical-align:middle;margin:0 0 10px;font-size:56px;line-height:1;display:inline-block}@media (height<=560px) and (orientation:landscape){.overlay{place-items:safe center;padding:8px;overflow-y:auto}.overlay-card{padding:12px 24px}.overlay-card .winner-avatar{width:56px;height:56px;margin-bottom:6px}.overlay-card .winner-avatar:has(+.trophy){margin:0 10px 6px 0}.overlay-card .winner-avatar+.trophy{margin-bottom:6px;font-size:40px}.overlay-card h2{margin-bottom:2px;font-size:22px}.final-score{margin:2px 0 8px;font-size:28px}.overlay-card .dialog-actions{margin-top:6px}.overlay-card button.replay-link{margin-top:8px}}@media (width<=560px){.vs-avatar .avatar{width:46px;height:46px}.avatar-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}button.avatar-choice{padding:4px}}@media (orientation:portrait),(width<=760px),(orientation:landscape) and (height<=560px) and (width<=860px){.player-card>.avatar{width:26px;height:26px;box-shadow:none}@container scoreboard (width>=485px){.player-card>.avatar{display:block}}}.avatar-head{align-items:stretch;gap:10px;margin:0 0 14px;display:flex}.avatar-head button.avatar-choice{flex:none;width:76px}.avatar-head .avatar-choice .avatar{max-width:60px}button.avatar-customize{text-align:left;border:1.5px solid var(--brass);background:linear-gradient(#d4a64a29,#d4a64a0d);border-radius:12px;flex:1;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}button.avatar-customize:hover:not(:disabled){background:linear-gradient(#d4a64a3d,#d4a64a14)}.avatar-customize .avatar{width:52px;height:52px}.avatar-customize-text{flex-direction:column;gap:2px;min-width:0;display:flex}.avatar-customize-title{font-family:var(--heading);letter-spacing:.08em;text-transform:uppercase;color:var(--brass-hi);align-items:center;gap:7px;font-size:17px;font-weight:700;display:flex}.avatar-customize-sub{font-size:var(--fs-13);color:var(--muted)}.avatar-customize-go{color:var(--brass);margin-left:auto;font-size:30px;line-height:1}.avatar-grid-label{margin:0 0 8px}.avatar-own-tag{background:var(--brass);color:var(--brass-ink);font-family:var(--heading);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:6px;padding:0 6px;font-size:10px;font-weight:600;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.avatar-dialog.building{width:min(720px,100vw - 32px);height:min(820px,100dvh - 32px)}.avatar-dialog.building .dialog-body{flex-direction:column;padding:16px 20px;display:flex;overflow:hidden}.builder{flex-direction:column;flex:1;min-height:0;display:flex}.builder-title{margin:0 0 10px}.builder-top{flex:none;align-items:center;gap:16px;display:flex}.builder-preview{flex:none}.builder-preview .avatar{width:128px;height:128px;box-shadow:0 6px 16px #00000080}.builder-side{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.builder-mini{border:1px solid var(--line);background:#0006;border-radius:10px;align-self:flex-start;align-items:center;gap:8px;max-width:100%;padding:6px 12px 6px 6px;display:inline-flex}.builder-mini .avatar{width:32px;height:32px}.builder-mini-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.builder-mini-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--heading);font-weight:600;font-size:var(--fs-14);overflow:hidden}.builder-mini .label{font-size:var(--fs-10)}.builder-tools{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.builder-tools button{white-space:nowrap;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:6px 8px;display:inline-flex}.builder-warn{color:var(--warn);font-size:var(--fs-13);flex:none;margin:8px 0 0;line-height:1.35}.builder-warn:empty{display:none}.builder-tabs{scrollbar-width:none;background:#0006;border-radius:10px;flex:none;gap:2px;margin-top:12px;padding:3px;display:flex;overflow-x:auto}.builder-tabs::-webkit-scrollbar{display:none}.builder-tabs button{min-height:40px;font-family:var(--heading);font-weight:600;font-size:var(--fs-14);letter-spacing:.04em;white-space:nowrap;color:#ffffffb3;background:0 0;border:none;border-radius:8px;flex:1 0 auto;padding:6px 12px}.builder-tabs button:hover:not(.on):not(:disabled){color:var(--text);background:#ffffff0f}.builder-tabs button.on,.builder-tabs button.on:hover:not(:disabled){background:var(--brass);color:var(--brass-ink)}.builder-panel{overscroll-behavior:contain;flex:1;min-height:0;margin-top:6px;padding:0 2px 6px;overflow-y:auto}.builder-control{padding:8px 0 2px}.builder-control+.builder-control{border-top:1px solid var(--line)}.builder-control-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.builder-chosen{font-size:var(--fs-13);color:var(--text-2);text-align:right}.builder-hint{font-size:var(--fs-12);color:var(--muted);margin:2px 0 0;line-height:1.35}.builder-control.idle .builder-options{opacity:.5}.builder-options{flex-wrap:wrap;gap:6px;padding:6px 2px 8px;display:flex}button.builder-option{background:#0000004d;border:1.5px solid #ffffff14;border-radius:10px;flex:none;padding:3px;position:relative}button.builder-option:hover:not(:disabled){background:#d4a64a1a}button.builder-option.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}.builder-option img{background:#2e5a63;border-radius:7px;width:56px;height:56px;display:block}.builder-options.swatches button.builder-option{border-radius:50%;padding:4px}.builder-swatch{border-radius:50%;place-items:center;width:34px;height:34px;font-size:18px;font-weight:800;line-height:1;display:grid;box-shadow:inset 0 0 0 1px #00000059}.builder-none{width:18px;height:18px;color:var(--text-2);background:#0f1511e0;border-radius:50%;place-items:center;display:grid;position:absolute;top:1px;left:1px}.builder-check{background:var(--brass);width:18px;height:18px;color:var(--brass-ink);border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:none;position:absolute;top:1px;right:1px}.builder-option.on .builder-check{display:grid}.builder-actions{flex:none;margin-top:10px}.builder-code{margin-top:12px}.builder-code-row{gap:8px;margin-top:10px;display:flex}.builder-code input{border:1px solid var(--brass-line-2);min-width:0;min-height:40px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:var(--fs-12);background:#0006;border-radius:8px;flex:1;padding:8px 10px}.builder-code input[aria-invalid=true]{border-color:var(--bad)}.builder-code input:focus-visible{border-color:var(--brass);box-shadow:inset 0 0 0 1px var(--brass);outline:none}.builder-code button.link{font-size:var(--fs-14);margin-top:14px}@media (width<=560px){.avatar-dialog.building{--frame:0px;--safe:1;background:var(--panel-bg);width:100vw;max-width:none;height:100dvh;max-height:none;margin:0}.avatar-dialog.building .dialog-body{padding:12px}.builder-title{margin-bottom:8px;font-size:20px}.builder-top{gap:12px}.builder-preview .avatar{width:104px;height:104px}.builder-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-tools button{gap:4px;padding:4px 6px;font-size:12.5px}.builder-tabs button{padding:6px 10px;font-size:13.5px}.builder-options.pictures,.builder-options.bits{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));display:grid}.builder-options.pictures .builder-option img,.builder-options.bits .builder-option img{aspect-ratio:1;width:100%;height:auto}button.avatar-customize{gap:10px;padding:8px 10px}.avatar-customize .avatar{width:46px;height:46px}.avatar-head{gap:8px}.avatar-head button.avatar-choice{width:64px}.avatar-head.with-own .avatar-customize>.avatar{display:none}.avatar-head.with-own .avatar-customize-title{font-size:15px}}@media (orientation:landscape) and (height<=520px){.avatar-dialog.building{--frame:0px;--safe:1;background:var(--panel-bg);width:100vw;max-width:none;height:100dvh;max-height:none;margin:0}.avatar-dialog.building .dialog-body{padding:10px 12px}.builder{grid-template:"title tabs""top panel""warn panel"".panel"1fr"actions panel"/minmax(250px,38%) minmax(0,1fr);column-gap:16px;display:grid}.builder-title{grid-area:title;align-self:center;margin:0 0 6px;font-size:18px}.builder-top{grid-area:top;align-items:flex-start;gap:10px}.builder-preview .avatar{width:84px;height:84px}.builder-side{gap:6px}.builder-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-tools button{gap:4px;padding:4px 6px;font-size:12.5px}.builder-warn{grid-area:warn}.builder-tabs{grid-area:tabs;margin-top:0;margin-right:48px}.builder-panel{grid-area:panel}.builder-code{grid-area:tabs-start/tabs-start/panel-end/panel-end;margin-top:0}.builder-actions{grid-area:actions}}
