/* Illustrated Christmas edition. All assets and overrides belong to index5.html. */
:root{--bg:#0b241e;--deep:#081c17;--cream:#fff5df;--gold:#e3bc79;--muted:#d1d7ca;--red:#a72e35;--display:Georgia,'Times New Roman',serif;--section:clamp(72px,8vw,124px);--radius:6px}
.display{font-weight:400;text-transform:none;letter-spacing:-.05em;line-height:1.04}.display em{font-weight:400;color:var(--gold)}
.section-title{font-size:clamp(2.7rem,5.4vw,5.6rem)}
.button{border-radius:3px;letter-spacing:.09em;gap:22px}.button:not(.button-outline){background:var(--red);color:var(--cream)}.button:not(.button-outline):hover{background:#c13b42}
.site-header{background:linear-gradient(#081c17bb,transparent)}.nav{min-height:88px;width:min(100% - 80px,1440px)}.brand-mark{font-family:Georgia,serif;font-weight:400;letter-spacing:-.08em}.nav-links .button{background:var(--cream);color:var(--deep)}
.hero{min-height:850px;min-height:max(800px,100svh)}.hero-world{inset:-2%;background:#102b2c}.hero-art{width:100%;height:100%;object-fit:cover;object-position:center 60%}.hero::after{background:linear-gradient(90deg,#061914d9 0%,#06191494 30%,#06191412 65%),linear-gradient(0deg,var(--bg),transparent 22%,transparent 80%,#081c1755)}
.hero-content{padding-block:150px 140px}.hero-topline{margin-bottom:26px}.hero-topline::before{display:none}.hero-topline .eyebrow{color:#f1d5a0;letter-spacing:.24em}.hero-title{font-size:clamp(6rem,11.5vw,11rem);line-height:.79;letter-spacing:-.065em;max-width:670px}.hero-title .title-middle{font-family:Georgia,serif;font-style:italic;font-size:.30em;letter-spacing:-.035em;line-height:1.8;margin-left:1.55em;color:var(--cream)}.title-middle::after{display:none}.hero-title .loose{margin-left:0;position:relative}.title-star{display:inline-block;font-size:.23em;color:var(--gold);vertical-align:top;margin:.25em 0 0 .35em;animation:star-breathe 5s ease-in-out infinite}.hero-subtitle{font-family:Georgia,serif;font-style:italic;font-size:clamp(1.1rem,2vw,1.45rem);letter-spacing:0;margin-top:26px}.hero-date{margin-top:22px;font-size:.68rem;letter-spacing:.16em}.hero-tagline{font-size:.9rem;line-height:1.7;color:#e3e4d8}.hero-actions{margin-top:26px}.hero-caption{writing-mode:horizontal-tb;text-align:right;bottom:110px;font-family:Georgia,serif;font-style:italic;text-transform:none;font-size:1.25rem;letter-spacing:0;line-height:1.4;color:var(--cream)}.hero-bottom{bottom:22px}.floating-ticket{display:none}
.shows-section{background:#f5efdf;color:#173b30;border:0;--muted:#59665a;--gold:#915b35}.shows-section .section-title em{color:#a33737}.shows-section .ticket-grid{gap:16px}.shows-section .ticket-card{background:#fffaf0;border:1px solid #254a3233;color:#173b30;border-radius:3px;min-height:280px;padding:28px}.ticket-date{font-family:Georgia,serif;font-weight:400;text-transform:none;letter-spacing:-.05em}.shows-section .ticket-time{color:#a33737}.shows-section .ticket-bottom{border-color:#254a3233}.shows-section .ticket-help{color:#59665a}.shows-section .ticket-status{color:#8a3030}.heading-aside{max-width:235px}.ticket-card::after{display:none}.ticket-card:hover{box-shadow:0 12px 30px #102b2014}
.story-section{background:var(--bg)}.story-layout{grid-template-columns:.9fr 1.1fr;gap:70px}.story-copy{max-width:490px}.story-copy p:not(.eyebrow){font-size:1rem;line-height:1.9}.story-picture{position:relative;margin:0;padding:12px;background:#f5efdf;transform:rotate(2deg);color:var(--deep);box-shadow:0 24px 70px #0004}.story-picture img{width:100%;aspect-ratio:1.15;object-fit:cover;display:block}.story-picture figcaption{display:flex;justify-content:space-between;gap:20px;padding:18px 7px 7px;font-size:.58rem;font-weight:700;letter-spacing:.12em}.postcard-stamp{position:absolute;right:-20px;top:-28px;width:112px;height:112px;border-radius:50%;background:#a63038;border:5px double #edd6a5;display:grid;align-content:center;text-align:center;color:var(--cream);font-family:Georgia,serif;font-size:1rem;line-height:1.2;transform:rotate(12deg)}
.big-moment{background:#8c2830;padding-block:70px;text-align:center;border:0}.big-moment::before{background:radial-gradient(ellipse at center,#d765491a,transparent)}.big-copy{font-size:clamp(2.2rem,4.8vw,5rem)}.big-copy span{display:inline}.big-copy .soft{color:#f2cdbc}.big-copy span:last-child{display:block;font-style:italic}.moment-note{color:#f3d9c9}
.experience-grid{gap:36px}.experience-card{border-color:#e7be6940}.experience-card .icon{margin-bottom:28px}.experience-card h3{font-size:.72rem}.experience-card p{font-size:.88rem}.trailer-screen{aspect-ratio:2.15;border-radius:4px;isolation:isolate}.trailer-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;z-index:-2;transition:transform 1.2s ease}.trailer-screen::before{background:#04161266;transform:none;z-index:-1}.trailer-screen:hover .trailer-art{transform:scale(1.035)}.trailer-watermark{display:none}.play-circle{background:#fff5df16;backdrop-filter:blur(8px)}.trailer-heading h2{font-size:2.6rem}
.message-section{background:#f5efdf;color:#173b30}.message-section .display{font-size:clamp(2.8rem,5.8vw,6rem)}.message-section .display em{color:#a33737}.message-section .icon{color:#a33737}.message-lines{color:#475c4b}.message-invitation{color:#5d6a5a}.location-copy h2{font-size:clamp(2.8rem,5vw,5rem)}.map-art{border-radius:4px}.final-section{background:#112f25}.final-heading h2{font-size:clamp(3rem,6.5vw,6.5rem)}.compact .ticket-card{background:#15382c}.footer{background:#081c17}.dialog-inner .display{letter-spacing:-.03em;font-size:2.3rem}
@keyframes star-breathe{50%{opacity:.5;transform:rotate(12deg) scale(.9)}}
@media(min-width:1600px){.hero-art{object-position:center 65%}}
@media(max-width:1000px){.nav{width:calc(100% - 40px)}.nav-links{gap:18px}.story-layout{gap:38px}.postcard-stamp{right:-10px}.hero-caption{display:none}.hero-title{font-size:clamp(6rem,13vw,9rem)}}
@media(max-width:900px){.story-layout{grid-template-columns:1fr}.story-copy{max-width:650px}.story-picture{max-width:650px;margin:20px auto 0;width:95%}.story-picture img{aspect-ratio:1.5}.hero-art{object-position:62% center}.hero::after{background:linear-gradient(90deg,#061914e0,#06191466 60%,#06191422),linear-gradient(0deg,var(--bg),transparent 35%)}.shows-section .ticket-card{min-height:265px}}
@media(max-width:640px){.nav{min-height:72px}.nav-links.open{background:#081c17}.hero{min-height:940px;align-items:start}.hero-world{inset:0;transform:none!important}.hero-art{height:63%;position:absolute;bottom:0;object-position:68% center}.hero::after{background:linear-gradient(180deg,#0b241e 0%,#0b241e 28%,#0b241e99 45%,#0b241e00 66%,#0b241e 100%)}.hero-content{padding-top:115px;padding-bottom:340px}.hero-title{font-size:clamp(5.3rem,22vw,8rem);line-height:.79}.hero-topline{margin-bottom:26px}.hero-topline .eyebrow{font-size:.58rem}.hero-title .title-middle{line-height:1.5}.hero-subtitle{font-size:1.06rem;margin-top:20px}.hero-tagline{font-size:.82rem;margin-top:16px}.hero-date{margin-top:18px;font-size:.61rem}.hero-actions{gap:10px;margin-top:20px}.hero-actions .button{padding:13px 17px;font-size:.60rem;gap:12px;flex:0 1 auto}.hero-bottom{font-size:.5rem;bottom:28px}.hero-bottom>span{max-width:110px;text-align:right}.shows-section .ticket-grid:not(.compact){display:grid;grid-template-columns:1fr 1fr;overflow:visible;margin:0;padding:0}.shows-section .ticket-card{padding:21px 16px;min-height:235px}.ticket-date{font-size:2.5rem}.ticket-day{font-size:.58rem}.ticket-time{font-size:.85rem}.ticket-bottom{font-size:.54rem;gap:7px;padding-top:20px}.ticket-time+.ticket-bottom{margin-top:25px}.swipe-hint{display:none}.heading-row{gap:20px}.heading-aside{max-width:100%;font-size:.85rem}.story-picture figcaption{font-size:.48rem;letter-spacing:.06em}.postcard-stamp{width:85px;height:85px;font-size:.8rem}.trailer-screen{aspect-ratio:1.35}.trailer-heading{align-items:start;flex-direction:column;gap:12px}.trailer-corner{font-size:.5rem}.experience-grid{gap:24px}.big-moment{padding-block:55px}.big-copy span{display:block}.moment-note{font-size:.56rem}.message-lines{font-size:1.1rem}.mobile-ticket{background:#a72e35;color:#fff5df}.mobile-ticket>span:last-child{border-color:#fff5df66}.compact .ticket-card{padding:20px 16px}.compact .ticket-date{font-size:2.4rem}.compact .ticket-bottom{font-size:.53rem}.section-title{font-size:clamp(2.5rem,9vw,3.6rem)}}
@media(prefers-reduced-motion:reduce){.story-picture{transform:none}.trailer-screen:hover .trailer-art{transform:none}*,*::before,*::after{animation:none!important}}
/* Override the original horizontal carousel's more-specific mobile sizing. */
@media(max-width:640px){
 .shows-section .ticket-grid:not(.compact) .ticket-card{min-height:235px;min-width:0}
 .shows-section .ticket-grid:not(.compact) .ticket-date{font-size:clamp(1.85rem,7.6vw,2.8rem)}
 .hero-world{opacity:1}
 .hero-actions{flex-direction:row;flex-wrap:wrap;max-width:100%}
 .hero-tagline{max-width:100%}
}
/* Snow remains behind content and cannot intercept touches or clicks. */
#snow{z-index:0;opacity:.9}
.hero-content,.hero-bottom,.hero-caption{z-index:1}
.christmas-pointer{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.christmas-pointer{display:none}}
/* Christmas cards: light catches the paper as each card lifts. */
.ticket-card{isolation:isolate;transition:transform 450ms var(--ease),border-color 300ms,box-shadow 450ms}
.ticket-card::after{display:block;inset:-70% auto -70% -100%;width:45%;height:auto;background:linear-gradient(90deg,transparent,#e7be6940,transparent);transform:rotate(25deg);transition:left 850ms var(--ease);pointer-events:none}
.ticket-card:focus-visible::after{left:150%}
.ticket-card .ticket-date{transition:color 300ms}
.experience-card{position:relative;padding:30px 18px 22px;border-radius:6px;transition:background 350ms,box-shadow 350ms}
.experience-card::after{content:'';position:absolute;left:18px;right:18px;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 500ms var(--ease)}
.experience-card .icon{transition:transform 500ms var(--ease),filter 500ms}
.story-picture{overflow:hidden}
.story-picture img{clip-path:inset(0);transform-origin:center;transition:filter 500ms}
.story-picture figcaption{position:relative;z-index:1;background:#f5efdf}
.postcard-stamp{right:14px;top:14px;z-index:2}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#a72e35,#e3bc79,#fff5df);transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}
.js .reveal{transform:translateY(38px);transition:opacity 950ms var(--ease),transform 1100ms var(--ease);transition-delay:var(--delay,0ms)}
.js .story-picture.reveal{transform:translateY(48px) rotate(-3deg) scale(.97)}
.js .story-picture.reveal.is-visible{transform:translateY(0) rotate(2deg) scale(1)}
.js .experience-card.reveal{transform:translateY(42px)}
.js .experience-card.reveal.is-visible{transform:translateY(0)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .ticket-card:hover{--lift:-10px;box-shadow:0 22px 42px #0002}
 .ticket-card:hover::after{left:150%}
 .shows-section .ticket-card:hover .ticket-date{color:#a33737}
 .experience-card:hover{background:#e7be690b;box-shadow:0 16px 35px #0002}
 .experience-card:hover::after{transform:scaleX(1)}
 .experience-card:hover .icon{transform:translateY(-6px) rotate(-8deg) scale(1.12);filter:drop-shadow(0 5px 10px #e7be6955)}
 .story-picture:hover img{filter:brightness(1.06)}
}
@media(max-width:640px){.experience-card{padding-inline:0}.experience-card::after{left:0;right:0}.js .reveal{transform:translateY(24px)}}
@media(prefers-reduced-motion:reduce){
 .js .reveal,.js .story-picture.reveal,.js .story-picture.reveal.is-visible,.js .experience-card.reveal{opacity:1;transform:none}
 .ticket-card::after,.reading-progress{display:none}
 .story-picture img{transform:none!important}
}
/* The journey unfolds line by line when the story enters the viewport. */
.journey-title{position:relative;font-size:clamp(2.4rem,4.5vw,4.8rem);padding-bottom:24px}
.journey-line{display:block;overflow:hidden;padding-bottom:.12em}
.journey-line>span,.journey-line>em{display:block}
.journey-title::after{content:'';position:absolute;left:0;bottom:0;width:100px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);transform-origin:left}
.journey-spark{display:inline-block;position:absolute;left:110px;bottom:-10px;font-size:24px;color:var(--gold)}
@media(prefers-reduced-motion:no-preference){
 .js .journey-title.reveal{opacity:1;transform:none}
 .js .journey-title:not(.is-visible) .journey-line>span,.js .journey-title:not(.is-visible) .journey-line>em{opacity:0;transform:translateY(115%) rotate(3deg)}
 .js .journey-title.is-visible .journey-line>span{animation:journey-unfold 1000ms cubic-bezier(.16,1,.3,1) both}
 .js .journey-title.is-visible .journey-line>em{animation:journey-unfold 1100ms cubic-bezier(.16,1,.3,1) 180ms both}
 .js .journey-title:not(.is-visible)::after{transform:scaleX(0)}
 .js .journey-title.is-visible::after{animation:journey-route 900ms ease 500ms both}
 .js .journey-title:not(.is-visible) .journey-spark{opacity:0}
 .js .journey-title.is-visible .journey-spark{animation:journey-spark 1100ms ease 750ms both}
}
@keyframes journey-unfold{from{opacity:0;transform:translateY(115%) rotate(3deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes journey-route{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes journey-spark{from{opacity:0;transform:translateX(-30px) rotate(-90deg) scale(.3)}to{opacity:1;transform:translateX(0) rotate(0) scale(1)}}
@media(max-width:640px){.journey-title{font-size:clamp(2rem,8.5vw,3.4rem)}}
