/* Scene clues reuse the approved painting; no visible menu or map of answers. */
@font-face{font-family:RoomOpening;src:url('/room-assets/room-opening-pf.woff') format('woff');font-display:swap}
.story-object{display:none;border:0;padding:0;background:transparent;touch-action:manipulation}
body.story-ready .story-object{display:block}
.memories{left:27.4%;top:4.7%;width:8.4%;height:13.2%;border-radius:8%}
.memories .object-art{background-size:1190.48% 757.58%;background-position:29.913% 5.415%;clip-path:polygon(0 7%,90% 0,100% 90%,11% 100%)}
.gift{left:83.2%;top:48.3%;width:10.9%;height:15.2%;border-radius:10%}
.gift .object-art{background-size:917.43% 657.89%;background-position:93.378% 56.958%;clip-path:polygon(0 31%,17% 23%,22% 2%,43% 1%,54% 16%,69% 5%,90% 12%,96% 25%,100% 37%,100% 84%,56% 100%,0 80%)}
.gratitude{left:70.2%;top:65%;width:9.7%;height:10.8%}
.gratitude .object-art{background-size:1030.93% 925.93%;background-position:77.741% 72.87%;clip-path:ellipse(49% 46% at 50% 51%)}
.outside{left:52.3%;top:3.4%;width:19.5%;height:10.8%;border-radius:0}
.outside .object-art{background-size:512.82% 925.93%;background-position:64.969% 3.812%;clip-path:polygon(0 0,29% 39%,65% 42%,100% 0,99% 63%,89% 88%,82% 66%,79% 100%,68% 85%,64% 68%,59% 100%,49% 85%,47% 65%,40% 99%,31% 80%,28% 51%,21% 82%,11% 65%,9% 36%,0 58%)}
.candle{left:47.5%;top:51%;width:6%;height:24%;border-radius:30%}
.candle .object-art{inset:auto 0 0;height:42%;background-size:1666.67% 992.06%;background-position:50.532% 72.197%;clip-path:polygon(24% 0,76% 0,99% 30%,82% 45%,87% 69%,95% 92%,63% 100%,20% 98%,0 87%,12% 55%,22% 41%,4% 27%)}
.room-object.is-discovered .object-art{opacity:1;transform:scale(1.045) rotate(-1deg)}
.story-object:hover .object-art,.story-object:focus-visible .object-art{transform:scale(1.045) rotate(-1deg)}
.room-caption{position:fixed;z-index:8;left:50%;bottom:72px;transform:translateX(-50%);width:max-content;max-width:min(580px,calc(100% - 28px));padding:16px 74px 16px 23px;border-radius:12px;background:#fbf6eaf5;box-shadow:0 4px 24px #33291b16;color:#173f73;animation:clue-in 240ms ease-out}
.room-caption h2{font-size:17px;letter-spacing:.06em;font-weight:600;margin:0 0 6px}
.room-caption p{font-size:13px;line-height:1.7;margin:0;color:#51616a}
#story-action{display:inline-flex;align-items:center;min-height:44px;font-size:12px;text-decoration:none;margin-top:4px}
#story-action:hover{text-decoration:underline;text-underline-offset:4px}
#story-close{position:absolute;right:8px;top:8px;min-width:44px;min-height:44px;padding:8px;border:0;border-radius:8px;background:transparent;font-size:11px;color:#66737b}
#story-close:hover{background:#173f7309}
.room-footer-links{display:flex;align-items:center;gap:24px}
.room-footer-links #walk-link{color:#805f3e}
@media(max-width:700px){.room-footer .room-footer-links{flex-wrap:wrap;justify-content:flex-end;max-width:68%;gap:0 12px}}
#intro-replay{font-size:11px;border:0;background:transparent;min-height:44px;padding:6px 0;color:#66737b}
#intro-replay:hover{text-decoration:underline;text-underline-offset:4px}
#room-intro{border:0;padding:72px 36px 56px;background:transparent;color:#fff4df;width:min(800px,calc(100% - 36px));max-height:92svh;overflow:auto;text-align:center;isolation:isolate}
#room-intro::backdrop{background:radial-gradient(ellipse at 50% 42%,#142a27ce 0%,#091d23ed 72%,#07161bf7);backdrop-filter:blur(7px);animation:opening-veil-in 850ms ease both}
#room-intro[open]{animation:none}
.intro-language{position:absolute;top:4px;right:10px;min-height:44px;min-width:44px;background:none;border:0;color:#fff4dfb3;font-size:12px}
.intro-copy{padding:24px 0 28px}
#intro-line-one{font-family:RoomOpening,RoomHand,'Avenir Next','Yuanti SC','PingFang SC',sans-serif;font-size:clamp(25px,3vw,38px);line-height:1.8;letter-spacing:.035em;margin:0;text-wrap:balance;text-shadow:0 0 28px #ebdca522}
#intro-line-two{font-size:clamp(15px,1.8vw,20px);line-height:1.9;letter-spacing:.1em;margin:26px 0 0;color:#eee1c6;text-wrap:balance}
#room-intro[open] #intro-line-one{animation:opening-thought-in 3200ms 100ms cubic-bezier(.2,.65,.2,1) both}
#room-intro[open] #intro-line-two{animation:opening-whisper-in 2800ms 800ms cubic-bezier(.2,.65,.2,1) both}
#room-intro button:focus-visible{outline:2px solid #f8e3a780;outline-offset:6px}
#room-intro.is-leaving #intro-line-one{animation:opening-thought-out 780ms ease-in both}
#room-intro.is-leaving #intro-line-two{animation:opening-thought-out 650ms 90ms ease-in both}
#room-intro.is-leaving .intro-language{animation:opening-button-out 300ms ease both}
#room-intro.is-leaving::backdrop{animation:opening-veil-out 1100ms ease-in-out both}
#room-intro .christmas-sound{position:fixed}
@keyframes opening-thought-in{0%{opacity:0;filter:blur(12px);transform:translateY(9px) scale(.975)}55%{opacity:.7}100%{opacity:1;filter:blur(0);transform:none}}
@keyframes opening-whisper-in{from{opacity:0;filter:blur(8px);transform:translateY(6px)}to{opacity:1;filter:blur(0);transform:none}}
@keyframes opening-button-in{from{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur(0)}}
@keyframes opening-breathe{0%,100%{opacity:.4;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
@keyframes opening-thought-out{from{opacity:1;filter:blur(0);transform:none}to{opacity:0;filter:blur(14px);transform:translateY(-12px) scale(1.025)}}
@keyframes opening-button-out{to{opacity:0;filter:blur(6px)}}
@keyframes opening-veil-in{from{opacity:0}to{opacity:1}}
@keyframes opening-veil-out{0%,15%{opacity:1;backdrop-filter:blur(7px)}100%{opacity:0;backdrop-filter:blur(0)}}
body.story-intro-open #room-stage{transform:scale(1.018)!important}
@keyframes clue-in{from{opacity:0;translate:0 4px}to{opacity:1;translate:0 0}}
@keyframes opening-in{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.room-footer-links{gap:10px;flex-shrink:0}.room-footer{gap:10px}.room-caption{bottom:84px;padding:13px 62px 13px 17px}.room-caption h2{font-size:16px}.room-caption p{font-size:12px}.room-footer p{flex:1;min-width:0;max-width:none}#intro-replay{font-size:10px}#room-intro{padding:48px 12px 26px}#intro-line-one{font-size:26px}.intro-copy{padding:18px 0}}
@media(max-height:480px){#room-intro{padding:36px 20px 16px}.intro-copy{padding:8px 0}#intro-line-one{font-size:25px;line-height:1.5}#intro-line-two{font-size:15px;margin-top:12px}.room-caption{bottom:60px}}
@media(prefers-reduced-motion:reduce){#room-intro[open],#room-intro[open] #intro-line-two,.room-caption{animation:none!important}}
body.story-intro-reduced #room-intro,body.story-intro-reduced #intro-line-two{animation:none!important}


@media(prefers-reduced-motion:reduce){#room-intro *,#room-intro::backdrop{animation:none!important;transition:none!important}}
body.story-intro-reduced #room-intro *,body.story-intro-reduced #room-intro::backdrop{animation:none!important}

/* Quiet full-screen entrance: the canvas itself advances, with no Start button. */
#room-intro{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:70px 28px;box-sizing:border-box;outline:none}
#room-intro[open]{display:grid;place-items:center;cursor:pointer}
#room-intro .intro-copy{width:min(820px,100%);padding:0;margin:0;text-align:center}
#room-intro .intro-language{position:fixed;top:20px;right:20px;cursor:pointer}
