@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap";:root{color:#edf2e8;font-synthesis:none;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;--lime:#d0ee91;--coast:#91c8e6;--muted:#93aaa9;background:#101c22;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input,select{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer;color:inherit;min-height:42px;background:0 0;border:0;transition:background .16s,opacity .16s,transform .16s}button:active{transform:scale(.96)}button:disabled{cursor:default;opacity:.35}button:disabled:active{transform:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button,input{touch-action:manipulation}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance;font-family:Barlow Condensed,Arial Narrow,sans-serif}p{text-wrap:pretty}kbd{font:inherit;letter-spacing:.07em;opacity:.65;white-space:nowrap;font-size:.72em}.eyebrow{letter-spacing:.19em;color:var(--lime);font-size:10px;font-weight:600}.muted{color:var(--muted)}.primary{background:var(--lime);color:#172c2d;border-radius:3px;justify-content:space-between;align-items:center;gap:32px;min-height:54px;padding:0 24px;font-size:13px;font-weight:700;display:flex}.primary:hover{background:#e3f7bc}.quiet{color:#b3c5c4;padding:0 14px;font-size:11px}.quiet:hover{color:#fff;background:#ffffff0b}.live-dot{background:var(--lime);border-radius:50%;width:6px;height:6px;display:inline-block}#viewport{position:fixed;inset:0}#viewport canvas{width:100%;height:100%;display:block}.vignette{pointer-events:none;background:linear-gradient(#06121999,#0000 20% 75%,#061219b3);position:fixed;inset:0}.game-header{z-index:5;pointer-events:none;align-items:center;gap:22px;display:flex;position:fixed;top:22px;left:34px;right:34px}.game-header button{pointer-events:auto}.wordmark{letter-spacing:.14em;padding:0;font-size:12px;font-weight:700}.wordmark>span{color:var(--lime)}.build{letter-spacing:.14em;color:#a8beb599;font-size:8px}.game-header #pause{background:#0b1b2273;border-radius:3px;margin-left:auto}.game-header #pause kbd{margin-left:12px}#front-end{z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(90deg,#0a191ff0 5%,#0a191fc4 40%,#0a191f29 90%);position:fixed;inset:0}body[data-screen=lobby] #front-end,body[data-screen=paused] #front-end,body[data-screen=set-break] #front-end,body[data-screen=match-end] #front-end{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0b1b22e6}body:not([data-screen=playing]) #pause{visibility:hidden}body[data-screen=playing] .build{display:none}.title-screen{position:absolute;top:50%;left:9vw;transform:translateY(-47%)}.title-screen h1{letter-spacing:-.025em;white-space:nowrap;margin:20px 0 17px;font-size:clamp(90px,12.2vw,190px);font-weight:700;line-height:.95}.title-screen h1 span{color:var(--lime)}.title-screen h1 i{color:var(--lime);font-style:normal}.title-subtitle{letter-spacing:.025em;color:#b4c8c6;margin-bottom:38px;font-size:14px}.title-nav{flex-direction:column;align-items:flex-start;gap:7px;display:flex}.title-nav>button{text-align:left;color:#adbfbd;min-width:260px;padding-left:22px;font-size:13px}.title-nav .menu-play{color:#172c2d;width:290px;min-height:60px;margin-bottom:9px;font-size:15px}.menu-play>span{font-size:24px}.title-nav>button:not(.primary):hover{color:#edf2e8;background:#ffffff08}.match-format{letter-spacing:.13em;color:#91aaa9;align-items:center;gap:10px;margin-top:38px;font-size:8px;display:flex}.match-format b,.menu-footer b{color:#ffffff29;margin:0 8px;font-weight:400}.menu-footer{letter-spacing:.12em;color:#7c999e;justify-content:space-between;font-size:8px;display:flex;position:absolute;bottom:29px;left:34px;right:34px}.lobby-screen{width:84vw;max-width:1120px;position:absolute;top:50%;left:50%;transform:translate(-50%,-47%)}.screen-heading{justify-content:space-between;align-items:center;display:flex}.screen-heading h2{outline:none;margin:9px 0;font-size:58px;font-weight:600}.screen-heading p{color:var(--muted);font-size:12px}.side-lanes{grid-template-columns:1fr 70px 1fr;align-items:center;margin:36px 0 25px;display:grid}.side-lane{background:linear-gradient(120deg,#d0ee910e,#0000);min-height:185px;padding:25px 32px 22px;position:relative}.side-lane.coast{text-align:right;background:linear-gradient(240deg,#91c8e612,#0000)}.team-index{letter-spacing:.18em;color:var(--muted);font-size:8px}.side-lane h3{letter-spacing:.02em;margin:6px 0 10px;font-size:62px;font-weight:600}.lime{--team:var(--lime);color:var(--lime)}.coast{--team:var(--coast);color:var(--coast)}.lane-line{background:var(--team);opacity:.6;height:2px;position:absolute;bottom:0;left:0;right:0}.side-players{color:#e2eade;min-height:20px;font-size:11px}.side-players small{color:var(--muted);margin-left:10px}.versus-mark{text-align:center;color:#819ba1;font:600 23px Barlow Condensed}.player-slots{grid-template-columns:1fr 1fr;gap:35px;display:grid}.player-slot{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;gap:12px;min-height:64px;display:flex}.player-slot .slot-label{font-size:11px;font-weight:600}.player-slot .slot-description{color:#8fa9ad;margin-top:7px;font-size:9px;font-weight:400;display:block}.player-slot .slot-actions{align-items:center;gap:7px;display:flex}.player-slot button{background:#ffffff06;border-radius:2px;padding:0 12px;font-size:10px}.player-slot button:hover{background:#ffffff12}.player-slot .ready-button[aria-pressed=true]{color:var(--lime);background:#d0ee9110}.side-picker{border:1px solid #ffffff16;border-radius:3px;padding:2px;display:flex}.side-picker button{background:0 0;min-width:42px;min-height:36px;padding:0 9px}.side-picker button[aria-pressed=true]{color:var(--lime);background:#d0ee9114}.side-picker button:last-child[aria-pressed=true]{color:var(--coast);background:#91c8e614}.player-slot .leave-button{color:#789399;padding:0 9px;font-size:18px}.lobby-bottom{justify-content:space-between;align-items:flex-end;gap:35px;margin-top:28px;display:flex}.lobby-settings{grid-template-columns:auto 150px;align-items:center;gap:9px 16px;display:grid}.lobby-settings>label{color:#bed0cb;font-size:10px}.lobby-settings>span,.lobby-settings>small{color:#7f9b9f;grid-column:1/-1;font-size:9px}.lobby-settings>small{max-width:330px;line-height:1.5}select{color:#e2ecde;background:#172d35;border:1px solid #ffffff20;border-radius:3px;min-height:42px;padding:0 12px;font-size:11px}.start-match{text-align:right;min-width:260px}.start-match>small{color:var(--muted);margin-bottom:11px;font-size:10px;display:block}.start-match>button{width:100%}.pause-menu{width:min(88vw,480px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pause-menu h2{margin:10px 0 28px;font-size:88px;font-weight:600}.pause-nav{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pause-nav>button{text-align:left;justify-content:space-between;align-items:center;padding:0 24px;font-size:12px;display:flex}.pause-nav>button:not(.primary):hover{background:#ffffff08}.pause-nav>button>span{color:#8fa7aa}#match-options{grid-template-columns:1fr 1fr;gap:5px 16px;margin-top:14px;padding:14px 20px;display:grid;box-shadow:inset 0 1px #ffffff14}#match-options label{color:var(--muted);grid-column:1/-1;align-items:center;gap:12px;font-size:11px;display:flex}#match-options input{accent-color:var(--lime);flex:1;min-width:80px}#match-options button{text-align:left;color:#b0c5c3;font-size:10px}#match-options button:hover{color:var(--lime)}.match-summary{text-align:center;width:min(90vw,650px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.match-summary h2{margin:14px 0 22px;font-size:clamp(48px,6vw,82px);font-weight:600;line-height:1}.summary-score{letter-spacing:.06em;color:#d0ee91;font:600 96px/1 Barlow Condensed}.summary-score span{color:#647e85;margin:0 22px;font-size:48px}.summary-score b{color:var(--coast);font-weight:600}.set-history{justify-content:center;gap:30px;margin:24px 0;display:flex}.set-history>div{font-size:18px}.set-history small{color:var(--muted);letter-spacing:.1em;margin-bottom:7px;font-size:8px;display:block}.match-summary p{color:var(--muted);font-size:11px;line-height:1.7}.summary-actions{justify-content:center;gap:15px;margin-top:26px;display:flex}.summary-actions>button{min-width:160px}.summary-actions .primary{min-width:235px}#match-hud{pointer-events:none;position:fixed;inset:0}#match-hud button{pointer-events:auto}.scoreboard{filter:drop-shadow(0 3px 12px #0005);gap:2px;display:flex;position:absolute;top:28px;left:50%;transform:translate(-50%)}.score-team{border-bottom:2px solid var(--team);background:#0c2027e6;align-items:center;gap:12px;min-height:48px;padding:0 16px;display:flex}.score-team>span:first-child,.score-team>span:last-child{letter-spacing:.1em;font-size:10px;font-weight:700}.score-team strong{text-align:center;min-width:32px;font:600 32px/1 Barlow Condensed}.score-team small{color:#a5b9b6;font-size:8px}.score-team.serving small:before{content:"●";color:var(--team);margin-right:6px;font-size:6px}.set-dots{gap:4px;display:flex}.set-dots i{background:#ffffff25;border-radius:50%;width:5px;height:5px;display:block}.set-dots i.won{background:var(--team)}.set-status{text-align:center;letter-spacing:.16em;color:#bdd0cc;text-shadow:0 2px 6px #000;font-size:8px;position:absolute;top:58px;left:0;right:0}.action-dock{text-align:center;text-shadow:0 2px 12px #05141a;width:80vw;max-width:460px;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.action-dock .eyebrow{color:#d1dfd3;font-size:8px}.action-dock h2{margin:6px 0;font-size:25px;font-weight:500}.action-dock p{color:#bdd0cc;max-width:430px;margin:auto;font-size:10px;line-height:1.5}.action-key{background:#142c35db;border:1px solid #fff2;border-radius:3px;justify-content:center;align-items:center;gap:14px;min-height:42px;margin:10px auto 0;padding:0 16px;font-size:11px;display:flex;box-shadow:0 4px 20px #0002}.action-key:hover{background:#29454a}.action-key kbd{color:var(--lime);opacity:1;font-size:9px}.timing{opacity:0;background:#ffffff20;max-width:260px;height:4px;margin:14px auto 4px;position:relative}.timing.visible{opacity:1}#timing-zone{background:var(--lime);opacity:.6;width:16%;height:100%;position:absolute}#timing-cursor{background:#fff;width:2px;height:12px;position:absolute;top:-4px}.set-targets{text-align:center;position:absolute;bottom:175px;left:50%;transform:translate(-50%)}.set-targets>.eyebrow{color:#b3c8c6;font-size:8px}#set-target-options{gap:7px;margin-top:10px;display:flex}#set-target-options button{color:#c0d0c8;background:#112730e8;border:1px solid #ffffff17;border-radius:3px;align-items:center;gap:8px;min-width:100px;min-height:42px;padding:0 12px;font-size:9px;display:flex}#set-target-options button.selected{border-color:var(--button-color);background:#29423e}.pad-button{background:var(--button-color);color:#142a2c;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.block-controls{text-align:right;text-shadow:0 2px 10px #000;max-width:290px;position:absolute;bottom:35px;right:34px}.block-controls .eyebrow{color:var(--coast);font-size:8px}.block-controls p{margin:9px 0;font-size:13px}.block-controls>div{align-items:center;gap:5px;display:flex}.block-controls button{background:#142c35d9;border-radius:3px;padding:0 10px;font-size:10px}.block-controls .action-key{margin:0}.block-controls #block-bunch{min-width:50px;font-size:9px}.block-controls #block-bunch[aria-pressed=true]{background:#2b4f60}.block-now #block{box-shadow:0 0 0 1px var(--coast);color:var(--coast)}.point-result{text-align:center;opacity:0;text-shadow:0 3px 18px #00121b;max-width:500px;transition:opacity .22s;position:absolute;top:39%;left:50%;transform:translate(-50%,-50%)}.point-result.show{opacity:1}.point-result>span{letter-spacing:.17em;color:var(--lime);font-size:10px}.point-result strong{text-transform:uppercase;margin:8px 0;font:600 65px/1.1 Barlow Condensed;display:block}.point-result p{color:#bdd0cc;font-size:11px;line-height:1.6}.match-footer{color:#7f9b9f;font-size:8px;position:absolute;bottom:22px;left:34px}.match-help{font-size:9px;position:absolute;bottom:14px;right:24px}#controls-panel{color:#e6efe2;background:#10252e;border:0;border-radius:8px;width:min(92vw,760px);max-height:88vh;padding:32px;box-shadow:0 30px 100px #0009}dialog::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#05141bd9}.dialog-heading{justify-content:space-between;align-items:center;display:flex}.dialog-heading h2{margin:8px 0 20px;font-size:42px;font-weight:600}.dialog-heading button{width:44px;font-size:26px}#controls-panel p{color:var(--muted);margin-bottom:20px;font-size:11px;line-height:1.7}#controls-panel table{border-collapse:collapse;text-align:left;width:100%;margin-bottom:20px;font-size:10px}#controls-panel th{color:var(--lime);letter-spacing:.12em;padding:0 8px 12px;font-size:8px}#controls-panel td{color:#b9ccc9;border-top:1px solid #ffffff10;padding:12px 8px}#controls-panel td:first-child{color:#e4ecde;width:32%}#controls-done{min-width:150px;margin-left:auto}@media (width<=850px){.game-header{top:14px;left:22px;right:22px}.build{display:none}.title-screen{left:8vw}.title-screen h1{font-size:16vw}.lobby-screen{width:90vw}.screen-heading h2{font-size:43px}.side-lanes{grid-template-columns:1fr 42px 1fr;margin-top:24px}.side-lane{min-height:150px;padding:18px}.side-lane h3{font-size:46px}.player-slots{gap:18px}.player-slot{flex-wrap:wrap;padding:10px 0}.slot-actions{gap:4px!important}.lobby-bottom{gap:20px;margin-top:20px}.lobby-settings{grid-template-columns:auto 110px}.start-match{min-width:220px}.scoreboard{top:65px}.score-team{gap:8px;min-height:42px;padding:0 10px}.score-team strong{font-size:29px}.set-status{top:51px}.action-dock{max-width:390px;bottom:35px}.block-controls{bottom:175px;right:20px}.block-controls>div{flex-wrap:wrap;justify-content:flex-end;max-width:200px}.block-controls p{font-size:11px}.match-footer{display:none}.menu-footer{left:22px;right:22px}.menu-footer>span:last-child{display:none}}@media (width<=560px){.title-screen h1{font-size:19vw}.title-screen{left:7vw}.title-screen>.eyebrow{font-size:8px}.title-subtitle{font-size:12px}.match-format{gap:5px;font-size:6px}.title-nav .menu-play{width:260px}.lobby-screen{width:90vw;top:49%}.screen-heading h2{font-size:36px}.screen-heading p{max-width:240px;font-size:10px}.screen-heading>.quiet{padding:0 4px;font-size:10px}.side-lanes{grid-template-columns:1fr 28px 1fr;margin:18px 0 8px}.side-lane{min-height:118px;padding:15px 10px}.side-lane h3{font-size:36px}.team-index{font-size:6px}.side-players{font-size:9px}.side-players small{margin:5px 0 0;display:block}.versus-mark{font-size:17px}.player-slots{gap:15px}.player-slot .slot-label{font-size:10px}.player-slot .slot-description{font-size:8px}.player-slot .slot-actions{flex-wrap:wrap}.player-slot button{padding:0 8px}.player-slot .leave-button{min-width:25px}.lobby-bottom{flex-direction:column;align-items:stretch;gap:16px;margin-top:16px}.lobby-settings{grid-template-columns:1fr 120px}.lobby-settings>small{display:none}.start-match>small{margin-bottom:7px;font-size:9px}.start-match>button{min-height:48px}.score-team{gap:6px;padding:0 8px}.score-team>span:first-child,.score-team>span:last-child{font-size:9px}.score-team small{font-size:7px}.set-dots{gap:3px}.set-dots i{width:4px;height:4px}.score-team strong{min-width:25px;font-size:27px}.action-dock p{max-width:320px;font-size:9px}.action-dock h2{font-size:22px}.block-controls{bottom:180px;right:14px}.set-targets{width:92vw;bottom:185px}#set-target-options{gap:4px}#set-target-options button{flex:1;gap:5px;min-width:0;padding:6px;font-size:8px}.pad-button{flex-shrink:0;width:20px;height:20px}.point-result{width:90vw;top:38%}.point-result strong{font-size:48px}.point-result p{font-size:10px}.summary-actions{gap:8px}.summary-actions>button{min-width:80px;padding:0 15px}.summary-actions .primary{min-width:190px}.pause-menu h2{font-size:64px}.menu-footer{font-size:7px;bottom:16px}#controls-panel{padding:22px}#controls-panel th,#controls-panel td{padding:10px 5px}#controls-panel table{font-size:9px}}@media (height<=720px) and (width>=561px){.lobby-screen{top:51%}.screen-heading h2{font-size:38px}.side-lanes{margin:16px 0 8px}.side-lane{min-height:120px;padding:12px 24px}.side-lane h3{font-size:42px}.lobby-bottom{margin-top:15px}.title-screen h1{font-size:118px}.title-subtitle{margin-bottom:20px}.match-format{margin-top:20px}.pause-menu h2{margin-bottom:15px;font-size:58px}.pause-nav{gap:2px}.match-summary h2{font-size:52px}.summary-score{font-size:70px}.set-history{margin:16px 0}.summary-actions{margin-top:18px}}@media (height<=650px) and (width<=560px){.lobby-screen{padding-bottom:70px;position:absolute;top:80px;transform:translate(-50%)}#front-end:has(.lobby-screen:not([hidden])){overflow:auto}.menu-footer{position:fixed}.title-screen h1{font-size:17vw}.title-subtitle{margin-bottom:18px}.match-format{margin-top:18px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}#ratings-panel{color:#eef0e7;font-variant-numeric:tabular-nums;background:#15272e;border:0;border-radius:12px;width:min(740px,100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:28px;overflow:auto;box-shadow:0 24px 100px #0009,0 0 0 1px #ffffff1a}#ratings-panel::backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#08141ccc}.ratings-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.ratings-heading h2{text-wrap:balance;font-size:38px}.ratings-heading button{color:#a9bebf;background:#ffffff08;border:0;border-radius:6px;width:40px;height:40px;font-size:24px}.ratings-intro,.ratings-footer p{color:#91aaaf;text-wrap:pretty;font-size:11px;line-height:1.7}.ratings-toolbar{grid-template-columns:1fr 1.3fr auto;align-items:end;gap:12px;margin:22px 0;display:grid}.ratings-toolbar label{color:#a0b6ba;gap:8px;font-size:9px;display:grid}.ratings-toolbar select{font:inherit;color:#d4e2de;background:#0e2028;border:1px solid #ffffff20;border-radius:4px;width:100%;height:40px;padding:0 10px;font-size:11px}.ratings-toolbar button,.ratings-footer button:not(.primary){background:#ffffff08;border:1px solid #ffffff20;border-radius:4px;min-height:40px;padding:0 13px;font-size:10px}.ratings-body{grid-template-columns:185px 1fr;gap:24px;display:grid}.ratings-body nav{flex-direction:column;gap:6px;display:flex}.ratings-body nav button{color:#9eb5b8;text-align:left;background:#ffffff04;border:0;border-radius:4px;justify-content:space-between;align-items:center;gap:14px;min-height:44px;padding:0 12px;font-size:11px;display:flex}.ratings-body nav button b{color:#79989e;margin-right:6px;font-size:9px}.ratings-body nav button strong{color:#c4d8d1}.ratings-body nav button[aria-pressed=true]{box-shadow:inset 2px 0 var(--lime);color:var(--lime);background:#d0ee9114}.ratings-player{justify-content:space-between;align-items:center;margin:0 0 18px;display:flex}.ratings-player small{letter-spacing:1px;color:#79989e;font-size:8px}.ratings-player h3{margin:6px 0;font-size:19px;font-weight:500}.ratings-overall{text-align:center}.ratings-overall strong{color:var(--lime);font-family:Barlow Condensed,sans-serif;font-size:42px;line-height:1;display:block}.ratings-overall small{font-size:7px}.ratings-fields{grid-template-columns:1fr 1fr;gap:10px 18px;display:grid}.ratings-fields label{color:#b2c7c6;justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.ratings-fields input{color:#eff4e9;text-align:center;width:56px;min-height:40px;font:inherit;font-variant-numeric:tabular-nums;background:#0c1e26;border:1px solid #ffffff20;border-radius:4px;font-size:13px}.ratings-footer{justify-content:space-between;align-items:center;gap:22px;margin-top:24px;padding-top:16px;display:flex;box-shadow:0 -1px #ffffff12}.ratings-footer p{max-width:260px;margin:0}.ratings-footer>div{gap:8px;display:flex}.ratings-footer .primary{white-space:nowrap;font-size:10px}#ratings-panel button:focus-visible,#ratings-panel select:focus-visible{outline:2px solid var(--lime);outline-offset:2px}@media (width<=650px){#ratings-panel{padding:20px}.ratings-toolbar{grid-template-columns:1fr 1fr}.ratings-toolbar button{grid-column:1/-1}.ratings-body{grid-template-columns:1fr;gap:20px}.ratings-body nav{grid-template-columns:repeat(2,1fr);display:grid}.ratings-fields{gap:8px 14px}.ratings-footer{flex-direction:column;align-items:stretch;gap:14px}.ratings-footer p{max-width:none}.ratings-footer>div{justify-content:flex-end}}@media (width<=480px){.top-actions #player-ratings{font-size:9px;display:block}}
