/* ============ BASE ============ */
:root{
  --bg:#000;
  --fg:#fff;
  --mute:#9a9a9a;
  --line:rgba(255,255,255,.12);
  --line-2:rgba(255,255,255,.25);
  --accent:#fff;
  --neon:#fff;
  --neon-soft:rgba(255,255,255,.45);
  --neon-glow:0 0 6px rgba(255,255,255,.45),0 0 18px rgba(255,255,255,.18);
  --easing:cubic-bezier(.7,.05,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--fg);}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%;scrollbar-width:none;-ms-overflow-style:none}
html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{width:0;height:0;display:none}
*{scrollbar-width:none;-ms-overflow-style:none}
body{
  font-family:'Inter',system-ui,sans-serif;
  font-feature-settings:"ss01","cv11";
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%;user-select:none;-webkit-user-drag:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:#fff;color:#000}

body.loading{overflow:hidden;height:100vh}

/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* ============ LOADER ============ */
#loader{
  position:fixed;inset:0;background:#000;z-index:1000;
  display:flex;align-items:center;justify-content:center;
}
.loader-inner{text-align:center;display:flex;flex-direction:column;gap:32px;align-items:center}
.loader-logo-img{
  width:clamp(260px,42vw,560px);height:auto;display:block;
  animation:logoPulse 2s ease-in-out infinite;
}
@keyframes logoPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.loader-bar{width:min(60vw,420px);height:2px;background:rgba(255,255,255,.12);overflow:hidden}
.loader-bar span{display:block;height:100%;width:0;background:#fff}
.loader-pct{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.3em;color:var(--mute)}

/* ============ NAV ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:95;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(16px,3vw,32px);
  color:#fff;background:#000;
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:padding .35s var(--easing);
}
.nav.scrolled{padding-top:10px;padding-bottom:10px}
.nav-logo{display:block;transition:transform .4s var(--easing)}
.nav-logo:hover{transform:scale(1.05)}
.nav-logo img{width:clamp(100px,9vw,160px);height:clamp(100px,9vw,160px);border:none;object-fit:contain}
.nav-links{display:flex;gap:clamp(16px,2.4vw,40px);font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.nav-links a{position:relative;padding:6px 0}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--easing)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid #fff;padding:10px 16px;border-radius:0;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  transition:background .35s,color .35s;
}
.nav-cta svg{width:14px;height:14px}
.nav-cta:hover{background:#fff;color:#000}

.nav-right{display:flex;align-items:center;gap:12px}
.lang-toggle{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid rgba(255,255,255,.35);padding:8px 12px;border-radius:0;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.18em;
  color:var(--mute);background:transparent;
  transition:border-color .3s;
}
.lang-toggle:hover{border-color:#fff}
.lang-toggle .lang-opt{cursor:pointer;padding:0 2px;transition:color .25s}
.lang-toggle .lang-opt.is-active{color:#fff}
.lang-toggle .lang-opt:not(.is-active):hover{color:#fff}
.lang-toggle .lang-sep{opacity:.45;pointer-events:none}
.mm-lang{margin-top:4px}

/* burger + mobile menu */
.nav-burger{
  display:none;width:32px;height:32px;border:none;
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;background:transparent;padding:0;cursor:pointer;
}
.nav-burger span{display:block;width:22px;height:1.5px;background:#fff;transition:transform .3s,opacity .3s}
.nav-burger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-burger.is-open span:nth-child(2){opacity:0}
.nav-burger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.mobile-menu{
  position:fixed;inset:0;z-index:90;background:#000;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;
  padding:40px 24px;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .35s var(--easing),transform .45s var(--easing),visibility 0s linear .35s;
}
.mobile-menu.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.mm-links{display:flex;flex-direction:column;gap:18px;text-align:center}
.mm-links a{
  font-family:'Archivo Black',sans-serif;font-size:clamp(28px,7vw,44px);
  letter-spacing:-.01em;text-transform:uppercase;
}
.mm-cta{margin-top:8px}
.mm-ig{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--mute);border-bottom:1px solid rgba(255,255,255,.2);
  padding-bottom:4px;
}
.mm-ig:hover{color:#fff;border-color:#fff}
.mm-foot{
  position:absolute;bottom:28px;left:0;right:0;text-align:center;
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--mute);
}
.nav-lang-mobile{display:none}
@media (max-width:780px){
  .nav-links,.nav-cta,.nav-right{display:none}
  .nav-burger{display:inline-flex}
  .nav-lang-mobile{
    display:inline-flex;
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  }
}

/* ============ TICKER ============ */
.ticker{
  position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;height:42px;display:flex;align-items:center;
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.3em;text-transform:uppercase;
}
.ticker.below-hero{}
.ticker-track{display:flex;gap:48px;white-space:nowrap;animation:ticker 30s linear infinite;padding-left:48px}
.ticker-track span{color:#fff}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============ HERO ============ */
.hero{
  position:relative;min-height:100vh;
  display:grid;grid-template-rows:1fr auto;
  padding:clamp(120px,12vw,160px) clamp(20px,3vw,40px) clamp(28px,3vw,40px);
  overflow:hidden;
}
.hero-bg{position:absolute;inset:-8% -2% -2%;z-index:0;will-change:transform;overflow:hidden}
.hero-bg img,
.hero-bg video{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(.9);
  transform:scale(1.02);
}
.hero-bg::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.15) 35%,rgba(0,0,0,.55) 85%,#000 100%);
}
.hero-meta{
  position:relative;z-index:2;display:flex;align-items:center;gap:10px;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;color:var(--mute);
}
.meta-dot{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

.hero-title{
  position:relative;z-index:2;
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(72px,18vw,260px);
  line-height:.82;letter-spacing:-.03em;
  align-self:center;text-transform:uppercase;
}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line > span,
.hero-title .line[data-text]{position:relative;display:inline-block}
.hero-title .italic{color:#fff}
.hero-title .line:nth-child(2){padding-left:8vw}
.hero-title .line:nth-child(3){padding-left:0}
.hero-title .line[data-text]::before{
  content:attr(data-text);position:absolute;inset:0;
  color:#fff;opacity:.55;
  transform:translate(8px,8px);opacity:.25;pointer-events:none;
}

.hero-foot{
  position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding-top:28px;border-top:1px solid var(--line);
}
.hero-tag{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
@media (max-width:780px){
  .hero-foot{flex-direction:column;align-items:flex-start}
}

/* ============ MANIFESTO ============ */
.manifesto{
  position:relative;padding:clamp(80px,12vw,180px) clamp(20px,3vw,40px);
  perspective:1200px;
}
.manifesto-stack{display:flex;flex-direction:column;gap:0;transform-style:preserve-3d}
.m-line{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(56px,13vw,200px);
  line-height:.92;letter-spacing:-.025em;text-transform:uppercase;
  will-change:transform,opacity;
}
.m-line.tight{font-size:clamp(40px,8vw,120px)}
.m-line.italic{color:#fff;letter-spacing:0}
.m-line span.outline{
  color:#fff;opacity:.55;
}

/* ============ MARQUEE ============ */
.marquee{
  position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:hidden;padding:clamp(20px,3vw,40px) 0;
  background:#0a0a0a;
}
.marquee-track{
  display:flex;align-items:center;gap:clamp(20px,3vw,60px);
  white-space:nowrap;font-family:'Archivo Black',sans-serif;
  font-size:clamp(60px,12vw,180px);line-height:1;letter-spacing:-.02em;
  text-transform:uppercase;will-change:transform;
}
.marquee-track .ghost{color:#fff;opacity:.55}
.marquee-track .dot{font-size:.5em;color:#fff}

/* ============ ABOUT ============ */
.about{
  position:relative;
  display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(24px,5vw,80px);
  padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px);
  align-items:start;
}
.about-num{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;color:var(--mute);grid-column:1/-1;margin-bottom:24px}
.about-copy h2{font-family:'Archivo Black',sans-serif;font-size:clamp(42px,5.5vw,90px);line-height:.95;letter-spacing:-.02em;text-transform:uppercase;margin-bottom:24px}
.about-copy h2 em{color:#fff;opacity:.55}
.about-copy p{font-size:18px;line-height:1.55;color:#cfcfcf;max-width:46ch;margin-bottom:32px}
.about-bullets{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.about-bullets li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--line);font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.about-bullets li span{color:var(--mute)}

.about-media{position:relative}
.tilt-card{
  position:relative;overflow:hidden;border:1px solid var(--line-2);
  transform-style:preserve-3d;will-change:transform;
  aspect-ratio:3/4;
}
.tilt-card img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:transform .8s var(--easing)}
.tilt-card:hover img{transform:scale(1.05)}
.tilt-shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%);transform:translateX(-100%);transition:transform .9s var(--easing)}
.tilt-card:hover .tilt-shine{transform:translateX(100%)}

.about-badge{
  position:absolute;right:-24px;bottom:-24px;width:170px;height:170px;
  background:#000;border:1px solid var(--line-2);border-radius:50%;
  display:grid;place-items:center;animation:spin 18s linear infinite;
}
.about-badge svg{position:absolute;inset:0;width:100%;height:100%}
.about-badge text{font-family:'Space Mono',monospace;font-size:13px;letter-spacing:.2em;fill:#fff}
.about-badge .badge-core{font-family:'Archivo Black',sans-serif;font-size:32px}
@keyframes spin{to{transform:rotate(360deg)}}

@media (max-width:900px){
  .about{grid-template-columns:1fr}
  .about-bullets{grid-template-columns:1fr}
  .about-badge{right:0;bottom:-20px;width:120px;height:120px}
  .about-badge text{font-size:14px}
}

/* ============ PROGRAMS ============ */
.programs{padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px);border-top:1px solid var(--line)}
.programs-head{display:grid;grid-template-columns:1fr 2fr;gap:24px;align-items:end;margin-bottom:48px}
.programs-head h2{font-family:'Archivo Black',sans-serif;font-size:clamp(42px,6vw,100px);line-height:.95;letter-spacing:-.02em;text-transform:uppercase}
.programs-head h2 em{color:var(--mute);opacity:1;font-style:normal}
.programs-head .outline{color:#fff;opacity:.55;color:#fff}
.programs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.prog-card{
  position:relative;border:1px solid var(--line);padding:28px 22px;min-height:340px;
  display:flex;flex-direction:column;gap:18px;
  transform-style:preserve-3d;transition:border-color .4s,background .4s;will-change:transform;
  background:#080808;
}
.prog-card:hover{border-color:#fff;background:#0d0d0d}
.prog-num{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;color:var(--mute)}
.prog-card h3{font-family:'Archivo Black',sans-serif;font-size:clamp(28px,2.4vw,40px);line-height:1;letter-spacing:-.01em;text-transform:uppercase;margin-top:auto}
.prog-card p{font-size:14px;line-height:1.5;color:#bcbcbc}
.prog-arrow{align-self:flex-end;font-size:32px;line-height:1;transition:transform .4s var(--easing)}
.prog-card:hover .prog-arrow{transform:translate(6px,-6px)}
@media (max-width:1000px){ .programs-grid{grid-template-columns:repeat(2,1fr)} .programs-head{grid-template-columns:1fr} }
@media (max-width:540px){ .programs-grid{grid-template-columns:1fr} }

/* ============ COMING SOON ============ */
.soon{
  position:relative;min-height:100vh;display:grid;place-items:center;
  padding:clamp(60px,8vw,120px) clamp(20px,3vw,40px);overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.soon-bg{position:absolute;inset:-8% -2%;z-index:0;will-change:transform;overflow:hidden}
.soon-bg img,
.soon-bg video{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(.85);
  transform:scale(1.02);
}
.soon-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,0,0,.05) 0,rgba(0,0,0,.45) 70%,rgba(0,0,0,.75) 100%);z-index:1;pointer-events:none}
.soon-content{position:relative;z-index:2;text-align:center;max-width:1100px}
.soon-pill{
  display:inline-block;padding:8px 18px;border:1px solid #fff;border-radius:0;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  margin-bottom:32px;
}
.soon-title{font-family:'Archivo Black',sans-serif;font-size:clamp(64px,14vw,220px);line-height:.85;letter-spacing:-.03em;text-transform:uppercase}
.soon-title .line{display:block;overflow:hidden}
.soon-title .italic{color:#fff}
.soon-title .outline{color:#fff;opacity:.55}
.soon-sub{margin:24px auto 32px;max-width:520px;font-size:16px;color:#cfcfcf;line-height:1.55}
.btn-primary{
  display:inline-flex;align-items:center;gap:12px;padding:16px 28px;
  background:#fff;color:#000;border-radius:0;
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  transition:transform .4s var(--easing),background .4s;
}
.btn-primary:hover{transform:translateY(-3px)}
.btn-primary svg{width:14px;height:14px}
.btn-primary.ghost{background:transparent;color:#fff;border:1px solid #fff}
.btn-primary.ghost:hover{background:#fff;color:#000}
.soon-countdown{display:flex;justify-content:center;gap:clamp(16px,3vw,40px);margin-top:48px}
.soon-countdown > div{text-align:center;min-width:80px}
.soon-countdown b{display:block;font-family:'Archivo Black',sans-serif;font-size:clamp(34px,4.5vw,64px);line-height:1}
.soon-countdown span{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mute)}

/* ============ RUN ============ */
.run{
  display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,5vw,80px);
  padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px);align-items:center;
}
.run-media{aspect-ratio:3/4;overflow:hidden;border:1px solid var(--line-2);transform-style:preserve-3d;will-change:transform}
.run-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:transform .8s var(--easing)}
.run-media:hover img{transform:scale(1.05)}
.run-copy h2{font-family:'Archivo Black',sans-serif;font-size:clamp(56px,9vw,140px);line-height:.9;letter-spacing:-.025em;text-transform:uppercase;margin-bottom:24px}
.run-copy h2 em{color:#fff;opacity:.55}
.run-q{font-family:'Space Mono',monospace;font-size:14px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;color:#cfcfcf}
.run-q b{color:#fff}
.run-copy > p{font-size:17px;line-height:1.55;color:#cfcfcf;max-width:46ch;margin-bottom:32px}
@media (max-width:900px){ .run{grid-template-columns:1fr} }

/* ============ MEGASTACK ============ */
.megastack{padding:60px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:#050505}
.mega-row{
  display:flex;align-items:center;gap:clamp(20px,3vw,80px);white-space:nowrap;
  font-family:'Archivo Black',sans-serif;font-size:clamp(60px,11vw,160px);line-height:1;letter-spacing:-.02em;text-transform:uppercase;
  will-change:transform;padding-left:24px;
}
.mega-row.reverse{justify-content:flex-end;padding-right:24px;padding-left:0}
.mega-row .outline{color:#fff;opacity:.55}

/* ============ JOIN ============ */
.join{padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px);text-align:center;border-top:1px solid var(--line)}
.join-num{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;color:var(--mute);margin-bottom:24px}
.join-title{font-family:'Archivo Black',sans-serif;font-size:clamp(72px,16vw,260px);line-height:.85;letter-spacing:-.03em;text-transform:uppercase}
.join-title .italic{color:var(--mute);font-style:normal}
.join-title .outline{color:#fff;opacity:.55}
.join-title .line{display:block;overflow:hidden}
.join-sub{margin:24px auto 32px;max-width:480px;color:#cfcfcf}
.join-form{display:flex;flex-direction:column;gap:10px;max-width:520px;margin:0 auto;position:relative}
.join-form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.join-form input{background:transparent;border:1px solid var(--line-2);padding:18px 22px;color:#fff;font:inherit;outline:none;border-radius:0;transition:border-color .3s}
.join-form input:focus{border-color:#fff}
.join-form input::placeholder{color:var(--mute)}
.join-form button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:18px 24px;background:#fff;color:#000;border-radius:0;
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  transition:transform .35s var(--easing);
}
.join-form button svg{width:14px;height:14px}
.join-form button:hover{transform:translateY(-2px)}
.join-form .fb{margin-top:6px;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.18em;color:#fff;text-transform:uppercase;opacity:0;transition:opacity .4s;text-align:center}
.join-form.ok .fb{opacity:1}
.join-form.ok input,.join-form.ok button{opacity:.4;pointer-events:none}
@media (max-width:540px){ .join-form .row{grid-template-columns:1fr} }

/* ============ FOOTER ============ */
.foot{padding:clamp(16px,2vw,32px) clamp(20px,3vw,40px) 24px;border-top:1px solid var(--line);position:relative;overflow:hidden}
.foot-top{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:start;margin-bottom:48px}
.foot-logo{width:64px;height:64px;border:1px solid var(--line-2)}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.foot-cols h4{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.foot-cols p{font-size:14px;line-height:1.6}
.foot-cols a{border-bottom:1px solid transparent;transition:border-color .3s}
.foot-cols a:hover{border-color:#fff}
.foot-mega{
  display:block;width:100%;height:auto;margin:0 0 24px;
}
.bridge-img{
  display:block;width:100vw;margin:0 calc(50% - 50vw);padding:0;
}
.bridge-img img{
  display:block;width:100%;height:auto;object-fit:cover;
}
.bridge-img + .pricing{border-top:0}
.foot-bot{display:flex;justify-content:space-between;gap:16px;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}

@media (max-width:780px){
  .foot-top{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:1fr 1fr}
}

/* ============ REVEAL ============ */
.line-reveal{display:block;overflow:hidden}
.line-reveal > *{display:inline-block;will-change:transform;transform:translateY(110%)}

/* ============ MINIMAL HELPERS ============ */
.num{display:inline-block;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;color:var(--mute);margin-bottom:18px}

/* ============ PILLARS ============ */
.pillars{position:relative; isolation:isolate; overflow:hidden; padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px)}
.pillars-bg{position:absolute; inset:0; z-index:-2; overflow:hidden}
.pillars-bg .bg-video{width:100%; height:100%; object-fit:cover; display:block}
.pillars-overlay{position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.65) 50%, rgba(0,0,0,.85) 100%)}
.pillars-head{position:relative; display:flex;flex-direction:column;align-items:flex-start;margin-bottom:64px;max-width:1200px}
.pillars-head h2{font-family:'Archivo Black',sans-serif;font-size:clamp(48px,8vw,140px);line-height:.92;letter-spacing:-.025em;text-transform:uppercase}
.pillars-head em{color:var(--mute);opacity:1;font-style:normal}

/* Force white period inside gray italic span (join title) */
.join-title .italic .dot-w{color:#fff}
.pillars-grid{position:relative; display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.pill{
  background:rgba(0,0,0,.55); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:48px 32px;min-height:300px;
  display:flex;flex-direction:column;gap:24px;
  transition:background .4s,transform .6s var(--easing);
  will-change:transform;
}
.pill:hover{background:rgba(12,12,12,.7)}
.pill-num{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;color:var(--mute)}
.pill h3{font-family:'Archivo Black',sans-serif;font-size:clamp(28px,3vw,48px);line-height:1;letter-spacing:-.01em;text-transform:uppercase;margin-top:auto}
.pill p{font-size:15px;line-height:1.5;color:#bcbcbc;max-width:34ch}
@media (max-width:900px){ .pillars-grid{grid-template-columns:1fr} }

/* ============ BIG IMAGE ============ */
.bigimage{
  position:relative;min-height:90vh;display:grid;place-items:center;
  padding:clamp(40px,6vw,80px) clamp(20px,3vw,40px);overflow:hidden;
  background:#000;
}
.bigimage > *:not(.bigimage-media){position:relative;z-index:2}
.bigimage-media{
  position:absolute;inset:0;z-index:0;overflow:hidden;
  will-change:transform;
}
.bigimage-media img,
.bigimage-media video{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(.85);
}
.bigimage-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.45))}
.bigimage-title{
  position:relative;z-index:2;text-align:center;
  font-family:'Archivo Black',sans-serif;font-size:clamp(72px,16vw,260px);
  line-height:.85;letter-spacing:-.03em;text-transform:uppercase;
  mix-blend-mode:difference;color:#fff;
}
.bigimage-title .line{display:block;overflow:hidden}
.bigimage-title .italic{color:#fff}
.bigimage-title .outline{color:#fff;opacity:.55}

/* ============ REVEAL ============ */
.line-reveal{display:block;overflow:hidden}
.line-reveal > *{display:inline-block;will-change:transform;transform:translateY(110%)}

/* ============ SCHEDULE / CALENDAR ============ */
.sched{
  --cell-h: 64px;
  --time-w: 88px;
  background:#070707;
  padding:clamp(18px,2.5vw,32px);
  display:flex;flex-direction:column;gap:24px;
}
.sched-bar{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  flex-wrap:wrap;
}
.sched-tabs{
  display:flex;gap:6px;flex-wrap:nowrap;
  padding:6px;border:1px solid var(--line);border-radius:0;background:#0a0a0a;
}
.sched-tab{
  flex:1;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:10px 18px;border-radius:0;color:#cfcfcf;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;transition:color .3s,background .3s,transform .3s var(--easing);
  white-space:nowrap;
}
.sched-tab .t-num{opacity:.5;font-size:10px}
.sched-tab:hover{color:#fff}
.sched-tab.is-active{background:#fff;color:#000}
.sched-tab.is-active .t-num{opacity:.5}
.sched-cities{
  display:inline-flex;gap:6px;padding:6px;
  border:1px solid var(--line);background:#0a0a0a;
}
.sched-city{
  appearance:none;background:transparent;border:0;cursor:pointer;
  padding:10px 18px;color:#cfcfcf;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;white-space:nowrap;
  transition:color .3s,background .3s,transform .3s var(--easing);
}
.sched-city:hover{color:#fff}
.sched-city.is-active{background:#fff;color:#000}

.sched-grid-wrap{position:relative}
.sched-soon{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  z-index:5;text-align:center;padding:20px;
}
.sched-soon[hidden]{display:none}
.sched-soon-inner{max-width:520px;display:flex;flex-direction:column;align-items:center;gap:14px}
.sched-soon-pill{
  display:inline-block;padding:6px 14px;border:1px solid var(--line-2);
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.28em;
  text-transform:uppercase;color:#fff;background:#0a0a0a;
}
.sched-soon h4{
  margin:0;font-family:'Druk Wide',sans-serif;font-size:clamp(28px,5vw,52px);
  letter-spacing:.04em;text-transform:uppercase;color:#fff;
}
.sched-soon p{margin:0;color:var(--mute);font-size:14px;letter-spacing:.04em}

.sched-head{display:flex;flex-direction:column;gap:10px}
.sched-pill{
  align-self:flex-start;display:inline-block;padding:6px 14px;
  border:1px solid var(--line-2);border-radius:0;
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--mute);
}
.sched-head h3{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(40px,6vw,96px);line-height:.95;letter-spacing:-.02em;
  text-transform:uppercase;
}
.sched-head p{font-size:15px;line-height:1.55;color:#cfcfcf;max-width:60ch}

.sched-grid-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:4px;touch-action:pan-x;overscroll-behavior-y:none}
.sched-grid{
  display:grid;
  grid-template-columns: var(--time-w) repeat(6, minmax(140px, 1fr));
  gap:6px;min-width:880px;
}
.sched-grid .h{
  position:sticky;top:0;background:#070707;
  padding:14px 10px;text-align:center;
  border:1px solid var(--line);
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:#fff;
}
.sched-grid .h.h-time{background:transparent;border-color:transparent}
.sched-grid .t{
  display:flex;align-items:center;justify-content:flex-end;
  padding:0 12px;color:var(--mute);
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.2em;
  border-right:1px solid var(--line);min-height:var(--cell-h);
}
.sched-grid .c{
  position:relative;min-height:var(--cell-h);
  display:flex;align-items:stretch;gap:4px;flex-direction:column;
}
.sched-grid .c.empty{background:transparent}
.sched-grid .cls{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:10px 8px;
  background:#fff;color:#000;border:1px solid #fff;
  font-family:'Archivo Black',sans-serif;font-size:12px;letter-spacing:.04em;
  text-transform:uppercase;line-height:1.05;
  transition:transform .35s var(--easing),background .3s,color .3s,box-shadow .3s;
  cursor:pointer;will-change:transform;
}
.sched-grid .cls:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 30px rgba(255,255,255,.18);
}
.sched-grid .cls .pre{
  display:block;font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.2em;
  color:#000;opacity:.6;margin-bottom:4px;font-weight:400;
}
.sched-grid .cls.closed{background:#0a0a0a;color:#fff;border-color:var(--line-2)}
.sched-grid .cls.open{background:#0a0a0a;color:#fff;border-color:var(--line-2)}
/* Discipline accents (left bar) */
.sched-grid .cls{border-left:3px solid #fff}
.sched-grid .cls.cat-strike{border-left-color:#fff}
.sched-grid .cls.cat-grap{border-left-color:#bdbdbd}
.sched-grid .cls.cat-cond{border-left-color:#8a8a8a}
.sched-grid .cls.cat-kids{border-left-color:#5a5a5a}
.sched-grid .cls.cat-strike:hover{background:#fff;color:#000;border-color:#fff}
.sched-grid .cls.cat-grap:hover{background:#bdbdbd;color:#000;border-color:#bdbdbd}
.sched-grid .cls.cat-cond:hover{background:#8a8a8a;color:#000;border-color:#8a8a8a}
.sched-grid .cls.cat-kids:hover{background:#5a5a5a;color:#fff;border-color:#5a5a5a}

.sched-foot{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:18px;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--mute);
}

@media (max-width:780px){
  .sched{--cell-h:56px;--time-w:64px}
  .sched-grid .cls{font-size:11px;padding:8px 6px}
}

/* ============ PROGRAM ROWS ============ */
.prog-stack{display:flex;flex-direction:column;gap:clamp(40px,8vw,140px)}
.prog-row{
  display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,5vw,80px);
  align-items:center;
}
.prog-row.reverse{grid-template-columns:1fr 1.1fr}
.prog-row.reverse .prog-media{order:2}
.prog-media{
  position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--line-2);
  transform-style:preserve-3d;will-change:transform;
}
.prog-media img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(.85);
  transition:transform 1.2s var(--easing),filter .6s var(--easing);
  transform:scale(1.08);
}
.prog-media:hover img{transform:scale(1.14);filter:grayscale(1) contrast(1.1) brightness(1)}
.prog-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.55));
  pointer-events:none;
}
.prog-text h3{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(48px,7vw,120px);line-height:.9;letter-spacing:-.025em;
  text-transform:uppercase;margin:14px 0 18px;
}
.prog-text .prog-tags{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;color:#fff;margin-bottom:18px;
}
.prog-text p{font-size:17px;line-height:1.6;color:#cfcfcf;max-width:46ch}
@media (max-width:900px){
  .prog-row,.prog-row.reverse{grid-template-columns:1fr}
  .prog-row.reverse .prog-media{order:0}
}

/* ============ PRICING ============ */
.pricing{
  padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px);
  border-top:1px solid var(--line);position:relative;overflow:hidden;
}
.pricing-head{max-width:1200px;margin-bottom:64px}
.pricing-head h2{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(48px,8vw,140px);line-height:.92;letter-spacing:-.025em;
  text-transform:uppercase;
}
.pricing-head em{
  color:var(--mute);opacity:1;font-style:normal;
}
.pricing-sub{
  margin-top:18px;font-family:'Space Mono',monospace;font-size:13px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--mute);
}
.pricing-grid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(18px,3vw,40px);
}
.price-card{
  position:relative;background:#070707;border:1px solid var(--line);
  padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;gap:28px;
  transition:border-color .4s,background .4s,transform .6s var(--easing);
  will-change:transform;
}
.price-card:hover{border-color:#fff;background:#0c0c0c}
.price-card--main{background:#0b0b0b;border-color:rgba(255,255,255,.22)}
.price-card-head{display:flex;flex-direction:column;gap:14px}
.price-tag{
  align-self:flex-start;display:inline-block;padding:8px 16px;
  border:1px solid #fff;border-radius:0;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.3em;
  text-transform:uppercase;
}
.price-card h3{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(36px,4.5vw,72px);line-height:.95;letter-spacing:-.02em;
  text-transform:uppercase;
}
.price-disciplines{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.18em;
  line-height:1.9;text-transform:uppercase;color:#cfcfcf;
}
.price-list{list-style:none;display:flex;flex-direction:column}
.price-list li{
  display:flex;justify-content:space-between;align-items:baseline;gap:18px;
  padding:18px 0;border-top:1px solid var(--line);
  font-family:'Space Mono',monospace;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;
}
.price-list li:last-child{border-bottom:1px solid var(--line)}
.price-list li span{color:#cfcfcf;flex:1}
.price-list li em{font-style:normal;color:var(--mute);text-transform:none;font-size:11px;letter-spacing:.1em;margin-left:6px}
.price-list li b{
  font-family:'Archivo Black',sans-serif;font-weight:400;
  font-size:clamp(20px,2vw,28px);letter-spacing:-.01em;color:#fff;
  white-space:nowrap;
}
.price-card .btn-primary{align-self:flex-start;margin-top:auto}
.pricing-note{
  margin-top:120px;padding:24px 16px 8px;text-align:center;
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--mute);line-height:1.6;
}
@media (max-width:900px){
  .pricing-grid{grid-template-columns:1fr}
  .price-list li{flex-wrap:wrap}
}

/* ============ IMG REVEAL CLIP ============ */
.reveal-img{clip-path:inset(0 0 100% 0)}

/* ============ EMPHASIS ============ */
.neon-text{color:#fff;font-weight:700;letter-spacing:.01em}

/* ============ HAIRLINE RULE ============ */
.rule{
  border:0;height:1px;margin:0;width:100%;
  background:rgba(255,255,255,.12);
}

/* ============ LOCATION / MAP ============ */
.location{
  padding:clamp(80px,10vw,160px) clamp(20px,3vw,40px);
  position:relative;
}
.location-head{max-width:1200px;margin-bottom:48px}
.location-head h2{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(48px,8vw,140px);line-height:.92;letter-spacing:-.025em;
  text-transform:uppercase;
}
.location-head em{
  color:var(--mute);opacity:1;font-style:normal;
}
.location-sub{
  margin-top:14px;font-family:'Space Mono',monospace;font-size:13px;
  letter-spacing:.22em;text-transform:uppercase;color:var(--mute);
}
.location-grid{
  display:grid;grid-template-columns:1fr;gap:clamp(18px,2.5vw,40px);
  align-items:stretch;
}
.location-info{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media (max-width:900px){.location-info{grid-template-columns:1fr}}
.loc-card{
  position:relative;background:#070707;border:1px solid var(--line);
  padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:18px;
  transition:border-color .4s,background .4s;
  overflow:hidden;
}
.loc-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--neon);box-shadow:var(--neon-glow);opacity:.55;
}
.loc-card:hover{border-color:rgba(255,255,255,.5)}
.loc-card h3{
  font-family:'Archivo Black',sans-serif;
  font-size:clamp(28px,3.4vw,52px);line-height:.95;letter-spacing:-.02em;
  text-transform:uppercase;
}
.loc-card p{font-size:15px;line-height:1.55;color:#cfcfcf}
.loc-addr{font-size:14px;color:#fff}
.loc-tag{
  align-self:flex-start;padding:6px 14px;border-radius:0;
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;
}
.neon-tag{
  border:1px solid var(--neon);color:#fff;
  text-shadow:0 0 8px rgba(255,255,255,.6);
  box-shadow:inset 0 0 12px rgba(255,255,255,.18),0 0 12px rgba(255,255,255,.25);
}
.loc-meta{list-style:none;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.loc-meta li{
  display:flex;justify-content:space-between;gap:14px;padding:12px 0;
  border-bottom:1px solid var(--line);
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;
}
.loc-meta li span{color:var(--mute)}
.loc-meta li b{color:#fff;font-weight:400}
.loc-card .btn-primary{align-self:flex-start;margin-top:auto}


/* ============ MOBILE OVERRIDES ============ */
@media (max-width:780px){
  body{cursor:auto}
  #cursor{display:none}

  /* loader */
  .loader-logo-img{width:min(60vw,260px)}
  .loader-bar{width:70vw}

  /* nav */
  .nav{padding:14px 18px}
  .nav-logo img{width:88px;height:88px}

  /* hero */
  .hero{
    min-height:100svh;
    padding:88px 18px 28px;
    grid-template-rows:1fr auto;
    place-items:center;
    text-align:center;
  }
  .hero-bg{inset:0}
  .hero-bg img,.hero-bg video{transform:scale(1.02)}
  .hero-bg::after{background:linear-gradient(180deg,rgba(0,0,0,.25) 0,rgba(0,0,0,.15) 35%,rgba(0,0,0,.65) 85%,#000 100%)}
  .hero-title{
    font-size:clamp(64px,16vw,120px);
    align-self:center;
    justify-self:center;
    text-align:center;
    width:100%;
  }
  .hero-title .line{text-align:center}
  .hero-title .line:nth-child(2){padding-left:0}
  .hero-foot{
    align-self:end;justify-self:stretch;
    padding-top:18px;gap:14px;
    flex-direction:column;align-items:stretch;
    text-align:center;
  }
  .hero-tag{font-size:11px;letter-spacing:.16em;text-align:center}
  .hero-foot .btn-primary{width:100%;justify-content:center;padding:16px 22px}

  /* ticker */
  .ticker{height:36px;font-size:10px;letter-spacing:.24em}

  /* pillars */
  .pillars{padding:60px 18px}
  .pillars-head{margin-bottom:32px}
  .pillars-head h2{font-size:clamp(40px,11vw,72px)}
  .pillars-grid{grid-template-columns:1fr;border:0;background:transparent;gap:0}
  .pill{min-height:auto;padding:28px 22px;border-top:1px solid var(--line)}
  .pill:last-child{border-bottom:1px solid var(--line)}
  .pill h3{font-size:26px}

  /* big image */
  .bigimage{min-height:60vh;padding:40px 18px}
  .bigimage-media{inset:6%}
  .bigimage-title{font-size:clamp(56px,15vw,96px)}

  /* programs / schedule */
  .programs{padding:60px 18px}
  .programs-head{grid-template-columns:1fr;margin-bottom:28px}
  .programs-head h2{font-size:clamp(40px,11vw,72px)}
  .sched{padding:16px;gap:18px}
  .sched-bar{flex-direction:column;align-items:stretch;gap:14px}
  .sched-tabs{
    padding:5px;flex-wrap:nowrap;width:100%;
    border-radius:0;
  }
  .sched-tab{padding:9px 8px;font-size:9px;letter-spacing:.12em;flex:1;min-width:0;overflow:hidden}
  .sched-tab .t-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sched-tab .t-num{display:none}
  .sched-cities{align-self:flex-start;padding:5px}
  .sched-city{padding:9px 14px;font-size:9px;letter-spacing:.12em}
  .sched-head h3{font-size:clamp(34px,9vw,52px)}
  .sched-head p{font-size:14px}
  .sched-grid{
    grid-template-columns: 56px repeat(6, 110px);
    min-width:0;gap:4px;
  }
  .sched-grid .h{padding:10px 4px;font-size:9px;letter-spacing:.16em}
  .sched-grid .t{font-size:10px;padding:0 8px;letter-spacing:.14em}
  .sched-grid .cls{font-size:10px;padding:8px 4px;line-height:1.05}
  .sched-grid .cls .pre{font-size:8px}
  .sched-foot{flex-direction:column;align-items:flex-start;gap:14px;font-size:10px}
  .sched-foot .btn-primary{width:100%;justify-content:center}

  /* pricing */
  .pricing{padding:60px 18px}
  .pricing-head{margin-bottom:28px}
  .pricing-head h2{font-size:clamp(40px,11vw,72px)}
  .pricing-sub{font-size:11px}
  .pricing-grid{gap:14px}
  .price-card{padding:24px 20px;gap:20px}
  .price-card h3{font-size:30px}
  .price-disciplines{font-size:11px;letter-spacing:.14em;line-height:1.8}
  .price-list li{font-size:11px;letter-spacing:.1em;padding:14px 0;gap:10px}
  .price-list li b{font-size:18px}
  .price-card .btn-primary{width:100%;justify-content:center}
  .pricing-note{font-size:10px;margin-top:80px;padding:20px 14px 8px}

  /* soon */
  .soon{
    min-height:80svh;padding:60px 24px;
    place-items:center;text-align:center;
  }
  .soon-content{
    width:100%;max-width:100%;margin:0 auto;
    padding:0 6px;
    display:flex;flex-direction:column;align-items:center;
    text-align:center;
  }
  .soon-pill{margin:0 auto 20px;font-size:10px}
  .soon-title{
    font-size:clamp(44px,13vw,96px);text-align:center;width:100%;
    margin:0 auto;letter-spacing:-.02em;
  }
  .soon-title .line{text-align:center;display:block;width:100%}
  .soon-countdown{
    gap:14px;margin:28px auto 24px;flex-wrap:wrap;
    justify-content:center;width:100%;
  }
  .soon-countdown > div{min-width:64px;flex:0 0 auto}
  .soon-countdown b{font-size:32px}
  .soon-countdown span{font-size:9px}
  .soon-content .btn-primary{width:auto;align-self:center;justify-content:center;margin:0 auto}

  /* run */
  .run{grid-template-columns:1fr;padding:60px 18px;gap:28px}
  .run-media{aspect-ratio:4/5}
  .run-copy h2{font-size:clamp(48px,14vw,80px)}
  .run-copy > p{font-size:15px}
  .run-copy .btn-primary{width:100%;justify-content:center}

  /* location */
  .location{padding:60px 18px}
  .location-head{margin-bottom:28px}
  .location-head h2{font-size:clamp(40px,11vw,72px)}
  .location-sub{font-size:11px}
  .loc-card{padding:22px 20px;gap:16px}
  .loc-card h3{font-size:28px}
  .loc-card .btn-primary{width:100%;justify-content:center}

  /* join */
  .join{padding:60px 18px}
  .join-title{font-size:clamp(40px,12vw,80px)}
  .join-sub{font-size:14px}
  .join-form input,.join-form button{padding:16px 20px;font-size:13px}
  .join-form .row{grid-template-columns:1fr;gap:10px}

  /* footer */
  .foot{padding:16px 18px 20px}
  .foot-mega{font-size:clamp(48px,14vw,84px);margin:0 0 12px}
  .foot-bot{flex-direction:column;gap:10px;font-size:10px;text-align:center}
  .foot-bot span{width:100%;text-align:center}
}

@media (max-width:380px){
  .sched-grid{grid-template-columns: 48px repeat(6, 96px)}
  .soon{padding:60px 20px}
  .soon-title{font-size:clamp(38px,12.5vw,72px)}
  .soon-countdown > div{min-width:54px}
  .soon-countdown b{font-size:26px}
}

/* ============================================
   STICKY FAB — RÉSERVER UNE SÉANCE
============================================ */
.fab-book{
  position:fixed; right:22px; bottom:25vh; top:auto; z-index:80;
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 22px; border-radius:0;
  background:#fff; color:#000; border:1px solid #fff;
  font-family:inherit; font-weight:700; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  cursor:pointer; box-shadow:0 12px 36px rgba(0,0,0,.45), 0 0 18px rgba(255,255,255,.18);
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.fab-book svg{width:18px;height:18px}
.fab-book:hover{transform:translateY(-2px) scale(1.02); box-shadow:0 18px 48px rgba(0,0,0,.55), 0 0 28px rgba(255,255,255,.28)}
.fab-book:active{transform:translateY(0) scale(.98)}
@media (max-width:640px){
  .fab-book{right:14px; bottom:25vh; top:auto; padding:12px 18px; font-size:12px; border-radius:0}
  .fab-book svg{width:16px;height:16px}
}

/* ============================================
   BOOKING MODAL
============================================ */
.booking{position:fixed; inset:0; z-index:120; opacity:0; pointer-events:none; transition:opacity .35s ease}
.booking.is-open{opacity:1; pointer-events:auto}
.booking-overlay{position:absolute; inset:0; background:rgba(0,0,0,.78); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px)}
.booking-sheet{
  position:relative; max-width:1100px; width:calc(100% - 32px);
  margin:4vh auto; max-height:92vh; overflow:auto;
  background:#0a0a0a; border:1px solid rgba(255,255,255,.10);
  border-radius:0; padding:32px 40px 24px;
  transform:translateY(20px) scale(.98); transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.booking.is-open .booking-sheet{transform:none}

.booking-top{display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:8px}
.booking-top-l h2{font-size:28px; font-weight:600; letter-spacing:-.01em; margin:0}
.booking-top-r{display:flex; align-items:center; gap:10px}

.booking-filters{display:flex; gap:8px}
.bk-filter{position:relative; display:inline-block}
.bk-filter-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 14px; border-radius:0;
  background:transparent; color:#fff; border:1px solid rgba(255,255,255,.22);
  font:inherit; font-size:12px; cursor:pointer;
}
.bk-filter-btn svg{width:14px;height:14px;opacity:.8}
.bk-filter-btn:hover{border-color:rgba(255,255,255,.45)}
.bk-filter-menu{
  position:absolute; top:calc(100% + 8px); right:0; min-width:200px;
  list-style:none; padding:6px; margin:0;
  background:#0c0c0c; border:1px solid rgba(255,255,255,.14); border-radius:0;
  display:none; flex-direction:column; gap:2px; z-index:5;
}
.bk-filter.is-open .bk-filter-menu{display:flex}
.bk-filter-menu li{padding:9px 12px; border-radius:0; font-size:13px; color:#fff; cursor:pointer; text-align:left}
.bk-filter-menu li:hover{background:rgba(255,255,255,.08)}
.bk-filter-menu li.is-active{background:rgba(255,255,255,.12)}

.bk-close{
  width:38px; height:38px; border-radius:0;
  background:transparent; color:#fff; border:1px solid rgba(255,255,255,.18);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s ease, border-color .2s ease;
}
.bk-close:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.45)}
.bk-close svg{width:16px;height:16px}

.bk-city{display:flex; flex-direction:column; gap:10px; margin:18px 0 8px; padding:14px 0; border-top:1px solid rgba(255,255,255,.10); border-bottom:1px solid rgba(255,255,255,.10)}
.bk-city-lb{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.bk-city-opts{display:flex; gap:8px; flex-wrap:wrap}
.bk-city-btn{
  padding:10px 18px; border-radius:0; background:transparent; color:#fff;
  border:1px solid rgba(255,255,255,.22); font:inherit; font-size:13px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.bk-city-btn:hover{border-color:rgba(255,255,255,.55)}
.bk-city-btn.is-active{background:#fff; color:#000; border-color:#fff}

.booking-month{display:flex; justify-content:space-between; align-items:center; margin:18px 0 14px}
.booking-month #bkMonth{font-size:13px; color:rgba(255,255,255,.55); letter-spacing:.04em}
.bk-full{
  display:inline-flex; align-items:center; gap:8px;
  background:transparent; color:#fff; border:none; cursor:pointer;
  font:inherit; font-size:13px;
}
.bk-full svg{width:16px;height:16px;opacity:.85}
.bk-full:hover{color:#fff}

.booking-strip{display:flex; align-items:center; gap:10px; margin-bottom:18px}
.bk-nav{
  flex-shrink:0; width:28px; height:28px; border-radius:0;
  background:transparent; color:rgba(255,255,255,.55); border:none; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
.bk-nav:hover{color:#fff}
.bk-nav svg{width:16px;height:16px}

.bk-days{flex:1; display:grid; grid-template-columns:repeat(7,1fr); gap:6px}
.bk-day{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  background:transparent; border:none; cursor:pointer;
  color:rgba(255,255,255,.65); font:inherit;
}
.bk-day-lb{font-size:12px; letter-spacing:.02em; text-transform:lowercase}
.bk-day-num{
  width:48px; height:48px; border-radius:0;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.22); font-size:15px; font-weight:500; color:#fff;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.bk-day:hover .bk-day-num{border-color:rgba(255,255,255,.55)}
.bk-day.is-today .bk-day-lb{color:#fff}
.bk-day.is-active .bk-day-num{background:#fff; border-color:#fff; color:#000}
.bk-day.is-active .bk-day-lb{color:#fff}
.bk-day.is-closed .bk-day-num{opacity:.35; text-decoration:line-through}

.booking-selected{display:flex; align-items:baseline; gap:14px; padding:14px 0; border-top:1px solid rgba(255,255,255,.10); flex-wrap:wrap}
.booking-selected strong{font-size:15px; font-weight:600; color:#fff}
.bk-tz{font-size:12px; color:rgba(255,255,255,.45)}

.booking-classes{list-style:none; padding:0; margin:0; display:flex; flex-direction:column}
.bk-row{
  display:grid; grid-template-columns:120px 1fr 180px 140px; gap:16px;
  align-items:center; padding:18px 0; border-top:1px solid rgba(255,255,255,.08);
}
.bk-row:first-child{border-top:none}
.bk-time{font-size:15px; font-weight:600}
.bk-time .bk-dur{display:block; font-size:11px; color:rgba(255,255,255,.45); font-weight:400; margin-top:4px}
.bk-class-name{font-size:15px; font-weight:600; text-transform:uppercase; letter-spacing:.02em}
.bk-class-meta{font-size:13px; color:rgba(255,255,255,.55); margin-top:4px}
.bk-class-details{display:inline-flex; align-items:center; gap:4px; margin-top:8px; font-size:12px; color:#fff; background:none; border:none; cursor:pointer; padding:0}
.bk-class-details svg{width:12px;height:12px;transition:transform .2s ease}
.bk-class-details.is-open svg{transform:rotate(180deg)}
.bk-class-extra{display:none; margin-top:10px; padding:10px 12px; background:rgba(255,255,255,.04); border-radius:0; font-size:12px; color:rgba(255,255,255,.65); line-height:1.55}
.bk-class-extra.is-open{display:block}
.bk-location{font-size:13px; color:rgba(255,255,255,.55)}
.bk-cta{
  justify-self:end; padding:11px 24px; border-radius:0;
  background:#fff; color:#000; border:1px solid #fff;
  font:inherit; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  cursor:pointer; transition:background .2s ease, color .2s ease, transform .2s ease;
}
.bk-cta:hover{background:transparent; color:#fff; transform:translateY(-1px)}
.bk-empty{padding:48px 0; text-align:center; color:rgba(255,255,255,.5); font-size:14px}

.booking-foot{display:flex; align-items:center; justify-content:center; gap:8px; padding:24px 0 6px; color:rgba(255,255,255,.35); font-size:11px; letter-spacing:.06em; text-transform:uppercase}
.bk-brand{font-weight:700; color:rgba(255,255,255,.65)}

body.is-booking{overflow:hidden}

@media (max-width:880px){
  .booking-sheet{padding:22px 18px 18px; margin:2vh auto; width:calc(100% - 16px); max-height:96vh}
  .booking-top{flex-wrap:nowrap; align-items:center; gap:10px}
  .booking-top-l{flex:1 1 auto; min-width:0}
  .booking-top-l h2{font-size:18px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
  .booking-top-r{flex:0 0 auto; gap:6px}
  .bk-filter{min-width:0; max-width:42vw}
  .bk-filter-btn{padding:7px 10px; font-size:11px; max-width:100%}
  .bk-filter-lb{display:inline-block; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; vertical-align:bottom}
  .bk-day-num{width:40px; height:40px; font-size:13px}
  .bk-day-lb{font-size:11px}
  .bk-row{grid-template-columns:80px 1fr; gap:10px; padding:14px 0}
  .bk-location{grid-column:2; font-size:12px; margin-top:-6px}
  .bk-cta{grid-column:1 / -1; justify-self:stretch; text-align:center; padding:12px}
  .bk-time{font-size:14px}
  .bk-class-name{font-size:14px}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
