:root{--bg:#082a23;--panel:#123c32;--ink:#f7ecd7;--muted:#d1d9c9;--gold:#e9c47e;--accent:#a93643;--edge:#b99961;--shadow:#030f0b;--surface:#214b3b;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 30% 0,#245442,#082a23 60%);color:var(--ink)}body[data-palette=ruby]{--bg:#431e2a;--panel:#552b39;--gold:#f4d1a1;--accent:#b74b50;--edge:#e6b67a;--surface:#713a4d}body[data-palette=frost]{--bg:#173b55;--panel:#234d68;--gold:#d4efff;--accent:#6aa8cb;--edge:#c0e4f1;--surface:#38657e}body[data-palette=plum]{--bg:#302440;--panel:#4d3658;--gold:#f1d0cc;--accent:#b76f93;--edge:#d9b1bb;--surface:#64496b}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #fff;outline-offset:3px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(18px,4vw,64px);border-bottom:1px solid #ffffff28;background:#071f1b}.brand{display:flex;align-items:center;gap:13px}.brandmark{font-size:32px;color:var(--gold)}.brand strong{font:24px Georgia,serif;letter-spacing:.1em;display:block}.brand small{font-size:10px;letter-spacing:.18em;color:#c8c4a8}.staging{font-size:10px;letter-spacing:.13em;color:#d9c394}.intro{text-align:center;padding:44px 18px 25px;max-width:850px;margin:auto}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:800;color:var(--gold)}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:500}h1{font-size:clamp(36px,5vw,68px);margin:14px 0;line-height:1.06}h1 em{color:var(--gold);font-weight:400}p{line-height:1.6}.intro p{color:var(--muted);font-size:16px}.controls{max-width:1350px;margin:0 auto 22px;padding:18px;background:#f6efdf;border-radius:18px;color:#123e31;display:flex;gap:13px;flex-wrap:wrap;align-items:end;box-shadow:0 12px 40px #0004}.control-field{flex:1 1 165px;min-width:0}.control-field.wide{flex:1.3 1 200px}.control-field label:not(.pill),.control-field .label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.control-field input:not([type=checkbox]),.control-field select{width:100%;border:1px solid #b2c5b3;background:#fff;padding:12px 10px;border-radius:9px;color:#173f33}.interests{display:flex;flex-wrap:wrap;gap:6px;flex:1.3 1 260px}.interests .label{width:100%}.pill{border:1px solid #a7b6a7;padding:9px 10px;border-radius:20px;font-size:12px;white-space:nowrap;cursor:pointer}.pill:has(input:checked){background:#dbe9d5;border-color:#507958}.pill input{accent-color:#256147}.calendar-section{max-width:1536px;margin:0 auto;padding:0 16px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:18px 12px 20px;flex-wrap:wrap}.section-top h2{font-size:clamp(28px,3vw,40px);margin:6px 0}.section-top p{margin:0;color:var(--muted)}.scene-actions{display:flex;gap:8px;flex-wrap:wrap}.quiet,.primary{border:1px solid var(--edge);border-radius:24px;padding:11px 17px;background:#0d3028;color:var(--ink);font-weight:700}.quiet:hover{background:var(--surface)}.primary{background:var(--accent);border-color:var(--gold);color:#fff}.scene-wrap{overflow:hidden;border:5px solid var(--edge);border-radius:18px;box-shadow:0 15px 65px #0009,0 0 0 2px #4a3e22;position:relative}.scene{width:100%;position:relative;aspect-ratio:3/2;overflow:hidden;background:#142f34}.background-art{display:block;width:100%;height:100%;object-fit:cover}.lighting-filter{position:absolute;inset:0;pointer-events:none;transition:background .6s,opacity .6s}.scene[data-light=golden] .lighting-filter{background:transparent}.scene[data-light=day] .lighting-filter{background:rgba(220,243,255,.18);mix-blend-mode:screen}.scene[data-light=blue] .lighting-filter{background:rgba(26,77,145,.3);mix-blend-mode:multiply}.scene[data-light=midnight] .lighting-filter{background:rgba(6,12,63,.42);mix-blend-mode:multiply}.scene[data-light=day] .background-art{filter:brightness(1.13) saturate(.95)}.scene[data-light=blue] .background-art{filter:brightness(.92) saturate(.95)}.scene[data-light=midnight] .background-art{filter:brightness(.77) saturate(1.08)}.personal-plaque{position:absolute;left:2.9%;top:1.6%;width:26%;height:12%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;color:#f3db9e;pointer-events:none;text-shadow:0 1px 3px #000}.personal-plaque span,.personal-plaque small{font-size:clamp(5px,.8vw,13px);letter-spacing:.1em}.personal-plaque strong{font:clamp(9px,1.8vw,29px) Georgia,serif;line-height:1.1;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-overlay{position:absolute;right:6%;top:2.2%;height:4.5%;width:16%;display:flex;align-items:center;justify-content:center;gap:8px;color:#f1d99c;font:clamp(7px,1.2vw,18px) Georgia,serif;pointer-events:none}.snow-layer,.twinkles,.hotspots{position:absolute;inset:0;pointer-events:none}.snowflake{position:absolute;top:-10%;color:#fff;opacity:.8;animation:fall linear infinite;user-select:none}.twinkles span{position:absolute;color:#fff1b0;filter:drop-shadow(0 0 6px #fff6a0);animation:twinkle 3s ease-in-out infinite alternate;font-size:clamp(8px,2vw,26px)}.twinkles span:nth-child(2n){animation-delay:1.2s}.hotspot{position:absolute;transform:translate(-50%,-50%);border:2px solid transparent;background:transparent;color:transparent;pointer-events:auto;border-radius:12px;min-width:2.9%;min-height:5%;padding:0}.hotspot:hover,.hotspot:focus-visible{border-color:#ffe7a0;background:#ffedaa22;box-shadow:0 0 20px #f5ce75;outline:0}.hotspot.first{border-color:#ffe7a0;box-shadow:0 0 14px #f8d18a, inset 0 0 9px #f8d18a;animation:doorpulse 2.4s ease-in-out infinite}.hotspot.first::after{content:'✦';position:absolute;right:-7px;top:-11px;color:#ffe3a4;font-size:17px;text-shadow:0 0 7px #fff}.scene-mobile-action{display:none}.under-scene{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 5px 27px}.under-scene div{display:flex;flex-direction:column;gap:4px}.under-scene span{font-size:13px;color:var(--muted)}.preview-badge{font-size:11px;letter-spacing:.12em;white-space:nowrap;color:var(--gold)!important}.mobile-door-section{display:none}.spec{max-width:1300px;margin:25px auto 70px;padding:0 18px}.spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:15px}.spec-grid article{padding:22px;border:1px solid #c6a76d77;border-radius:13px;background:#ffffff0b}.spec-grid article>span{font-size:12px;color:var(--gold)}.spec-grid h3{font-size:21px;margin:9px 0}.spec-grid p{color:var(--muted);font-size:13px}dialog{border:1px solid #dbb36b;background:#082e27;color:#f8eedc;border-radius:22px;box-shadow:0 20px 90px #000b;max-height:90dvh;overflow:auto;width:min(700px,calc(100% - 22px));padding:0}dialog::backdrop{background:#031410dc;backdrop-filter:blur(6px)}.dialog-shell{position:relative;padding:28px}.close{position:absolute;right:14px;top:12px;border:1px solid #ffffff66;border-radius:50%;background:#18473c;color:white;font-size:27px;width:41px;height:41px;z-index:2}.surprise-head{text-align:center;padding:10px 24px}.surprise-head h2{font-size:clamp(28px,4vw,42px);margin:10px 0}.surprise-head p{color:#d4e1d5}.game-art{position:relative;min-height:180px;background:linear-gradient(160deg,#173d5c,#355a6a 55%,#c7dce7);border:3px solid #cba66d;border-radius:18px;overflow:hidden;text-align:center}.moon{position:absolute;right:20%;top:12%;font-size:44px;color:#ffebbb}.animal{font-size:96px;margin-top:35px;filter:drop-shadow(0 10px 8px #0006);animation:float 3s ease-in-out infinite}.snow-ground{position:absolute;bottom:0;width:100%;background:#edf6ff;color:#7390b2;padding:7px}.game-panel{text-align:center;padding:18px 0}.game-progress{font-size:12px;letter-spacing:.2em;color:var(--gold)}.game-panel h3{font-size:24px;line-height:1.35}.answers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.answers button{background:#1b4b3c;color:#fff1d7;border:1px solid #d9b875;border-radius:13px;padding:15px 7px;font-weight:700}.answers button:hover{background:#326c55}.feedback{min-height:30px;color:#f3d591;font-weight:700}.creative{text-align:center;padding:20px}.creative h3{font-size:30px}.flake{font-size:clamp(110px,20vw,180px);line-height:1.2;color:#d4f2ff;text-shadow:0 0 22px currentColor;animation:float 4s ease-in-out infinite}.colors{display:flex;gap:12px;justify-content:center;margin:15px 0}.colors button{width:42px;height:42px;border-radius:50%;background:var(--c);border:3px solid white}.dialog-bottom{border-top:1px solid #ffffff35;padding-top:15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-bottom span{font-size:11px;color:#bfcfbd}.locked-content{position:relative;text-align:center;padding:55px 24px 30px}.locked-emoji{font-size:65px}.locked-content h2{font-size:30px}.locked-content p{color:#d6e0d3}@keyframes fall{to{transform:translate3d(25px,1200px,0) rotate(190deg)}}@keyframes twinkle{to{opacity:.2;transform:scale(.65)}}@keyframes doorpulse{50%{box-shadow:0 0 25px #f8d18a,inset 0 0 17px #f8d18a}}@keyframes float{50%{transform:translateY(-9px)}}@media(min-width:1000px){.scene-wrap:fullscreen{display:grid;place-items:center;background:#071d1c}.scene-wrap:fullscreen .scene{width:min(100vw,150vh)}}@media(max-width:800px){.controls{margin:0 12px 15px}.spec-grid{grid-template-columns:repeat(2,1fr)}.staging{display:none}.calendar-section{padding:0 10px}.scene-wrap{border-width:3px}.scene .hotspots{display:none}.scene-mobile-action{display:block;position:absolute;left:0;right:0;bottom:1.5%;text-align:center}.scene-mobile-action button{border:2px solid #f1d496;border-radius:30px;background:#0a322be8;color:#fff3dc;padding:9px 13px;font-size:12px;font-weight:800;box-shadow:0 3px 16px #000b}.mobile-door-section{display:block;max-width:850px;margin:0 auto 30px;padding:10px 18px}.mobile-door-section h2{font-size:27px}.mobile-door-section p{font-size:13px;color:var(--muted)}.mobile-doors{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.mobile-doors button{aspect-ratio:.85;background:linear-gradient(145deg,var(--surface),var(--bg));color:var(--gold);border:2px solid var(--edge);border-radius:15px 15px 5px 5px;font:22px Georgia,serif;box-shadow:inset 0 0 12px #0006}.mobile-doors button:first-child{background:linear-gradient(145deg,#ae4047,#592b2b);box-shadow:0 0 15px #e6c2778a}.mobile-doors button:active{transform:scale(.95)}.section-top{padding:12px 2px}.personal-plaque span,.personal-plaque small{letter-spacing:0}.under-scene{align-items:start}.under-scene .preview-badge{display:none}}@media(max-width:480px){.intro{padding-top:26px}.brand strong{font-size:20px}.brand small{font-size:8px}.scene-actions{width:100%}.scene-actions button{flex:1;font-size:11px;padding:10px 6px}.scene-wrap{border-radius:10px}.scene-mobile-action button{font-size:10px;padding:7px 9px}.mobile-doors{grid-template-columns:repeat(6,1fr);gap:5px}.mobile-doors button{font-size:17px;border-width:1px;border-radius:9px 9px 3px 3px}.spec-grid{grid-template-columns:1fr}.answers{grid-template-columns:1fr}.dialog-shell{padding:17px}.dialog-bottom{flex-direction:column}.game-art{min-height:145px}.animal{font-size:70px;margin-top:24px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

/* v0.5 cross-platform responsive scene interactions */
.scene-exit-control{position:absolute;z-index:25;border:1px solid #e9c47e;color:#fff1d3;background:#062d29e8;box-shadow:0 3px 12px #0008;cursor:pointer;display:flex;align-items:center;justify-content:center}

.scene-exit-control{display:none;position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));padding:12px 17px;border-radius:30px;font-size:16px;font-weight:800;gap:8px}
body.calendar-expanded{overflow:hidden;overscroll-behavior:none}
.scene-wrap.is-expanded{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;z-index:9999;border:0;border-radius:0;background:#071d1c;overflow:auto;overscroll-behavior:contain;box-shadow:none;touch-action:pan-x pan-y}
.scene-wrap.is-expanded .scene{width:min(100vw,150dvh);height:auto;aspect-ratio:3/2;margin:auto;min-width:0}
.scene-wrap.is-expanded .scene-exit-control{display:flex}
.scene-wrap.is-expanded 
.scene-wrap.is-expanded .hotspots{display:block}
.scene-wrap.is-expanded .scene-mobile-action{display:none}
.scene-wrap.is-expanded .hotspot.first{min-width:44px;min-height:44px}
@media(max-width:800px){
 .scene .hotspots{display:block}
 .hotspot{display:none}
 .hotspot.first{display:block;min-width:44px;min-height:44px;z-index:8;border-width:2px}
 .scene-wrap.is-expanded .scene{width:max(100vw,900px);min-width:900px}
 .scene-wrap.is-expanded .hotspot{display:block;min-width:36px;min-height:44px}
 .scene-wrap.is-expanded .hotspot.first{min-width:56px;min-height:56px}
 .scene-wrap.is-expanded .scene-mobile-action{display:none}
 
}
@media(max-width:480px){.scene-mobile-action{display:none}.scene-exit-control{font-size:15px}}

/* v0.6: No embedded image UI controls or duplicate music label in the DOM.
   NOTE: Original image master has a baked-in 4-arrow icon; artwork cleanup pending. */
.music-overlay,.scene-expand-control{display:none!important}

/* v0.7: all numbered doors are genuine layered UI, not artwork hitboxes. */
.hotspots{z-index:6}.advent-door{position:absolute;transform:translate(-50%,-50%);width:4.6%;height:8.2%;min-width:22px;min-height:30px;pointer-events:auto;padding:0;border:0;background:transparent;perspective:400px;filter:drop-shadow(0 2px 4px #050d0acc);transition:filter .2s}.advent-door:hover,.advent-door:focus-visible{filter:drop-shadow(0 0 11px #ffe09e);outline:0}.door-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(125deg,#a83537 0%,#702127 52%,#3e1719 100%);border:2px solid var(--gold);border-bottom:3px solid #8d642a;border-radius:48% 48% 7px 7px / 25% 25% 7px 7px;box-shadow:inset 0 0 0 2px #ffffff22,inset -5px 0 12px #0006;transform-origin:left center;transition:transform .55s ease}.advent-door:nth-child(3n) .door-face{background:linear-gradient(125deg,#235c43,#0e352d 65%,#0b2824)}.advent-door:nth-child(4n) .door-face{background:linear-gradient(125deg,#a07536,#765123 65%,#432b17)}.door-number{font:700 clamp(9px,1.7vw,26px) Georgia,serif;color:#fff2c8;text-shadow:0 2px 4px #000}.door-knob{position:absolute;right:10%;top:57%;width:4px;height:4px;border-radius:50%;background:#f9d995}.door-holly{position:absolute;top:-17%;left:50%;transform:translateX(-50%);color:#eac16d;font-size:clamp(9px,1.2vw,17px);z-index:2;text-shadow:0 1px 4px #000}.advent-door.door-opening .door-face{transform:rotateY(-67deg)}.advent-door.first{animation:doorpulse 2.4s ease-in-out infinite}.wildlife-layer{position:absolute;inset:0;pointer-events:none;z-index:4}.wildlife-sprite{position:absolute;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 4px #0008);animation:float 5s ease-in-out infinite}.scene-wrap.is-expanded .advent-door{min-width:44px;min-height:48px}.scene-wrap.is-expanded .door-number{font-size:clamp(15px,2vw,27px)}.scene-wrap.is-expanded .scene{width:max(100vw,calc(100dvh * 1.5));max-width:none;min-width:0}.scene-wrap.is-expanded{scrollbar-width:thin}.scene-wrap.is-expanded .hotspots{display:block}.scene-wrap.is-expanded .wildlife-layer{display:block}
@media(max-width:800px){.scene .hotspots{display:block}.advent-door{min-width:0;min-height:0;width:5%;height:10%;border-radius:4px}.door-face{border-width:1px}.door-number{font-size:clamp(6px,1.6vw,13px)}.door-holly,.door-knob{display:none}.wildlife-layer{display:none}.scene-wrap.is-expanded .wildlife-layer{display:block}.scene-wrap.is-expanded .advent-door{min-width:44px;min-height:48px}.scene-wrap.is-expanded .door-holly,.scene-wrap.is-expanded .door-knob{display:block}.scene-wrap.is-expanded .door-number{font-size:19px}}


/* v0.8: scenic dimensional doors — scene geometry lives in woodland-layout.js */
.hotspots{z-index:7;isolation:isolate}
.advent-door{position:absolute;transform:translate(-50%,-50%) rotate(var(--door-tilt,0deg));min-width:0;min-height:0;padding:0;border:0;background:transparent;border-radius:2px;pointer-events:auto;perspective:460px;overflow:visible;filter:drop-shadow(1px 3px 2px #1a1009c9) drop-shadow(0 0 2px #f5ca7b90);transition:filter .22s ease,scale .22s ease;--door-frame:#704125;--door-dark:#2e1b12;--door-mid:#986239;--door-light:#d9a56d;--door-trim:#cda56a;--door-shape:3px}
.advent-door:hover,.advent-door:focus-visible{filter:drop-shadow(0 0 9px #ffdb8e) drop-shadow(1px 4px 3px #000c);scale:1.1;outline:0;z-index:15}
.advent-door:focus-visible .door-leaf{outline:2px solid #fff4c9;outline-offset:4px}
.door-recess{position:absolute;inset:-5%;border:3px solid #a27a4b;border-bottom-width:5px;border-radius:var(--door-shape);background:radial-gradient(ellipse at 48% 45%,#f9cb65 0%,#87572d 34%,#22150e 73%);box-shadow:0 1px 0 #ffe2a7,inset 0 0 9px #070908,0 0 7px #ffd78b75}
.door-leaf{position:absolute;inset:0;display:grid;place-items:center;border:2px solid var(--door-trim);border-bottom:3px solid #543820;border-radius:var(--door-shape);background:repeating-linear-gradient(90deg,transparent 0 18%,#1c100d44 19% 20%,transparent 21% 37%),linear-gradient(115deg,var(--door-light),var(--door-mid) 26%,var(--door-frame) 65%,var(--door-dark));box-shadow:inset 1px 1px 2px #ffedc3a8,inset -5px 0 7px #100b08a8,0 0 0 1px #281c14;transform-origin:3% center;backface-visibility:hidden;transition:transform .65s cubic-bezier(.22,.74,.12,1)}
.door-detail{position:absolute;inset:10% 13%;border:1px solid #f2c58688;border-radius:inherit;box-shadow:inset 0 0 0 2px #170d0959,0 0 0 1px #1e110c7d;pointer-events:none}
.door-number{position:relative;z-index:2;font:700 clamp(9px,1.35vw,22px)/1 Georgia,'Times New Roman',serif;color:#fff2d1;text-shadow:0 1px 2px #160d08,0 2px 4px #160d08,0 0 6px #271509;font-variant-numeric:lining-nums;letter-spacing:-.04em}
.door-knob{position:absolute;right:8%;top:55%;width:7%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 30%,#fff6d1,#d6a64f 48%,#5e3d1e 90%);box-shadow:0 0 2px #fff1bc}
.door-hinge{position:absolute;left:-5%;width:9%;height:12%;z-index:3;border:1px solid #4d351a;border-radius:2px;background:linear-gradient(90deg,#54351b,#f1cc82 45%,#7a542c);box-shadow:0 1px 1px #0008}
.hinge-top{top:17%}.hinge-bottom{bottom:17%}
.door-arch{--door-shape:46% 46% 4px 4px / 22% 22% 4px 4px;--door-frame:#5c2b1c;--door-dark:#2b1514;--door-mid:#9c4c32;--door-light:#d38d50;--door-trim:#d5a55c}
.door-timber{--door-shape:3px;--door-frame:#55341f;--door-dark:#25180f;--door-mid:#81532e;--door-light:#b88a54;--door-trim:#ba985f}
.door-shutter{--door-shape:3px;--door-frame:#1d4c3a;--door-dark:#0d241e;--door-mid:#376e52;--door-light:#77a77b;--door-trim:#d1b37a}
.door-shutter .door-leaf{background:repeating-linear-gradient(0deg,#ffffff00 0 15%,#102d246e 16% 20%,#ffffff00 21% 28%),linear-gradient(115deg,#85ae82,#3c6c50 45%,#153c30)}
.door-window{--door-shape:43% 43% 2px 2px / 18% 18% 2px 2px;--door-frame:#563c23;--door-dark:#1e312b;--door-mid:#386653;--door-light:#b99c62;--door-trim:#e5bb76}
.door-window .door-leaf{background:linear-gradient(90deg,transparent 46%,#e8c88d 47% 53%,transparent 54%),linear-gradient(0deg,transparent 46%,#e8c88d 47% 53%,transparent 54%),radial-gradient(circle at 40% 40%,#f5d584,#ab6b36 43%,#263b31 95%)}
.door-window .door-detail{border:2px solid #f5d58b80}
.door-hatch{--door-shape:5px;--door-frame:#6c4533;--door-dark:#2b1b15;--door-mid:#926245;--door-light:#c9a276;--door-trim:#d4b78b}
.door-hatch .door-leaf{background:repeating-linear-gradient(90deg,#3b241e00 0 22%,#28180f66 23% 26%,#3b241e00 27% 49%),linear-gradient(115deg,#c69d70,#81543b 60%,#35231a)}
.door-parcel{--door-shape:4px;--door-frame:#8a302b;--door-dark:#401f23;--door-mid:#a53c3c;--door-light:#d67c66;--door-trim:#f0ce92}
.door-parcel .door-leaf{background:linear-gradient(90deg,transparent 41%,#f2d28c 42% 56%,transparent 57%),linear-gradient(0deg,transparent 43%,#f2d28c 44% 57%,transparent 58%),linear-gradient(125deg,#dc7767,#9c3437 55%,#4b1e24)}
.advent-door.first{animation:none;filter:drop-shadow(0 0 7px #ffe6a5) drop-shadow(0 0 13px #e8a34d)}
.advent-door.first::after{content:'✦';position:absolute;top:-23%;right:-22%;font-size:clamp(10px,1.3vw,21px);color:#fff0b5;text-shadow:0 0 8px #fbd38d;animation:twinkle 2.5s ease-in-out infinite alternate}
.advent-door.door-opening .door-leaf{transform:rotateY(-105deg)}
.advent-door.door-opening{z-index:20;filter:drop-shadow(0 0 14px #ffda85)}
.scene-wrap.is-expanded .advent-door{min-width:0;min-height:0}
.scene-wrap.is-expanded .door-number{font-size:clamp(12px,1.45vw,23px)}
@media(max-width:800px){.scene .hotspots{display:block}.advent-door{min-width:0;min-height:0}.door-number{font-size:clamp(5px,1.3vw,12px)}.door-leaf{border-width:1px}.door-recess{border-width:1px}.door-hinge,.door-knob{display:none}.scene-wrap.is-expanded .door-hinge,.scene-wrap.is-expanded .door-knob{display:block}.scene-wrap.is-expanded .advent-door{min-width:0;min-height:0}.scene-wrap.is-expanded .door-number{font-size:clamp(12px,2.3vw,19px)}}
@media(prefers-reduced-motion:reduce){.advent-door,.door-leaf{transition:none!important}}


/* v0.9 illustrated master: actual door art and numbers live in the approved background. */
.hotspots .illustrated-door-hotspot{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;box-shadow:none;filter:none;outline:none;padding:0;margin:0;min-width:0;min-height:0;border-radius:10px;cursor:pointer;z-index:9;touch-action:manipulation}
.hotspots .illustrated-door-hotspot:hover{background:#fff5b20a;box-shadow:0 0 13px 3px #ffdf8b80;filter:none}
.hotspots .illustrated-door-hotspot:focus-visible{outline:3px solid #fff0b5;outline-offset:2px;box-shadow:0 0 14px #ffdf8b}
.hotspots .illustrated-door-hotspot.first{animation:none;filter:none}
.scene-wrap.is-expanded .illustrated-door-hotspot{min-width:0;min-height:0}
@media(max-width:800px){.scene .hotspots .illustrated-door-hotspot{display:block;min-width:0;min-height:0}}

/* v0.9.2 — bring back the original luminous Door 1 invitation.
   Transparent hotspots remain interactive; this is a glow, not a replacement door. */
.hotspots .illustrated-door-hotspot.first{
  border:2px solid rgba(255,238,184,.94);
  border-radius:38% 38% 12% 12% / 20% 20% 10% 10%;
  background:linear-gradient(115deg,rgba(255,247,201,.11),rgba(255,232,149,.025));
  box-shadow:
    0 0 0 2px rgba(255,231,151,.38),
    0 0 12px 4px rgba(255,221,127,.88),
    0 0 27px 8px rgba(255,195,73,.58),
    inset 0 0 13px 3px rgba(255,238,160,.55);
  filter:none;
  animation:woodlandDoorInvitation 2.8s ease-in-out infinite;
}
.hotspots .illustrated-door-hotspot.first::after{
  content:'✦';
  position:absolute;
  right:-9px;top:-13px;
  color:#fff5c5;
  font-size:clamp(12px,1.35vw,21px);
  text-shadow:0 0 7px #fff,0 0 15px #ffcf72;
  pointer-events:none;
}
.hotspots .illustrated-door-hotspot.first:hover,
.hotspots .illustrated-door-hotspot.first:focus-visible{
  background:rgba(255,244,182,.16);
  box-shadow:0 0 0 2px #fff2c0,0 0 18px 7px #ffde8d,0 0 34px 13px #f9bb52,inset 0 0 17px #ffeab3;
}
@keyframes woodlandDoorInvitation{
  0%,100%{box-shadow:0 0 0 2px #ffe79765,0 0 11px 3px #ffdd83c9,0 0 23px 7px #ffc65e78,inset 0 0 12px 2px #ffe8a77d}
  50%{box-shadow:0 0 0 3px #ffe9a7aa,0 0 17px 6px #ffe2a4,0 0 32px 11px #ffc65eb8,inset 0 0 18px 4px #ffebb3aa}
}
@media(prefers-reduced-motion:reduce){.hotspots .illustrated-door-hotspot.first{animation:none}}
