/* WELLS gameplay + scene polish */
.scene-prop{position:absolute;pointer-events:auto;border:0;background:transparent;cursor:pointer;transform:translate(-50%,-50%);filter:drop-shadow(0 4px 12px rgba(0,0,0,.7))}.scene-prop.snowglobe{width:48px;height:58px;border-radius:50% 50% 38% 38%;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.72),rgba(190,220,230,.15) 30%,rgba(255,255,255,.03) 66%);border:1px solid rgba(230,237,231,.45);box-shadow:inset 0 -7px 12px rgba(255,255,255,.08)}.scene-prop.snowglobe::after{content:"";position:absolute;left:7px;right:7px;bottom:-7px;height:10px;border-radius:4px;background:#7b5b35;border:1px solid #aa8a5c}.scene-prop:hover{filter:drop-shadow(0 0 14px rgba(233,209,146,.7))}.prop-layer{position:absolute;inset:0;z-index:26;pointer-events:none}.game-panel{width:min(520px,calc(100vw - 40px))}.mini-action{width:100%;margin-top:9px;border:1px solid #3d423a;background:#131712;padding:12px;text-align:left;font-size:8px;letter-spacing:.14em;cursor:pointer;color:#f1e8d3}.mini-action:hover{border-color:#8a7650;background:#1a1f18}.game-note{font-size:9px!important;letter-spacing:.1em;color:#9d927e!important;margin:8px 0 14px!important}
.piano-progress{display:flex;gap:8px;margin:10px 0 14px}.piano-progress i{width:8px;height:8px;border-radius:50%;border:1px solid #77694e}.piano-progress i.on{background:#e1c67e;box-shadow:0 0 10px #e1c67e}.piano-keys{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;height:145px}.piano-key{position:relative;border:1px solid #9c9689;background:linear-gradient(#f4efe2,#cec7b7);color:#2b2a27;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px;font:12px "Playfair Display",serif}.piano-key.blackish{background:linear-gradient(#282a26,#090a09);color:#e9dfc9}.piano-key.active{box-shadow:inset 0 0 28px rgba(214,178,90,.75);transform:translateY(2px)}
.timing-game{margin-top:15px}.timing-track{position:relative;height:28px;border:1px solid #4d5148;background:#0c0f0c;overflow:hidden}.timing-track .zone{position:absolute;left:43%;width:14%;top:0;bottom:0;background:rgba(205,166,73,.25);border-left:1px solid #caa651;border-right:1px solid #caa651}.timing-track .marker{position:absolute;left:0;top:3px;bottom:3px;width:4px;background:#f2d684;box-shadow:0 0 12px #f2d684}.timing-track.quench .zone{left:61%;width:10%;background:rgba(96,164,194,.24);border-color:#74b5ce}.timing-track.quench .marker{background:#a9def2;box-shadow:0 0 12px #86c9e4}.timing-meta{display:flex;justify-content:space-between;margin:8px 0;color:#9e927a;font-size:8px;letter-spacing:.12em}
.vault-dials{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.dial{border:1px solid #423c30;background:#0d100d;text-align:center;padding:10px}.dial strong{font:40px "Playfair Display",serif;display:block;margin:8px 0}.dial button{width:100%;background:#191d17;border:1px solid #3f433b;padding:8px;cursor:pointer}.vault-clue{padding:12px;border-left:2px solid #a88a4d;background:#141711;font:italic 13px "Playfair Display",serif;color:#cfc2a6}
.star-field{position:relative;height:260px;background:radial-gradient(circle at 50% 100%,#17202b,#070a10 65%);border:1px solid #272e38;overflow:hidden;margin-top:14px}.star-node{position:absolute;border:0;border-radius:50%;background:#e9e5d6;cursor:pointer;box-shadow:0 0 10px rgba(230,232,224,.72);transform:translate(-50%,-50%)}.star-node.used{background:#e6c77c;box-shadow:0 0 16px #e6c77c}.star-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.star-lines line{stroke:#d0b46d;stroke-width:1.5}.route-game{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:15px}.route-game button{border:1px solid #343a33;background:#111510;padding:13px;text-align:left;cursor:pointer}.route-game button.done{border-color:#b39555;background:#1b1d16}.route-path{font:12px/1.6 "Playfair Display",serif;color:#d6c8aa;min-height:42px;margin-top:10px}.watch-game{text-align:center;padding:10px 0}.watch-face{width:150px;height:150px;margin:8px auto 16px;border-radius:50%;border:5px double #aa8c50;background:radial-gradient(circle,#27271f,#10120f 68%);position:relative;box-shadow:inset 0 0 25px rgba(0,0,0,.8)}.watch-face::before{content:"W";position:absolute;left:50%;top:33%;transform:translate(-50%,-50%);font:24px "Playfair Display",serif;color:#c9aa61}.watch-hand{position:absolute;width:2px;height:52px;background:#d4ba77;left:50%;top:50%;transform-origin:50% 0;transition:transform .12s}.wind-crown{width:54px;height:54px;border-radius:50%;border:1px solid #78663f;background:#191b16;cursor:pointer;color:#f1e8d3}.wind-meter{margin:12px auto;width:80%;height:5px;background:#252920}.wind-meter i{display:block;height:100%;width:0;background:#c4a55f;transition:width .15s}.snowglobe-game{text-align:center}.globe-big{width:180px;height:180px;border-radius:50%;margin:8px auto 0;position:relative;overflow:hidden;border:2px solid rgba(225,235,236,.45);background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.58),rgba(130,170,190,.12) 38%,rgba(15,20,25,.4) 80%);touch-action:none}.globe-big::after{content:"W";position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);font:32px "Playfair Display",serif;color:#d4b668;opacity:.08;transition:opacity .2s}.globe-big.revealed::after{opacity:1;text-shadow:0 0 12px rgba(218,184,106,.65)}.snowflake{position:absolute;color:white;font-size:10px;opacity:.85;animation:globeSnow .75s linear forwards}@keyframes globeSnow{from{transform:translateY(-15px) rotate(0)}to{transform:translateY(150px) rotate(180deg);opacity:0}}.shake-meter{height:5px;background:#252920;margin:12px 0}.shake-meter i{display:block;height:100%;width:0;background:#b9d7e1;transition:width .15s}
.drive-overlay{background:#070a09}.road{position:absolute;left:50%;bottom:-10%;width:min(680px,70vw);height:110%;transform:translateX(-50%) perspective(650px) rotateX(24deg);transform-origin:50% 100%;clip-path:polygon(34% 0,66% 0,100% 100%,0 100%);background:linear-gradient(90deg,#171a19 0,#292d2b 48%,#171a19 100%);box-shadow:0 0 80px rgba(0,0,0,.8);overflow:hidden}.road::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 55px,rgba(255,255,255,.05) 56px 59px);animation:roadRush .65s linear infinite}.road-glow{position:absolute;inset:0;background:linear-gradient(90deg,rgba(207,178,105,.05),transparent 15% 85%,rgba(207,178,105,.05))}.lane{position:absolute;top:0;bottom:0;width:2px;background:repeating-linear-gradient(180deg,rgba(235,226,196,.7) 0 28px,transparent 29px 72px);animation:laneRush .45s linear infinite}.lane-a{left:42%}.lane-b{right:42%}@keyframes roadRush{to{background-position-y:59px}}@keyframes laneRush{to{background-position-y:72px}}.road-obstacles{position:absolute;inset:0}.drive-obstacle{position:absolute;width:60px;height:88px;transform:translate(-50%,-50%);border-radius:16px 16px 8px 8px;background:linear-gradient(135deg,#151716,#343836);box-shadow:0 12px 22px rgba(0,0,0,.5)}.drive-obstacle::before,.drive-obstacle::after{content:"";position:absolute;bottom:9px;width:12px;height:6px;background:#d63c2c;box-shadow:0 0 9px #d63c2c}.drive-obstacle::before{left:10px}.drive-obstacle::after{right:10px}.drive-obstacle.cone{width:28px;height:42px;border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%);background:#dc6a26}.drive-obstacle.mud{width:72px;height:34px;border-radius:50%;background:#473925;filter:blur(.4px)}.drive-hud{position:absolute;z-index:84;top:10%;display:grid;gap:8px;background:rgba(8,10,8,.38);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(12px);padding:13px}.drive-hud.left{left:5%}.drive-hud small,.drive-hud span{font-size:8px;letter-spacing:.14em}.drive-hud strong{font:18px "Playfair Display",serif}.drive-touch{position:absolute;z-index:85;right:5%;bottom:7%;display:flex;gap:8px}.drive-touch button{width:52px;height:52px;border:1px solid rgba(255,255,255,.16);background:rgba(12,14,12,.55);font-size:20px;cursor:pointer;color:#f1e8d3}.drive-overlay.hit{animation:hitFlash .25s}@keyframes hitFlash{50%{filter:sepia(.7) saturate(2) brightness(1.2)}}
@media(max-width:880px){.game-panel{width:calc(100vw - 24px)}.piano-keys{height:120px}.piano-key{padding-bottom:8px}.vault-dials{gap:5px}.dial strong{font-size:32px}.road{width:100vw}.drive-hud.left{top:76px;left:12px}.drive-touch{right:14px;bottom:16px}}
/* Generated scene backplates are intentionally warm; avoid double-darkening them with the global cinematic grade. */
body[data-scene="manor"][data-storm="false"] .scene-bg,
body[data-scene="nyc"][data-storm="false"] .scene-bg{
  filter:brightness(1.18) saturate(1.04) contrast(.96) !important;
}
body[data-scene="manor"] .scene-bg::after,
body[data-scene="nyc"] .scene-bg::after{
  background:
    linear-gradient(90deg,rgba(4,6,5,.24) 0,rgba(4,6,5,.06) 25%,transparent 47% 86%,rgba(4,6,5,.10) 100%),
    linear-gradient(0deg,rgba(5,6,5,.16),transparent 31%);
}
body[data-scene="manor"] .cinema-vignette,
body[data-scene="nyc"] .cinema-vignette{
  background:radial-gradient(circle at 52% 44%,transparent 0 70%,rgba(0,0,0,.10) 87%,rgba(0,0,0,.24) 100%);
}
body[data-scene="manor"] .depth-b,
body[data-scene="nyc"] .depth-b{
  background:linear-gradient(180deg,rgba(8,9,8,.015),transparent 55%,rgba(5,6,5,.10));
}
body[data-scene="manor"].discover .scene-bg,
body[data-scene="nyc"].discover .scene-bg,
body[data-scene="manor"] .scene.interacting .scene-bg,
body[data-scene="nyc"] .scene.interacting .scene-bg{
  filter:brightness(1.10) saturate(1.00) contrast(.98) !important;
}
@media(max-width:880px){
  body[data-scene="manor"][data-storm="false"] .scene-bg,
  body[data-scene="nyc"][data-storm="false"] .scene-bg{filter:brightness(1.12) saturate(1.03) contrast(.98) !important}
}

/* The archive backplate already carries its own cinematic lighting; preserve the trophy-room detail. */
body[data-scene="archive"][data-storm="false"] .scene-bg{
  filter:brightness(1.13) saturate(1.03) contrast(.97) !important;
}
body[data-scene="archive"] .scene-bg::after{
  background:
    linear-gradient(90deg,rgba(4,5,4,.15) 0,rgba(4,5,4,.03) 28%,transparent 48% 88%,rgba(4,5,4,.07) 100%),
    linear-gradient(0deg,rgba(4,5,4,.11),transparent 30%);
}
body[data-scene="archive"] .cinema-vignette{
  background:radial-gradient(circle at 52% 43%,transparent 0 72%,rgba(0,0,0,.08) 88%,rgba(0,0,0,.20) 100%);
}
body[data-scene="archive"].discover .scene-bg,
body[data-scene="archive"] .scene.interacting .scene-bg{
  filter:brightness(1.08) saturate(1.01) contrast(.98) !important;
}
@media(max-width:880px){
  body[data-scene="archive"][data-storm="false"] .scene-bg{filter:brightness(1.10) saturate(1.02) contrast(.98) !important}
}

/* Map-room art already contains warm practical lighting; keep the map, labels and travel photos readable. */
body[data-scene="map"][data-storm="false"] .scene-bg{
  filter:brightness(1.10) saturate(1.03) contrast(.98) !important;
}
body[data-scene="map"] .scene-bg::after{
  background:
    linear-gradient(90deg,rgba(4,5,4,.10) 0,rgba(4,5,4,.02) 24%,transparent 44% 87%,rgba(4,5,4,.06) 100%),
    linear-gradient(0deg,rgba(4,5,4,.10),transparent 28%);
}
body[data-scene="map"] .cinema-vignette{
  background:radial-gradient(circle at 52% 43%,transparent 0 73%,rgba(0,0,0,.07) 89%,rgba(0,0,0,.18) 100%);
}
body[data-scene="map"].discover .scene-bg,
body[data-scene="map"] .scene.interacting .scene-bg{
  filter:brightness(1.07) saturate(1.02) contrast(.99) !important;
}

/* Generated campfire backplate already has a cinematic night grade. Keep the tent, compass and tree carving legible. */
body[data-scene="camp"][data-storm="false"] .scene-bg{
  filter:brightness(1.10) saturate(1.04) contrast(.98) !important;
}
body[data-scene="camp"] .scene-bg::after{
  background:
    linear-gradient(90deg,rgba(3,5,6,.08) 0,transparent 25% 88%,rgba(3,5,6,.05) 100%),
    linear-gradient(0deg,rgba(3,5,6,.08),transparent 27%);
}
body[data-scene="camp"] .cinema-vignette{
  background:radial-gradient(circle at 50% 48%,transparent 0 74%,rgba(0,0,0,.06) 90%,rgba(0,0,0,.16) 100%);
}
body[data-scene="camp"].discover .scene-bg,
body[data-scene="camp"] .scene.interacting .scene-bg{
  filter:brightness(1.07) saturate(1.03) contrast(.99) !important;
}

@media(max-width:880px){
  .game-note{font-size:11px;line-height:1.5}
  .piano-keys{height:118px;gap:3px}.piano-key{font-size:11px}
  .piano-progress{margin:10px 0}
  .vault-dials{gap:6px}.dial{padding:10px 4px}.dial strong{font-size:30px}
  .constellation-board{height:min(46vh,310px)}
  .route-game{grid-template-columns:1fr 1fr}
  .watch-face{width:132px;height:132px}
  .globe-big{width:150px;height:150px}
  .timing-game{margin-top:12px}
}
