:root{
  --bg:#050606;
  --panel:#090a0a;
  --text:#f0ede7;
  --muted:#a6a39d;
  --gold:#b99458;
  --gold-bright:#d0ad72;
  --line:rgba(185,148,88,.34);
  --header:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:var(--bg);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:300;
  letter-spacing:.02em;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{width:100%;display:block}
button{font:inherit}
.noise{
  position:fixed;inset:0;z-index:99;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
}
.site-header{
  position:fixed;top:0;left:0;right:0;height:var(--header);z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 4vw;border-bottom:1px solid rgba(255,255,255,.05);
  background:linear-gradient(to bottom,rgba(2,3,3,.88),rgba(2,3,3,.18));
  backdrop-filter:blur(9px);
}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{
  font-family:Arial,Helvetica,sans-serif;font-weight:300;color:var(--gold-bright);
  font-size:27px;letter-spacing:-.16em;padding-right:.16em;
}
.brand-name{font-size:10px;letter-spacing:.4em;color:#d7d3ca}
.desktop-nav{display:flex;gap:2.4vw}
.desktop-nav a{
  font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:#b6b3ad;
  transition:.25s ease;
}
.desktop-nav a:hover{color:var(--gold-bright)}
.menu-toggle{display:none;background:transparent;border:0;width:38px;height:38px;position:relative}
.menu-toggle span{position:absolute;right:3px;width:27px;height:1px;background:#e4e1da;transition:.3s}
.menu-toggle span:first-child{top:13px}
.menu-toggle span:last-child{top:23px;width:20px}
.menu-toggle.open span:first-child{transform:rotate(45deg);top:19px}
.menu-toggle.open span:last-child{transform:rotate(-45deg);top:19px;width:27px}
.mobile-nav{
  display:none;position:fixed;inset:var(--header) 0 0;z-index:45;
  background:rgba(4,5,5,.98);padding:12vh 9vw;flex-direction:column;gap:28px;
}
.mobile-nav a{font-size:20px;letter-spacing:.16em;color:#d7d3ca}
.mobile-nav.open{display:flex}

.hero{
  min-height:100svh;position:relative;display:grid;place-items:center;isolation:isolate;overflow:hidden;
  background:#040505;
}
.hero-image{
  position:absolute;inset:0;z-index:-5;
  background-image:url('assets/hero.webp');
  background-size:cover;background-position:center 40%;
  filter:saturate(.64) contrast(1.05) brightness(.58);
  transform:scale(1.015);
}
.hero-vignette{
  position:absolute;inset:0;z-index:-4;
  background:
    linear-gradient(to bottom,rgba(3,4,4,.62) 0%,rgba(3,4,4,.06) 35%,rgba(3,4,4,.35) 66%,#050606 100%),
    linear-gradient(to right,rgba(2,3,3,.72),transparent 29%,transparent 71%,rgba(2,3,3,.66));
}
.light-column{
  position:absolute;top:-18%;left:50%;width:22%;height:72%;transform:translateX(-50%);
  background:linear-gradient(to bottom,rgba(255,247,220,.24),rgba(255,247,220,.04),transparent);
  filter:blur(22px);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);opacity:.7;z-index:-3;
  animation:breathe 7s ease-in-out infinite;
}
@keyframes breathe{50%{opacity:.42;transform:translateX(-50%) scaleX(1.13)}}
.particles{
  position:absolute;inset:0;z-index:-2;opacity:.46;
  background-image:
    radial-gradient(circle at 20% 40%,rgba(216,183,125,.8) 0 1px,transparent 1.6px),
    radial-gradient(circle at 75% 55%,rgba(255,255,255,.7) 0 1px,transparent 1.8px),
    radial-gradient(circle at 48% 25%,rgba(216,183,125,.8) 0 1px,transparent 1.8px);
  background-size:170px 210px,230px 190px,310px 250px;
  animation:float 18s linear infinite;
}
@keyframes float{to{background-position:70px -180px,-110px -130px,110px -220px}}
.hero-content{
  width:min(980px,82vw);text-align:center;margin-top:7vh;position:relative;z-index:2;
}
.eyebrow{
  font-size:10px;letter-spacing:.34em;color:var(--gold-bright);text-transform:uppercase;margin:0 0 25px;
}
.hero h1{
  font-family:Arial,Helvetica,sans-serif;font-weight:300;font-size:clamp(48px,8vw,116px);
  letter-spacing:.24em;margin:0 0 18px;padding-left:.24em;line-height:.95;
  color:#d7c19b;text-shadow:0 0 45px rgba(185,148,88,.12);
}
.genres{
  font-size:clamp(9px,1vw,13px);letter-spacing:.21em;margin:0 auto 34px;color:#e4e0d8;
  text-transform:uppercase;line-height:1.8;
}
.genres i{color:var(--gold);font-style:normal;margin:0 .55em}
.hero-statement{
  max-width:690px;margin:0 auto 37px;color:#c6ae83;font-size:clamp(11px,1.2vw,15px);
  letter-spacing:.12em;line-height:1.85;text-transform:uppercase;
}
.cta{
  display:inline-flex;flex-direction:column;align-items:center;gap:12px;
  font-size:11px;letter-spacing:.28em;color:#f1e3c9;padding:12px 18px;
}
.cta-line{width:70px;height:1px;background:var(--gold);transition:.35s}
.cta:hover .cta-line{width:118px;background:var(--gold-bright)}
.cta.large{font-size:13px;margin-top:16px}
.vertical-story{
  position:absolute;right:2.2vw;top:50%;transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;font-size:9px;letter-spacing:.36em;color:var(--gold-bright);
}
.scroll-cue{position:absolute;bottom:24px;left:50%;width:42px;height:42px;transform:translateX(-50%)}
.scroll-cue span{position:absolute;left:13px;top:5px;width:17px;height:17px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);transform:rotate(45deg);animation:drop 1.8s infinite}
@keyframes drop{0%,100%{transform:translateY(-4px) rotate(45deg);opacity:.4}50%{transform:translateY(6px) rotate(45deg);opacity:1}}

.section{padding:110px 5.5vw;border-top:1px solid rgba(255,255,255,.065);position:relative}
.section-number{font-size:11px;letter-spacing:.24em;color:var(--gold);margin:0 0 16px}
.section h2,.booking h2{
  font-family:Arial,Helvetica,sans-serif;font-weight:300;letter-spacing:.25em;color:#d7b77e;
  font-size:clamp(23px,3.3vw,48px);margin:0;line-height:1.25;
}
.gold-line{width:54px;height:1px;background:var(--gold);margin:21px 0 30px}
.philosophy{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(380px,1.18fr);gap:8vw;align-items:center}
.section-copy{max-width:560px}
.section-copy p{color:#bcb8b1;font-size:14px;line-height:1.8;margin:0 0 13px}
.section-copy .lead{color:#e5e0d8;font-size:17px}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}
.values div{border-top:1px solid var(--line);padding-top:14px}
.values strong{display:block;color:var(--gold-bright);font-size:10px;letter-spacing:.2em;margin-bottom:9px}
.values span{font-size:11px;color:#888680;line-height:1.5}
.philosophy-visual{position:relative;min-height:610px;overflow:hidden}
.philosophy-visual img{height:610px;object-fit:cover;object-position:center 28%;filter:saturate(.35) contrast(1.1) brightness(.72)}
.image-shade{position:absolute;inset:0;background:linear-gradient(to right,#050606 0%,transparent 36%),linear-gradient(to top,#050606,transparent 45%)}
.philosophy-visual blockquote{position:absolute;left:9%;bottom:7%;margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:300;font-size:clamp(23px,3.2vw,46px);letter-spacing:.12em;color:#e7dcc8;max-width:550px}

.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:34px}
.section-heading>div{display:flex;align-items:baseline;gap:22px}
.section-heading .section-number{margin:0}
.section-intro{max-width:780px;color:#9f9c95;line-height:1.75;margin:0 0 44px;font-size:14px}
.text-link{font-size:9px;letter-spacing:.22em;color:var(--gold-bright);padding-bottom:7px;border-bottom:1px solid var(--line);white-space:nowrap}
.text-link.muted{color:#77736c}
.session-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.media-card{display:block}
.media-image{position:relative;aspect-ratio:16/10;overflow:hidden;background:#101111}
.media-image img{height:100%;object-fit:cover;filter:saturate(.45) brightness(.7);transition:.6s}
.media-card:hover img{transform:scale(1.035);filter:saturate(.75) brightness(.78)}
.play{position:absolute;left:50%;top:50%;width:54px;height:54px;border:1px solid rgba(255,255,255,.75);border-radius:50%;transform:translate(-50%,-50%);background:rgba(3,4,4,.28);backdrop-filter:blur(3px)}
.play:after{content:"";position:absolute;left:21px;top:16px;border-left:14px solid white;border-top:9px solid transparent;border-bottom:9px solid transparent}
.card-kicker{display:block;margin-top:18px;color:var(--gold-bright);font-size:9px;letter-spacing:.22em}
.media-card h3{font-size:15px;font-weight:400;letter-spacing:.11em;margin:9px 0 7px;color:#e2ddd4}
.media-card p{font-size:11px;color:#85827d;margin:0;line-height:1.5}

.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.event-card{position:relative;min-height:520px;overflow:hidden;background:#101111}
.event-card img{height:100%;min-height:520px;object-fit:cover;filter:saturate(.35) contrast(1.03) brightness(.6);transition:.7s}
.event-card:hover img{transform:scale(1.04);filter:saturate(.65) brightness(.7)}
.event-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:33px;background:linear-gradient(to top,rgba(4,5,5,.95),transparent 62%)}
.event-overlay span{font-size:9px;letter-spacing:.24em;color:var(--gold-bright)}
.event-overlay h3{font-family:Arial,Helvetica,sans-serif;font-weight:300;letter-spacing:.08em;font-size:20px;line-height:1.45;margin:12px 0 0;max-width:300px}

.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:270px;gap:12px}
.gallery-grid figure{margin:0;overflow:hidden}
.gallery-grid img{height:100%;object-fit:cover;filter:saturate(.5) brightness(.7);transition:.6s}
.gallery-grid figure:hover img{transform:scale(1.035);filter:saturate(.8) brightness(.82)}
.gallery-grid .g-wide{grid-column:span 2}

.booking{position:relative;min-height:80vh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:110px 5vw}
.booking-backdrop{
  position:absolute;inset:0;background:
    linear-gradient(rgba(3,4,4,.5),rgba(3,4,4,.93)),
    url('assets/session-3.webp') center/cover no-repeat;
  filter:saturate(.28) brightness(.62);
}
.booking-content{position:relative;z-index:2}
.booking h2{font-size:clamp(48px,8vw,118px);letter-spacing:.16em;color:#d7c4a2}
.contact-row{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin-top:48px}
.contact-row a{font-size:11px;letter-spacing:.12em;color:#b8b3aa;border-bottom:1px solid var(--line);padding-bottom:7px}
.contact-row a:hover{color:var(--gold-bright)}

footer{
  border-top:1px solid rgba(255,255,255,.07);padding:34px 5vw;display:flex;align-items:center;justify-content:space-between;gap:25px;
  color:#77746e;font-size:9px;letter-spacing:.18em;
}
.footer-brand{display:flex;align-items:center;gap:12px;color:#a7a39b}
.socials{display:flex;gap:25px}
.socials a:hover{color:var(--gold-bright)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}
.reveal.visible{opacity:1;transform:none}

@media (max-width:980px){
  .desktop-nav{display:none}
  .menu-toggle{display:block}
  .philosophy{grid-template-columns:1fr;gap:65px}
  .philosophy-visual{min-height:520px}
  .philosophy-visual img{height:520px}
  .session-grid{grid-template-columns:1fr 1fr}
  .session-grid .media-card:last-child{grid-column:span 2}
  .event-grid{grid-template-columns:1fr}
  .event-card,.event-card img{min-height:470px}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .gallery-grid .g-wide{grid-column:span 2}
}
@media (max-width:650px){
  :root{--header:66px}
  .site-header{padding:0 20px}
  .brand-name{display:none}
  .hero-content{width:88vw;margin-top:5vh}
  .hero h1{letter-spacing:.14em;padding-left:.14em;font-size:48px}
  .genres{max-width:340px}
  .hero-statement{font-size:10px;line-height:1.7}
  .vertical-story{display:none}
  .section{padding:78px 22px}
  .section-heading{align-items:flex-start;flex-direction:column}
  .section-heading>div{display:block}
  .section-heading .section-number{margin-bottom:13px}
  .values{grid-template-columns:1fr}
  .philosophy-visual{min-height:430px}
  .philosophy-visual img{height:430px}
  .philosophy-visual blockquote{left:7%;right:7%;font-size:25px}
  .session-grid{grid-template-columns:1fr}
  .session-grid .media-card:last-child{grid-column:auto}
  .event-card,.event-card img{min-height:410px}
  .gallery-grid{display:grid;grid-template-columns:1fr;grid-auto-rows:330px}
  .gallery-grid .g-wide{grid-column:auto}
  .booking{min-height:72vh;padding:90px 20px}
  .booking h2{font-size:49px}
  .contact-row{flex-direction:column;gap:18px}
  footer{flex-direction:column;text-align:center}
  .socials{flex-wrap:wrap;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
