/* Angkor Platinum: a live arena, with the two meters outside the table. */
.game-shell{max-width:550px;height:100dvh;padding:max(3px,env(safe-area-inset-top,0px)) 5px calc(4px + var(--safe));gap:3px;background:radial-gradient(ellipse at 50% 22%,#0e2c3b55,transparent 65%),#030b12;border-color:#314550;isolation:isolate}
.game-shell .topbar{min-height:44px;flex-shrink:0;padding:0 3px;position:relative}
.game-shell .topbar:after{content:'';position:absolute;bottom:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#bbc5cc,#4bddf5,#bbc5cc,transparent)}
.game-shell .topbar .brand{font-size:27px;color:#f2f4ed;text-shadow:0 1px 1px #73909e;letter-spacing:-1.4px}
.game-shell .topbar button{min-width:44px;min-height:44px;color:#d4dfe4;background:none;border:0}
.game-shell .players-bar{min-height:58px;flex-shrink:0;padding:2px 1px;gap:5px;border:0}
.game-shell .player-block{min-width:0;padding:5px 4px;gap:5px;border:1px solid #82989b70;border-radius:20px 7px 7px 20px;background:linear-gradient(115deg,#0d1c25,#02090f);box-shadow:inset 0 0 0 2px #01080e;opacity:.76;position:relative}
.game-shell .player-block.right{border-radius:7px 20px 20px 7px}
.game-shell .player-block.current{opacity:1;border-color:#9cd6de;box-shadow:inset 0 0 0 2px #01080e,0 1px #58e8ff55}
.game-shell .player-block:after{content:'◆';font-size:8px;position:absolute;bottom:-6px;left:50%;color:#90dae4;text-shadow:0 1px #000}
.game-shell .players-bar .avatar{width:35px;height:35px;border-color:#71ecfa;box-shadow:0 0 0 2px #202a31}
.game-shell .player-block strong{font-size:11px;max-width:none}
.game-shell .match-level{margin-top:2px;gap:3px}
.game-shell .match-level small{font-size:8px}
.game-shell .match-cue{display:block;font:8px/1.45 system-ui;color:#6de6ef;white-space:nowrap}
.game-shell .match-count{font-size:7px;line-height:1.35}
.game-shell .turn-timer{width:43px;height:43px;min-width:43px;border:2px solid #c0ccd1;outline:2px solid #233b43;color:#f1ead4;background:radial-gradient(circle,#13313d,#02080e 75%);box-shadow:inset 0 0 0 2px #364249,0 0 5px #42d7f526;font-size:14px}
.game-shell .game-objective{flex-shrink:0;min-height:17px;font-size:8px;line-height:1.4;color:#84bdc7}
.game-shell .arena-stage{display:grid;grid-template-columns:clamp(39px,10.8vw,49px) minmax(0,1fr) clamp(48px,12.3vw,55px);gap:2px;flex:1;min-height:0;align-items:stretch}
.game-shell .stage{min-width:0;min-height:0;height:100%;overflow:hidden;contain:layout paint;flex:none}
.game-shell canvas#table{width:100%;height:100%;display:block;touch-action:none}
.game-shell .game-status{font-size:8px;bottom:0;padding:2px 5px;border:0;max-width:100%;border-radius:4px;color:#c4dce0;background:#030b12dc;line-height:1.65}
.game-shell .arena-meter{align-self:center;height:min(82%,430px);min-height:175px;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 2px 3px;position:relative;border:1px solid #94a4a77a;border-radius:16px 16px 9px 9px;background:linear-gradient(90deg,#17252b,#020a10 25%,#071822 70%,#152731);box-shadow:inset 0 0 0 2px #03070c;overflow:visible}
.game-shell .arena-meter:before,.game-shell .arena-meter:after{content:'◆';position:absolute;left:50%;transform:translateX(-50%);color:#9ae2ec;font:11px/1 system-ui;text-shadow:0 0 3px #41dcf54d}
.game-shell .arena-meter:before{top:-5px}.game-shell .arena-meter:after{bottom:-5px}
.game-shell .arena-meter .control-label{display:flex;flex-direction:column;text-align:center;gap:1px;font:600 9px/1.35 system-ui;color:#dce6e7;white-space:normal}
.game-shell .arena-meter .control-label .icon{width:14px;height:14px;color:#5eeafe}
.game-shell .energy-line{display:flex;flex:1;min-height:0;width:100%;flex-direction:column;align-items:center;gap:5px}
.game-shell .vertical-meter{position:relative;display:block;width:16px;min-height:40px;flex:1;margin:3px auto;border:1px solid #9cbbc3;border-radius:10px;background:#01080d;overflow:hidden;box-shadow:inset 0 0 0 2px #142b36}
.game-shell .vertical-meter i{position:absolute;bottom:0;left:2px;right:2px;display:block;width:auto;background:linear-gradient(0deg,#047bac,#20dae8 60%,#a3fcff);border-radius:7px;box-shadow:inset 1px 0 #d3fcff77;transition:none}
.game-shell .energy-line strong{display:block;text-align:center;font:750 12px/1.2 system-ui;color:#e9f9fa;white-space:normal}
.game-shell .energy-line strong small{display:block;font:9px/1.4 system-ui;color:#8baebc;white-space:nowrap}
.game-shell .energy-line>small{font:8px/1.4 system-ui;text-align:center}
.game-shell .energy-line>button{font-size:9px;line-height:1.4;min-height:44px;width:44px;padding:2px 1px;margin:0;background:none;border:0;color:#65e8ef;white-space:normal}
.game-shell .power-wrap output{margin:0;font:750 16px/1.2 system-ui;color:#e8fbff}
.game-shell .power-wrap{touch-action:none;user-select:none;-webkit-user-select:none;cursor:ns-resize}
.game-shell .power-wrap .cue-power{height:auto;width:28px;margin:3px auto;flex:1;border-radius:6px;touch-action:none}
.game-shell .power-track{position:absolute;inset:8px 1px;pointer-events:none}
.game-shell .cue-power i{top:0;bottom:auto;left:2px;right:2px;max-width:100%;border-radius:3px;background:linear-gradient(180deg,#047bac,#20dae8 60%,#a3fcff)}
.game-shell .cue-power:after{content:'';position:absolute;inset:2px;pointer-events:none;background:repeating-linear-gradient(to top,transparent 0,transparent calc(10% - 1px),#030d1bcc calc(10% - 1px),#030d1bcc 10%)}
.game-shell .power-handle{position:absolute;left:0;right:0;top:var(--power-position,40%);transform:translateY(-50%);height:16px;z-index:1;display:grid;place-items:center;border:1px solid #c6f8ff;border-radius:4px;background:linear-gradient(#b5f8ff,#39cadd 55%,#16879e);color:#023647;font:900 19px/10px Arial;box-shadow:0 2px 4px #0009;pointer-events:none}
.game-shell .power-wrap.pulling{border-color:#85edff;box-shadow:inset 0 0 0 2px #03070c,0 0 7px #42dffa33}
.game-shell .cue-power[aria-disabled=true]{opacity:.45;cursor:default}
.game-shell .cue-power:focus-visible{outline:2px solid #91f5ff;outline-offset:3px}
.game-shell .cue-boost{font:8px/1.5 system-ui;text-align:center;white-space:normal;color:#70dee7;margin:0;min-height:25px;width:100%}
.game-shell .potted-row{display:flex;align-items:center;gap:5px;flex-shrink:0;min-height:28px;padding:2px 5px;border:1px solid #42616b;border-radius:6px;background:#07151d}
.game-shell .potted-label{font-size:8px;color:#a6d5da;white-space:nowrap}
.game-shell .potted-track{display:flex;align-items:center;gap:2px;flex:1;min-width:0;overflow:hidden}
.game-shell .potted-empty{font-size:8px;color:#668792;white-space:nowrap}
.game-shell .potted-ball{display:grid;place-items:center;flex:0 1 22px;min-width:0;max-width:22px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 22%,#ffffff8c,transparent 38%),radial-gradient(circle at 40% 32%,var(--ball-color) 45%,#061220 100%);box-shadow:0 1px 2px #000c;position:relative;overflow:hidden}
.game-shell .potted-ball.stripe:before{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,#f4f4e9 0 23%,transparent 23% 77%,#f4f4e9 77%)}
.game-shell .potted-ball span{display:grid;place-items:center;width:62%;aspect-ratio:1;border-radius:50%;background:#fff9e8;color:#15212c;font:800 clamp(7px,2.2vw,10px)/1 Arial;z-index:1}
.game-shell .potted-count{font:700 9px/1 system-ui;color:#68e7ee;min-width:18px;text-align:right}
.game-shell .hand{min-height:45px;flex-shrink:0;padding:2px 5px;gap:4px;max-width:none;width:100%;margin:0}
.game-shell .card{height:43px;flex:1;min-width:0;max-width:62px;padding:3px 5px;border-color:#c6bfa7;border-radius:5px;background:linear-gradient(130deg,#fffdf6,#e5e1d5);box-shadow:0 1px 0 #526c6e,0 2px 5px #0007;font:700 16px/17px Arial;animation:none!important;transition:none!important}
.game-shell .card span:last-child{font:24px/21px Georgia}
.game-shell .card-count{font-size:9px}
.game-shell .game-controls.cue-controls{display:flex;flex-shrink:0;justify-content:center;align-items:center;gap:14px;min-height:61px;width:100%;max-width:none;padding:2px 7px;margin:0;border:1px solid #94aaaf77;border-radius:10px;background:linear-gradient(135deg,#0c1c25,#02080e);box-shadow:inset 0 0 0 2px #02070c;position:relative}
.game-shell .cue-controls:before{content:'◆';position:absolute;top:-7px;left:50%;transform:translateX(-50%);color:#9be1ea;font-size:9px}
.game-shell .cue-hint{margin:0;flex:1;text-align:left;font-size:9px;line-height:1.7;color:#a8c6ce;max-width:160px}
.game-shell .aim-tools{display:flex;align-items:center;gap:14px;padding:0;border:0;background:none;box-shadow:none}
.game-shell .aim-tool{display:flex;flex-direction:column;align-items:center;gap:1px}
.game-shell .aim-tool .control-label{font:9px/1.3 system-ui;color:#d5e0e4}
.game-shell .spin-ball{width:44px;height:44px;min-height:44px;border:2px solid #a8a998;box-shadow:0 0 0 2px #152832;background:radial-gradient(circle at 33% 28%,#fffff6,#e8e5d5 62%,#859297);padding:0}
.game-shell .spin-ball i{width:8px;height:8px;box-shadow:none}
.game-shell .aim-circle{width:44px;height:44px;min-height:44px;border:1px solid #5eeeff;box-shadow:inset 0 0 0 3px #061821,0 0 0 1px #91c4cc66;background:radial-gradient(circle,#0b2c39,#010a11);padding:6px}
.game-shell .aim-circle .icon{width:28px;height:28px;color:#b0f6ff}
.game-shell .nudge{bottom:calc(100% + 6px);top:auto;right:3px;width:165px;padding:4px;gap:5px;border-color:#8aafb9;z-index:3;background:#081a25}
.game-shell .nudge button{min-height:44px;padding:2px 13px;font-size:22px}
@media(max-width:360px){.game-shell .topbar .brand{font-size:25px}.game-shell .players-bar .avatar{width:28px;height:28px}.game-shell .player-block{gap:3px;padding:5px 3px}.game-shell .match-cue{font-size:7px}.game-shell .turn-timer{width:37px;height:37px;min-width:37px}.game-shell .player-block strong{font-size:10px}.game-shell .arena-meter .control-label{font-size:8px}}
@media(max-height:660px){.game-shell{gap:2px}.game-shell .players-bar{min-height:53px}.game-shell .game-objective{min-height:15px;font-size:7px}.game-shell .hand{min-height:39px}.game-shell .card{height:37px;font-size:14px;line-height:15px}.game-shell .card span:last-child{font-size:21px;line-height:18px}.game-shell .arena-meter{height:84%;min-height:140px;gap:3px;padding-top:7px}.game-shell .cue-boost{font-size:7px}.game-shell .game-controls.cue-controls{min-height:58px}}
@media(min-width:760px){.game-shell{max-width:1100px}.game-shell .arena-stage{grid-template-columns:58px minmax(0,1fr) 58px;gap:8px}.game-shell .stage{min-height:0}.game-shell .players-bar{max-width:650px;width:100%;align-self:center}.game-shell .hand{max-width:510px;align-self:center}.game-shell .arena-meter{height:82%;min-height:120px}.game-shell .game-controls.cue-controls{max-width:510px;align-self:center}.game-shell .cue-boost{font-size:9px}}
