
/* Hero motion CSS — source zip */
/* Typography from Figma: 92:1270, 187:354, 199:575. Local to this section. */
.lm-hero{
 --lm-p:0;--lm-open:0;--lm-letter:0;--lm-release:0;--lm-world:0;--lm-exit:0;--lm-edge-shade:0;
 --lm-color-bg:#03153a;--lm-color-shade:#050e26;--lm-color-text:#f7f8fd;--lm-color-secondary:#bac2d9;
 --lm-button-glow:0 0 12px 0 rgba(118,187,222,.12),0 0 38px 4px rgba(118,187,222,.12);
 --lm-button-glow-hover:0 0 14px 1px rgba(118,187,222,.12),0 0 44px 5px rgba(118,187,222,.12);
 --lm-font:Montserrat,Arial,sans-serif;
 --lm-nav-size:14px;--lm-nav-line:1.43;--lm-lead-size:20px;--lm-lead-line:1.5;
 --lm-body-size:16px;--lm-body-line:1.62;--lm-button-size:16px;--lm-button-line:1.5;--lm-button-weight:600;
 --lm-fallback-width:min(44vw,530px);--lm-envelope-centre:45vh;
 position:relative;width:100%;height:780vh;height:780svh;margin:0;padding:0;isolation:isolate;
 background:var(--lm-color-bg);color:var(--lm-color-text);font:400 14px/1.5 var(--lm-font);-webkit-font-smoothing:antialiased;
}
.lm-hero *,.lm-hero *::before,.lm-hero *::after{box-sizing:border-box}
.lm-hero [hidden]{display:none!important}
.lm-hero .lm-hero-stage{position:absolute;left:0;top:0;width:100%;height:100vh;height:100svh;min-height:480px;overflow:hidden;background:var(--lm-color-bg);isolation:isolate}
.lm-hero.lm-hero-pinned .lm-hero-stage{position:fixed;top:0;left:var(--lm-left,0px);width:var(--lm-width,100%)}
.lm-hero.lm-hero-after .lm-hero-stage{top:auto;bottom:0}
.lm-hero .lm-hero-night,.lm-hero .lm-hero-world{position:absolute;pointer-events:none}
.lm-hero .lm-hero-night{inset:-2%;background:#03132e url("assets/motion/bg-sky.jpg") center 58%/cover no-repeat;transform:scale(calc(1.015 + var(--lm-open)*.018));opacity:calc(1 - var(--lm-world))}
.lm-hero .lm-hero-world{left:0;top:0;background:url("assets/motion/bg.jpg") center/100% 100% no-repeat;will-change:transform;opacity:0}
.lm-hero .lm-hero-snow-art{position:absolute;inset:-5%;z-index:4;pointer-events:none;overflow:hidden;opacity:.66}
.lm-hero .lm-hero-snow-art img{display:block;width:100%;height:100%;object-fit:cover;animation:lm-hero-snow-art 28s ease-in-out infinite alternate}
/* Both edge gradients are driven by the same progress as the arriving trees. */
.lm-hero .lm-hero-header-gradient{position:absolute;z-index:10;inset:0 0 auto;height:210px;pointer-events:none;background:linear-gradient(180deg,#050e26e6,#050e2699 46%,#050e2600);opacity:var(--lm-edge-shade)}
/* Equal outer columns keep the navigation centred independently of the logo and CTA. */
.lm-hero .lm-hero-header{position:absolute;z-index:15;left:50%;top:0;transform:translateX(-50%);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;max-width:1440px;height:96px;padding:0 clamp(24px,6.1111vw,88px);gap:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.lm-hero .lm-hero-brand{position:relative;z-index:3;display:block;justify-self:start;line-height:0}
.lm-hero .lm-hero-logo{display:block;width:164.969px;height:50.006px}
.lm-hero .lm-hero-nav{display:flex;align-items:center;justify-content:center;gap:24px;width:auto;margin:0}
.lm-hero .lm-hero-nav a,.lm-hero .lm-hero-header-tickets{color:var(--lm-color-secondary);text-decoration:none;font-size:var(--lm-nav-size);line-height:var(--lm-nav-line);font-weight:500;white-space:nowrap}
.lm-hero .lm-hero-nav a:hover{color:#fff}
.lm-hero .lm-hero-nav a:focus-visible,.lm-hero .lm-hero-header-tickets:focus-visible,.lm-hero .lm-hero-brand:focus-visible,.lm-hero .lm-hero-menu-toggle:focus-visible{outline:2px solid #d4b980;outline-offset:6px;border-radius:3px}
.lm-hero .lm-hero-header-end{position:relative;z-index:3;display:flex;align-items:center;justify-content:flex-end;justify-self:end;gap:16px;margin:0;min-width:0}
.lm-hero .lm-hero-header-tickets{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 24px;border-radius:999px;background:#f2e8d5;box-shadow:var(--lm-button-glow);color:#03153a;font-size:16px;line-height:1.5;font-weight:600;letter-spacing:.01em;transition:box-shadow .2s}
.lm-hero .lm-hero-header-tickets:hover{color:#03153a;box-shadow:var(--lm-button-glow-hover)}
.lm-hero .lm-hero-age{color:var(--lm-color-secondary);font-size:14px;line-height:1.43;font-weight:500;white-space:nowrap}
.lm-hero .lm-hero-menu-toggle,.lm-hero .lm-hero-menu-deer,.lm-hero .lm-hero-menu-footer,.lm-hero .lm-hero-nav-chevron{display:none}
.lm-hero .lm-hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:5;pointer-events:none;opacity:0}
.lm-hero[data-lm-renderer="webgl"] .lm-hero-canvas{opacity:1}
.lm-hero .lm-hero-contact-shadow{position:absolute;z-index:2;left:50%;top:calc(var(--lm-envelope-centre) + 18vh);width:min(420px,42vw);height:19px;border-radius:50%;background:#0008;filter:blur(16px);transform:translateX(-50%);opacity:calc(.4*(1 - var(--lm-exit)))}
.lm-hero .lm-hero-object-button{position:absolute;z-index:8;left:50%;top:var(--lm-envelope-centre);width:min(45vw,560px);height:39%;transform:translate(-50%,-50%);padding:0;margin:0;border:0;border-radius:10px;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.lm-hero .lm-hero-object-button:focus-visible{outline:1px solid #dfc18b;outline-offset:14px}
.lm-hero .lm-hero-footer{position:absolute;z-index:12;left:16px;right:16px;bottom:40px;display:flex;flex-direction:column;align-items:center;text-align:center}
.lm-hero .lm-hero-action{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:0;width:320px;max-width:100%;height:64px;padding:12px 32px;margin:0 0 24px;border:0;border-radius:999px;background:#03153a;box-shadow:var(--lm-button-glow);color:var(--lm-color-text);font:var(--lm-button-weight) var(--lm-button-size)/var(--lm-button-line) var(--lm-font);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:box-shadow .2s,transform .2s}
.lm-hero .lm-hero-action:hover{background:#03153a;box-shadow:var(--lm-button-glow-hover);transform:translateY(-1px)}
.lm-hero .lm-hero-action:active{transform:translateY(0)}
.lm-hero .lm-hero-action:disabled{cursor:default;transform:none}
.lm-hero .lm-hero-action:focus-visible{outline:2px solid #dfc18b;outline-offset:5px}
.lm-hero .lm-hero-date{width:100%;max-width:770px;margin:0;color:var(--lm-color-text);font-size:var(--lm-lead-size);line-height:var(--lm-lead-line);font-weight:400;letter-spacing:0}
.lm-hero .lm-hero-location{display:block;width:100%;max-width:770px;margin:8px 0 0;color:var(--lm-color-secondary);font-size:var(--lm-body-size);line-height:var(--lm-body-line);font-weight:400;letter-spacing:0;white-space:pre-wrap}
.lm-hero .lm-hero-cue{position:absolute;left:0;right:0;bottom:-25px;display:flex;align-items:center;justify-content:center;gap:11px;margin:0;color:#bac2d9b3;font-size:10px;line-height:14px;letter-spacing:.02em}
.lm-hero .lm-hero-cue-line{position:relative;height:15px;width:1px;background:#b8c7dc3d;overflow:hidden}
.lm-hero .lm-hero-cue-line::after{content:"";position:absolute;inset:-100% 0 100%;background:#dcecff;animation:lm-hero-cue 2.8s ease-in-out infinite}
.lm-hero[data-lm-scene="poster"] .lm-hero-cue{display:none}
.lm-hero .lm-hero-bottom-light{position:absolute;z-index:7;inset:70% 0 0;pointer-events:none;background:linear-gradient(180deg,#050e2600,#050e26cc 72%,#050e26);opacity:var(--lm-edge-shade)}
.lm-hero .lm-hero-progress{position:absolute;z-index:14;bottom:0;left:0;right:0;height:2px;background:#b7d3df0b;pointer-events:none}
.lm-hero .lm-hero-progress span{display:block;height:100%;background:#b0d5e7;opacity:.65;transform-origin:0 50%;transform:scaleX(var(--lm-p))}
.lm-hero .lm-hero-snow{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.lm-hero .lm-hero-snow-near{z-index:9}
.lm-hero .lm-hero-flake{position:absolute;top:-15px;left:var(--lm-x);width:var(--lm-size);height:var(--lm-size);border-radius:50%;background:#e3f3ff;opacity:0;animation:lm-hero-fall var(--lm-duration) var(--lm-delay) linear infinite;will-change:transform}
.lm-hero .lm-hero-snow-near .lm-hero-flake{filter:blur(.7px)}
.lm-hero[data-lm-paused] .lm-hero-snow-art img,.lm-hero[data-lm-paused] .lm-hero-lantern-glow,.lm-hero[data-lm-paused] .lm-hero-flake,.lm-hero[data-lm-paused] .lm-hero-cue-line::after{animation-play-state:paused}
.lm-hero .lm-hero-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;margin:-1px!important;padding:0!important}
.lm-hero .lm-hero-nojs{position:absolute;z-index:20;bottom:0;left:0;right:0;margin:0;padding:12px;background:#03153a;color:#e2d0ab;text-align:center}
/* DOM fallback retains the same composition and reversible controls. */
.lm-hero .lm-hero-fallback{position:absolute;z-index:5;top:calc(var(--lm-envelope-centre) + var(--lm-open)*var(--lm-fallback-width)*.195);left:50%;width:var(--lm-fallback-width);aspect-ratio:1030/668;transform:translate(-50%,-50%) rotateZ(calc(-2deg + var(--lm-open)*2deg));perspective:1100px;transform-style:preserve-3d;pointer-events:none;opacity:calc(1 - var(--lm-exit));translate:0 calc(var(--lm-exit)*-110vh)}
.lm-hero[data-lm-renderer="webgl"] .lm-hero-fallback{display:none}
.lm-hero .lm-hero-fallback-back,.lm-hero .lm-hero-fallback-pocket,.lm-hero .lm-hero-fallback-flap{position:absolute;inset:0;background:url("assets/motion/envelope-surface.webp") center/100% 100% no-repeat}
.lm-hero .lm-hero-fallback-back{transform:translateZ(-3px);filter:brightness(.7)}
.lm-hero .lm-hero-fallback-pocket{clip-path:polygon(0 0,49% 55%,100% 0,100% 100%,0 100%);transform:translateZ(3px)}
.lm-hero .lm-hero-fallback-flap{clip-path:polygon(0 0,100% 0,49% 55%);transform-origin:50% 0;transform:translateZ(5px) rotateX(calc(var(--lm-open)*-177deg));backface-visibility:visible}
.lm-hero .lm-hero-fallback-paper{position:absolute;left:8.3%;top:18%;width:83.3%;height:auto;transform:translateY(calc(var(--lm-letter)*-62%)) translateZ(0)}
.lm-hero .lm-hero-fallback-wax{position:absolute;left:38.5%;top:37%;width:23%;height:auto;transform:translate3d(calc(var(--lm-release)*70px),calc(var(--lm-release)*130px),20px) rotateZ(calc(var(--lm-release)*50deg));opacity:calc(1 - var(--lm-release))}
.lm-hero .lm-hero-story{position:absolute;inset:0;z-index:6;pointer-events:none}
.lm-hero .lm-hero-story-frame{position:absolute;left:50%;top:50%;width:1440px;height:932px;transform-origin:50% 50%;perspective:1600px}
.lm-hero .lm-hero-story-layer{position:absolute;left:0;top:0;margin:0;padding:0;max-width:none;opacity:0;transform-origin:50% 50%;backface-visibility:hidden;will-change:transform,opacity}
.lm-hero .lm-hero-story-layer>img{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none}
.lm-hero .lm-hero-story-canvas{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.lm-hero[data-lm-story-renderer="webgl"] .lm-hero-story-canvas{display:block}
.lm-hero[data-lm-story-renderer="webgl"] .lm-hero-story-layer{visibility:hidden}
.lm-hero [data-lm-layer="hero"],.lm-hero [data-lm-layer="cright"]{-webkit-mask-image:linear-gradient(#000 86%,transparent);mask-image:linear-gradient(#000 86%,transparent)}
.lm-hero .lm-hero-lantern-glow{position:absolute;display:block;border-radius:50%;background:#ffc66c;filter:blur(23px);mix-blend-mode:screen;transform:translate(-50%,-50%);opacity:0;animation:lm-hero-lantern 3.6s ease-in-out infinite alternate;pointer-events:none}
.lm-hero .lm-hero-replay{position:absolute;z-index:14;left:28px;bottom:14px;color:#bac2d9;background:transparent;border:0;padding:4px 0;font:400 10px/1.4 var(--lm-font);cursor:pointer}
.lm-hero .lm-hero-replay:focus-visible{outline:2px solid #dfc18b;outline-offset:5px}
@keyframes lm-hero-fall{0%{transform:translate3d(0,-10px,0);opacity:0}10%,85%{opacity:var(--lm-alpha)}100%{transform:translate3d(var(--lm-drift),110vh,0);opacity:0}}
@keyframes lm-hero-cue{0%,15%{transform:translateY(0)}65%,100%{transform:translateY(240%)}}
@keyframes lm-hero-snow-art{from{transform:translate3d(-.7%,-1.5%,0)}to{transform:translate3d(.7%,1.5%,0)}}
@keyframes lm-hero-lantern{from{filter:blur(23px);scale:.96}to{filter:blur(26px);scale:1.04}}
@media(max-width:1100px){
 .lm-hero .lm-hero-header{padding:0 24px}
 .lm-hero .lm-hero-logo{width:132px;height:40px}
 .lm-hero .lm-hero-nav{gap:20px}
 .lm-hero .lm-hero-nav a{font-size:12px}
 .lm-hero .lm-hero-header-tickets{font-size:14px;padding:0 20px}
}
@media(max-width:820px){
 .lm-hero .lm-hero-header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:none;height:40px;top:0;left:0;right:0;transform:none;padding:8px}
 .lm-hero .lm-hero-header-gradient{height:150px}
 .lm-hero .lm-hero-brand{display:none;flex:none}
 .lm-hero .lm-hero-logo{width:79.175px;height:24px}
 .lm-hero .lm-hero-header-end{width:auto;margin:0 0 0 auto;gap:0}
 .lm-hero .lm-hero-age,.lm-hero .lm-hero-header-tickets{display:none}
 .lm-hero .lm-hero-menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;margin:-8px;border:0;background:transparent;cursor:pointer}
 .lm-hero .lm-hero-menu-toggle img{display:block;width:24px;height:24px}
 .lm-hero .lm-hero-menu-toggle .lm-hero-icon-close{display:none}
 .lm-hero .lm-hero-nav{display:none;position:fixed;inset:0;z-index:1;width:100%;height:100vh;height:var(--lm-stage-height,100svh);margin:0;padding:48px 8px 0;background:#03153a url("assets/motion/bg-sky.jpg") center/cover no-repeat;overflow:auto;overscroll-behavior:contain}
 .lm-hero .lm-hero-nav>a[data-lm-nav]{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;width:100%;height:56px;border-bottom:1px solid #425174;font-size:20px;line-height:1.24;font-weight:500;color:#f7f8fd}
 .lm-hero .lm-hero-nav-chevron{display:block;flex:none;margin:0 8px;width:8.75px;height:16.25px}
 .lm-hero .lm-hero-menu-deer{display:block;position:absolute;left:calc(50% - 147.5px);top:calc(50% - 32px);width:300px;height:auto;pointer-events:none}
 .lm-hero .lm-hero-menu-footer{display:flex;flex-direction:column;align-items:center;position:absolute;left:8px;right:8px;bottom:max(24px,env(safe-area-inset-bottom));z-index:2;text-align:center}
 .lm-hero .lm-hero-menu-footer .lm-hero-location{font-size:var(--lm-body-size);line-height:var(--lm-body-line);font-weight:400;text-decoration:underline;white-space:pre-wrap}
 .lm-hero[data-lm-menu-open] .lm-hero-nav{display:block}
 .lm-hero[data-lm-menu-open] .lm-hero-brand,.lm-hero[data-lm-header-scrolled] .lm-hero-brand{display:block}
 .lm-hero[data-lm-menu-open] .lm-hero-header,.lm-hero[data-lm-header-scrolled] .lm-hero-header{height:48px}
 .lm-hero[data-lm-menu-open] .lm-hero-icon-menu{display:none}
 .lm-hero[data-lm-menu-open] .lm-hero-menu-toggle .lm-hero-icon-close{display:block}
 .lm-hero[data-lm-menu-open] .lm-hero-header,.lm-hero[data-lm-header-scrolled] .lm-hero-header{position:fixed;top:0;left:var(--lm-left,0);width:var(--lm-width,100%)}
}
@media(max-width:600px), (max-width:1000px) and (max-aspect-ratio:4/5){
 .lm-hero{height:620vh;height:620svh;--lm-lead-size:17px;--lm-body-size:13px;--lm-body-line:1.57;--lm-button-size:15px;--lm-fallback-width:78vw}
 .lm-hero .lm-hero-footer{left:8px;right:8px;bottom:max(24px,env(safe-area-inset-bottom))}
 .lm-hero .lm-hero-action{width:100%;max-width:560px;height:60px;margin-bottom:16px}
 .lm-hero .lm-hero-location{margin-top:4px}
 .lm-hero .lm-hero-cue{font-size:9px;bottom:-21px}
 .lm-hero .lm-hero-object-button{width:84vw;height:36%}
 .lm-hero .lm-hero-bottom-light{inset:62.85% 0 0;background:linear-gradient(180deg,#050e2600,#050e26f0 72%,#050e26)}
 .lm-hero .lm-hero-snow-art{inset:-5% -22%;opacity:.68}
 .lm-hero .lm-hero-snow-far .lm-hero-flake:nth-child(n+14),.lm-hero .lm-hero-snow-near .lm-hero-flake:nth-child(n+6){display:none}
 .lm-hero .lm-hero-replay{left:50%;bottom:5px;transform:translateX(-50%);font-size:9px;padding:0 8px}
}
@media(max-height:720px) and (min-width:821px){
 .lm-hero .lm-hero-action{height:60px;margin-bottom:22px}
 .lm-hero .lm-hero-footer{bottom:24px}
 .lm-hero .lm-hero-date{font-size:18px}
 .lm-hero .lm-hero-location{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
 .lm-hero{height:100vh;height:100svh}
 .lm-hero .lm-hero-flake,.lm-hero .lm-hero-cue-line{display:none;animation:none}
 .lm-hero .lm-hero-snow-art img,.lm-hero .lm-hero-lantern-glow{animation:none}
 .lm-hero .lm-hero-action{transition:none}
}

/* The original text artwork is retained; only its final period is masked. */
.lm-hero [data-lm-layer="tice"]{clip-path:polygon(0 0,100% 0,100% 28%,59.24% 28%,59.24% 31%,100% 31%,100% 100%,0 100%)}
