/* Keep the entire illustrated lawn visible so every target stays aligned. */
#yard.active{display:block;min-height:0;background:#07131f;line-height:0}
.yard-image-layer{position:relative;width:100%;line-height:0}
#yard .hero-img{width:100%;height:auto;aspect-ratio:1677/941;object-fit:contain}
#yard .welcome-card,#yard .hunt-panel,#yard .hotspot{line-height:normal}
#yard.hunt-on .welcome-card{display:none}
#yard .hotspot,#yard .hotspot:hover,#yard .hotspot:focus,#yard .hotspot:focus-visible,#yard.hunt-on .findable,#yard .hotspot.found{appearance:none;-webkit-appearance:none;border:0;outline:0;background:transparent;box-shadow:none;animation:none;pointer-events:auto;z-index:3;padding:0;margin:0;min-width:44px;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#yard .hotspot span,#yard .hotspot:hover span,#yard.hunt-on .findable span{opacity:0}
#yard .hotspot::after,#yard .hotspot.found::after{display:none;content:none}
#yard .door{left:58%;top:37%;width:8%;height:21%}
#yard .mailbox{left:3%;top:57%;width:8%;height:14%}
#yard .ball{left:25%;top:68%;width:5%;height:9%}
#yard .wagon{left:41%;top:64%;width:11%;height:12%}
#yard .bike{left:78%;top:63%;width:17%;height:13%}
#yard .sprinkler{left:33%;top:55%;width:9%;height:12%}

/* The approved lawn art stays untouched; these ambient layers give it life. */
.porch-flicker{position:absolute;left:59.4%;top:34%;width:5.7%;height:17%;pointer-events:none;z-index:2;background:radial-gradient(ellipse,#ffd87a55 0,#ffb84d22 35%,transparent 72%);mix-blend-mode:screen;animation:porchPulse 7s infinite}
@keyframes porchPulse{0%,7%,10%,72%,75%,100%{opacity:.9}8%,73%{opacity:.28}}

/* Bedroom only: the unaltered 1672 × 941 artwork is the entire play surface. */
#bedroom{min-height:0;padding:0;background:#07131f}
#bedroom .bedroom-nav{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(8px,2vw,28px);min-height:48px;padding:0 20px;background:#10243c;color:#e8dfcb;font:500 .875rem "DM Mono",monospace}
#bedroom .bedroom-nav button{min-height:44px;padding:8px 4px;background:none;border:0;color:inherit;cursor:pointer}
#bedroom .bedroom-nav button:hover{color:#fff7df}
#bedroom .bedroom-nav button:focus-visible{outline:2px solid #f6bc4b;outline-offset:-3px}
#bedroom #roomStashToggle{margin-left:auto;font-size:.8125rem;letter-spacing:.05em;color:#eacb91}
#bedroom .realistic-room{width:100%;min-height:0;aspect-ratio:1672/941;margin:0;border:0;background:#172332;box-shadow:none;overflow:hidden}
#bedroom .realistic-room::before{display:none}
#bedroom .realistic-room>img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain}
#bedroom .room-hotspot,#bedroom .room-reward{position:absolute;appearance:none;-webkit-appearance:none;border:0;outline:0;border-radius:0;padding:0;margin:0;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#bedroom .room-hotspot:hover,#bedroom .room-hotspot:focus-visible,#bedroom .room-reward:hover,#bedroom .room-reward:focus-visible{border:0;outline:0;background:transparent;box-shadow:none}
#bedroom .room-computer{left:4%;top:19%;width:24%;height:29%}
#bedroom .room-phone{left:1%;top:40%;width:12%;height:15%}
#bedroom .room-music{right:5%;top:38%;width:18%;height:25%}
#bedroom .room-box{left:2%;bottom:2%;width:26%;height:34%}
#bedroom .room-board{left:3%;top:2%;width:18%;height:20%}
#bedroom .room-lamp{left:63%;top:22%;width:9%;height:22%}
#bedroom .room-window{left:72%;top:0;width:22%;height:36%}
#bedroom .room-boxes{left:28%;bottom:0;width:64%;height:30%}
#bedroom .room-your-stuff{z-index:2}
#bedroom .placed-decor{position:absolute;inset:0;pointer-events:none;z-index:1}
#bedroom .room-reward{display:block;height:auto;pointer-events:auto;user-select:none;line-height:0}
#bedroom .room-reward[hidden]{display:none}
#bedroom .room-reward>img{display:block;width:100%;height:auto;pointer-events:none}
/* Permanent placement zones: open wall, dresser top, and rug. The board and
   stereo hotspots above reserve the photo/ticket and music-item surfaces. */
#bedroom .reward-lava{left:93.82%;top:13.7%;width:4.53%}
#bedroom .reward-lava::before{content:"";position:absolute;inset:25% -25% -5%;pointer-events:none;background:radial-gradient(ellipse,#ad365924 0,#aa564510 35%,transparent 72%);mix-blend-mode:screen}
#bedroom .reward-lava>img{position:relative;filter:brightness(.75) saturate(.72)}
#bedroom .reward-stars{left:51.88%;top:19.86%;width:11.05%}
#bedroom .reward-stars>img{filter:brightness(.82) saturate(.65)}
#bedroom .reward-chair{left:54.8%;top:52%;width:16.6%;clip-path:polygon(0 0,100% 0,100% 24.9%,81.7% 36.3%,80.6% 100%,0 100%)}
#bedroom .reward-chair>img{filter:url(#roomVinyl) brightness(.84) saturate(.7)}
#bedroom .reward-poster{left:74.5%;top:38.8%;width:3.58%;filter:brightness(.88);transform:skewY(1deg)}
#bedroom .room-material-filters{position:absolute;pointer-events:none}
/* The vinyl filter varies transmission by surface lightness: seams, contact
   shadow and specular reflections stay solid; tinted midtones reveal the rug.
   The chair's clip follows the BOOKS box, which remains in the foreground. */

#bedroom .room-stash-drawer{position:fixed;inset:0 0 0 auto;width:min(390px,calc(100vw - 20px));max-width:none;height:100dvh;max-height:100dvh;margin:0;padding:24px 20px;border:0;border-left:1px solid #69717a;background:#13283c;color:#f0e6d0;box-shadow:-16px 0 48px #0005;overflow-y:auto;overscroll-behavior:contain}
#bedroom .room-stash-drawer:not([open]){display:none}
#bedroom .room-stash-drawer::backdrop{background:#030b143d}
#bedroom .stash-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
#bedroom .stash-heading h2{margin:0;font-size:1.4rem;letter-spacing:-.03em}
#bedroom #roomStashClose{width:44px;height:44px;padding:0;border:0;background:transparent;color:inherit;font-size:1.9rem;cursor:pointer}
#bedroom .stash-summary{margin:12px 0 24px;color:#c9c4b5;font:400 .875rem/1.5 "DM Mono",monospace}
#bedroom .stash-items{display:grid;gap:0}
#bedroom #decorOptions button{display:grid;grid-template-columns:48px minmax(0,1fr) 86px;align-items:center;gap:12px;min-width:0;min-height:108px;padding:16px 0;text-align:left;border:0;border-top:1px solid #ffffff26;background:transparent;color:inherit;cursor:pointer}
#bedroom #decorOptions button>img{width:48px;height:64px;object-fit:contain}
#bedroom .stash-item-copy{display:grid;gap:5px;min-width:0}
#bedroom .stash-item-copy b{font-size:.9375rem;line-height:1.35;overflow-wrap:anywhere}
#bedroom .stash-item-copy>span{font-size:.8125rem;color:#bbb9b0;line-height:1.4}
#bedroom #decorOptions .decor-status{font:400 .75rem/1.4 "DM Mono",monospace;color:#d8b67e}
#bedroom #decorOptions .decor-action{display:block;padding:8px 4px;border:1px solid #f1d6a757;border-radius:3px;font:500 .75rem/1.5 "DM Mono",monospace;text-align:center;color:#ebd3a4}
#bedroom #decorOptions button.displayed .decor-action{border-color:#ffffff24;color:#bcbcaf}
#bedroom #decorOptions button:hover .decor-action{border-color:#f3d9aa;color:#fff0d1}
#bedroom .room-stash-drawer button:focus-visible{outline:2px solid #f6bc4b;outline-offset:3px}
#bedroom .stash-note{margin:26px 0 0;color:#bbb9b0;font-size:.875rem;line-height:1.65}
#bedroom .stash-message{margin:16px 0 0;font-size:.875rem;line-height:1.5;color:#f0c67d}
#bedroom .stash-message:empty{display:none}
@media(max-width:500px){
  #bedroom .bedroom-nav{gap:8px;padding:0 10px;font-size:.875rem}
  #bedroom #roomStashToggle{font-size:.8125rem;letter-spacing:0}
  #bedroom .room-stash-drawer{padding:18px 16px}
  #bedroom #decorOptions button{grid-template-columns:38px minmax(0,1fr) 78px;gap:8px}
  #bedroom #decorOptions button>img{width:38px}
}

@media(max-width:800px){
  #yard .welcome-card{bottom:16px;max-width:72vw}
  #yard .welcome-card p:not(.eyebrow){display:none}
  #yard .hunt-panel{position:relative;right:auto;top:auto;width:100%;box-shadow:none}
  #yard.hunt-on .findable:not(.found)::after{width:22px;height:22px;font-size:.7rem;border-width:2px}
  #yard.hunt-on .findable:not(.found) span{display:none!important}
  .room-hotspot span{display:none}
}
@media(prefers-reduced-motion:reduce){#yard.hunt-on .findable{animation:none}}

/* Maplewood itself is the navigation. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.map-scene{background:#07131f;padding-bottom:0}
.neighborhood-stage{position:relative;width:100%;line-height:0;background:#07131f}
.neighborhood-stage>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.world-link,.world-link:hover,.world-link:focus,.world-link:focus-visible{position:absolute;appearance:none;-webkit-appearance:none;border:0;outline:0;background:transparent;box-shadow:none;cursor:pointer;border-radius:0;padding:0;margin:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.map-nicole{left:0;top:28%;width:31%;height:50%}
.map-mart{left:32%;top:20%;width:21%;height:24%}
.map-arcade{left:58%;top:20%;width:24%;height:23%}
.map-pool{left:74%;top:37%;width:24%;height:27%}
.map-woods{left:72%;top:63%;width:27%;height:34%}
.locked-world{cursor:default}
.map-light{position:absolute;width:4%;aspect-ratio:1;border-radius:50%;pointer-events:none;z-index:2;background:radial-gradient(circle,#ffe49b77 0,#ffba4133 34%,transparent 72%);mix-blend-mode:screen;animation:streetFlicker 8s infinite}.map-light-one{left:52.5%;top:29%}.map-light-two{left:92%;top:20%;animation-delay:-3.2s}.arcade-flicker{position:absolute;left:66.2%;top:22.5%;width:12%;height:6%;pointer-events:none;z-index:2;background:#ff48f844;filter:blur(9px);mix-blend-mode:screen;animation:neonBuzz 5s infinite}
@keyframes streetFlicker{0%,4%,6%,55%,57%,100%{opacity:.75}5%,56%{opacity:.18}}
@keyframes neonBuzz{0%,12%,14%,44%,47%,100%{opacity:.85}13%,45%,46%{opacity:.22}}

/* Nicole's full-size, touch-friendly photo comparison game. */
.modal.game-modal{width:min(1500px,97vw);max-height:94vh;padding:26px}.game-modal h2{font-size:clamp(1.45rem,2.8vw,2.35rem)}.difference-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.difference-score{font-family:"DM Mono";white-space:nowrap;background:#fff8d8;padding:9px 12px;border-left:5px solid var(--red)}.difference-board{display:grid;grid-template-columns:1fr 1fr;gap:14px}.difference-board figure{margin:0;min-width:0;position:relative;background:#10243c;padding:5px;box-shadow:5px 6px 0 #927e52}.difference-board figcaption{position:absolute;z-index:4;left:10px;top:10px;padding:5px 8px;background:#10243cdd;color:#fff;font:500 .72rem "DM Mono";letter-spacing:.08em}.difference-board img{display:block;width:100%;height:auto;aspect-ratio:1677/941;object-fit:fill}.difference-image{position:relative;line-height:0}.difference-target{position:absolute;width:6.5%;aspect-ratio:1;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;cursor:crosshair;touch-action:manipulation}.difference-target.spotted{border:3px solid #ffe568;background:#ffe56822;box-shadow:0 0 0 3px #d8503fcc,0 0 18px #ffe568}.difference-target.spotted::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:bold 1.1rem Arial;text-shadow:1px 1px 2px #000}.difference-tip{font-family:"DM Mono";font-size:.78rem;margin-bottom:0}.difference-board figure.shake{animation:photoShake .28s ease-in-out}@keyframes photoShake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

.token-meter{display:inline-flex;align-items:center;gap:6px;color:var(--sun);background:#ffffff12;padding:7px 10px;border:1px solid #ffffff28}.token-meter b{color:white;font-size:.95rem}

@media(max-width:800px){
  .neighborhood-stage{min-height:0;overflow:visible}
  .neighborhood-stage>img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
  .modal.game-modal{padding:18px 12px}.difference-head{display:block}.difference-score{display:inline-block;margin-top:0}.difference-board{grid-template-columns:1fr}.difference-board figure:first-child{display:none}.difference-target{width:10%;min-width:36px}.difference-tip{font-size:.7rem}
}
@media(prefers-reduced-motion:reduce){.porch-flicker,.map-light,.arcade-flicker{animation:none!important}}
