body.game-shell{--fragment-ink: #173f69;--fragment-orange: #f5822c;--fragment-plum: #963361;--fragment-cyan: #35aebf;--fragment-line: rgba(31, 82, 103, .22);--fragment-glass: rgba(254, 255, 252, .96);background:#e4f1ed}body.game-shell .play-stage{background:radial-gradient(circle at 68% 42%,#fffffffc,#ebf7f1b8 57%,#d7ebe7),linear-gradient(135deg,#f7f3e8,#dcefea)}body.game-shell .play-stage:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 91% 18%,rgba(53,174,191,.12),transparent 27%),radial-gradient(circle at 18% 88%,rgba(245,130,44,.08),transparent 29%)}body.game-shell #scene{outline:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}body.game-shell #scene:focus-visible{box-shadow:inset 0 0 0 4px #35aebfa6}body.game-shell #hud{padding:14px 18px max(18px,env(safe-area-inset-bottom))}body.game-shell #hud .hud-left{width:min(380px,32vw);max-width:380px;align-self:flex-start;gap:9px}body.game-shell #hud .hud-left .topbar,body.game-shell #hud .hud-left .clue-card{position:static;inset:auto;width:100%;max-width:100%;transform:none;border:1px solid var(--fragment-line);color:var(--fragment-ink);background:var(--fragment-glass);box-shadow:0 18px 44px #194a5224,inset 0 1px #fffffffa;-webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12)}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:var(--fragment-ink);font-size:clamp(1.06rem,1.7vw,1.3rem);letter-spacing:-.04em}body.game-shell #hud .hud-left .eyebrow,body.game-shell #hud .hud-left .clue-label{color:var(--fragment-orange);font-size:.64rem;letter-spacing:.12em}body.game-shell #hud .hud-left .stats span{color:#71304f;background:linear-gradient(180deg,#f7e9ef,#edc9da);box-shadow:inset 0 0 0 1px #96336124}body.game-shell #hud .hud-left .clue-card{padding:12px 14px 14px;border-radius:19px;overflow:hidden;pointer-events:auto}body.game-shell #hud .hud-left #clue{margin-top:5px;color:#244c65;font-size:clamp(.8rem,1.12vw,.93rem);font-weight:900;line-height:1.38}.rule-callout{display:grid;gap:3px;margin-top:9px;padding:9px 11px;border:1px solid rgba(53,174,191,.24);border-radius:13px;color:#385e69;background:linear-gradient(135deg,#e9f8f7,#f7f8e8)}.rule-callout strong{color:#167c88;font-size:.65rem;font-weight:900;letter-spacing:.055em;text-transform:uppercase}.rule-callout span{font-size:.7rem;font-weight:800;line-height:1.3}.active-piece{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:7px 10px;border:1px solid rgba(245,130,44,.2);border-radius:11px;background:#fff9f1}.active-piece span{color:#7a838a;font-size:.6rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.active-piece strong{color:#bc5b1e;font-size:.76rem;font-weight:900}.fragment-progress{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:7px 0 0;padding:0;list-style:none}.fragment-progress li{display:grid;grid-template-columns:19px 1fr auto;align-items:center;gap:5px;min-width:0;padding:5px 7px;border:1px solid rgba(23,63,105,.12);border-radius:10px;background:#f8fbfa}.fragment-progress li.active{border-color:#f5822c8a;background:#fff6e9}.fragment-progress i{display:grid;width:19px;height:19px;place-items:center;border-radius:6px;color:#fff;background:var(--fragment-orange);font-size:.6rem;font-style:normal;font-weight:900}.fragment-progress li:nth-child(2) i{background:var(--fragment-plum)}.fragment-progress li:nth-child(3) i{background:var(--fragment-cyan)}.fragment-progress li:nth-child(4) i{background:#93a722}.fragment-progress span{overflow:hidden;color:#647987;font-size:.58rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.fragment-progress strong{min-width:24px;color:#9aa4a8;font-size:.67rem;font-weight:900;text-align:right}.fragment-progress strong.complete{color:var(--fragment-ink)}body.game-shell #hud .hud-left .hint{margin-top:8px;color:#718590;font-size:.62rem;line-height:1.3}body.game-shell .dock button,body.game-shell .overlay .panel button{border-color:#6d2d4d;color:#fff;background:linear-gradient(180deg,#b94a7e,#963361);box-shadow:0 5px #68223f,0 13px 25px #69244433,inset 0 1px #ffffff3d}body.game-shell .dock .ghost{border-color:#173f696b;color:#234f6b;background:#fefffcfa;box-shadow:0 5px #b7ccd0,0 13px 24px #1a4b5b21}body.game-shell .dock button[disabled]{border-color:#a8b5b0;color:#818d89;background:#e1e8e4;box-shadow:0 4px #afbbb7;opacity:.72;filter:saturate(.3)}body.game-shell #toast{color:var(--fragment-ink);border-color:#96336175;box-shadow:0 14px 36px #3a334b33}body.game-shell .overlay{background:linear-gradient(180deg,#2262670a,#18415038)}body.game-shell .overlay .panel{border-color:#2a596c4d;color:var(--fragment-ink);background:#fefffcfa;box-shadow:0 22px 58px #18464e38}body.game-shell .overlay .panel:before{background:linear-gradient(90deg,var(--fragment-orange) 0 28%,var(--fragment-plum) 28% 55%,var(--fragment-cyan) 55% 78%,#a4b928 78%)}body.game-shell .overlay.end-overlay{place-items:center start;padding-left:28px;background:linear-gradient(90deg,rgba(231,246,239,.5),transparent 60%);pointer-events:none}body.game-shell .overlay.end-overlay .panel{width:min(390px,39vw);pointer-events:auto}#end-text{display:grid;grid-template-columns:1fr 1fr;gap:6px}#end-text>strong{grid-column:1 / -1}#end-text span{padding:7px 9px;border-radius:10px;background:#f2f8f6}body.game-shell .game-article{width:min(920px,calc(100% - 32px))}.solution-note{margin-top:16px;padding:13px 15px;border:1px solid rgba(150,51,97,.2);border-radius:15px;color:#35586a;background:linear-gradient(135deg,#fbf5f8,#f4faf7)}.solution-note summary{color:#873055;font-weight:900;cursor:pointer}.solution-note p{margin:9px 0 0}@media(max-width:700px){body.game-shell #hud{padding:8px 9px max(10px,env(safe-area-inset-bottom))}body.game-shell #hud .hud-left{width:min(232px,calc(100vw - 18px));max-width:232px;gap:5px}body.game-shell #hud .hud-left .topbar{min-height:45px;padding:6px 8px;border-radius:15px}body.game-shell #hud .hud-left .topbar .eyebrow{display:none}body.game-shell #hud .hud-left .topbar h1{font-size:.96rem}body.game-shell #hud .hud-left .stats span{padding:4px 7px;font-size:.68rem}body.game-shell #hud .hud-left .clue-card{max-height:31vh;padding:7px 8px 8px;border-radius:14px;overflow:auto}body.game-shell #hud .hud-left .clue-label{font-size:.5rem}body.game-shell #hud .hud-left #clue{margin-top:2px;font-size:.62rem;line-height:1.22}.rule-callout{margin-top:5px;padding:5px 6px}.rule-callout strong{font-size:.48rem}.rule-callout span{font-size:.53rem;line-height:1.18}.active-piece{margin-top:5px;padding:4px 6px}.active-piece span{font-size:.46rem}.active-piece strong{font-size:.6rem}.fragment-progress{gap:3px;margin-top:4px}.fragment-progress li{grid-template-columns:15px 1fr auto;gap:3px;padding:3px 4px}.fragment-progress i{width:15px;height:15px;border-radius:4px;font-size:.48rem}.fragment-progress span{font-size:.47rem}.fragment-progress strong{font-size:.54rem}body.game-shell #hud .hud-left .hint{display:none}body.game-shell .dock-right{right:max(8px,env(safe-area-inset-right));bottom:max(9px,env(safe-area-inset-bottom));flex-flow:row wrap;justify-content:flex-end;max-width:calc(100vw - 16px)}body.game-shell .dock button{min-width:0;padding:8px 10px;font-size:.67rem}body.game-shell .overlay.end-overlay{place-items:end center;padding:10px 10px 88px}body.game-shell .overlay.end-overlay .panel{width:min(390px,calc(100vw - 20px))}}@media(max-height:650px)and (min-width:701px){body.game-shell #hud .hud-left .clue-card{max-height:54vh;overflow:auto}body.game-shell .dock-right{bottom:20px;top:auto;transform:none}}
