/* ==========================================================================
   TOUCHme — Lifestyle Club Oberviechtach
   Merged build: structure/accessibility from draft v1, color & motion system
   from draft v2. System fonts only — no external requests for typography.
   ========================================================================== */

:root{
  --bg:#08050c;
  --surface:#130d1a;
  --panel:#1c1424;
  --text:#f7f2f6;
  --muted:#b7abc2;
  --red:#ff2242;
  --pink:#ff2e6a;
  --purple:#9a4dff;
  --cyan:#2be4ff;
  --gold:#ffb020;
  --line:#ffffff24;
  --grad: linear-gradient(115deg,var(--red) 0%,var(--pink) 48%,var(--purple) 100%);
  --headline:Impact,Haettenschweiler,'Arial Narrow Bold','Franklin Gothic Bold',sans-serif;
  --body:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:112px}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 var(--body);overflow-x:clip}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer;background:none;border:0;color:inherit}
img{display:block;max-width:100%;object-fit:cover}
button,a{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--purple);outline-offset:5px}
::selection{background:var(--pink);color:#0b0710}
.wrap{width:min(1320px,calc(100% - 96px));margin-inline:auto}
.section{padding-block:110px}
.section--tight{padding-block:70px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:400;top:10px;left:15px;background:var(--text);color:#111;padding:10px 16px;transform:translateY(-160%);border-radius:4px}
.skip-link:focus{transform:none}
p{margin:0 0 20px;color:var(--muted)}
h1,h2,h3{margin:0;font-family:var(--headline);font-weight:400;line-height:1.03;letter-spacing:.006em}
h1{font-size:clamp(3.4rem,8.4vw,8.4rem)}
h2{font-size:clamp(2.6rem,5vw,4.9rem)}
h3{font-size:2rem}
h1 em,h2 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-size:.74rem;line-height:1.6;font-weight:750;letter-spacing:.19em;text-transform:uppercase;color:var(--pink);margin-bottom:22px;display:block}
.small-note{font-size:.74rem;letter-spacing:.08em;color:var(--muted)}
.lead{font-size:1.22rem;line-height:1.65;color:var(--text)}
.button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:26px;padding:17px 25px;min-height:56px;border:1px solid transparent;background:var(--grad);background-size:220% 100%;color:#fff;text-transform:uppercase;font-size:.8rem;font-weight:800;letter-spacing:.06em;line-height:1.4;transition:transform .3s,box-shadow .3s,background-position .6s;animation:btnshift 6s ease-in-out infinite}
.button:hover{transform:translateY(-3px);box-shadow:0 14px 34px #ff2e6a4a}
@keyframes btnshift{0%,100%{background-position:0% 0}50%{background-position:100% 0}}
.button>span{font-size:1.3rem}
.button-outline{background:transparent;border-color:var(--line);color:var(--text);animation:none}
.button-outline:hover{border-color:var(--pink);background:#ff2e6a14;box-shadow:none}
.text-link{display:inline-flex;align-items:center;gap:16px;font-size:.9rem;font-weight:700;line-height:1.5;border-bottom:1px solid #ff2e6a75;padding-block:8px;transition:color .2s}
.text-link:hover{color:var(--pink)}
.text-link span{color:var(--pink)}
.plain-button{padding:0;text-align:left;color:var(--muted);line-height:1.65}
.plain-button:hover{color:#fff;text-decoration:underline}

/* grain texture, purely decorative, paused with reduced motion / motion-paused */
.grain{position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  animation:grain 1s steps(4) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,-1%)}}

/* custom cursor (fine pointers only) */
.cursor-glow{position:fixed;top:0;left:0;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:6;background:radial-gradient(circle,#ff2e6a14,transparent 70%);transform:translate(-50%,-50%);opacity:0;transition:opacity .4s}
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9500;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s}
.cursor-dot{width:7px;height:7px;background:var(--pink);box-shadow:0 0 10px var(--pink)}
.cursor-ring{width:36px;height:36px;border:1px solid #ffffff70;transition:width .25s,height .25s,border-color .25s,background .25s,opacity .3s}
.cursor-ring.hover{width:64px;height:64px;border-color:var(--pink);background:#ff2e6a14}
.cursor-dot.is-active,.cursor-ring.is-active,.cursor-glow.is-active{opacity:1}
@media (hover:none),(pointer:coarse){.cursor-dot,.cursor-ring,.cursor-glow{display:none}}

/* ambient background: drifting aurora blobs + floating embers */
.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.aurora span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.4;mix-blend-mode:screen}
.aurora span:nth-child(1){width:640px;height:640px;background:radial-gradient(circle,var(--red),transparent 70%);top:-220px;left:-160px;animation:drift1 22s ease-in-out infinite}
.aurora span:nth-child(2){width:560px;height:560px;background:radial-gradient(circle,var(--purple),transparent 70%);top:22%;right:-200px;animation:drift2 26s ease-in-out infinite}
.aurora span:nth-child(3){width:520px;height:520px;background:radial-gradient(circle,var(--pink),transparent 70%);bottom:-180px;left:22%;animation:drift3 19s ease-in-out infinite}
@keyframes drift1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(120px,80px) scale(1.15)}}
@keyframes drift2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-100px,60px) scale(1.1)}}
@keyframes drift3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(80px,-90px) scale(1.2)}}
.embers{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.ember{position:absolute;bottom:-20px;border-radius:50%;background:var(--pink);box-shadow:0 0 8px var(--pink);opacity:0;animation:rise linear infinite}
@keyframes rise{0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:.8}90%{opacity:.4}100%{transform:translateY(-110vh) translateX(var(--drift,20px));opacity:0}}
body.motion-paused .aurora,body.motion-paused .embers{display:none}

/* glitch flicker + word reveal (headline motion) */
.glitch{position:relative;display:inline-block}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;opacity:0;pointer-events:none}
.glitch::before{color:var(--cyan);mix-blend-mode:screen;animation:glitchmove 2s ease-in-out infinite}
.glitch::after{color:var(--red);mix-blend-mode:screen;animation:glitchmove 2s ease-in-out infinite;animation-delay:.12s}
@keyframes glitchmove{0%,45%,100%{opacity:0;transform:translate(0,0)}50%{opacity:.75;transform:translate(-4px,1px)}65%{opacity:.75;transform:translate(4px,-1px)}80%{opacity:.55;transform:translate(-2px,0)}92%{opacity:.25;transform:translate(1px,0)}}
.reveal-word{display:inline-block;opacity:0;transform:translateY(36px) rotate(2deg);animation:wordIn .7s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes wordIn{to{opacity:1;transform:translateY(0) rotate(0)}}

/* gentle 3d tilt-on-hover for image cards (JS sets the transform) */
.world-card,.gallery-item,.room-visual,.visit-photo,.event-poster{transition:transform .15s ease-out;will-change:transform}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:28px;height:84px;padding:0 48px;background:#07050cf0;border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}
.brand{display:block;position:relative;flex-shrink:0;width:222px;height:52px;overflow:hidden}
.brand img{width:100%;height:auto;position:absolute;left:0;top:50%;transform:translateY(-50%)}
.main-nav{display:flex;align-items:center;gap:30px}
.main-nav a{font-size:.87rem;font-weight:650;position:relative;padding:12px 0;color:#d7cfe0}
.main-nav a::after{content:'';position:absolute;left:0;bottom:4px;width:0;height:2px;background:var(--grad);transition:width .2s}
.main-nav a:hover::after,.main-nav a[aria-current=page]::after{width:100%}
.main-nav a[aria-current=page]{color:#fff}
.location-label{font-size:.66rem;letter-spacing:.13em;display:flex;align-items:center;gap:14px;color:var(--muted)}
.location-label b{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--pink);color:var(--pink);font-size:.72rem;border-radius:50%}
.menu-toggle{display:none;border:1px solid var(--line);color:#fff;padding:10px 12px;font-size:.85rem;border-radius:3px}
.menu-toggle span{margin-left:8px}

/* ---------- marquee (double, opposite-direction, skewed) ---------- */
.marquee-stack{position:relative;z-index:2}
.marquee{overflow:hidden;background:var(--grad);padding:13px 0;color:#0b0710;font:1.9rem/1.2 var(--headline);letter-spacing:.03em;transform:skewY(-1.2deg);margin-bottom:-5px}
.marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.marquee span{white-space:nowrap;padding-right:16px}
@keyframes marquee{to{transform:translateX(-50%)}}
.marquee-second{overflow:hidden;background:#150e1e;padding:13px 0;color:var(--pink);font:1.9rem/1.2 var(--headline);letter-spacing:.03em;border-block:1px solid var(--line);transform:skewY(-1.2deg)}
.marquee-second .marquee-track{animation:marqueeR 36s linear infinite}
@keyframes marqueeR{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;min-height:740px;height:min(880px,calc(100svh - 84px));display:flex;align-items:center;overflow:hidden;background:#0d0714;clip-path:polygon(0 0,100% 0,100% 94%,0 100%)}
.hero-photo{position:absolute;inset:0 0 0 24%;z-index:-3}
.hero-photo img{width:100%;height:100%;object-position:50% 30%;filter:saturate(1.2);animation:hero-in 12s ease-out both}
.hero-wash{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#08050cf2 4%,#0d0816b0 24%,#0d081625 50%),linear-gradient(0deg,#08050c 0%,transparent 42%)}
.hero::after{content:'';position:absolute;z-index:-1;inset:-35%;background:radial-gradient(ellipse at 32% 68%,#ff224230,transparent 42%),radial-gradient(ellipse at 75% 20%,#9a4dff2c,transparent 45%);animation:ambient 13s ease-in-out infinite alternate;pointer-events:none}
.hero-content{padding-block:50px 90px}
.hero .eyebrow{color:#ffd9ea;margin-bottom:24px}
.hero h1{max-width:1050px;text-shadow:0 8px 50px #0006}
.hero-description{font-size:1.12rem;line-height:1.8;max-width:560px;margin:26px 0 32px;color:#e6dcec}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.hero-bottom{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:space-between;font-size:.7rem;letter-spacing:.12em;font-weight:650;color:#cabfd2}
.hero-bottom a{padding:8px 0}
.hero-seal{position:absolute;right:5%;top:19%;border:1px solid #ffffff55;width:148px;height:148px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(9deg);background:#0a06103a;backdrop-filter:blur(5px)}
.hero-seal b{font:4.1rem/1 var(--headline);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-seal span{font-size:.63rem;letter-spacing:.16em;color:var(--muted)}
@keyframes hero-in{from{transform:scale(1.1)}to{transform:scale(1)}}
@keyframes ambient{to{transform:translate(6%,-4%)}}

.countdown{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.countdown__item{position:relative;overflow:hidden;min-width:78px;padding:14px 8px;border:1px solid var(--line);border-radius:10px;background:#ffffff08;text-align:center}
.countdown__item::before{content:'';position:absolute;inset:-45%;background:conic-gradient(from 0deg,var(--red),var(--pink),var(--purple),var(--red));animation:spin 4s linear infinite;opacity:.22;filter:blur(6px);z-index:0}
.countdown__num,.countdown__label{position:relative;z-index:1}
.countdown__num{font:2.1rem/1 var(--headline);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.countdown__label{display:block;margin-top:6px;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- section heading / intro grid / quick facts ---------- */
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:48px}
.section-heading .eyebrow{margin:0}
.intro-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:80px;align-items:start}
.intro-grid>div{padding-top:5px;max-width:540px}
.intro-grid h2{font-size:clamp(2.6rem,4.7vw,4.7rem)}
.intro-grid p:last-of-type{margin-bottom:22px}
.quick-facts{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-block:1px solid var(--line)}
.quick-facts>div{border-right:1px solid var(--line);padding:26px 30px}
.quick-facts>div:first-child{padding-left:0}
.quick-facts>div:last-child{border-right:0}
.quick-facts strong{display:block;font:3.1rem/1.2 var(--headline);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.quick-facts strong .count{font:inherit;background:inherit;-webkit-background-clip:inherit;background-clip:inherit;color:inherit}
.quick-facts small{font-size:1.4rem}
.quick-facts>div>span{font-size:1.02rem;letter-spacing:.02em;color:var(--muted)}

/* ---------- facts band (diagonal, full-bleed variant of quick-facts) ---------- */
.facts-band{position:relative;padding:80px 0;background:var(--surface);clip-path:polygon(0 6%,100% 0,100% 100%,0 94%)}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.fact strong{display:block;font:3.4rem/1 var(--headline);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.fact strong .count{font:inherit;background:inherit;-webkit-background-clip:inherit;background-clip:inherit;color:inherit}
.fact span{font-size:.95rem;color:var(--muted)}
.fact small{font-size:1.6rem}

/* ---------- worlds grid ---------- */
.worlds{background:var(--surface)}
.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.world-card{position:relative;min-height:450px;overflow:hidden;isolation:isolate;background:#1a1220;border-radius:4px}
.world-card::after{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,#08050cf5 0%,#08050c38 70%)}
.world-card>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;transition:transform .7s}
.world-card:hover>img{transform:scale(1.06)}
.world-card:hover,.gallery-item:hover{box-shadow:0 0 0 1px #ff2e6a90,0 24px 55px #00000070}
.world-card>div{position:absolute;bottom:28px;left:26px;right:26px}
.world-card>div>span{font-size:.66rem;letter-spacing:.13em;color:#eeccec}
.world-card h3{font-size:3.4rem;margin:12px 0 14px;text-transform:uppercase}
.world-card p{font-size:.94rem;margin:0;color:var(--muted)}
.world-card>b{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:40px;height:40px;background:#08050c74;border:1px solid #ffffff55;font-size:1.3rem;font-weight:400}
.world-card.event-card h3{font-size:1.55rem;line-height:1.25;margin:8px 0 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.world-card.event-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- trabi full-bleed feature ---------- */
.trabi-feature{position:relative;width:100%;aspect-ratio:2.2/1;min-height:520px;max-height:760px;display:flex;align-items:center;isolation:isolate;overflow:hidden;clip-path:polygon(0 5%,100% 0,100% 100%,0 95%)}
.trabi-feature>img{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-position:center 40%}
.trabi-gradient{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#08050cf7,#08050c9c 48%,#08050c14)}
.trabi-copy{padding-block:80px;max-width:440px}
.trabi-copy h2{font-size:clamp(3.8rem,7.6vw,7.6rem);margin-bottom:26px}
.trabi-copy p:not(.eyebrow){font-size:1.1rem;color:#ece3f0}
.photo-credit{position:absolute;right:26px;bottom:26px;font-size:.63rem;letter-spacing:.14em;color:#e9dcec}

/* ---------- event teaser / visit cta ---------- */
.event-teaser{padding-block:44px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:190px 1fr auto;gap:32px;align-items:center}
.event-label .eyebrow{display:block;margin-bottom:6px;font-size:.63rem}
.event-label>span:last-child{font:2.2rem var(--headline);color:var(--pink)}
.event-teaser h2{font-size:2rem}
.event-teaser p{font-size:.9rem;margin:10px 0 0}
.visit-cta{padding-block:95px;display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:end}
.visit-cta>div:last-child{max-width:440px;justify-self:end}
.visit-cta p{font-size:1.1rem}

/* ---------- page intro / anchor nav ---------- */
.page-intro{padding-block:80px 50px}
.page-intro h1{font-size:clamp(3.1rem,7vw,6.8rem)}
.intro-text{max-width:700px;font-size:1.14rem;margin:28px 0 0}
.anchor-nav{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:30px}
.anchor-nav a{padding:8px 16px;border:1px solid var(--line);font-size:.84rem;border-radius:20px;transition:border-color .2s,color .2s}
.anchor-nav a:hover{border-color:var(--pink);color:var(--pink)}

/* ---------- room sections ---------- */
.room-section{display:grid;grid-template-columns:1.1fr .9fr;gap:75px;align-items:center;padding-block:76px;border-bottom:1px solid var(--line)}
.room-visual{position:relative;min-width:0;height:440px;overflow:hidden;background:var(--panel);border-radius:2px}
.room-visual img{width:100%;height:100%}
.room-visual>span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#08050cdb);padding:48px 20px 16px;font-size:.68rem;letter-spacing:.12em}
.room-copy h2{font-size:clamp(2.4rem,4.2vw,4.3rem);margin-bottom:24px}
.room-copy .eyebrow{margin-bottom:18px}
.room-reverse .room-visual{order:2}
.room-reverse .room-copy{order:1}
.room-reverse{grid-template-columns:.9fr 1.1fr}
.rooms-detail{background:var(--surface)}
.dual-photos{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:48px}
.dual-photos .gallery-item{height:410px}

/* ---------- gallery ---------- */
.gallery-section{background:var(--surface)}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:16px;margin-top:44px}
.gallery-wide{grid-column:span 2}
.gallery-item{position:relative;overflow:hidden;padding:0;text-align:left;isolation:isolate;background:#20172a;border-radius:2px;display:block;width:100%;height:100%}
.gallery-item img{width:100%;height:100%;transition:transform .6s}
.gallery-item:hover img{transform:scale(1.045)}
.gallery-item>span{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:44px 20px 15px;background:linear-gradient(transparent,#08050ce8);font-size:.86rem;color:#fff}
.gallery-item b{font-size:1.35rem;font-weight:400;color:var(--pink)}

/* ---------- visit overview / planning ---------- */
.visit-overview{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:stretch;padding-bottom:75px}
.visit-photo{position:relative;min-height:405px;border-radius:2px;overflow:hidden}
.visit-photo img{position:absolute;width:100%;height:100%;object-position:center}
.visit-photo>span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#08050ce6);padding:44px 20px 15px;font-size:.72rem;letter-spacing:.1em}
.visit-facts{margin:0}
.visit-facts>div{display:flex;justify-content:space-between;align-items:center;padding:16px 0;gap:20px;border-bottom:1px solid var(--line)}
dt{color:var(--muted)}
dd{margin:0}
.visit-facts dd{font-weight:650;text-align:right}
.visit-planning{background:var(--surface)}
.planning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;margin-top:48px}
.planning-grid article{border-top:1px solid #ff2e6a90;padding-top:24px}
.card-number{color:var(--pink);font-size:.85rem;font-weight:700}
.planning-grid h3{font-size:1.72rem;margin:24px 0 18px}
.planning-grid p{font-size:.98rem}
.pending{padding-left:15px;border-left:2px solid #8d729b;color:#d3c3dc}
.together .intro-grid{margin-top:36px}
.faq-section{background:var(--surface)}
.faq-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list details:first-child{border-top:1px solid var(--line)}
.faq-list summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:22px;padding:23px 0;font-size:1rem;font-weight:650;list-style:none;line-height:1.5}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';font-size:1.65rem;color:var(--pink);font-weight:400}
.faq-list details[open] summary::after{content:'−'}
.faq-list details>p{padding-right:20px}
.faq-list a{color:var(--pink);text-decoration:underline}

/* ---------- events page ---------- */
.event-detail{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start;padding-bottom:80px}
.event-poster{position:relative;isolation:isolate;min-height:660px;background:#241531;display:flex;align-items:end;padding:44px;overflow:hidden;border-radius:2px}
.event-poster>img{position:absolute;inset:0;z-index:-3;width:100%;height:100%;filter:saturate(1.35)}
.event-poster::after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#0b0714ee 8%,#3a0b3a55 100%)}
.event-poster h2{font-size:clamp(3.4rem,6.4vw,6.3rem);margin-bottom:26px;text-transform:uppercase}
.event-poster strong{font:2.9rem var(--headline);border-top:1px solid #ffffffa0;padding-top:14px;display:block;color:var(--gold)}
.event-poster .eyebrow{color:#f0d6ee}
.event-info{padding-top:10px}
.event-info h2{font-size:clamp(2.8rem,4.3vw,4.2rem);margin-bottom:28px;text-transform:uppercase}
.event-facts{margin:28px 0}
.event-facts>div{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding:13px 0;font-size:.9rem}
.event-facts dd{text-align:right;max-width:60%}
.next-events{padding-block:65px 95px;border-top:1px solid var(--line)}
.next-events h2{font-size:2.9rem;margin-bottom:18px}

/* ---------- legal pages ---------- */
.legal-layout{display:grid;grid-template-columns:210px minmax(0,760px);gap:75px;align-items:start;padding-bottom:105px}
.legal-nav{position:sticky;top:118px;display:flex;flex-direction:column;gap:16px;font-size:.9rem}
.legal-nav a:hover{color:var(--pink)}
.legal-content{min-width:0}
.legal-content h2{font:650 1.48rem/1.35 var(--body);margin:0 0 20px}
.legal-content h3{font:650 1.08rem/1.4 var(--body);margin:24px 0 14px}
.legal-content section{padding-block:30px;border-bottom:1px solid var(--line)}
.legal-content a:not(.button){color:#ff9ab3;text-decoration:underline;text-underline-offset:3px}
.legal-content p{overflow-wrap:anywhere}
.draft-note{padding:22px;border:1px solid #f3b56c7a;background:#bd732014;margin-bottom:14px;border-radius:3px}
.draft-note strong{color:#ffd298}
.draft-note p{font-size:.92rem;margin:10px 0 0}
.legal-fields{margin:24px 0}
.legal-fields>div{padding:14px 0;border-bottom:1px solid var(--line)}
.legal-fields dt{font-weight:650;color:var(--text);margin-bottom:7px}
.placeholder{font-size:.95rem;color:var(--gold)!important;overflow-wrap:anywhere}
.legal-date{font-size:.82rem;margin-top:28px;color:#a89aaf}
.rights-box{padding:0 20px 4px;border-left:2px solid var(--pink);margin:24px 0}
.rights-box h3{padding-top:6px}
.status-message{color:#c9ebb3;margin-top:14px}
code{font-size:.9em;background:#ffffff0c;padding:3px 6px;border-radius:3px;overflow-wrap:anywhere}

/* ---------- footer ---------- */
.footer{background:#05030a;border-top:1px solid var(--line);padding:60px 48px 22px}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:60px;max-width:1320px;margin:0 auto 50px}
.footer-top p{font-size:.88rem;line-height:1.8;margin:22px 0 0}
.footer-top nav{display:flex;flex-direction:column;align-items:start;gap:10px;font-size:.9rem}
.footer-top nav .eyebrow{margin:0 0 10px;color:#a493ae}
.footer-top nav a:hover{color:var(--pink)}
.footer-bottom{max-width:1320px;margin:auto;border-top:1px solid var(--line);padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:.75rem;color:#a99db1;flex-wrap:wrap}
.motion-toggle{padding:5px 0;font-size:.75rem;text-decoration:underline;text-underline-offset:4px;color:#c6b7d0}
.noscript-note{background:#241729;padding:20px;margin:0;text-align:center}

/* ---------- dialogs (age gate + lightbox) ---------- */
dialog{color:var(--text);background:var(--surface);border:1px solid #ffffff22;padding:0;border-radius:4px}
dialog::backdrop{background:#05030de8;backdrop-filter:blur(12px)}
.age-dialog{width:min(530px,calc(100% - 32px));max-height:calc(100svh - 32px);box-shadow:0 0 140px #ff2e6a22}
.age-inner{padding:34px 38px;display:flex;align-items:center;flex-direction:column;text-align:center}
.brand-static{width:220px;height:46px;margin-bottom:18px;animation:flicker 3.6s ease-in-out infinite}
.age-inner>.eyebrow{margin-bottom:14px;font-size:.66rem}
.age-number{font:6.4rem/1 var(--headline);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin:2px 0 14px}
.age-number span{font-size:.55em;vertical-align:top}
.age-inner h2{font:400 2rem/1.2 var(--headline);margin-bottom:14px}
.age-inner>p{font-size:.95rem}
.remember-age{display:flex;align-items:start;gap:10px;text-align:left;font-size:.8rem;color:var(--muted);margin:6px 0 20px;cursor:pointer}
.remember-age input{accent-color:var(--pink);width:17px;height:17px;flex-shrink:0;margin-top:4px}
.age-inner>.button{width:100%;font-size:.76rem;padding:16px 18px}
.age-inner>.plain-button{margin:18px 0;font-size:.85rem}
.age-legal{display:flex;justify-content:center;gap:26px;border-top:1px solid var(--line);padding-top:18px;width:100%;font-size:.78rem;color:var(--muted)}
.age-legal a:hover{text-decoration:underline}
@keyframes flicker{0%,18%,22%,25%,53%,57%,100%{filter:drop-shadow(0 0 8px #ff2e6ae0) drop-shadow(0 0 26px #ff224290);opacity:1}20%,24%,55%{opacity:.45;filter:none}}

.lightbox{width:min(1080px,calc(100% - 28px));max-height:calc(100svh - 28px);padding:54px 22px 18px;background:#08050c}
.lightbox figure{margin:0}
.lightbox figure img{width:100%;height:min(65svh,720px);object-fit:contain}
.lightbox figcaption{text-align:center;margin-top:14px;font-size:.9rem;color:var(--muted)}
.lightbox-close{position:absolute;right:10px;top:6px;color:#fff;width:44px;height:40px;font-size:2rem;line-height:1}
.lightbox-controls{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:12px}
.lightbox-controls button{width:44px;height:40px;background:var(--panel);color:#fff;border:1px solid var(--line);border-radius:3px}
.lightbox-controls span{font-size:.8rem;color:var(--muted)}

/* ---------- reveal-on-scroll / motion controls ---------- */
.reveal{opacity:1;transform:none}
.reveal.reveal-ready{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}
.reveal.reveal-ready.visible{opacity:1;transform:none}
body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation-play-state:paused!important;transition:none!important}
body.motion-paused .reveal{opacity:1;transform:none}
body.motion-paused .grain{display:none}

/* ---------- responsive ---------- */
@media(min-width:1600px){.hero-seal{right:calc((100vw - 1360px)/2)}}
@media(max-width:1100px){
  .wrap{width:calc(100% - 60px)}
  .header{padding-inline:28px;gap:20px}
  .location-label{display:none}
  .hero{min-height:680px}
  .hero-seal{width:112px;height:112px;right:4%;top:12%}
  .hero-seal b{font-size:3.1rem}
  .hero-seal span{font-size:.5rem}
  .intro-grid,.room-section,.event-detail,.visit-overview,.faq-layout{gap:36px}
  .world-card{min-height:385px}
  .world-card>div{left:18px;right:18px}
  .world-card h3{font-size:2.5rem}
  .event-teaser{grid-template-columns:150px 1fr;gap:22px}
  .event-teaser .button{grid-column:2;justify-self:start}
  .legal-layout{gap:36px;grid-template-columns:180px minmax(0,1fr)}
  .footer{padding-inline:28px}
  .footer-top{gap:28px}
  .room-visual{height:380px}
  .event-poster{min-height:600px;padding:28px}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  html{scroll-padding-top:88px}
  .wrap{width:calc(100% - 36px)}
  .section{padding-block:68px}
  .header{height:72px;padding-inline:18px;flex-wrap:wrap;gap:0}
  .header .brand{width:188px;height:44px}
  .menu-toggle{display:block}
  .main-nav{display:none;position:absolute;top:71px;left:0;right:0;padding:16px 22px 24px;background:#07050cf8;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:2px}
  .main-nav.open{display:flex}
  .main-nav a{padding:12px 4px}
  .main-nav a::after{display:none}
  .main-nav a[aria-current=page]{color:var(--pink)}
  .hero{min-height:700px;height:calc(100svh - 72px);max-height:840px;align-items:center}
  .hero-photo{inset:0}
  .hero-photo img{object-position:55% 25%}
  .hero-wash{background:linear-gradient(90deg,#08050ccf,#08050c74),linear-gradient(0deg,#08050c 1%,transparent 70%)}
  .hero-content{padding-block:85px}
  .hero .eyebrow{font-size:.64rem;letter-spacing:.13em}
  .hero h1{font-size:clamp(3.5rem,10.2vw,5.8rem)}
  .hero-description{font-size:1rem;max-width:500px}
  .hero-actions{gap:18px;align-items:start;flex-direction:column}
  .hero-bottom{bottom:22px}
  .hero-bottom>span{display:none}
  .hero-seal{display:none}
  .marquee{font-size:1.5rem;padding:11px 0}
  .marquee-second{font-size:1.2rem;padding:9px 0}
  .facts-band{padding:50px 0}
  .facts-grid{grid-template-columns:1fr 1fr;gap:28px 16px}
  .fact strong{font-size:2.6rem}
  .intro-grid{grid-template-columns:1fr;gap:28px}
  .intro-grid h2{font-size:clamp(2.6rem,8.6vw,3.9rem)}
  .intro-grid>div{max-width:none}
  .section-heading{margin-bottom:30px;align-items:start}
  .section-heading .small-note{display:none}
  .quick-facts{grid-template-columns:1fr 1fr;margin-top:40px}
  .quick-facts>div{padding:20px!important}
  .quick-facts>div:nth-child(even){border-right:0}
  .quick-facts>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .quick-facts strong{font-size:2.7rem}
  .quick-facts>div>span{font-size:.92rem}
  .world-grid{grid-template-columns:1fr;gap:18px}
  .world-card{min-height:320px}
  .world-card h3{font-size:3.1rem}
  .worlds .section-heading{flex-direction:column;gap:10px}
  .trabi-feature{min-height:640px;align-items:end}
  .trabi-feature>img{object-position:60% center}
  .trabi-gradient{background:linear-gradient(0deg,#08050cf5 0%,#08050c55 78%)}
  .trabi-copy{padding-block:65px;max-width:320px}
  .trabi-copy h2{font-size:5rem}
  .photo-credit{font-size:.5rem;right:18px;bottom:17px}
  .event-teaser{grid-template-columns:1fr;gap:20px;padding-block:38px}
  .event-label{display:flex;align-items:center;justify-content:space-between;gap:16px}
  .event-label>span:last-child{font-size:1.7rem;white-space:nowrap}
  .event-label .eyebrow{margin:0}
  .event-teaser .button{grid-column:auto;justify-self:start}
  .visit-cta{grid-template-columns:1fr;padding-block:70px;gap:28px}
  .visit-cta>div:last-child{justify-self:start}
  .visit-cta h2{font-size:3.7rem}
  .page-intro{padding-block:55px 32px}
  .page-intro h1{font-size:clamp(2.7rem,8.4vw,4.5rem)}
  .page-intro .intro-text{font-size:1rem;margin-top:22px}
  .anchor-nav{gap:8px}
  .anchor-nav a{font-size:.8rem;padding:7px 12px}
  .room-section,.room-reverse{grid-template-columns:1fr;gap:28px;padding-block:46px}
  .room-visual{height:320px}
  .room-reverse .room-visual{order:0}
  .room-reverse .room-copy{order:0}
  .room-copy h2{font-size:clamp(2.5rem,8.3vw,3.9rem)}
  .dual-photos{gap:12px;grid-template-columns:1fr}
  .dual-photos .gallery-item{height:290px}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:230px;gap:12px}
  .gallery-wide{grid-column:span 2}
  .gallery-item>span{padding:34px 12px 12px;font-size:.75rem}
  .gallery-item b{font-size:1.15rem}
  .visit-overview{grid-template-columns:1fr;gap:24px;padding-bottom:52px}
  .visit-photo{min-height:300px}
  .visit-facts>div{font-size:.92rem}
  .planning-grid{grid-template-columns:1fr;gap:28px;margin-top:30px}
  .planning-grid h3{margin-top:14px}
  .faq-layout{grid-template-columns:1fr;gap:32px}
  .faq-list summary{font-size:.95rem}
  .event-detail{grid-template-columns:1fr;gap:32px;padding-bottom:56px}
  .event-poster{min-height:540px}
  .event-poster h2{font-size:4.5rem}
  .event-info h2{font-size:3.2rem}
  .next-events{padding-block:46px 65px}
  .next-events h2{font-size:2.2rem}
  .legal-layout{grid-template-columns:1fr;gap:28px;padding-bottom:65px}
  .legal-nav{position:static;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px 18px;border-block:1px solid var(--line);padding-block:18px;font-size:.8rem}
  .legal-content h2{font-size:1.28rem}
  .legal-content p,.legal-fields{font-size:.94rem}
  .draft-note{padding:16px}
  .footer{padding:42px 18px 22px}
  .footer-top{grid-template-columns:1fr 1fr;gap:32px 20px;margin-bottom:32px}
  .footer-top>div{grid-column:span 2}
  .footer-bottom{flex-wrap:wrap;gap:16px}
  .footer-bottom>span{width:100%}
  .age-inner{padding:24px 20px}
  .age-number{font-size:4.8rem}
  .age-inner .brand{width:200px;height:40px}
  .age-inner h2{font-size:1.75rem}
  .lightbox figure img{height:60svh}
}
@media(max-width:370px){
  .hero h1{font-size:3.2rem}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:230px}
  .gallery-wide{grid-column:auto}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal.reveal-ready{opacity:1;transform:none}
  .reveal-word{opacity:1!important;transform:none!important}
  .aurora,.embers{display:none}
}
