/* Approved event concept, edition 16: three distinct editorial scenes. */
:root {--ink:#090605;--paper:#f4ead8;--muted:#c8bba9;--wine:#530709;--red:#a71318;--line:#d4ae6d35;--gold:#e8c786;--gold-light:#fff0c8}
body {background:var(--ink)}
::selection {background:#891115;color:#fff0d3}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex='0']:focus-visible {outline-color:#e9c278}
.site-header.scrolled {background:#0b0706ed;box-shadow:0 1px #bc985521}
.header-act,.menu-toggle {color:#efcd8b}
.header-act>span:first-child {color:#d5be97}
.menu-toggle span {background:#e8cd98}
.music-toggle {background:#160b06c9;border-color:#d1ac675c;color:#f2d9ab}
.music-toggle:hover,.music-toggle[aria-pressed=true] {background:#4c130bd9;border-color:#ebc77899}
.entrance-panel {filter:sepia(.14) saturate(1.5) hue-rotate(10deg)}
.entrance-light {background:radial-gradient(ellipse at 50% 64%,#e6ad4633,transparent 58%)}
/* Approved stage architecture; separate transparent lettering sits above it. */
.hero {background:#080504}
.hero .stage-backdrop {inset:0;transform:translate3d(calc(var(--stage-x) * 5px),calc(var(--hero-travel) * .06),0)}
.hero .hero-curtain {object-position:50% 50%;opacity:1;transform:scale(1.015)}
.hero .hero-shade {background:linear-gradient(#08040212,transparent 15%,#0b06040a 41%,transparent 65%,#090605 100%)}
.hero .stage-portals,.hero .stage-wings{display:none}
.hero-center {top:16%;bottom:auto;left:var(--page);right:var(--page);z-index:7}
.hero-invitation {font-size:12px;letter-spacing:.13em;color:#d3ba8c;margin-bottom:17px;text-shadow:0 2px 14px #000}
.title-life {font-size:clamp(126px,40vw,185px);line-height:.96;font-weight:500;letter-spacing:-.067em;margin-left:-.067em;color:var(--gold);background:linear-gradient(115deg,#b78134 0%,#f4d494 19%,#ffefbf 32%,#c48b3f 46%,#f1c778 59%,#fff1cf 71%,#b5752c 91%);background-size:230% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 1px #583409) drop-shadow(0 0 17px #ad682b2b)}
.title-kaif {font-size:clamp(34px,10.5vw,49px);line-height:1.3;font-weight:400;letter-spacing:.105em;margin-top:10px;color:#e4bf7b;text-shadow:0 1px 12px #b0712133}
body.scene-has-started .title-life {animation:title-unfold 1.85s 1.05s cubic-bezier(.16,.75,.25,1) both}
body.scene-has-started .hero-curtain {animation:concept-camera-arrive 3.8s cubic-bezier(.16,.7,.24,1) both}
.hero-bottom {bottom:3%}
.scroll-cue svg {stroke:#f0d59c}
.stage-wash span {background:radial-gradient(ellipse at 12% 56%,#a10a102d,transparent 51%)}
.stage-wash span+span {background:radial-gradient(ellipse at 85% 61%,#d3893630,transparent 48%)}
.floor-light {height:18%;background:radial-gradient(ellipse at 50% 10%,#da9d343b,transparent 68%)}
.hero>.stage-atmosphere {opacity:.7;mask-image:linear-gradient(transparent 46%,#000 70%,#000 93%,transparent);-webkit-mask-image:linear-gradient(transparent 46%,#000 70%,#000 93%,transparent)}
.spotlight {bottom:17%;width:25px;height:37px;opacity:.9}
.spotlight-left {left:18%}.spotlight-right {right:18%}
.spot-beam {width:min(95vw,650px);opacity:.67}
.spot-beam::before,.spotlight-right .spot-beam::before {background:linear-gradient(#fff0b9a8,#e9ad4c40 44%,#a6521422 78%,transparent)}
.spot-beam i {background:linear-gradient(#fff2c67a,#e6bc6729 55%,transparent)}
.scene-sweep {background:linear-gradient(109deg,transparent 39%,#e6b76936 48%,#fff0c756 50%,#e29c3520 53%,transparent 62%)}
/* One real transparent chandelier is reused at different depths. */
.concept-chandeliers {position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none}
.concept-chandelier {position:absolute;top:3%;width:clamp(80px,21vw,120px);transform-origin:50% 0;animation:chandelier-sway 8.5s ease-in-out infinite alternate}
.concept-chandelier img {width:100%;height:auto;filter:drop-shadow(0 0 7px #d18b2c39);animation:chandelier-candle 5.4s ease-in-out infinite alternate}
.chandelier-left {left:-5%}
.chandelier-right {right:-5%;top:7%;width:clamp(70px,18vw,108px);animation-delay:-4s;animation-duration:10s}
.chandelier-right img {animation-delay:-2.7s}
/* Warm, readable typography continues from the title into the invitation. */
.invitation {background:radial-gradient(ellipse at 86% 8%,#710b1138,transparent 60%),#100706;color:var(--paper)}
.invitation .display,.program .display,.dress-content .display,.wishlist .display,.rsvp .display,.contact-name {color:var(--gold)}
.invitation .eyebrow,.invitation-time,.invitation-copy {color:#cdbda7}
.invitation-date {color:#f0d295}
.invitation-date-lockup {border-image:linear-gradient(90deg,transparent,#be914874,transparent) 1}
.invitation .text-link {color:#e8c78a}
.editorial-light span {border-color:#e1b05b66;background:linear-gradient(90deg,#b988392b,transparent)}
.editorial-light span+span {border-color:#a41a1f66;background:linear-gradient(90deg,#8a0c1235,transparent)}
.program {background:#160706}
.program-curtain {background-image:linear-gradient(90deg,#140706f5,#160806ed 52%,#260b08ab),url('assets/program-piano-v16.jpg');background-position:50% 70%;opacity:1}
.program-velvet {opacity:.74;filter:sepia(.18) saturate(1.55) hue-rotate(10deg)}
.program-light {background:radial-gradient(ellipse,#cb882c34,transparent 65%)}
.program::after {border-color:#b9803638;background:linear-gradient(90deg,#b5803417,transparent)}
.program-orbit span {border-color:#d5a96150;box-shadow:inset 12px 0 20px #dda54915}
.program-orbit span+span {border-color:#b8783d40}
.time {color:#edc57f}
.time>span {color:#b1844b}
.time-description h3 {color:#f1e3ce}
.event-ticker {background:linear-gradient(110deg,#24160d,#0d0805 44%,#36100c);border-color:#c8944d73}
.event-ticker-group {color:#eed299}
.event-ticker-group i {color:#a67a40}
.event-ticker-group .ticker-act {color:#d9ac62}
.event-ticker-control {background:#140b06;color:#e4c483;border-color:#c89b5561}
/* The stage lettering now glows in the same champagne-gold as the lamps. */
.dresscode {background:#47090b}
.cabaret-art {height:620px;background:#120604}
.cabaret-backdrop {object-position:50% 100%;opacity:1;transform:none}
.cabaret-art::after {background:linear-gradient(#1b070633,transparent 24%,#29070508 77%,#47090b)}
.cabaret-sweep {background:linear-gradient(96deg,transparent 27%,#a7191325 43%,#ffda826b 50%,#ca6b2830 55%,transparent 65%)}

.cabaret-chandeliers {z-index:4}
.cabaret-chandeliers .concept-chandelier {top:0;width:94px}
.cabaret-chandeliers .chandelier-left {left:-24px}
.cabaret-chandeliers .chandelier-right {right:-25px;top:7%;width:83px}
.dress-content .display {font-size:clamp(40px,11.7vw,70px);line-height:1.12}
.dress-content .eyebrow {color:#d6b782}
.dress-content .body-copy {color:#e1c8ad;font-size:17px}
.swatch-black {background:#090606}
.swatch-red {background:#991116}
.swatch-gold {background:linear-gradient(120deg,#ad7530,#f0d296 40%,#ba8d43 75%,#f8e1ad)}
.looks-button {color:#efdab4;border-color:#d7ae678a;background:linear-gradient(115deg,#edc3800e,transparent 60%)}
/* Keep the requested glossy hotel treatment, with warmer metal highlights. */
.hotels {background:radial-gradient(ellipse at 78% 7%,#5a433065,transparent 42%),linear-gradient(130deg,#1c1713,#080606 43%,#191311);border-color:#cba8723b}
.hotel-heading {border-color:#c1a37480}
.hotel-heading .eyebrow,.hotel-intro {color:#d4c7b3}
.hotel-city {color:#eacb8e}
.hotel-heading .display {color:#f5e6ca}
.hotel-lacquer span {background:linear-gradient(111deg,transparent 36%,#dab67515 47%,#fff0c03b 49.7%,#d9b66d19 50.3%,transparent 57%)}
.hotel-card {border-color:#dbbb824b;background:linear-gradient(118deg,#30261d,#100b08 51%,#201812)}
.hotel-image-link {border-color:#dfbd7e75}
.hotel-place {color:#ceb58c}
.hotel-card h3 {color:#fff0d3}
.hotel-subtitle {color:#cdbfac}
.hotel-card .text-link {color:#e6c690}
.hotel-arrow {background:linear-gradient(130deg,#fae5b8,#c39a51);color:#201006;border-color:#f9e5b982}
.hotels .slider-controls button {background:linear-gradient(125deg,#352819,#120c08);border-color:#c6a06a70}
.hotels .slider-controls>p {color:#eadcc6}
.hotels .slider-total {color:#c2ad8d}
.hotel-offer {background:linear-gradient(125deg,#34241b,#140c09 72%);border-color:#d1a5686b}
.hotel-offer::before {background:linear-gradient(transparent,#fbe1a6 37%,#ae7936 75%,transparent)}
.hotel-offer p {color:#f0e1cb}
.hotel-offer .offer-details {color:#cfb99a}
.hotel-offer .offer-phone {color:#f3d299}
.hotel-offer .offer-whatsapp {color:#e4c9a1;border-color:#b58b52}
/* Animated golden arches and deep-red light, from the approved scenic palette. */
.wishlist {background:radial-gradient(ellipse at 50% 15%,#66100e66,transparent 64%),#100705}
.wish-arch {--neon-ruby:#eab867}
.wish-arch-middle {--neon-ruby:#cc913e;opacity:.75}
.wish-arch-inner {--neon-ruby:#a66b2a;opacity:.51}
.wish-arch-halo {stroke-width:11;filter:blur(6px)}
.wish-arch-core {stroke:#ffe0a4}
.wish-arch-current {stroke:#fff3cb;filter:drop-shadow(0 0 4px #ffd18a)}
.wish-neon-floor {background:radial-gradient(ellipse at 50% 65%,transparent 32%,#9b421f40 42%,#e9b6543d 44%,transparent 59%)}
.wishlist .eyebrow {color:#d2b382}
.wishlist .body-copy {color:#deccb2}
.wishlist .text-link {color:#e2c48c}
.rsvp {background:radial-gradient(ellipse at 0 0,#8e151344,transparent 64%),#200a07;border-color:#c5984d3d}
.rsvp .eyebrow {color:#d3ac6c}
.rsvp .body-copy {color:#dac1a1}
.rsvp-light-wash {background:radial-gradient(ellipse at 4% 19%,#a51b1759,transparent 59%)}
.rsvp-light-beam {background:linear-gradient(116deg,transparent 37%,#bf311d1a 43%,#dfaa4e30 48%,#ffedb44f 50%,#d1984930 53%,transparent 61%)}
.rsvp-light-glint {background:linear-gradient(90deg,transparent,#dfb46780,#fff0bc,transparent);box-shadow:0 0 17px 4px #dca75546}
.rsvp input[type=text],.rsvp textarea,.rsvp select {background-color:#1a0b08b3;border-color:#b18a515f;color:#f5e4c9}
.rsvp input::placeholder,.rsvp textarea::placeholder {color:#bda78d}
.rsvp input[type=text]:focus,.rsvp textarea:focus,.rsvp select:focus {border-color:#ddb56e}
.rsvp select {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23dec08a' stroke-width='1.5'/%3E%3C/svg%3E")}
.rsvp option {background:#231008;color:#f4e0bf}
.rsvp .attendance-options span {border-color:#b18a515f;background:#160b085c}
.rsvp .attendance-options input:checked+span {background:#e5c28c;color:#301309;border-color:#e5c28c}
.rsvp .attendance-options input:focus-visible+span {outline-color:#ddb56e}
.rsvp .optional {color:#bd9d79}
.rsvp .primary-button,.sticky-rsvp {background:linear-gradient(115deg,#ebd0a0,#f7e7c6 45%,#d5b279);color:#321609;border-color:#d9b67e}
.rsvp .field-error {color:#f0b19c}
.footer {background:#080605}
.footer .eyebrow,.organizer .tiny {color:#bda482}
.footer .text-link,.contact-phone {color:#e7c998}
.footer-title>span:first-child {color:#e5c17d}
.footer-title>span:last-child {color:#ceb184}
.footer-signature {color:#bca68c}
.footer-chandeliers {z-index:0;opacity:.7}
.footer-chandeliers .chandelier-left {top:-57px;left:-52px;width:136px}
.footer-chandeliers .chandelier-right {top:-6px;right:-60px;width:124px}
.menu-dialog {background:#150906;color:#edd9b9}
.menu-contact,.menu-date {color:#c9a46b}
@keyframes concept-camera-arrive {from{transform:scale(1.09);filter:brightness(.65)}to{transform:scale(1.015);filter:brightness(1)}}
@keyframes chandelier-sway {from{transform:rotate(-1.1deg)}to{transform:rotate(1.1deg)}}
@keyframes chandelier-candle {from{opacity:.86;filter:drop-shadow(0 0 5px #d18b2c35)}to{opacity:1;filter:drop-shadow(0 0 9px #eeb64a48)}}
section:not(.motion-active) .concept-chandelier,section:not(.motion-active) .concept-chandelier img,footer:not(.motion-active) .concept-chandelier,footer:not(.motion-active) .concept-chandelier img {animation-play-state:paused}
@media(min-width:650px) {
 .hero::before {content:'';position:absolute;inset:-10%;z-index:-5;pointer-events:none;background:url('assets/stage-red-gold-v11.jpg') center 64%/cover;filter:blur(22px) brightness(.32)}
 .hero .stage-backdrop {inset:0;left:50%;width:min(100%,680px);transform:translate3d(-50%,calc(var(--hero-travel) * .04),0)}
 .hero .hero-curtain {object-fit:contain;object-position:50% 50%}
 .hero .stage-wings {display:block;opacity:.85;filter:sepia(.2) saturate(1.4) hue-rotate(10deg)}
 .hero .stage-wing {width:23%;max-width:420px}
 .hero .wing-left {left:-4%}.hero .wing-right {right:-4%}
 .hero-center {top:16%;bottom:auto;left:calc(50% - 250px);right:auto;width:500px}
 .title-life {font-size:180px}.title-kaif {font-size:49px}
 .concept-chandelier {width:125px;top:4%}
 .chandelier-left {left:max(4%,calc(50% - 330px))}
 .chandelier-right {right:max(4%,calc(50% - 330px));width:110px;top:8%}
 .spotlight-left {left:calc(50% - 190px)}.spotlight-right {right:calc(50% - 190px)}
 .cabaret-art {height:auto;min-height:760px}
 .cabaret-chandeliers .concept-chandelier {width:110px}
 .cabaret-chandeliers .chandelier-right {width:98px}
 .footer-chandeliers .chandelier-left {left:4%;width:140px}
 .footer-chandeliers .chandelier-right {right:4%;width:126px}
}
@media(min-width:1050px) {
 .hero-center {top:17%;bottom:auto}
 .title-life {font-size:195px}.title-kaif {font-size:52px}
 .hero .stage-wing {width:28%;max-width:480px}
}
@media(max-width:359px) {
 .hero-center {top:17%;bottom:auto}
 .hero-invitation {font-size:12px;letter-spacing:.06em;margin-bottom:14px}
 .title-life {font-size:126px}.title-kaif {font-size:34px}
 .concept-chandelier {width:70px;left:-6%;top:4%}
 .chandelier-right {left:auto;right:-6%;width:65px;top:8%}
 .cabaret-art {height:560px}
 .cabaret-chandeliers .concept-chandelier {width:78px}
 .cabaret-chandeliers .chandelier-right {width:71px}
}
@media(prefers-reduced-motion:reduce) {
 .scene-has-started .title-life,.scene-has-started .hero-curtain,.concept-chandelier,.concept-chandelier img {animation:none!important}
 .concept-chandelier {transform:none}
 .hero .hero-curtain {opacity:1;transform:none;filter:none}
 .title-life {background-position:45% 50%}
}

/* Gold foil: a moving specular reflection over a separate metallic base. */
.gold-type {color:#e4c083;--gold-cycle:9.6s;--gold-delay:-1.4s}
@supports ((background-clip:text) or (-webkit-background-clip:text)) {
 .gold-type {
  background-image:linear-gradient(112deg,transparent 30%,#ebc78024 41%,#fff1c38a 47%,#fff8decc 50%,#fff1c38a 53%,#ebc78024 59%,transparent 70%),linear-gradient(168deg,#b08a4a 0%,#dfbe7c 15%,#fff0c7 28%,#e6c588 39%,#ba8d48 52%,#e5c68b 68%,#fff1cb 79%,#c99d59 100%);
  background-size:260% 100%,100% 160%;background-position:145% 50%,50% 0%;background-repeat:no-repeat;
  background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
  text-shadow:none;filter:drop-shadow(0 1px .35px #5d350d) drop-shadow(0 0 8px #c58c2c17);
  animation:gold-foil-reflection var(--gold-cycle) var(--gold-delay) cubic-bezier(.42,0,.28,1) infinite;
 }
 .invitation .gold-type {--gold-delay:-1.8s}
 .program .gold-type {--gold-delay:-1s;--gold-cycle:10s}
 .dress-content .gold-type {--gold-delay:-2.5s}
 .hotels .gold-type {--gold-delay:-2s;--gold-cycle:10.2s}
 .wishlist .gold-type {--gold-delay:-.9s;--gold-cycle:9s}
 .rsvp .gold-type {--gold-delay:-2.2s}
 .footer .gold-type {--gold-delay:-1.6s;--gold-cycle:10s}
}

@keyframes gold-foil-reflection {
 0%,12% {background-position:145% 50%,50% 0%}
 42% {background-position:55% 50%,50% 80%}
 76%,88% {background-position:-45% 50%,50% 35%}
 100% {background-position:-45% 50%,50% 0%}
}

section:not(.motion-active) .gold-type,footer:not(.motion-active) .gold-type {animation-play-state:paused!important}

@media(prefers-reduced-motion:reduce) {
 .gold-type {animation:none!important;background-position:50% 50%,50% 40%}

}
@media(forced-colors:active) {
 .gold-type {background:none!important;-webkit-text-fill-color:CanvasText;color:CanvasText;filter:none;animation:none!important}

}

/* Actual PNG lettering from the approved poster, with light clipped to its alpha. */
.hero-title .wordmark,.footer-title .wordmark {
 position:relative;display:block;flex:none;isolation:isolate;
 margin:0;padding:0;line-height:0;font-size:0;letter-spacing:0;
 background:none;color:inherit;-webkit-text-fill-color:initial;text-shadow:none;filter:none;
}
.wordmark img {display:block;width:100%;height:auto;max-width:100%}
.wordmark-life {--wordmark-mask:url('assets/wordmarks/life-marquee-v14.png');--wordmark-delay:2.1s}
.wordmark-kaif {--wordmark-mask:url('assets/wordmarks/v-kaif-gold-v14.png');--wordmark-delay:2.7s}
.hero-title .wordmark-life {width:86%;max-width:410px}
.hero-title .wordmark-kaif {width:100%;max-width:480px;margin-top:-8px}
.footer-title {width:220px;max-width:100%}
.footer-title .wordmark-life {width:86%;--wordmark-delay:-1.6s}
.footer-title .wordmark-kaif {width:100%;margin-top:-5px;--wordmark-delay:-1s}
@supports ((mask-image:url('')) or (-webkit-mask-image:url(''))) {
 .wordmark::after {
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(112deg,transparent 32%,#e5b15a30 42%,#fff1bdcf 48%,#fffbe9 50%,#ffe9a8b0 52%,#ddb46a2b 58%,transparent 68%);
  background-size:260% 100%;background-position:145% 50%;background-repeat:no-repeat;
  mask-image:var(--wordmark-mask);-webkit-mask-image:var(--wordmark-mask);
  mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;
  mask-mode:alpha;mix-blend-mode:screen;opacity:0;
  animation:wordmark-gold-light 7.8s var(--wordmark-delay) cubic-bezier(.42,0,.28,1) infinite;
 }
}
@keyframes wordmark-gold-light {
 0%,10% {background-position:145% 50%;opacity:0}
 24% {opacity:.8}
 66% {opacity:.8}
 80%,100% {background-position:-45% 50%;opacity:0}
}
body:not(.scene-has-started) .hero .wordmark::after,
section:not(.motion-active) .wordmark::after,footer:not(.motion-active) .wordmark::after,
body.page-is-hidden .wordmark::after {animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce) {
 .wordmark::after {display:none;animation:none!important}
}
@media(forced-colors:active) {
 .hero-title .wordmark,.footer-title .wordmark {display:none}
 .hero-title .wordmark-fallback,.footer-title .wordmark-fallback {
  position:static;width:auto;height:auto;margin:0;clip:auto;overflow:visible;white-space:normal;
  color:CanvasText;-webkit-text-fill-color:CanvasText;font-size:clamp(44px,14vw,76px);line-height:1.15;letter-spacing:0;
 }
 .footer-title .wordmark-fallback {font-size:30px}
}

/* Text typography follows the supplied website reference's Cormorant family. */
:root {--event-serif:'Cormorant',Georgia,'Times New Roman',serif}
.invitation .display,.program .display,.dress-content .display,.hotel-heading .display,
.wishlist .display,.rsvp .display,.contact-name {
 font-family:var(--event-serif);font-style:normal;font-weight:500;
 letter-spacing:.005em;line-height:1.06;text-wrap:balance;
 overflow:visible;padding-bottom:.07em;
}
.invitation .display {font-size:clamp(40px,11vw,64px);line-height:1.1}
.program .display {font-size:clamp(48px,13vw,78px)}
.dress-content .display {font-size:clamp(50px,14vw,78px)}
.hotel-heading .display {font-size:clamp(48px,12.8vw,76px)}
.wishlist .display {font-size:clamp(60px,16vw,88px)}
.rsvp .display {font-size:clamp(50px,13.5vw,76px)}
.contact-name {font-size:72px}
.invitation-copy,.dress-content .body-copy,.wishlist .body-copy,.rsvp .body-copy,.hotel-intro {
 font-family:var(--event-serif);font-weight:400;font-size:23px;line-height:1.45;letter-spacing:.005em;
}
.invitation-copy {max-width:520px;margin-left:auto;margin-right:auto;font-size:24px;line-height:1.5}
.invitation-date,.time,.hotel-card h3,.time-description h3,.menu-dialog nav a {
 font-family:var(--event-serif);font-weight:500;letter-spacing:.005em;
}
.invitation-date {font-size:clamp(33px,9vw,45px);line-height:1.15}
.time {font-size:clamp(41px,11vw,58px);line-height:1.1;letter-spacing:-.015em}
.time-description h3 {font-size:26px;line-height:1.2}
.hotel-card h3 {font-size:30px;line-height:1.13}
.menu-dialog nav a {font-size:clamp(32px,10vw,43px);line-height:1.2}
.event-ticker-group {font-family:var(--event-serif);font-weight:500;letter-spacing:.035em}
/* Beam sources sit below the image edge; no fixture silhouettes float over the room. */
.hero .spotlight {bottom:-26px;width:1px;height:1px;opacity:.8}
.hero .spotlight-left {left:4%}
.hero .spotlight-right {right:4%}
.hero .spot-pivot {transform-origin:50% 50%}
.hero .spot-beam {top:0;width:min(125vw,820px);filter:blur(6px);opacity:.65}
/* A tighter crop keeps the stage itself as the transition into the dress code. */
.cabaret-art {height:clamp(360px,110vw,480px);min-height:0}
.cabaret-backdrop {top:auto;bottom:0;height:145%;object-position:50% 100%;transform:none}
.cabaret-art .stage-atmosphere {mask-image:linear-gradient(transparent 25%,#000 60%,#000 90%,transparent);-webkit-mask-image:linear-gradient(transparent 25%,#000 60%,#000 90%,transparent)}
@media(min-width:650px) {
 .cabaret-art {height:auto;min-height:620px}
 .hero .spotlight-left {left:max(8%,calc(50% - 350px))}
 .hero .spotlight-right {right:max(8%,calc(50% - 350px))}
 .invitation-copy {font-size:27px}
 .dress-content .body-copy,.wishlist .body-copy,.rsvp .body-copy,.hotel-intro {font-size:25px}
 .dress-content .display {font-size:clamp(46px,7.6vw,76px)}
}
@media(max-width:359px) {
 .invitation .display {font-size:38px}
 .program .display {font-size:46px}
 .dress-content .display {font-size:48px}
 .hotel-heading .display {font-size:46px}
 .rsvp .display {font-size:48px}
 .time {font-size:39px}
 .time-description h3 {font-size:24px}
}

/* Program: lacquered grand piano and velvet, with space for live text. */
.program {background:#0d0806}
.program::after {display:none}
.program-curtain {
 background-image:linear-gradient(90deg,#080605ba,#0d08066e 55%,#1c090344),linear-gradient(0deg,#0a0606b0,transparent 45%),url('assets/program-piano-v16.jpg');
 background-position:50% 100%;background-size:cover;background-repeat:no-repeat;opacity:1;
}
.program .timeline {text-shadow:0 2px 12px #070403cc}
.program .stage-atmosphere {opacity:.3}
/* Dress code: neutral satin and velvet with softly moving warm light. */
.cabaret-art {background:#100906}
.cabaret-backdrop {top:0;bottom:auto;height:100%;object-position:50% 50%;transform:none;opacity:1}
.cabaret-art::after {background:linear-gradient(180deg,#0706050a,transparent 59%,#47090b)}
.cabaret-sweep {animation-duration:9.4s;background:linear-gradient(106deg,transparent 30%,#b37a2910 44%,#ffe6aa29 50%,#b9782410 56%,transparent 70%)}
.cabaret-art .stage-atmosphere {opacity:.23;mask-image:linear-gradient(transparent 54%,#000 86%,transparent);-webkit-mask-image:linear-gradient(transparent 54%,#000 86%,transparent)}
@media(min-width:900px) {
 .program-curtain {background-size:100% 100%,100% 100%,auto 130%;background-position:0 0,0 0,100% 100%}
 .program .program-sheet {max-width:1080px}
 .program .section-heading,.program .timeline {max-width:620px}
}

/* Wish list: the new silhouette-panel reference becomes a separate photographic scene. */
.wishlist {display:block;min-height:0;padding:90px 0 0;background:#100705}
.wishlist>.section-inner {width:100%;max-width:660px;margin:0 auto 24px;padding:0 var(--page);z-index:2}
.wish-scene {
 position:relative;isolation:isolate;width:100%;max-width:640px;aspect-ratio:1122 / 1402;
 margin:-28px auto 0;overflow:hidden;pointer-events:none;
 mask-image:linear-gradient(transparent,#000 15%,#000 91%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 15%,#000 91%,transparent);
}
.wish-scene-art {display:block;width:100%;height:100%;object-fit:contain}
.wish-scene-glow,.wish-scene-sweep {position:absolute;pointer-events:none;mix-blend-mode:screen;z-index:1}
.wish-scene-glow {inset:0;background:radial-gradient(ellipse at 36% 52%,#ffd68824,transparent 32%),radial-gradient(ellipse at 66% 53%,#ffcf7b24,transparent 31%);animation:wish-panel-light 8s ease-in-out infinite alternate}
.wish-scene-sweep {inset:-20%;background:linear-gradient(108deg,transparent 40%,#ffe4ad20 49%,#fff1d02e 50%,#ffe4ad20 51%,transparent 60%);animation:wish-panel-sweep 11s ease-in-out infinite}
.wish-scene .stage-atmosphere {z-index:2;opacity:.3;mask-image:linear-gradient(transparent 72%,#000 89%,transparent);-webkit-mask-image:linear-gradient(transparent 72%,#000 89%,transparent)}
@keyframes wish-panel-light {from{opacity:.2}to{opacity:.85}}
@keyframes wish-panel-sweep {0%,12%{transform:translateX(-55%);opacity:0}28%,68%{opacity:.8}88%,100%{transform:translateX(55%);opacity:0}}
.wishlist:not(.motion-active) .wish-scene-glow,.wishlist:not(.motion-active) .wish-scene-sweep {animation-play-state:paused}
@media(min-width:900px) {
 .wishlist {display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);align-items:center;min-height:650px;padding:0 var(--page)}
 .wishlist>.section-inner {grid-column:2;grid-row:1;width:100%;max-width:560px;margin:0;padding:80px 26px;justify-self:start}
 .wish-scene {grid-column:1;grid-row:1;max-width:620px;margin:0;justify-self:end}
}
@media(prefers-reduced-motion:reduce) {
 .wish-scene-glow {animation:none;opacity:.3}
 .wish-scene-sweep {display:none;animation:none}
}

/* Mobile finishing: safe areas, short screens and resilient initial loading. */
html.entrance-boot .entrance[hidden] {display:block!important;background:#090605}
html.entrance-boot .hero-center,html.entrance-boot .site-header {visibility:hidden}
.entrance-panel {background-color:#100907}
.site-header {padding-top:max(20px,env(safe-area-inset-top));padding-left:max(var(--page),env(safe-area-inset-left));padding-right:max(var(--page),env(safe-area-inset-right))}
.site-header.scrolled {padding-top:max(12px,env(safe-area-inset-top))}
.menu-dialog {padding-top:max(25px,env(safe-area-inset-top));padding-bottom:max(30px,env(safe-area-inset-bottom))}
.rsvp-grid>* {min-width:0}
.header-act {min-height:44px}
.footer {padding-bottom:max(32px,env(safe-area-inset-bottom))}
@media(max-width:649px) {
 .hero {height:100vh;height:100svh;min-height:560px}
 .hero-center {top:17%;bottom:auto}
 .hero-bottom {bottom:max(3%,env(safe-area-inset-bottom))}
}
@media(max-width:359px) {
 .header-actions {gap:2px}
 .music-toggle {padding-left:8px;padding-right:8px;gap:6px}
 .music-label {font-size:12px}
 .footer-signature {flex-wrap:wrap;justify-content:center;gap:7px 18px}
}
