body.game-shell{--region-ink: #17120b;--grid-line: #857930;--book-yellow: #f6e545;--book-yellow-light: #fff16a;--cyan-frame: #98e5ec;--panel-width: clamp(360px, 25vw, 430px);background:#e9f1e9}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(22px,3vw,54px);overflow:hidden;outline:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}body.game-shell #scene:before,body.game-shell #scene:after{content:"";position:absolute;pointer-events:none;border-radius:50%}body.game-shell #scene:before{width:min(62vw,840px);aspect-ratio:1;border:1px solid rgba(151,192,96,.22);box-shadow:0 0 0 54px #a3cf6e0d,0 0 0 108px #a3cf6e09}body.game-shell #scene:after{width:10px;height:10px;right:8.5%;top:14%;background:#d6df87;box-shadow:-56vw 4vh #d6df87}.board-wrap{--board-size: min(48vw, 58svh, 570px);width:min(100%,690px);display:grid;justify-items:center;gap:clamp(12px,1.5vh,18px);position:relative;z-index:1}.puzzle-card{width:calc(var(--board-size) + clamp(22px,2.4vw,38px));max-width:100%;display:grid;place-items:center;padding:clamp(11px,1.3vw,19px);border:2px solid var(--cyan-frame);border-radius:clamp(18px,2vw,28px);background:#fffffaeb;box-shadow:0 24px 58px #32594a2b,inset 0 1px #fff;transform:rotate(-.22deg)}.letter-grid{width:var(--board-size);max-width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));filter:drop-shadow(0 5px 8px rgba(77,65,12,.13));transform:rotate(.22deg)}.grid-cell{min-width:0;min-height:0;display:grid;place-items:center;position:relative;z-index:1;appearance:none;margin:0;padding:0;border-color:var(--grid-line);border-style:solid;border-width:1px 0 0 1px;border-radius:0;color:#171717;background:linear-gradient(145deg,var(--book-yellow-light),var(--book-yellow) 68%,#ead52d);box-shadow:none;cursor:cell;font:500 clamp(1.25rem,4.2vw,2.75rem)/1 Arial,Helvetica,sans-serif;text-shadow:0 1px rgba(255,255,255,.24);transition:background .12s ease,color .12s ease,box-shadow .12s ease,transform .12s ease}.grid-cell.region-top,.grid-cell.edge-top{border-top-width:clamp(4px,.36vw,6px);border-top-color:var(--region-ink)}.grid-cell.region-left,.grid-cell.edge-left{border-left-width:clamp(4px,.36vw,6px);border-left-color:var(--region-ink)}.grid-cell.edge-right{border-right:clamp(4px,.36vw,6px) solid var(--region-ink)}.grid-cell.edge-bottom{border-bottom:clamp(4px,.36vw,6px) solid var(--region-ink)}.grid-cell:hover:not(:disabled){z-index:3;background:linear-gradient(145deg,#fff891,#f8ea4b)}.grid-cell.selected:not(:disabled){z-index:4;background:linear-gradient(145deg,#d9f8f5,#99e6e6);box-shadow:inset 0 0 0 clamp(3px,.25vw,4px) #21a7b5}.grid-cell.given{color:#15120c;background:linear-gradient(145deg,var(--book-yellow-light),var(--book-yellow) 68%,#ead52d);font-weight:500;cursor:pointer}.grid-cell.filled:not(.selected){color:#163e4b;font-weight:800}.grid-cell.conflict,.grid-cell.wrong{z-index:3;color:#8b241a;background:linear-gradient(145deg,#ffd36d,#f2a24d);box-shadow:inset 0 0 0 4px #ae2f21ad;animation:cell-nudge .28s ease both}.grid-cell.solved{color:#155b3a;background:linear-gradient(145deg,#f8f26a,#dceb61)}.grid-cell:focus-visible{z-index:5;outline:4px solid rgba(28,164,179,.82);outline-offset:-5px}.grid-cell:disabled{opacity:1}@keyframes cell-nudge{0%,to{transform:translate(0)}35%{transform:translate(-3px)}70%{transform:translate(3px)}}.letter-controls{width:min(100%,calc(var(--board-size) + 8px));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:9px}.letter-rack{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:8px;border:2px solid rgba(29,69,75,.8);border-radius:17px;background:#f7fdf4ed;box-shadow:0 12px 28px #2b534524;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.letter-key,.erase-key{min-width:0;min-height:55px;appearance:none;padding:6px 4px;border:1px solid rgba(29,74,83,.68);border-radius:12px;color:#214b58;background:linear-gradient(180deg,#fffdf4,#edf6e9);box-shadow:0 4px #91b3ad;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.letter-key strong{display:block;font-size:clamp(1rem,2vw,1.38rem);line-height:1}.letter-key span{display:block;margin-top:3px;color:#728987;font-size:clamp(.47rem,.72vw,.58rem);font-weight:900;white-space:nowrap}.letter-key.active{color:#fff;background:linear-gradient(180deg,#35c4ca,#1595a5);box-shadow:0 4px #176d79,0 0 0 3px #ffffffe6}.letter-key.active span{color:#ffffffd6}.letter-key.exhausted:not(.active){color:#71807e;background:#e5ece7;filter:saturate(.35)}.letter-key:active:not(:disabled),.erase-key:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #7a9b96}.letter-key:focus-visible,.erase-key:focus-visible{outline:3px solid rgba(32,164,182,.66);outline-offset:2px}.letter-key:disabled,.erase-key:disabled{cursor:not-allowed;filter:saturate(.35);opacity:.64}.erase-key{width:74px;color:#734531;font-size:.72rem;font-weight:900}#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}#celebration.active:after{animation-delay:90ms}@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 #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 .panel:before{background:linear-gradient(90deg,#f2c535 0 48%,#2db8c1 48% 74%,#ed8420 74%)}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}.solution-text{padding:14px 16px;border:1px solid rgba(38,83,87,.18);border-radius:15px;color:#315a63;background:#f7faf0}.solution-text summary{cursor:pointer;color:#244f59;font-weight:900}.solution-text code{display:block;margin-top:10px;padding:11px;overflow-wrap:anywhere;border-radius:10px;color:#5d591b;background:#fff7b9;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;font-weight:800;line-height:1.5}body.game-shell.preview-mode #scene{width:100%;inset:0}body.game-shell.preview-mode .letter-controls{display:none}body.game-shell.preview-mode .grid-cell.selected:not(:disabled){background:linear-gradient(145deg,var(--book-yellow-light),var(--book-yellow) 68%,#ead52d);box-shadow:none}body.game-shell.preview-mode .board-wrap{--board-size: min(68vw, 72svh, 650px)}@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);gap:10px}.puzzle-card{padding:10px;border-radius:17px}.letter-controls{gap:6px}.letter-rack{gap:4px;padding:5px;border-radius:13px}.letter-key,.erase-key{min-height:49px;border-radius:9px}.erase-key{width:58px;font-size:.62rem}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}.rule-callout{margin-top:6px;padding:6px 7px}.rule-callout span{font-size:.61rem}.region-progress{gap:4px;margin-top:5px}.region-progress>div{padding:5px 6px}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)}.letter-key span{display:none}.letter-key,.erase-key{min-height:43px}}@media(prefers-reduced-motion:reduce){.grid-cell,.letter-key,.erase-key{transition:none}.grid-cell.conflict,.grid-cell.wrong,#celebration.active:before,#celebration.active:after{animation:none}}
