:root{color-scheme:light dark;--bg:#fff;--fg:#090909;--muted:#595959;--border:#090909;font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;font-size:16px;background:var(--bg);color:var(--fg)}
@media(prefers-color-scheme:dark){:root{--bg:#090909;--fg:#fff;--muted:#b3b3b3;--border:#fff}}
*{box-sizing:border-box}body{margin:0;min-height:100svh;padding:24px 32px;display:flex;flex-direction:column}button,input,select{font:inherit;color:inherit;border-radius:0}button{background:var(--bg);border:2px solid var(--fg);min-height:48px;padding:10px 22px;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--fg);color:var(--bg)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--fg);outline-offset:5px}button.solid{background:var(--fg);color:var(--bg)}button.solid:hover:not(:disabled){opacity:.8}input{width:100%;border:2px solid var(--fg);background:var(--bg);padding:12px 14px;min-height:48px}input::placeholder{color:var(--muted);opacity:1}label{display:block;margin-bottom:9px}select{background:var(--bg);border:1px solid var(--fg);padding:7px 26px 7px 9px;max-width:170px;min-height:38px}select:disabled{opacity:1;border-color:transparent;appearance:none;padding-right:9px}
[hidden]{display:none!important}.header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px}.brand{color:var(--fg);font-size:22px;font-weight:900;text-decoration:none;letter-spacing:1px}.text-button{border:0;padding:8px;min-height:44px;font-weight:400}.text-button:hover:not(:disabled){background:transparent;color:inherit;text-decoration:underline}.underlined{text-decoration:underline;text-underline-offset:4px}#room-tools{display:flex;gap:16px;align-items:center}main{flex:1;display:flex;justify-content:center;align-items:center;width:100%}#home{width:min(100%,590px);padding:30px 0 10px}.home-title{text-align:center;margin-bottom:42px}#title-art{width:330px;max-width:80%;margin:0 auto 18px}#title-art svg{width:100%;display:block;height:auto}.home-title p{font-weight:700;font-size:20px;margin:0}#entry-form{width:100%}#entry-form button{width:100%;margin-top:14px}#entry-form .separator{text-align:center;margin:34px 0 20px}#room-code{text-transform:uppercase;letter-spacing:2px}.instructions{text-align:center;margin:28px 0 0;line-height:1.6;font-size:14px}kbd{font:inherit;white-space:nowrap}.error{font-size:14px;line-height:1.5;border-left:3px solid var(--fg);padding-left:12px;margin:18px 0 0}
#game{width:min(900px,100%,calc(max(280px,100svh - 280px)*1.731));padding:16px 0 0}.scoreboard{display:flex;justify-content:space-between;text-align:center;padding:0 16%;margin-bottom:16px}.scoreboard span{display:block;font-size:14px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score{height:48px;margin:8px auto 0;width:35px}.score svg{height:100%;width:100%;display:block}.court{position:relative;border:2px solid var(--fg);aspect-ratio:900/520;width:100%}canvas{width:100%;height:100%;display:block}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none}.overlay-content{background:var(--bg);padding:22px 26px;max-width:90%;pointer-events:auto}.overlay-content h2{font-size:22px;margin:0 0 12px;line-height:1.4}.overlay-content p{font-size:14px;line-height:1.5;margin:8px 0 18px}.overlay-content button{min-width:180px}.countdown{height:72px;width:52px;margin:0 auto}.countdown svg{height:100%;width:100%}.room-hint{font-size:24px!important;letter-spacing:4px;font-weight:700}.settings{display:flex;align-items:center;justify-content:center;gap:9px;margin:18px 0 12px;font-size:14px}.settings label{font-size:0;margin:0}.actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.actions button{min-height:44px;padding:9px 20px;font-size:14px}.message{font-size:13px;line-height:1.5;text-align:center;margin:10px 0 0;min-height:20px;color:var(--muted)}#game .instructions{margin-top:8px}.copy-feedback{font-size:13px}
@media(max-width:600px){body{padding:16px}.header{font-size:13px;gap:8px}.brand{font-size:18px}#room-tools{gap:6px}.text-button{padding:6px;font-size:13px}#home{padding-top:28px}.home-title{margin-bottom:30px}.home-title p{font-size:16px}.scoreboard{padding:0 10%}.scoreboard span{max-width:120px;font-size:12px}.actions{gap:8px}.actions button{padding:8px 12px;flex:1 1 40%;max-width:160px}.overlay-content{padding:14px}.overlay-content h2{font-size:17px}.overlay-content p{font-size:12px}.overlay-content button{padding:8px 12px;font-size:14px;min-width:150px}.settings{margin-top:12px}.instructions{font-size:12px}#game{padding-top:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
/* Keep the court dominant; secondary controls live in the header menu. */
#game{width:min(900px,100%,calc(max(280px,100svh - 150px)*1.33333));padding:4px 0 0}
.scoreboard{padding:0 14%;margin-bottom:12px;align-items:center}.scoreboard>div{display:flex;align-items:center;gap:16px}.scoreboard .score{height:35px;width:25px;margin:0}.court{aspect-ratio:4/3}
#game-menu{position:relative}#game-menu summary{padding:10px 8px;min-height:44px;cursor:pointer;list-style:none;font-size:16px}#game-menu summary::-webkit-details-marker{display:none}#game-menu summary:after{content:' ▾'}#game-menu[open] summary:after{content:' ▴'}#game-menu summary:focus-visible{outline:3px solid var(--fg);outline-offset:3px}
.menu-panel{position:absolute;top:calc(100% + 8px);right:0;width:270px;background:var(--bg);border:2px solid var(--fg);padding:18px;z-index:5}.menu-panel button{display:block;width:100%;font-size:14px;margin-top:10px}.menu-panel .settings{display:block;text-align:left;margin:0 0 14px}.menu-panel .settings label{font-size:14px;margin-bottom:8px}.menu-panel select{width:100%;max-width:none;min-height:44px}.menu-panel select:disabled{border-color:var(--fg);opacity:.65;appearance:auto}.menu-panel .instructions{margin:18px 0 0;line-height:1.9;text-align:left;font-size:13px}.menu-panel .message:empty{display:none}
@media(max-width:600px){#room-tools{gap:2px}#game-menu summary{font-size:13px;padding:10px 6px}.scoreboard{padding:0 7%;margin-bottom:10px}.scoreboard>div{gap:10px}.scoreboard .score{height:28px;width:20px}.menu-panel{width:250px}#game{padding-top:4px}}
