body.game-shell{--panel-width: clamp(360px, 25vw, 430px);--cell-yellow: #f6f1a4;--grid-line: #ddd9e4;background:#f4f7f2}body.game-shell .play-stage{min-height:650px;background:radial-gradient(circle at 66% 44%,#fff 0 28%,#f7faf4 58%,#e7f0e8)}body.game-shell #scene{width:calc(100% - var(--panel-width));height:100%;display:grid;place-items:center;position:absolute;inset:0 0 0 auto;padding:clamp(18px,2.6vw,46px);overflow:hidden;outline:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.board-wrap{--board-size: min(52vw, 64svh, 560px);width:min(100%,640px);display:grid;justify-items:center;position:relative;z-index:1}.puzzle-card{width:calc(var(--board-size) + clamp(16px,2vw,28px));max-width:100%;display:grid;place-items:center;padding:clamp(10px,1.2vw,16px);border:2px solid #8fd3e0;border-radius:clamp(16px,2vw,26px);background:#fff;box-shadow:0 22px 50px #465a501f,inset 0 1px #fff}.shape-grid{width:var(--board-size);max-width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:3px;padding:3px;overflow:hidden;background:var(--grid-line)}.grid-cell{min-width:0;min-height:0;display:grid;place-items:center;appearance:none;margin:0;padding:3%;overflow:hidden;border:0;border-radius:0;box-shadow:none;background:var(--cell-yellow);cursor:pointer}.grid-cell svg{width:100%;height:100%;display:block;pointer-events:none}.grid-cell:hover:not(:disabled){filter:brightness(1.03);transform:none}.grid-cell:active:not(:disabled){transform:none;box-shadow:none}.grid-cell.picked{box-shadow:inset 0 0 0 3px #2bb7c4;background:#eef8c4}.grid-cell.solved{box-shadow:inset 0 0 0 3px #2aa56a;background:#e4f4b0}.grid-cell:focus-visible{z-index:2;outline:3px solid rgba(28,164,179,.82);outline-offset:-3px}#celebration{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}#celebration.active:before,#celebration.active:after{content:"✦  •  ✦  •  ✦";position:absolute;left:50%;color:#ee9d1d;font-size:clamp(1.4rem,4vw,3.3rem);letter-spacing:.28em;opacity:0;animation:celebrate 1.1s ease-out both}@keyframes celebrate{0%{top:58%;opacity:0;transform:translate(-50%,30px) scale(.7)}24%{opacity:1}to{top:10%;opacity:0;transform:translate(-50%,-40px) scale(1.25)}}body.game-shell #hud{padding:18px 0 max(18px,env(safe-area-inset-bottom)) clamp(18px,2vw,30px)}body.game-shell #hud .hud-left{width:calc(var(--panel-width) - clamp(36px,4vw,58px));max-width:410px;align-self:flex-start;gap:9px}body.game-shell #hud .hud-left .topbar,body.game-shell #hud .hud-left .clue-card{width:100%;border-color:#305b5d38;color:#234d59;background:#fdfffaf0;box-shadow:0 17px 42px #2f544924,inset 0 1px #fff}body.game-shell #hud .hud-left .topbar{min-height:62px;padding:9px 11px 9px 14px;border-radius:19px}body.game-shell #hud .hud-left .topbar h1{color:#214b59}body.game-shell #hud .hud-left .eyebrow,body.game-shell #hud .hud-left .clue-label{color:#ce7515}body.game-shell #hud .hud-left .stats span{color:#234d59;background:linear-gradient(180deg,#ffe676,#f4c43d)}body.game-shell #hud .hud-left .clue-card{padding:12px 14px 14px;border-radius:19px;pointer-events:auto}body.game-shell #hud .hud-left #clue{color:#315865;font-size:clamp(.78rem,1.08vw,.92rem);line-height:1.38}.live-sum{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:7px 9px;border:1px solid rgba(36,84,72,.16);border-radius:11px;background:#f4faf4;color:#38635b;font-size:.72rem;font-weight:800}.live-sum strong{color:#214b43;font-size:1.02rem}body.game-shell #hud .hud-left .hint{margin-top:8px;color:#70837f;font-size:.62rem;line-height:1.3}body.game-shell .dock.dock-right{right:max(18px,env(safe-area-inset-right))}body.game-shell .dock button,body.game-shell .overlay .panel button{border-color:#694a10;color:#244b55;background:linear-gradient(180deg,#ffdf61,#efb929);box-shadow:0 5px #a86d0c,0 13px 25px #3f574329}body.game-shell .dock button[disabled]{opacity:.42;filter:saturate(.45);cursor:not-allowed}body.game-shell #toast{color:#234f58}body.game-shell .overlay{background:linear-gradient(90deg,#e6f3e133,#2b4f4733)}body.game-shell .overlay .panel{color:#254f59;background:#fdfff9f7}body.game-shell .overlay.end-overlay{place-items:center start;padding-left:clamp(18px,3vw,42px);background:linear-gradient(90deg,rgba(228,246,232,.48),transparent 58%);pointer-events:none}body.game-shell .overlay.end-overlay .panel{width:min(380px,36vw);pointer-events:auto}body.game-shell.preview-mode #scene{width:100%;inset:0}body.game-shell.preview-mode .board-wrap{--board-size: min(68vw, 72svh, 620px)}body.game-shell.preview-mode .grid-cell.picked{box-shadow:none;background:var(--cell-yellow)}@media(max-width:1040px){body.game-shell{--panel-width: min(390px, 38vw)}.board-wrap{--board-size: min(49vw, 56svh, 500px)}body.game-shell .dock.dock-right{top:auto;bottom:max(18px,env(safe-area-inset-bottom));flex-direction:row;transform:none}}@media(max-width:760px){body.game-shell .play-stage{height:980px;min-height:980px}body.game-shell #scene{width:100%;height:560px;top:360px;bottom:auto;padding:14px 10px 86px}.board-wrap{--board-size: min(88vw, 430px)}body.game-shell #hud{padding:8px 9px}body.game-shell #hud .hud-left{width:min(100%,370px);max-width:calc(100% - 18px)}body.game-shell #hud .hud-left .topbar .eyebrow,body.game-shell #hud .hud-left .hint{display:none}body.game-shell .dock.dock-right{right:9px;bottom:10px}body.game-shell .overlay.end-overlay{place-items:center;padding:16px;background:#2a4d442e}body.game-shell .overlay.end-overlay .panel{width:min(430px,100%)}}@media(max-width:430px){body.game-shell .play-stage{height:900px;min-height:900px}body.game-shell #scene{height:520px;top:330px}.board-wrap{--board-size: min(91vw, 380px)}}
