:root{font-family:Inter,system-ui,sans-serif;color:#3a4944;background:#f9f7f0;font-synthesis:none;--coral:#e7a58e;--blue:#8abfc9;--ink:#354d43}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:1px solid #d6dbd0;background:#fffdf7;color:var(--ink);border-radius:13px;padding:13px 18px;font-weight:600;min-height:46px}button:hover{background:#edf1e6}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #478786;outline-offset:3px}button:disabled{opacity:.5;cursor:default}.primary{background:var(--ink);color:#fffdf5;border-color:var(--ink)}.primary:hover{background:#496759}.quiet{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:13px}a{color:inherit}p{line-height:1.6}.topbar{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:27px 4vw;border-bottom:1px solid #e1e4d9}.brand{font-size:27px;letter-spacing:-1.6px;font-weight:750;text-decoration:none}.brand span{color:#dc947f}.section-name,.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.topbar>a:last-child{font-size:12px;text-decoration:none}.lobby{max-width:1250px;margin:auto;padding:54px 30px 20px}.intro h1{font-size:clamp(32px,4.1vw,55px);font-weight:550;letter-spacing:-2.3px;line-height:1.12;margin:15px 0 20px}.intro>p:last-child{font-size:15px;max-width:580px;color:#6c7771}.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:37px 0}.game-card{padding:0;text-align:left;border-radius:20px;overflow:hidden;border:2px solid transparent;background:#eeeee4}.game-card:hover{background:#eeeee4;transform:translateY(-2px)}.game-card[aria-pressed=true]{border-color:#4c7060;box-shadow:0 0 0 3px #f9f7f0 inset}.game-card img{display:block;width:100%;height:155px;object-fit:cover}.game-card .card-copy{display:block;padding:18px}.game-card strong{display:block;font-size:17px;letter-spacing:-.5px;margin-bottom:7px}.game-card small{font-size:11px;line-height:1.5;font-weight:450;display:block;color:#66716a}.setup{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;border-top:1px solid #dedfd3;padding:32px 0}.setup h2{font-size:28px;letter-spacing:-1px;margin:10px 0}.setup-copy>p:not(.eyebrow){max-width:540px;color:#69746d;font-size:13px}.small{font-size:11px!important}.course-label{display:flex;align-items:center;gap:18px;font-size:12px;font-weight:600;margin:22px 0}.course-label select{border:1px solid #d5dbd0;background:transparent;border-radius:10px;padding:10px;color:#3a4944}.room-panel{background:#eeeee4;border-radius:20px;padding:24px;align-self:start}.room-panel #choices{display:grid;gap:11px}.room-panel .primary{display:flex;justify-content:space-between;width:100%}.room-panel label{font-size:12px;display:block;margin:12px 0 8px}.room-panel input{width:100%;border:1px solid #cbd5c9;background:#fafaf3;border-radius:9px;padding:12px;color:#465b4c}.room-panel summary{font-size:12px;cursor:pointer;padding:6px}.room-panel form button{margin-top:10px;width:100%}.room-panel p{font-size:13px}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.seats{display:flex;gap:10px;justify-content:space-between;margin:20px 0;font-size:11px}.seats span{padding:9px 12px;border-radius:20px;background:#f9f5ed}.seats span:last-child{background:#d8e7e6}#error{color:#9b4d3f;overflow-wrap:anywhere}.footnote,footer{font-size:11px;text-align:center;color:#7b8379;margin-top:28px}footer{padding:20px}.play{max-width:1180px;margin:auto;padding:20px 28px}.play-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.play-heading h1{font-size:24px;letter-spacing:-.8px;margin:5px 0}.play-tools{display:flex;gap:8px}.play-tools button{padding:8px 14px;font-size:12px;min-height:40px}.hud{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#66776d;margin:8px 0}.progress{height:3px;background:#e3e4d8;border-radius:5px;margin:12px 0}.progress>div{height:100%;background:#6e9a85;transition:width .15s linear}.stage{position:relative;border-radius:20px;overflow:hidden;isolation:isolate;background:#d8e2cd;height:clamp(320px,49vh,580px)}canvas{width:100%;height:100%;display:block}.notice{position:absolute;left:50%;top:14px;transform:translateX(-50%);width:max-content;max-width:90%;text-align:center;font-size:12px;background:#fffaf0ed;padding:12px 20px;border-radius:12px;box-shadow:0 3px 25px #263b3510}.countdown{position:absolute;inset:0;display:grid;place-items:center;font-size:84px;color:white;font-weight:650;background:#354d4344;text-shadow:0 3px 20px #354d4388}.controls{display:flex;justify-content:space-around;gap:16px;margin:16px auto 0;max-width:900px;user-select:none;-webkit-user-select:none}.control-seat{display:flex;align-items:center;gap:14px;position:relative;padding:8px 18px;border:1px solid #e5ddce;border-radius:20px;background:#f1e5d9;min-height:126px;flex:1;justify-content:center}.control-seat.blue{background:#e4edeb;border-color:#d5e2e0}.control-label{font-size:10px;font-weight:650;position:absolute;top:8px;left:15px}.pad{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:3px;padding-top:14px}.pad button{padding:0;font-size:19px;min-height:0;border-radius:11px;touch-action:none;background:#ffffffaa}.pad button:nth-child(1){grid-column:2}.pad button:nth-child(2){grid-column:1;grid-row:2}.pad button:nth-child(3){grid-column:2;grid-row:2}.pad button:nth-child(4){grid-column:3;grid-row:2}.paddle-pad{display:grid;grid-template-rows:40px 40px;gap:6px;padding-top:12px}.paddle-pad button{font-size:12px;min-height:0;padding:6px 13px;touch-action:none}.action{width:76px;height:76px;border-radius:50%;padding:4px;font-size:11px;background:#fff8ec;touch-action:none}.blue .action{background:#f4fffc}.control-seat button.held{background:#4d7262;color:white;transform:scale(.97)}.tip{font-size:11px;text-align:center;min-height:18px;color:#708077;margin:12px 0}.navigator{display:flex;gap:9px;align-items:center;background:#f4ebcf;border-radius:14px;padding:12px 18px;margin-top:12px}.navigator div{flex:1}.navigator strong,.navigator span{display:block;font-size:12px}.navigator span{margin-top:5px;font-size:11px}.navigator button{font-size:12px;padding:8px 12px}.result{position:absolute;inset:0;background:#faf8efef;backdrop-filter:blur(5px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px}.result h2{font-size:clamp(30px,4vw,50px);letter-spacing:-1.8px;line-height:1.05;font-weight:550;margin:10px 0}.result p{font-size:12px}.result .eyebrow{font-size:10px}.result .button-row{justify-content:center}.result button{font-size:12px}.immersive .topbar,.immersive footer{display:none}.immersive .play{padding:12px 20px;max-width:1500px}.immersive .stage{height:calc(100dvh - 300px);min-height:250px}body.playing{overscroll-behavior:none}[hidden]{display:none!important}
@media(max-width:760px){.topbar{padding:19px 22px}.section-name{display:none}.lobby{padding:30px 20px 15px}.intro h1{font-size:36px;letter-spacing:-1.5px}.intro>p:last-child{font-size:13px}.game-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:28px 0}.game-card img{height:125px}.game-card .card-copy{padding:14px 11px}.game-card strong{font-size:15px}.game-card small{font-size:10px}.setup{grid-template-columns:1fr;gap:15px;padding-top:20px}.room-panel{padding:20px}.play{padding:14px 12px}.playing .topbar{display:none}.play-heading h1{font-size:19px}.play-heading .eyebrow{font-size:8px;letter-spacing:1px}.play-tools{gap:5px}.play-tools button{padding:7px 10px;min-height:37px}.hud{font-size:9px}.stage{height:43dvh;min-height:270px;border-radius:14px}.controls{gap:8px;margin-top:10px}.control-seat{padding:10px 8px;gap:6px;border-radius:14px}.control-label{font-size:9px;left:9px}.pad{grid-template-columns:repeat(3,35px);grid-template-rows:repeat(2,38px);gap:2px}.action{width:58px;height:58px;font-size:10px}.paddle-pad button{font-size:10px;padding:5px 10px}.navigator{padding:10px;gap:6px;flex-wrap:wrap}.navigator div{flex-basis:100%}.navigator button{flex:1;font-size:10px;min-height:37px}.result{padding:18px}.result .button-row{gap:6px}.result button{padding:9px 12px}.notice{font-size:11px;padding:9px 12px}.playing footer{display:none}.immersive .play{padding:10px}.immersive .stage{height:43dvh;min-height:250px}.tip{font-size:10px}.controls.local .control-seat{flex-direction:column;padding-top:23px}.controls.local .pad{padding-top:0}.controls.local .action{width:90px;height:40px;border-radius:10px}.controls.local .paddle-pad{padding-top:0}.controls.local .control-label{width:90%;text-align:center}}
@media(max-height:540px) and (orientation:landscape){.play{padding:7px 14px}.play-heading{margin:0}.play-heading h1{font-size:17px}.hud{margin:4px 0}.stage,.immersive .stage{height:calc(100dvh - 105px);min-height:180px}.controls{position:fixed;bottom:14px;left:22px;right:22px;z-index:4;justify-content:space-between;pointer-events:none;max-width:none}.control-seat{max-width:230px;opacity:.88;pointer-events:auto;min-height:105px}.tip{display:none}.navigator{position:absolute;top:80px;left:15px;z-index:5;max-width:250px}.controls.local .control-seat{flex-direction:row}.controls.local .action{width:60px;height:60px;border-radius:50%}.result{z-index:6}.playing:has(.result:not([hidden])) .controls{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.game-card:hover{transform:none}}
