/* =========================================================
   Schwanensee — Bochselnachttheater Weinfelden
   Schwarz · Gold · Eisblau. Flache Farben, keine Verläufe.
   ========================================================= */

:root{
  --ink:   #08080A;
  --white: #F5F4F0;
  --gold:  #E8B23A;
  --ice:   #8FB6D6;
  --grey:  #7C7C84;
  --line:  rgba(245,244,240,.13);

  --display: "Syne", "Helvetica Neue", Arial, sans-serif;
  --body: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
  --mono: "IBM Plex Mono", Consolas, monospace;

  --pad: clamp(24px, 5vw, 76px);
  --frame: clamp(10px, 1.4vw, 18px);
  --ease: cubic-bezier(.16,.84,.44,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth; background:var(--ink);
  -webkit-text-size-adjust:100%;
  scrollbar-color: var(--gold) #131316; scrollbar-width: thin;
}
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:#131316; }
::-webkit-scrollbar-thumb{ background:#2E2E34; border:2px solid #131316; transition:background .3s var(--ease); }
::-webkit-scrollbar-thumb:hover{ background:var(--gold); }
::selection{ background:var(--gold); color:var(--ink); }

body{
  margin:0; font-family:var(--body); background:var(--ink); color:var(--white);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.is-locked{ overflow:hidden; }
img,svg,video{ display:block; max-width:100%; }
a{ color:inherit; }

.wrap{ width:min(1280px,100%); margin-inline:auto; padding-inline:var(--pad); }

/* ---------- Plakatrahmen ---------- */
.frame{
  position:fixed; inset:var(--frame); z-index:120; pointer-events:none;
  border:1px solid rgba(232,178,58,.34);
  box-shadow:0 0 0 var(--frame) var(--ink);   /* deckt den Rand ausserhalb ab */
}
.frame__label{
  position:absolute; bottom:-1px; font-family:var(--mono); font-size:.6rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--gold);
  background:var(--ink); padding:0 10px; transform:translateY(50%); white-space:nowrap;
}
.frame__label--l{ left:22px; }
.frame__label--r{ right:22px; color:var(--grey); }
@media (max-width:820px){ .frame__label--r{ display:none; } }
@media (max-width:640px){ .frame__label{ display:none; } }

/* ---------- Schwan als Scroll-Anzeige ---------- */
.rail{ position:fixed; right:calc(var(--frame) + 16px); top:16vh; bottom:16vh; width:2px; z-index:120; pointer-events:none; }
.rail__line{ position:absolute; inset:0; background:var(--line); }
.rail__swan{ position:absolute; left:50%; top:0; width:34px; margin-left:-17px; color:var(--gold); will-change:transform; }
@media (max-width:1100px){ .rail{ display:none; } }

/* ---------- Schwäne im Hintergrund ---------- */
.flock{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.flock .drift{ position:absolute; left:0; color:var(--white); will-change:transform; }

/* ---------- Typo ---------- */
.tag{
  display:flex; align-items:center; gap:.9rem;
  font-family:var(--mono); font-size:.68rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.6rem;
}
.tag::before{ content:""; width:30px; height:1px; background:var(--gold); flex:none; }

.h2{
  font-family:var(--display); font-weight:800; font-size:clamp(2.3rem,6.5vw,5.4rem);
  line-height:.95; letter-spacing:-.02em; margin:0 0 2.4rem;
}
.h2 span{ display:inline-block; overflow:hidden; vertical-align:bottom; }
.h2 span > i{ font-style:normal; display:inline-block; transform:translateY(105%); transition:transform .9s var(--ease); }
.h2.is-in span > i{ transform:none; }
.h2.is-in span:nth-child(2) > i{ transition-delay:.1s; color:var(--gold); }

.lead{ font-size:clamp(1.05rem,1.5vw,1.35rem); line-height:1.55; margin:0 0 1.2rem; max-width:42ch; }
.body{ font-size:1rem; line-height:1.7; color:var(--grey); margin:0 0 1rem; max-width:48ch; }

.section{ position:relative; z-index:1; padding-block:clamp(84px,12vw,170px); scroll-margin-top:70px; }
.section::before{
  content:""; position:absolute; inset-inline:var(--pad); top:0; height:1px; background:var(--line);
  transform:scaleX(0); transform-origin:left; transition:transform 1.2s var(--ease);
}
.section.is-in::before{ transform:scaleX(1); }

/* ---------- Topbar ---------- */
.topbar{
  position:fixed; inset-inline:0; top:0; z-index:180;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:calc(var(--frame) + 14px) calc(var(--frame) + 24px);
  transition:transform .5s var(--ease), opacity .4s var(--ease);
}
.topbar.is-up{ transform:translateY(-130%); opacity:0; }
.topbar__brand{ font-family:var(--display); font-weight:800; font-size:.95rem; letter-spacing:-.01em; text-decoration:none; }
.topbar__nav{ display:flex; gap:1.5rem; }
.topbar__nav a{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  text-decoration:none; color:var(--grey); transition:color .3s var(--ease);
}
.topbar__nav a:hover{ color:var(--gold); }

.burger{ display:none; position:relative; z-index:1; width:44px; height:44px; margin-right:-10px; background:none; border:0; cursor:pointer; padding:0; }
.burger span{ display:block; width:24px; height:1.5px; background:var(--white); margin:0 auto; transition:transform .4s var(--ease); }
.burger span:first-child{ transform:translateY(-4px); }
.burger span:last-child{ transform:translateY(4px); }
.burger.is-open span:first-child{ transform:translateY(1px) rotate(45deg); }
.burger.is-open span:last-child{ transform:translateY(-.5px) rotate(-45deg); }

.mobilenav{
  position:fixed; inset:0; z-index:150; background:var(--ink);
  display:flex; flex-direction:column; justify-content:center; gap:.1rem; padding:0 var(--pad);
  opacity:0; visibility:hidden; transition:opacity .35s var(--ease), visibility .35s;
}
.mobilenav.is-open{ opacity:1; visibility:visible; }
.mobilenav a{
  font-family:var(--display); font-weight:800; font-size:clamp(2rem,10vw,3.2rem);
  line-height:1.2; text-decoration:none; padding:.15rem 0; letter-spacing:-.02em;
  opacity:0; transform:translateY(20px);
  transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s var(--ease);
}
.mobilenav.is-open a{ opacity:1; transform:none; }
.mobilenav.is-open a:nth-child(1){ transition-delay:.06s }
.mobilenav.is-open a:nth-child(2){ transition-delay:.12s }
.mobilenav.is-open a:nth-child(3){ transition-delay:.18s }
.mobilenav.is-open a:nth-child(4){ transition-delay:.24s }
.mobilenav.is-open a:nth-child(5){ transition-delay:.30s; color:var(--gold); margin-top:1.6rem; font-family:var(--mono); font-weight:400; font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; }
@media (max-width:880px){
  .topbar__nav{ display:none; }
  .topbar__nav--compact{ display:flex; }
  .burger{ display:block; }
}
@media (min-width:881px){ .mobilenav{ display:none; } }

/* ---------- Hero ---------- */
.hero{
  position:relative; z-index:1; min-height:100svh; overflow:hidden;
  display:grid; grid-template-rows:1fr auto;
  padding:0 calc(var(--frame) + 24px) calc(var(--frame) + 34px);
}
.hero__media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero__video{ width:100%; height:100%; object-fit:cover; will-change:transform; }
.hero__scrim{ position:absolute; inset:0; background:rgba(8,8,10,.6); }

.hero__content{ position:relative; z-index:2; align-self:center; text-align:center; will-change:transform; }
.hero__over{ margin:0 0 clamp(14px,2vw,24px); overflow:hidden; }
.hero__over span{
  display:inline-block; font-family:var(--mono); font-size:.68rem; letter-spacing:.3em;
  text-transform:uppercase; color:var(--gold);
  transform:translateY(120%); animation:up .9s var(--ease) .1s forwards;
}
.hero__title{
  font-family:var(--display); font-weight:800; margin:0;
  font-size:clamp(2.6rem,10vw,8.6rem); line-height:.88; letter-spacing:-.045em;
}
.hero__title .msk{ display:block; overflow:hidden; }
.hero__title .msk > span{ display:inline-block; transform:translateY(110%); animation:up 1.1s var(--ease) forwards; }
.hero__title .msk:nth-child(1) > span{ animation-delay:.2s }
.hero__title .msk:nth-child(2) > span{ animation-delay:.32s; color:var(--gold); }
@keyframes up{ to{ transform:none; } }

.hero__foot{
  position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
  border-top:1px solid var(--line); padding-top:1.1rem;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
}
.hero__foot b{ display:block; color:var(--grey); font-weight:400; font-size:.6rem; margin-bottom:.45rem; letter-spacing:.22em; }
@media (max-width:820px){ .hero__foot{ grid-template-columns:1fr 1fr; gap:1.1rem; } }

/* ---------- Laufband ---------- */
.ticker{ position:relative; z-index:1; background:var(--ink); border-block:1px solid var(--line); overflow:hidden; padding:15px 0; }
.ticker__track{
  display:flex; width:max-content; white-space:nowrap; will-change:transform;
  font-family:var(--display); font-weight:600; font-size:clamp(1rem,2vw,1.6rem); letter-spacing:-.01em;
}
.ticker__track i{ font-style:normal; color:var(--gold); margin-inline:.6em; }

/* ---------- Das Stück: klebende Namen ---------- */
.flip{ position:relative; z-index:1; scroll-margin-top:70px; display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,80px); padding:0 var(--pad); }
.flip__sticky{ position:sticky; top:0; height:100svh; display:flex; flex-direction:column; justify-content:center; }
.flip__names{ position:relative; height:clamp(3.4rem,9vw,8rem); }
.flip__name{
  position:absolute; inset:0; display:flex; align-items:center;
  font-family:var(--display); font-weight:800; font-size:clamp(2.6rem,7.5vw,6.4rem);
  line-height:1; letter-spacing:-.04em;
  opacity:0; transform:translateY(28px); transition:opacity .6s var(--ease), transform .6s var(--ease);
}
.flip__name.is-on{ opacity:1; transform:none; }
.flip__name:nth-child(2){ color:var(--gold); }
.flip__role{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--grey); margin:1.6rem 0 0; transition:opacity .4s var(--ease);
}
.flip__scroll{ padding-block:clamp(80px,14vh,180px) clamp(30px,6vh,70px); display:grid; gap:55svh; }
.flip__block{ display:flex; flex-direction:column; justify-content:center; min-height:40svh; }
@media (max-width:900px){
  .flip{ grid-template-columns:1fr; }
  .flip__sticky{ height:32svh; justify-content:flex-end; padding-bottom:1.2rem; }
  .flip__names{ height:clamp(2.8rem,13vw,4.4rem); }
  .flip__name{ font-size:clamp(2.4rem,12vw,4rem); }
  .flip__role{ margin-top:1rem; }
  .flip__scroll{ padding-block:1.5rem clamp(60px,12vh,120px); gap:16svh; }
  .flip__block{ min-height:auto; }
}

/* ---------- Der See: Schwäne schwimmen durchs Bild ---------- */
.swim{ position:relative; z-index:1; height:230svh; scroll-margin-top:70px; }
.swim__sticky{
  --sw:clamp(150px,20vw,290px);
  position:sticky; top:0; height:100svh; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.swim__word{
  position:absolute; margin:0; font-family:var(--display); font-weight:800;
  font-size:clamp(3rem,15vw,12rem); line-height:1; letter-spacing:-.05em;
  color:transparent; -webkit-text-stroke:1px rgba(245,244,240,.2); white-space:nowrap; will-change:transform;
}
.swim__moon{
  position:absolute; top:14%; right:12%; width:clamp(56px,7vw,104px); aspect-ratio:1;
  border:1px solid rgba(232,178,58,.45); border-radius:50%; will-change:transform;
}
.swim__moon::after{
  content:""; position:absolute; inset:14%; border-radius:50%;
  border:1px solid rgba(232,178,58,.16);
}

.swim__swan{ position:absolute; left:6%; color:var(--white); will-change:transform; }
.swim__swan--near{ top:34%; width:var(--sw); }
.swim__swan--far{ top:calc(27% + var(--sw) * .41); width:calc(var(--sw) * .42); color:var(--gold); opacity:.55; }
.swim__reflect{
  transform:scaleY(-1); opacity:.3; margin-top:4px;
  -webkit-mask-image:linear-gradient(#000,transparent 78%); mask-image:linear-gradient(#000,transparent 78%);
}
.ripple{
  position:absolute; left:12%; top:calc(var(--sw) * .70);
  width:76%; height:calc(var(--sw) * .16); margin-top:calc(var(--sw) * -.08);
  border:1px solid rgba(143,182,214,.5); border-radius:50%;
  transform:scale(.3); opacity:0; animation:ripple 4.2s var(--ease) infinite;
}
.ripple:nth-child(4){ animation-delay:1.4s; }
.ripple:nth-child(5){ animation-delay:2.8s; }
@keyframes ripple{
  0%{ transform:scale(.3); opacity:0 }
  15%{ opacity:.55 }
  100%{ transform:scale(1.9); opacity:0 }
}

.swim__water{ position:absolute; inset-inline:0; top:calc(34% + var(--sw) * .70); display:grid; gap:clamp(9px,1.4vw,18px); }
.swim__water span{ display:block; height:1px; background:var(--line); will-change:transform; }
.swim__water span:nth-child(2){ background:rgba(143,182,214,.3); }
.swim__water span:nth-child(5){ background:rgba(232,178,58,.18); }

.swim__line{
  position:absolute; left:var(--pad); bottom:clamp(70px,12vh,130px); margin:0;
  font-family:var(--display); font-weight:600; letter-spacing:-.02em;
  font-size:clamp(1.1rem,2.6vw,2.1rem); line-height:1.25; max-width:16ch;
}
.swim__line span{ display:inline-block; opacity:0; transform:translateY(.45em); transition:opacity .5s var(--ease), transform .5s var(--ease); }
.swim__line span.on{ opacity:1; transform:none; }
.swim__line span:nth-child(n+4){ color:var(--gold); }
.swim__meta{
  position:absolute; right:var(--pad); bottom:clamp(70px,12vh,130px); margin:0;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--grey);
}
@media (max-width:640px){
  .swim__meta{ display:none; }
  .swim__line{ left:var(--pad); right:var(--pad); bottom:9vh; }
}

/* ---------- Aufführungen ---------- */
.shows{ display:grid; gap:clamp(12px,1.6vw,20px); }
.show{
  position:relative; overflow:hidden; border:1px solid var(--line);
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:clamp(16px,3vw,48px);
  padding:clamp(24px,3.4vw,44px);
  transition:border-color .4s var(--ease);
}
.show__ghost{
  position:absolute; right:clamp(-10px,1vw,20px); top:50%; z-index:0;
  font-family:var(--display); font-weight:800; font-size:clamp(7rem,17vw,15rem); line-height:1;
  color:rgba(245,244,240,.045); letter-spacing:-.05em; will-change:transform; pointer-events:none;
}
.show > *:not(.show__ghost){ position:relative; z-index:1; }
.show::after{ content:""; position:absolute; inset:0; background:var(--gold); transform:translateY(100%); transition:transform .55s var(--ease); z-index:0; }
@media (hover:hover){
  .show:hover{ border-color:var(--gold); }
  .show:hover::after{ transform:none; }
  .show:hover, .show:hover *{ color:var(--ink); }
  .show:hover .show__ghost{ color:rgba(8,8,10,.12); }
  .show:hover .show__times li{ border-color:rgba(8,8,10,.22); }
}
.show__no{ font-family:var(--mono); font-size:.64rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin:0 0 .9rem; }
.show__date{ font-family:var(--display); font-weight:800; font-size:clamp(1.5rem,3.4vw,2.8rem); line-height:1.05; letter-spacing:-.03em; margin:0; }
.show__times{ list-style:none; margin:0; padding:0; min-width:min(280px,42vw); }
.show__times li{ display:flex; gap:1.2rem; align-items:baseline; padding:.6rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.show__times li:last-child{ border-bottom:0; }
.show__times b{ font-family:var(--mono); font-weight:400; font-size:1.05rem; color:var(--gold); min-width:5ch; }
@media (max-width:760px){
  .show{ grid-template-columns:1fr; gap:1.4rem; }
  .show__times{ min-width:0; }
}

.note{ margin:clamp(28px,4vw,44px) 0 0; padding-left:clamp(14px,2vw,22px); border-left:2px solid var(--gold); color:var(--grey); line-height:1.65; max-width:50ch; }

/* ---------- Embeds ---------- */
.embed{ position:relative; border:1px solid var(--line); min-height:440px; overflow:hidden; margin-top:2.4rem; }
.embed iframe{ width:100%; height:480px; border:0; display:block; }
.embed__placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1.2rem; text-align:center; padding:24px; background:var(--ink);
}
.embed__placeholder .body{ margin:0; }
.embed--ig{ min-height:auto; border:0; }
.embed--ig .embed__placeholder{ position:relative; border:1px solid var(--line); min-height:320px; }
.ig-grid[hidden]{ display:none; }
.ig-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:18px; }
.ig-item{ border:1px solid var(--line); background:#fff; overflow:hidden; }
.ig-item iframe{ display:block; width:100%; height:640px; border:0; }

.address{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.4rem; border-top:1px solid var(--line); padding-top:1.4rem; margin-top:2.4rem; }
.address b{ display:block; font-family:var(--mono); font-weight:400; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:var(--grey); margin-bottom:.5rem; }
.address p{ margin:0; font-size:.98rem; line-height:1.5; }

/* ---------- Buttons ---------- */
.btn{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  padding:15px 26px; border:1px solid currentColor; cursor:pointer;
  background:none; color:inherit; text-decoration:none; display:inline-block;
  transition:background-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
}
.btn--sm{ padding:12px 20px; }
.btn--primary{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
.btn--primary:hover{ transform:translateY(-2px); }
.btn--ghost:hover{ background:var(--white); color:var(--ink); }
.linklike{ background:none; border:0; padding:0; cursor:pointer; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:4px; }

/* ---------- Cookie-Banner ---------- */
.consent{ position:fixed; inset:0; z-index:300; background:var(--ink); display:flex; align-items:center; justify-content:center; padding:var(--pad); animation:fadeIn .45s var(--ease) both; }
.consent-done .consent{ display:none; }
.consent.is-hidden{ display:none; }
@keyframes fadeIn{ from{opacity:0} to{opacity:1} }
.consent__inner{ width:min(720px,100%); }
.consent__title{ font-family:var(--display); font-weight:800; font-size:clamp(2.2rem,7vw,4.4rem); line-height:.95; letter-spacing:-.03em; margin:0 0 1.6rem; }
.consent__text{ font-size:1rem; line-height:1.65; max-width:56ch; margin:0 0 2rem; color:#B7B7BE; }
.consent__text strong{ color:var(--white); }
.consent__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:1.8rem; }
.consent__legal{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; color:var(--grey); line-height:1.9; margin:0; }
.consent__legal a{ color:var(--gold); }

/* ---------- Footer ---------- */
.footer{ position:relative; z-index:1; border-top:1px solid var(--line); padding-top:clamp(56px,7vw,90px); padding-bottom:clamp(22px,3.5vw,44px); overflow:hidden; }
.footer__inner{ display:grid; gap:1.4rem; }
.footer__nav{ display:flex; flex-wrap:wrap; gap:1.4rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; }
.footer__nav a{ text-decoration:none; color:var(--grey); transition:color .3s var(--ease); }
.footer__nav a:hover{ color:var(--gold); }
.footer__meta{ font-family:var(--mono); font-size:.64rem; color:var(--grey); letter-spacing:.12em; margin:0; }
.footer__word{ margin-top:clamp(28px,5vw,56px); padding-inline:var(--pad); }
.footer__word svg{ width:100%; height:auto; display:block; overflow:visible; }
.footer__word text{
  font-family:var(--display); font-weight:800; font-size:150px; fill:var(--gold);
}
.footer__reflect{
  transform:scaleY(-1); opacity:.15; margin-top:-6px;
  -webkit-mask-image:linear-gradient(#000,transparent 68%); mask-image:linear-gradient(#000,transparent 68%);
}

/* ---------- Scroll-Animationen ---------- */
.js-reveal{ opacity:0; transform:translateY(26px); transition:opacity .85s var(--ease), transform .85s var(--ease); }
.js-reveal.is-in{ opacity:1; transform:none; }

/* ---------- Impressum ---------- */
.doc{ position:relative; z-index:1; padding-top:clamp(110px,15vw,180px); padding-bottom:clamp(56px,8vw,100px); }
.doc h1{ font-family:var(--display); font-weight:800; font-size:clamp(2.4rem,8vw,5.6rem); line-height:.95; letter-spacing:-.04em; margin:0 0 3rem; }
.doc h2{ font-family:var(--display); font-weight:800; font-size:clamp(1.3rem,3vw,2rem); letter-spacing:-.02em; margin:3.2rem 0 1rem; }
.doc h3{ font-family:var(--mono); font-weight:400; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin:2.2rem 0 .6rem; }
.doc p, .doc li{ font-size:1rem; line-height:1.75; color:var(--grey); max-width:66ch; }
.doc a{ color:var(--gold); }
.doc dl{ display:grid; grid-template-columns:220px 1fr; gap:.9rem 2rem; margin:0 0 2rem; }
.doc dt{ font-family:var(--mono); font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; color:var(--grey); padding-top:.35rem; }
.doc dd{ margin:0; font-size:1rem; color:var(--white); }
@media (max-width:600px){ .doc dl{ grid-template-columns:1fr; gap:.2rem 0; } .doc dd{ margin-bottom:1rem; } }
.doc [id]{ scroll-margin-top:96px; }
.back{ display:inline-block; margin-bottom:2rem; font-family:var(--mono); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:var(--gold); }

/* ---------- Kleine Bildschirme ---------- */
@media (max-width:640px){
  .hero{ min-height:94svh; }
  .consent{ align-items:flex-end; padding-bottom:calc(var(--pad) + env(safe-area-inset-bottom)); }
  .consent__actions{ flex-direction:column; align-items:stretch; }
  .consent__actions .btn{ width:100%; }
  .embed{ min-height:320px; }
  .embed iframe{ height:340px; }
  .ig-item iframe{ height:560px; }
  .swim{ height:180svh; }
}

:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .js-reveal{ opacity:1; transform:none; }
  .hero__title .msk > span, .hero__over span{ transform:none; }
  .h2 span > i{ transform:none; }
  .section::before{ transform:scaleX(1); }
  .flock, .rail{ display:none; }
  .swim{ height:auto; }
  .swim__sticky{ height:76svh; }
  .swim__swan--near{ left:14%; }
  .swim__swan--far{ left:56%; }
  .ripple{ display:none; }
  .swim__line span{ opacity:1; transform:none; }
}
