
/* ==========================================================================
   FABRIKTHEATER SCHWANDEN — Stylesheet
   Zwei Welten:  .world-fabrik (elegant, Theater-Rot, Bodoni)
                 .world-chliibueni (frech, Bernstein, Bricolage)
   ========================================================================== */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --font-display:'Bodoni Moda', Georgia, serif;
  --font-chl:'Bricolage Grotesque', system-ui, sans-serif;
  --font-body:'Hanken Grotesk', system-ui, sans-serif;
  --font-mono:'Space Mono', ui-monospace, monospace;
  --font-read:'Source Serif 4', Georgia, serif;

  --paper:#F4EEE3; --surface:#FBF7EF; --ink:#1B1813; --muted:#6E655A;
  --line:#E4DACB; --stage:#22110C; --stage-fg:#F2E9DB; --stage-muted:#A99A85;

  --red:#C0202A; --red-deep:#7C1319;
  --amber:#B9762A; --amber-deep:#7E4C15;

  --accent:var(--red); --accent-deep:var(--red-deep);
  --maxw:1280px; --pad:clamp(20px,5vw,72px);
  scroll-behavior:smooth; scroll-padding-top:88px;
}
.world-fabrik{ --accent:var(--red); --accent-deep:var(--red-deep); }
.world-chliibueni{
  --pink:#E23D82; --pink-deep:#9E1E5C; --violet:#6B2FA0; --coral:#E8302A;
  --accent:var(--pink); --accent-deep:var(--pink-deep);
  --bg:#1A0F22; --surface:#241533; --ink:#F5EAF4; --muted:#C9B4D6; --line:rgba(255,255,255,.14);
  --stage:#150C1C; --stage-fg:#F5EAF4; --stage-muted:#C9B4D6; --band:#2A1638;
}
.world-chliibueni body{background:linear-gradient(180deg,#33203E 0%,#3C2148 14%,#4A1E52 28%,#5C2354 40%,#6F2453 50%,#832953 60%,#93305B 70%,#87295A 80%,#5E2251 90%,#33203E 100%) fixed}
.world-chliibueni .chl-hero,.world-chliibueni .chl-section,.world-chliibueni .footer{background:transparent}
.world-chliibueni .poster{background:none;box-shadow:none}
.world-chliibueni .vorstand{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);backdrop-filter:blur(6px)}
.world-chliibueni .timeline{border-top-color:rgba(255,255,255,.16)}
.world-chliibueni .timeline b{color:var(--ink)}
.world-chliibueni .hdr.scrolled{background:rgba(26,15,34,.85);color:var(--ink);box-shadow:0 1px 0 rgba(255,255,255,.1)}
.world-chliibueni .chip{color:var(--muted);border-color:var(--line)}
.world-chliibueni .chl-hero::before{content:none}
.chl-film-tile{display:inline-flex;align-items:center;gap:.7em;padding:.7em 1.4em .7em .6em;border-radius:999px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.35);color:var(--stage-fg);font-family:var(--font-chl);font-weight:700;font-size:.95rem;letter-spacing:.01em;text-decoration:none;backdrop-filter:blur(6px);transition:transform .25s cubic-bezier(.2,.7,.2,1),background .25s,border-color .25s}
.chl-film-tile:hover{transform:translateY(-2px) scale(1.02);background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.55)}
.chl-film-tile .badge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--amber);color:#1a0f22;flex-shrink:0}

html,body{background:var(--paper);color:var(--ink)}
body{font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:var(--accent)}
a:hover{color:var(--accent-deep)}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.mono{font-family:var(--font-mono)}
.kicker{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--stage-fg);transition:background .35s,color .35s,box-shadow .35s}
.hdr__in{max-width:var(--maxw);margin:0 auto;padding:16px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px}
.hdr.scrolled{background:color-mix(in oklab,var(--paper),transparent 4%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.brand__sep{width:1px;height:26px;background:currentColor;opacity:.2}
.brand b{font-family:var(--font-display);font-weight:600;font-size:1.3rem;letter-spacing:.01em}
.brand span{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.34em;text-transform:uppercase;opacity:.72;padding-left:.15em}
.nav{display:flex;align-items:center;gap:26px}
.nav a{color:inherit;text-decoration:none;font-weight:500;font-size:.92rem;opacity:.86;position:relative;padding:4px 0;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--accent);transition:right .3s}
.nav a:hover{opacity:1}.nav a:hover::after{right:0}
.hdr__cta{display:flex;align-items:center;gap:14px}
.btn-pill{position:relative;display:inline-flex;align-items:center;gap:.5em;text-decoration:none;font-weight:600;font-size:.86rem;letter-spacing:.01em;padding:.7em 1.3em;border-radius:999px;border:1.5px solid currentColor;color:inherit;white-space:nowrap;cursor:pointer;background:none;overflow:hidden;isolation:isolate;transition:color .35s ease}
.btn-pill::before{content:"";position:absolute;inset:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:-1;border-radius:inherit}
.btn-pill:hover{color:var(--paper)}
.btn-pill:hover::before{transform:scaleX(1)}
.btn-pill svg{transition:transform .3s}
.btn-pill:hover svg{transform:translateX(3px)}
.btn-pill--accent{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 10px 26px -12px color-mix(in oklab,var(--accent),transparent 25%)}
.btn-pill--accent::before{background:var(--accent-deep)}
.btn-pill--accent:hover{color:#fff;box-shadow:0 14px 30px -10px color-mix(in oklab,var(--accent),transparent 15%);transform:translateY(-2px)}
.btn-pill--accent:hover::before{transform:scaleX(1)}
.btn-pill{transition:color .35s ease,transform .25s ease,box-shadow .25s ease}
.menu-btn{display:none;align-items:center;gap:9px;background:none;border:0;color:inherit;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:12px 8px;min-height:44px}
.menu-btn i{width:22px;height:11px;position:relative;display:inline-block}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor}
.menu-btn i::before{top:1px}.menu-btn i::after{bottom:1px}

/* ---------- hero (Scheinwerfer über Ensemble-Bild) ---------- */
@property --hx{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --hy{syntax:'<percentage>';inherits:true;initial-value:46%}
.hero{position:relative;background:var(--stage);color:var(--stage-fg);overflow:hidden;text-align:center;isolation:isolate}
.hero--compact{min-height:100vh;padding:clamp(52px,6.5vh,76px) 0 0;display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(14px,2vh,22px);background:linear-gradient(180deg,#22110C 0%,#37160F 60%,#22110C 100%)}
.hero__cast{position:absolute;bottom:0;left:0;width:100%;height:74vh;object-fit:cover;object-position:center top;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 14%,#000 30%);mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 14%,#000 30%)}
.hero__cast--dim{z-index:0;filter:brightness(.18) saturate(.55) contrast(.98);opacity:.92}
.hero__cast--lit{z-index:1;filter:saturate(1.22) contrast(1.14) brightness(1.04);
  mask-image:radial-gradient(circle 230px at var(--hx) var(--hy),#000 42%,rgba(0,0,0,.35) 68%,transparent 82%),linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 14%,#000 30%);
  -webkit-mask-image:radial-gradient(circle 230px at var(--hx) var(--hy),#000 42%,rgba(0,0,0,.35) 68%,transparent 82%),linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 14%,#000 30%);
  mask-composite:intersect;-webkit-mask-composite:source-in;
}
.hero__beam{position:absolute;bottom:0;left:0;width:100%;height:74vh;z-index:2;pointer-events:none;mix-blend-mode:screen;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 16%,#000 32%);mask-image:linear-gradient(180deg,transparent 0,rgba(0,0,0,.5) 16%,#000 32%);
  background:radial-gradient(circle 240px at var(--hx) var(--hy),rgba(255,240,210,.28) 0%,rgba(255,226,180,.1) 45%,transparent 72%)}
@keyframes heroSweep{
  0%{--hx:8%;--hy:40%}
  20%{--hx:24.8%;--hy:47%}
  40%{--hx:41.6%;--hy:34%}
  60%{--hx:58.4%;--hy:47%}
  80%{--hx:75.2%;--hy:34%}
  100%{--hx:92%;--hy:44%}
}
.hero__in{position:relative;z-index:5;max-width:820px;margin:0 auto;display:flex;flex-direction:column;align-items:center;flex:none}
.hero__logo{width:clamp(210px,22vw,300px);margin-bottom:6px}
.hero__tag{font-family:var(--font-chl);font-weight:700;font-size:clamp(1.05rem,2vw,1.35rem);letter-spacing:-.01em;color:#fff;margin-bottom:18px}
.hero__plakat{position:absolute;top:clamp(76px,10vh,120px);right:clamp(28px,6vw,92px);z-index:8;width:clamp(180px,19vw,278px);display:block;text-decoration:none;transform:rotate(0deg);transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .3s;padding:9px;border-radius:3px;background:linear-gradient(150deg,#F0DFA0 0%,#C9A227 24%,#8A6A18 50%,#D9BE6A 74%,#A8862A 100%);box-shadow:0 22px 48px -14px rgba(0,0,0,.75),0 0 0 1px rgba(34,17,12,.65),inset 0 0 0 1px rgba(255,246,214,.5)}
.hero__plakat::after{content:"";position:absolute;inset:5px;border:1px solid rgba(34,17,12,.5);border-radius:2px;pointer-events:none}
.hero__plakat img{display:block;width:100%;height:auto;border-radius:1px;box-shadow:0 2px 10px rgba(0,0,0,.45),0 0 0 1px rgba(34,17,12,.55)}
.hero__plakat__flag{position:absolute;left:50%;top:100%;margin-top:8px;transform:translateX(-50%);white-space:nowrap;font-family:var(--font-body);font-weight:700;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#22110C;background:#D4AF37;border-radius:999px;padding:.42em 1em;box-shadow:0 6px 16px -6px rgba(0,0,0,.7)}
.hero__plakat:hover,.hero__plakat:focus-visible{filter:brightness(1.1) drop-shadow(0 0 22px rgba(212,175,55,.45));animation:plakatFloat 1.6s ease-in-out infinite}
@keyframes plakatFloat{0%{transform:translateY(0) rotate(0deg) scale(1.06)}30%{transform:translateY(-7px) rotate(1.6deg) scale(1.08)}60%{transform:translateY(2px) rotate(-1.6deg) scale(1.06)}100%{transform:translateY(0) rotate(0deg) scale(1.06)}}
.hero__plakat:active{animation:plakatWiggle .55s ease}@keyframes plakatWiggle{0%{transform:rotate(0deg) scale(1.05)}25%{transform:rotate(3deg) scale(1.06)}50%{transform:rotate(-3deg) scale(1.05)}75%{transform:rotate(1.5deg) scale(1.06)}100%{transform:rotate(0deg) scale(1.05)}}
@media (max-width:720px){.hero__plakat{width:116px;top:auto;bottom:18px;right:12px}}
.hero__spielplan{padding:.85em 1.8em;font-size:1rem}

/* ---------- carousel (auto-scrolling, playful) ---------- */
.carousel{position:relative;z-index:1;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.carousel__track{display:flex;gap:16px;width:max-content;padding:4px var(--pad);animation:marquee 34s linear infinite}
.carousel:hover .carousel__track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ccard{position:relative;display:flex;flex-direction:column;width:clamp(120px,13vw,160px);text-decoration:none;color:#fff;flex:none;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.ccard:hover{transform:translateY(-6px)}
.ccard img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;box-shadow:0 16px 30px -14px rgba(0,0,0,.5);transition:box-shadow .3s}
.ccard:hover img{box-shadow:0 22px 38px -12px rgba(0,0,0,.6)}
.ccard__date{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;color:var(--stage-muted);margin-bottom:6px}
.ccard__title{font-family:var(--font-display);font-weight:600;font-size:.92rem;margin-top:8px;line-height:1.15;color:#fff}

/* ---------- next-shows teaser (image-first, minimal text) ---------- */
.teaser{padding:clamp(52px,7vh,84px) 0 clamp(20px,3vh,30px)}
.teaser__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(24px,3vh,36px)}
.teaser__head .kicker{color:var(--accent);display:block;margin-bottom:10px}
.teaser__head h2{font-family:var(--font-chl);font-weight:800;font-size:clamp(2rem,4vw,2.9rem);letter-spacing:-.015em}
.teaser__grid{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto auto;gap:clamp(16px,2vw,22px)}
.teaser__grid--4{grid-template-columns:repeat(4,1fr);grid-template-rows:none;max-width:1040px;margin:0 auto}
.tcard{position:relative;display:flex;align-items:flex-end;border-radius:14px;overflow:hidden;text-decoration:none;color:#fff;aspect-ratio:16/11;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.teaser__grid--4 .tcard{aspect-ratio:3/4}
.tcard--feature{grid-row:1/3;aspect-ratio:auto}
.tcard:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 34px 60px -24px rgba(0,0,0,.4)}
.tcard__media{position:absolute;inset:0}
.tcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.tcard:hover .tcard__media img{transform:scale(1.08)}
.tcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(10,7,5,.85) 100%)}
.tcard__date{position:absolute;top:14px;left:14px;z-index:2;background:var(--accent);color:#fff;font-family:var(--font-mono);font-weight:700;font-size:.7rem;letter-spacing:.08em;padding:6px 11px;border-radius:6px;line-height:1.3;text-align:center}
.tcard__body{position:relative;z-index:1;padding:20px 22px 22px;width:100%}
.tcard__title{display:block;font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.06;margin-bottom:4px;text-wrap:balance}
.tcard--feature .tcard__title{font-size:clamp(1.6rem,3vw,2.4rem)}
.tcard__time{display:block;font-size:.82rem;opacity:.85}

/* curtain divider */
.curtain{height:14px;background:repeating-linear-gradient(90deg,var(--red) 0 11px,var(--red-deep) 11px 22px);box-shadow:inset 0 5px 10px rgba(0,0,0,.28)}

/* ---------- brandband (subpages: logo + black-to-cream blend) ---------- */
.brandband{position:relative;padding:clamp(110px,15vh,150px) 0 clamp(56px,8vh,84px);text-align:center;background:linear-gradient(180deg,#150d0b 0%,#2a1410 45%,color-mix(in oklab,var(--stage),var(--paper) 55%) 80%,var(--paper) 100%)}
.brandband__logo{width:clamp(160px,17vw,220px);margin:0 auto;filter:drop-shadow(0 14px 28px rgba(0,0,0,.4))}
.brandband__title{font-family:var(--font-display);font-weight:600;color:#fff;font-size:clamp(2.6rem,5.5vw,4rem);letter-spacing:-.01em;margin-top:20px}

/* ---------- two worlds intro ---------- */
.worlds{padding:clamp(40px,6vh,72px) 0 clamp(20px,3vh,40px)}
.worlds__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.world-card{position:relative;border:1px solid var(--line);border-radius:6px;padding:clamp(28px,3.5vw,44px);background:var(--surface);overflow:hidden;transition:transform .3s,box-shadow .3s}
.world-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.world-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(0,0,0,.35)}
.world-card .kicker{color:var(--accent);margin-bottom:14px;display:block}
.world-card h3{font-family:var(--font-display);font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.02;margin-bottom:12px}
.world-chliibueni .world-card h3{font-family:var(--font-chl);font-weight:700;letter-spacing:-.01em}
.world-card p{color:var(--muted);font-size:1rem;max-width:40ch;margin-bottom:20px}
.world-card .go{display:inline-flex;align-items:center;gap:.5em;text-decoration:none;color:var(--accent);font-weight:600;font-size:.95rem}
.world-card .go svg{transition:transform .25s}.world-card:hover .go svg{transform:translateX(5px)}

/* ---------- program ---------- */
.program{padding:clamp(48px,7vh,92px) 0 clamp(30px,5vh,60px)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(22px,3vh,34px)}
.sec-head .kicker{color:var(--accent);display:block;margin-bottom:12px}
.sec-head h2{font-family:var(--font-display);font-weight:600;font-size:clamp(2.3rem,5vw,3.8rem);line-height:.96;letter-spacing:-.01em}
.sec-head__note{color:var(--muted);font-size:.92rem;max-width:30ch}

/* filter chips */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:clamp(20px,3vh,34px);padding-bottom:22px;border-bottom:1px solid var(--line)}
.chip{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.6em 1em;border:1.5px solid var(--line);border-radius:999px;background:none;color:var(--muted);cursor:pointer;transition:all .2s}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chip .n{opacity:.55;margin-left:.4em}

/* compact list rows */
.agenda{border-top:1px solid var(--line)}
.row{border-bottom:1px solid var(--line);transition:background .25s}
.row.hide{display:none}
.row__head{display:grid;grid-template-columns:84px 60px 1fr auto;gap:clamp(14px,2.5vw,32px);align-items:center;width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:clamp(16px,2.4vh,26px) 4px;font:inherit;color:inherit}
.row:hover{background:color-mix(in oklab,var(--accent),transparent 94%)}
.plate{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;padding:8px 4px;line-height:1;background:var(--surface)}
.plate .d{font-family:var(--font-display);font-weight:600;font-size:1.5rem;color:var(--accent)}
.plate .m{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;margin-top:4px;color:var(--muted)}
.row__main{min-width:0}
.row__thumb{width:60px;height:60px;border-radius:5px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.row__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.row__cat{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;display:block}
.row__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,2.4vw,1.85rem);line-height:1.05;letter-spacing:-.01em;display:block}
.row__title .over{font-family:var(--font-mono);font-size:.98rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:6px;font-weight:500}
.row__sub{font-family:var(--font-read);font-optical-sizing:auto;color:var(--muted);font-size:.98rem;line-height:1.5;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:60ch}
.row__thumb--low img{object-position:center 18%}
.row__head--link{text-decoration:none;color:inherit}
.row__head--link .row__thumb{transform:none;align-self:center;width:auto;height:60px;border:none;background:transparent;border-radius:5px;overflow:hidden;display:flex}
.row__head--link .row__thumb img{width:auto;height:100%;object-fit:contain;border-radius:5px}
.row__aside{display:flex;align-items:center;gap:clamp(10px,1.2vw,16px);flex:none}
.row__hint{font-family:var(--font-body);font-weight:600;font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);background:transparent;padding:.5em .95em;border:1px solid color-mix(in oklab,var(--accent),transparent 62%);border-radius:999px;white-space:nowrap;transition:background .25s,color .25s,border-color .25s}
.row:hover .row__hint,.row__head:hover .row__hint{background:var(--accent);border-color:var(--accent);color:#fff}
.row:hover .row__hint{opacity:1}
.row[open] .row__hint{display:none}
.row__time{display:flex;flex-direction:column;align-items:flex-end;text-align:right;white-space:nowrap;width:clamp(136px,11.5vw,170px);font-variant-numeric:lining-nums tabular-nums}
.row__day{font-family:var(--font-body);font-weight:600;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.row__date{font-family:var(--font-display);font-weight:500;font-size:1.02rem;line-height:1.25;color:var(--ink);margin-top:3px}
.row__hr{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:1.05rem;line-height:1.3;color:var(--accent);margin-top:4px}
.row__dates{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.row__dates span{font-family:var(--font-display);font-weight:500;font-size:.95rem;line-height:1.25;color:var(--ink)}
.row__time--multi{width:clamp(140px,12vw,182px)}
.row__chev{width:40px;height:40px;border-radius:50%;border:2px solid var(--accent);color:var(--accent);background:color-mix(in oklab,var(--accent),transparent 92%);display:grid;place-items:center;flex:none;transition:transform .35s,border-color .25s,background .25s,color .25s;animation:chevpulse 1.8s ease-in-out infinite}
.row__chev svg{width:20px;height:20px}
@keyframes chevpulse{0%,100%{box-shadow:0 0 0 0 color-mix(in oklab,var(--accent),transparent 55%)}50%{box-shadow:0 0 0 9px color-mix(in oklab,var(--accent),transparent 88%)}}
.row__chev svg{transition:transform .35s}
.row[open] .row__chev{border-color:var(--accent);background:var(--accent);color:#fff;animation:none}
.row[open] .row__chev svg{transform:rotate(180deg)}
.row__panel{overflow:hidden;max-height:0;transition:max-height .5s cubic-bezier(.4,0,.2,1)}
.row__panelin{display:grid;grid-template-columns:.62fr 1fr;gap:clamp(20px,3vw,44px);padding:4px 4px clamp(28px,4vh,40px);align-items:start}
.row__panelin.has-widget{grid-template-columns:.5fr 1fr 1fr;grid-template-areas:"img desc widget" "practical practical widget"}
.row__panelin.has-widget .row__img{grid-area:img}
.row__panelin.has-widget .row__body{grid-area:desc}
.row__panelin.has-widget .row__widget{grid-area:widget}
.row__panelin.has-widget .row__body{max-height:457px;overflow:hidden}
.row__panelin.has-widget .row__practical{grid-area:practical}
.row__widget{background:var(--surface);border:2px solid var(--accent);border-radius:8px;padding:10px;box-shadow:0 8px 24px -14px color-mix(in oklab,var(--accent),transparent 40%);max-width:300px;justify-self:end;overflow:hidden}
.row__widget-scale{width:172%;transform:scale(.58);transform-origin:top left}
.row__widget-label{display:flex;align-items:center;gap:.5em;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--accent);padding:8px 14px;border-radius:999px;margin-bottom:14px;width:fit-content}
.row__imgcol{display:flex;flex-direction:column;gap:16px}
.row__practical{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 22px;margin-top:2px;display:flex;align-items:flex-start;gap:22px}
.row__practical-logo{width:130px;flex:none;margin-top:2px}
.row__practical p{font-family:var(--font-read);font-optical-sizing:auto;font-size:.94rem;color:#5c534a;line-height:1.6;margin:0;text-wrap:pretty}
.row__practical strong{color:var(--ink)}
@media (max-width:900px){.row__panelin.has-widget{grid-template-columns:1fr}}
.row__img{border-radius:4px;overflow:hidden;aspect-ratio:1224/2000;background:none;max-width:280px}
.row__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.row[open] .row__img img{transform:scale(1)}
.row__body p{font-family:var(--font-read);font-optical-sizing:auto;font-weight:400;color:#4a4239;font-size:1.06rem;line-height:1.68;margin-bottom:22px;max-width:52ch;text-wrap:pretty}
.row__body p strong{font-weight:600;color:var(--ink)}
.row__service{margin:24px 0 0;padding-top:18px;border-top:2px solid color-mix(in oklab,var(--line),transparent 5%);max-width:52ch}
.row__service h5{font-family:var(--font-body);font-weight:700;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 9px}
.row__service p{font-family:var(--font-read);font-optical-sizing:auto;font-size:.94rem;line-height:1.6;color:#6b6157;margin:0 0 7px;text-wrap:pretty}
.row__service p:last-child{margin-bottom:0}
.row__service strong{color:#4a4239;font-weight:600}
.row__actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.btn{position:relative;display:inline-flex;align-items:center;gap:.55em;text-decoration:none;font-weight:600;overflow:hidden;isolation:isolate}
.btn--ticket{background:var(--accent);color:#fff;padding:.9em 1.6em;border-radius:999px;font-size:.95rem;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s;box-shadow:0 10px 26px -12px color-mix(in oklab,var(--accent),transparent 20%)}
.btn--ticket::before{content:"";position:absolute;inset:0;background:var(--accent-deep);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:-1}
.btn--ticket:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 16px 34px -10px color-mix(in oklab,var(--accent),transparent 10%);color:#fff}
.btn--ticket:hover::before{transform:scaleX(1)}
.btn--ticket svg{transition:transform .3s}.btn--ticket:hover svg{transform:translateX(5px)}
.btn--ghost{border:1.5px solid var(--line);color:var(--ink);padding:.9em 1.5em;border-radius:999px;font-size:.95rem;transition:border-color .25s,color .25s}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}
.free-tag{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border:1.5px solid var(--line);padding:.7em 1.1em;border-radius:999px}

/* ---------- sponsors ---------- */
.sponsors{position:relative;background:var(--stage);color:var(--stage-fg);padding:clamp(60px,9vh,110px) 0;margin-top:clamp(48px,7vh,90px)}
.sponsors__head{text-align:center;max-width:46ch;margin:0 auto clamp(38px,5vh,60px)}
.sponsors__head .kicker{color:var(--red);display:block;margin-bottom:14px;opacity:1;font-size:.82rem;letter-spacing:.28em;font-weight:700}
.sponsors__head p{font-family:var(--font-body);font-weight:500;font-size:.95rem;color:var(--stage-muted);line-height:1.5}
.sponsor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.sponsor-grid--top{grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.6vw,34px);max-width:920px;margin:0 auto clamp(28px,4vh,44px)}
.sponsor-grid--rest{grid-template-columns:repeat(5,1fr);gap:clamp(14px,1.7vw,20px);max-width:1060px;margin:0 auto}
.sponsor-grid--rest .sponsor{min-height:88px;padding:16px 20px}
.sponsor-grid--rest .sponsor img{max-height:50px}
.sponsor{display:flex;align-items:center;justify-content:center;padding:26px 24px;background:rgba(251,247,239,.92);border:1px solid rgba(255,255,255,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;min-height:108px;box-shadow:0 12px 34px -20px rgba(0,0,0,.65);transition:transform .28s,box-shadow .25s}
.sponsor--featured{padding:34px 30px;min-height:154px}
.sponsor--featured img{max-height:70px}
.sponsor--featured img{max-height:64px}
.sponsor img{max-height:52px;width:auto;object-fit:contain;opacity:1;transition:opacity .3s,transform .3s}
.sponsor:hover{transform:translateY(-3px);box-shadow:0 22px 44px -22px rgba(0,0,0,.75)}
.sponsor:hover img{opacity:1;transform:scale(1.03)}
.sponsor--wide{grid-column:1/-1;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0;padding-top:30px;margin-top:6px;min-height:0}
.sponsor--wide img{max-height:56px;opacity:.95}

/* ---------- footer ---------- */
.footer{background:#22110C;color:var(--stage-fg);padding:clamp(56px,8vh,96px) 0 36px}
html.world-fabrik .footer-fade{display:none}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(26px,4vw,52px);padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer__brand img{width:190px;max-width:62%}
.footer__brand p{color:var(--stage-muted);font-size:.92rem;max-width:30ch}
.fcol h4{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stage-muted);margin-bottom:16px;font-weight:400}
.fcol a{display:block;text-decoration:none;color:var(--stage-fg);opacity:.82;font-size:.95rem;padding:6px 0;transition:opacity .2s,padding-left .2s}
.fcol a:hover{opacity:1;padding-left:5px}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:28px;color:var(--stage-muted);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em}
.footer__bottom a{color:var(--stage-muted);text-decoration:none}.footer__bottom a:hover{color:#fff}

/* ---------- generic content pages (fabrik world) ---------- */
.page-block{padding:clamp(48px,7vh,84px) 0;border-top:1px solid var(--line)}
.page-block:first-of-type{border-top:0}
.page-block__grid{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(28px,4vw,64px);align-items:start}
.page-block__media{position:relative;width:100%;aspect-ratio:4/3;border-radius:6px;overflow:hidden}
.page-block__media--portrait{aspect-ratio:auto;height:100%;align-self:stretch;max-width:320px;margin-left:auto;border-radius:0;position:relative;z-index:0}
.page-block__media--portrait>image-slot{background:transparent}
.page-block__media--portrait>image-slot::part(frame){background:transparent}
.page-block__media--portrait>image-slot:not([data-filled])::part(frame){background:transparent}
.page-block__media--portrait>image-slot::part(ring){display:none}
.page-block--sirana{position:relative}
.page-block--sirana.page-block__grid{grid-template-columns:1fr 1fr 1fr;align-items:center;gap:16px}
.page-block__media-landscape{aspect-ratio:4/3;border-radius:8px;overflow:hidden;box-shadow:0 20px 40px -18px rgba(0,0,0,.35)}
.page-block__media-landscape image-slot{width:100%;height:100%;display:block}
.page-block__media-overlap{position:absolute;left:-70%;top:28%;width:66%;aspect-ratio:4/3;border-radius:8px;overflow:hidden;box-shadow:0 20px 40px -18px rgba(0,0,0,.35);transform:rotate(-4deg);z-index:5}
.page-block__media-overlap image-slot{width:100%;height:100%;display:block}
/* Handy: Sirana-Block einspaltig — Text volle Breite, Bilder darunter nebeneinander */
@media (max-width:760px){
  .page-block--sirana.page-block__grid{grid-template-columns:1fr 1fr;gap:14px 14px}
  .page-block--sirana>div:first-child{grid-column:1/-1}
  .page-block--sirana .page-block__media--portrait{max-width:none;margin:0;aspect-ratio:3/4;height:auto;align-self:auto;border-radius:8px;overflow:hidden}
  .page-block--sirana .page-block__media-landscape{aspect-ratio:3/4}
}
@media (max-width:760px){
  .page-block__media-overlap{position:relative;left:auto;top:auto;width:70%;margin:16px auto 0;transform:rotate(-3deg)}
}
.page-block__grid.rev .page-block__media{order:2}
.page-block h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.01em;margin-bottom:16px}
.page-block p{color:var(--muted);font-size:1.02rem;line-height:1.65;max-width:56ch}
.page-block p+p{margin-top:14px}
.page-block .kicker{color:var(--accent);display:block;margin-bottom:12px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:24px}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;transition:transform .4s}
.photo-grid a{display:block;border-radius:4px;overflow:hidden}
.photo-grid a:hover img{transform:scale(1.05)}
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;grid-auto-flow:dense;gap:14px;margin-top:28px}
.mosaic__item{position:relative;display:block;border-radius:6px;overflow:hidden;grid-row:span 1;grid-column:span 1}
.mosaic__item--wide{grid-column:span 2}
.mosaic__item--tall{grid-row:span 2}
.mosaic__item--square{grid-column:span 2;grid-row:span 2}
.mosaic__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.mosaic__item:hover img{transform:scale(1.06)}
.mosaic__item image-slot{width:100%;height:100%}
@media (max-width:900px){.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}.mosaic__item--wide{grid-column:span 2}}
@media (max-width:560px){.mosaic{grid-template-columns:1fr;grid-auto-rows:220px}.mosaic__item--wide,.mosaic__item--tall{grid-column:span 1;grid-row:span 1}}
.spec-table{margin-top:8px;border-top:1px solid var(--line)}
.prod-hero{display:grid;grid-template-columns:280px 1fr;gap:clamp(28px,4vw,52px);align-items:start}
.prod-poster{aspect-ratio:510/721;border-radius:8px;overflow:hidden}
.prod-hero h1{font-family:var(--font-chl);font-weight:800;font-size:clamp(2rem,4vw,3.2rem);line-height:1.02;margin:6px 0 10px;letter-spacing:-.01em}
.prod-sub{color:var(--muted);font-size:1.02rem;margin-bottom:22px}
.prod-credits{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;padding-top:18px;border-top:1px solid var(--line)}
.prod-credits div{display:grid;grid-template-columns:160px 1fr;gap:12px;font-size:.92rem}
.prod-credits b{color:var(--ink);font-weight:600}
.prod-credits span{color:var(--muted)}
.prod-synopsis{color:var(--muted);font-size:1.02rem;line-height:1.7;max-width:64ch}
.prod-synopsis+.prod-synopsis{margin-top:14px}
.prod-film{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:clamp(20px,3vw,32px)}
.prod-film image-slot{aspect-ratio:778/431;border-radius:6px;overflow:hidden}
.prod-film h2{font-family:var(--font-chl);font-weight:700;font-size:1.3rem;margin-bottom:8px}
.prod-film p{color:var(--muted);margin-bottom:14px}
.prod-media{display:flex;flex-direction:column;gap:10px;list-style:none;margin-top:20px}
.prod-media a{color:var(--ink);text-decoration:none;font-size:.98rem}
.prod-media a:hover{color:var(--accent)}
.prod-cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(24px,3vw,36px);margin-top:24px}
.prod-cast__item{display:flex;gap:16px;align-items:flex-start}
.prod-cast__item image-slot{width:72px;height:72px;flex-shrink:0;border-radius:50%;overflow:hidden}
.prod-cast__item h3{font-family:var(--font-chl);font-weight:700;font-size:1rem;margin-bottom:6px}
.prod-cast__item p{color:var(--muted);font-size:.92rem;line-height:1.6}
.cast-acc{margin-top:24px;border-top:1px solid var(--line)}
.cast-acc__item{border-bottom:1px solid var(--line)}
.cast-acc__item>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:16px 0}
.cast-acc__item>summary::-webkit-details-marker{display:none}
.cast-acc__item summary image-slot{width:56px;height:56px;flex-shrink:0;border-radius:50%;overflow:hidden}
.cast-acc__name{font-family:var(--font-chl);font-weight:700;font-size:1.05rem;flex:1}
.cast-acc__chev{flex-shrink:0;width:36px;height:36px;padding:8px;box-sizing:border-box;border:2px solid var(--accent);border-radius:50%;background:color-mix(in oklab,var(--accent),transparent 92%);color:var(--accent);transition:transform .25s,background .25s,color .25s;animation:castchev 2.6s ease-in-out infinite}
@keyframes castchev{0%,100%{box-shadow:0 0 0 0 color-mix(in oklab,var(--accent),transparent 60%)}50%{box-shadow:0 0 0 8px color-mix(in oklab,var(--accent),transparent 100%)}}
.cast-acc__item>summary:hover .cast-acc__chev{background:var(--accent);color:#fff}
.cast-acc__item[open]>summary .cast-acc__chev{transform:rotate(180deg);background:var(--accent);color:#fff;animation:none}
@media (prefers-reduced-motion:reduce){.cast-acc__chev{animation:none}}
.cast-acc__body{padding:2px 0 18px 72px}
.cast-acc__body p{color:var(--muted);font-size:.95rem;line-height:1.65}
.lightbox{position:fixed;inset:0;background:rgba(10,6,14,.94);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .25s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:90vw;max-height:88vh;border-radius:6px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}
.lightbox__close{position:absolute;top:22px;right:26px;background:none;border:0;color:#fff;font-size:1.4rem;cursor:pointer;line-height:1;opacity:.8}
.lightbox__close:hover{opacity:1}
.cookie-banner{position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%) scale(.98);z-index:300;background:var(--stage);color:var(--stage-fg);border:1px solid rgba(255,255,255,.14);border-radius:14px;box-shadow:0 20px 50px -15px rgba(0,0,0,.55);max-width:420px;opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .5s}
.cookie-banner.open{transform:translate(-50%,0) scale(1);opacity:1}
.cookie-banner__in{padding:20px 22px;display:flex;flex-direction:column;gap:16px}
.cookie-banner__in p{margin:0;font-size:.86rem;line-height:1.5;color:var(--stage-muted)}
.cookie-banner__in a{color:var(--stage-fg);text-decoration:underline;text-underline-offset:2px}
.cookie-banner__actions{display:flex;gap:10px}
.cookie-banner__btn{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;padding:11px 16px;border-radius:999px;cursor:pointer;border:1px solid rgba(255,255,255,.3);background:none;color:var(--stage-fg);transition:transform .2s,background .2s;flex:1;text-align:center}
.cookie-banner__btn:hover{transform:translateY(-1px)}
.cookie-banner__btn--accent{background:var(--accent);border-color:var(--accent);color:#fff}
.cookie-banner__btn--ghost:hover{background:rgba(255,255,255,.1)}
@media (max-width:640px){.cookie-banner{left:14px;right:14px;bottom:14px;max-width:none;transform:translateY(140%)}.cookie-banner.open{transform:translateY(0)}}
@media (max-width:700px){.prod-hero{grid-template-columns:1fr}.prod-poster{max-width:240px}.prod-film{grid-template-columns:1fr}.prod-film image-slot{max-width:280px}}
.world-chliibueni .prod-hero,.world-chliibueni .prod-film,.world-chliibueni .prod-media,.world-chliibueni .prod-cast,.world-chliibueni .cast-acc{position:relative;z-index:1}
.world-chliibueni .prod-sub,.world-chliibueni .prod-credits span,.world-chliibueni .prod-synopsis,.world-chliibueni .prod-film p,.world-chliibueni .prod-cast__item p{text-shadow:0 1px 3px rgba(0,0,0,.45)}
.world-chliibueni .prod-hero h1,.world-chliibueni .prod-film h2,.world-chliibueni .prod-credits b,.world-chliibueni .prod-cast__item h3{text-shadow:0 1px 4px rgba(0,0,0,.35)}
.spec-row{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}
.spec-row .label{color:var(--ink);font-size:1rem}
.spec-row .val{font-family:var(--font-mono);font-size:.95rem;color:var(--accent);white-space:nowrap;text-align:right}
.spec-note{color:var(--muted);font-size:.94rem;line-height:1.65;margin-top:22px;max-width:60ch}
.agenda-list{list-style:none;margin-top:8px;border-top:1px solid var(--line)}
.agenda-list li{padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.98rem;line-height:1.5}
.agenda-list li::marker{content:none}

/* film cards + media list (chliibüni + fabrik shared pages) */
.film-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(24px,3vw,36px)}
.film-card{display:grid;grid-template-columns:130px 1fr;gap:18px}
.film-card img{width:100%;border-radius:4px;aspect-ratio:778/431;object-fit:cover}
.film-card h3{font-family:var(--font-chl,var(--font-display));font-weight:700;font-size:1.05rem;margin-bottom:6px}
.film-card p{color:var(--muted);font-size:.88rem;line-height:1.5;margin-bottom:10px}
.film-card .price{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);margin-right:14px}
.film-card a.order{font-weight:600;color:var(--accent);text-decoration:none;font-size:.85rem}
.film-accordion{border-top:1px solid var(--line)}
.film-row .row__head{grid-template-columns:230px 1fr auto}
.film-row__cover{width:230px;aspect-ratio:778/431;object-fit:cover;border-radius:6px}
.film-row__price{font-family:var(--font-mono);font-size:.9rem;color:var(--accent);font-weight:700;white-space:nowrap}
.film-row__panelin{display:block;padding:0 4px clamp(24px,4vh,36px);max-width:64ch}
.film-row__panelin p{color:var(--muted);font-size:1rem;line-height:1.65;margin-bottom:20px}
.film-row__buy{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.film-row__buy .price{font-family:var(--font-mono);font-size:.88rem;color:var(--muted)}
@media (max-width:640px){.film-row .row__head{grid-template-columns:120px 1fr}.film-row__price{display:none}}

.press-list{list-style:none;margin-top:8px}
.press-list li{border-bottom:1px solid var(--line);padding:14px 0;display:flex;gap:16px;align-items:baseline}
.press-list .d{font-family:var(--font-mono);font-size:.78rem;color:var(--accent);white-space:nowrap;min-width:90px}
.press-list a{color:var(--ink);text-decoration:none;font-size:.98rem}
.press-list a:hover{color:var(--accent)}
.press-year{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:34px 0 4px}
.press-year:first-child{margin-top:0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px)}
.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:clamp(24px,3vw,36px)}
.contact-card h3{font-family:var(--font-chl);font-weight:700;font-size:1.15rem;letter-spacing:0;text-transform:none;color:var(--accent);margin-bottom:14px}
.contact-card p{color:var(--ink);font-size:1.02rem;line-height:1.7}
.contact-card a{font-weight:600}
.map-box{margin-top:clamp(28px,4vh,44px);border:1px solid var(--line);border-radius:8px;padding:clamp(28px,4vw,44px);background:var(--band);text-align:center}
.map-box p{color:var(--muted);font-family:var(--font-mono);font-size:.85rem;letter-spacing:.04em}
@media (max-width:760px){ .page-block__grid{grid-template-columns:1fr} .page-block__grid.rev .page-block__media{order:0} .contact-grid{grid-template-columns:1fr} .spec-row{grid-template-columns:1fr;gap:4px} .spec-row .val{text-align:left} }

/* ---------- event detail page ---------- */
.evd{padding:clamp(48px,7vh,84px) 0}
.evd__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:start;margin-bottom:clamp(40px,6vh,64px)}
.evd__media{border-radius:6px;overflow:hidden;aspect-ratio:16/10;background:var(--surface)}
.evd__media img{width:100%;height:100%;object-fit:cover}
.evd__body .kicker{color:var(--accent);display:block;margin-bottom:14px}
.evd__title{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,4vw,3rem);line-height:1.02;letter-spacing:-.01em;margin-bottom:16px}
.evd__over{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.evd__date{font-family:var(--font-display);font-style:italic;font-size:1.3rem;color:var(--accent);margin-bottom:4px}
.evd__time{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.1em;color:var(--muted);margin-bottom:26px}
.evd__body article p{color:var(--muted);font-size:1.02rem;line-height:1.7;margin-bottom:16px;max-width:56ch}
.evd__body article p:last-child{margin-bottom:0}
.evd__back{display:inline-flex;align-items:center;gap:.5em;color:var(--muted);text-decoration:none;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-top:clamp(30px,4vh,44px);margin-bottom:28px}
.evd__back:hover{color:var(--accent)}
@media (max-width:760px){ .evd__grid{grid-template-columns:1fr} }

/* ---------- mobile menu ---------- */
.menu{position:fixed;inset:0;z-index:60;background:#120D09;color:#F2E9DB;display:flex;flex-direction:column;padding:clamp(20px,5vw,40px);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;overflow-y:auto}
.menu.open{opacity:1;visibility:visible}
.menu__bar{display:flex;align-items:center;justify-content:space-between}
.menu__bar b{font-family:var(--font-display);font-size:1.25rem}
.menu__close{background:none;border:0;color:inherit;cursor:pointer;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;padding:8px}
.menu__list{margin:auto 0;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;justify-content:center;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.menu__link{display:flex;align-items:baseline;gap:16px;text-decoration:none;color:inherit;font-family:var(--font-display);font-size:clamp(1.5rem,5vw,2.4rem);font-weight:500;padding:clamp(7px,1.3vh,13px) 0;border-bottom:1px solid rgba(255,255,255,.08);transition:color .2s,padding-left .2s}
.menu__link:hover{color:var(--red);padding-left:8px}
.menu__idx{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;color:var(--red)}

/* reveal */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
}

/* ================= CHLIIBÜNI GLÄRNISCH (frech) ================= */
.chl-hero{position:relative;background:var(--stage);color:var(--stage-fg);padding:clamp(120px,16vh,168px) 0 clamp(110px,14vh,160px);overflow:hidden;text-align:center}
.chl-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 60% at 50% 0%,color-mix(in oklab,var(--amber) 32%,transparent),transparent 60%);pointer-events:none}
.chl-hero__in{position:relative;max-width:900px;margin:0 auto;padding-inline:var(--pad)}
.chl-hero .kicker{color:var(--stage-fg);opacity:.85;display:block;margin-bottom:18px}
.chl-hero h1{font-family:var(--font-chl);font-weight:800;font-size:clamp(2.8rem,7vw,5.4rem);line-height:.94;letter-spacing:-.02em;margin-bottom:20px;color:var(--stage-fg)}
.chl-hero h1 em{font-style:normal;color:var(--stage-fg)}
.chl-hero p{color:var(--stage-muted);max-width:52ch;margin:0 auto 34px;font-size:1.1rem}
.chl-cast{position:absolute;inset:0;pointer-events:none}
.chl-cast i{position:absolute;width:150px;height:190px;animation:chlfloat 5s ease-in-out infinite;animation-delay:var(--dl,0s)}
.chl-cast img{position:absolute;left:50%;bottom:0;height:100%;width:auto;max-width:none;transform:translateX(-50%) rotate(var(--r,0deg));filter:drop-shadow(0 16px 24px rgba(0,0,0,.45));display:block}
@keyframes chlfloat{0%,100%{transform:translateY(0) translateX(0) rotate(0deg)}25%{transform:translateY(-16px) translateX(6px) rotate(-3deg)}50%{transform:translateY(-6px) translateX(-4px) rotate(2deg)}75%{transform:translateY(-20px) translateX(4px) rotate(3deg)}}
@media (min-width:860px){
  .chl-cast i.c1{top:90px;left:3%;--r:-6deg;--dl:.2s}
  .chl-cast i.c2{top:90px;right:3%;--r:6deg;--dl:.9s}
  .chl-cast i.c3{bottom:60px;left:9%;--r:-4deg;--dl:1.6s;width:250px;height:290px}
  .chl-cast i.c4{bottom:100px;right:9%;--r:5deg;--dl:.5s}
}
@media (max-width:859px){ .chl-cast{display:none} }
.chl-scrollcue{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:var(--stage-fg);opacity:.7;animation:chlscrollcue 2.2s ease-in-out infinite}
.chl-scrollcue__dot{animation:chlscrollcuedot 2.2s ease-in-out infinite}
@keyframes chlscrollcue{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}
@keyframes chlscrollcuedot{0%{opacity:1;transform:translateY(0)}70%{opacity:0;transform:translateY(14px)}100%{opacity:0;transform:translateY(14px)}}
/* Handy: Scroll-Hinweis in den Fluss, direkt unter das Plakat */
@media (max-width:640px){
  .hero--compact .chl-scrollcue{position:static;left:auto;bottom:auto;align-self:center;margin:10px auto 0;transform:none;animation:chlscrollcuemob 2.2s ease-in-out infinite}
}
@keyframes chlscrollcuemob{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

.chl-section{padding:clamp(56px,8vh,100px) 0;scroll-margin-top:96px}
.chl-section .sec-head h2{font-family:var(--font-chl);font-weight:800;letter-spacing:-.02em}
.chl-section .sec-head .kicker{color:var(--amber)}

.posters{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:clamp(14px,2vw,22px)}
.poster{display:block}
.poster__link{display:block;position:relative;border-radius:6px;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.poster__link img{width:100%;aspect-ratio:510/721;object-fit:cover;transition:transform .5s;border-radius:6px;display:block}
.poster:hover .poster__link{transform:translateY(-8px) rotate(-1deg)}
.poster:hover .poster__link img{transform:scale(1.04)}
.poster__year{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:#FFB8D9;margin-bottom:8px}
.poster__title{display:block;font-family:var(--font-chl);font-weight:700;font-size:1rem;line-height:1.2;color:var(--ink);margin-top:10px}

.timeline{display:flex;flex-wrap:wrap;gap:10px 28px;padding:20px 0 0;border-top:1px solid var(--line);margin-top:8px}
.timeline span{font-family:var(--font-mono);font-size:.85rem;color:var(--muted)}
.timeline b{color:var(--ink);font-family:var(--font-body);font-weight:600}

.vorstand{background:var(--band,var(--surface));border:1px solid var(--line);border-radius:8px;padding:clamp(28px,4vw,52px);display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,50px);align-items:center}
.vorstand img{width:clamp(110px,14vw,160px);filter:drop-shadow(0 16px 26px rgba(0,0,0,.18))}
.vorstand h2{font-family:var(--font-chl);font-weight:800;font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:14px;letter-spacing:-.01em}
.vorstand p{color:var(--muted);font-size:1rem;line-height:1.65;max-width:60ch}
.vorstand .btn--ticket{margin-top:20px;display:inline-flex}
@media (max-width:640px){ .vorstand{grid-template-columns:1fr;text-align:center;justify-items:center} .vorstand .btn--ticket{white-space:nowrap;font-size:.86rem;padding:.85em 1.2em} .timeline{flex-direction:column;gap:9px} }

/* Verlagskasten – Stil lachtheater.ch (Gelb/Schwarz/Rot, Baloo 2) */
.verlag{--lt-yellow:#FFE100;--lt-red:#E4032E;--lt-ink:#141210;margin-top:clamp(20px,3vh,32px);background:var(--lt-yellow);border:3px solid var(--lt-ink);border-radius:20px;padding:clamp(28px,4vw,52px);box-shadow:10px 10px 0 var(--lt-ink);font-family:'Hanken Grotesk',var(--font-body);color:var(--lt-ink)}
.verlag__head{display:grid;grid-template-columns:1fr auto;gap:clamp(20px,4vw,44px);align-items:center}
.verlag__figure{width:clamp(150px,20vw,230px);flex:none;filter:drop-shadow(0 14px 20px rgba(0,0,0,.2))}
.verlag__head .kicker{display:inline-flex;align-items:center;gap:.6em;font-family:'Hanken Grotesk',var(--font-body);font-weight:700;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lt-yellow);background:var(--lt-ink);border-radius:999px;padding:.5em 1.1em;margin-bottom:18px}
.verlag__head .kicker::before{content:"";width:.55em;height:.55em;border-radius:50%;background:var(--lt-red)}
.verlag__head h2{font-family:'Baloo 2',var(--font-chl);font-weight:800;font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.05;letter-spacing:-.01em;color:var(--lt-ink);margin-bottom:14px}
.verlag__head h2 em{font-style:normal;color:var(--lt-red)}
.verlag__head p{color:var(--lt-ink);opacity:.86;font-size:1.05rem;line-height:1.6;max-width:56ch}
.verlag__head strong{font-weight:700}
.verlag__head strong a{color:var(--lt-red);text-decoration:none;border-bottom:3px solid var(--lt-ink);transition:opacity .2s}
.verlag__head strong a:hover{opacity:.7}
.verlag__facts{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.5vw,30px);margin:clamp(26px,3.5vh,36px) 0;padding-top:clamp(22px,3vh,30px);border-top:3px solid var(--lt-ink)}
.verlag__facts b{display:block;font-family:'Baloo 2',var(--font-chl);font-weight:700;font-size:1.1rem;letter-spacing:0;text-transform:none;color:var(--lt-ink);margin-bottom:4px}
.verlag__facts span{color:var(--lt-ink);opacity:.8;font-size:.95rem;line-height:1.55}
.verlag__cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.verlag__cta .btn--ticket{font-family:'Hanken Grotesk',var(--font-body);font-weight:700;font-size:1rem;letter-spacing:0;background:var(--lt-red);color:#fff;border:2.5px solid var(--lt-ink);border-radius:999px;padding:.85em 1.7em;box-shadow:5px 5px 0 var(--lt-ink);transition:transform .18s,box-shadow .18s}
.verlag__cta .btn--ticket::before{content:none}
.verlag__cta .btn--ticket:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--lt-ink);color:#fff}
@media (max-width:900px){.verlag__facts{grid-template-columns:repeat(2,1fr)}.verlag__head{grid-template-columns:1fr}.verlag__figure{width:180px;justify-self:center}}
@media (max-width:640px){.verlag__facts{grid-template-columns:1fr}.verlag{box-shadow:6px 6px 0 var(--lt-ink)}}

/* Medienbericht-Artikel (chliibüni-Welt) */
.mbart{max-width:760px;margin:0 auto}
.mbart__meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stage-muted);margin-bottom:14px}
.mbart h1{font-family:var(--font-chl);font-weight:800;font-size:clamp(2rem,5vw,3.2rem);line-height:1.02;letter-spacing:-.01em;color:var(--stage-fg);margin-bottom:10px;text-wrap:balance;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.mbart__source{font-family:var(--font-display);font-style:italic;color:var(--stage-muted);margin-bottom:clamp(24px,4vh,36px)}
.mbart__card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:14px;backdrop-filter:blur(6px);padding:clamp(24px,4vw,48px)}
.mbart__card p{font-family:var(--font-read);font-optical-sizing:auto;font-size:1.02rem;line-height:1.75;color:var(--stage-fg);margin-bottom:20px;max-width:none;text-wrap:pretty;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.mbart__card p:last-child{margin-bottom:0}
.mbart__card p.mbart__lead{font-family:var(--font-chl);font-weight:600;font-size:clamp(1.1rem,2.1vw,1.3rem);line-height:1.5;margin-bottom:26px}
.mbart__card p.mbart__sig{font-family:var(--font-display);font-style:italic;color:var(--stage-muted);margin-top:28px}
.mbart__card p.mbart__note{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);font-size:.88rem;color:var(--stage-muted)}
.mbart__card a{color:#FFD166}
.mbart__card a:hover{color:#fff}
.mbart__back{display:inline-flex;align-items:center;gap:.5em;margin-top:34px;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stage-muted);text-decoration:none}
.mbart__back:hover{color:var(--stage-fg)}

.board{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(20px,3vw,32px);margin-bottom:clamp(40px,6vh,64px);max-width:700px;margin-inline:auto}
.board__card{text-align:center;width:150px}
.board__photo{height:170px;width:100%;display:flex;align-items:flex-end;justify-content:center;margin-bottom:14px}
.board__photo img{height:100%;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(0,0,0,.4))}
.board__name{font-family:var(--font-chl);font-weight:700;font-size:1rem;color:var(--ink)}
.board__role{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:#FFB8D9;margin-top:4px}

/* responsive */
@media (max-width:1120px){ .nav .nav-extra{display:none} }
@media (max-width:900px){
  .worlds__grid{grid-template-columns:1fr}
  .sponsor-grid--top{grid-template-columns:1fr 1fr}
  .sponsor-grid--rest{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .nav{display:none}.menu-btn{display:inline-flex}
  .footer__top{grid-template-columns:1fr 1fr}.footer__brand{grid-column:1/-1}
}
@media (max-width:680px){
  body{font-size:16px}
  .hero--compact{min-height:min(86vh,640px);padding-top:92px;padding-bottom:clamp(126px,17vh,164px)}
  .hero__cast{height:66vh}
  .hero__beam{height:66vh}
  .hero__logo{width:min(62vw,230px)}
  .ccard{width:100px}
  .row__hint{display:none}
  .row__head{grid-template-columns:64px 60px 1fr;gap:12px}
  .row__aside{grid-column:1/-1;justify-content:flex-start;gap:14px;margin-top:6px;padding-left:0}
  .row__chev{margin-left:auto}
  .row__time,.row__time--multi{width:auto;align-items:flex-start;text-align:left;white-space:normal}
  .row__dates{align-items:flex-start}
  .plate .m{font-size:.7rem}
  .row__cat{font-size:.72rem}
  .row__day{font-size:.7rem}
  .fcol h4{font-size:.78rem}
  .board__card{width:142px}
  .board__photo img{min-width:0}
  .footer__bottom{font-size:.8rem}
  .menu__idx{font-size:.72rem}
  .menu__list{margin:14px 0}
  .row__panelin{grid-template-columns:1fr}
  .row__panelin.has-widget{grid-template-columns:1fr}
  .row__widget iframe{zoom:.92}
  .row__sub{display:none}
  .plate .d{font-size:1.25rem}
  .footer__top{grid-template-columns:1fr}
}


/* ---------- floatcard: playful side-by-side cards, no seams ---------- */
.cardrow{display:flex;flex-direction:column;gap:clamp(48px,7vh,84px);padding:clamp(40px,6vh,72px) 0}
.floatcard{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.floatcard--r{grid-template-columns:1fr 1.1fr}
.floatcard--r .floatcard__media{order:2}
.floatcard__media{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.35)}
.floatcard__media image-slot{width:100%;height:100%;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.floatcard:hover .floatcard__media image-slot{transform:scale(1.05) rotate(-1deg)}
.floatcard__no{position:absolute;bottom:14px;right:14px;font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:.08em;color:#fff;background:var(--accent);padding:.4em .8em;border-radius:999px}
.floatcard__body .kicker{color:var(--accent);display:block;margin-bottom:14px}
.floatcard__body h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.04;letter-spacing:-.01em;margin-bottom:16px}
.floatcard__body p{color:var(--muted);font-size:1.02rem;line-height:1.6;max-width:42ch}
@media (max-width:760px){
  .floatcard,.floatcard--r{grid-template-columns:1fr;gap:22px}
  .floatcard--r .floatcard__media{order:0}
}

.stage{position:relative;height:88vh;min-height:520px;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end}
.stage+.stage{margin-top:-6vh}
.stage__bg{position:absolute;inset:0}
.stage__bg image-slot{width:100%;height:100%;display:block;transform:scale(1.22);transition:transform 2.2s cubic-bezier(.16,.8,.2,1)}
.stage.in-view .stage__bg image-slot{transform:scale(1)}
.stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,7,5,.05) 0%,rgba(10,7,5,.15) 55%,rgba(10,7,5,.75) 100%);z-index:1;pointer-events:none}
.stage::before{content:"";position:absolute;inset:0 0 auto 0;height:34%;background:linear-gradient(180deg,#100b09,transparent);z-index:1;pointer-events:none}
.stage:first-of-type::before{height:26vh;background:linear-gradient(180deg,var(--paper) 0%,color-mix(in oklab,var(--paper),var(--stage) 55%) 45%,var(--stage) 100%)}
.stage--first::before{height:26vh!important;background:linear-gradient(180deg,var(--paper) 0%,color-mix(in oklab,var(--paper),var(--stage) 55%) 45%,var(--stage) 100%)!important}
.stage:last-of-type::after{background:linear-gradient(180deg,rgba(10,7,5,.05) 0%,rgba(10,7,5,.2) 40%,rgba(10,7,5,.9) 82%,var(--paper) 100%)}
.stage__no{position:absolute;top:clamp(20px,4vh,40px);right:clamp(20px,4vw,48px);z-index:2;font-family:var(--font-mono);font-size:clamp(3rem,8vw,6rem);font-weight:700;color:rgba(255,255,255,.16);line-height:1;letter-spacing:-.02em;opacity:0;transform:translateY(20px);transition:opacity 1s ease .3s,transform 1s cubic-bezier(.2,.8,.2,1) .3s}
.stage.in-view .stage__no{opacity:1;transform:translateY(0)}
.stage__panel{position:relative;z-index:2;max-width:640px;margin:0 clamp(20px,5vw,64px) clamp(40px,7vh,72px);color:#fff}
.stage--r .stage__panel{margin-left:auto}
.stage__panel .kicker{color:var(--red);background:#fff;display:inline-block;padding:.4em .8em;margin-bottom:18px;transform:skew(-6deg) translateY(24px);opacity:0;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.stage__panel h2{font-family:var(--font-display);font-weight:600;font-size:clamp(2.4rem,6vw,4.4rem);line-height:.98;letter-spacing:-.01em;margin-bottom:18px;text-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;transform:translateY(34px);transition:opacity .8s ease .12s,transform .8s cubic-bezier(.2,.8,.2,1) .12s}
.stage__panel p{font-size:1.05rem;line-height:1.6;color:rgba(255,255,255,.9);max-width:46ch;opacity:0;transform:translateY(34px);transition:opacity .8s ease .24s,transform .8s cubic-bezier(.2,.8,.2,1) .24s}
.stage.in-view .stage__panel .kicker,.stage.in-view .stage__panel h2,.stage.in-view .stage__panel p{opacity:1;transform:translateY(0)}
@media (max-width:760px){
  .stage{height:72vh;min-height:420px}
  .stage__panel{max-width:none;margin:0 20px 40px}
  .stage--r .stage__panel{margin-left:20px}
}


/* ---------- cardstack: overlapping portrait image pair ---------- */
.cardstack{position:relative;aspect-ratio:4/3;min-height:280px}
.cardstack__item{position:absolute;aspect-ratio:3/4;width:62%;border-radius:10px;overflow:hidden;box-shadow:0 24px 48px -20px rgba(0,0,0,.35);border:4px solid var(--paper)}
.cardstack__item image-slot{width:100%;height:100%;display:block}
.cardstack__item--1{top:0;left:0;z-index:1;transform:rotate(-4deg)}
.cardstack__item--2{bottom:0;right:0;z-index:2;transform:rotate(3deg)}
.cardstack--wide .cardstack__item{aspect-ratio:4/3;width:58%}
.cardstack--wide .cardstack__item--1{top:0;left:0}
.cardstack--wide .cardstack__item--2{bottom:0;right:0}
.cardstack__item--3{aspect-ratio:4/3;width:44%;top:60%;left:52%;z-index:3;transform:translate(-50%,-50%) rotate(-1deg)}
@media (max-width:520px){
  .cardstack{aspect-ratio:auto;height:auto;min-height:0;display:flex;flex-direction:column;gap:20px;padding:10px 0}
  .cardstack .cardstack__item,.cardstack .cardstack__item--1,.cardstack .cardstack__item--2,.cardstack .cardstack__item--3{position:relative;width:80%;max-width:100%;margin:0 auto;transform:none;top:auto;left:auto;right:auto;bottom:auto}
}


/* ---------- lightbox: click image to view enlarged ---------- */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(10,7,5,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s;cursor:zoom-out}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:90vw;max-height:88vh;border-radius:6px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}
.cardstack__item,.page-block__media{cursor:zoom-in}
img.js-zoom,.js-zoom img{max-width:100%;height:auto}
@media (max-width:640px){.kontakt-grid{grid-template-columns:1fr!important;gap:24px!important}}
.mosaic__item image-slot{cursor:zoom-in}
image-slot[data-filled]{cursor:zoom-in}
.mosaic--portraits .mosaic__item img{object-position:center 22%}


/* ---------- cardstack triple: 3 overlapping portrait cards ---------- */
.cardstack--triple{position:relative;aspect-ratio:16/10}
.cardstack--triple .cardstack__item{position:absolute;aspect-ratio:3/4;width:38%;top:50%;transform:translateY(-50%)}
.cardstack--triple .cardstack__item--1{left:2%;z-index:1;transform:translateY(-50%) rotate(-8deg)}
.cardstack--triple .cardstack__item--2{left:31%;z-index:2;transform:translateY(-50%) rotate(0deg)}
.cardstack--triple .cardstack__item--3{left:60%;z-index:3;transform:translateY(-50%) rotate(8deg)}
@media (max-width:520px){
  .cardstack--triple{aspect-ratio:auto;height:auto}
  .cardstack--triple .cardstack__item,.cardstack--triple .cardstack__item--1,.cardstack--triple .cardstack__item--2,.cardstack--triple .cardstack__item--3{position:relative;width:80%;max-width:100%;margin:0 auto 16px;top:auto;left:auto;right:auto;bottom:auto;transform:none}
}

/* ---------- quad-row: 4 landscape images side by side ---------- */
.quad-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.quad-row__item{aspect-ratio:4/3;border-radius:8px;overflow:hidden;box-shadow:0 16px 34px -18px rgba(0,0,0,.3)}
.quad-row__item image-slot{width:100%;height:100%;display:block}
@media (max-width:760px){
  .quad-row{grid-template-columns:repeat(2,1fr)}
}

/* ---------- catering sirana: full tall image ---------- */
.catering-sirana{padding:clamp(40px,6vh,72px) 0;display:flex;justify-content:center}
.catering-sirana img{max-width:420px;width:100%;border-radius:10px;box-shadow:0 30px 60px -24px rgba(0,0,0,.35)}


/* ---------- single-card: one card-sized image slot ---------- */
.single-card{aspect-ratio:3/4;max-width:280px;margin:0 auto;border-radius:10px;overflow:hidden;box-shadow:0 24px 48px -20px rgba(0,0,0,.35)}
.single-card img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- Handy im Hochformat: Hero ---------- */
/* Das 2:1-Ensemblebild wird bei voller Hoehe seitlich stark beschnitten, darum
   koppeln wir die Bandhoehe an Breite UND Viewporthoehe. Das Plakat laeuft als
   eigene Zeile im Textstapel mit und kann den Button nie ueberdecken. */
@media (max-width:720px) and (orientation:portrait){
  .hero--compact{min-height:min(94vh,740px);padding-top:92px;padding-bottom:calc(clamp(150px,min(57vw,30vh),290px) + 4px)}
  .hero__cast,.hero__beam{height:clamp(150px,min(57vw,30vh),290px)}
  .hero__plakat{position:static;align-self:center;top:auto;right:auto;bottom:auto;width:clamp(140px,44vw,196px);margin:clamp(8px,1.8vh,20px) auto 0}
}
