body.game-shell{--panel-width: clamp(360px, 25vw, 430px);--grid-line: #8bc34a;background:#eaf4e6}body.game-shell .play-stage{min-height:650px;background:radial-gradient(circle at 66% 44%,#fffffcfa 0 24%,#f8f7e5d1 53%,#ddefdfeb),#edf3e8}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, 62svh, 610px);width:min(100%,720px);display:grid;justify-items:center;position:relative;z-index:1}.puzzle-card{width:calc(var(--board-size) + clamp(18px,2vw,32px));max-width:100%;display:grid;place-items:center;padding:clamp(10px,1.2vw,16px);border:2px solid #9ee0c8;border-radius:clamp(18px,2vw,28px);background:#fffffaf0;box-shadow:0 24px 58px #32594a2b,inset 0 1px #fff}.berry-board{--clue: clamp(28px, 4.4vw, 46px);width:var(--board-size);max-width:100%;display:grid;grid-template-columns:repeat(8,minmax(0,1fr)) var(--clue);grid-template-rows:repeat(8,minmax(0,1fr)) var(--clue);aspect-ratio:1;overflow:hidden;border:2px solid #7cb342;background:#fff}.grid-cell{min-width:0;min-height:0;display:grid;place-items:center;appearance:none;margin:0;padding:4%;overflow:hidden;border:1px solid #8bc34a;border-radius:0;box-shadow:none;background:#fffef8;cursor:pointer;transition:background .12s ease,box-shadow .12s ease}.grid-cell img{width:88%;height:88%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.grid-cell.orange{background:#fff7e8;cursor:default}.grid-cell.strawberry{background:#fff3f0}.grid-cell:hover:not(:disabled):not(.orange){background:#f3fbe8}.grid-cell.uncovered{background:#fff4d8}.grid-cell.adjacent{background:#ffe0d2;box-shadow:inset 0 0 0 3px #ae2f219e}.grid-cell.solved{background:#eef9d8}.grid-cell:focus-visible{z-index:2;outline:3px solid rgba(28,164,179,.82);outline-offset:-3px}.axis-clue,.board-corner{display:grid;place-items:center;color:#1b1b1b;font-weight:900;font-size:clamp(.78rem,1.7vw,1.12rem);background:#fff}.col-clue{border-top:1px solid #8bc34a}.row-clue{border-left:1px solid #8bc34a}.axis-clue span{min-width:1.1em;text-align:center}.axis-clue.match{color:#176742}.axis-clue.over{color:#98382c}.axis-clue.under{color:#b36b12}#celebration{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}#celebration:before,#celebration:after{content:"✦  •  ✦  •  ✦  •  ✦";position:absolute;left:50%;color:#ee9d1d;font-size:clamp(1.4rem,4vw,3.3rem);letter-spacing:.28em;opacity:0;transform:translate(-50%,30px) scale(.7)}#celebration:after{color:#23b7c1;transform:translate(-50%,30px) rotate(28deg) scale(.7)}#celebration.active:before,#celebration.active:after{animation:celebrate 1.1s ease-out both}@keyframes celebrate{0%{top:58%;opacity:0}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%;max-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;font-size:clamp(1.03rem,1.45vw,1.24rem)}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}.rule-callout{display:grid;gap:3px;margin-top:9px;padding:9px 10px;border:1px solid rgba(36,84,88,.18);border-radius:12px;color:#375f68;background:linear-gradient(135deg,#fff9bf,#f8f0a1)}.rule-callout strong{color:#735d0f;font-size:.62rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.rule-callout span{font-size:.71rem;font-weight:800;line-height:1.31}.region-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.region-progress>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;padding:7px 8px;border:1px solid rgba(36,84,88,.15);border-radius:11px;background:#f4faf4}.region-progress span{color:#728381;font-size:.55rem;font-weight:900;line-height:1.1;text-transform:uppercase}.region-progress strong{color:#214b59;font-size:.86rem;font-weight:900}#grid-state{grid-column:1 / -1;margin:0;padding:7px 9px;border:1px solid rgba(36,84,88,.18);border-radius:999px;color:#38636b;background:#e9f4ef;font-size:.62rem;font-weight:900;text-align:center}#grid-state.bad{border-color:#a3352640;color:#98382c;background:#fae5d6}#grid-state.ready{color:#745d0d;background:#fff5b7}#grid-state.complete{color:#176742;background:#ddf3e2}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 .ghost{border-color:#224b5480;color:#315a61;background:#fcfff9f5;box-shadow:0 5px #a8c9c0,0 13px 24px #2f504621}body.game-shell .dock button[disabled]{opacity:.42;filter:saturate(.45);cursor:not-allowed}body.game-shell #toast{bottom:max(20px,env(safe-area-inset-bottom));color:#234f58;border-color:#25525685}body.game-shell .overlay{background:linear-gradient(90deg,#e6f3e133,#2b4f4733)}body.game-shell .overlay .panel{border-color:#29575b4d;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, 650px)}body.game-shell.preview-mode .grid-cell.uncovered,body.game-shell.preview-mode .grid-cell.adjacent{box-shadow:none}@media(max-width:1040px){body.game-shell{--panel-width: min(390px, 38vw)}.board-wrap{--board-size: min(49vw, 56svh, 525px)}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:1040px;min-height:1040px}body.game-shell #scene{width:100%;height:630px;top:390px;bottom:auto;padding:14px 10px 86px}.board-wrap{--board-size: min(88vw, 455px)}body.game-shell #hud{padding:8px 9px}body.game-shell #hud .hud-left{width:min(100%,370px);max-width:calc(100% - 18px);gap:6px}body.game-shell #hud .hud-left .topbar{min-height:49px;padding:6px 8px 6px 10px;border-radius:14px}body.game-shell #hud .hud-left .topbar .eyebrow{display:none}body.game-shell #hud .hud-left .topbar h1{font-size:.98rem}body.game-shell #hud .hud-left .clue-card{max-height:315px;padding:8px 9px 9px;overflow:auto;border-radius:14px}body.game-shell #hud .hud-left #clue{font-size:.7rem;line-height:1.24}body.game-shell #hud .hud-left .hint{display:none}body.game-shell .dock.dock-right{right:9px;bottom:10px;gap:7px}body.game-shell .dock button{min-width:112px;min-height:44px;padding:8px 12px;font-size:.81rem}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:930px;min-height:930px}body.game-shell #scene{height:555px;top:355px}.board-wrap{--board-size: min(91vw, 390px)}}@media(prefers-reduced-motion:reduce){.grid-cell{transition:none}#celebration.active:before,#celebration.active:after{animation:none}}
