@font-face{font-family:Jost;src:url('./jost.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:Boisterous;src:url('/fonts/boisterous.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--blue:#075bff;--deep:#0045cb;--white:#fff;--star:#f4ff57;--pale:#e9f2ff}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--white);background:var(--blue);font-family:Jost,'Trebuchet MS',sans-serif;font-size:18px;line-height:1.5}a{color:inherit;text-underline-offset:.25em}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:3px solid var(--star);outline-offset:6px}figure,p,h1,h2{margin:0}img{display:block;width:100%;height:auto}h1,h2{font-family:Boisterous,Georgia,serif;font-weight:400;line-height:1.02;text-wrap:balance}h1{font-size:clamp(58px,6.3vw,102px)}h2{font-size:clamp(48px,5.2vw,86px)}.skip{position:absolute;left:1rem;top:-100px;background:#fff;color:var(--deep);padding:12px;z-index:10}.skip:focus{top:10px}.masthead{display:flex;justify-content:space-between;align-items:center;max-width:1672px;margin:auto;padding:20px 4vw;border-bottom:1px solid #ffffff38}.wordmark{font-size:30px;letter-spacing:.13em;line-height:1;text-decoration:none;font-weight:500}.wordmark span{font-size:12px;letter-spacing:.08em;vertical-align:top;margin-left:5px}.back-link{font-size:14px;text-decoration:none;letter-spacing:.06em}.back-link span{margin-left:12px}.hero{max-width:1672px;margin:auto}.intro{padding:70px 24px 80px;text-align:center}.eyebrow{font-size:13px;letter-spacing:.17em;line-height:1.5;font-weight:500;margin-bottom:24px}.intro-copy{font-size:23px;margin-top:24px}.jump-links{display:flex;flex-wrap:wrap;gap:12px 36px;justify-content:center;margin-top:34px}.jump-links a{font-size:19px;text-decoration:none;border-bottom:1px solid #ffffff80;padding:10px 0}.jump-links span{color:var(--star);margin-left:14px}.walkin-teaser{font-size:16px;margin-top:30px}.star-field{position:relative;overflow:hidden}.spark{position:absolute;pointer-events:none;color:var(--star);line-height:1;animation:twinkle 4s ease-in-out infinite}.spark-one{top:15%;left:8%;font-size:65px;transform:rotate(12deg)}.spark-two{right:9%;bottom:20%;font-size:90px;animation-delay:2s}.offer{display:grid;grid-template-columns:1fr 1fr;max-width:1440px;margin:auto;position:relative;isolation:isolate}.offer-art{align-self:stretch;overflow:hidden}.offer-art img{height:100%;object-fit:cover}.offer-copy{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:8% 11%;background:var(--deep);overflow:hidden}.offer-copy>*:not(.offer-star):not(.magic-flight){position:relative;z-index:1}.reverse .offer-art{order:2}.reverse .offer-copy{background:var(--blue)}.offer-copy .eyebrow{font-size:12px;letter-spacing:.14em}.price{font-size:clamp(65px,6.8vw,112px);font-weight:400;letter-spacing:-.065em;line-height:1.2;margin-top:24px}.price span{font-size:.47em;letter-spacing:-.02em}.offer-line{font-size:clamp(22px,2.3vw,32px);line-height:1.28;font-weight:400}.description{font-size:19px;line-height:1.5;margin-top:20px}.glass-button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;margin-top:30px;padding:13px 25px;border-radius:100px;border:1px solid #ffffffc9;background:linear-gradient(170deg,#ffffff5c,#ffffff16 48%,#ffffff2e);box-shadow:inset 0 1px 1px #ffffffb3,0 8px 24px #0035b14a;backdrop-filter:blur(10px);text-decoration:none;color:#fff;font-size:17px;font-weight:500;transition:background .18s,transform .18s;max-width:100%}.glass-button:hover{background:linear-gradient(170deg,#ffffff7a,#ffffff30 48%,#ffffff50);transform:translateY(-2px)}.glass-button:active{transform:translateY(1px)}.glass-button span{color:var(--star);font-size:22px;line-height:1}.booking-note{font-size:14px;line-height:1.5;max-width:360px;margin-top:16px}.learn-link{font-size:14px;margin-top:26px}.learn-link span{margin-left:12px}.offer-star{position:absolute;right:2%;bottom:3%;color:var(--star);font-size:90px;opacity:.65;line-height:1;z-index:0}.tox-prices{display:flex;gap:clamp(12px,2.5vw,36px);align-items:center;margin-top:32px}.tox-prices p{display:flex;flex-direction:column}.tox-prices strong{font-weight:400;font-size:clamp(48px,4.8vw,76px);line-height:1.12;letter-spacing:-.06em}.tox-prices p span{font-size:22px}.tox-prices .or{font-family:Boisterous,Georgia,serif;font-size:25px;color:var(--star)}.fine-print{font-size:12px;line-height:1.6;margin-top:20px;max-width:500px}.award{font-size:16px;margin-top:26px}.award>span{color:var(--star);margin-right:6px}.award a{font-size:13px;line-height:1.3;display:inline-block;margin-top:6px}.friday{padding:100px 24px 90px;text-align:center}.friday h2{font-size:clamp(65px,7vw,110px)}.friday-date{font-size:clamp(25px,3vw,38px);margin-top:28px;line-height:1.3}.friday-date span{display:block;color:var(--star)}.address{font-size:17px;margin-top:26px}.friday .fine-print{margin:24px auto 0;max-width:530px}.closing{background:var(--white);color:var(--deep);text-align:center;padding:60px 24px}.closing .eyebrow{margin-bottom:18px}.closing>p{font-size:15px}.closing>p+p{margin-top:18px}.closing nav{display:flex;justify-content:center;gap:14px 28px;flex-wrap:wrap;margin-top:26px;font-size:15px}.closing a:focus-visible{outline-color:var(--deep)}footer{padding:30px 4vw;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}footer p{font-size:12px}footer>a:last-child{text-decoration:none}@keyframes twinkle{0%,100%{opacity:.85}50%{opacity:.35}}@media(min-width:1441px){.offer{margin-bottom:0}}@media(max-width:800px){.masthead{padding:18px 22px}.hero{overflow:hidden}.intro{padding:50px 24px 60px}.intro-copy{font-size:21px}.spark-one{left:3%;top:8%;font-size:38px}.spark-two{right:2%;bottom:6%;font-size:52px}.offer{grid-template-columns:1fr}.offer-art,.reverse .offer-art{order:0}.offer-art img{height:auto;max-height:730px;object-fit:contain;background:#0045cb}.offer-copy{padding:42px 26px 50px}.offer-copy h2{font-size:64px}.offer-copy .eyebrow{margin-bottom:20px}.price{font-size:88px;margin-top:20px}.tox-prices strong{font-size:66px}.tox-prices{gap:32px}.offer-line{font-size:27px}.offer-copy .glass-button{margin-top:25px}.booking-note{max-width:440px}.offer-star{font-size:72px;right:7%;bottom:6%}.friday{padding:70px 24px}.friday h2{font-size:66px}.friday .intro-copy{font-size:19px}.address{font-size:15px}.jump-links{gap:8px 22px;margin-top:25px}.jump-links a{font-size:16px}.jump-links span{margin-left:8px}.walkin-teaser{font-size:14px}footer{flex-wrap:wrap;padding:30px 24px}footer p{order:3;width:100%}}@media(max-width:360px){.offer-copy h2{font-size:56px}.tox-prices{gap:16px}.tox-prices strong{font-size:54px}.glass-button{padding:13px 20px;font-size:16px}.back-link{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.spark{animation:none}.glass-button{transition:none}}

/* Boisterous: generous line boxes and a fitted event title on phones. */
h1,h2{line-height:1.75;max-width:100%;font-synthesis:none}
h1{font-size:clamp(52px,7vw,108px)}
.offer-copy h2{font-size:clamp(44px,5.2vw,76px);padding-right:.12em}
.friday h2{font-size:clamp(48px,6.3vw,96px);line-height:1.65;max-width:100%;padding-inline:.15em}
.friday h2 .event-name{display:block;white-space:nowrap;margin-top:.2em;font-size:1.12em}
.hero,.intro,.offer-copy,.friday{position:relative;isolation:isolate}
.intro>:not(.magic-flight):not(.spark),.friday>:not(.magic-flight):not(.spark){position:relative;z-index:1}
.magic-flight{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;container-type:size}
.hero .magic-flight{z-index:1}
.magic-flight i{position:absolute;top:0;left:0;display:block;width:var(--size);height:var(--size);background:var(--white);clip-path:polygon(50% 0,58% 38%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 38%);opacity:0;animation:wand-flight 12s linear infinite;animation-delay:var(--delay);will-change:transform,opacity}
.magic-flight i:nth-child(3n){background:var(--star)}
.magic-flight i:nth-child(even){margin-top:12px}
.motion-toggle{font:inherit;color:inherit;border:1px solid #ffffff75;background:transparent;border-radius:30px;min-height:44px;padding:10px 16px;cursor:pointer}
.motion-toggle:hover{background:#ffffff25}.motion-toggle:focus-visible{outline:3px solid var(--star);outline-offset:4px}
[data-sparkles="paused"] .magic-flight i,[data-sparkles="paused"] .spark{animation-play-state:paused;opacity:0}
@keyframes wand-flight{
0%{transform:translate(-5cqw,76cqh) rotate(0deg) scale(.4);opacity:0}
8%{opacity:.8}
20%{transform:translate(18cqw,42cqh) rotate(35deg) scale(.85)}
40%{transform:translate(42cqw,28cqh) rotate(70deg) scale(1);opacity:.9}
60%{transform:translate(66cqw,44cqh) rotate(105deg) scale(.75)}
80%{transform:translate(91cqw,18cqh) rotate(140deg) scale(1);opacity:.8}
90%,100%{transform:translate(110cqw,4cqh) rotate(175deg) scale(.4);opacity:0}}
@media(max-width:800px){
h1{font-size:clamp(48px,13.5vw,78px)}
.offer-copy h2{font-size:clamp(42px,12.5vw,68px)}
.friday h2{font-size:clamp(36px,11.5vw,66px)}
.friday{padding-inline:20px}
}
@media(prefers-reduced-motion:reduce){.magic-flight{display:none}.spark{animation:none}.glass-button{transition:none}}

/* Polished glass: crisp reflections, bright bevels and saturated depth. */
.intro,.offer,.friday,.closing{
background-image:radial-gradient(ellipse at 50% -8%,rgb(255 255 255 / 18%),transparent 48%),linear-gradient(112deg,transparent 8%,rgb(255 255 255 / 3%) 15%,rgb(255 255 255 / 17%) 17%,rgb(255 255 255 / 3%) 19%,transparent 26%),linear-gradient(180deg,rgb(255 255 255 / 12%),transparent 8%,transparent 72%,var(--surface-shade,rgb(0 45 170 / 24%)));
box-shadow:inset 0 2px 1px rgb(255 255 255 / 76%),inset 0 -2px 1px rgb(255 255 255 / 35%),inset 2px 0 1px rgb(255 255 255 / 27%),inset -2px 0 1px rgb(255 255 255 / 16%);
}
.intro::before,.offer::before,.friday::before,.closing::before{
content:"";position:absolute;pointer-events:none;z-index:0;width:52%;height:154%;left:-44%;top:-39%;border-radius:50%;transform:rotate(21deg);border:1px solid rgb(255 255 255 / 84%);background:linear-gradient(95deg,transparent 25%,rgb(255 255 255 / 5%) 56%,rgb(255 255 255 / 20%) 84%,rgb(255 255 255 / 60%) 100%);box-shadow:4px 0 10px rgb(255 255 255 / 20%),inset -4px 0 9px rgb(255 255 255 / 20%);
}
.intro::after,.offer::after,.friday::after,.closing::after{
content:"";position:absolute;pointer-events:none;z-index:0;right:-54%;bottom:-59%;width:79%;height:113%;border-radius:50%;transform:rotate(-22deg);border:1px solid rgb(255 255 255 / 62%);background:linear-gradient(105deg,rgb(255 255 255 / 35%),rgb(255 255 255 / 11%) 14%,transparent 43%);box-shadow:inset 3px 0 7px rgb(255 255 255 / 16%),-2px 0 12px rgb(255 255 255 / 9%);
}
.glass-button{background:linear-gradient(180deg,rgb(255 255 255 / 52%),rgb(255 255 255 / 16%) 46%,rgb(255 255 255 / 5%) 49%,rgb(255 255 255 / 13%) 53%,rgb(255 255 255 / 29%));border-color:rgb(255 255 255 / 85%);box-shadow:inset 0 2px 1px rgb(255 255 255 / 90%),inset 0 -2px 1px rgb(255 255 255 / 31%),0 8px 22px rgb(0 45 170 / 20%)}
.glass-button:hover{background:linear-gradient(180deg,rgb(255 255 255 / 64%),rgb(255 255 255 / 23%) 46%,rgb(255 255 255 / 10%) 49%,rgb(255 255 255 / 20%) 53%,rgb(255 255 255 / 36%))}
.closing{position:relative;isolation:isolate;overflow:hidden;background-color:var(--blue);color:var(--white);padding:38px 24px 40px}
.closing>*{position:relative;z-index:1}
.closing .eyebrow{font-family:Boisterous,Georgia,serif;font-size:clamp(32px,3.4vw,44px);letter-spacing:0;font-weight:400;line-height:1.8;margin-bottom:12px}
.closing>p{max-width:780px;margin-inline:auto}
.closing nav{margin-top:24px}
.closing a:focus-visible{outline-color:var(--star)}
footer{border-top:1px solid rgb(255 255 255 / 25%)}

/* Immersive character stages: one uninterrupted color for each special. */
.offer{overflow:hidden;grid-template-columns:46% 54%;background-color:var(--deep)}
.offer.reverse{grid-template-columns:54% 46%}
#serena{background-color:#cf006f;--surface-shade:rgb(145 0 75 / 22%)}
#witch-please{background-color:#d9f15a;color:var(--deep);--star:var(--deep);--surface-shade:rgb(115 151 0 / 15%)}
.offer .offer-art{position:relative;z-index:1;display:flex;align-items:center;background:none;padding:28px 0 20px 24px}
.offer.reverse .offer-art{padding:28px 24px 20px 0}
.offer .offer-art img{width:100%;height:auto;max-height:900px;object-fit:contain;background:transparent}
.offer .offer-copy,.offer.reverse .offer-copy{z-index:1;background:transparent;box-shadow:none;padding:52px 10% 52px 5%}
.offer.reverse .offer-copy{padding:52px 5% 52px 10%}
#witch-please .glass-button{color:var(--deep);border-color:rgb(0 69 203 / 55%);box-shadow:inset 0 2px 1px rgb(255 255 255 / 90%),inset 0 -2px 1px rgb(255 255 255 / 31%),0 8px 24px rgb(66 90 0 / 12%)}
#witch-please a:focus-visible{outline-color:var(--deep)}
#witch-please .magic-flight i{background:var(--deep)}
#serena .glass-button{box-shadow:inset 0 2px 1px rgb(255 255 255 / 90%),inset 0 -2px 1px rgb(255 255 255 / 31%),0 8px 24px rgb(123 0 66 / 22%)}
#dr-bombay h2{font-size:clamp(44px,4.8vw,68px);line-height:1.5}
@media(max-width:800px){
.wordmark{font-size:clamp(20px,5.8vw,30px);letter-spacing:.09em}
.masthead{gap:18px}
.back-link{white-space:nowrap;font-size:12px;letter-spacing:0}
.back-link span{margin-left:4px}
.offer,.offer.reverse{grid-template-columns:1fr}
.offer .offer-art,.offer.reverse .offer-art{padding:32px 16px 0}
.offer .offer-art img{max-height:550px}
.offer .offer-copy,.offer.reverse .offer-copy{padding:24px 26px 50px}
#dr-bombay h2{font-size:clamp(42px,12.5vw,68px)}
}
