.stage{--px:0;--py:0;--lit:0;--peek:color-mix(in oklab, var(--color-lamp) 38%, var(--color-white));flex-direction:column;min-height:100svh;display:flex;position:relative;overflow:clip}.sky{z-index:0;pointer-events:none;background:radial-gradient(95% 60% at 50% 82%, color-mix(in oklab, var(--color-indigo) 80%, var(--color-purple)) 0%, transparent 72%), linear-gradient(180deg, var(--color-night) 0%, var(--color-sky-top) 42%, color-mix(in oklab, var(--color-indigo) 42%, var(--color-sky-top)) 100%);position:fixed;inset:0}.sky__stars{width:100%;height:100%;translate:calc(var(--px) * -5px) calc(var(--py) * -3px);position:absolute;inset:0}.star{fill:var(--color-lavender);opacity:.75}.star--twinkles{animation:twinkle 4.5s ease-in-out var(--delay,0s) infinite}@keyframes twinkle{50%{opacity:.15}}.aurora{height:72%;opacity:calc(.6 + var(--lit) * .4);mix-blend-mode:screen;translate:calc(var(--px) * 22px) calc(var(--py) * 8px);transition:opacity 2s;position:absolute;inset:0 -14% auto}.aurora__ribbon{inset-inline:0;background:var(--gradient-aurora);filter:blur(clamp(.6rem,1.4vw,1.25rem));transform-origin:50% 100%;height:50%;animation:24s ease-in-out infinite alternate aurora;position:absolute;top:4%;rotate:-5deg;mask-image:linear-gradient(#0000 0%,#00000059 38%,#000 80%,#0000 100%),repeating-linear-gradient(94deg,#000 0 2.1%,#0000008c 3.4% 4%,#000 7.3%),repeating-linear-gradient(97deg,#000 0 5%,#000000b3 7.5% 8.2%,#000 11.9%);mask-composite:intersect}.aurora__ribbon--2{inset-inline:22% -6%;opacity:.7;height:34%;animation-duration:33s;animation-delay:-9s;top:26%;rotate:6deg}.aurora__ribbon--3{inset-inline:-4% 42%;opacity:.55;height:30%;animation-duration:41s;animation-delay:-20s;top:0;rotate:-11deg}@keyframes aurora{0%{transform:translate(-6%)scaleY(.8)skew(-14deg)}to{transform:translate(6%)scaleY(1.2)skew(14deg)}}.shooting-star{border-radius:var(--radius-round);background:linear-gradient(90deg, transparent, var(--color-white));transform-origin:100%;width:clamp(5rem,12vw,11rem);height:2px;animation:shoot .9s var(--ease-out) both;position:absolute;rotate:24deg}@keyframes shoot{0%{opacity:0;translate:-18vw -8vw;scale:.4 1}30%{opacity:1}to{opacity:0;translate:18vw 8vw;scale:1}}.village{padding-top:var(--space-5);margin-top:auto;position:relative}.village__scene{width:min(100%, calc(max(70svh, 24rem) * var(--ratio-wide)));aspect-ratio:var(--ratio-wide);margin-inline:auto;position:relative}.village__art{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.village__art--tall{display:none}.hill--0{fill:color-mix(in oklab, var(--color-indigo) 46%, var(--color-sky-top));translate:calc(var(--px) * -4px) 0}.hill--1{fill:color-mix(in oklab, var(--color-indigo) 62%, var(--color-lavender-400));translate:calc(var(--px) * -7px) 0}.house{cursor:pointer;pointer-events:visiblePainted}.house__wall{fill:var(--wall)}.house__shade{fill:var(--color-ink);opacity:.22}.house__window,.house__door{fill:var(--color-ink);transition:fill var(--duration)}.house__sill{fill:var(--trim)}.house__roof{fill:none;stroke:var(--color-lavender-200);stroke-width:17px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:8}.house__snow{fill:none;stroke:var(--color-white);stroke-width:8px;stroke-linecap:round;stroke-linejoin:round;translate:0 -7px}.house__chimney rect{fill:color-mix(in oklab, var(--wall) 78%, var(--color-ink))}.house__chimney .house__cap{fill:var(--color-white)}.house__knob{fill:var(--color-lavender-200)}.house__leaf{fill:var(--color-ink);opacity:0;transition:opacity var(--duration), transform var(--duration) var(--ease-out);transform:scaleX(.78)}.house__star{fill:var(--color-lavender-300);transition:fill var(--duration-slow)}.house--locked{cursor:default}.house--open .house__door{fill:var(--color-lamp)}.house--open .house__leaf{opacity:1}.house--open .house__knob{opacity:0}.house.is-lit .house__window{fill:var(--peek)}.house.is-visited .house__window{fill:var(--color-lamp)}.house.is-lit .house__panes{filter:drop-shadow(0 0 6px var(--color-lamp-glow))}.house.is-lit .house__leaf{transform:scaleX(.4)}.house.is-visited .house__star,.house.is-lit .house__star{fill:var(--color-lamp);filter:drop-shadow(0 0 8px var(--color-lamp-glow))}.house.is-waking .house__window{animation:wake .6s calc(.9s + var(--i) * .14s) both}@keyframes wake{0%{fill:var(--color-ink)}50%{fill:var(--color-white)}to{fill:var(--color-lamp)}}.house.is-singing{animation:sing .4s var(--ease-out);transform-box:fill-box;transform-origin:50% 100%}@keyframes sing{35%{transform:scale(1.035,1.06)}}.puff{fill:var(--color-smoke);opacity:0;transform-box:fill-box;transform-origin:50%;animation:puff-1 6s linear var(--smoke-delay,0s) infinite}.puff--2{animation-name:puff-2}.puff--3{animation-name:puff-3}@keyframes puff-1{0%{opacity:0;transform:scale(.4)}15%{opacity:.7}to{opacity:0;transform:translate(-10px,-120px)scale(2.1)}}@keyframes puff-2{0%,33%{opacity:0;transform:scale(.4)}48%{opacity:.6}to{opacity:0;transform:translate(8px,-96px)scale(1.8)}}@keyframes puff-3{0%,66%{opacity:0;transform:scale(.4)}78%{opacity:.55}to{opacity:0;transform:translate(-4px,-60px)scale(1.4)}}.pine--far polygon{fill:color-mix(in oklab, var(--color-lavender-400) 50%, var(--color-indigo))}.pines{translate:calc(var(--px) * 9px) 0}.pine--near{cursor:pointer;pointer-events:visiblePainted;transform-origin:var(--sway-origin)}.pine__dark,.pine__trunk{fill:color-mix(in oklab, var(--color-night) 84%, var(--color-blue))}.pine__light{fill:color-mix(in oklab, var(--color-night) 52%, var(--color-blue))}.bulb{fill:var(--color-lavender-200);stroke:var(--color-lavender-200);stroke-width:7px;stroke-opacity:.22}.bulb--tint1{fill:var(--color-white);stroke:var(--color-white)}.bulb--tint2{fill:color-mix(in oklab, var(--color-lavender-400) 60%, var(--color-white));stroke:var(--color-lavender-400)}[data-lights=twinkle] .bulb{animation:1.8s ease-in-out infinite bulb}[data-lights=twinkle] .bulb--b{animation-delay:-.9s}@keyframes bulb{50%{opacity:.25}}.village__badges{z-index:2;pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0;container-type:inline-size}.village__badges li{--ring:var(--ring-w);left:var(--xw);top:var(--yw);pointer-events:auto;position:absolute;translate:-50% -50%}.badge{--size:max(2.25rem, 2.9cqi);width:var(--size);aspect-ratio:1;border:calc(var(--size) * .1) solid var(--ring,var(--color-lavender-300));border-radius:var(--radius-round);background:var(--color-ink);color:var(--color-white);font:inherit;font-weight:500;font-size:max(.8125rem, calc(var(--size) * .4));cursor:pointer;transition:transform var(--duration) var(--ease-out), background-color var(--duration), border-color var(--duration), color var(--duration);place-items:center;padding:0;line-height:1;text-decoration:none;display:grid;position:relative}.badge--open{font-weight:700}.badge--open:hover{transform:scale(1.12)}.badge--locked{border-width:calc(var(--size) * .05);border-color:color-mix(in oklab, var(--ring,var(--color-lavender-300)) 55%, var(--color-ink));color:color-mix(in oklab, var(--color-white) 65%, var(--color-ink));cursor:default}.badge.is-visited,.badge.is-waking{border-color:var(--color-lamp-edge);background:var(--color-lamp);color:var(--color-ink)}.badge.is-lit{border-color:var(--color-lamp);box-shadow:0 0 .8em var(--color-lamp-glow)}.badge--locked:after{content:attr(data-opens);padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);background:var(--color-ink);color:var(--color-white);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration), translate var(--duration) var(--ease-out);font-size:.75rem;font-weight:600;position:absolute;bottom:calc(100% + .5rem);left:50%;translate:-50% .25rem}.badge--locked.is-stirring:after,.badge--locked:focus-visible:after{opacity:1;translate:-50%}.badge--newest:not(.is-visited,.is-waking){border-color:var(--color-lamp);scale:1.18}.badge--newest:not(.is-visited,.is-waking):before{content:"";border:2px solid var(--color-lamp);border-radius:inherit;animation:beckon 2.4s var(--ease-out) infinite;position:absolute;inset:-30%}@keyframes beckon{0%{opacity:.9;scale:.75}to{opacity:0;scale:1.5}}.badge__flag{padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);background:var(--color-white);color:var(--color-ink);white-space:nowrap;pointer-events:none;font-size:.75rem;font-weight:700;position:absolute;bottom:calc(100% + .6rem);left:50%;translate:-50%}.badge.is-visited+.badge__flag,.badge.is-waking+.badge__flag{display:none}.village__moon-toggle,.village__wish,.fox{cursor:pointer;background:0 0;border:0;padding:0}.village__moon-toggle{z-index:2;aspect-ratio:1;border-radius:var(--radius-round);width:11%;translate:calc(var(--px) * -8px) calc(var(--py) * -5px);position:absolute;top:-4%;left:1.5%}.village__moon{fill:var(--color-lavender);filter:drop-shadow(0 0 1.1rem color-mix(in oklab, var(--color-lavender) 55%, transparent));position:absolute;inset:0}.moon__crater{fill:var(--color-lavender-200)}[data-ready] .village__moon{transition:opacity var(--duration-slow)}[data-moon=full] .village__moon--crescent,[data-moon=crescent] .village__moon--full{opacity:0}.village__wish{z-index:2;aspect-ratio:1;border-radius:var(--radius-round);width:max(2rem,2.2%);padding:.3rem;position:absolute;top:9%;left:81%}.village__wish svg{fill:var(--color-white);animation:3s ease-in-out infinite twinkle;display:block}.village__fox{z-index:-1}.fox{width:max(1.75rem,2.6cqi);display:block;translate:0 -42%}.fox svg{display:block;overflow:visible}.fox__head,.fox__body,.fox__tail{fill:var(--color-lavender);stroke:var(--color-lavender-400);stroke-width:1.2px;stroke-linejoin:round}.fox__mask{fill:var(--color-white)}.fox__eye,.fox__nose{fill:var(--color-ink)}.village__foot{inset:auto 0 calc(var(--control-inset) * .6);z-index:2;justify-items:center;gap:var(--space-1);padding-inline:var(--space-3);color:var(--color-ink);font-size:var(--text-sm);text-align:center;pointer-events:none;display:grid;position:absolute}.village__foot p{margin:0}.village__hint{font-weight:600}.village__status{left:50%;bottom:calc(var(--control-inset) + 3.25rem);z-index:10;width:max-content;max-width:min(100vw - 2rem,40rem);padding:var(--space-2) var(--space-3);border-radius:var(--radius-round);background:var(--color-ink);color:var(--color-white);font-size:var(--text-sm);text-align:center;text-wrap:balance;pointer-events:none;transition:opacity var(--duration), translate var(--duration) var(--ease-out);margin:0;font-weight:600;position:fixed;translate:-50%}.village__status:empty{opacity:0;translate:-50% .5rem}.village__jump{display:none}.scene-controls{left:var(--control-inset);bottom:var(--control-inset);z-index:10;position:fixed}.scene-controls__switches{gap:var(--control-gap);display:flex}.scene-controls .scene-controls__menu{display:none}.scene-control__label{padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);background:var(--color-ink);color:var(--color-white);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration), translate var(--duration) var(--ease-out);font-size:.75rem;font-weight:600;position:absolute;bottom:calc(100% + .5rem);left:50%;translate:-50% .25rem}.scene-control:hover .scene-control__label,.scene-control:focus-visible .scene-control__label{opacity:1;translate:-50%}.carol{right:var(--control-inset);bottom:var(--control-inset);z-index:10;align-items:center;gap:var(--space-2);height:var(--control-size);padding:0 var(--space-4) 0 0;border-radius:var(--radius-round);background:var(--accent-fill);color:var(--color-accent-text);font:inherit;cursor:pointer;transition:transform var(--duration) var(--ease-out);border:0;display:flex;position:fixed}.carol:hover{transform:translateY(-2px)}.carol__ring{width:var(--control-size);height:var(--control-size);rotate:-90deg}.carol__track,.carol__progress{fill:none;stroke-width:4.5px}.carol__track{stroke:color-mix(in oklab, var(--color-white) 34%, transparent)}.carol__progress{stroke:var(--color-lamp);stroke-linecap:round;stroke-dasharray:var(--lit-count,0) 999;transition:stroke-dasharray var(--duration-slow) var(--ease-out)}.carol__icon{width:var(--control-size);height:var(--control-size);padding:calc(var(--control-size) * .3);fill:currentColor;position:absolute;left:0}[data-playing=false] .carol__icon--stop,[data-playing=true] .carol__icon--play{display:none}.carol__label{text-align:left;line-height:1.2;display:grid}.carol__title{font-size:var(--text-sm);font-weight:600}.carol__count{font-size:.75rem}.carol__tally{display:none}@media (width<=47.99rem),(aspect-ratio<=1){.village{padding-top:0}.village__scene{width:min(100%,34rem);aspect-ratio:var(--ratio-tall);margin-top:9%}.village__art--wide{display:none}.village__art--tall{display:block}.village__badges li{--ring:var(--ring-t);left:var(--xt);top:var(--yt)}.badge{--size:max(2.4rem, 9cqi)}.fox{width:max(1.75rem,6.5cqi)}.village__moon-toggle{width:20%;top:.2%;left:2%}.village__wish{width:max(2rem,6%);top:2%;left:84%}.village__foot{margin-top:calc(var(--space-5) * -1);padding-bottom:calc(var(--control-size) + var(--control-inset) * 2);position:relative;inset:auto}.village__status{bottom:calc(var(--control-size) + var(--control-inset) * 1.75)}.village__jump{left:50%;bottom:var(--control-inset);z-index:10;align-items:center;gap:var(--space-1);height:var(--control-size);padding:0 var(--space-3);border:2px solid var(--color-lamp);border-radius:var(--radius-round);background:var(--color-ink);color:var(--color-white);font:inherit;font-size:var(--text-sm);cursor:pointer;font-weight:600;display:flex;position:fixed;translate:-50%}.village__jump[hidden]{display:none}.village__jump svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:1.1em}.scene-controls .scene-controls__menu{display:grid}.scene-controls__switches{bottom:calc(100% + var(--control-gap));visibility:hidden;opacity:0;transition:opacity var(--duration), translate var(--duration) var(--ease-out), visibility 0s var(--duration);flex-direction:column-reverse;position:absolute;left:0;translate:0 .5rem}.scene-controls[data-open] .scene-controls__switches{visibility:visible;opacity:1;transition-delay:0s;translate:0}.scene-control__label{font-size:var(--text-sm);opacity:1;top:50%;bottom:auto;left:calc(100% + .5rem);translate:0 -50%}.scene-control:hover .scene-control__label,.scene-control:focus-visible .scene-control__label{translate:0 -50%}.carol{padding:0}.carol__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.carol__tally{padding:.1rem var(--space-2);border-radius:var(--radius-round);background:var(--color-ink);color:var(--color-white);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:600;display:block;position:absolute;bottom:calc(100% + .25rem);left:50%;translate:-50%}}.stage :focus-visible{outline:3px solid var(--color-white);outline-offset:3px;box-shadow:0 0 0 8px var(--color-ink)}@media (prefers-reduced-motion:reduce){.star--twinkles,.aurora__ribbon,.puff,.village__wish svg,.badge--newest:before,.house.is-singing,[data-lights=twinkle] .bulb{animation:none}.house.is-waking .house__window{fill:var(--color-lamp);animation:none}.sky__stars,.aurora,.hill,.pines,.village__moon-toggle{translate:none}}.intro[data-astro-cid-mo2gie5g]{z-index:2;justify-items:center;gap:var(--space-2);max-width:46rem;padding:var(--space-4) var(--space-3) 0;text-align:center;pointer-events:none;margin-inline:auto;display:grid;position:relative}.intro[data-astro-cid-mo2gie5g]>[data-astro-cid-mo2gie5g]{pointer-events:auto}.intro__logo[data-astro-cid-mo2gie5g]{width:clamp(9rem,36vw,12rem);height:auto;margin-bottom:var(--space-2)}.intro__heading[data-astro-cid-mo2gie5g]{font-family:var(--font-heading);font-size:var(--text-xl);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:800;line-height:1.15}.intro__text[data-astro-cid-mo2gie5g]{text-wrap:pretty;max-width:34em;margin:0;font-size:clamp(.875rem,.8rem + .3vw,1.0625rem);line-height:1.6}@media (width>=64rem) and (aspect-ratio>=1){.intro[data-astro-cid-mo2gie5g]{max-width:62rem;padding-top:clamp(1rem,3.2svh,2.25rem);position:static}.intro__logo[data-astro-cid-mo2gie5g]{left:var(--control-inset);top:var(--control-inset);z-index:2;width:clamp(9rem,13vw,15rem);margin:0;position:absolute}.intro__heading[data-astro-cid-mo2gie5g],.intro__text[data-astro-cid-mo2gie5g]{z-index:2;position:relative}.intro__heading[data-astro-cid-mo2gie5g]{font-size:clamp(1.5rem,3.4svh,2.25rem)}}
