:root{--ink:#173b4b;--muted:#65828d;--teal:#168a94;--line:#d6e9ed;--paper:#fff;--bg:#edf7fa}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:15px/1.7 system-ui,-apple-system,'Noto Sans JP',sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:white;border:1px solid var(--line);border-radius:12px;padding:11px 16px;color:var(--ink);font-weight:700}button:hover{border-color:var(--teal);background:#f1fbfb}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffb64b;outline-offset:3px}.primary{background:var(--teal);color:#fff;border-color:var(--teal);box-shadow:0 5px 0 #116b75}.primary:hover{background:#11737e;color:white}.textbtn{border:0;background:transparent;color:var(--teal);box-shadow:none}.icon{font-size:12px;padding:7px 10px}header{height:88px;max-width:1160px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--line)}header>div{display:flex;gap:7px}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-size:25px;font-weight:900}.brand span{font-size:18px}.brand small{display:block;font-size:9px;letter-spacing:2px;color:var(--teal)}main{max-width:1100px;margin:38px auto;padding:0 24px}.home{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;align-items:center}.eyebrow{font-size:11px;letter-spacing:3px;font-weight:850;color:var(--teal)}h1{font-size:42px;line-height:1.5;letter-spacing:-2px;margin:17px 0}h2{font-size:23px;line-height:1.45;margin:18px 0}p{color:var(--muted)}.hero>p{font-size:15px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips span{border:1px solid #cce3e8;border-radius:30px;padding:4px 13px;font-size:12px;background:#ffffff80}.hero-art{height:245px;position:relative;overflow:hidden}.rings{position:absolute;width:290px;height:145px;left:45px;top:45px;border:25px solid #b8e1ea;border-radius:50%;background:#fff;box-shadow:0 0 0 15px #fff,0 0 0 18px #d3e9ee}.rings:before{content:'';position:absolute;inset:18px 50px;background:#f8bd69;border-radius:50%;border:13px solid #fbe6c3}.mascot{position:absolute;width:100px;height:90px;border-radius:46% 46% 42% 42%;font-size:30px;text-align:center;padding-top:14px;box-shadow:0 12px 0 #0002,0 18px 20px #537c8528;color:#174152;border:3px solid #fff8;transform:rotate(-12deg)}.mascot b{display:block;font-size:13px;line-height:1}.blue{background:#6ccce5;top:30px;left:100px}.red{background:#ff9b88;top:115px;left:230px;transform:rotate(12deg)}.spark{position:absolute;left:340px;top:40px;color:#e9aa46;font-size:32px}.card{border:1px solid var(--line);border-radius:24px;background:#fff;padding:28px;box-shadow:0 18px 45px #244e6010}.tabs{display:flex;border-radius:12px;background:#eef6f8;padding:4px;gap:2px}.tabs button{flex:1;padding:9px 4px;border:0;background:transparent;font-size:12px;white-space:nowrap}.tabs button.active{background:#fff;box-shadow:0 2px 6px #254c6015;color:var(--teal)}label{display:block;font-size:12px;color:var(--muted);font-weight:750;margin:12px 0}input,select{width:100%;display:block;margin-top:5px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc;color:var(--ink);padding:10px 12px;min-height:44px}.formrow{display:flex;gap:13px}.formrow>label{flex:1;min-width:0}.setup>.primary{width:100%;margin-top:12px}.setup>.textbtn{width:100%}#connectStatus{font-size:12px;margin-bottom:0}.lobbycard{max-width:680px;margin:auto}.lobbycard h1{font-size:28px}.code{letter-spacing:6px;font-size:30px;color:var(--teal)}.buttonrow{display:flex;gap:10px;flex-wrap:wrap}.member,.score,.resultrow{display:flex;justify-content:space-between;align-items:center;padding:14px;border:1px solid var(--line);border-radius:13px;margin:10px 0}.member span,.score span{font-size:12px;color:var(--muted)}.play{display:grid;grid-template-columns:260px 1fr;gap:45px;max-width:830px;margin:auto}.sidebar{padding-top:12px}.score{background:#fff;border-left:5px solid var(--pc);gap:10px}.score.active{outline:2px solid var(--pc)}.score b{display:block;overflow-wrap:anywhere}.score strong{font-size:22px;white-space:nowrap}.tip{margin:24px 0;padding:18px;background:#deeff4;border-radius:15px;font-size:12px}.tip p{margin-bottom:0}.legend{font-weight:800;margin-top:12px;color:var(--teal)}.rinkwrap{max-width:480px;width:100%;margin:auto}.turnbar{display:flex;justify-content:space-between;padding:10px 15px;background:#fff;border-radius:14px 14px 0 0;min-height:48px;font-size:13px}#clock{font-weight:800;color:var(--teal)}canvas{display:block;width:100%;height:auto;touch-action:none;border-radius:0 0 18px 18px;box-shadow:0 12px 30px #27576415;outline:none}.powerbar{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:850;letter-spacing:1px;margin-top:16px}.powerbar>div{height:9px;background:#d1e6eb;border-radius:8px;flex:1;overflow:hidden}.powerbar i{height:100%;display:block;background:#eeae50;width:0}.powerbar b{min-width:36px}.hint{font-size:12px;text-align:center;margin:8px 0 0}.rinkwrap>.textbtn{display:block;margin:auto;font-size:12px;padding:4px}dialog{border:1px solid var(--line);border-radius:22px;max-width:520px;width:calc(100% - 30px);padding:28px;color:var(--ink);box-shadow:0 25px 90px #18344040}dialog::backdrop{background:#173b4b66;backdrop-filter:blur(4px)}.resultrow strong{font-size:22px}.resultrow small{display:block;color:var(--muted)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#173b4b;color:white;padding:10px 20px;border-radius:12px;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90%;font-size:13px}#toast.visible{opacity:1}[hidden]{display:none!important}@media(max-width:760px){header{height:72px;padding:12px 16px}.brand span{font-size:15px}.brand small{font-size:8px;letter-spacing:1px}main{padding:0 14px;margin:24px auto}.home{grid-template-columns:1fr;gap:25px;max-width:480px;margin:auto}h1{font-size:32px}.hero-art{height:190px}.hero-art .rings{top:25px}.mascot.red{top:85px}.hero>p{font-size:13px}.card{padding:21px}.play{display:flex;flex-direction:column;gap:12px;max-width:480px}.sidebar{padding:0}.sidebar>.eyebrow,.sidebar>.tip{display:none}.sidebar h2{font-size:16px;margin:0 0 6px}#scores{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.score{margin:0;padding:7px 10px;line-height:1.3}.score b{font-size:12px}.score strong{font-size:18px}.score span{font-size:10px}.sidebar>#quit{font-size:11px;padding:3px 8px;margin-top:7px}.lobbycard h1{font-size:24px}.hero-art .spark{left:320px}}
/* Keep the throw zone and power controls visible together. */
.play .rinkwrap{width:min(100%,max(220px,calc((100svh - 230px)*480/850)))}
@media(max-width:760px){body:has(#play:not([hidden])) main{margin-top:12px}.play .rinkwrap{width:min(100%,max(205px,calc((100svh - 340px)*480/850)))}.play .turnbar{padding:8px 10px;min-height:38px}.play .powerbar{margin-top:10px}.play .hint{font-size:10px}.play .rinkwrap>.textbtn{font-size:10px}}
@media(max-width:760px){body:has(#play:not([hidden])) header{height:56px}body:has(#play:not([hidden])) main{margin-top:8px}.play .score{padding:5px 8px}.play .rinkwrap{width:min(100%,max(205px,calc((100svh - 370px)*480/850)))}}
