:root{color:#e8f0e9;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--lime:#a1ff73;--muted:#93a5a4;--purple:#b1a2ff;background:#101b1d;font-family:Arial,Helvetica,sans-serif;font-weight:400}*{box-sizing:border-box}body{background:radial-gradient(at 10% 12%,#24372a55,#0000 48%),#101b1d;min-width:280px;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;min-height:44px}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:5px}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}a{color:inherit}.app-shell{max-width:1160px;margin:auto;padding:0 44px}.topbar{border-bottom:1px solid #304044;justify-content:space-between;align-items:center;height:108px;display:flex}nav{gap:12px;display:flex}.brand{letter-spacing:-.9px;align-items:center;gap:6px;font-size:21px;font-weight:800;text-decoration:none;display:flex}.brand-light{font-weight:400}.edition{color:var(--muted);letter-spacing:0;align-self:flex-start;margin-left:8px;font:10px monospace}.brand-mark{justify-content:space-between;align-items:center;width:30px;height:27px;margin-right:12px;display:flex;transform:skewY(-10deg)}.brand-mark i{background:var(--lime);width:4px;height:25px}.brand-mark i:last-child{background:var(--purple);height:18px}.brand-mark b{background:#fff;border-radius:50%;width:6px;height:6px}.utility{color:#d5e1db;background:0 0;border:1px solid #3a4a4b;border-radius:7px;justify-content:center;align-items:center;gap:9px;padding:10px 15px;font-size:13px;font-weight:500;display:inline-flex}.utility:hover:not(:disabled){background:#263637;border-color:#667d77}.utility>span[aria-hidden]{font-size:18px}.intro{justify-content:space-between;align-items:end;gap:18px;margin:43px 0 28px;display:flex}.eyebrow{letter-spacing:2px;color:var(--muted);margin:0 0 13px;font-family:monospace;font-size:10px;font-weight:500}h1{letter-spacing:-1.5px;margin:0;font-size:38px;font-weight:500}h1>span{color:var(--lime)}.arcade-label{letter-spacing:1px;color:#adbbb3;white-space:nowrap;margin-bottom:7px;font:10px monospace}.status-dot{background:var(--lime);border-radius:50%;width:6px;height:6px;margin-right:9px;display:inline-block;box-shadow:0 0 8px #a1ff7333}.game-panel{background:#142224;border:1px solid #3b504b;border-radius:12px;overflow:hidden;box-shadow:0 20px 65px #020c0d40}.scoreboard{background:linear-gradient(110deg,#a1ff7306,#0000 50%,#b1a2ff05);justify-content:space-between;align-items:center;height:110px;padding:0 36px;display:flex}.score-side{align-items:center;gap:25px;display:flex}.side-name{letter-spacing:2px;color:#acbdb4;align-items:center;gap:10px;font:11px monospace;display:flex}.side-name i{background:var(--lime);border-radius:2px;width:5px;height:18px;display:inline-block}.computer .side-name i{background:var(--purple)}.score-side strong{letter-spacing:-3px;font-variant-numeric:tabular-nums;font-family:Courier New,monospace;font-size:56px;font-weight:400;line-height:1}.player strong{color:var(--lime)}.computer strong{color:var(--purple)}.match-meta{text-align:center;letter-spacing:1.2px;color:var(--muted);flex-direction:column;gap:11px;font:9px monospace;display:flex}.target-label{color:#d3ddd5;border:1px solid #3d514b;border-radius:20px;align-self:center;padding:6px 12px;font-size:10px}.court-wrap{aspect-ratio:16/9;isolation:isolate;background:#0d191c;border-top:1px solid #46644f;border-bottom:1px solid #46644f;position:relative}canvas{width:100%;height:100%;display:block}.court-corner{letter-spacing:1px;color:#758e83;font:9px monospace;position:absolute;bottom:12px}.left-corner{left:17px}.right-corner{right:17px}.screen{text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0b171bac;place-items:center;padding:14px;display:grid;position:absolute;inset:0}.screen-content{max-width:90%}.screen .eyebrow{color:var(--lime);letter-spacing:2.6px;font-size:10px}.screen h2{letter-spacing:-1.8px;margin:15px 0;font-size:clamp(25px,4.2vw,52px);font-weight:500}.screen p:not(.eyebrow){color:#c1ceca;margin:0 0 27px;font-size:14px;line-height:1.5}.primary{background:var(--lime);color:#142211;border:1px solid var(--lime);border-radius:7px;justify-content:space-between;align-items:center;gap:40px;min-width:186px;padding:14px 24px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:0 0 25px #a1ff730c}.primary:hover{background:#bbff9e}.primary:focus-visible{outline-color:#fff}.primary span{font-size:23px;line-height:1}.countdown{pointer-events:none;background:#0d191c66;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.countdown span{letter-spacing:3px;color:var(--lime);font:10px monospace}.countdown strong{text-shadow:0 0 24px #a1ff7340;font:80px/1 Courier New,monospace}.game-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:10px 23px;display:flex}.game-toolbar p{color:var(--muted);align-items:center;gap:5px;margin:0;font-size:11px;display:flex}kbd{color:#c8d8ce;background:#1a2c2d;border:1px solid #3a4c4c;border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;min-width:23px;min-height:23px;font:11px monospace;display:inline-flex}.game-toolbar p>span{margin:0 5px}.game-toolbar .utility{border-color:#0000;padding:8px}.game-toolbar .rally-label{letter-spacing:1.5px;color:#9dad9c;font:9px monospace}.below-court{color:#a4b5ad;justify-content:space-between;align-items:center;gap:16px;margin:21px 0 41px;font-size:12px;display:flex}.below-court p{align-items:center;gap:10px;margin:0;display:flex}.tiny-cross{color:var(--lime);font-size:21px}.offline-state{color:#a8b8ab;white-space:nowrap;font:10px monospace}.offline-state:before{content:"";background:#7d9385;border-radius:50%;width:5px;height:5px;margin-right:7px;display:inline-block}.offline-state.ready:before{background:var(--lime)}footer{color:#879c94;letter-spacing:1.5px;border-top:1px solid #304044;justify-content:space-between;gap:10px;padding:22px 0 27px;font:9px monospace;display:flex}footer b{color:var(--lime);margin-left:17px;font-size:16px;font-weight:400}.touch-pad{-webkit-user-select:none;user-select:none;touch-action:none;color:#aec4b6;background:repeating-linear-gradient(0deg,#0000,#0000 17px,#a1ff7308 18px);border:1px solid #3c5148;border-radius:8px;min-height:140px;margin:14px;display:none;position:relative}.touch-pad>div:last-child{pointer-events:none;flex-direction:column;align-items:center;gap:5px;padding:12px;display:flex}.touch-pad strong{font-size:13px;font-weight:500}.touch-pad span:last-child{color:#92a69b;font-size:11px}.touch-pad .touch-arrows{color:var(--lime);font-size:25px}.touch-track{background:#324c3e;border-radius:3px;width:4px;position:absolute;inset:12px auto 12px 17px}.touch-track span{top:calc(var(--touch-y,50%) - 8px);background:var(--lime);opacity:.4;border-radius:3px;width:4px;height:16px;position:absolute}.is-touching{border-color:var(--lime);background-color:#a1ff7306}.is-touching .touch-track span{opacity:1}.update-banner{color:#d7ceed;background:#28273a;border:1px solid #655980;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin:0 0 25px;padding:12px 18px;font-size:13px;display:flex}dialog{color:#e8f0e9;background:#162728;border:1px solid #536d59;border-radius:15px;width:min(450px,100% - 32px);padding:30px;box-shadow:0 30px 100px #0009}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#061011d9}dialog h2{letter-spacing:-1px;font-size:29px;font-weight:500}dialog p{color:#c6d6cb;font-size:14px;line-height:1.65}dialog .dialog-note{color:#9bb0a2;font-size:12px}dialog button{margin:12px 8px 0 0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.noscript{background:#263d28;padding:20px;position:fixed;bottom:10px;left:10px}@media (pointer:coarse){.touch-pad{display:block}.game-toolbar #control-hint,.game-toolbar .utility kbd{display:none}}@media (width<=700px){.app-shell{padding:0 19px}.topbar{height:80px}.brand{font-size:17px}.brand-mark{width:22px;height:24px;margin-right:5px}.brand-mark i{height:20px}.edition{display:none}nav{gap:5px}nav .utility{gap:6px;padding:9px 10px;font-size:12px}.intro{margin:30px 0 22px}.intro .eyebrow{letter-spacing:1.8px;margin-bottom:12px;font-size:8px}h1{letter-spacing:-1px;font-size:29px}.arcade-label{display:none}.scoreboard{height:87px;padding:0 19px}.score-side{gap:12px}.score-side strong{font-size:43px}.side-name{letter-spacing:1px;gap:7px;font-size:9px}.side-name i{width:3px;height:14px}.match-meta{letter-spacing:.5px;gap:7px}.match-meta #match-status{max-width:115px;font-size:7px}.target-label{padding:5px 8px;font-size:8px}.screen h2{letter-spacing:-.8px;margin:9px 0;font-size:28px}.screen .eyebrow{letter-spacing:1.7px;margin:0;font-size:7px}.screen p:not(.eyebrow){margin-bottom:14px;font-size:11px}.screen .primary{min-width:153px;padding:10px 18px;font-size:12px}.game-toolbar{min-height:61px;padding:9px 14px}.game-toolbar .rally-label{display:none}.game-toolbar p{gap:2px;font-size:9px}.game-toolbar p>span{margin:0 3px}.game-toolbar kbd{min-width:19px;min-height:21px;font-size:10px}.below-court{flex-direction:column;align-items:flex-start;gap:13px;margin:17px 0 27px;font-size:11px}.below-court p{gap:7px}.offline-state{font-size:9px}footer{letter-spacing:.6px;font-size:8px}footer b{margin-left:5px}.countdown strong{font-size:57px}.countdown{gap:8px}.court-corner{font-size:7px;bottom:7px}.left-corner{left:9px}.right-corner{right:9px}.update-banner{padding:10px;font-size:12px}.touch-pad{min-height:155px}}@media (height<=540px) and (orientation:landscape){.app-shell{max-width:900px;padding:0 22px}.topbar{height:62px}.intro{display:none}.game-panel{margin-top:14px}.scoreboard{height:65px;padding:0 20px}.score-side strong{font-size:38px}.play-layout{background:#0d191c;justify-content:center;align-items:center;display:flex}.court-wrap{flex:1;min-width:0;max-width:calc(177.778svh - 355.556px)}.touch-pad{flex:none;align-self:stretch;width:155px;min-height:130px;margin:8px}.touch-pad>div:last-child{text-align:center;padding:15px 10px 10px 22px}.touch-pad span:last-child{max-width:110px}.game-toolbar{min-height:50px;padding:3px 16px}.below-court{flex-direction:row;margin:10px 0}.below-court p{font-size:10px}footer{display:none}.screen h2{margin:5px 0;font-size:25px}.screen .eyebrow{margin:0;font-size:7px}.screen p:not(.eyebrow){margin-bottom:8px;font-size:10px}.screen .primary{min-width:145px;padding:9px 13px;font-size:12px}.court-corner{font-size:7px}.countdown strong{font-size:45px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.meta-separator{color:#667e6d;margin:0 6px}#difficulty-options{border:0;margin:20px 0 0;padding:0}#difficulty-options legend{text-transform:uppercase;letter-spacing:1.5px;color:#a5b9ab;margin-bottom:12px;font:10px monospace}#difficulty-options label{cursor:pointer;border:1px solid #3b514b;border-radius:8px;align-items:center;gap:13px;min-height:67px;margin:8px 0;padding:12px 14px;display:flex}#difficulty-options label:has(input:checked){background:#a1ff7309;border-color:#a1ff73}#difficulty-options label:has(input:focus-visible){outline-offset:3px;outline:3px solid #a1ff73}#difficulty-options input{accent-color:#a1ff73;flex:none;width:17px;height:17px;margin:0}#difficulty-options label>span:nth-child(2){flex-direction:column;gap:6px;display:flex}#difficulty-options strong{font-size:14px;font-weight:500}#difficulty-options small{color:#9eb2a4;font-size:11px}#difficulty-options .level-bars{color:#a1ff73;margin-left:auto;font:20px monospace}#settings-dialog{max-height:calc(100svh - 30px);overflow:auto}#settings-dialog h2{margin-bottom:10px}@media (width<=700px){.topbar #sound-label,.topbar #install span:last-child{display:none}.topbar #sound,.topbar #install{width:44px}.meta-separator{margin:0 3px}.target-label{padding:5px 6px;font-size:7px}#settings-dialog{padding:24px}}.touch-capable .touch-pad{display:block}.touch-capable .game-toolbar #control-hint,.touch-capable .game-toolbar .utility kbd{display:none}@media (width>=701px) and (height>=541px){.app-shell{min-width:min(100%,650px);max-width:min(1160px,177.778svh - 569.778px)}.topbar{height:72px}.intro{margin:22px 0 18px}.intro h1{font-size:30px}.intro .eyebrow{margin-bottom:8px;font-size:9px}.scoreboard{height:82px}.score-side strong{font-size:44px}.game-toolbar{min-height:54px}.below-court{margin:12px 0 18px;font-size:11px}footer{padding:14px 0 18px;font-size:8px}}@media (width>=701px) and (height<=820px){.arcade-label{display:none}.topbar .brand{font-size:18px}.topbar .utility{padding:9px 11px}}@media (width<=360px){.topbar #settings{width:44px}.topbar #settings span:last-child{display:none}.brand{font-size:15px}.scoreboard{padding:0 12px}.score-side{gap:7px}.side-name{font-size:8px}}@supports (padding:max(0px)){.app-shell{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}@media (width<=700px){.app-shell{padding-left:max(19px,env(safe-area-inset-left));padding-right:max(19px,env(safe-area-inset-right))}}@media (height<=540px) and (orientation:landscape){.app-shell{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}}}#court{touch-action:none;-webkit-user-select:none;user-select:none}.challenge-actions{justify-content:center;gap:6px;margin-top:8px;display:flex}.screen .challenge-entry{flex:1;min-width:0;min-height:44px;margin:0;padding:6px 10px;font-size:12px;display:flex}.screen:has(.challenge-entry:not([hidden])) h2{margin:7px 0}.screen:has(.challenge-entry:not([hidden])) .eyebrow{margin-bottom:5px}.screen:has(.challenge-entry:not([hidden])) p:not(.eyebrow){margin-bottom:9px}#challenge-dialog{width:min(560px,100% - 24px);max-height:calc(100dvh - 24px);padding:24px;overflow:auto}#challenge-dialog h2{margin:12px 0}#challenge-dialog h3{margin:18px 0 10px;font-size:17px;line-height:1.4}.challenge-field{color:#c6d6cb;flex-direction:column;gap:7px;min-width:0;margin-top:12px;font-size:12px;display:flex}.challenge-field input,.challenge-field select{font:inherit;color:#e8f0e9;background:#0d191c;border:1px solid #536d59;border-radius:6px;width:100%;min-height:44px;padding:10px}.challenge-field :focus-visible{outline:3px solid var(--lime);outline-offset:2px}.challenge-create-row{align-items:end;gap:12px;display:flex}.challenge-create-row label{flex:1}.challenge-create-row button{margin-right:0}#challenge-status{border:1px solid #536d59;border-radius:6px;padding:12px;font-size:13px}.challenge-code-display strong{color:var(--lime);letter-spacing:4px;font:22px monospace}#challenge-comparison{grid-template-columns:1fr 1fr;gap:10px;display:grid}.result-card{border:1px solid #425650;border-radius:8px;min-width:0;padding:14px}.result-card h4{overflow-wrap:anywhere;margin:0 0 9px;font-size:17px}.result-card p{margin:6px 0;font-size:12px}.challenge-winner{border-color:var(--lime);background:#a1ff7310}@media (width<=700px),(height<=540px) and (orientation:landscape){.screen:has(.challenge-entry:not([hidden])){padding:8px}.screen:has(.challenge-entry:not([hidden])) .eyebrow{display:none}.screen:has(.challenge-entry:not([hidden])) h2{margin:0 0 4px;font-size:23px}.screen:has(.challenge-entry:not([hidden])) p:not(.eyebrow){margin-bottom:6px}.challenge-actions{margin-top:4px}.screen .challenge-entry{font-size:11px}}@media (width<=360px){.screen:has(.challenge-entry:not([hidden])) #screen-description{display:none}#challenge-dialog{padding:16px}#challenge-comparison{grid-template-columns:1fr}.challenge-create-row{flex-wrap:wrap;gap:0}.challenge-create-row label{min-width:100%}}.court-corner{pointer-events:none}.play-actions{flex:none;align-items:center;gap:8px;display:flex}.game-toolbar #court-touch-hint{line-height:1.5;display:none}#court-touch-hint span{margin:0;font-size:10px;display:block}.fullscreen-status{display:none}.touch-capable .game-toolbar #court-touch-hint{display:block}.touch-capable .game-toolbar .rally-label{display:none}@media (pointer:coarse){.game-toolbar #court-touch-hint{display:block}.game-toolbar .rally-label{display:none}}@media (width<=700px){.topbar #settings,.topbar #fullscreen{width:44px}.topbar #settings span:last-child,.topbar #fullscreen span:last-child{display:none}#court-touch-hint span{max-width:190px;font-size:9px}}@media (width<=360px){.brand-mark{display:none}.brand{gap:4px;font-size:14px}}html.game-expanded,.game-expanded body{overscroll-behavior:none;overflow:hidden}.game-panel.is-expanded{width:100%;max-width:none;height:100%;box-shadow:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#0d191c;border:0;border-radius:0;grid-template-rows:60px minmax(0,1fr) auto auto;margin:0;display:grid}.game-panel.viewport-fullscreen{z-index:100;width:100%;height:100dvh;position:fixed;inset:0}.game-panel::backdrop{background:#0d191c}.is-expanded .scoreboard{height:60px;padding:0 20px}.is-expanded .score-side strong{font-size:38px}.is-expanded .match-meta #match-status{display:none}.is-expanded .play-layout{place-items:center;min-width:0;min-height:0;display:grid;overflow:hidden}.is-expanded .court-wrap{width:var(--expanded-court-width,100%);border:0;flex:none;max-width:none;height:auto}.is-expanded .touch-pad{display:none}.is-expanded .game-toolbar{background:#142224;flex-wrap:wrap;min-height:56px;padding:6px 16px}.is-expanded .game-toolbar .rally-label{display:none}.is-expanded .play-actions{margin-left:auto}.is-expanded .fullscreen-status{color:var(--muted);background:#142224;margin:0;padding:0 16px 8px;font-size:10px;line-height:1.4;display:block}.is-expanded:not(.viewport-fullscreen) .fullscreen-status{clip-path:inset(50%);width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=540px){.is-expanded .game-toolbar #court-touch-hint{text-align:center;flex:1 0 100%}.is-expanded #court-touch-hint span{max-width:none}.is-expanded .play-actions{justify-content:space-between;width:100%}.is-expanded .scoreboard{padding:0 14px}}@media (height<=430px) and (orientation:landscape){.game-panel.is-expanded{grid-template-rows:46px minmax(0,1fr) auto auto}.is-expanded .scoreboard{height:46px}.is-expanded .score-side strong{font-size:30px}.is-expanded .game-toolbar{min-height:48px;padding:2px 12px}.is-expanded .screen h2{font-size:24px}}
