/* Independent objects on the untouched, native-resolution town plate. */
.object-layers{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:visible}.object-state{opacity:0;transition:opacity .5s ease,translate .6s ease}.object-window .state-window,.object-roundwindow .state-roundwindow,.object-lantern .state-lantern,.object-desk .state-desk,.object-drawer .state-drawer,.object-spools .state-spools,.object-pencil .state-pencil,.object-portrait .state-portrait,.object-cord .state-cord,.object-rooftops .state-rooftops,.object-flowers .state-flowers,.object-cup .state-cup,.object-key .state-key,.object-rosette .state-rosette,.object-bloom .state-bloom{opacity:1}.state-spools,.state-cup,.state-rosette,.state-flowers{mix-blend-mode:color}.state-drawer{translate:0 -4px}.object-drawer .state-drawer{translate:0 0}.state-cord{transform:scaleY(.02);transform-origin:940px 30px;transition:transform 1s ease,opacity .3s}.object-cord .state-cord{transform:scaleY(1)}.state-rooftops ellipse{animation:house-welcome 4s calc(var(--i)*.6s) infinite ease-in-out}.object-pencil .state-pencil path{animation:constellation-ink 1.6s both}.object-lights-shade,.town-lights-shade{opacity:0;transition:opacity .7s;mix-blend-mode:multiply}.object-light .town-lights-shade{opacity:1}.immersive-stage.object-light .world-poster{filter:brightness(.42) saturate(.65)}.object-light .world-grade{background:#243b6d55}.object-light .practical-lights,.object-light .held-lights-colour{opacity:0!important}.object-light .night-fireflies,.object-fireflies .night-fireflies{opacity:1}.held-lights-colour{opacity:0;mix-blend-mode:screen;transition:opacity .6s}.wire-changed .held-lights-colour{opacity:1}.immersive-stage{--wire-colour:#ffd580;--cup-colour:#75b9a8;--rosette-colour:#8bc4b5}.immersive-stage[data-wire=mint]{--wire-colour:#66ffc5}.immersive-stage[data-wire=rose]{--wire-colour:#ff79c7}.immersive-stage[data-wire=blue]{--wire-colour:#7baaff}.immersive-stage[data-cup=rose]{--cup-colour:#d982aa}.immersive-stage[data-cup=blue]{--cup-colour:#7a9cce}.immersive-stage[data-cup=gold]{--cup-colour:#eac66b}.immersive-stage[data-rosette=rose]{--rosette-colour:#d680b9}.immersive-stage[data-rosette=blue]{--rosette-colour:#719ccd}.immersive-stage[data-rosette=gold]{--rosette-colour:#e8c469}.wire-changed .practical-lights i:nth-child(n+7){background:radial-gradient(circle,var(--wire-colour),transparent 65%);opacity:.6;animation:none}
.shooting-star{display:block;width:4px;height:4px;background:#fff6cd;border-radius:50%;box-shadow:-20px 0 9px 1px #ffe0a988;animation:shooting-star 2.1s ease-in both}.tiny-butterfly{position:absolute;display:block;width:18px;height:15px;animation:butterfly-flight 4.3s both}.tiny-butterfly b{position:absolute;left:0;width:9px;height:14px;border-radius:85% 50% 40% 75%;background:linear-gradient(30deg,#654554,#e4b6c9);transform-origin:right center;animation:butterfly-wings .2s infinite alternate;box-shadow:inset 0 0 0 1px #f4d0b8}.tiny-butterfly b+b{left:9px;transform-origin:left center;border-radius:50% 85% 75% 40%}.turning-wheel{position:absolute;left:-15px;top:-18px;width:30px;height:36px;border:2px solid #b98746;border-radius:50%;background:radial-gradient(ellipse,transparent 55%,#7e4a21 60%,#dbb170 74%,#5c331a 90%);animation:wheel-turn 2.8s ease-out both;box-shadow:0 2px 2px #3c2419}.turning-wheel b{position:absolute;left:50%;top:0;height:100%;width:1px;background:#d4a45d}.turning-wheel b:nth-child(2){rotate:60deg}.turning-wheel b:nth-child(3){rotate:120deg}.tiny-envelope{position:absolute;width:25px;height:17px;background:linear-gradient(30deg,#b49b71 49%,#eddbb5 51%);border:1px solid #aa8b60;box-shadow:0 2px 3px #3f271b66;animation:envelope-slide 3s both}.sugar-speck{position:absolute;width:3px;height:3px;background:#fff1ca;border-radius:1px;animation:sugar-rise 2.5s calc(var(--i)*.08s) both;--dx:calc((var(--i) - 4)*9px)}.gold-bubble{position:absolute;width:calc(7px + var(--i)*1px);aspect-ratio:1;border:1px solid #ffe3ad99;border-radius:50%;background:radial-gradient(circle at 25% 25%,#ffedc388,transparent 60%);animation:gold-bubbles 4s calc(var(--i)*.14s) both;--dx:calc((var(--i) - 3)*18px)}.bell-ring{position:absolute;width:17px;height:17px;border:1px solid #ebca8988;border-radius:50%;left:-9px;top:-9px;animation:ring-bell 1.1s 2 both}.ring-two{animation-delay:.2s}.autumn-leaf{background:linear-gradient(55deg,#8b632f,#d9b75b 50%,#866b31);--travel:calc(20px + var(--i)*16px);animation-name:autumn-fall}
/* Real fastening, fixed to the doorway lintel. Never attached to a moving film. */
.shop-door{right:1%;top:33%;width:10.8%;height:32%}.physical-shop{left:50%;top:0;width:100%;height:17%;min-height:28px;transform:translate(-50%,-50%) rotate(-1deg);filter:drop-shadow(0 3px 1px #2a160e88);background:linear-gradient(#a27745,#604024 12%,#69432b 78%,#39251b);border:1px solid #b48b54;border-radius:3px;box-shadow:inset 0 1px 1px #e2ba7f77,inset 0 -2px 0 #2f1b17}.physical-shop .prop-art{display:none}.physical-shop:before,.physical-shop:after{content:'';position:absolute;left:6%;top:43%;width:3px;height:3px;background:#d1ac70;border-radius:50%;box-shadow:0 1px 1px #28190e}.physical-shop:after{left:auto;right:6%}.physical-shop b{font:600 clamp(12px,1.3cqw,21px) Georgia;color:#f0d8a7;letter-spacing:.06em;text-shadow:0 1px 2px #2e190d}.shop-door:hover .physical-shop{filter:drop-shadow(0 3px 1px #2a160e88) brightness(1.08)}
/* The small brass label belongs to the display case, rather than covering a neighbor. */
.town-ledge{justify-content:center}.town-ticket{margin:0 auto;position:relative;width:auto;min-width:150px;height:30px;padding:0 24px;border-radius:3px;border:1px solid #a57b45;background:linear-gradient(120deg,#9f7949,#c9a367 46%,#aa824c 80%);box-shadow:inset 0 1px 0 #e8c99488,0 1px 2px #21160f;filter:none}.town-ticket .prop-art{display:none}.town-ticket span{font:600 11px Georgia;letter-spacing:.08em;color:#3d281c;text-shadow:0 1px 0 #dbb98477}.town-ticket:before,.town-ticket:after{content:'';position:absolute;left:7px;width:3px;height:3px;background:#614623;border:1px solid #d5ad69;border-radius:50%}.town-ticket:after{left:auto;right:7px}.town-carving{display:none}.social-badge{margin-left:0}.ledge-replay{position:absolute;left:18px}.social-badge{position:absolute;right:18px}.town-ticket:hover{filter:brightness(1.06)}
.masterplan-panel{position:relative;padding:60px 55px 35px;color:#4a342d;background:repeating-linear-gradient(0deg,transparent 0 34px,#a0824f10 34px 35px),#ede0c5;min-height:480px}.plan-eyebrow{font:10px Arial;letter-spacing:.25em;color:#987b54;margin:0 0 18px}.masterplan-panel h2{font:italic clamp(30px,4vw,48px)/1.1 Georgia;max-width:560px;margin:0 0 10px}.plan-subtitle{font:15px Georgia;color:#937b61}.masterplan-steps{padding:15px 0;margin:0;list-style:none;display:grid;gap:22px}.masterplan-steps li{display:flex;gap:20px;align-items:baseline}.masterplan-steps b{font:italic 18px Georgia;color:#a46f47}.masterplan-steps span{font:21px Georgia}.masterplan-steps small{display:block;font:13px/1.5 Georgia;color:#92745b;margin-top:6px}.plan-paperclip{position:absolute;width:18px;height:55px;border:3px solid #8f805f;border-radius:8px;top:-11px;left:48px;rotate:-9deg;box-shadow:2px 1px 2px #503f2430}.plan-doodle{position:absolute;right:50px;bottom:45px;rotate:-8deg;font:37px Georgia;color:#907152}.plan-doodle span{font-size:19px;margin:0 7px}.plan-margin-note{font:italic 14px Georgia;color:#8d4234;margin-top:26px}.plan-revise{background:none;color:#71593c;border:0;border-bottom:1px solid #ad9272;padding:8px 0;font:13px Georgia;cursor:pointer}.plan-revise:hover{color:#322218}.plan-revise:focus-visible{outline:2px solid #ad9272;outline-offset:5px}
@keyframes shooting-star{0%{opacity:0;transform:translate(-60px,-20px) rotate(15deg)}15%{opacity:1}100%{opacity:0;transform:translate(190px,95px) rotate(15deg)}}@keyframes butterfly-wings{to{transform:scaleX(.2)}}@keyframes butterfly-flight{0%{opacity:0;transform:translate(0,0)}12%{opacity:1}35%{transform:translate(-60px,-60px) rotate(-10deg)}65%{transform:translate(-115px,-30px) rotate(10deg);opacity:1}100%{transform:translate(-190px,-85px);opacity:0}}@keyframes wheel-turn{0%{opacity:0;rotate:0deg}10%,85%{opacity:1}100%{opacity:0;rotate:530deg}}@keyframes envelope-slide{0%{opacity:0;transform:translate(-35px,10px) rotate(-20deg)}20%,65%{opacity:1;transform:translate(-10px,0) rotate(0deg)}100%{opacity:0;transform:translate(8px,0) scaleX(.1)}}@keyframes sugar-rise{0%,100%{opacity:0}25%{opacity:.9}70%{opacity:.65;transform:translate(var(--dx),-28px) rotate(90deg)}100%{transform:translate(var(--dx),10px)}}@keyframes gold-bubbles{0%{opacity:0}20%,70%{opacity:.8}100%{opacity:0;transform:translate(var(--dx),-150px)}}@keyframes ring-bell{0%{opacity:0;transform:scale(.7)}20%{opacity:.7}100%{opacity:0;transform:scale(3)}}@keyframes autumn-fall{0%{opacity:0;transform:translate(0,0)}15%,80%{opacity:1}100%{opacity:0;transform:translate(var(--travel),210px) rotate(230deg)}}@keyframes house-welcome{0%,100%{opacity:.4}40%{opacity:1}}@keyframes constellation-ink{from{opacity:0}to{opacity:1}}
@media(max-width:760px){.town-ticket{height:29px;min-width:145px;padding:0 18px}.town-ticket span{font-size:10px}.ledge-replay{left:10px}.social-badge{right:10px}.masterplan-panel{padding:52px 26px 30px}.masterplan-steps{gap:18px}.masterplan-steps span{font-size:18px}.masterplan-steps small{font-size:12px}.plan-doodle{position:static;text-align:right;margin-top:12px;font-size:28px}.plan-margin-note{margin-top:20px}.physical-shop b{font-size:17px}}
@media(prefers-reduced-motion:reduce){.object-layers *,.scene-fx *{animation:none!important;transition:none!important}.effect i{opacity:.7}}

.shop-door{top:30%;height:6%}.physical-shop{top:50%;height:75%}.cinema-door{position:absolute;left:3.6%;top:28.7%;width:10.8%;height:6%;background:none;border:0;padding:0;z-index:6;cursor:pointer;touch-action:pan-x}.cinema-door .physical-shop{transform:translate(-50%,-50%) rotate(-3deg)}.cinema-door:hover .physical-shop{filter:brightness(1.08)}.cinema-door:focus-visible{outline:2px solid #f4d390;outline-offset:3px}.object-light .physical-shop{filter:brightness(.5)}

.reduced .object-fireflies .night-fireflies{display:block!important}.reduced .object-fireflies .night-fireflies i{opacity:.65;animation:none!important}
@media(prefers-reduced-motion:reduce){.object-fireflies .night-fireflies{display:block!important}.object-fireflies .night-fireflies i{opacity:.65;animation:none!important}}

/* The approved colour interaction tints only the glass itself: no halo discs. */
.held-lights-colour{mix-blend-mode:multiply;transition:opacity .35s}.held-lights-colour ellipse{opacity:.92}.wire-changed .held-lights-colour{opacity:1}.object-light .held-lights-colour{opacity:0!important}

/* Preserve the photographed glass, filament and highlight; recolour only those pixels. */
.held-lights-colour{mix-blend-mode:normal}.bulb-tint-image{filter:hue-rotate(var(--wire-hue,0deg)) saturate(.92)}.immersive-stage[data-wire=mint]{--wire-hue:110deg}.immersive-stage[data-wire=rose]{--wire-hue:275deg}.immersive-stage[data-wire=blue]{--wire-hue:180deg}
