:root{--vw:1vw;--vh:1vh;--ink:#16213a;--paper:#fffdf6;--accent:#ff7a3d;--accent-2:#d7ff3a;--blue:#2a62a8;--muted:#6b7489;--shadow:0 6px 0 #16213a40;--display:"Bungee", "Impact", system-ui, sans-serif;--body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%;font-family:var(--body);color:var(--ink);-webkit-user-select:none;user-select:none;background:#8fd3ff;margin:0;overflow:hidden}#game{cursor:crosshair;touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}#vignette{pointer-events:none;z-index:1;background:radial-gradient(at 50% 55%,#0000 55%,#0a142347 100%);position:fixed;inset:0}#overlay{z-index:10;background:radial-gradient(#16213a26,#16213a8c);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#overlay.clear{pointer-events:none;background:0 0}#overlay.clear .panel{pointer-events:auto}.panel{width:min(440px,100%);max-height:calc(calc(var(--vh) * 100) - 32px);background:var(--paper);border:3px solid var(--ink);box-shadow:0 10px 0 var(--ink), 0 30px 60px #00000040;border-radius:22px;padding:24px;animation:.25s cubic-bezier(.2,1.4,.4,1) pop-in;overflow:auto}@keyframes pop-in{0%{opacity:0;transform:scale(.9)translateY(10px)}}h1{font-family:var(--display);color:var(--accent);text-shadow:3px 3px 0 var(--ink);letter-spacing:1px;margin:0 0 18px;font-size:40px;font-weight:400;line-height:.95}h1 span{color:var(--blue);font-size:26px;display:block}h2{font-family:var(--display);color:var(--accent);text-shadow:2px 2px 0 var(--ink);margin:0 0 8px;font-size:32px;font-weight:400}label,.label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 0 6px;font-size:13px;font-weight:800;display:block}input{font:800 18px var(--body);border:3px solid var(--ink);width:100%;color:var(--ink);background:#fff;border-radius:12px;outline:none;margin-top:6px;padding:10px 14px}input:focus{border-color:var(--accent)}button{font:800 16px var(--body);border:3px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:0 4px 0 var(--ink);white-space:nowrap;background:#fff;border-radius:14px;flex:1;padding:12px 16px;transition:transform 60ms,box-shadow 60ms}button:hover{box-shadow:0 5px 0 var(--ink);transform:translateY(-1px)}button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}button.primary{background:var(--accent);color:#fff;text-shadow:1px 1px 0 var(--ink)}button.bot{background:#e9f7ff;padding:10px 8px;font-size:14px}button:disabled{opacity:.5;cursor:default}.row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.row.join input{text-transform:uppercase;letter-spacing:.3em;text-align:center;flex:1;min-width:0;margin:0}.row.join button{flex:none}#colors{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:3px solid var(--ink);cursor:pointer;width:36px;height:36px;box-shadow:0 3px 0 var(--ink);border-radius:50%;flex:none;padding:0}.swatch.selected{outline:4px solid var(--accent);outline-offset:2px}.divider{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin:22px 0 0;font-size:13px;font-weight:800;display:flex}.divider:before,.divider:after{content:"";background:#d9dce4;flex:1;height:2px}.error{color:#d62f3f;min-height:1.2em;margin-top:12px;font-weight:800}.small{color:var(--muted);margin:14px 0 0;font-size:14px}#room-code{font-family:var(--display);letter-spacing:.12em;color:var(--blue);text-shadow:3px 3px 0 var(--ink);margin-bottom:10px;font-size:64px}#invite-link{color:var(--ink);word-break:break-all;-webkit-user-select:all;user-select:all;cursor:text;border:2px dashed #b9bfcc;border-radius:10px;margin-top:10px;padding:8px 12px;font:700 13px ui-monospace,Cascadia Mono,Menlo,monospace}#lobby-players{gap:8px;margin-top:16px;display:grid}.lobby-player{border:3px solid var(--ink);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-weight:800;display:flex}.lobby-player .dot{border:2px solid var(--ink);border-radius:50%;width:18px;height:18px}.lobby-player .state{text-transform:uppercase;color:var(--muted);margin-left:auto;font-size:13px}.lobby-player .state.ready{color:#1a9b50}.lobby-player.empty{color:var(--muted);background:0 0;border-style:dashed}#end-score{font-family:var(--display);color:var(--ink);font-size:48px}body.touch .pc-only,body:not(.touch) .touch-only{display:none}.settings{flex-wrap:wrap;gap:0 16px;display:flex}.seg{gap:8px;display:flex}#characters{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.char{aspect-ratio:1;box-shadow:0 3px 0 var(--ink);background:#e9f7ff;border-radius:12px;place-items:center;padding:0;display:grid;overflow:hidden}.char img{object-fit:contain;pointer-events:none;width:100%;height:100%}.char.selected{background:var(--accent-2);outline:4px solid var(--accent);outline-offset:1px}.seg button{box-shadow:0 3px 0 var(--ink);padding:8px 10px;font-size:14px}.seg button.selected{background:var(--accent-2)}#room-list{gap:8px;max-height:220px;margin-top:12px;display:grid;overflow-y:auto}.room-empty{color:var(--muted);text-align:center;padding:8px;font-size:14px;font-weight:600}.room-row{text-align:left;width:100%;box-shadow:0 3px 0 var(--ink);align-items:center;gap:10px;padding:10px 12px;font-size:15px;display:flex}.room-row .dot{border:2px solid var(--ink);border-radius:50%;flex:none;width:16px;height:16px}.room-row .owner{text-overflow:ellipsis;flex:1;overflow:hidden}.room-row .code{font-family:var(--display);color:var(--blue);letter-spacing:.08em;font-weight:400}.room-row .status{text-transform:uppercase;color:#1a9b50;font-size:12px}.room-row.full{color:var(--muted);background:#f1f2f5;border-color:#9aa1b1;box-shadow:0 3px #9aa1b1}.room-row.full .status{color:#d62f3f}#requests{gap:8px;display:grid}.request{border:3px solid var(--accent);background:#fff3ec;border-radius:14px;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;font-weight:800;animation:.25s cubic-bezier(.2,1.4,.4,1) pop-in;display:flex}.request .who{text-overflow:ellipsis;flex:1;overflow:hidden}.request button{flex:none;padding:8px 12px;font-size:14px}.spinner{background:var(--accent-2);border:3px solid var(--ink);border-radius:50%;width:44px;height:44px;margin:18px auto 4px;animation:.7s cubic-bezier(.5,0,.5,1) infinite alternate bounce-ball}@keyframes bounce-ball{0%{transform:translateY(-14px)}to{transform:translateY(10px)scaleY(.9)}}#hud{pointer-events:none;z-index:5;position:fixed;inset:0}#scoreboard{font-family:var(--display);align-items:center;gap:10px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.team{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:10px;padding:6px 14px;display:flex}.team .name{font:800 15px var(--body);max-width:calc(var(--vw) * 22);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.team .dot{border:2px solid var(--ink);border-radius:50%;width:14px;height:14px}.team .score{text-align:center;min-width:1.3em;font-size:30px}.team .serve{color:var(--accent-2);-webkit-text-stroke:1.5px var(--ink);visibility:hidden;font-size:22px}.team.serving .serve{visibility:visible}.team.bump .score{animation:.5s bump}@keyframes bump{30%{color:var(--accent);transform:scale(1.6)}}.vs{color:#fff;-webkit-text-stroke:1.5px var(--ink);font-size:24px}#ping{font:800 13px var(--body);color:#fff;text-shadow:1px 1px 0 var(--ink);position:absolute;top:16px;right:16px}#callout{text-align:center;font-family:var(--display);font-size:clamp(34px, calc(var(--vw) * 8), 76px);color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);opacity:0;position:absolute;top:30%;left:0;right:0}#callout.show{animation:1.3s cubic-bezier(.2,1.5,.4,1) forwards callout}#callout.good{color:var(--accent-2)}#callout.bad{color:#ff5a6a}#callout.gold{color:#ffd23d}@keyframes callout{0%{opacity:0;transform:scale(.4)rotate(-6deg)}15%{opacity:1;transform:scale(1.1)rotate(2deg)}25%{transform:scale(1)rotate(0)}80%{opacity:1}to{opacity:0;transform:scale(1)translateY(-20px)}}#hint{text-align:center;font:800 18px var(--body);color:#fff;text-shadow:0 2px 0 var(--ink), 0 0 12px #16213a99;letter-spacing:.04em;position:absolute;top:88px;left:0;right:0}#bottom{align-items:center;gap:12px;display:flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}#charge{border:3px solid var(--ink);opacity:0;background:#ffffffb3;border-radius:10px;width:220px;height:18px;transition:opacity .15s;overflow:hidden}#charge.on{opacity:1}#charge-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent) 70%, #ff3d5a);width:0;height:100%}#dash{font:800 12px var(--body);border:3px solid var(--ink);background:var(--accent-2);border-radius:10px;padding:4px 10px;transition:opacity .2s}#dash.cooldown{opacity:.35}#controls-help{text-align:center;font:600 13px var(--body);color:#fff;text-shadow:0 1px 2px #000c;padding:0 16px;position:absolute;bottom:10px;left:0;right:0}@media (width<=640px){#controls-help{display:none}#charge{width:140px}.team{padding:4px 10px}.team .score{font-size:24px}#room-code{font-size:48px}}html,body{overscroll-behavior:none;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;height:100dvh}#overlay{touch-action:pan-y;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.panel{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:calc(100dvh - 32px)}#touch{z-index:6;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#touch button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}#stick-zone{pointer-events:auto;touch-action:none;width:50%;position:absolute;top:64px;bottom:0;left:0}#stick{opacity:0;width:0;height:0;transition:opacity .12s;position:fixed;top:0;left:0}#stick.on{opacity:1}#stick:before{content:"";left:calc(-1 * var(--stick-r,56px) - 8px);top:calc(-1 * var(--stick-r,56px) - 8px);width:calc(2 * var(--stick-r,56px) + 16px);height:calc(2 * var(--stick-r,56px) + 16px);background:#ffffff29;border:3px solid #ffffff8c;border-radius:50%;position:absolute;box-shadow:0 0 0 2px #16213a40}#stick-knob{border:3px solid var(--ink);background:#ffffffe6;border-radius:50%;width:60px;height:60px;position:absolute;top:-30px;left:-30px;box-shadow:0 4px #16213a80}#touch:not(:has(#stick.on)) #stick-zone:after{content:var(--lbl-move,"MOVE");left:max(28px, env(safe-area-inset-left));bottom:max(28px, env(safe-area-inset-bottom));color:#ffffffb3;width:110px;height:110px;font:800 13px var(--body);letter-spacing:.1em;border:3px dashed #ffffff73;border-radius:50%;place-items:center;display:grid;position:absolute}#shot-pad{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));width:250px;height:230px;position:absolute}.tbtn{border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);color:var(--ink);font:800 14px var(--body);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;transition:transform 50ms,box-shadow 50ms;display:flex;position:absolute}.tbtn:after{content:"";border-radius:50%;position:absolute;inset:-12px}.tbtn .sub{opacity:.85;font-size:10px;font-weight:700}.tbtn:hover{box-shadow:0 5px 0 var(--ink);transform:none}.tbtn.down{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)scale(.96)}.tbtn.drive{color:#fff;width:112px;height:112px;text-shadow:1px 1px 0 var(--ink);background:conic-gradient(#ff3d5a calc(var(--charge,0) * 360deg), var(--accent) 0);font-size:18px;bottom:0;right:0}.tbtn.drive.charging{animation:.3s infinite alternate charge-pulse}@keyframes charge-pulse{to{filter:brightness(1.15)}}.tbtn.dink{background:#e9f7ffe6;width:78px;height:78px;bottom:6px;right:124px}.tbtn.lob{background:#f3e9ffe6;width:78px;height:78px;bottom:124px;right:34px}.tbtn.dash{background:var(--accent-2);width:64px;height:64px;font-size:12px;bottom:104px;right:132px}.tbtn.dash.cooldown{opacity:.4}#touch.serving .tbtn.drive .sub:before{content:var(--lbl-serve,"serve · ")}#t-pause,#t-emote{top:max(12px, env(safe-area-inset-top));width:46px;height:46px;box-shadow:0 3px 0 var(--ink);background:#fffdf6eb;border-radius:14px;padding:0;font-size:18px;position:absolute}#t-pause{left:max(12px, env(safe-area-inset-left));justify-content:center;align-items:center;gap:5px;display:flex}#t-pause span{background:var(--ink);border-radius:2px;width:5px;height:16px}#t-emote{right:max(12px, env(safe-area-inset-right));top:max(40px, calc(env(safe-area-inset-top) + 28px))}#t-emotes{right:max(12px, env(safe-area-inset-right));top:calc(max(40px, calc(env(safe-area-inset-top) + 28px)) + 54px);flex-direction:column;gap:8px;display:flex;position:absolute}#t-emotes button{width:46px;height:46px;box-shadow:0 3px 0 var(--ink);border-radius:50%;padding:0;font-size:22px}body.touch #controls-help,body.touch #bottom{display:none}body.touch #game{cursor:default}body.touch #ping{top:max(14px, env(safe-area-inset-top));right:max(66px, calc(env(safe-area-inset-right) + 54px))}@media (height<=520px){.panel{border-radius:18px;padding:14px 18px}h1{margin-bottom:8px;font-size:26px}h1 span{font-size:17px}label,.label{margin:6px 0 4px}input{padding:7px 12px;font-size:16px}button{padding:9px 12px;font-size:15px}.row{margin-top:10px}.divider{margin-top:12px}#room-code{margin-bottom:4px;font-size:40px}#scoreboard{top:max(8px, env(safe-area-inset-top))}.team{border-radius:12px;padding:3px 10px}.team .score{font-size:22px}.team .name{font-size:13px}#hint{font-size:15px;top:58px}#callout{top:24%}}@media (height<=520px) and (width>=640px){#room-list{max-height:110px}}@media (height<=430px){#shot-pad{transform-origin:100% 100%;transform:scale(.8)}#stick-zone{top:56px}#t-pause,#t-emote{width:40px;height:40px;top:max(8px, env(safe-area-inset-top))}body.touch #t-emotes{top:calc(max(8px, env(safe-area-inset-top)) + 48px)}body.touch #ping{top:max(10px, env(safe-area-inset-top));right:max(62px, calc(env(safe-area-inset-right) + 52px))}}#install-tip{text-align:center;margin-top:10px}@media (width<=520px){#scoreboard{top:max(14px, env(safe-area-inset-top));gap:6px}.team{border-radius:12px;gap:6px;padding:3px 9px}.team .name{display:none}.team .score{font-size:22px}.team .serve{font-size:16px}.vs{font-size:18px}body.touch #t-emote{top:max(12px, env(safe-area-inset-top))}body.touch #t-emotes{top:calc(max(12px, env(safe-area-inset-top)) + 56px)}body.touch #ping{top:calc(max(12px, env(safe-area-inset-top)) + 52px);right:max(14px, env(safe-area-inset-right))}#hint{padding:0 12px;font-size:15px;top:70px}#shot-pad{transform-origin:100% 100%;transform:scale(.82)}#stick-zone{width:55%}}#reel{z-index:7;pointer-events:auto;cursor:pointer;position:fixed;inset:0}#reel .bar{height:calc(var(--vh) * 9);background:#0b0f1a;transition:height .4s;position:absolute;left:0;right:0}#reel .bar.top{top:0}#reel .bar.bottom{bottom:0}#reel-badge{top:calc(calc(var(--vh) * 9) + 12px);left:max(16px, env(safe-area-inset-left));font:400 15px var(--display);letter-spacing:.08em;color:#fff;background:#0b0f1ab3;border-radius:10px;align-items:center;gap:8px;padding:6px 12px;display:flex;position:absolute}#reel-badge .dot{background:#ff3d5a;border-radius:50%;width:10px;height:10px;animation:1s infinite rec}@keyframes rec{50%{opacity:.2}}#reel-card{left:0;right:0;bottom:calc(calc(var(--vh) * 9) + 18px);text-align:center;padding:0 16px;transition:opacity .3s,transform .3s;position:absolute}#reel-card.intro{top:50%;bottom:auto;transform:translateY(-50%)scale(1.15)}#reel-title{font-family:var(--display);font-size:clamp(30px, calc(var(--vw) * 7), 64px);color:#ffd23d;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);line-height:1.05}#reel-sub{font:800 clamp(14px, calc(var(--vw) * 2.4), 20px) var(--body);color:#fff;text-shadow:0 2px 0 var(--ink), 0 0 10px #0009;margin-top:6px}#reel-card.pop{animation:.45s cubic-bezier(.2,1.5,.4,1) reel-pop}@keyframes reel-pop{0%{opacity:0;transform:scale(.6)}}#reel-card.intro.pop{animation:.45s cubic-bezier(.2,1.5,.4,1) reel-pop-intro}@keyframes reel-pop-intro{0%{opacity:0;transform:translateY(-50%)scale(.6)}}#reel-slow{top:calc(calc(var(--vh) * 9) + 12px);right:max(16px, env(safe-area-inset-right));font:400 14px var(--display);letter-spacing:.12em;color:#0b0f1a;opacity:0;background:#ffd23d;border-radius:8px;padding:5px 10px;transition:opacity .2s;position:absolute}#reel.slow #reel-slow{opacity:1}#reel-skip{right:max(16px, env(safe-area-inset-right));bottom:calc(calc(var(--vh) * 9) + 14px);background:#fffdf6eb;flex:none;padding:8px 14px;font-size:14px;position:absolute}#reel.intro-on #reel-skip{opacity:.8}#end-stats{border-collapse:collapse;width:100%;margin:12px 0 4px;font-size:15px;font-weight:800}#end-stats th{font:800 12px var(--body);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:4px 6px}#end-stats td{text-align:center;border-top:2px solid #eceef3;padding:5px 6px}#end-stats td:first-child,#end-stats th:first-child{text-align:left;color:var(--muted);font-weight:700}#end-stats td.best{color:#1a9b50}#end-stats tr.note td{text-align:center;color:var(--ink)}#end .row button{min-width:0}@media (height<=520px){#end-score{font-size:34px}#end-stats{margin-top:6px;font-size:13px}#end-stats td{padding:3px 6px}}body.lefty #stick-zone{left:auto;right:0}body.lefty #touch:not(:has(#stick.on)) #stick-zone:after{left:auto;right:max(28px, env(safe-area-inset-right))}body.lefty #shot-pad{right:auto;left:max(14px, env(safe-area-inset-left));transform-origin:50%;transform:scaleX(-1)}body.lefty .tbtn>span{display:block;transform:scaleX(-1)}@media (height<=430px),(width<=520px){body.lefty #shot-pad{transform-origin:bottom;transform:scaleX(-1)scale(.8)}}.panel-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.panel-head h2{margin:0;font-size:26px}button.back{border-radius:12px;flex:none;width:42px;height:42px;padding:0;font-size:20px}button.wide{width:100%;margin-top:6px}.hero{text-align:left;background:#e9f7ff;align-items:center;gap:14px;width:100%;padding:8px 14px 8px 8px;display:flex}.hero img{border:3px solid var(--ink);background:#fff;border-radius:14px;flex:none;width:76px;height:76px}.hero-text{flex-direction:column;gap:2px;min-width:0;display:flex}.hero .hello{font:400 22px var(--display);color:var(--blue);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hero .edit{color:var(--muted);font-size:13px}.newbie{border:3px dashed var(--accent);background:#fff3ec;border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;font-size:14px;font-weight:700;display:flex}.small-btn{flex:none;padding:7px 12px;font-size:14px}.big-choices{gap:10px;margin-top:14px;display:grid}button.big{text-align:left;align-items:center;gap:14px;padding:12px 16px;display:flex}button.big .ico{flex:none;font-size:30px}button.big b{font-size:18px;display:block}button.big small{opacity:.8;font-size:13px;font-weight:700;display:block}.small-row button{padding:9px 12px;font-size:15px}.bot-cards{gap:10px;margin-top:6px;display:grid}.bot-card{text-align:left;background:#e9f7ff;grid-template-rows:auto auto;grid-template-columns:auto 1fr;column-gap:14px;padding:12px 16px;display:grid}.bot-card .ico{grid-row:1/3;align-self:center;font-size:32px}.bot-card b{font-size:18px}.bot-card small{color:var(--muted);font-size:13px;font-weight:700}#characters{grid-template-columns:repeat(3,1fr);gap:8px}.char{aspect-ratio:auto;flex-direction:column;padding:4px 4px 6px;display:flex}.char img{aspect-ratio:1;height:auto}.char span{font-size:12px;font-weight:800}#controls-summary{line-height:1.5}#toast{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:20;max-width:calc(calc(var(--vw) * 100) - 32px);border:3px solid var(--ink);background:var(--paper);box-shadow:0 5px 0 var(--ink);border-radius:14px;padding:10px 16px;font-weight:800;animation:.25s cubic-bezier(.2,1.4,.4,1) pop-in;position:fixed;transform:translate(-50%)}#toast.error{background:#ffe3e6}.lobby-player img{border:2px solid var(--ink);background:#e9f7ff;border-radius:10px;flex:none;width:40px;height:40px}#coach{top:max(12px, env(safe-area-inset-top));z-index:8;width:min(460px, calc(calc(var(--vw) * 100) - 120px));border:3px solid var(--ink);box-shadow:0 6px 0 var(--ink);text-align:center;background:#fffdf6f2;border-radius:18px;padding:12px 16px 14px;position:fixed;left:50%;transform:translate(-50%)}.coach-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.coach-step{font:800 12px var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}#coach-skip{box-shadow:0 2px 0 var(--ink);flex:none;padding:4px 10px;font-size:12px}.coach-title{font:400 24px var(--display);color:var(--accent);text-shadow:2px 2px 0 var(--ink);margin:4px 0 2px}.coach-text{font-size:15px;font-weight:700;line-height:1.35}.coach-text kbd{border:2px solid var(--ink);font:800 12px var(--body);background:#fff;border-bottom-width:3px;border-radius:6px;padding:0 6px;display:inline-block}.coach-dots{justify-content:center;gap:6px;margin-top:8px;display:flex}.coach-dots i{border:2px solid var(--ink);background:#fff;border-radius:50%;width:10px;height:10px}.coach-dots i.done{background:#2fd08a}.coach-dots i.now{background:var(--accent)}#coach-next{margin-top:10px}#coach.success .coach-title{color:#2fd08a;animation:.5s bump}body.tutorial #scoreboard,body.tutorial #hint,.coach-step .short,#coach .fold-hint{display:none}@media (height<=520px){#coach{top:max(6px, env(safe-area-inset-top));width:min(560px, calc(calc(var(--vw) * 100) - 150px));box-shadow:0 3px 0 var(--ink);text-align:left;cursor:pointer;border-width:2px;border-radius:12px;grid-template-columns:auto 1fr auto;grid-template-areas:"step title skip""text text text""next next next";align-items:center;column-gap:8px;padding:5px 10px 6px;display:grid}.coach-top{display:contents}.coach-step{grid-area:step;font-size:11px}.coach-step .long{display:none}.coach-step .short{display:inline}#coach-skip{grid-area:skip;padding:3px 8px;font-size:11px}.coach-title{text-shadow:1.5px 1.5px 0 var(--ink);white-space:nowrap;text-overflow:ellipsis;grid-area:title;margin:0;font-size:17px;overflow:hidden}.coach-text{grid-area:text;margin-top:2px;font-size:12.5px;line-height:1.3}.coach-text kbd{padding:0 4px;font-size:11px}.coach-dots{display:none}#coach-next{grid-area:next;justify-self:center;margin-top:5px;padding:5px 14px;font-size:13px}#coach.folded{width:auto;max-width:calc(calc(var(--vw) * 100) - 150px)}#coach.folded .coach-text{display:none}#coach.folded .coach-title:after{content:" ▾";font:800 12px var(--body);color:var(--muted);text-shadow:none}.hero img{width:56px;height:56px}button.big{padding:8px 12px}button.big .ico{font-size:24px}}.mode-opts{justify-content:center;margin-bottom:12px}.mode-opts button{flex:1}#lobby-players .team-head{text-transform:uppercase;letter-spacing:.06em;opacity:.7;margin-top:4px;font-size:13px;font-weight:800}#char-info{border:3px solid var(--ink);background:#e9f7ff;border-radius:14px;margin:10px 0 4px;padding:10px 12px}.char-info-head{align-items:center;gap:8px;display:flex}.char-info-head b{font-size:16px}.char-style{background:var(--accent);color:#fff;font:800 11px var(--body);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 8px}.char-hint{color:var(--muted);margin:4px 0 8px;font-size:13px;font-weight:700}.stat-bars{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.stat{font:800 12px var(--body);justify-content:space-between;align-items:center;gap:8px;display:flex}.pips{gap:3px;display:flex}.pips i{border:2px solid var(--ink);background:#fff;border-radius:3px;width:14px;height:8px}.pips i.on{background:#2fd08a}#lb-list{max-height:min(calc(var(--vh) * 52), 420px);gap:6px;margin-top:8px;display:grid;overflow-y:auto}.lb-row{border:2px solid var(--ink);background:#fff;border-radius:12px;grid-template-columns:30px 34px 1fr auto 48px;align-items:center;gap:8px;padding:5px 10px;font-weight:800;display:grid}.lb-row img{object-fit:contain;width:34px;height:34px}.lb-row.top1{background:#fff4c7}.lb-row.top2{background:#eef2f7}.lb-row.top3{background:#fde6d6}.lb-row.me{outline:3px solid var(--accent);outline-offset:1px}.lb-rank{text-align:center;font-size:15px}.lb-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lb-rec{color:var(--muted);font-size:12px}.lb-rating{text-align:right;font:400 18px var(--display);color:var(--accent)}#lb-me{margin-top:8px}#lb-me .lb-row{border-style:dashed}.lb-empty{text-align:center;color:var(--muted);padding:14px;font-weight:700}#end-rating{margin:-2px 0 8px;font-size:16px;font-weight:800}#end-rating .up{color:#1a9b50}#end-rating .down{color:#d62f3f}.venue-pick{margin-bottom:12px}.venue-tiles{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;display:grid}.venue-tile{font:800 11px var(--body);color:var(--ink);text-shadow:0 1px #ffffffb3;box-shadow:0 3px 0 var(--ink);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.venue-tile .ico{text-shadow:none;font-size:22px}.venue-tile.selected{outline:4px solid var(--accent);outline-offset:1px}.time-opts button{flex:1;padding:6px 4px;font-size:12px}.venue-pick.locked button{cursor:default;opacity:.85}.venue-pick.locked button:not(.selected){opacity:.45}.venue-pick .small{margin-top:4px}.bot-card,.venue-tile,.big{white-space:normal;min-width:0}.bot-card small{display:block}.venue-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.venue-tile span:last-child{text-align:center;overflow-wrap:anywhere;line-height:1.15}@media (width<=440px){.panel{padding:18px 16px}.venue-tile{padding:6px 2px;font-size:10.5px}.venue-tile .ico{font-size:20px}.time-opts{gap:5px}.time-opts button{padding:6px 2px;font-size:11.5px}.bot-card{column-gap:10px;padding:10px 12px}.bot-card .ico{font-size:26px}.bot-card b{font-size:16px}.bot-card small{font-size:12px}}@media (width<=360px){h1{font-size:clamp(30px, calc(var(--vw) * 11), 40px)}.hero .edit,.hero .hello{white-space:normal}.stat-bars{grid-template-columns:1fr}}#super{border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);font:800 12px var(--body);letter-spacing:.04em;pointer-events:none;background:#fffdf6e6;border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 8px;display:flex;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}#super .ico{filter:grayscale(.8);font-size:18px;transition:filter .2s}#super .track{border:2px solid var(--ink);background:#e6e6ea;border-radius:999px;width:120px;height:12px;overflow:hidden}#super-fill{background:linear-gradient(90deg,#ffd23d,#ff7a1a 60%,#ff3d2e);width:0;height:100%;transition:width .25s}#super.ready{background:#fff1dc;animation:.6s ease-in-out infinite alternate super-pulse}#super.ready .ico{filter:none}#super.ready #super-label{color:#e2451a}@keyframes super-pulse{0%{box-shadow:0 3px 0 var(--ink), 0 0 0 #ff7a1a00;transform:translate(-50%)scale(1)}to{box-shadow:0 3px 0 var(--ink), 0 0 22px #ff7a1acc;transform:translate(-50%)scale(1.07)}}body.touch #super{bottom:max(12px, env(safe-area-inset-bottom))}#rally{left:max(18px, env(safe-area-inset-left));color:#fff;text-shadow:0 3px 0 var(--ink), 0 0 12px #00000059;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:40%}#rally b{font:400 44px/1 var(--display)}#rally small{font:800 12px var(--body);letter-spacing:.12em}#rally.warm b{color:#ffd23d}#rally.hot b{color:#ff6a2a;animation:.25s ease-in-out infinite alternate rally-fire}#rally.bump b{animation:.3s ease-out rally-bump}@keyframes rally-bump{0%{transform:scale(1.5)}to{transform:scale(1)}}@keyframes rally-fire{0%{text-shadow:0 3px 0 var(--ink), 0 0 8px #ff7a1a}to{text-shadow:0 3px 0 var(--ink), 0 0 22px #ffb03d}}body.touch #rally{top:max(30%, calc(max(14px, env(safe-area-inset-top)) + 100px))}body.touch #rally b{font-size:34px}.party-opts{margin-top:6px}.party-opts button{white-space:normal;flex:1;padding:6px 4px;font-size:12px}.party-opts button:first-child{flex:2}body.touch #super{left:max(14px, env(safe-area-inset-left));top:calc(max(14px, env(safe-area-inset-top)) + 58px);gap:5px;padding:3px 8px 3px 5px;font-size:10px;bottom:auto;transform:none}body.touch #super .track{width:64px;height:9px}body.touch #super .ico{font-size:14px}body.touch #super.ready{animation:.6s ease-in-out infinite alternate super-pulse-touch}body.touch #super-label{white-space:normal;max-width:76px;line-height:1.05}@keyframes super-pulse-touch{0%{box-shadow:0 3px 0 var(--ink), 0 0 0 #ff7a1a00}to{box-shadow:0 3px 0 var(--ink), 0 0 18px #ff7a1ad9}}@media (height<=520px){#hint{font-size:13px;top:50px}#callout{top:calc(max(8px, env(safe-area-inset-top)) + 70px);font-size:clamp(20px, calc(var(--vh) * 6.5), 30px);-webkit-text-stroke:2px var(--ink);text-shadow:0 3px 0 var(--ink)}#rally{top:calc(max(14px, env(safe-area-inset-top)) + 100px)}#rally b,body.touch #rally b{font-size:26px}#rally small{font-size:9px}}.time-opts button{white-space:normal;min-width:0;line-height:1.1}.ic{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.22em;flex:none;width:1.2em;height:1.2em}i[data-icon]{font-style:normal;display:inline-flex}button:has(>i[data-icon],>.ic){justify-content:center;align-items:center;gap:7px;display:inline-flex}button.back .ic{width:20px;height:20px}button.big .ico.badge{border:3px solid var(--ink);color:#fff;width:48px;height:48px;box-shadow:0 3px 0 var(--ink);border-radius:14px;place-items:center;font-size:26px;display:grid}button.big .ico.badge.b-white{color:var(--accent);text-shadow:none;background:#fff}button.big .ico.badge .ic{filter:none;width:28px;height:28px}.badge.b-blue{background:#3d8bff}.badge.b-green{background:#2fd08a}button.big{justify-content:flex-start}.small-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid!important}.small-row button.icon-btn{white-space:normal;flex-direction:column;gap:3px;padding:9px 4px 8px;font-size:12.5px;line-height:1.1}.small-row button.icon-btn .ic{width:24px;height:24px;color:var(--accent)}.hero .edit .ic{width:14px;height:14px}.newbie{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.newbie.hidden{display:none}.newbie-ic .ic{color:#2fd08a;width:26px;height:26px}.newbie>span{flex:60%}.label:has(>i[data-icon]){align-items:center;gap:6px;display:flex}.label .ic{width:16px;height:16px;color:var(--accent)}.mode-opts button .ic,.party-opts button .ic{width:18px;height:18px}.time-opts button{flex-direction:column;gap:2px!important}.time-opts button .ic{width:20px;height:20px}.time-opts button:first-child .ic{color:#f0a000}.time-opts button:nth-child(2) .ic{color:#ff6a3d}.time-opts button:nth-child(3) .ic{color:#5b6bd6}.party-caption{text-align:center;color:var(--muted);margin-top:5px;font-size:12px;font-weight:700}.bot-card{position:relative}.bot-card .level{gap:1px;display:flex;position:absolute;top:8px;right:10px}.bot-card .level .ic{fill:#d9dde6;stroke:#b3bac8;stroke-width:1.5px;width:15px;height:15px}.bot-card .level .on .ic{fill:var(--accent);stroke:var(--ink)}.switch-row{display:flex}button.switch{width:62px;height:34px;box-shadow:inset 0 2px 0 #00000014, 0 3px 0 var(--ink);background:#e3e6ee;border-radius:999px;flex:none;padding:0;transition:background .15s;position:relative}button.switch.on{background:#2fd08a}button.switch .knob{border:2px solid var(--ink);background:#fff;border-radius:50%;place-items:center;width:22px;height:22px;transition:transform .18s cubic-bezier(.3,1.5,.5,1);display:grid;position:absolute;top:3px;left:3px}button.switch.on .knob{transform:translate(28px)}button.switch .knob .ic{stroke-width:3px;width:13px;height:13px;color:var(--muted)}button.switch.on .knob .ic{color:#1a9b50}.lobby-player .state{align-items:center;gap:4px;display:inline-flex}.lobby-player .state .ic{width:14px;height:14px}.lobby-player .crown{color:#e0a800;fill:#ffd23d;vertical-align:-.15em;width:16px;height:16px;margin-right:4px}.lobby-player.empty{align-items:center;gap:8px;display:flex}.lobby-player.empty .ic{width:18px;height:18px}#end-stats td:first-child{align-items:center;gap:6px;display:flex}#end-stats td:first-child .ic{width:16px;height:16px;color:var(--accent)}#end-rating .ic{color:#e0a800}#toast{align-items:center;gap:8px;display:flex}#toast.hidden{display:none}#toast .ic{width:20px;height:20px}.team .serve{-webkit-text-stroke:0;display:inline-flex}.team .serve .ic{width:20px;height:20px;color:var(--accent-2);stroke:var(--ink);stroke-width:1.5px;filter:drop-shadow(0 1px 0 var(--ink))}.team.serving .serve .ic{animation:1s ease-in-out infinite serve-bob}@keyframes serve-bob{50%{transform:translateY(-3px)scale(1.08)}}#super .ico .ic{color:#b8b8b8;width:18px;height:18px}#super.ready .ico .ic{color:#ff6a1a;fill:#ffd23d}.tbtn .ic{stroke-width:2.4px;width:26px;height:26px}.tbtn.drive .ic{width:34px;height:34px}.tbtn .lbl{letter-spacing:.02em;font-size:11px}.tbtn.drive .lbl{font-size:14px}#t-emote .ic{width:26px;height:26px}#touch:not(:has(#stick.on)) #stick-zone:after{box-sizing:border-box;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='0.8'%3E%3Cpath d='m5 9-3 3 3 3M9 5l3-3 3 3M15 19l-3 3-3-3M19 9l3 3-3 3M2 12h20M12 2v20'/%3E%3C/svg%3E");background-position:50% 30%;background-repeat:no-repeat;background-size:34px;padding-top:38px}#controls-help{flex-wrap:wrap;justify-content:center;gap:4px 14px;display:flex}#controls-help .kh{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}#controls-help kbd{color:var(--ink);font:800 11px var(--body);text-shadow:none;background:#ffffffeb;border-radius:5px;padding:1px 6px;display:inline-block;box-shadow:0 2px #00000073}#controls-help i{opacity:.75;font-style:normal}#reel-skip .ic,#coach-skip .ic{width:14px;height:14px}.settings .seg{flex-wrap:wrap}.settings>div{min-width:0}#shot-pad.simple .tbtn.hit{width:136px;height:136px;bottom:6px;right:6px}#shot-pad.simple .tbtn.hit .ic{width:40px;height:40px}#shot-pad.simple .tbtn.hit .lbl{font-size:17px}#shot-pad.simple .tbtn.dash{bottom:30px;right:150px}.tbtn.aiming{transform:scale(.94)}.tbtn.hit[data-shot=dink]{background:#3dd6ff}.tbtn.hit[data-shot=lob]{background:#b36bff}#aim-knob{pointer-events:none;opacity:0;z-index:7;background:#ffffff2e;border:3px solid #ffffffe6;border-radius:50%;width:54px;height:54px;margin:-27px 0 0 -27px;transition:opacity .1s;position:fixed;top:0;left:0;box-shadow:0 0 0 6px #ffffff1f}#aim-knob.on{opacity:1}@media (height<=520px){#shot-pad.simple .tbtn.hit{width:112px;height:112px}#shot-pad.simple .tbtn.dash{bottom:18px;right:124px}}body.forced-rot{transform-origin:0 0;position:fixed;top:0;left:0;overflow:hidden}body.forced-rot .panel{max-height:calc(var(--fh,100dvh) - 24px)}#t-rotate{display:none}body.forced-rot #t-rotate{display:grid}#t-rotate .ic{width:24px;height:24px}.data-reset{border-top:2px dashed #16213a26;margin-top:14px;padding-top:12px}.data-reset .small{margin:4px 0 10px}button.danger{color:#d0342c;align-items:center;gap:8px;display:inline-flex}button.danger .ic{width:18px;height:18px}button.danger.armed{color:#fff;background:#d0342c}#player-list{gap:8px;max-height:220px;margin-top:12px;display:grid;overflow-y:auto}.player-row .face{border:2px solid var(--ink);background:#e9f5ff;border-radius:10px;flex:none;width:34px;height:34px;margin:-6px 0}.player-row .status{color:var(--accent);align-items:center;gap:4px;display:inline-flex}.player-row .status .ic{width:14px;height:14px}.player-row:disabled{cursor:default}button.big{position:relative}.online-count{border:2px solid var(--ink);color:var(--ink);background:#fff;border-radius:999px;padding:2px 9px 2px 20px;font-size:12px;font-weight:800;position:absolute;top:-10px;right:10px}.online-count:before{content:"";background:#2fd08a;border-radius:50%;width:8px;height:8px;margin-top:-4px;animation:1.6s ease-in-out infinite online-pulse;position:absolute;top:50%;left:7px}@keyframes online-pulse{50%{opacity:.35}}#challenge-card{z-index:60;top:max(14px, env(safe-area-inset-top));width:min(420px, calc(calc(var(--vw) * 100) - 32px));border:3px solid var(--ink);background:var(--paper);box-shadow:0 6px 0 var(--ink);border-radius:18px;align-items:center;gap:12px;padding:12px 14px;animation:.35s cubic-bezier(.2,1.4,.4,1) challenge-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}#challenge-card.hidden{display:none}@keyframes challenge-in{0%{opacity:0;transform:translate(-50%,-30px)scale(.9)}}#challenge-card .who{border:3px solid var(--ink);background:#e9f5ff;border-radius:14px;flex:none;width:64px;height:64px}#challenge-card .body{flex:1;min-width:0}#challenge-card p{margin:0 0 8px;font-size:15px;font-weight:700;line-height:1.3}#challenge-card .bar{background:#16213a1f;border-radius:3px;height:6px;margin-bottom:10px;overflow:hidden}#challenge-card .bar i{background:var(--accent);transform-origin:0;height:100%;display:block}#challenge-card .row{gap:8px;display:flex}#challenge-card button{padding:8px 12px;font-size:15px}@media (height<=520px) and (width>=540px){#menu{grid-template:"title choices""hero choices""newbie choices""small choices"1fr"tip tip"/minmax(0,1fr) minmax(0,1.1fr);align-items:start;column-gap:18px;width:min(820px,100%);display:grid}#menu>h1{grid-area:title;margin-bottom:6px}#menu>.hero{grid-area:hero;padding:6px 10px 6px 6px}#menu>.hero img{border-radius:11px;width:48px;height:48px}#menu>.hero .hello{font-size:18px}#menu>.newbie{grid-area:newbie;gap:6px 8px;margin-top:8px;padding:6px 10px;font-size:13px}#menu>.newbie .newbie-ic{display:none}#menu>.newbie>span{flex:100%}#menu>.small-row{grid-area:small;align-self:end;margin-top:8px}#menu>.small-row button{flex-direction:column;gap:2px;padding:7px 8px;font-size:13px}#menu>.small-row button .ic{width:20px;height:20px}#menu>.big-choices{grid-area:choices;grid-auto-rows:1fr;gap:8px;height:100%;margin-top:0}#menu>.big-choices button.big{padding:8px 12px}#menu>.big-choices button.big b{font-size:16px}#menu>.big-choices button.big small{font-size:12px}#menu>#install-tip{grid-area:tip}}.cols{flex-direction:column;display:flex}.col{display:contents}#customize .col:first-child>*{order:0}#customize .col:last-child>*{order:1}#customize #char-info{order:2}#customize #btn-customize-done{order:3}@media (height<=520px) and (width>=540px){#online,#practice,#customize,#settings{width:min(820px,100%)}.cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:20px;display:grid}.col{min-width:0;display:block}.col>:first-child,.col>.divider:first-child{margin-top:0}#player-list,#room-list{max-height:120px}#customize .char img{aspect-ratio:auto;height:64px}#customize .char{padding:2px 2px 4px}.cols .mode-opts button{padding:6px 8px}.cols .venue-pick{margin:8px 0 6px}.cols .venue-tile{flex-direction:row;justify-content:center;gap:4px;padding:5px 3px}.cols .venue-tile .ico{font-size:16px}.cols .time-opts button{flex-direction:row;justify-content:center;padding:5px 3px;gap:4px!important}.cols .time-opts button .ic{width:16px;height:16px}.cols .party-opts button{padding:5px 4px}.cols .small{margin:4px 0 0}}.hero .hello{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.1;display:-webkit-box}@media (height<=420px) and (width>=540px){.panel{padding:10px 14px}.panel-head{margin-bottom:4px}.panel-head h2{font-size:21px}button.back{padding:5px 9px}.divider{margin-top:6px}.label,label{margin:4px 0 3px}.cols .venue-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:5px}.cols .venue-tile{padding:4px 3px}.cols .time-opts button{flex-direction:column;padding:3px 2px;font-size:11px;gap:0!important}.cols .mode-opts button{padding:5px 6px;font-size:14px}.cols .party-caption{display:none}.bot-cards{gap:6px;margin-top:0}.bot-card{column-gap:10px;padding:6px 10px}.bot-card .ico{font-size:24px}.bot-card b{font-size:15px}.bot-card small{font-size:11.5px;line-height:1.25}#colors{flex-wrap:nowrap;gap:5px}.swatch{width:30px;height:30px;box-shadow:0 2px 0 var(--ink);border-width:2px}#customize input{padding:5px 10px}#char-info{margin:6px 0 0;padding:6px 10px}.char-hint{margin:2px 0 4px;font-size:11.5px}.stat-bars{gap:2px 10px}.stat{gap:4px;font-size:11px}.pips i{border-width:1.5px;width:9px;height:7px}#customize .char img{height:50px}#btn-customize-done{margin-top:6px;padding:7px}.data-reset{align-items:center;gap:10px;margin-top:6px;padding-top:6px;display:flex}.data-reset .label{margin:0}.data-reset .small{display:none}.data-reset button.danger{flex:none;padding:5px 10px;font-size:13px}#controls-summary,#online .cols .small{display:none}#player-list,#room-list{max-height:96px;margin-top:6px}.room-row{padding:6px 10px}.row.join{margin-top:6px}.row.join input,.row.join button{padding:6px 10px}}.error:empty{display:none}@media (height<=340px) and (width>=540px){#overlay{padding:8px max(8px, env(safe-area-inset-right)) 8px max(8px, env(safe-area-inset-left))}.panel{max-height:calc(100dvh - 16px)}#menu>h1{text-shadow:2px 2px 0 var(--ink);margin-bottom:2px;font-size:20px;line-height:1.05}#menu>h1 span{margin-top:1px;font-size:13px}#menu>.newbie{font-size:12px}#menu>.hero img{width:40px;height:40px}#menu>.hero .hello{font-size:15px}#menu>.newbie{margin-top:5px}#menu>.big-choices button.big{padding:5px 10px}button.big .ico.badge{margin:-4px;transform:scale(.8)}.cols .venue-tile{padding:2px}.bot-card small{display:none}.bot-card{padding:8px 10px}#customize .char img{height:42px}.char-hint{display:none}}@media (height<=520px) and (width>=540px){#menu .online-count{white-space:nowrap;margin-top:2px;display:inline-block;position:relative;top:auto;right:auto}#menu .online-count.hidden{display:none}#menu button.big:has(.online-count:not(.hidden)) small{display:none}#menu>.small-row button{white-space:nowrap;padding:6px 2px}h1 span{margin-top:2px}}@media (width<=440px){.panel-head h2{font-size:22px}#colors{flex-wrap:nowrap;gap:6px}.swatch{aspect-ratio:1;flex:1 1 0;width:auto;min-width:0;max-width:36px;height:auto}.stat-bars{grid-template-columns:1fr 1fr;gap:3px 12px}.stat{gap:4px;font-size:11px}.pips{gap:2px}.pips i{border-width:1.5px;width:10px;height:7px}}@media (height<=520px) and (width<=539px),(width<=440px){#btn-customize-done{z-index:1;position:sticky;bottom:0}}:is(body:has(#end:not(.hidden)) #scoreboard,body:has(#end:not(.hidden)) #super,body:has(#end:not(.hidden)) #rally){visibility:hidden}@media (height<=520px) and (width>=540px){#end{grid-template:"title stats""score stats""rating stats""buttons stats""status stats"1fr/minmax(0,.85fr) minmax(0,1.15fr);align-items:start;column-gap:18px;width:min(760px,100%);display:grid}#end-title{grid-area:title;margin-bottom:2px;font-size:24px}#end-score{grid-area:score}#end-rating{grid-area:rating}#end-stats{grid-area:stats;align-self:center;margin-top:0}#end>.row{flex-direction:column;grid-area:buttons;gap:6px;margin-top:8px}#end>.row button{padding:7px 10px}#end-status{grid-area:status}}@media (height<=420px) and (width>=540px){#end-stats th,#end-stats td{padding-top:2px;padding-bottom:2px;font-size:12px}}#reel-skip{top:calc(calc(var(--vh) * 9) + 8px);bottom:auto}#reel-slow{left:50%;right:auto;transform:translate(-50%)}@media (height<=520px){#coach-skip{min-height:32px;padding:4px 10px}}#lobby .col>*{order:0}#lobby #requests{order:1}#lobby .venue-pick{order:2}#lobby #lobby-players,#lobby .col>.row,#lobby #lobby-note{order:3}@media (height<=520px) and (width>=540px){#lobby{width:min(820px,100%)}#lobby #room-code{font-size:34px}#lobby .venue-pick{margin-top:6px}#lobby #lobby-note{font-size:12px}}.lobby-player .state{white-space:nowrap;flex:none}.lobby-player .name{overflow-wrap:anywhere;min-width:0}@media (width<=440px){.lobby-player:not(.empty){grid-template-columns:auto minmax(0,1fr);gap:0 10px;display:grid}.lobby-player:not(.empty)>img{grid-row:1/3}.lobby-player .state{margin-left:0;font-size:12px}}body.touch #scoreboard{max-width:calc(calc(var(--vw) * 100) - 2 * (max(14px, env(safe-area-inset-left)) + 52px))}#scoreboard .team{flex:0 auto;min-width:0}.team .name{min-width:0}.team .name>span{text-overflow:ellipsis;display:block;overflow:hidden}.team .name.duo{font-size:12px;line-height:1.15}@media (height<=520px){.team .name.duo{font-size:11px}}@media (width>=900px) and (height<=820px) and (height>=521px){#online,#practice,#customize,#lobby{width:min(860px,100%)}.cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:24px;display:grid}.col{min-width:0;display:block}.col>:first-child,.col>.divider:first-child{margin-top:0}}#t-orient,body.forced-rot #t-rotate{right:max(12px, env(safe-area-inset-right));width:44px;height:44px;box-shadow:0 3px 0 var(--ink);pointer-events:auto;background:#fffdf6eb;border-radius:12px;place-items:center;padding:0;display:grid;position:absolute}#t-orient{top:calc(max(40px, calc(env(safe-area-inset-top) + 28px)) + 56px)}body.forced-rot #t-rotate{top:calc(max(40px, calc(env(safe-area-inset-top) + 28px)) + 108px)}#t-orient .ic,#t-rotate .ic{width:24px;height:24px}:is(#touch:has(#t-emotes:not(.hidden)) #t-orient,#touch:has(#t-emotes:not(.hidden)) #t-rotate){visibility:hidden}@media (height<=430px){#t-orient{top:calc(max(8px, env(safe-area-inset-top)) + 48px);width:40px;height:40px}body.forced-rot #t-rotate{top:calc(max(8px, env(safe-area-inset-top)) + 96px);width:40px;height:40px}}@media (width<=520px){.team{grid-template-columns:auto auto auto;grid-template-areas:"dot serve score""name name name";place-items:center;row-gap:0;padding:3px 9px 2px;display:grid}#team1{grid-template-areas:"score serve dot""name name name"}.team .dot{grid-area:dot}.team .serve{grid-area:serve}.team .score{grid-area:score;line-height:1}.team .name{text-align:center;grid-area:name;max-width:104px;font-size:10px;line-height:1.15;display:block}.team .name.duo{font-size:9.5px}body.touch #t-orient{top:calc(max(12px, env(safe-area-inset-top)) + 56px)}body.touch.forced-rot #t-rotate{top:calc(max(12px, env(safe-area-inset-top)) + 108px)}body.touch #ping{top:calc(max(12px, env(safe-area-inset-top)) + 160px)}body.touch #hint{top:calc(max(12px, env(safe-area-inset-top)) + 104px)}}
