/* ── SELBST GEHOSTETE SCHRIFTEN (kein Google-Server-Aufruf) ── */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:300 400;font-display:swap;src:url(fonts/playfair-display-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/playfair-display-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:300 500;font-display:swap;src:url(fonts/playfair-display-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:200;font-display:swap;src:url(fonts/jost-latin-200-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/jost-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jost-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/jost-latin-500-normal.woff2) format('woff2')}

:root {
  --sand:        #EFEEEC;
  --sand-mid:    #E4DDD3;
  --cream:       #F8F6F2;
  --white:       #FDFCFA;
  --ink:         #2C2A27;
  --ink-60:      rgba(44,42,39,.6);
  --ink-30:      rgba(44,42,39,.3);
  --ink-10:      rgba(44,42,39,.08);
  --cherry:      #8C3535;
  --cherry-s:    #A04040;
  --cherry-p:    rgba(140,53,53,.1);
  --cherry-g:    rgba(140,53,53,.28);
  --gold:        #C8A96E;
  --gold-p:      rgba(200,169,110,.18);
  --gold-dim:    rgba(200,169,110,.35);
  --p-bg:        #1C1A17;
  --p-surf:      #272421;
  --p-card:      #2D2B28;
  --p-bdr:       rgba(239,238,236,.08);
  --p-bdr-hi:    rgba(239,238,236,.14);
  --p-txt:       rgba(239,238,236,.96);
  --p-txt-dim:   rgba(239,238,236,.70);
  --p-txt-faint: rgba(239,238,236,.48);
  --ff-h:'Playfair Display',Georgia,serif;
  --ff-b:'Jost',system-ui,sans-serif;
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(0,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;background:#1C1A17}
body{font-family:var(--ff-b);background:#1C1A17;color:var(--p-txt);overflow-x:hidden;line-height:1.6;overscroll-behavior:none;-webkit-overflow-scrolling:touch}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;font-family:var(--ff-b);border:none;background:none}
::-webkit-scrollbar{width:2px}
::-webkit-scrollbar-track{background:#1C1A17}
::-webkit-scrollbar-thumb{background:var(--cherry);border-radius:99px}

/* ── LOADER ── */
#loader{position:fixed;inset:0;z-index:9000;background:#1C1A17;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;transition:opacity .9s var(--ease),visibility .9s}
#loader.gone{opacity:0;visibility:hidden;pointer-events:none}
.ld-enso{opacity:0;animation:ldIn .8s var(--ease-out) .2s forwards}
.ld-name{
  font-family:var(--ff-h);font-size:clamp(1.8rem,7vw,3rem);font-weight:300;
  letter-spacing:.22em;text-transform:uppercase;
  background:linear-gradient(100deg,#7A2E2E 0%,#9E4040 25%,#C8A96E 62%,#DEC48A 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  opacity:0;animation:ldIn .8s var(--ease-out) .6s forwards;
  line-height:1;
}
.ld-name .ld-oni{letter-spacing:-.04em;font-style:italic}
.ld-studio{
  font-family:var(--ff-b);font-size:clamp(.5rem,1.5vw,.7rem);font-weight:300;
  letter-spacing:.45em;text-transform:uppercase;
  background:linear-gradient(95deg,rgba(140,53,53,.6) 0%,rgba(200,169,110,.6) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  opacity:0;animation:ldIn .7s var(--ease-out) .75s forwards;
  margin-top:-.1rem;
}
.ld-bar{width:0;height:1px;background:linear-gradient(90deg,var(--cherry),var(--gold));border-radius:99px;animation:ldBar 1.6s var(--ease-out) .4s forwards}
.ld-sub{font-size:.48rem;letter-spacing:.26em;text-transform:uppercase;color:var(--p-txt-faint);opacity:0;animation:ldIn .7s var(--ease-out) 1s forwards}
@keyframes ldIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes ldBar{to{width:80px}}

/* ── SCREENS ── */
.screen{display:none}
.screen.active{display:flex;flex-direction:column}
/* Portal: exact viewport, no scroll, dark bg always */
#s-portal{background:#181613}
/* Sub-screens: scrollable within themselves */
#s-events,#s-impressum{height:100svh;overflow-y:auto;background:#181613}
#overlay{position:fixed;inset:0;z-index:8000;background:var(--p-bg);opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
#overlay.on{opacity:1;pointer-events:all}

/* ── ATMOSPHERE ── */
.pa-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 55% at 50% 40%,rgba(140,53,53,.05) 0%,transparent 65%),radial-gradient(ellipse 40% 50% at 10% 80%,rgba(200,180,150,.025) 0%,transparent 55%)}
.pa-noise{position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E")}
/* Floating Enso background decoration */
.pa-enso-bg{position:absolute;pointer-events:none;user-select:none;opacity:.028;animation:pkF 14s ease-in-out infinite}
.pa-enso-bg.pos1{width:clamp(28rem,55vw,70rem);top:-20%;left:-18%}
.pa-enso-bg.pos2{width:clamp(14rem,28vw,36rem);bottom:-8%;right:-6%;animation-direction:reverse;animation-duration:18s}
@keyframes pkF{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-20px) rotate(2deg)}}

/* ── PORTAL TOP BAR ── */
.portal-bar{position:relative;z-index:10;padding:.9rem 1.6rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--p-bdr);flex-shrink:0}

/* ─ LOGO LOCKUP ─ */
.portal-logo-wrap{display:flex;align-items:center;gap:.7rem}
/* Enso + Kanji marks SVG — inline, size controlled */
.logo-enso-mark{flex-shrink:0}
.logo-text-block{display:flex;flex-direction:column;gap:.08rem}
.logo-wordmark{
  font-family:var(--ff-h);font-size:1.05rem;font-weight:400;
  letter-spacing:.16em;text-transform:uppercase;
  background:linear-gradient(95deg,#7A2E2E 0%,#9E4040 28%,#C8A96E 68%,#DEC48A 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  line-height:1;
}
/* ONI kerning — tighter spacing to simulate ligature */
.logo-wordmark .kits-part,.portal-logo-big .kits-part,.sub-bar-logo .kits-part{
  letter-spacing:.16em;
}
.logo-wordmark .oni-part,.portal-logo-big .oni-part,.sub-bar-logo .oni-part{
  letter-spacing:-.04em;
  font-style:italic;
}
.logo-sub-kanji{
  display:flex;align-items:center;gap:.35rem;
  font-size:.55rem;letter-spacing:.05em;color:var(--p-txt-faint);
  line-height:1;
}
.logo-kanji-char{
  color:rgba(200,169,110,.45);font-size:.72rem;
  font-weight:400;line-height:1;
}
.logo-dot{width:2px;height:2px;border-radius:50%;background:var(--p-bdr-hi);flex-shrink:0}

.portal-bar-right{display:flex;align-items:center;gap:1.2rem}
.portal-live{display:flex;align-items:center;gap:.45rem;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--p-txt-faint)}
.plive-dot{width:5px;height:5px;border-radius:50%;background:var(--cherry);box-shadow:0 0 7px var(--cherry-g);animation:blink 2.5s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}
.lang-toggle{display:flex;align-items:center;background:var(--p-surf);border:1px solid var(--p-bdr-hi);border-radius:99px;padding:.18rem .22rem;gap:.1rem}
.lt-btn{padding:.22rem .65rem;border-radius:99px;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;color:var(--p-txt-dim);transition:all .2s}
.lt-btn.on{background:var(--cherry);color:#fff;box-shadow:0 0 10px var(--cherry-g)}
.lt-btn:hover:not(.on){color:var(--p-txt)}

/* ── PORTAL BODY ── */
.portal-body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.8rem 1.6rem .6rem;position:relative;z-index:5;gap:0}

/* Center identity */
.portal-identity{text-align:center;margin-bottom:.9rem;opacity:0;animation:pIn .9s var(--ease-out) .3s forwards}
.portal-enso-center{margin:0 auto .35rem;display:block;filter:drop-shadow(0 0 20px rgba(200,169,110,0.12));animation:ensoSpin 18s linear infinite}
@keyframes ensoSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.portal-logo-big-wrap{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.08rem;margin-bottom:.2rem}
.portal-logo-big{font-family:var(--ff-h);font-size:clamp(1.7rem,6.5vw,2.8rem);font-weight:300;letter-spacing:.08em;text-transform:uppercase;line-height:1;background:linear-gradient(100deg,#7A2E2E 0%,#9E4040 25%,#C8A96E 62%,#DEC48A 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.portal-logo-studio{font-family:var(--ff-b);font-size:clamp(.55rem,1.6vw,.75rem);font-weight:300;letter-spacing:.42em;text-transform:uppercase;background:linear-gradient(95deg,rgba(140,53,53,.55) 0%,rgba(200,169,110,.55) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.portal-kanji-row{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.18rem}
.portal-kanji-sym{font-size:.72rem;color:rgba(200,169,110,.35);letter-spacing:.05em;line-height:1}
.portal-kanji-line{width:12px;height:1px;background:rgba(200,169,110,.18)}
.portal-tagline{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--p-txt-faint);margin-top:.32rem;display:flex;align-items:center;justify-content:center;gap:.6rem}
.portal-tagline::before,.portal-tagline::after{content:'';width:12px;height:1px;background:rgba(239,238,236,.1)}

/* Primary CTA */
.portal-primary{width:100%;max-width:420px;margin-bottom:.5rem;opacity:0;animation:pIn .8s var(--ease-out) .55s forwards}
.portal-book-btn{width:100%;padding:1rem 1.6rem;border-radius:14px;background:var(--white);border:none;font-family:var(--ff-h);font-size:1rem;font-weight:400;color:var(--ink);letter-spacing:.02em;display:flex;align-items:center;justify-content:space-between;transition:all .3s var(--ease);box-shadow:0 6px 24px rgba(0,0,0,.22),0 0 0 1px rgba(255,255,255,.08);cursor:pointer}
.portal-book-btn:hover{background:var(--sand);transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.28),0 0 20px rgba(140,53,53,.1)}
.pbb-left{display:flex;flex-direction:column;gap:.12rem}
.pbb-main{font-size:1.08rem;line-height:1.1}
.pbb-sub{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-60);font-family:var(--ff-b);font-weight:300}
.pbb-arrow{width:38px;height:38px;border-radius:50%;background:var(--cherry);display:flex;align-items:center;justify-content:center;font-size:.85rem;color:#fff;flex-shrink:0;box-shadow:0 3px 10px var(--cherry-g);transition:transform .3s}
.portal-book-btn:hover .pbb-arrow{transform:translateX(3px)}

.portal-divider{width:100%;max-width:420px;height:1px;background:var(--p-bdr);margin-bottom:.5rem;opacity:0;animation:pIn .6s var(--ease-out) .75s forwards}

.portal-links{width:100%;max-width:420px;display:flex;flex-direction:column;gap:.5rem;opacity:0;animation:pIn .8s var(--ease-out) .85s forwards}
.pl-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.3rem;background:var(--p-card);border:1px solid var(--p-bdr);border-radius:12px;cursor:pointer;transition:all .3s var(--ease);position:relative;overflow:hidden}
.pl-item::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(140,53,53,.07),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}
.pl-item:hover::before{opacity:1}
.pl-item:hover{border-color:rgba(140,53,53,.28);transform:translateX(4px);box-shadow:0 4px 16px rgba(0,0,0,.18)}
.pl-left{display:flex;align-items:center;gap:.8rem}
.pl-mark{width:2px;height:30px;background:var(--p-bdr-hi);border-radius:1px;flex-shrink:0;transition:background .3s}
.pl-item:hover .pl-mark{background:var(--cherry)}
.pl-title{font-size:.95rem;font-weight:400;color:var(--p-txt);letter-spacing:.01em;line-height:1.2}
.pl-sub{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--p-txt-faint);margin-top:.08rem}
.pl-badge{padding:.12rem .5rem;border-radius:99px;font-size:.44rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(140,53,53,.18);color:rgba(200,100,100,.9);border:1px solid rgba(140,53,53,.25);white-space:nowrap;animation:badgePulse 3s ease-in-out infinite}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(140,53,53,.25)}50%{box-shadow:0 0 0 3px rgba(140,53,53,0)}}
.pl-arrow{font-size:.65rem;color:var(--p-txt-faint);transition:all .3s;flex-shrink:0}
.pl-item:hover .pl-arrow{color:var(--cherry);transform:translateX(3px)}

/* Google Reviews */
.portal-reviews{width:100%;max-width:420px;margin-top:.35rem;opacity:0;animation:pIn .7s var(--ease-out) 1.05s forwards}
.reviews-card{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.3rem;background:rgba(200,169,110,.06);border:1px solid rgba(200,169,110,.16);border-radius:10px;cursor:pointer;transition:all .3s var(--ease);position:relative;overflow:hidden}
.reviews-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 50%,rgba(200,169,110,.06),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}
.reviews-card:hover::before{opacity:1}
.reviews-card:hover{border-color:rgba(200,169,110,.3);transform:translateX(4px);box-shadow:0 4px 16px rgba(0,0,0,.14)}
.reviews-left{display:flex;align-items:center;gap:.7rem}
.reviews-mark{width:2px;height:20px;background:rgba(200,169,110,.25);border-radius:1px;flex-shrink:0;transition:background .3s}
.reviews-card:hover .reviews-mark{background:var(--gold)}
.reviews-stars{display:flex;gap:.18rem;margin-bottom:.16rem}
.star{width:10px;height:10px;background:var(--gold);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.reviews-title{font-size:.78rem;font-weight:400;color:var(--p-txt);letter-spacing:.01em;line-height:1.2}
.reviews-sub{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint);margin-top:.1rem}
.reviews-arrow{font-size:.7rem;color:rgba(200,169,110,.35);transition:all .3s;flex-shrink:0}
.reviews-card:hover .reviews-arrow{color:var(--gold);transform:translateX(3px)}

/* Portal footer */
.portal-footer{position:relative;z-index:5;padding:.7rem 1.6rem .9rem;border-top:1px solid var(--p-bdr);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;opacity:0;animation:pIn .7s var(--ease-out) 1.15s forwards}
.pf-copy{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint)}
.pf-legal{display:flex;gap:1.4rem}
.pf-legal button{font-family:var(--ff-b);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint);transition:color .2s;padding:0}
.pf-legal button:hover{color:rgba(239,238,236,.55)}
@keyframes pIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ── Instagram In-App Browser Banner ── */
.ig-banner{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:9999;
  background:rgba(24,22,19,.97);
  border-top:1px solid rgba(200,169,110,.22);
  padding:.85rem 1.4rem .95rem;
  flex-direction:column;gap:.45rem;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.ig-banner.show{display:flex}
.ig-banner-text{font-size:.72rem;font-weight:300;color:rgba(239,238,236,.65);line-height:1.55}
.ig-banner-text strong{color:rgba(200,169,110,.85);font-weight:400}
.ig-banner-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.ig-banner-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.48rem 1.1rem;border-radius:99px;
  background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.28);
  font-family:var(--ff-b);font-size:.58rem;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(200,169,110,.8);
  transition:all .2s;cursor:pointer;
}
.ig-banner-btn:hover{background:rgba(200,169,110,.18);border-color:rgba(200,169,110,.45)}
.ig-banner-close{
  font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--p-txt-faint);cursor:pointer;padding:.48rem .6rem;
  transition:color .2s;
}
.ig-banner-close:hover{color:var(--p-txt-dim)}

/* ── SUB-SCREEN SHARED ── */
.sub-bar{padding:1.2rem 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--p-bdr);flex-shrink:0;position:relative;z-index:10}
.sub-back{display:flex;align-items:center;gap:.6rem;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint);transition:color .2s}
.sub-back:hover{color:var(--p-txt)}
.sub-back-arrow{font-size:.65rem;display:inline-block;transition:transform .2s}
.sub-back:hover .sub-back-arrow{transform:translateX(-3px)}
.sub-bar-logo-wrap{display:flex;align-items:center;gap:.5rem}
.sub-bar-logo{font-family:var(--ff-h);font-size:.9rem;font-weight:400;letter-spacing:.16em;text-transform:uppercase;background:linear-gradient(95deg,#7A2E2E 0%,#9E4040 28%,#C8A96E 70%,#DEC48A 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.sub-bar-right{width:80px}
.sub-content{flex:1;overflow-y:auto;padding:3rem 2rem 4rem;max-width:680px;margin:0 auto;width:100%}
.sub-eyebrow{font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:1rem;display:flex;align-items:center;gap:.8rem}
.sub-eyebrow::before{content:'';width:20px;height:1px;background:var(--cherry);flex-shrink:0}
.sub-title{font-family:var(--ff-h);font-size:clamp(1.8rem,5vw,2.8rem);font-weight:300;line-height:1.08;color:var(--p-txt);margin-bottom:.5rem}
.sub-title em{font-style:italic;color:var(--cherry)}
.sub-lead{font-size:.82rem;font-weight:300;line-height:1.75;color:var(--p-txt-dim);margin-top:.8rem;margin-bottom:2.5rem}
.sub-divider{width:100%;height:1px;background:var(--p-bdr);margin:2.5rem 0}

/* ═══════════════════════════════════════
   EVENTS SCREEN — EDITORIAL LAYOUT
═══════════════════════════════════════ */

/* SECTION LABEL */
.ev-section-label{
  font-size:.52rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--p-txt-faint);margin-bottom:1.4rem;
  display:flex;align-items:center;gap:.8rem;
}
.ev-section-label::after{content:'';flex:1;height:1px;background:var(--p-bdr)}

/* ─ CORE ARTIST BLOCK (Rubia & Jeff) ─ */
.core-artist-block{
  background:linear-gradient(145deg,rgba(200,169,110,.07),rgba(200,169,110,.03));
  border:1px solid rgba(200,169,110,.2);
  border-radius:14px;overflow:hidden;margin-bottom:2rem;
  position:relative;
}
.core-artist-block::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(to bottom,var(--gold),rgba(200,169,110,.2));
}
.cab-header{padding:1.8rem 2rem 1.4rem 2.2rem}
.cab-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.48rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.8rem;
}
.cab-badge::before{content:'';width:14px;height:1px;background:var(--gold)}
.cab-names{font-family:var(--ff-h);font-size:1.6rem;font-weight:300;color:var(--p-txt);line-height:1.1;margin-bottom:.3rem}
.cab-names em{font-style:italic;color:var(--gold)}
.cab-aka{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:.9rem}
.cab-desc{font-size:.78rem;font-weight:300;line-height:1.72;color:var(--p-txt-dim);max-width:480px;margin-bottom:1.2rem}
.cab-socials{display:flex;gap:.6rem;flex-wrap:wrap}
.cab-social-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.3rem .85rem;border-radius:99px;
  border:1px solid rgba(200,169,110,.22);background:transparent;
  font-family:var(--ff-b);font-size:.55rem;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(200,169,110,.6);
  transition:all .25s;cursor:pointer;
}
.cab-social-btn:hover{border-color:rgba(200,169,110,.5);color:var(--gold);background:rgba(200,169,110,.06)}

/* Dates grid — editorial two-column */
.cab-dates{
  padding:1.4rem 2rem 1.8rem 2.2rem;
  border-top:1px solid rgba(200,169,110,.1);
}
.cab-dates-label{font-size:.5rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(200,169,110,.4);margin-bottom:1rem}
.cab-dates-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
  gap:.6rem;
}
.cab-date-pill{
  display:flex;align-items:center;justify-content:space-between;
  padding:.6rem 1rem;
  background:rgba(200,169,110,.05);
  border:1px solid rgba(200,169,110,.12);
  border-radius:8px;
  transition:all .25s;
  cursor:pointer;
}
.cab-date-pill:hover{background:rgba(200,169,110,.1);border-color:rgba(200,169,110,.25);transform:translateY(-1px)}
.cab-dp-month{font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(200,169,110,.55)}
.cab-dp-range{font-family:var(--ff-h);font-size:.92rem;font-weight:300;color:var(--p-txt);line-height:1.1}
.cab-dp-status{font-size:.45rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(140,53,53,.7)}
.cab-dp-status.open{color:rgba(80,160,80,.7)}
.cab-cta{padding:0 2rem 1.8rem 2.2rem}
.cab-cta-btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.65rem 1.6rem;border-radius:99px;
  background:rgba(200,169,110,.1);
  border:1px solid rgba(200,169,110,.25);
  font-family:var(--ff-b);font-size:.62rem;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(200,169,110,.75);
  transition:all .25s;cursor:pointer;
}
.cab-cta-btn:hover{background:rgba(200,169,110,.18);border-color:rgba(200,169,110,.45);color:var(--gold)}

/* ─ WALK INK DAY / SUMMER EVENT ─ special featured event */
.walk-ink-block{
  position:relative;overflow:hidden;
  background:linear-gradient(145deg,rgba(140,53,53,.09),rgba(140,53,53,.03));
  border:1px solid rgba(140,53,53,.28);
  border-radius:14px;margin-bottom:2rem;padding:2rem 2rem 1.8rem 2.2rem;
}
.walk-ink-block::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--cherry),rgba(140,53,53,.15))}
.walk-ink-block::after{
  content:'円';position:absolute;right:-1rem;top:50%;transform:translateY(-50%);
  font-size:9rem;color:rgba(140,53,53,.04);pointer-events:none;user-select:none;
  font-family:var(--ff-h);
}
.wid-date{font-family:var(--ff-h);font-size:3.5rem;font-weight:300;color:var(--cherry);line-height:1;margin-bottom:.2rem;text-shadow:0 0 40px rgba(140,53,53,.25)}
.wid-month{font-size:.55rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(140,53,53,.65);margin-bottom:.9rem}
.wid-title{font-family:var(--ff-h);font-size:1.4rem;font-weight:400;color:var(--p-txt);margin-bottom:.3rem}
.wid-sub{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(140,53,53,.55);margin-bottom:.9rem}
.wid-desc{font-size:.78rem;font-weight:300;line-height:1.75;color:var(--p-txt-dim);max-width:460px;margin-bottom:1.4rem}
/* Artist lineup */
.wid-lineup{margin-bottom:1.4rem;padding:.9rem 1.1rem;background:rgba(239,238,236,.03);border-radius:8px;border:1px solid var(--p-bdr)}
.wid-lineup-label{font-size:.48rem;letter-spacing:.24em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:.65rem}
.wid-artists{display:flex;flex-direction:column;gap:.42rem}
.wid-artist-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem}
.wid-artist-name{font-family:var(--ff-h);font-size:.88rem;font-weight:400;color:rgba(239,238,236,.78)}
.wid-artist-role{font-size:.48rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint)}
.wid-role-team{color:rgba(200,169,110,.55)}
.wid-role-first{color:rgba(160,120,190,.55)}
/* CTA row */
.wid-cta-row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.wid-walkin-note{
  font-size:.68rem;font-weight:300;
  color:rgba(140,53,53,.65);
  letter-spacing:.04em;
  font-style:italic;
  padding:.5rem 0;
}
.wid-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.6rem 1.5rem;border-radius:99px;
  background:rgba(140,53,53,.15);border:1px solid rgba(140,53,53,.32);
  font-family:var(--ff-b);font-size:.6rem;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(200,110,110,.85);
  transition:all .25s;cursor:pointer;
}
.wid-btn:hover{background:rgba(140,53,53,.25);border-color:rgba(140,53,53,.52);color:rgba(220,130,130,.95)}
.wid-btn-ghost{
  background:transparent;border-color:var(--p-bdr-hi);
  color:var(--p-txt-faint);
}
.wid-btn-ghost:hover{background:rgba(239,238,236,.05);border-color:rgba(239,238,236,.25);color:var(--p-txt-dim)}

/* ─ GUEST ARTIST CARD (Maya, Amanda) ─ */
.guest-card{
  background:var(--p-card);border:1px solid var(--p-bdr);
  border-radius:12px;margin-bottom:1.2rem;
  overflow:hidden;position:relative;
}
.guest-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--p-bdr-hi);transition:background .3s}
.guest-card:hover::before{background:var(--cherry)}
.guest-card-inner{padding:1.6rem 1.8rem 1.6rem 2rem}
/* special badge for first-time / featured */
.guest-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.46rem;letter-spacing:.22em;text-transform:uppercase;
  margin-bottom:.7rem;
}
.guest-badge.first-time{color:rgba(160,120,200,.75)}
.guest-badge.first-time::before{content:'';width:12px;height:1px;background:rgba(160,120,200,.5)}
.guest-badge.regular{color:rgba(100,160,130,.75)}
.guest-badge.regular::before{content:'';width:12px;height:1px;background:rgba(100,160,130,.5)}
.guest-name{font-family:var(--ff-h);font-size:1.3rem;font-weight:400;color:var(--p-txt);margin-bottom:.2rem;line-height:1.15}
.guest-origin{font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:.8rem}
.guest-desc{font-size:.78rem;font-weight:300;line-height:1.7;color:var(--p-txt-dim);max-width:460px;margin-bottom:1rem}
.guest-dates{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.guest-date-tag{
  padding:.28rem .8rem;border-radius:99px;
  border:1px solid var(--p-bdr-hi);background:transparent;
  font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--p-txt-dim);
}
.guest-date-tag.highlight{
  border-color:rgba(140,53,53,.3);
  color:rgba(200,120,120,.8);
  background:rgba(140,53,53,.07);
}
.guest-date-tag.tba{color:var(--p-txt-faint);border-style:dashed;border-color:var(--p-bdr)}
.guest-social-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.1rem}
.guest-social{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.25rem .7rem;border-radius:99px;
  border:1px solid var(--p-bdr-hi);background:transparent;
  font-family:var(--ff-b);font-size:.52rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--p-txt-faint);
  transition:all .2s;cursor:pointer;
}
.guest-social:hover{border-color:rgba(140,53,53,.35);color:rgba(200,130,130,.8)}
.guest-cta-row{display:flex;gap:.6rem;flex-wrap:wrap}
.guest-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.5rem 1.2rem;border-radius:99px;
  border:1px solid var(--p-bdr-hi);background:transparent;
  font-family:var(--ff-b);font-size:.58rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--p-txt-dim);
  transition:all .25s;cursor:pointer;
}
.guest-btn:hover{border-color:rgba(140,53,53,.4);color:rgba(200,120,120,.85);background:rgba(140,53,53,.06)}
.guest-btn-arrow{font-size:.6rem}

/* Coming soon card */
.coming-card{
  background:rgba(239,238,236,.025);
  border:1px dashed var(--p-bdr-hi);
  border-radius:12px;padding:1.8rem 2rem;
  margin-bottom:1.2rem;text-align:center;
}
.coming-soon-label{font-size:.52rem;letter-spacing:.24em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:.5rem}
.coming-name{font-family:var(--ff-h);font-size:1.2rem;font-weight:300;color:rgba(239,238,236,.35);margin-bottom:.3rem}
.coming-desc{font-size:.72rem;font-weight:300;line-height:1.65;color:var(--p-txt-faint)}

/* Follow note */
.ev-follow-note{margin-top:2rem;padding:1.3rem 1.6rem;background:rgba(239,238,236,.025);border-radius:8px;border:1px dashed var(--p-bdr-hi);text-align:center}
.ev-follow-note p{font-size:.7rem;font-weight:300;color:var(--p-txt-faint);letter-spacing:.05em;line-height:1.65}

/* LEGAL */
.legal-section{margin-bottom:2.5rem}
.legal-section h3{font-family:var(--ff-h);font-size:1rem;font-weight:400;color:var(--p-txt);margin-bottom:.9rem;padding-bottom:.6rem;border-bottom:1px solid var(--p-bdr)}
.legal-section p,.legal-section li{font-size:.78rem;font-weight:300;line-height:1.85;color:var(--p-txt-dim);margin-bottom:.6rem}
.legal-section ul{padding-left:1rem}
.legal-section li{list-style:disc;margin-bottom:.4rem}
.legal-label{font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cherry);margin-bottom:.5rem;display:block}

.sub-footer{padding:1.4rem 2rem;border-top:1px solid var(--p-bdr);display:flex;gap:1.2rem;justify-content:center;flex-shrink:0}
.sub-footer-link{font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint);transition:color .2s;cursor:pointer}
.sub-footer-link:hover{color:rgba(239,238,236,.55)}

/* RESPONSIVE */
@media(max-width:520px){
  .portal-bar{padding:.75rem 1.2rem}
  .portal-body{padding:.75rem 1.2rem .75rem}
  .portal-links,.portal-primary,.portal-divider,.portal-reviews{max-width:100%}
  .portal-footer{padding:.55rem 1.2rem .75rem;flex-wrap:wrap;gap:.5rem}
  .pf-legal{gap:.7rem}
  .sub-bar{padding:1rem 1.4rem}
  .sub-content{padding:2.5rem 1.4rem 3.5rem}
  .cab-header,.cab-dates,.cab-cta{padding-left:1.4rem;padding-right:1.4rem}
  .cab-dates-grid{grid-template-columns:repeat(2,1fr)}
  .walk-ink-block{padding:1.5rem 1.4rem}
  .guest-card-inner{padding:1.4rem}
}

/* ═══════════════════════════════════════════════
   WEBSITE-ABSCHNITTE (unter dem Portal)
═══════════════════════════════════════════════ */
.portal-hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:flex;flex-direction:column;background:var(--p-bg);flex-shrink:0}
.scroll-cue{position:relative;z-index:5;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.1rem 0 .55rem;font-size:.54rem;letter-spacing:.26em;text-transform:uppercase;color:var(--p-txt-faint);opacity:0;animation:pIn .7s var(--ease-out) 1.2s forwards;transition:color .2s}
.scroll-cue:hover{color:var(--p-txt-dim)}
.scroll-cue::after{content:'';width:1px;height:20px;background:linear-gradient(var(--cherry),transparent);transform-origin:top;animation:cueLine 2.4s ease-in-out infinite}
@keyframes cueLine{0%,100%{transform:scaleY(.35);opacity:.5}50%{transform:scaleY(1);opacity:1}}

#site{position:relative;z-index:2;background:#1C1A17}
.site-sec{border-top:1px solid var(--p-bdr);padding:4.6rem 1.6rem}
.site-sec:nth-child(even){background:#181613}
.site-in{max-width:680px;margin:0 auto}
.site-h1{font-family:var(--ff-h);font-size:clamp(2rem,7vw,3.2rem);font-weight:400;line-height:1.1;color:var(--p-txt);margin-bottom:1.4rem;letter-spacing:.005em}
.site-h2{font-family:var(--ff-h);font-size:clamp(1.55rem,5vw,2.2rem);font-weight:400;line-height:1.15;color:var(--p-txt);margin-bottom:.9rem}
.site-p{font-size:.94rem;font-weight:300;line-height:1.85;color:var(--p-txt-dim);max-width:62ch}
.site-p+.site-p{margin-top:1rem}
.site-lead{font-size:.86rem;font-weight:300;line-height:1.75;color:var(--p-txt-faint);margin-bottom:1.6rem;max-width:56ch}
.site-cta{display:flex;flex-direction:column;gap:1.1rem;margin-top:2.2rem;max-width:340px}
.site-cta .portal-book-btn{width:100%}
.site-link{font-size:.8rem;font-weight:300;letter-spacing:.04em;color:var(--gold);border-bottom:1px solid var(--gold-dim);padding-bottom:.12rem;align-self:flex-start;transition:border-color .2s,color .2s}
.site-link:hover{color:#DEC48A;border-color:#DEC48A}

/* Kopfzeile: Status nie umbrechen, Umschalter bleibt sichtbar */
.portal-live{white-space:nowrap}
.portal-bar-right{flex-shrink:0}
@media(max-width:520px){.portal-bar-right{gap:.8rem}.portal-logo-wrap{min-width:0}}
@media(max-width:410px){.portal-live{display:none}}

/* Stile: Stil → Artist */
.style-list{border-top:1px solid var(--p-bdr);margin-top:1.4rem}
.style-row{display:flex;justify-content:space-between;align-items:baseline;gap:1.4rem;padding:.95rem 0;border-bottom:1px solid var(--p-bdr)}
.style-row dt{font-family:var(--ff-h);font-size:1.12rem;color:var(--p-txt)}
.style-row dd{font-size:.7rem;letter-spacing:.1em;color:var(--p-txt-faint);text-align:right;white-space:nowrap}

/* Artists */
.artist{padding:1.5rem 0;border-bottom:1px solid var(--p-bdr)}
.artist:first-of-type{border-top:1px solid var(--p-bdr);margin-top:1.4rem}
.artist-name{font-family:var(--ff-h);font-size:1.4rem;font-weight:400;color:var(--p-txt);line-height:1.2}
.artist-name small{font-family:var(--ff-b);font-size:.72rem;font-weight:300;letter-spacing:.08em;color:var(--p-txt-faint);margin-left:.6rem}
.artist-role{font-size:.84rem;font-weight:300;line-height:1.6;color:var(--p-txt-dim);margin-top:.35rem}
.artist-links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.7rem}
.artist-links a{font-size:.76rem;font-weight:300;letter-spacing:.03em;color:var(--gold);border-bottom:1px solid transparent;transition:border-color .2s}
.artist-links a:hover{border-color:var(--gold-dim)}

/* FAQ */
.faq{border-top:1px solid var(--p-bdr);margin-top:1.4rem}
.faq details{border-bottom:1px solid var(--p-bdr)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 0;font-family:var(--ff-h);font-size:1.08rem;color:var(--p-txt);line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-family:var(--ff-b);font-weight:200;font-size:1.4rem;color:var(--cherry-s);transition:transform .25s var(--ease);flex-shrink:0}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 1.3rem;font-size:.9rem;font-weight:300;line-height:1.8;color:var(--p-txt-dim);max-width:60ch}

/* Kontakt */
.contact-grid{display:grid;gap:1.6rem;margin-top:1.4rem}
.contact-grid address{font-style:normal;font-size:1rem;font-weight:300;line-height:1.75;color:var(--p-txt)}
.contact-grid address span{display:block;font-size:.72rem;letter-spacing:.1em;color:var(--p-txt-faint);margin-top:.5rem}
.contact-links{display:flex;flex-direction:column;gap:.7rem}
.contact-links a,.contact-links button{align-self:flex-start;font-size:.86rem;font-weight:300;color:var(--gold);border-bottom:1px solid var(--gold-dim);padding:0 0 .12rem;transition:color .2s,border-color .2s;font-family:var(--ff-b)}
.contact-links a:hover,.contact-links button:hover{color:#DEC48A;border-color:#DEC48A}

/* Website-Footer */
.site-footer{border-top:1px solid var(--p-bdr);padding:2.2rem 1.6rem 2.8rem;background:#181613;text-align:center}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.6rem;margin-bottom:1.4rem}
.site-footer nav a{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--p-txt-dim);transition:color .2s}
.site-footer nav a:hover{color:var(--p-txt)}
.site-footer .pf-legal{justify-content:center;margin-bottom:1rem}
.site-footer .pf-copy{text-align:center}

/* ═══════ Gastkünstler-Unterseite ═══════ */
body.page-guest #s-events{height:auto;overflow:visible;min-height:100svh}
.sub-bar-right.has-toggle{width:auto;min-width:80px;display:flex;justify-content:flex-end}
a.sub-back{text-decoration:none}
.sub-hero{position:relative;z-index:5;min-height:62svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.6rem 1.5rem}
.sub-hero .sub-title{font-size:clamp(2.2rem,8vw,3.6rem);font-weight:400;margin-bottom:0}
.sub-hero .sub-lead{max-width:46ch;margin:1.3rem auto 2rem;font-size:.9rem}
.sub-hero .scroll-cue{margin-top:.6rem;padding-top:0}
.sub-hero-mark{opacity:.85;margin-bottom:1.6rem}
body.page-guest .sub-content{padding-top:2.5rem}
body.page-guest .sub-footer a.sub-footer-link{text-decoration:none}

/* ═══ Wortmarke aus Logo-Datei ═══ */
.wm{display:block;height:var(--wm-h,1.2rem);width:calc(var(--wm-h,1.2rem)*4.21);max-width:none;flex-shrink:0}
.logo-wordmark,.portal-logo-big,.ld-name,.sub-bar-logo{background:none!important;-webkit-text-fill-color:initial!important;letter-spacing:0!important;line-height:0!important;font-size:0!important}
.logo-wordmark{--wm-h:1.15rem}
.portal-logo-big{--wm-h:clamp(1.9rem,7vw,2.6rem)}
.portal-logo-big .wm,.ld-name .wm{margin:0 auto}
.ld-name{--wm-h:clamp(1.6rem,6.5vw,2.4rem)}
.sub-bar-logo{--wm-h:1rem}

/* Gäste-Update */
.cab-note,.guest-note{font-size:.7rem;font-weight:300;color:var(--p-txt-faint);margin:.9rem 0 0;line-height:1.6}
.guest-note{margin:0 0 1rem}
.gap-note{font-size:.72rem;font-weight:300;letter-spacing:.04em;color:var(--p-txt-faint);text-align:center;margin:1.6rem 0 1.4rem}

/* Stile als Tags */
.style-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem;list-style:none}
.style-tags li{padding:.5rem 1.05rem;border:1px solid var(--p-bdr-hi);border-radius:99px;font-family:var(--ff-h);font-size:1rem;line-height:1.2;color:var(--p-txt)}

/* Öffnungszeiten */
.hours-title{font-family:var(--ff-b);font-size:.62rem;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:.4rem}
.hours dl>div{padding:.95rem 0;border-bottom:1px solid var(--p-bdr)}
.hours dl>div:first-child{border-top:1px solid var(--p-bdr)}
.hours dt{font-family:var(--ff-h);font-size:1.1rem;color:var(--p-txt)}
.hours dt em{font-family:var(--ff-b);font-style:normal;font-size:.82rem;letter-spacing:.05em;color:var(--gold);margin-left:.7rem}
.hours dd{font-size:.86rem;font-weight:300;line-height:1.7;color:var(--p-txt-dim);margin-top:.25rem;max-width:52ch}

@media(max-width:520px){
  .site-sec{padding:3.6rem 1.3rem}
  .site-footer{padding:2rem 1.3rem 2.4rem}
  .style-row dt{font-size:1.05rem}
  .style-row dd{font-size:.66rem}
}
@media(prefers-reduced-motion:reduce){
  .scroll-cue::after,.pa-enso-bg,.pl-badge{animation:none}
  html{scroll-behavior:auto}
}


/* ═══════════════════════════════════════════════════════════
   v2 — Website-Layout: Navigation, Übergang, Seiten, Footer
═══════════════════════════════════════════════════════════ */
html{scroll-padding-top:4.6rem}
body.menu-open{overflow:hidden}
.page{position:relative}
#loader.gone{pointer-events:none}

/* ── Navigation ── */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:1.4rem;padding:calc(.8rem + env(safe-area-inset-top,0px)) 1.3rem .8rem;background:rgba(24,22,19,.84);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--p-bdr);transition:transform .55s var(--ease-out),opacity .4s}
body.page-home .site-nav{transform:translateY(-105%);opacity:0;pointer-events:none}
body.page-home .site-nav.on{transform:none;opacity:1;pointer-events:auto}
.sn-logo{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.sn-logo .wm{--wm-h:1rem}
.sn-links{display:none;align-items:center;gap:2rem}
.sn-links a{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--p-txt-dim);padding:.45rem 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.sn-links a:hover{color:var(--p-txt)}
.sn-links a[aria-current="page"]{color:var(--p-txt);border-color:var(--cherry)}
.sn-right{display:flex;align-items:center;gap:.8rem}
.sn-book{display:none;font-family:var(--ff-b);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--cherry);padding:.65rem 1.15rem;border-radius:99px;transition:background .2s}
.sn-book:hover{background:var(--cherry-s)}
.sn-burger{width:40px;height:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.sn-burger span{display:block;width:22px;height:1px;background:var(--p-txt);transition:transform .3s var(--ease),opacity .2s}
body.menu-open .sn-burger span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
body.menu-open .sn-burger span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
.sn-drawer{position:fixed;inset:0;z-index:55;background:#181613;display:flex;flex-direction:column;justify-content:center;gap:.2rem;padding:6rem 2rem 3rem;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.sn-drawer.open{opacity:1;visibility:visible}
.sn-drawer a{font-family:var(--ff-h);font-size:clamp(1.9rem,8vw,2.6rem);color:var(--p-txt);padding:.55rem 0;border-bottom:1px solid var(--p-bdr)}
.sn-drawer-cta{margin-top:2rem;align-self:flex-start;font-family:var(--ff-b);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--cherry);padding:.95rem 1.7rem;border-radius:99px}
@media(min-width:960px){
  .sn-links{display:flex}
  .sn-book{display:block}
  .sn-burger,.sn-drawer{display:none}
  .site-nav{padding-left:2.4rem;padding-right:2.4rem}
}

/* ── Übergang Portal → Website ── */
.portal-hero::before{content:'';position:absolute;inset:0;background:#1C1A17;opacity:var(--hp,0);z-index:8;pointer-events:none}
.portal-hero::after{content:'';position:absolute;left:0;right:0;bottom:0;height:24%;background:linear-gradient(to bottom,rgba(28,26,23,0),#1C1A17);z-index:1;pointer-events:none}
.portal-hero .scroll-cue,.portal-hero .portal-footer{z-index:9}

.marquee{overflow:hidden;background:#1C1A17;border-bottom:1px solid var(--p-bdr);padding:1.15rem 0;white-space:nowrap}
.marquee-track{display:inline-flex;align-items:center;animation:mq 60s linear infinite;will-change:transform}
.marquee span{font-family:var(--ff-h);font-style:italic;font-size:1.1rem;color:var(--p-txt-dim);padding:0 1.5rem}
.marquee i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--cherry)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ── Scroll-Reveal ── */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.js .reveal.in{opacity:1;transform:none}

/* ── Sektionen (breites Layout) ── */
.sec{position:relative;padding:clamp(4.2rem,9vw,8rem) 1.4rem;border-top:1px solid var(--p-bdr);background:#1C1A17}
.sec.alt{background:#181613}
.sec-in{max-width:1140px;margin:0 auto}
.sec-in.narrow{max-width:780px}
.sec-grid{display:grid;gap:1.8rem 5rem}
.sec-label{font-size:.62rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--cherry-s);margin-bottom:1.1rem}
.sec-h1{font-family:var(--ff-h);font-size:clamp(2.2rem,6.4vw,3.8rem);font-weight:400;line-height:1.06;color:var(--p-txt)}
.sec-h2{font-family:var(--ff-h);font-size:clamp(1.9rem,5vw,3.1rem);font-weight:400;line-height:1.08;color:var(--p-txt)}
.sec-p{font-size:.98rem;font-weight:300;line-height:1.9;color:var(--p-txt-dim);max-width:60ch}
.sec-p+.sec-p{margin-top:1.1rem}
.sec-lead{font-size:.88rem;font-weight:300;line-height:1.75;color:var(--p-txt-faint);margin-top:1.1rem;max-width:44ch}
.sec-cta{display:flex;flex-direction:column;gap:1.2rem;margin-top:2.4rem;max-width:340px}
.sec-cta .portal-book-btn{width:100%}
.sec-body .style-tags{margin-top:0}
.sec-body p{margin-top:0}
.sec-body>p.reveal{margin-top:1.8rem}
.sec-fig{margin-top:2.6rem;border-radius:10px;overflow:hidden;border:1px solid var(--p-bdr)}
.sec-fig img{display:block;width:100%;height:auto}
.cta-band{text-align:center}
.cta-in{max-width:640px}
.cta-in .sec-p{margin:1.2rem auto 0}
.cta-center{margin:2.4rem auto 0;align-items:center}
.cta-center .portal-book-btn{width:100%}
@media(min-width:900px){
  .sec-grid{grid-template-columns:minmax(0,4.6fr) minmax(0,7.4fr);align-items:start}
  .sec-grid .sec-head{position:sticky;top:6.5rem}
  .sec{padding-left:2.4rem;padding-right:2.4rem}
}

/* Zeilen-Links (Team, Gäste, Kontakt) */
.row-list{border-top:1px solid var(--p-bdr)}
.row-link{display:flex;align-items:baseline;gap:1.2rem;width:100%;text-align:left;padding:1.35rem 0;border-bottom:1px solid var(--p-bdr);color:var(--p-txt);transition:padding-left .35s var(--ease-out),border-color .25s}
.row-link:hover{padding-left:.6rem;border-color:var(--p-bdr-hi)}
.rl-main{font-family:var(--ff-h);font-size:clamp(1.25rem,3.6vw,1.75rem);line-height:1.15;flex:1;min-width:0}
.rl-main small{font-family:var(--ff-b);font-size:.68rem;font-weight:300;letter-spacing:.1em;color:var(--p-txt-faint);margin-left:.6rem}
.rl-meta{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p-txt-faint);text-align:right}
.rl-arr{color:var(--gold);transition:transform .3s var(--ease-out)}
.row-link:hover .rl-arr{transform:translateX(4px)}

/* Unterseiten-Kopf */
.pg-hero{padding:clamp(8rem,17vw,12rem) 1.4rem clamp(2.6rem,6vw,4.6rem);background:#1C1A17;position:relative}
.pg-h1{font-family:var(--ff-h);font-size:clamp(2.5rem,8.5vw,5rem);font-weight:400;line-height:1.03;color:var(--p-txt)}
.pg-h1 em{color:var(--cherry-s)}
.pg-lead{max-width:56ch;margin-top:1.5rem;font-size:1rem;font-weight:300;line-height:1.85;color:var(--p-txt-dim)}
@media(min-width:900px){.pg-hero{padding-left:2.4rem;padding-right:2.4rem}}

/* Stile-Seite */
.style-grid{display:grid;gap:0 5rem}
.style-item{padding:1.9rem 0;border-bottom:1px solid var(--p-bdr)}
.style-h{font-family:var(--ff-h);font-size:clamp(1.45rem,3.6vw,1.9rem);font-weight:400;color:var(--p-txt);margin-bottom:.6rem}
.style-item .sec-p{font-size:.92rem;max-width:46ch}
@media(min-width:800px){.style-grid{grid-template-columns:1fr 1fr}}

/* Team-Seite */
.artist-row{display:grid;gap:1.4rem 3rem;padding:2.2rem 0;border-bottom:1px solid var(--p-bdr)}
.artist-row:first-of-type{border-top:1px solid var(--p-bdr)}
.artist-fig{border-radius:10px;overflow:hidden;border:1px solid var(--p-bdr);max-width:340px}
.artist-fig img{display:block;width:100%;height:auto}
.artist-name{font-family:var(--ff-h);font-size:clamp(1.8rem,5vw,2.6rem);font-weight:400;color:var(--p-txt);line-height:1.1}
.artist-name small{font-family:var(--ff-b);font-size:.72rem;font-weight:300;letter-spacing:.1em;color:var(--p-txt-faint);margin-left:.7rem}
.artist-role{font-size:.92rem;font-weight:300;line-height:1.75;color:var(--p-txt-dim);margin-top:.6rem;max-width:52ch}
.artist-links{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1rem}
.artist-links a{font-size:.78rem;font-weight:300;letter-spacing:.03em;color:var(--gold);border-bottom:1px solid var(--gold-dim);padding-bottom:.1rem}
.artist-row:has(.artist-fig) {grid-template-columns:1fr}
@media(min-width:800px){.artist-row:has(.artist-fig){grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:center}}

/* Kontakt-Seite */
.k-address{font-style:normal;font-family:var(--ff-h);font-size:clamp(1.4rem,3.6vw,1.9rem);line-height:1.45;color:var(--p-txt);margin-bottom:2.2rem}

/* Impressum */
.legal-wrap .legal-section{margin-bottom:1.8rem}
.legal-links{display:flex;gap:1.6rem;margin-top:2.4rem}
.legal-links a{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint)}
.legal-links a:hover{color:var(--p-txt)}

/* Portal: ® und Impressum-Link */
.portal-logo-big{position:relative;width:fit-content}
.wm-reg{position:absolute;left:100%;top:-.05rem;margin-left:.2rem;font-family:var(--ff-b);font-size:.6rem;line-height:1;color:var(--gold);font-weight:300}
.pf-legal a{font-family:var(--ff-b);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--p-txt-faint);transition:color .2s}
.pf-legal a:hover{color:rgba(239,238,236,.55)}

/* Footer */
.site-footer{padding:4.2rem 1.4rem 2rem;background:#181613;border-top:1px solid var(--p-bdr)}
.sf-grid{max-width:1140px;margin:0 auto;display:grid;gap:2.4rem 2rem;grid-template-columns:1fr 1fr}
.sf-brand{grid-column:1/-1}
.sf-wm{position:relative;display:inline-block;margin-bottom:1rem}
.sf-wm .wm{--wm-h:1.5rem}
.sf-wm .wm-reg{top:-.2rem}
.sf-brand p,.site-footer p{font-size:.86rem;font-weight:300;line-height:1.7;color:var(--p-txt-dim)}
.sf-brand address{font-style:normal;font-size:.86rem;font-weight:300;line-height:1.7;color:var(--p-txt-dim);margin-top:.8rem}
.site-footer h4{font-size:.6rem;font-weight:400;letter-spacing:.26em;text-transform:uppercase;color:var(--p-txt-faint);margin-bottom:1rem}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:.55rem}
.site-footer a{font-size:.86rem;font-weight:300;color:var(--p-txt-dim);transition:color .2s}
.site-footer a:hover{color:var(--p-txt)}
.site-footer small{font-size:.74rem;color:var(--p-txt-faint)}
.site-footer p+p{margin-top:.9rem}
.sf-bottom{max-width:1140px;margin:3rem auto 0;padding-top:1.4rem;border-top:1px solid var(--p-bdr);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--p-txt-faint)}
@media(min-width:900px){
  .site-footer{padding:5rem 2.4rem 2.2rem}
  .sf-grid{grid-template-columns:1.6fr 1fr 1.2fr 1fr}
  .sf-brand{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){
  .marquee-track{animation:none}
  .js .reveal{opacity:1;transform:none;transition:none}
  .sn-drawer,.site-nav{transition:none}
}

/* Feinschliff */
.site-footer{text-align:left}
.cta-center .site-link{align-self:center}
@media(max-width:899px){.sec-grid{gap:1.1rem 5rem}.sec-cta{margin-top:1.8rem}}


/* Gäste: Bild, Stil-Zeile, Instagram */
.guest-head{display:flex;gap:1.2rem;align-items:flex-start;margin-bottom:1rem}
.guest-head-txt{flex:1;min-width:0}
.guest-head-txt .guest-badge{margin-bottom:.7rem}
.guest-thumb{flex:0 0 96px;width:96px;aspect-ratio:4/5;border-radius:10px;overflow:hidden;border:1px solid var(--p-bdr-hi);background:#181613}
.guest-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.guest-styles{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);line-height:1.6;margin:.55rem 0 .3rem}
.guest-head-txt .guest-social{margin-top:.5rem}
.cab-thumb{float:right;width:96px;aspect-ratio:4/5;margin:0 0 .8rem 1.1rem;border-radius:10px;overflow:hidden;border:1px solid var(--p-bdr-hi)}
.cab-thumb img{display:block;width:100%;height:100%;object-fit:cover}
@media(min-width:700px){.guest-thumb{flex-basis:120px;width:120px}.cab-thumb{width:124px}}
.ev-follow-note a{color:inherit}
.sf-social{margin-top:1rem}

/* Kernkarte: Bild oben rechts neben Namen */
.cab-header{position:relative}
.cab-thumb{position:absolute;top:0;right:0;float:none;margin:0;width:78px}
@media(min-width:700px){.cab-thumb{width:112px}}
.cab-thumb{top:1.5rem;right:1.5rem}


/* FAQ-Seite */
.faq-layout{display:grid;gap:1.6rem 4rem}
.faq-nav{display:flex;gap:.55rem;overflow-x:auto;position:sticky;top:3.7rem;z-index:5;margin:0 -1.4rem;padding:.8rem 1.4rem;background:rgba(24,22,19,.94);border-bottom:1px solid var(--p-bdr);scrollbar-width:none}
.faq-nav::-webkit-scrollbar{display:none}
.faq-nav a{flex:0 0 auto;padding:.5rem 1rem;border:1px solid var(--p-bdr-hi);border-radius:99px;font-size:.7rem;letter-spacing:.08em;color:var(--p-txt-dim);white-space:nowrap;transition:color .2s,border-color .2s}
.faq-nav a:hover{color:var(--p-txt);border-color:var(--gold-dim)}
.faq-group{margin-bottom:3.4rem;scroll-margin-top:7.5rem}
.faq-h{font-family:var(--ff-h);font-size:clamp(1.5rem,4vw,2.1rem);font-weight:400;color:var(--p-txt);margin-bottom:.4rem}
.faq-a{padding-bottom:1.3rem;max-width:64ch}
.faq details .faq-a p{padding:0;font-size:.92rem;font-weight:300;line-height:1.85;color:var(--p-txt-dim)}
.faq-a p+p{margin-top:.9rem}
.faq-a a{color:var(--gold);border-bottom:1px solid var(--gold-dim)}
@media(min-width:900px){
  .faq-layout{grid-template-columns:minmax(0,3fr) minmax(0,8fr);align-items:start}
  .faq-nav{flex-direction:column;position:sticky;top:6.5rem;margin:0;padding:0;background:none;border:0;overflow:visible}
  .faq-nav a{border:0;border-radius:0;padding:.7rem 0;border-bottom:1px solid var(--p-bdr);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
}
