:root{--bg:#0c0a08;--panel:#14100ce6;--line:#f0c87833;--txt:#f3ede2;--muted:#b3a690;--gold:#f0c35a;--green:#36c27a;--bad:#ff5a5a;--p0:#f0c35a;--p1:#67b7ff;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);font-family:Nunito,Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--txt);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;overscroll-behavior:none;margin:0;overflow:hidden}#c{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}.screen{padding:max(12px, var(--sat)) max(12px, var(--sar)) max(12px, var(--sab)) max(12px, var(--sal));z-index:20;touch-action:pan-y;background:radial-gradient(#0c0a0866,#0c0a08e0);justify-content:center;align-items:center;display:none;position:fixed;inset:0;overflow:auto}.screen.dim{z-index:30;background:#0806048c}.screen.show{display:flex}#loading{background:var(--bg);z-index:50;flex-direction:column;gap:8px}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:18px;max-width:100%;margin:auto;padding:20px 22px;box-shadow:0 20px 60px #0000008c}.panel.small{flex-direction:column;gap:12px;width:400px;display:flex}.panel.menu{flex-direction:column;gap:12px;width:460px;display:flex}.panel.center{text-align:center}h2{margin:0;font-size:22px}h3{margin:0 0 6px}h4{color:var(--gold);margin:0 0 6px}.logo{letter-spacing:3px;font-size:34px;font-weight:900}.logo span{color:var(--txt)}.logo b{color:var(--gold)}.logo.big{text-align:center;font-size:44px;line-height:1}.tag{text-align:center;color:var(--muted);margin:-4px 0 4px}.muted{color:var(--muted);margin:0}.small{font-size:13px}.err{color:var(--bad);min-height:1em;margin:0;font-size:14px}.row{flex-wrap:wrap;gap:10px;display:flex}.row>*{flex:1}.col{flex-direction:column;gap:10px;display:flex}.menu-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.menu-grid .primary{grid-column:1/-1}.btn{font:inherit;color:var(--txt);cursor:pointer;touch-action:manipulation;background:#ffffff14;border:1px solid #ffffff24;border-radius:12px;padding:10px 14px;font-weight:800}.btn:hover{background:#ffffff24}.btn:disabled{opacity:.45;cursor:default}.btn.primary{color:#241707;background:linear-gradient(#f5cd6a,#d9a23a);border-color:#ffdc8c99}.btn.primary:hover{filter:brightness(1.06)}.btn.danger{color:#ffb0b0;border-color:#ff5a5a80}.btn.ghost{background:0 0}.btn.big{padding:14px 16px;font-size:17px}.btn.small{padding:6px 10px;font-size:13px}.btn.sel,.seg button.sel{outline:2px solid var(--gold)}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.field input,.field select,.join input{font:inherit;color:var(--txt);background:#00000059;border:1px solid #ffffff29;border-radius:10px;padding:9px 11px;font-size:16px}.field input[type=range]{padding:0}.chk{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.join input{text-transform:uppercase;letter-spacing:4px;text-align:center;max-width:140px}.seg{gap:6px;display:flex}.seg button{font:inherit;color:var(--txt);cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:10px;flex:1;padding:9px;font-weight:800}.who{text-align:center;color:var(--muted)}.invite{text-align:center;background:#f0c35a1f;border:1px solid #f0c35a66;border-radius:12px;padding:10px}.invite p{margin:0 0 8px}.panel.lobby{flex-direction:column;gap:12px;width:440px;display:flex}.lobby-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.lobby-share{flex-direction:column;gap:6px;display:flex}.code{letter-spacing:6px;color:var(--gold);font-size:40px;font-weight:900}.players{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.players li{background:#ffffff0d;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.players .st{font-size:13px;font-weight:800}.players .ok{color:var(--green)}.players .wait{color:var(--muted)}.players .gone{color:var(--bad)}.bigscore{margin:6px 0;font-size:40px;font-weight:900}.panel.help{flex-direction:column;gap:12px;width:860px;display:flex}#helpOk{position:sticky;bottom:0;box-shadow:0 -10px 18px #0c0a08d9}.help-cols{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.help-cols ul{margin:0;padding-left:18px;font-size:14px;line-height:1.45}.panel.rules{flex-direction:column;gap:12px;width:720px;max-height:92vh;display:flex}.panel.rules .scroll{touch-action:pan-y;-webkit-user-select:text;user-select:text;padding-right:6px;font-size:14px;line-height:1.5;overflow:auto}.panel.rules h4{margin:12px 0 4px}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud>*{pointer-events:auto}#bar{top:var(--sat);left:max(8px, var(--sal));right:max(8px, var(--sar));pointer-events:none;justify-content:space-between;align-items:center;gap:10px;height:54px;display:flex;position:absolute}.pcard{background:#100c09c7;border:1px solid #ffffff1a;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:1fr auto;column-gap:8px;width:min(34vw,300px);padding:5px 10px;font-size:14px;transition:border-color .2s,box-shadow .2s;display:grid}.pcard.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold), 0 0 18px #f0c35a59}.pcard .pname{white-space:nowrap;text-overflow:ellipsis;font-weight:900;overflow:hidden}.pcard .pgroup{color:var(--muted);text-align:right;font-size:12px}.pcard .pballs{grid-column:1/-1;gap:3px;min-height:16px;display:flex}.mb{color:#111;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;font-size:9px;font-weight:900;display:flex;box-shadow:inset -2px -2px 3px #00000059}.mb.gone{opacity:.18}.mb.stripe{background-image:linear-gradient(#f3eee2 26%,#0000 26% 74%,#f3eee2 74%)!important}.mb i{background:#f3eee2;border-radius:50%;justify-content:center;align-items:center;width:9px;height:9px;font-size:7px;font-style:normal;display:flex}.pcard.right{text-align:right}#mid{text-align:center;text-shadow:0 1px 3px #000;flex:1;min-width:0}#turn{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:900;overflow:hidden}#score{color:var(--muted);font-size:13px}#net{color:var(--bad);font-size:12px}#tools{top:calc(var(--sat) + 60px);right:max(8px, var(--sar));gap:6px;display:flex;position:absolute}.ib{font:inherit;width:40px;height:40px;color:var(--txt);cursor:pointer;touch-action:manipulation;background:#100c09b8;border:1px solid #ffffff24;border-radius:10px;font-size:18px}.ib:hover{background:#281e14d9}.side{top:calc(var(--sat) + 108px);bottom:calc(var(--sab) + 64px);flex-direction:column;align-items:center;gap:12px;width:112px;display:flex;position:absolute}#left{left:max(8px, var(--sal))}#right{right:max(8px, var(--sar))}#spin{touch-action:none;flex-direction:column;align-items:center;gap:4px;display:flex}#spinBall{cursor:crosshair;background:radial-gradient(circle at 35% 30%,#fff,#e8e3d6 45%,#b9b2a2 100%);border-radius:50%;width:96px;height:96px;position:relative;box-shadow:0 4px 14px #00000080}#spinLimit{pointer-events:none;border:1px dashed #00000059;border-radius:50%;width:50%;height:50%;position:absolute;top:25%;left:25%}#spinDot{pointer-events:none;background:#d61f2c;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #fff,0 1px 4px #0009}.lbl{color:var(--muted);text-align:center;text-shadow:0 1px 2px #000;font-size:12px}#callBox{flex-direction:column;align-items:stretch;gap:6px;width:112px;display:flex}#callTxt{text-align:center;background:#100c09bf;border:1px solid #ffffff1a;border-radius:10px;padding:6px;font-size:13px;font-weight:800;line-height:1.25}#callTxt.eight{border-color:var(--gold);color:var(--gold)}#bSafety.on{border-color:var(--p1);background:#67b7ff40}#power{touch-action:none;cursor:ns-resize;background:#100c09bf;border:1px solid #ffffff24;border-radius:18px;flex:1;width:64px;min-height:120px;position:relative;overflow:hidden}#powerFill{opacity:.85;background:linear-gradient(#ff5a3a,#f0c35a 40%,#36c27a);height:0%;position:absolute;bottom:0;left:0;right:0}#powerKnob{background:#fff;border-radius:3px;height:6px;position:absolute;bottom:0;left:4px;right:4px;box-shadow:0 0 6px #0009}#powerLbl{text-align:center;text-shadow:0 1px 2px #000;font-size:13px;font-weight:900;position:absolute;top:6px;left:0;right:0}#bShoot{letter-spacing:1px;width:100px;height:58px;font-size:18px}#fine{left:50%;bottom:calc(var(--sab) + 8px);align-items:center;gap:8px;display:flex;position:absolute;transform:translate(-50%)}#fineStrip{cursor:ew-resize;touch-action:none;background:#100c09bf;border:1px solid #ffffff24;border-radius:12px;justify-content:center;align-items:center;width:min(42vw,340px);height:40px;display:flex;position:relative;overflow:hidden}#fineStrip span{color:var(--muted);pointer-events:none;text-shadow:0 1px 2px #000;font-size:12px;position:relative}#fineTicks{pointer-events:none;background:repeating-linear-gradient(90deg,#ffffff38 0 1px,#0000 1px 12px);position:absolute;inset:0}#train{left:50%;top:calc(var(--sat) + 60px);background:#100c09b3;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:60vw;padding:5px 8px;font-size:13px;display:flex;position:absolute;transform:translate(-50%)}#toast{left:50%;top:calc(var(--sat) + 104px);text-align:center;pointer-events:none;max-width:min(560px,60vw);position:absolute;transform:translate(-50%)}#toast .t{background:#100c09e6;border:1px solid #ffffff24;border-radius:12px;margin-bottom:6px;padding:8px 14px;font-size:15px;line-height:1.35;animation:.25s ease-out tin}#toast .t.foul{border-color:var(--bad)}#toast .t.good{border-color:var(--green)}#toast .t b{color:var(--gold)}@keyframes tin{0%{opacity:0;transform:translateY(-6px)}}#hint{left:50%;bottom:calc(var(--sab) + 58px);color:var(--muted);text-shadow:0 1px 3px #000;pointer-events:none;white-space:nowrap;font-size:13px;position:absolute;transform:translate(-50%)}#away{z-index:40;background:#08060473;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#rotate{left:50%;bottom:calc(var(--sab) + 4px);z-index:15;color:var(--muted);pointer-events:none;font-size:12px;position:fixed;transform:translate(-50%)}body.busy #bShoot{opacity:.4}body.portrait .side{top:auto;bottom:calc(var(--sab) + 56px);width:auto;height:150px}body.portrait #left{flex-direction:row;align-items:flex-end}body.portrait #right{flex-direction:row-reverse;align-items:flex-end}body.portrait #power{flex:none;width:54px;height:140px}body.portrait #bShoot{width:84px}body.portrait #spinBall{width:84px;height:84px}body.portrait .pcard{grid-template-columns:1fr;width:36vw;font-size:12px}body.portrait .pcard .pgroup{text-align:left}body.portrait .pcard.right .pgroup{text-align:right}body.portrait #fineStrip{width:50vw}body.portrait #tools{top:calc(var(--sat) + 58px)}body.portrait #tools .ib{width:36px;height:36px;font-size:15px}body.portrait #train{top:calc(var(--sat) + 100px);gap:4px 6px;width:max-content;max-width:96vw;padding:4px 6px;font-size:12px}body.portrait #train .btn.small{padding:5px 9px;font-size:12px}body.portrait #hint{display:none}body.portrait #mid{font-size:12px}body.portrait #turn{white-space:normal;font-size:13px}body.portrait #score{white-space:nowrap;font-size:11px}body.portrait #toast{top:calc(var(--sat) + 104px);max-width:92vw}@media (max-height:460px){#bar{height:44px}.pcard{padding:2px 8px;font-size:12px}.mb{width:12px;height:12px;font-size:8px}#tools{top:calc(var(--sat) + 48px)}body:not(.portrait) #train{top:calc(var(--sat) + 48px);left:max(8px, var(--sal));white-space:nowrap;flex-wrap:nowrap;gap:4px;max-width:none;padding:3px 6px;font-size:11px;transform:none}body:not(.portrait) #train .btn.small{padding:4px 7px;font-size:11px}body:not(.portrait) #train .long{display:none}body:not(.portrait) #train .chk{gap:0;font-size:11px}body:not(.portrait) #train input{width:13px;height:13px;margin:0 3px 0 2px}#train:not(.hidden)~#toast{top:calc(var(--sat) + 84px)}.ib{width:34px;height:34px;font-size:15px}.side{top:calc(var(--sat) + 88px);bottom:calc(var(--sab) + 52px);width:96px}#spinBall{width:72px;height:72px}#callBox{width:96px}#bShoot{width:90px;height:50px}#fineStrip{height:34px}#toast{top:calc(var(--sat) + 50px)}.help-cols{grid-template-columns:1fr}}@media (max-width:700px){.help-cols{grid-template-columns:1fr}}
