/* Decorative motion stays separate from layout and registration logic. */
.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}
.header{position:relative}.fairy-strand{pointer-events:none;position:absolute;left:0;right:0;bottom:-12px;height:28px;z-index:3;opacity:.8}.fairy-strand svg{display:block;width:100%;height:100%;overflow:visible}.fairy-bulb{animation:fairy-glow 4.8s ease-in-out var(--light-delay,0s) infinite}.hanging-ornaments{position:absolute;inset:0;pointer-events:none;z-index:0}.hanging-ornaments i{position:absolute;top:0;width:20px;height:90px;left:3%;transform-origin:50% 0;animation:ornament-sway 8s ease-in-out infinite}.hanging-ornaments i:before{content:'';position:absolute;top:0;left:50%;width:1px;height:65px;background:#b7a57666}.hanging-ornaments i:after{content:'';position:absolute;bottom:0;left:0;width:20px;height:25px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#cc7d62,#ae4636);box-shadow:inset -2px -3px 5px #79382925}.hanging-ornaments i:nth-child(2){left:auto;right:7%;height:68px;animation-delay:-3s;animation-duration:10s}.hanging-ornaments i:nth-child(2):before{height:49px}.hanging-ornaments i:nth-child(2):after{width:15px;height:19px;background:radial-gradient(circle at 30% 30%,#e5cd8c,#b79753)}.hanging-ornaments i:nth-child(3){left:auto;right:3%;height:110px;animation-delay:-5s;animation-duration:11s}.hanging-ornaments i:nth-child(3):before{height:87px}.hanging-ornaments i:nth-child(3):after{height:23px;background:radial-gradient(circle at 30% 30%,#7e9a79,#3c6a53)}
.globe-stage{position:relative;perspective:1100px}.globe-tilt{width:100%;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .35s ease-out}.globe-illustration{display:block;width:100%;height:auto;overflow:visible}.globe-trigger,.nutcracker-trigger{position:absolute;background:none;border:0;padding:0;z-index:2;cursor:pointer}.globe-trigger{left:13%;top:10%;width:74%;height:68%;border-radius:50%;touch-action:manipulation}.globe-trigger:focus-visible{outline:2px dashed var(--gold);outline-offset:8px}.globe-hint{position:absolute;bottom:8%;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fffdf2e8;color:#587051;border:1px solid #d0d6bc;font-family:var(--sans);font-size:8px;letter-spacing:.35px;padding:8px 12px;border-radius:20px;box-shadow:0 4px 12px #38533b0a;opacity:0;transition:opacity .25s}.globe-trigger:hover .globe-hint,.globe-trigger:focus-visible .globe-hint{opacity:1}.nutcracker-trigger{left:78%;top:56%;width:14%;height:31%;border-radius:12px}.nutcracker-trigger:focus-visible{outline:2px dashed var(--gold);outline-offset:3px}.nutcracker-arm{transform-box:fill-box;transform-origin:50% 8%}.globe-snow{transform-origin:310px 300px}.globe-flake{opacity:.6;animation:globe-fall var(--snow-time,10s) linear var(--snow-delay,0s) infinite}.globe-shaking .globe-flake{animation-duration:1.3s;opacity:.95}.motion-controls{display:flex;align-items:center;gap:22px}.motion-controls>button:first-child{color:#596f51}.hero-bottom .motion-controls #motion-toggle>span:first-child{font-family:var(--sans);font-size:12px;color:#8e9d79}.motion-controls button:disabled{opacity:.65}.motion-ready.motion-on .hero-copy>.eyebrow,.motion-ready.motion-on .hero-copy>.hero-overline,.motion-ready.motion-on .hero-copy>h1,.motion-ready.motion-on .hero-copy>.hero-tagline,.motion-ready.motion-on .hero-copy>.hero-desc,.motion-ready.motion-on .hero-copy>.hero-ctas,.motion-ready.motion-on .hero-copy>.hero-footnote{animation:festive-arrival .75s cubic-bezier(.2,.7,.25,1) both}.motion-ready.motion-on .hero-copy>.hero-overline{animation-delay:.08s}.motion-ready.motion-on .hero-copy>h1{animation-delay:.15s}.motion-ready.motion-on .hero-copy>.hero-tagline{animation-delay:.23s}.motion-ready.motion-on .hero-copy>.hero-desc{animation-delay:.3s}.motion-ready.motion-on .hero-copy>.hero-ctas{animation-delay:.37s}.motion-ready.motion-on .hero-copy>.hero-footnote{animation-delay:.43s}
.motion-ready.motion-on .reveal-target{opacity:0;transform:translateY(18px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms)}.motion-ready.motion-on .reveal-target.is-visible{opacity:1;transform:translateY(0)}.motion-on .ornament{transform-origin:50% -65px;animation:bauble-sway 9s ease-in-out infinite}.motion-on .ornament i{animation:twinkle 5s ease-in-out infinite}.motion-on .visit-star{animation:twinkle 5.5s ease-in-out -2s infinite}.motion-on .garland i{animation:fairy-glow 4s ease-in-out infinite}.motion-on .garland i:nth-child(even){animation-delay:-2s}.motion-on .steam{animation:gentle-steam 4s ease-in-out infinite}.motion-on .food-spark,.motion-on .play-spark{animation:twinkle 5s ease-in-out infinite}.motion-on .s2{animation-delay:-2s}.experience-card .card-art{transition:transform .45s cubic-bezier(.2,.7,.25,1)}.experience-card .game-ticket{transition:transform .45s cubic-bezier(.2,.7,.25,1)}.steps .step-line{position:relative;overflow:hidden}.steps .step-line:after{content:'';position:absolute;inset:0;background:#819768;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.25,1)}.steps[data-current="2"] .step-line:nth-child(2):after,.steps[data-current="3"] .step-line:after{transform:scaleX(1)}.counter output{display:inline-block}.summary-total strong{font-variant-numeric:tabular-nums}.digital-pass{transform-origin:50% 0}.pass-snow{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.pass-snow span{position:absolute;left:var(--flake-x);top:25%;font-size:15px;color:#b7c5a7;opacity:0;animation:pass-flurry 1.5s ease-out var(--flake-delay,0s) both}.confirmed-stars span{color:#c2a163}
@media(hover:hover) and (pointer:fine){.motion-on .experience-card:hover .t1{transform:translate(-5px,-4px) rotate(-22deg)}.motion-on .experience-card:hover .t2{transform:translate(5px,-4px) rotate(16deg)}.motion-on .experience-card:hover .card-art{transform:scale(1.015)}}
@keyframes fairy-glow{0%,100%{opacity:.55;filter:drop-shadow(0 0 0 transparent)}50%{opacity:1;filter:drop-shadow(0 0 3px #e6bf73)}}
@keyframes ornament-sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes bauble-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes festive-arrival{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@keyframes globe-fall{from{transform:translate(var(--snow-drift,0px),-130px)}to{transform:translate(calc(var(--snow-drift,0px) * -1),440px)}}
@keyframes gentle-steam{0%,100%{opacity:.25;transform:translateY(3px) rotate(90deg)}50%{opacity:.65;transform:translateY(-6px) rotate(90deg)}}
@keyframes pass-flurry{0%{opacity:0;transform:translateY(-10px) rotate(0deg)}15%{opacity:.7}100%{opacity:0;transform:translateY(170px) rotate(65deg)}}
@media(max-width:800px){.hanging-ornaments i{left:1%;width:15px;opacity:.65}.hanging-ornaments i:nth-child(3){right:1%;height:75px}.hanging-ornaments i:nth-child(3):before{height:53px}.hanging-ornaments i:nth-child(2){display:none}.globe-hint{opacity:1;font-size:7px;padding:6px 9px}.motion-controls{gap:15px}}
@media(max-width:600px){.fairy-strand{bottom:-9px;height:21px}.hanging-ornaments i{height:55px;left:4%}.hanging-ornaments i:before{height:35px}.hanging-ornaments i:after{width:13px;height:17px}.hanging-ornaments i:nth-child(3){right:4%;height:67px}.hanging-ornaments i:nth-child(3):before{height:46px}.hanging-ornaments i:nth-child(3):after{width:15px;height:19px}.hero-bottom{align-items:flex-start}.hero-bottom>span{max-width:115px}.motion-controls{align-items:flex-end;flex-wrap:wrap;justify-content:flex-end;gap:9px 13px}.motion-controls button{min-height:24px}.hero-bottom button{font-size:7px}.hero-bottom .motion-controls #motion-toggle>span:first-child{font-size:10px}.globe-hint{bottom:5%;font-size:7px}.globe-stage .globe-tilt{transform:none}.motion-ready.motion-on .reveal-target{transform:translateY(12px)}.motion-ready.motion-on .reveal-target.is-visible{transform:translateY(0)}}
.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important}.motion-off .reveal-target{opacity:1!important;transform:none!important}.motion-off .globe-tilt{transform:none!important}.motion-off .pass-snow{display:none}.motion-hidden *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-target{opacity:1!important;transform:none!important}.globe-tilt{transform:none!important}.globe-flake,.pass-snow{display:none!important}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.fairy-strand,.hanging-ornaments,.pass-snow,.motion-controls,.globe-trigger,.nutcracker-trigger{display:none!important}.reveal-target{opacity:1!important;transform:none!important}}
