
:root,
html[data-theme="midnight"]{
  --bg:#0a0612;--bg2:#191025;--stage:#2b1740;--paper:#fff2d8;--ink:#1a1121;--white:#fff;
  --red:#ff4f64;--pink:#ff7fb7;--yellow:#ffd84d;--blue:#55d6ff;--violet:#8b63ff;--green:#72db8c;
  --hero1:#241238;--hero2:#0b0712;--curtain1:#8c1537;--curtain2:#ba2049;
  --schedule1:#1c1530;--schedule2:#0d0917;--location-bg:#8b63ff;--dress-bg:#ff7fb7;
  --bar-bg:#55d6ff;--rsvp1:#2b1d42;--rsvp2:#0b0712;--screen:#b5f29d;
}
html[data-theme="champagne"]{
  --bg:#1c1711;--bg2:#2b2319;--stage:#3a2d20;--paper:#fff4df;--ink:#251d15;--white:#fff;
  --red:#c97d5f;--pink:#d9a395;--yellow:#e8c66d;--blue:#8eb8b3;--violet:#9c8774;--green:#8aa77c;
  --hero1:#3a2d20;--hero2:#17120e;--curtain1:#7d3f31;--curtain2:#a85d45;
  --schedule1:#2c241b;--schedule2:#15110d;--location-bg:#9c8774;--dress-bg:#d9a395;
  --bar-bg:#8eb8b3;--rsvp1:#3a2c22;--rsvp2:#16110d;--screen:#d9e4b6;
}
html[data-theme="neon"]{
  --bg:#08050e;--bg2:#140a24;--stage:#2a0d46;--paper:#f8efff;--ink:#170c28;--white:#fff;
  --red:#ff2f91;--pink:#ff6bd6;--yellow:#e8ff36;--blue:#20e5ff;--violet:#7a47ff;--green:#4dff87;
  --hero1:#22083d;--hero2:#08050e;--curtain1:#71005a;--curtain2:#c0008f;
  --schedule1:#180b2a;--schedule2:#07040d;--location-bg:#7a47ff;--dress-bg:#ff6bd6;
  --bar-bg:#20e5ff;--rsvp1:#250b3b;--rsvp2:#07040d;--screen:#9dff72;
}
html[data-theme="velvet"]{
  --bg:#16070c;--bg2:#2a0e17;--stage:#421425;--paper:#fff0ea;--ink:#2a1118;--white:#fff;
  --red:#d63e5d;--pink:#e5819b;--yellow:#e7b95c;--blue:#7fa8b4;--violet:#8d5973;--green:#7f9d78;
  --hero1:#401321;--hero2:#14060b;--curtain1:#650f25;--curtain2:#9d1d3b;
  --schedule1:#32101c;--schedule2:#12060a;--location-bg:#8d5973;--dress-bg:#e5819b;
  --bar-bg:#7fa8b4;--rsvp1:#3b1323;--rsvp2:#12060a;--screen:#c8e09a;
}
html[data-theme="emerald"]{
  --bg:#08130f;--bg2:#11231b;--stage:#18392d;--paper:#f0f5ef;--ink:#14231c;--white:#fff;
  --red:#d45f62;--pink:#c9859a;--yellow:#d5bd63;--blue:#6ca9a1;--violet:#6e7f73;--green:#69a878;
  --hero1:#17392d;--hero2:#07120e;--curtain1:#234f3d;--curtain2:#34765b;
  --schedule1:#12291f;--schedule2:#07110d;--location-bg:#6e7f73;--dress-bg:#c9859a;
  --bar-bg:#6ca9a1;--rsvp1:#193a2e;--rsvp2:#07110d;--screen:#b8d88e;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,var(--bg),var(--bg2));color:#fff;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;z-index:99;pointer-events:none;opacity:.12;background:repeating-linear-gradient(0deg,rgba(255,255,255,.12) 0 1px,transparent 1px 3px)}
img{display:block;width:100%;height:100%;object-fit:cover}
.scene{position:relative;min-height:100vh;overflow:hidden}
.scene-inner{position:relative;width:min(1500px,100%);min-height:100vh;margin:auto;padding:clamp(70px,8vw,120px) clamp(18px,6vw,90px)}
.live{position:fixed;top:14px;left:14px;z-index:50;display:flex;align-items:center;gap:10px;padding:10px 14px;border:3px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:5px 5px 0 #000;font-weight:1000}
.live i{width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 6px rgba(255,79,100,.2)}
.channel{position:fixed;top:14px;right:14px;z-index:50;padding:10px 14px;border:3px solid var(--ink);border-radius:999px;background:var(--yellow);color:var(--ink);box-shadow:5px 5px 0 #000;font-weight:1000}
.hero{background:radial-gradient(circle at 50% 15%,rgba(255,255,255,.16),transparent 36%),linear-gradient(180deg,var(--hero1),var(--hero2))}
.curtain{position:absolute;top:0;bottom:0;width:22%;background:repeating-linear-gradient(90deg,var(--curtain1) 0 28px,var(--curtain2) 28px 56px);z-index:2}
.curtain.left{left:0;clip-path:polygon(0 0,100% 0,72% 100%,0 100%)}.curtain.right{right:0;clip-path:polygon(0 0,100% 0,100% 100%,28% 100%)}
.spot{position:absolute;top:-12%;width:38%;height:120%;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 72%);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);filter:blur(1px);animation:swing 6s ease-in-out infinite alternate}
.spot.s1{left:12%;transform:rotate(-12deg)}.spot.s2{right:12%;transform:rotate(12deg);animation-delay:-2s}
@keyframes swing{to{transform:rotate(8deg)}}
.hero .scene-inner{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:40px}
.hero-copy{position:relative;z-index:6}
.eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:1000;color:var(--blue)}
.hero h1{margin:18px 0 20px;font-size:clamp(74px,12vw,180px);line-height:.72;letter-spacing:-.095em;text-transform:uppercase}
.hero h1 span{display:block;color:var(--red)}
.hero p{max-width:680px;color:#d3c8df;font-size:clamp(20px,2.2vw,31px);line-height:1.45;font-weight:800}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 24px;margin-top:30px;border:4px solid var(--ink);border-radius:18px;background:var(--yellow);color:var(--ink);text-decoration:none;text-transform:uppercase;font-weight:1000;box-shadow:7px 7px 0 #000}
.host{position:relative;z-index:5;min-height:760px}
.host-card{position:absolute;inset:4% 8%;border:5px solid var(--ink);border-radius:46% 46% 14px 14px;overflow:hidden;box-shadow:16px 16px 0 #000;background:#ddd}
.host-card img{object-position:center 20%;filter:saturate(.9) contrast(1.05)}
.host-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.55))}
.nameplate{position:absolute;left:10%;right:10%;bottom:8%;z-index:6;padding:18px 20px;border:4px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:7px 7px 0 #000;font-size:clamp(22px,2.7vw,38px);font-weight:1000;text-transform:uppercase;transform:rotate(-2deg)}
.mic{position:absolute;right:2%;bottom:9%;z-index:8;width:90px;height:240px}
.mic:before{content:"";position:absolute;left:18px;top:0;width:58px;height:88px;border:4px solid var(--ink);border-radius:50%;background:var(--blue)}
.mic:after{content:"";position:absolute;left:43px;top:84px;width:10px;height:145px;background:var(--ink);box-shadow:0 138px 0 25px var(--ink)}
.ticker{position:absolute;left:0;right:0;bottom:0;z-index:10;display:flex;gap:40px;white-space:nowrap;overflow:hidden;border-top:5px solid var(--ink);border-bottom:5px solid var(--ink);background:var(--yellow);color:var(--ink);padding:13px 0;font-weight:1000;text-transform:uppercase}
.ticker-track{display:flex;gap:40px;animation:marquee 18s linear infinite}
@keyframes marquee{to{transform:translateX(-50%)}}
.segment{background:var(--paper);color:var(--ink)}
.segment-head{display:flex;align-items:end;justify-content:space-between;gap:30px}
.segment h2{margin:0;font-size:clamp(58px,10vw,145px);line-height:.8;letter-spacing:-.08em;text-transform:uppercase}
.segment p{max-width:720px;font-size:clamp(20px,2vw,28px);line-height:1.5;font-weight:800;color:#675d6c}
.teleprompter{margin-top:45px;padding:32px;border:5px solid var(--ink);background:#111;color:#79ff8f;box-shadow:12px 12px 0 var(--ink);font-family:monospace;font-size:clamp(18px,2vw,28px);line-height:1.6}
.adbreak{background:var(--red);color:#fff}
.adbreak .scene-inner{display:flex;align-items:center;justify-content:center}
.ad-card{width:min(1100px,100%);padding:55px;border:6px solid var(--ink);background:var(--yellow);color:var(--ink);box-shadow:18px 18px 0 #000;transform:rotate(-1deg)}
.ad-card h2{margin:0 0 24px;font-size:clamp(64px,10vw,150px);line-height:.78;letter-spacing:-.09em;text-transform:uppercase}
.ad-card p{font-size:clamp(20px,2.2vw,31px);line-height:1.45;font-weight:900}
.schedule{background:linear-gradient(180deg,var(--schedule1),var(--schedule2))}
.schedule h2,.location h2,.gallery h2,.dress h2,.bar-scene h2,.rsvp h2{margin:0 0 28px;font-size:clamp(62px,10vw,145px);line-height:.78;letter-spacing:-.085em;text-transform:uppercase}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
.slot{position:relative;min-height:420px;padding:28px;border:5px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:9px 9px 0 #000;overflow:hidden}
.slot b{font-size:52px;color:var(--red)}.slot h3{margin:18px 0 10px;font-size:36px}.slot p{margin:0;font-size:19px;line-height:1.5;font-weight:800;color:#6a5e70}
.slot:after{content:"";position:absolute;right:-35px;bottom:-35px;width:150px;height:150px;border:5px solid var(--ink);border-radius:50%;background:var(--blue)}
.location{background:var(--location-bg)}
.location-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px}
.location-copy{padding:38px;border:5px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:10px 10px 0 #000}
.location-copy h3{margin:0 0 14px;font-size:clamp(42px,6vw,84px);line-height:.9}.location-copy p{font-size:21px;line-height:1.5;font-weight:800;color:#645c67}
.location-photo{position:relative;min-height:620px;border:5px solid var(--ink);overflow:hidden;box-shadow:10px 10px 0 #000}
.location-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.5))}
.breaking{position:absolute;left:20px;bottom:20px;z-index:4;padding:14px 18px;border:4px solid var(--ink);background:var(--red);color:#fff;box-shadow:6px 6px 0 #000;font-weight:1000;text-transform:uppercase}
.dress{background:var(--dress-bg);color:var(--ink)}
.palette{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:40px}
.swatch{aspect-ratio:1;border:5px solid var(--ink);border-radius:50%;box-shadow:7px 7px 0 #000}
.swatch:nth-child(1){background:var(--yellow)}.swatch:nth-child(2){background:var(--blue)}.swatch:nth-child(3){background:var(--green)}.swatch:nth-child(4){background:var(--violet)}.swatch:nth-child(5){background:var(--red)}
.bar-scene{background:var(--bar-bg);color:var(--ink)}
.bar-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.menu{padding:34px;border:5px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 #000}
.menu-row{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:3px dashed var(--ink);font-size:20px;font-weight:1000}
.cocktail-art{position:relative;min-height:560px}
.glass{position:absolute;left:22%;right:22%;bottom:10%;height:68%;clip-path:polygon(0 0,100% 0,66% 75%,58% 75%,58% 100%,42% 100%,42% 75%,34% 75%);background:linear-gradient(180deg,var(--red),var(--yellow));border:6px solid var(--ink)}
.olive{position:absolute;right:18%;top:18%;width:90px;height:90px;border:5px solid var(--ink);border-radius:50%;background:var(--green);box-shadow:7px 7px 0 #000}
.gallery{background:var(--paper);color:var(--ink)}
.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-auto-rows:260px;gap:18px}
.frame{position:relative;border:5px solid var(--ink);overflow:hidden;box-shadow:8px 8px 0 #000}
.frame:nth-child(1){grid-row:span 2}.frame:nth-child(4){grid-column:span 2}
.frame:after{content:attr(data-label);position:absolute;left:14px;bottom:14px;padding:7px 10px;border:3px solid var(--ink);background:var(--paper);font-weight:1000}
.rsvp{background:radial-gradient(circle at center,var(--rsvp1),var(--rsvp2))}
.rsvp-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}
.phone{padding:28px;border:6px solid var(--ink);border-radius:40px;background:#262033;box-shadow:14px 14px 0 #000}
.screen{padding:28px;border:5px solid var(--ink);border-radius:22px;background:var(--screen);color:var(--ink)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}
label{font-weight:1000}input,textarea,select{width:100%;padding:15px;border:4px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-weight:800}textarea{min-height:120px;resize:vertical}
.submit{width:100%;min-height:58px;border:4px solid var(--ink);border-radius:14px;background:var(--yellow);color:var(--ink);box-shadow:5px 5px 0 var(--ink);font-weight:1000;text-transform:uppercase}
.credits{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;background:#05030a;padding:80px 20px}
.credits h2{margin:0;font-size:clamp(52px,9vw,130px);line-height:.88;text-transform:uppercase}

.theme-switcher{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:120;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  width:min(560px,calc(100vw - 32px));
  padding:10px;
  border:3px solid var(--ink);
  border-radius:20px;
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  box-shadow:7px 7px 0 #000;
  backdrop-filter:blur(12px);
}
.theme-switcher button{
  min-height:36px;
  padding:0 12px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:#fff;
  color:#17131d;
  font-weight:1000;
  font-size:11px;
  cursor:pointer;
}
.theme-switcher button[aria-pressed="true"]{
  background:var(--yellow);
  box-shadow:3px 3px 0 var(--ink);
  transform:translate(-1px,-1px);
}
@media(max-width:640px){
  .theme-switcher{
    left:8px;
    right:8px;
    bottom:8px;
    width:auto;
    justify-content:flex-start;
    max-height:120px;
    overflow:auto;
  }
  .credits{padding-bottom:160px}
}

@media(max-width:980px){.hero .scene-inner,.location-grid,.bar-grid,.rsvp-grid{grid-template-columns:1fr}.host{min-height:650px}.timeline{grid-template-columns:1fr}}
@media(max-width:640px){.scene-inner{padding:82px 16px}.hero h1{font-size:clamp(70px,23vw,112px)}.host{min-height:500px}.poster{inset:3% 2%}.curtain{width:15%}.quote{width:180px}.timeline{gap:16px}.slot{min-height:330px}.palette{grid-template-columns:repeat(3,1fr)}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:280px}.frame:nth-child(1),.frame:nth-child(4){grid-row:auto;grid-column:auto}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}

:root{--ease:cubic-bezier(.22,.8,.28,1);--safe-bottom:max(24px,env(safe-area-inset-bottom))}
html{scroll-snap-type:y proximity}.scene{scroll-snap-align:start}
body{padding-bottom:var(--safe-bottom)}
.live i{animation:onair 1.4s ease-in-out infinite}
@keyframes onair{50%{transform:scale(.72);opacity:.45}}
.curtain{transition:transform 1.2s var(--ease)}
body.is-ready .curtain.left{transform:translateX(-88%)}
body.is-ready .curtain.right{transform:translateX(88%)}
.hero-copy>*{opacity:0;transform:translateY(24px)}
body.is-ready .hero-copy>*{animation:rise .8s var(--ease) forwards}
body.is-ready .hero-copy .eyebrow{animation-delay:.15s}
body.is-ready .hero-copy h1{animation-delay:.28s}
body.is-ready .hero-copy p{animation-delay:.4s}
body.is-ready .hero-copy .hero-meta{animation-delay:.5s}
body.is-ready .hero-copy .btn{animation-delay:.62s}
@keyframes rise{to{opacity:1;transform:none}}
.hero h1{position:relative;z-index:2;margin-bottom:8px;line-height:.76}
.hero h1 .hero-name{display:block;white-space:nowrap}
.hero h1 .hero-age{display:block;margin-left:.04em;color:transparent;-webkit-text-stroke:2px var(--red);font-size:.78em;line-height:.9}
.hero-number{position:absolute;right:2%;bottom:3%;z-index:1;font-size:clamp(180px,28vw,420px);line-height:.7;font-weight:1000;color:transparent;-webkit-text-stroke:2px color-mix(in srgb,var(--yellow) 46%,transparent);opacity:.45;pointer-events:none}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.hero-meta span{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:3px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:4px 4px 0 #000;font-size:12px;font-weight:1000;text-transform:uppercase}
.host-card{transition:transform .65s var(--ease),box-shadow .65s var(--ease)}
.host-card:hover{transform:rotate(.8deg) scale(1.015);box-shadow:22px 22px 0 #000}
.nameplate{animation:floatplate 4.8s ease-in-out infinite}
@keyframes floatplate{50%{transform:rotate(1deg) translateY(-6px)}}
.reveal-card{opacity:0;transform:translateY(34px);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal-card.visible{opacity:1;transform:none}
.teleprompter{position:relative;overflow:hidden}
.teleprompter:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(121,255,143,.14),transparent);transform:translateX(-120%)}
.teleprompter.visible:after{animation:scan 2.6s ease-out}
@keyframes scan{to{transform:translateX(120%)}}
.ad-card{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.ad-card:hover{transform:rotate(0) translateY(-8px);box-shadow:24px 24px 0 #000}
.timeline{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.slot{transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.slot:hover{transform:translateY(-8px) rotate(-.5deg);box-shadow:15px 15px 0 #000}
.location-copy{display:flex;flex-direction:column;justify-content:center}
.studio-kicker{margin-bottom:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:1000}
.location-photo img{transition:transform .9s var(--ease)}
.location-photo:hover img{transform:scale(1.04)}
.cast-board{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:18px;margin-top:40px}
.cast-card{position:relative;min-height:300px;padding:18px;border:5px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 #000;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.cast-card:hover{transform:translateY(-8px);box-shadow:13px 13px 0 #000}
.cast-tone{position:absolute;inset:0 0 42%}
.cast-card:nth-child(1) .cast-tone{background:var(--yellow)}
.cast-card:nth-child(2) .cast-tone{background:var(--blue)}
.cast-card:nth-child(3) .cast-tone{background:var(--green)}
.cast-card:nth-child(4) .cast-tone{background:var(--violet)}
.cast-card:nth-child(5) .cast-tone{background:var(--red)}
.cast-card b{position:absolute;left:18px;right:18px;bottom:52px;font-size:20px;text-transform:uppercase}
.cast-card span{position:absolute;left:18px;right:18px;bottom:18px;color:#6b6370;font-size:13px;font-weight:800}
.glass{transform-origin:50% 100%;animation:glassSway 5s ease-in-out infinite}
@keyframes glassSway{50%{transform:rotate(1.8deg)}}
.olive{animation:oliveFloat 4s ease-in-out infinite}
@keyframes oliveFloat{50%{transform:translateY(-10px) rotate(10deg)}}
.frame img{transition:transform .7s var(--ease),filter .7s ease}
.frame:hover img{transform:scale(1.04);filter:saturate(1.05)}
.phone:before{content:"REC";position:absolute;top:10px;right:18px;color:var(--red);font-size:11px;font-weight:1000;letter-spacing:.15em}
.phone{position:relative}
.submit{transition:transform .25s var(--ease),box-shadow .25s ease}
.submit:hover{transform:translateY(-3px);box-shadow:8px 8px 0 var(--ink)}
.credits{position:relative;overflow:hidden}
.credits small{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);z-index:2;color:#aaa;font-size:10px;letter-spacing:.2em;text-transform:uppercase}
@media(min-width:1440px){.scene-inner{width:min(1680px,100%)}.host{min-height:820px}}
@media(max-width:980px){html{scroll-snap-type:none}.hero-copy{text-align:center}.hero p,.hero-meta{margin-left:auto;margin-right:auto;justify-content:center}.hero-number{right:-8%;bottom:30%;font-size:46vw}.cast-board{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
body{padding-bottom:max(110px,env(safe-area-inset-bottom))}
.live,.channel{top:10px;padding:8px 10px;font-size:11px}.live{left:10px}.channel{right:10px}
.scene-inner{min-height:auto;padding:90px 14px 72px}
.hero h1{font-size:clamp(58px,19vw,92px);line-height:.82;letter-spacing:-.075em}
.hero h1 .hero-age{margin-top:4px;font-size:.72em;-webkit-text-stroke:1.5px var(--red)}
.hero p{font-size:18px;line-height:1.55}
.hero-meta span{font-size:10px;min-height:30px}
.host{min-height:500px}.host-card{inset:5% 4% 10%}.nameplate{left:6%;right:6%;bottom:8%;font-size:20px}
.segment h2,.schedule h2,.location h2,.gallery h2,.dress h2,.bar-scene h2,.rsvp h2{font-size:clamp(48px,16vw,78px);line-height:.84}
.teleprompter{padding:20px;font-size:16px}.ad-card{padding:28px 18px}.ad-card h2{font-size:clamp(48px,16vw,78px)}
.cast-board{grid-template-columns:1fr}.cast-card{min-height:220px}.cast-tone{inset:0 0 36%}
.location-photo{min-height:420px}.bar-grid{grid-template-columns:1fr}.cocktail-art{min-height:420px}
.phone{padding:16px;border-radius:26px}.screen{padding:16px}
.credits{min-height:58vh;padding-bottom:calc(130px + env(safe-area-inset-bottom))}
.theme-switcher{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));max-height:96px}
}
@media(max-width:380px){.hero h1{font-size:clamp(52px,18vw,72px)}.hero-meta span{width:100%;justify-content:center}.host{min-height:440px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}


html,body{min-width:0}.nochnoy-efir{background:linear-gradient(180deg,var(--bg),var(--bg2));overflow-x:hidden}.nochnoy-efir .rsvpSection{color:var(--ink)!important}.nochnoy-efir .rsvpSection .rsvpFormCard{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}.nochnoy-efir .rsvpSection #rsvpForm{gap:22px}.nochnoy-efir .rsvpSection .field,.nochnoy-efir .rsvpSection .chip,.nochnoy-efir .rsvpSection .consent{border:4px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink)}.nochnoy-efir .rsvpSection .chip[data-active="true"],.nochnoy-efir .rsvpSection .chip.is-active,.nochnoy-efir .rsvpSection .chip.active{background:var(--yellow)!important;border-color:var(--ink)!important;color:var(--ink)!important;box-shadow:5px 5px 0 var(--ink)!important}.nochnoy-efir .rsvpSection .btn.btn-full,.nochnoy-efir .rsvpSection #rsvpForm button[type="submit"]{border:4px solid var(--ink);border-radius:14px;background:var(--yellow)!important;color:var(--ink)!important;box-shadow:5px 5px 0 var(--ink)!important}.music-control{position:fixed;left:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:130;display:flex;align-items:center;gap:8px;padding:10px 14px;border:3px solid var(--ink);border-radius:999px;background:var(--yellow);color:var(--ink);box-shadow:5px 5px 0 #000;font-weight:900}.music-control.is-playing span{animation:onair 1s infinite}.gallery-lead,.dress-lead,.dress-text,.segment-text{max-width:760px;font-size:clamp(18px,2vw,25px);line-height:1.6;font-weight:700}.location--no-photo .location-grid{grid-template-columns:1fr}.location--no-photo .location-copy{max-width:900px;margin:auto}.slot em{position:absolute;left:28px;bottom:24px;font-style:normal;font-size:10px;letter-spacing:.18em;color:#756b79}.rsvpSection.is-preview-locked .chip{opacity:.75}@media(max-width:640px){.music-control{left:8px;bottom:max(112px,env(safe-area-inset-bottom));max-width:calc(100vw - 16px)}.music-control b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nochnoy-efir .rsvpSection .chips{grid-template-columns:1fr}.nochnoy-efir .rsvpSection .row2{grid-template-columns:1fr}.cast-board{grid-template-columns:1fr!important}.cast-card{min-height:220px}.credits{padding-bottom:calc(110px + env(safe-area-inset-bottom))}}

/* ===== RESPONSIVE LAYOUT FIX 2026-06-29 ===== */
:root{
  --page-max: 1440px;
  --page-gutter: clamp(24px, 4.5vw, 72px);
  --section-y: clamp(76px, 8vw, 122px);
}

html,body{width:100%;max-width:100%;overflow-x:hidden}
.nochnoy-efir,.scene{width:100%;max-width:100%;min-width:0}
.scene-inner{
  width:min(var(--page-max),100%);
  max-width:100%;
  min-width:0;
  margin-inline:auto;
  padding:var(--section-y) var(--page-gutter);
}
.hero .scene-inner,.hero-copy,.hero-copy h1,.host,
.location-grid,.bar-grid,.rsvp-grid,.timeline,.gallery-grid,
.segment-head,.cast-board{min-width:0;max-width:100%}
.hero-copy{width:100%;overflow:visible}
.hero-copy h1{width:100%;max-width:100%;overflow:visible}
.hero h1 .hero-name{
  display:block;
  width:100%;
  max-width:100%;
  white-space:nowrap;
  overflow:visible;
  line-height:.92;
  padding:.08em 0 .03em;
}
.hero h1 .hero-age{
  margin-top:.08em;
  margin-left:0;
  padding-top:.03em;
}

/* cards never touch viewport edges */
.teleprompter,.ad-card,.slot,.location-copy,.location-photo,
.cast-card,.menu,.phone,.frame{max-width:100%;min-width:0}

@media(min-width:1600px){
  :root{--page-max:1560px;--page-gutter:80px}
  .hero .scene-inner{grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);gap:72px}
}

@media(min-width:1100px) and (max-width:1599px){
  :root{--page-gutter:clamp(36px,4vw,64px)}
  .hero .scene-inner{grid-template-columns:minmax(0,.9fr) minmax(460px,1.1fr);gap:clamp(30px,4vw,58px)}
  .hero h1{font-size:clamp(64px,8.5vw,142px)}
}

@media(max-width:1099px){
  :root{--page-gutter:clamp(22px,4vw,42px);--section-y:clamp(72px,9vw,104px)}
  .hero .scene-inner,.location-grid,.bar-grid,.rsvp-grid{grid-template-columns:1fr}
  .hero .scene-inner{gap:34px;padding-top:110px}
  .hero-copy{text-align:center}
  .hero-copy p,.hero-meta{margin-inline:auto;justify-content:center}
  .hero h1{margin-inline:auto;width:min(100%,900px)}
  .host{width:min(760px,100%);margin-inline:auto;min-height:620px}
  .location-photo{order:1}.location-copy{order:2}
  .timeline{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cast-board{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .frame:nth-child(1),.frame:nth-child(4){grid-row:auto;grid-column:auto}
}

@media(max-width:720px){
  :root{
    --page-gutter: max(18px, env(safe-area-inset-left));
    --section-y: clamp(64px,16vw,88px);
  }
  body{padding-bottom:max(104px,env(safe-area-inset-bottom))}
  .scene-inner{
    width:100%;
    padding-left:max(18px,env(safe-area-inset-left));
    padding-right:max(18px,env(safe-area-inset-right));
  }
  .hero .scene-inner{padding-top:96px;gap:22px}
  .hero-copy{padding-inline:0}
  .hero h1{
    width:100%;
    max-width:100%;
    margin:12px 0 16px;
    font-size:clamp(48px,16.5vw,86px);
    line-height:.88;
    letter-spacing:-.065em;
  }
  .hero h1 .hero-name{line-height:.98;padding-top:.1em}
  .hero h1 .hero-age{font-size:.7em;line-height:1;margin-top:.12em}
  .hero p{max-width:34ch;font-size:clamp(16px,4.8vw,19px);line-height:1.5}
  .hero-meta{display:grid;grid-template-columns:1fr;gap:10px;width:100%;max-width:360px}
  .hero-meta span{width:100%;justify-content:center;min-height:38px;padding-inline:12px}
  .host{min-height:clamp(420px,120vw,560px)}
  .host-card{inset:4% 2% 12%}
  .nameplate{left:4%;right:4%;bottom:8%;padding:14px;font-size:clamp(17px,5vw,22px)}
  .mic{right:-8%;transform:scale(.72);transform-origin:bottom right}
  .ticker{font-size:11px;padding:9px 0}
  .timeline,.cast-board,.gallery-grid{grid-template-columns:1fr}
  .slot{min-height:280px;padding:22px}
  .location-grid,.bar-grid,.rsvp-grid{gap:20px}
  .location-copy{padding:24px 20px}
  .location-photo{min-height:clamp(340px,105vw,480px)}
  .cast-card{min-height:210px}
  .menu{padding:24px 18px}
  .cocktail-art{min-height:360px}
  .phone{padding:14px;border-width:4px;border-radius:24px;box-shadow:8px 8px 0 #000}
  .screen{padding:14px;border-width:4px}
  .nochnoy-efir .rsvpSection .rsvpFormCard{padding:0!important}
  .nochnoy-efir .rsvpSection .field,.nochnoy-efir .rsvpSection .chip,.nochnoy-efir .rsvpSection .consent{max-width:100%}
  .credits{padding-inline:18px;padding-bottom:calc(120px + env(safe-area-inset-bottom))}
  .credits h2{font-size:44px}
}

@media(max-width:390px){
  :root{--page-gutter:16px}
  .scene-inner{padding-left:16px;padding-right:16px}
  .live,.channel{font-size:10px;padding:7px 9px}
  .hero h1{font-size:clamp(44px,15.5vw,64px)}
  .hero p{font-size:16px}
  .host{min-height:410px}
  .segment h2,.schedule h2,.location h2,.gallery h2,.dress h2,.bar-scene h2,.rsvp h2{font-size:clamp(42px,14vw,62px)}
}

/* ===== CONTENT HEIGHT & TEXT FIT FIX 2026-06-29 ===== */
.scene:not(.hero){
  min-height:auto;
  overflow:hidden;
}
.scene:not(.hero) > .scene-inner{
  min-height:auto;
  height:auto;
}
.segment .scene-inner,
.schedule .scene-inner,
.location .scene-inner,
.dress .scene-inner,
.bar-scene .scene-inner,
.gallery .scene-inner,
.rsvp .scene-inner{
  padding-top:clamp(68px,8vw,116px);
  padding-bottom:clamp(68px,8vw,116px);
}
.adbreak .scene-inner{
  min-height:auto;
  padding-top:clamp(62px,8vw,110px);
  padding-bottom:clamp(62px,8vw,110px);
}

/* large titles must stay inside their own content box */
.segment h2,.schedule h2,.location h2,.gallery h2,.dress h2,.bar-scene h2,.rsvp h2,
.ad-card h2,.location-copy h3{
  max-width:100%;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
  text-wrap:balance;
  line-height:.84;
}
.ad-card{
  height:auto;
  min-height:0;
  padding:clamp(26px,5vw,56px);
}
.ad-card h2{
  font-size:clamp(44px,8vw,118px);
  letter-spacing:-.065em;
}
.ad-card h3{
  margin:18px 0 0;
  max-width:32ch;
  font-size:clamp(19px,2.2vw,30px);
  line-height:1.25;
}
.ad-card p{
  max-width:42ch;
  margin-bottom:0;
}

.dress .scene-inner{
  overflow:visible;
}
.dress-lead,.dress-text{
  width:min(760px,100%);
  overflow-wrap:anywhere;
}
.cast-board{
  align-items:stretch;
}
.cast-card{
  height:auto;
  min-height:clamp(220px,30vw,340px);
}
.cast-card b,
.cast-card span{
  overflow-wrap:anywhere;
}

/* Avoid an empty visual bar when no editable rows exist */
.bar-scene .menu:empty{
  display:none;
}
.bar-scene .menu:empty + .cocktail-art{
  grid-column:1/-1;
  width:min(520px,100%);
  margin-inline:auto;
}

.music-control{
  width:max-content;
  max-width:min(360px,calc(100vw - 32px));
}

@media(max-width:720px){
  .scene:not(.hero) > .scene-inner,
  .segment .scene-inner,
  .schedule .scene-inner,
  .location .scene-inner,
  .dress .scene-inner,
  .bar-scene .scene-inner,
  .gallery .scene-inner,
  .rsvp .scene-inner,
  .adbreak .scene-inner{
    padding-top:clamp(52px,14vw,76px);
    padding-bottom:clamp(52px,14vw,76px);
  }
  .segment h2,.schedule h2,.location h2,.gallery h2,.dress h2,.bar-scene h2,.rsvp h2{
    font-size:clamp(36px,12vw,56px);
    line-height:.9;
    letter-spacing:-.055em;
  }
  .ad-card{
    width:100%;
    padding:24px 18px;
    box-shadow:9px 9px 0 #000;
  }
  .ad-card h2{
    font-size:clamp(38px,12vw,58px);
    line-height:.9;
  }
  .ad-card p{
    font-size:clamp(17px,5vw,21px);
    line-height:1.45;
  }
  .dress-lead,.dress-text,.segment-text,.gallery-lead{
    font-size:clamp(16px,4.7vw,19px);
    line-height:1.55;
  }
  .cast-board{
    gap:18px;
  }
  .cast-card{
    min-height:250px;
  }
  .music-control{
    width:auto;
    max-width:calc(100vw - 16px);
  }
}

@media(max-width:390px){
  .segment h2,.schedule h2,.location h2,.gallery h2,.dress h2,.bar-scene h2,.rsvp h2,
  .ad-card h2{
    font-size:clamp(34px,11.5vw,48px);
  }
  .ad-card{
    padding:22px 16px;
  }
}

.eyebrow {
  margin-bottom: 10px;
}
/* ===== MUSIC CONTROL MOBILE PIN FIX 2026-06-29 ===== */
.music-control{
  position:fixed!important;
  left:max(12px,env(safe-area-inset-left))!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  right:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:999!important;
}
@media(max-width:640px){
  .music-control{
    left:max(8px,env(safe-area-inset-left))!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    width:max-content!important;
    max-width:calc(100vw - max(16px,env(safe-area-inset-left) + env(safe-area-inset-right)))!important;
    padding:9px 13px!important;
  }
  .music-control b{
    max-width:min(230px,calc(100vw - 76px));
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* ===== RSVP SHELL + MOBILE BOTTOM FIX 2026-06-29 ===== */
.nochnoy-efir .rsvp .phone{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.nochnoy-efir .rsvp .phone::before{
  top:-24px;
  right:4px;
}
.nochnoy-efir .rsvp .screen{
  width:100%;
  margin:0;
}

@media(max-width:640px){
  .nochnoy-efir .rsvp .scene-inner{
    padding-bottom:calc(170px + env(safe-area-inset-bottom))!important;
  }
  .music-control{
    left:max(12px,env(safe-area-inset-left))!important;
    bottom:calc(92px + env(safe-area-inset-bottom))!important;
  }
}

@media(max-width:390px){
  .nochnoy-efir .rsvp .scene-inner{
    padding-bottom:calc(164px + env(safe-area-inset-bottom))!important;
  }
  .music-control{
    bottom:calc(88px + env(safe-area-inset-bottom))!important;
  }
}

/* ===== FINAL MUSIC PIN: ALWAYS AT THE BOTTOM EDGE ===== */
.music-control{
  position:fixed!important;
  left:max(12px,env(safe-area-inset-left))!important;
  right:auto!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;
  margin:0!important;
  transform:none!important;
  z-index:9999!important;
}
@media(max-width:640px){
  .music-control{
    left:max(12px,env(safe-area-inset-left))!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
  }
}
@media(max-width:390px){
  .music-control{
    left:max(10px,env(safe-area-inset-left))!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
  }
}
