:root {
  --paper: #f5f0f7;
  --night: #030204;
  --night-raised: #0a070c;
  --ultraviolet: #a33cff;
  --orchid: #d59aff;
  --hairline: rgba(255,255,255,.14);
  --section-space: clamp(7rem,12vw,12rem);
}

::selection { background:#a33cff; color:#fff; }
body { background:var(--night); color:var(--paper); letter-spacing:.005em; }
main { overflow:clip; }
main > section { scroll-margin-top:4.25rem; }

.site-header {
  position:fixed;
  height:4.75rem;
  background:rgba(0,0,0,.96);
  border-bottom-color:rgba(255,255,255,.1);
  transition:height .35s var(--ease),background .35s,box-shadow .35s;
  backdrop-filter:blur(16px) saturate(130%);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
}
.site-header.scrolled { height:4.25rem; background:rgba(0,0,0,.88); box-shadow:0 1rem 3rem rgba(0,0,0,.42); }
.brand { width:5.5rem; height:2.35rem; }
nav { gap:clamp(1.15rem,2.35vw,2.8rem); font-size:.61rem; }
nav a { position:relative; opacity:.78; transition:opacity .25s,color .25s; }
nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:-.5rem; height:1px; background:var(--orchid); transition:right .35s var(--ease); }
nav a:not(.nav-cta):hover { opacity:1; color:#fff; }
nav a:not(.nav-cta):hover::after { right:0; }
.nav-cta { padding:.78rem 1.2rem; border-color:rgba(255,255,255,.72); opacity:1; transition:background .3s,color .3s,border-color .3s; }
.nav-cta:hover { background:#fff; color:#050307; opacity:1; }

.hero { min-height:100svh; padding-top:9rem; padding-bottom:clamp(6.5rem,10vh,8rem); isolation:isolate; }
.hero::before { content:""; position:absolute; z-index:2; inset:0; pointer-events:none; border:1px solid transparent; border-inline-color:rgba(255,255,255,.05); margin-inline:var(--pad); }
.hero::after { background:linear-gradient(180deg,rgba(3,2,4,.45),rgba(3,2,4,.22) 34%,rgba(3,2,4,.66) 76%,#030204 100%); }
.hero-video { opacity:.55; filter:saturate(.82) contrast(1.1) brightness(.7); }
.hero-sky { background:radial-gradient(circle at 72% 31%,rgba(174,63,255,.24),transparent 23%),linear-gradient(90deg,rgba(3,2,4,.5),transparent 55%,rgba(3,2,4,.24)); }
.orb { opacity:.34; filter:saturate(.8); }
.horizon { opacity:.48; }
.palm { opacity:.44; }
.palm-right { opacity:.32; }
.palm i { background:linear-gradient(90deg,#050107,#180721 55%,#040106); }
.palm span,.palm span::before,.palm span::after,.palm::before,.palm::after { background:#09020d; }
.hero-copy { width:100%; min-width:0; max-width:92rem; margin-inline:auto; }
.hero .eyebrow { display:flex; align-items:center; gap:1rem; width:max-content; margin:0 0 1.35rem; color:rgba(255,255,255,.72); font-size:.57rem; }
.age-mark { margin:0; border-color:rgba(213,154,255,.55); color:#ead1ff; background:rgba(163,60,255,.08); }
h1 { max-width:10ch; font-size:clamp(5.6rem,14.2vw,13.5rem); line-height:.76; text-shadow:0 1.5rem 5rem rgba(0,0,0,.45); }
h1 em,h2 i { -webkit-text-stroke-color:rgba(255,255,255,.68); }
.hero-bottom { width:min(48rem,58%); margin-top:2rem; }
.hero-bottom p { max-width:27rem; color:rgba(248,245,250,.72); font-size:.75rem; letter-spacing:.04em; }
.round-link { width:7.75rem; background:rgba(6,3,8,.28); border-color:rgba(255,255,255,.72); backdrop-filter:blur(12px); box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 1rem 3rem rgba(0,0,0,.3); }
.round-link:hover { transform:rotate(0) scale(1.04); box-shadow:0 0 2.5rem rgba(198,104,255,.32); }
.hero-rail { position:absolute; z-index:5; left:var(--pad); right:var(--pad); bottom:1.5rem; display:flex; align-items:center; justify-content:center; gap:1.25rem; color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.2em; font-size:.5rem; }
.hero-rail i { width:2.5rem; height:1px; background:rgba(213,154,255,.48); }
.scroll-note { color:rgba(255,255,255,.62); }

.events,.manifesto,.gallery,.visit,.night-guide,.vip-section { position:relative; padding-top:var(--section-space); padding-bottom:var(--section-space); }
.events::before,.manifesto::before,.gallery::before,.visit::before,.night-guide::before,.vip-section::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent calc(var(--pad) - 1px),rgba(255,255,255,.035) var(--pad),transparent calc(var(--pad) + 1px),transparent calc(100% - var(--pad) - 1px),rgba(255,255,255,.035) calc(100% - var(--pad)),transparent calc(100% - var(--pad) + 1px)); }
.section-index { display:block; color:#9b8fa0; border-top-color:rgba(255,255,255,.16); font-size:.55rem; }

.events { grid-template-columns:minmax(15rem,.4fr) minmax(0,1.6fr); background:radial-gradient(circle at 12% 12%,rgba(134,28,207,.11),transparent 28%),#050307; }
.events-heading { position:sticky; top:7.5rem; align-self:start; }
.events-heading h2 { margin:clamp(3rem,6vw,6rem) 0 2rem; line-height:.82; }
.events-heading > p:last-child { padding-left:1rem; border-left:1px solid rgba(213,154,255,.4); }
.event-list { align-items:start; gap:clamp(1rem,1.7vw,1.75rem); }
.event-card { position:relative; }
.event-card:nth-child(2) { margin-top:3.5rem; }
.flyer-wrap { padding:.36rem; border-color:rgba(255,255,255,.2); background:#050307; box-shadow:0 2rem 5rem rgba(0,0,0,.46); transition:transform .55s var(--ease),border-color .35s,box-shadow .45s; }
.flyer-wrap::before,.flyer-wrap::after { border-color:rgba(213,154,255,.8); }
.event-card:hover .flyer-wrap { transform:translateY(-.55rem); border-color:rgba(213,154,255,.58); box-shadow:0 2.6rem 5.5rem rgba(0,0,0,.58),0 0 2.5rem rgba(154,44,255,.1); }
.event-meta { padding-top:1.35rem; border-top:1px solid transparent; }
.event-meta h3 { font-size:clamp(1.5rem,2.2vw,2.15rem); }
.event-meta a { color:#eee4f3; border-color:rgba(255,255,255,.5); }

.manifesto { background:radial-gradient(circle at 85% 45%,rgba(154,44,255,.11),transparent 24%),#070509; }
.manifesto-grid { grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr); align-items:end; }
.manifesto h2 { line-height:.82; }
.manifesto-copy { position:relative; padding:2.25rem; max-width:29rem; border:1px solid var(--hairline); background:rgba(255,255,255,.018); box-shadow:0 2rem 5rem rgba(0,0,0,.2); }
.manifesto-copy::before { content:""; position:absolute; left:-1px; top:2.25rem; width:2px; height:4rem; background:linear-gradient(var(--orchid),transparent); box-shadow:0 0 1.2rem rgba(213,154,255,.5); }
.features { counter-reset:experience; margin-top:clamp(6rem,10vw,10rem); border-bottom:1px solid var(--hairline); }
.feature { counter-increment:experience; min-height:16rem; padding-top:2.6rem; transition:background .35s,padding .35s; }
.feature::before { content:"0" counter(experience); display:block; margin-bottom:3rem; color:#7d7181; font-size:.5rem; letter-spacing:.2em; }
.feature:hover { background:linear-gradient(180deg,rgba(163,60,255,.07),transparent); }
.feature h3 { font-size:clamp(2rem,3vw,3rem); }

.gallery { background:#040305; }
.gallery-heading { align-items:end; }
.gallery-heading h2 { line-height:.82; }
.gallery-grid { grid-auto-rows:clamp(15rem,24vw,24rem); gap:.45rem; }
.gallery-item { border:1px solid rgba(255,255,255,.06); }
.gallery-item::before { content:""; position:absolute; z-index:2; inset:.65rem; border:1px solid transparent; transition:border-color .4s; pointer-events:none; }
.gallery-item::after { z-index:1; background:linear-gradient(155deg,rgba(147,29,219,.22),transparent 45%,rgba(0,0,0,.26)); }
.gallery-item img { filter:grayscale(18%) contrast(1.08) saturate(.82); transition:transform 1s var(--ease),filter .65s; }
.gallery-item:hover::before { border-color:rgba(255,255,255,.38); }
.gallery-item:hover img { transform:scale(1.045); filter:grayscale(0) contrast(1.04) saturate(1.05); }

.visit { background:radial-gradient(circle at 88% 55%,rgba(121,24,180,.12),transparent 28%),#050307; }
.visit-card { align-items:end; }
.visit-card h2 { line-height:.82; }
.address-panel { min-height:29rem; margin-top:clamp(4rem,7vw,7rem); padding:clamp(2.2rem,5vw,5rem); border-color:rgba(255,255,255,.16); background:linear-gradient(118deg,rgba(255,255,255,.025),rgba(112,20,170,.12)),#09060b; box-shadow:0 2.5rem 6rem rgba(0,0,0,.35); }
.address-panel::before { content:""; position:absolute; inset:1rem; border:1px solid rgba(255,255,255,.055); pointer-events:none; }
.address-logo { opacity:.1; }
.address-label { margin-bottom:1.35rem; }
.venue-phone { transition:color .25s,border-color .25s; }
.venue-phone:hover { color:#fff; border-color:#fff; }
.direction-link { width:9rem; background:rgba(255,255,255,.015); }
.direction-link:hover { transform:none; box-shadow:0 0 2.5rem rgba(255,255,255,.12); }
.visit-notes { background:#070509; }
.visit-notes div { min-height:7.5rem; display:flex; flex-direction:column; justify-content:center; }

.night-guide { display:grid; grid-template-columns:minmax(15rem,.62fr) minmax(22rem,1.38fr); gap:clamp(3rem,8vw,9rem); padding-inline:var(--pad); border-top:1px solid var(--hairline); background:#030204; }
.night-guide-heading { align-self:start; position:sticky; top:7.5rem; }
.night-guide-heading h2 { margin:clamp(3rem,6vw,6rem) 0 0; font-size:clamp(4rem,8vw,8rem); line-height:.82; }
.night-guide-list { border-top:1px solid rgba(255,255,255,.2); }
.night-guide details { border-bottom:1px solid var(--hairline); }
.night-guide summary { min-height:6.5rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; color:#f5f0f7; cursor:pointer; list-style:none; font:400 clamp(1.3rem,2.2vw,2rem)/1.15 "Italiana",serif; }
.night-guide summary::-webkit-details-marker { display:none; }
.night-guide summary span { flex:0 0 auto; color:var(--orchid); font:300 1.4rem/1 "Manrope",sans-serif; transition:transform .25s var(--ease); }
.night-guide details[open] summary span { transform:rotate(45deg); }
.night-guide details p { max-width:39rem; margin:-.35rem 0 2.2rem; color:#aaa1ad; font-size:.78rem; line-height:1.8; }
.night-guide summary:focus-visible { outline:1px solid var(--orchid); outline-offset:.4rem; }

.vip-section { background:radial-gradient(circle at 20% 65%,rgba(135,31,201,.12),transparent 28%),#070509; }
.vip-grid { grid-template-columns:minmax(0,.82fr) minmax(25rem,1.18fr); align-items:start; }
.vip-intro { position:sticky; top:8rem; }
.vip-intro h2 { line-height:.83; }
.vip-intro > p { padding-left:1.15rem; border-left:1px solid rgba(213,154,255,.45); }
.vip-form { padding:clamp(1.5rem,3.5vw,3.5rem); border:1px solid rgba(255,255,255,.16); background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(163,60,255,.025)); box-shadow:0 2.5rem 6rem rgba(0,0,0,.3); }
.form-grid { gap:1.25rem; }
.field { position:relative; padding:1rem 1rem .1rem; border:1px solid rgba(255,255,255,.13); transition:border-color .25s,background .25s,box-shadow .25s; }
.field:focus-within { border-color:rgba(213,154,255,.72); background:rgba(163,60,255,.035); box-shadow:0 0 1.5rem rgba(163,60,255,.08); }
.field label { margin:0; color:#b4a8b8; }
.field input,.field textarea { padding:.75rem 0 .85rem; }
.submit-vip { min-height:3.8rem; border-color:rgba(255,255,255,.75); background:#f4eef7; color:#09060b; font-weight:600; }
.submit-vip:hover { background:var(--orchid); color:#08040a; border-color:var(--orchid); }
.submit-vip:disabled { opacity:.55; cursor:wait; }
.form-disclaimer { margin-top:1rem; }

footer { padding-top:4rem; padding-bottom:6rem; border-top-color:rgba(255,255,255,.12); background:#020102; }
.footer-instagram { border-color:rgba(255,255,255,.18); }
.action-dock { width:min(32rem,calc(100% - 2rem)); padding:.32rem; border-color:rgba(255,255,255,.18); border-radius:999px; }
.action-dock::before { inset:0; border-radius:999px; opacity:.4; filter:blur(10px); }
.action-dock a { min-height:3.2rem; border-radius:999px; }

@media (max-width: 980px) {
  nav { gap:1rem; letter-spacing:.12em; }
  .instagram-link span { display:none; }
  .events { grid-template-columns:1fr; }
  .events-heading,.vip-intro { position:static; }
  .night-guide-heading { position:static; }
  .events-heading { max-width:38rem; }
  .event-list { margin-top:1rem; }
  .event-card:nth-child(2) { margin-top:2rem; }
  .manifesto-grid { grid-template-columns:1fr .72fr; }
  footer { grid-template-columns:1fr auto; }
}

@media (max-width: 760px) {
  :root { --section-space:clamp(5.5rem,20vw,8rem); }
  .site-header,.site-header.scrolled { height:4.4rem; }
  button.menu-toggle { display:block!important; position:relative; z-index:23; flex:0 0 2.75rem; }
  nav { gap:.35rem; letter-spacing:.18em; }
  nav a { min-width:12rem; text-align:center; }
  .instagram-link { justify-content:center; }
  .instagram-link span { display:inline; }
  .hero { min-height:100svh; padding-top:7rem; padding-bottom:8.5rem; }
  .hero::before { margin-inline:1rem; }
  .hero .eyebrow { display:block; width:auto; max-width:18rem; line-height:1.8; }
  .age-mark { display:inline-block; margin-top:.7rem; }
  h1 { max-width:100%; font-size:clamp(4.7rem,22vw,6.6rem); }
  .hero-copy,.hero-bottom { width:calc(100vw - (var(--pad) * 2)); max-width:calc(100vw - (var(--pad) * 2)); }
  .hero-bottom { min-width:0; margin:2rem 0 0; }
  .hero-bottom p { max-width:14rem; font-size:.68rem; }
  .round-link { flex:0 0 6.25rem; width:6.25rem; }
  .hero-rail { left:1rem; right:1rem; bottom:5.5rem; justify-content:flex-start; gap:.55rem; overflow:hidden; white-space:nowrap; }
  .hero-rail i { width:1rem; flex:0 0 1rem; }
  .events-heading h2 { margin-top:3rem; }
  .event-list { gap:1rem; }
  .event-card { flex-basis:82vw; }
  .event-card:nth-child(2) { margin-top:0; }
  .manifesto-grid,.vip-grid { grid-template-columns:1fr; }
  .night-guide { grid-template-columns:1fr; gap:4rem; }
  .manifesto-copy { padding:1.5rem; }
  .features { margin-top:5rem; }
  .feature { min-height:0; }
  .feature::before { margin-bottom:1.4rem; }
  .gallery-grid { gap:.35rem; grid-auto-rows:12.5rem; }
  .gallery-item::before { inset:.4rem; }
  .address-panel { min-height:30rem; padding-top:7rem; }
  .address-panel::before { inset:.6rem; }
  .visit-notes div { min-height:6.5rem; }
  .night-guide summary { min-height:5.4rem; font-size:1.35rem; }
  .vip-form { padding:1rem; }
  .form-grid { gap:.75rem; }
  footer { grid-template-columns:1fr; padding-bottom:7rem; }
  .footer-instagram { width:max-content; }
  .action-dock { bottom:max(.6rem,env(safe-area-inset-bottom)); width:calc(100vw - 1rem); max-width:calc(100vw - 1rem); }
  .action-dock a { min-width:0; padding-inline:.5rem; letter-spacing:.12em; }
}

@media (max-width: 420px) {
  .hero-rail span:last-child,.hero-rail i:last-of-type { display:none; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:18rem; }
  .gallery-wide { grid-column:auto; }
  .gallery-tall { grid-row:auto; }
}

@media (prefers-reduced-motion:reduce) {
  .site-header,.flyer-wrap,.gallery-item img,.field { transition:none; }
}

/* Hero foundation and shared actions. */
.hero {
  display:flex; flex-direction:column; align-items:stretch; justify-content:center;
  min-height: max(800px, 100svh); padding:10rem var(--pad) 13rem;
  background:#0c0711; isolation:isolate;
}
.hero::before { display:none; }
.hero::after {
  background:linear-gradient(90deg,rgba(5,3,7,.92) 0%,rgba(5,3,7,.75) 32%,rgba(5,3,7,.15) 78%),
    linear-gradient(180deg,rgba(5,3,7,.15) 40%,#050307 100%);
}
.hero .hero-video { opacity:.9; filter:saturate(.72) contrast(1.08); object-position:65% center; transform:none; }
.hero .hero-copy { width:100%; max-width:92rem; margin:auto; }
.hero-location { margin:0 0 2.4rem; color:#ded4e5; font-size:.64rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
.hero h1 { max-width:none; margin-left:-.045em; font-size:clamp(6rem,12.5vw,12rem); line-height:.86; letter-spacing:-.055em; text-shadow:none; }
.hero h1 em { display:inline-block; color:#e1c5ef; -webkit-text-stroke:0; font-style:italic; padding-right:.1em; }
.hero-invitation { margin-top:2.4rem; }
.hero-invitation p { margin:0; font-size:.9rem; line-height:1.8; color:#ded5e3; }
.hero-actions { display:flex; align-items:center; gap:2rem; margin-top:1.8rem; }
.hero-actions a { display:inline-flex; align-items:center; justify-content:space-between; gap:2.1rem; min-height:3.25rem; font-size:.67rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500; }
.hero-vip { padding:.9rem 1.25rem; color:#140b19; background:#f3edf5; transition:background .2s; }
.hero-vip:hover { background:#dfb5f4; }
.hero-events { border-bottom:1px solid rgba(255,255,255,.4); color:#f3edf5; transition:border-color .2s; }
.hero-events:hover { border-color:#fff; }
.hero-actions span { font-size:1rem; }
.hero-details { position:absolute; z-index:3; bottom:6.75rem; left:var(--pad); right:var(--pad); display:grid; grid-template-columns:1fr 1fr 1fr; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.23); gap:2rem; }
.hero-details p { margin:0; }
.hero-details span { display:block; color:#bdb1c5; font-size:.59rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:.6rem; }
.hero-details strong { font-size:.85rem; font-weight:400; letter-spacing:.035em; }
.hero-details > :last-child { text-align:right; }
.hero-motion { position:absolute; z-index:4; right:var(--pad); top:7rem; padding:.6rem .75rem; min-height:2.75rem; border:1px solid rgba(255,255,255,.28); background:rgba(5,3,7,.6); color:#eee6f2; font:500 .6rem Manrope,sans-serif; letter-spacing:.05em; cursor:pointer; }
.hero-motion[hidden] { display:none; }
.hero-motion span { margin-right:.5rem; }
@media (max-width:760px) {
  .hero { min-height:max(780px,100svh); padding:10rem var(--pad) 17rem; justify-content:flex-end; }
  .hero::after { background:linear-gradient(180deg,rgba(5,3,7,.2),rgba(5,3,7,.4) 25%,rgba(5,3,7,.88) 65%,#050307 100%),linear-gradient(90deg,rgba(5,3,7,.35),transparent); }
  .hero .hero-video { object-position:60% center; }
  .hero .hero-copy { width:100%; max-width:100%; margin:0; }
  .hero-location { max-width:19rem; font-size:.58rem; line-height:1.8; margin-bottom:1.75rem; }
  .hero h1 { font-size:clamp(4.7rem,19vw,8.5rem); line-height:.9; }
  .hero-invitation { margin-top:1.75rem; }
  .hero-invitation p { font-size:.81rem; }
  .hero-actions { gap:1.25rem; margin-top:1.5rem; }
  .hero-actions a { gap:.8rem; font-size:.59rem; min-height:3.15rem; }
  .hero-vip { padding-inline:1rem; }
  .hero-details { bottom:6.4rem; grid-template-columns:1fr 1fr; gap:1.2rem; padding-top:1.2rem; }
  .hero-details > :last-child { text-align:left; grid-column:1 / -1; display:flex; align-items:center; gap:.65rem; }
  .hero-details > :last-child span { margin:0; }
  .hero-details span { font-size:.51rem; letter-spacing:.08em; }
  .hero-details strong { font-size:.75rem; }
  .hero-motion { top:5.4rem; }
}

/* The ALV takeover: footage is clipped to the brand's letterforms. */
.takeover-toggle { position:absolute; z-index:3; inset:0; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:pointer; }
.takeover-toggle:focus-visible { outline:2px solid #c49cdb; outline-offset:8px; }
.takeover-wordmark .takeover-film { transition:opacity .35s ease; }
.takeover-wordmark.film-viewing .takeover-film { opacity:0; }
.takeover-hint { margin:-1rem 0 0; text-align:center; color:#b6a2c2; font-size:.59rem; letter-spacing:.045em; }
.takeover-hint span { margin-left:.5rem; }
.hero.hero-takeover { background:#000; min-height:max(850px,100svh); padding:8.5rem var(--pad) 7rem; justify-content:center; gap:2rem; }
.hero-takeover::after { display:none; }
.takeover-heading { display:flex; justify-content:space-between; align-items:center; color:#c7bdce; text-transform:uppercase; letter-spacing:.19em; font-size:.61rem; }
.takeover-heading p { margin:0; }
.takeover-heading > span { color:#c49cdb; }
.hero-takeover .takeover-wordmark { position:relative; width:min(100%,113svh); max-width:1600px; aspect-ratio:1310 / 520; margin:0 auto; line-height:1; }
.takeover-film { position:absolute; inset:0; display:block; background:#caa7e0 url('assets/alv-hero-poster.jpg') center / cover;
  clip-path:url('#alv-horizontal-clip'); }
.takeover-clip-defs { position:absolute; pointer-events:none; }
.letter-enter { transform-box:fill-box; animation:letterSwipeLeft 1.2s cubic-bezier(.22,1,.36,1) both; }
.letter-l { animation-name:letterSwipeRight; animation-delay:.14s; }
.letter-v { animation-delay:.28s; }
@keyframes letterSwipeLeft { from { transform:translateX(-400%); } to { transform:translateX(0); } }
@keyframes letterSwipeRight { from { transform:translateX(400%); } to { transform:translateX(0); } }
.hero-takeover .hero-video { width:100%; height:100%; opacity:1; filter:none; object-position:center 48%; }
.takeover-film::after { display:none; }
.hero-takeover .hero-copy { margin:0; max-width:none; text-align:center; }
.takeover-caption { margin:0; color:#decce7; font-size:.62rem; font-weight:500; letter-spacing:.5em; }
.hero-takeover .hero-invitation { margin-top:1.7rem; }
.hero-takeover .hero-invitation > p { font-size:.8rem; color:#f4eef6; }
.hero-takeover .hero-invitation > p span { margin-left:1.2rem; color:#b9aebf; }
.hero-takeover .hero-actions { justify-content:center; margin-top:1.35rem; }
.hero-takeover .hero-details { position:relative; bottom:auto; left:auto; right:auto; margin-top:1rem; padding-top:1.2rem; border-color:#29232c; }
.hero-takeover .hero-details > a { text-align:center; }
.hero-takeover .hero-motion { top:auto; right:var(--pad); bottom:1.7rem; border:0; color:#a898b2; background:#000; }
@media (min-width:1600px) { .hero.hero-takeover { gap:2.5rem; } }
@media (max-width:760px) {
  .hero.hero-takeover { min-height:100svh; padding:5.5rem 1.25rem calc(6rem + env(safe-area-inset-bottom)); gap:.75rem; justify-content:center; }
  .takeover-heading { font-size:.49rem; letter-spacing:.1em; gap:1rem; }
  .hero-takeover .takeover-wordmark { height:clamp(140px,calc(100svh - 440px),520px); width:auto; max-width:100%; flex-shrink:0; aspect-ratio:300 / 900; margin-inline:auto; }
  .hero-takeover .takeover-film {
    background:#9a83ac;
    clip-path:url('#alv-stacked-clip');
  }
  .hero-takeover .hero-video { opacity:.86; }
  .takeover-caption { font-size:.55rem; letter-spacing:.35em; }
  .hero-takeover .takeover-hint { margin:0; line-height:1.5; }
  .hero-takeover .hero-invitation { margin-top:.65rem; }
  .hero-takeover .hero-invitation > p { font-size:.73rem; }
  .hero-takeover .hero-invitation > p span { margin-left:.65rem; }
  .hero-takeover .hero-actions { gap:1.2rem; margin-top:.65rem; }
  .hero-takeover .hero-details { margin-top:.25rem; padding-top:.75rem; grid-template-columns:1fr 1fr; gap:.7rem; }
  .hero-takeover .hero-details > a { text-align:right; }
  .hero-takeover .hero-motion { bottom:5.4rem; font-size:.54rem; min-height:2rem; }
}

body.film-open { overflow:hidden; }
html { scrollbar-gutter:stable; }
.hero-film-dialog {
  position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none;
  margin:0; padding:4.5rem 1rem 2.75rem; border:0; color:#f8f5fa;
  background:rgba(0,0,0,.94); overflow:hidden;
}
.hero-film-dialog[open] { display:flex; flex-direction:column; align-items:center; justify-content:center; animation:filmReveal .36s ease-out; }
.hero-film-dialog::backdrop { background:rgba(0,0,0,.8); backdrop-filter:blur(8px); }
.hero-film-stage { width:100%; height:100%; min-height:0; display:flex; align-items:center; justify-content:center; }
.hero-film-dialog .hero-video { position:static; display:block; width:100%; height:100%; object-fit:contain; object-position:center; opacity:1; filter:none; transform:none; cursor:pointer; }
.hero-film-close { position:absolute; top:max(1rem,env(safe-area-inset-top)); right:1.5rem; min-height:44px; padding:.5rem 1rem; border:1px solid #665b6c; background:#0b080e; color:#fff; font:500 .75rem Manrope,sans-serif; cursor:pointer; }
.hero-film-close span { margin-left:.8rem; font-size:1.2rem; }
.hero-film-dialog > p { flex:none; margin:1rem 0 0; font:400 .65rem Manrope,sans-serif; color:#bcb2c4; }
@keyframes filmReveal { from { opacity:0; transform:scale(.985); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .letter-enter,.hero-film-dialog[open] { animation:none; } .takeover-wordmark .takeover-film { transition:none; } }
