/*
Theme Name: Nightmare at Shanghai
Description: Halloween invitation and event landing page for Shanghai Lounge at The New Dim Sum King. Includes split-image entrance, animated bats, floating talisman, scrolling highlights, RSVP links, countdown, calendar download and background audio.
Version: 1.0.1
Author: Digi Reef Limited
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later (theme code)
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nightmare-at-shanghai
*/

:root{--bg:#060c16;--white:#f4f0e9;--muted:#a7b1be;--red:#ec333c;--blue:#70cef2;--line:rgba(148,187,213,.2)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--white);font-family:'Poppins',Arial,sans-serif;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 0 20%,#06314c88,transparent 55%),radial-gradient(ellipse at 100% 45%,#610b1b55,transparent 50%)}a{color:inherit}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--blue);outline-offset:6px}.shell{width:min(1240px,calc(100% - 80px));margin:auto}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--blue);line-height:1.7}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;min-height:48px;padding:16px 23px;border:1px solid #7a2831;background:transparent;color:var(--white);text-decoration:none;font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#b91d2b;transform:translateY(-2px)}.primary{background:#bb1a28;border-color:#e54a55;box-shadow:0 8px 40px #d2202820}.button .arrow{font-size:18px;line-height:10px}.textlink{font-size:11px;text-underline-offset:6px;color:#d5dce4;line-height:1.7}header{position:relative;z-index:5;border-bottom:1px solid var(--line);background:#060b13d9}nav{height:90px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font:500 13px 'Poppins',Arial,sans-serif;letter-spacing:.1em}.brand img{width:59px;height:59px;object-fit:contain}.brand small{display:block;font:8px 'Poppins',Arial,sans-serif;letter-spacing:.2em;color:var(--muted);margin-top:6px}.nav-actions{display:flex;gap:24px;align-items:center}.nav-actions>a:not(.button){font-size:10px;text-decoration:none;color:#bfcad6;letter-spacing:.08em}.hero{position:relative;padding:58px 0 70px;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 30% 35%,#124f6c40,transparent 60%),radial-gradient(ellipse at 95% 50%,#bc1a2633,transparent 45%)}.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}.hero-copy{padding:30px 0}.edition{display:flex;align-items:center;gap:14px}.edition:before{content:"";width:34px;height:1px;background:var(--red)}h1{font:600 clamp(45px,5.5vw,79px)/.97 'Poppins',Arial,sans-serif;text-transform:uppercase;letter-spacing:-.025em;margin:28px 0 20px;text-shadow:2px 2px 0 #52131e}h1 .nightmare{display:block;color:#f4e5e4;text-shadow:0 2px 0 #bd1c2a,0 5px 25px #ba10254d}h1 .at{display:block;font-size:.31em;letter-spacing:.33em;color:var(--red);margin:15px 0 11px}.chapter{display:flex;align-items:center;gap:18px;letter-spacing:.5em;font-size:11px;text-transform:uppercase;color:#c8d1da;margin:26px 0 34px}.chapter:after{content:"";width:62px;height:1px;background:var(--red)}.lead{color:#bdc7d1;max-width:415px;font-size:13px;line-height:1.9}.date-line{display:flex;gap:24px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:30px 0}.date-number{font:600 53px/.9 'Poppins',Arial,sans-serif;color:var(--white)}.date-meta{font-size:10px;letter-spacing:.12em;line-height:1.9;text-transform:uppercase}.date-meta strong{display:block;font-size:13px;font-weight:500;letter-spacing:.06em}.date-time{padding-left:24px;margin-left:auto;border-left:1px solid var(--line);font:500 22px 'Poppins',Arial,sans-serif;white-space:nowrap}.date-time span{font:9px 'Poppins',Arial,sans-serif;letter-spacing:.16em;display:block;color:var(--muted);margin-top:5px}.hero-cta{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.invitation{font-size:9px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-top:20px}.poster-wrap{position:relative;margin:0;max-width:548px;justify-self:end;transform:rotate(1deg)}.poster-wrap:before{content:"";position:absolute;inset:10% -12%;z-index:-1;filter:blur(55px);background:linear-gradient(110deg,#157cad5c,#b3122959)}.poster-wrap img{display:block;width:100%;height:auto;border:1px solid #668aa44d;box-shadow:0 30px 90px #0009}.poster-wrap figcaption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.18em;color:#8f9dac;padding-top:15px;text-transform:uppercase}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#060b12;display:flex;justify-content:center;gap:36px;padding:22px 20px;font:500 12px 'Poppins',Arial,sans-serif;letter-spacing:.12em;text-align:center;flex-wrap:wrap}.ticker span{color:var(--red)}section{padding:90px 0}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:43px}h2{font:500 clamp(36px,4.5vw,58px)/1.04 'Poppins',Arial,sans-serif;margin:14px 0;color:#f3e7e3}.section-title p{max-width:340px;color:var(--muted);font-size:12px;line-height:1.9}.night-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.night-item{border-top:1px solid #48708966;padding:26px 0 8px}.night-item:nth-child(2){border-color:#9c343d}.night-item .number{font:500 14px 'Poppins',Arial,sans-serif;color:var(--blue)}.night-item h3{font:500 28px 'Poppins',Arial,sans-serif;margin:24px 0 12px}.night-item p{font-size:12px;line-height:1.9;color:var(--muted);margin:0}.night-item .tag{display:inline-block;border:1px solid #80303b;color:#ff9da5;font-size:8px;letter-spacing:.15em;text-transform:uppercase;padding:7px 10px;margin-top:20px}.countdown-section{padding:44px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(110deg,#08253b66,#330c1766)}.countdown-row{display:flex;align-items:center;justify-content:space-between;gap:30px}.countdown-row h2{font-size:32px;margin:6px 0}.countdown{display:flex;gap:34px}.count-unit{text-align:center;min-width:56px}.count-unit strong{font:500 44px 'Poppins',Arial,sans-serif;font-variant-numeric:tabular-nums}.count-unit span{display:block;font-size:8px;color:var(--muted);letter-spacing:.15em;text-transform:uppercase}.reserve-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.venue{font-size:14px;line-height:1.9;margin:24px 0;color:#d9dfe5}.reserve-note{font-size:11px;line-height:1.9;color:var(--muted);max-width:405px}.reserve-box{position:relative;border:1px solid #67202d;background:radial-gradient(ellipse at top right,#68102055,transparent 70%),#0a101b;padding:45px}.reserve-box:before{content:"01";position:absolute;right:23px;top:18px;font:500 80px 'Poppins',Arial,sans-serif;color:#a732391c}.reserve-box h3{font:500 35px 'Poppins',Arial,sans-serif;margin:15px 0}.reserve-box p{font-size:12px;color:var(--muted);line-height:1.9;max-width:335px}.reserve-box .button{margin-top:14px}.personal{padding:70px 0;text-align:center;border-top:1px solid var(--line);background:radial-gradient(ellipse at center,#4a112440,transparent 70%)}.personal p{font-size:12px;color:var(--muted);line-height:1.9;max-width:530px;margin:20px auto 26px}.personal h2{font-size:clamp(38px,5vw,62px);overflow-wrap:anywhere}.personal .eyebrow{color:#eb858c}footer{border-top:1px solid var(--line);padding:30px 0;color:#7f91a4;font-size:9px;line-height:1.9}.foot{display:flex;justify-content:space-between;gap:24px;align-items:center}.foot a{color:#acbdca;text-underline-offset:4px}.music-toggle{position:fixed;right:16px;bottom:16px;width:42px;height:42px;border:1px solid #7b3541;border-radius:50%;background:#080c16e6;color:#f2c1c7;z-index:9;font-size:16px;cursor:pointer}.music-toggle.is-playing{background:#a31828;color:white}.gate{position:fixed;inset:0;display:grid;grid-template-columns:1fr 1fr;z-index:20;pointer-events:none;animation:hideGate .1s 1.6s forwards}.gate-panel{background:linear-gradient(130deg,#092d45,#060c16 70%);border-right:1px solid #43809955;animation:gateLeft 1.2s .35s forwards cubic-bezier(.7,0,.2,1)}.gate-panel:last-child{background:linear-gradient(220deg,#4a1120,#060c16 70%);border-left:1px solid #ab273955;animation-name:gateRight}.seal{position:fixed;z-index:21;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;pointer-events:none;animation:sealAway .4s .3s forwards}.seal img{width:100%;height:100%;object-fit:contain}@keyframes gateLeft{to{transform:translateX(-100%)}}@keyframes gateRight{to{transform:translateX(100%)}}@keyframes hideGate{to{visibility:hidden}}@keyframes sealAway{to{opacity:0;visibility:hidden}}.ambient{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,#9acdf208 50%,transparent 70%);background-size:200% 100%;animation:fog 18s ease-in-out infinite}@keyframes fog{50%{background-position:100% 0}}
@media(min-width:1500px){.hero{padding:70px 0 85px}.hero-grid{gap:100px}}
@media(max-width:1000px){.shell{width:calc(100% - 48px)}.hero-grid{gap:35px}.hero-copy{padding:15px 0}.date-line{gap:15px}.date-time{padding-left:15px;font-size:18px}.night-grid{gap:25px}.reserve-grid{gap:35px}.reserve-box{padding:30px}.nav-actions>a:not(.button){display:none}}
@media(max-width:700px){.shell{width:calc(100% - 36px)}nav{height:76px}.brand{font-size:10px;gap:8px}.brand img{width:45px;height:45px}.brand small{font-size:7px}.nav-actions{gap:10px}.nav-actions .button{padding:12px 16px;min-height:42px;font-size:9px}.hero{padding:36px 0 45px}.hero-grid{grid-template-columns:1fr;gap:35px}.hero-copy{max-width:520px;margin:auto;width:100%;text-align:center}.edition,.chapter{justify-content:center}h1{font-size:clamp(50px,13vw,76px);margin:23px 0 15px}.chapter{margin:20px 0 25px}.chapter:after{display:none}.lead{margin:auto;max-width:380px;font-size:12px}.date-line{text-align:left;margin:24px 0}.date-time{margin-left:auto;font-size:21px}.date-number{font-size:48px}.hero-cta{justify-content:center;gap:20px}.poster-wrap{max-width:440px;justify-self:center;transform:none}.poster-wrap figcaption{font-size:7px}.ticker{gap:14px 20px;font-size:10px;line-height:1.5}.ticker span{display:none}section{padding:58px 0}.section-title{display:block;margin-bottom:26px}.section-title p{max-width:420px}.night-grid{grid-template-columns:1fr;gap:20px}.night-item{padding:21px 0}.night-item h3{margin:12px 0 10px;font-size:29px}.night-item .tag{margin-top:14px}.countdown-row{flex-direction:column;align-items:center;text-align:center}.countdown-row h2{font-size:30px}.countdown{gap:24px}.count-unit strong{font-size:40px}.reserve-grid{grid-template-columns:1fr;gap:30px}.reserve-box{padding:30px}.personal{padding:58px 0}.foot{flex-direction:column;text-align:center;gap:13px}.foot>div:nth-child(2){max-width:230px}.music-toggle{width:36px;height:36px;right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.gate,.seal{display:none}}

/* Immersive invitation, inspired by the original Shanghai Lounge experience. */
header{position:absolute;top:0;left:0;right:0;background:linear-gradient(#02050bc9,transparent);border:0}nav{height:85px}.cinematic-hero{min-height:106svh;display:flex;align-items:flex-end;justify-content:center;padding:260px 24px 100px;text-align:center;isolation:isolate;background:#050912}.cinematic-hero:before{inset:0;background:linear-gradient(180deg,#02050b33 0%,#02050b08 25%,#04081188 50%,#040811f0 86%,#060c16 100%),url('assets/halloween-clean-background.png') center 32%/cover no-repeat;z-index:-3}.cinematic-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#02050b55,transparent 30%,transparent 70%,#02050b55);z-index:-2;pointer-events:none}.hero-copy{position:relative;width:min(950px,100%);max-width:950px;margin:0 auto;padding:0}.hero-brand{position:absolute;width:118px;height:118px;object-fit:contain;left:50%;top:-185px;transform:translateX(-50%);filter:drop-shadow(0 10px 35px #000)}.edition{justify-content:center;color:#e6c9ce;font-size:11px;letter-spacing:.4em}.edition:before{display:none}.hero h1{font-family:'Poppins',Arial,sans-serif;font-weight:800;font-size:clamp(66px,8.5vw,128px);text-transform:none;line-height:.79;letter-spacing:-.025em;margin:22px 0 14px}.hero h1 .nightmare,.hero h1 .shanghai-title{display:block;background:linear-gradient(180deg,#fff2eb 0%,#e4c9c9 22%,#f7e5de 38%,#cf2738 57%,#880c20 73%,#ff6972 88%,#5b0615 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(1px 2px 0 #35040a) drop-shadow(0 0 20px #c11a374d);text-shadow:none}.hero h1 .nightmare{font-size:.78em}.hero h1 .shanghai-title{margin-top:12px}.chapter{justify-content:center;margin:26px 0 17px;font-size:12px;color:#ffbdc3;letter-spacing:.6em}.chapter:after{display:none}.lead{max-width:620px;margin:0 auto;color:#d4d5de;line-height:1.8;font-size:13px}.hero-event{margin:26px 0;font-size:13px;letter-spacing:.18em;color:#f4e9e8}.hero-event span{color:#c73140;padding:0 20px}.hero-cta{justify-content:center}.hero .invitation{color:#c4bfc7;font-size:9px;margin-top:20px}.hero-fog{position:absolute;inset:45% -30% -10%;pointer-events:none;z-index:-1;opacity:.6;background:radial-gradient(ellipse at 15% 50%,#4f9ac930,transparent 45%),radial-gradient(ellipse at 85% 60%,#c2333a26,transparent 40%);filter:blur(30px);animation:creep 16s ease-in-out infinite alternate}@keyframes creep{to{transform:translateX(14%) scale(1.2)}}.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:.28em;text-decoration:none;color:#8c9eaf}.scroll-cue span{display:block;font-size:20px;margin-top:10px}.section-title{display:block;text-align:center;max-width:760px;margin:0 auto 48px}.section-title p{max-width:600px;margin:auto}.event-details{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:65px;border:1px solid #43738b44;background:linear-gradient(110deg,#06243a55,#280d1d55);box-shadow:0 20px 70px #0004}.event-details>div{text-align:center;padding:38px 22px;border-right:1px solid var(--line)}.event-details>div:last-child{border:0}.event-details strong{display:block;font:500 58px/1 'Poppins',Arial,sans-serif;color:#f2d8d9}.event-details span{display:block;margin-top:18px;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:#8acde8}.event-details small{display:block;color:#a6a7b2;margin-top:12px;font-size:11px}.night-section{padding-top:85px}.night-grid{gap:30px}.night-item h3{font-size:35px}.bat-play{text-align:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#123b5566,transparent 60%),linear-gradient(180deg,#040710,#10101d,#060c16);padding:95px 0}.bat-play:after{content:"";position:absolute;inset:0;pointer-events:none;border-block:1px solid #548aab22}.bat-play h2{font-family:'Poppins',Arial,sans-serif;font-size:clamp(45px,6vw,74px);margin:18px 0 30px}.bat-play p{font-size:10px;color:#8394a9;letter-spacing:.08em;margin-top:24px}.reserve-box{background:linear-gradient(120deg,#050b14f5,#32121dd9),url('assets/halloween-clean-background.png') center/cover}.poster-section{text-align:center;background:radial-gradient(ellipse at 10% 50%,#0c345a55,transparent 55%),radial-gradient(ellipse at 90% 50%,#75152744,transparent 55%),#040810;padding:70px 0}.poster-link{display:block;max-width:480px;margin:38px auto 0}.poster-link img{width:100%;height:auto;display:block;border:1px solid #74414b;box-shadow:0 30px 80px #0008}.personal{background:linear-gradient(#050812e6,#050812f5),url('assets/halloween-clean-background.png') center/cover}.personal h2{color:#f3cbd0}.primary{background:linear-gradient(135deg,#6c1021,#b71f31 55%,#771023);border-color:#d34a5a;box-shadow:0 5px 35px #ca192b33}.button{transition:background .2s,transform .2s,box-shadow .2s}.button:hover{box-shadow:0 0 30px #d72b3a50;background:#b51c31}.entrance[hidden]{display:none}.entrance{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;background:#03060b;isolation:isolate}.entry-inner{text-align:center;padding:30px;max-width:800px;transition:opacity .4s,transform .5s}.entry-inner img{width:120px;height:120px;object-fit:contain;margin-bottom:32px;filter:drop-shadow(0 0 25px #aa202544)}.entry-inner .eyebrow{font-size:9px;color:#a9cbd9}.entry-inner h2{font:700 clamp(48px,7vw,88px)/.92 'Poppins',Arial,sans-serif;color:#f4e5e4;text-shadow:0 2px #8c1529,0 0 40px #b0203033;margin:23px 0}.entry-chapter{color:#d6b1ba;letter-spacing:.23em;line-height:1.8;font-size:9px;margin:25px 0 34px}.entry-inner p{font-size:9px;color:#8899aa;letter-spacing:.17em;margin-top:25px}.entrance.opening{background:transparent;pointer-events:none}.entrance.opening .entry-inner{opacity:0;transform:scale(.95)}#batLayer{position:fixed;inset:0;pointer-events:none;z-index:110;overflow:hidden}.flying-bat{position:absolute;left:0;top:0;will-change:transform;filter:drop-shadow(0 0 1px #82b9d1) drop-shadow(0 4px 5px #000);color:#010207}.flying-bat svg{width:100%;height:100%;overflow:visible}.bat-wing{transform-origin:0 0;animation:flap .15s ease-in-out infinite alternate}.bat-wing.reverse{animation-direction:alternate-reverse}@keyframes flap{from{transform:scaleY(1)}to{transform:scaleY(.12)}}.bat-eye{fill:#ec344b}.body-entered .hero-copy{animation:revealInvite 1.3s ease both}@keyframes revealInvite{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.cinematic-hero{min-height:100svh;padding:300px 18px 90px}.cinematic-hero:before{background-position:50% 22%;background-image:linear-gradient(180deg,#02050b33 0%,#02050b08 20%,#04081177 43%,#040811ed 72%,#060c16 100%),url('assets/halloween-clean-background.png')}.hero-brand{top:-235px;width:100px;height:100px}.hero h1{font-size:clamp(65px,14vw,95px);line-height:.85}.hero h1 .nightmare{font-size:.79em}.hero h1 .shanghai-title{margin-top:5px}.hero .edition{font-size:9px;letter-spacing:.28em}.hero .chapter{font-size:10px;letter-spacing:.45em;margin:20px 0 15px}.hero .lead{font-size:11px;max-width:350px}.hero-event{font-size:10px;margin:22px 0;letter-spacing:.13em}.hero-event span{padding:0 10px}.hero-cta{gap:10px}.hero-cta .button{font-size:9px;padding:14px 17px;min-height:44px}.hero .invitation{font-size:8px;letter-spacing:.1em}.event-details{grid-template-columns:1fr;margin-bottom:40px}.event-details>div{padding:26px 18px;border-right:0;border-bottom:1px solid var(--line)}.event-details strong{font-size:48px}.event-details span{margin-top:12px;font-size:10px}.entry-inner img{width:100px;height:100px;margin-bottom:22px}.entry-inner h2{font-size:56px}.entry-inner{padding:24px}.entry-chapter{font-size:8px;max-width:280px;margin:25px auto 30px}.entry-inner .eyebrow{font-size:8px;letter-spacing:.18em}.bat-play{padding:65px 0}.poster-link{max-width:420px}.hero-cta .textlink{font-size:10px}}
@media(prefers-reduced-motion:reduce){.entry-panel,.entry-inner{transition:none}.hero-fog,.bat-wing{animation:none!important}.body-entered .hero-copy{animation:none!important}}


/* Official supplied event title, preserving its proportions and transparency. */
.hero h1.hero-title-art{position:relative;width:min(850px,100%);height:auto;aspect-ratio:2 / 1;margin:16px auto 20px;font-size:inherit;line-height:1;overflow:hidden}
.hero-title-art img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:drop-shadow(0 4px 18px #0008)}
@media(max-width:700px){.hero h1.hero-title-art{width:100%;margin:14px auto 18px}}

/* Poppins throughout; original Halloween text palette restored. */
body,button,input,select,textarea{font-family:'Poppins',Arial,sans-serif}
h2,.night-item h3,.reserve-box h3{line-height:1.2}
.entry-inner h2{font-size:clamp(38px,5vw,68px);line-height:1.15;font-weight:600}
.bat-play h2{font-size:clamp(34px,4.5vw,56px);line-height:1.2}
@media(max-width:700px){.entry-inner h2{font-size:clamp(32px,8.5vw,48px)}h2{font-size:clamp(30px,7.5vw,40px)}.night-item h3{font-size:26px}.reserve-box h3{font-size:28px}}

/* One full-screen picture, clipped into two aligned sliding halves. */
.entry-panel{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;z-index:-1;transition:transform 1.2s cubic-bezier(.68,0,.15,1);will-change:transform}
.left-panel{left:0}.right-panel{right:0}
.entry-image{position:absolute;top:0;bottom:0;width:100vw;background:linear-gradient(180deg,#03061055,#02040da6),url('assets/halloween-clean-background.png') center 32% / cover no-repeat}
.left-panel .entry-image{left:0}.right-panel .entry-image{right:0}
.entrance.opening .left-panel{transform:translateX(-100%)}
.entrance.opening .right-panel{transform:translateX(100%)}
@media(prefers-reduced-motion:reduce){.entry-panel{transition:none}}

/* A floating paper charm, confined to the open upper-right hero area. */
.hero-talisman{position:absolute;top:105px;right:clamp(8px,5vw,80px);width:320px;height:180px;z-index:1;pointer-events:none;animation:talismanHover 6s ease-in-out infinite;perspective:700px}
.talisman-breeze{position:absolute;top:-90px;left:0;width:320px;height:320px;transform-origin:25% 35%;animation:talismanBreeze 3.8s ease-in-out infinite}
.talisman-breeze img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 15px #0007)}
.cinematic-hero .hero-copy{z-index:2}
@keyframes talismanHover{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(-7px,-8px,0)}65%{transform:translate3d(5px,6px,0)}}
@keyframes talismanBreeze{0%,100%{transform:rotate(-3deg) rotateY(-12deg) skewY(-1deg)}40%{transform:rotate(4deg) rotateY(13deg) skewY(2deg)}75%{transform:rotate(-1deg) rotateY(-5deg) skewY(-2deg)}}
@media(max-width:700px){.hero-talisman{top:150px;right:0;width:220px;height:135px}.talisman-breeze{width:240px;height:240px;top:-65px;left:0}}
@media(prefers-reduced-motion:reduce){.hero-talisman,.talisman-breeze{animation:none!important}}

/* Continuous, seamless event highlights moving from right to left. */
.ticker{display:block;overflow:hidden;padding:20px 0;text-align:left}
.ticker-track{display:flex;width:max-content;animation:highlightsScroll 24s linear infinite;will-change:transform}
.ticker-group{display:flex;align-items:center;justify-content:space-around;flex-shrink:0;min-width:100vw;gap:32px;padding:0 32px 0 0;white-space:nowrap}
.ticker .ticker-separator{display:inline;color:var(--red)}
.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
@keyframes highlightsScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:700px){.ticker{padding:17px 0}.ticker-group{gap:24px;padding-right:24px}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none!important;width:100%}.ticker-group{min-width:0;width:100%;white-space:normal;flex-wrap:wrap;justify-content:center;padding:0 18px;gap:14px 20px}.ticker-group[aria-hidden="true"]{display:none}}

/* Inline vector icons render identically on mobile and desktop. */
.ui-icon{display:inline-block;width:18px;height:18px;flex-shrink:0;vertical-align:middle;pointer-events:none}
.button>.ui-icon,.button span .ui-icon{width:17px;height:17px}
.textlink>.ui-icon{width:15px;height:15px;margin-left:5px}
.scroll-cue .ui-icon{width:22px;height:22px}
.ticker-separator .ui-icon,.hero-event .ui-icon{width:12px;height:12px}
.music-toggle .ui-icon{width:20px;height:20px}

