:root{
  --coal:var(--vg-black);--ash:#120a0a;--ash2:#1c0e0e;--bone:var(--vg-white);--blood:var(--vg-ring);--hot:var(--vg-red);--steel:#9a9094;
  --head:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--body:'Inter',system-ui,sans-serif;--rune:'Noto Sans Runic','Segoe UI Historic','Noto Sans Symbols',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--coal);color:var(--bone);font-family:var(--body);line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(1160px,100% - 40px);margin:0 auto}
.wrap.narrow{width:min(820px,100% - 40px)}

/* grain over everything */
body::after{content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--head);font-weight:800;font-size:1.15rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;
  padding:.8em 1.7em;border:2px solid transparent;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));cursor:pointer;transition:transform .15s,background .15s,color .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:var(--blood);color:#fff;box-shadow:0 0 0 0 rgba(239,43,54,.0)}
.btn-red:hover{background:var(--hot)}
.btn-ghost{border-color:rgba(236,230,218,.4);color:var(--bone);background:rgba(10,10,11,.4)}
.btn-ghost:hover{border-color:var(--bone);background:rgba(236,230,218,.08)}
.btn-light{background:var(--bone);color:var(--coal)}
.btn-light:hover{background:#fff}
.btn-sm{font-size:1rem;padding:.55em 1.2em}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;gap:24px;padding:12px max(20px,calc((100vw - 1160px)/2));
  background:linear-gradient(180deg,rgba(10,10,11,.92),rgba(10,10,11,0));transition:background .25s,backdrop-filter .25s}
.nav.solid{background:rgba(10,10,11,.88);backdrop-filter:blur(12px);border-bottom:1px solid rgba(236,230,218,.08)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--head);font-weight:800;font-size:1.5rem;letter-spacing:.06em}
.brand img{border-radius:50%;border:1px solid rgba(193,18,31,.6)}
.brand em{font-style:normal;color:var(--hot)}
.links{display:flex;gap:22px;margin-left:auto}
.links a{text-decoration:none;font-family:var(--head);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:1rem;color:var(--bone);opacity:.8;position:relative}
.links a:hover{opacity:1}
.links a::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:var(--hot);transition:width .2s}
.links a:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:14px}
.lang{display:flex;border:1px solid rgba(236,230,218,.3)}
.lang button{background:none;border:0;color:var(--steel);font-family:var(--head);font-weight:800;letter-spacing:.1em;padding:.35em .7em;cursor:pointer;font-size:.95rem}
.lang button[aria-pressed=true]{background:var(--bone);color:var(--coal)}

/* hero: calm group photo */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:#050304}
.hero-bg,.hero-bg img{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-bg img{object-fit:cover;object-position:50% 20%;transform-origin:50% 38%;animation:heroZoom 30s ease-out forwards}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.06)}}
.hero-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(5,3,4,.94) 0%,rgba(5,3,4,.72) 26%,rgba(5,3,4,0) 54%),linear-gradient(180deg,rgba(5,3,4,.62) 0%,rgba(5,3,4,0) 20%)}
.hero-copy{position:absolute;z-index:2;left:max(20px,calc((100vw - 1160px)/2));right:20px;bottom:clamp(28px,6vh,56px);max-width:900px}
.hero-copy .kicker{display:flex;align-items:center;gap:12px}
.hero-logo{width:44px;height:44px;mix-blend-mode:screen}
.kicker{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.28em;color:var(--hot);font-size:1rem;margin-bottom:.8rem}
.tagline{font-family:var(--head);font-weight:800;text-transform:uppercase;line-height:.88;font-size:clamp(2.8rem,6.2vw,5.6rem);letter-spacing:.01em;text-shadow:0 4px 40px rgba(0,0,0,.6)}
.tagline br{display:none}
.tagline b{color:var(--hot);font-weight:800}
.sub{max-width:60ch;margin:.7rem 0 1.2rem;color:rgba(236,230,218,.82);font-size:1.1rem}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px}
.facts{list-style:none;margin-top:1.4rem;display:grid;gap:.5rem;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:1.15rem}
.facts li::after{content:" ᛉ";font-family:var(--rune);color:var(--hot)}

/* marquee */
.marquee{overflow:hidden;background:var(--blood);color:var(--coal);border-block:2px solid #000;transform:rotate(-1deg) scale(1.02);position:relative;z-index:6;margin-block:-14px}
.marquee .track{display:flex;gap:2rem;width:max-content;padding:.6rem 0;animation:mq 28s linear infinite;font-family:var(--head);font-weight:800;font-size:1.9rem;letter-spacing:.14em}
.marquee b{font-family:var(--rune);font-weight:400;color:var(--coal);opacity:.6}
@keyframes mq{to{transform:translateX(-50%)}}

/* sections */
.section{padding:clamp(80px,12vw,150px) 0;position:relative}
.section.alt{background:var(--ash);background-image:linear-gradient(180deg,rgba(193,18,31,.06),transparent 30%)}
.eyebrow{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.3em;color:var(--hot);font-size:1rem;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:attr(data-rune)/"";font-family:var(--rune);font-weight:400;font-size:1.4rem;line-height:1;letter-spacing:0;color:var(--hot)}
.h2{font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:clamp(2.6rem,7vw,5.2rem);line-height:.95;margin:.4rem 0 1rem}
.lead{max-width:56ch;color:rgba(236,230,218,.75);font-size:1.15rem;margin-bottom:2.4rem}
.note{margin-top:1.6rem;color:var(--steel);font-size:.95rem;max-width:70ch}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:1.4rem}
.card{background:linear-gradient(160deg,var(--ash2),var(--ash));border:1px solid rgba(236,230,218,.08);padding:28px;display:flex;flex-direction:column;gap:14px;position:relative;
  clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);transition:transform .25s,border-color .25s}
.card:hover{transform:translateY(-6px);border-color:rgba(239,43,54,.6)}
.card .num{font-family:var(--head);font-weight:800;font-size:4rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(193,18,31,.8)}
.card h3{font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:2.2rem;line-height:1}
.card h3 small{font-size:1rem;color:var(--hot);letter-spacing:.1em;vertical-align:super;margin-left:.3em}
.card p{color:rgba(236,230,218,.75)}
.card ul{list-style:none;font-family:var(--head);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--bone);margin-top:auto}
.card .btn{align-self:flex-start;margin-top:6px}
.card-feature{background:linear-gradient(160deg,#3a0a0f,#1b0709);border-color:rgba(239,43,54,.35)}
.course{margin-top:40px;padding:30px;border:1px dashed rgba(239,43,54,.55);display:flex;gap:30px;justify-content:space-between;align-items:center;flex-wrap:wrap;background:rgba(193,18,31,.06)}
.course h3{font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:2rem;margin:.2rem 0 .4rem}
.course p{max-width:64ch;color:rgba(236,230,218,.8)}
.course-btns{display:flex;gap:12px;flex-wrap:wrap}

/* timetable */
.tt{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:18px;margin-top:2rem}
.tt-day{border-top:3px solid var(--blood);background:var(--coal);padding:24px}
.tt-day h3{font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:2rem;margin-bottom:12px}
.slot{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-top:1px solid rgba(236,230,218,.1);font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:1.7rem}
.slot time{color:var(--hot);min-width:3.4ch}
.tt-fri{border-top-color:var(--steel)}
.tt-fri p{color:rgba(236,230,218,.7)}

/* prices */
.tabs{display:flex;gap:8px;margin:1.6rem 0}
.tabs button{font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:1.15rem;padding:.6em 1.4em;background:transparent;color:var(--bone);border:2px solid rgba(236,230,218,.25);cursor:pointer}
.tabs button[aria-selected=true]{background:var(--blood);border-color:var(--blood)}
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.price-grid[hidden]{display:none}
.price{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--ash);border:1px solid rgba(236,230,218,.08);text-decoration:none;position:relative;transition:transform .2s,border-color .2s}
.price:hover{transform:translateY(-5px);border-color:var(--hot)}
.price .pl{font-family:var(--head);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);font-size:1.05rem;min-height:2.6em}
.price strong{font-family:var(--head);font-weight:800;font-size:3rem;line-height:1}
.price strong small{font-size:1.1rem;color:var(--steel);font-weight:700}
.price .tag{font-style:normal;font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;background:var(--bone);color:var(--coal);padding:.2em .7em;align-self:flex-start}
.price.best{background:linear-gradient(160deg,#4a0c12,#1b0709);border-color:var(--blood)}

/* coaches */
.coaches-intro{padding-bottom:40px}
.coach-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:2rem}
.coach{padding:28px;border-left:4px solid var(--blood);background:var(--ash)}
.coach h3{font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:2.4rem;line-height:1}
.coach .role{font-family:var(--head);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--hot);margin:.3rem 0 .8rem}
.coach p:not(.role){color:rgba(236,230,218,.78)}
.coach .social{display:inline-block;margin-top:1rem;font-family:var(--head);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bone);text-decoration:none;border-bottom:2px solid var(--hot)}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;gap:12px;margin-top:2rem}
.gallery figure{overflow:hidden;position:relative;background:var(--coal)}
.gallery img{width:100%;height:100%;object-fit:cover;filter:saturate(1.1) contrast(1.05);transition:transform .6s}
.gallery figure:hover img{transform:scale(1.06)}
.g1{grid-column:1/4;grid-row:1/6}.g4{grid-column:4/7;grid-row:1/3}.g2{grid-column:4/6;grid-row:3/6}.g3{grid-column:6/7;grid-row:3/6}.g3 img{object-position:38% 50%}
.gallery figcaption{position:absolute;z-index:2;left:14px;bottom:12px;font-family:var(--head);font-weight:800;font-size:1.05rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.8)}
.gallery figure::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(193,18,31,.25),transparent 50%);pointer-events:none}

/* gear */
.gear{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:2rem}
.gear div{padding:24px;border:1px solid rgba(236,230,218,.12);display:flex;flex-direction:column;gap:14px}
.gear b{font-family:var(--head);font-weight:800;font-size:3rem;line-height:1;color:var(--blood)}
.gear span{font-size:1.05rem}

/* faq */
details{border-bottom:1px solid rgba(236,230,218,.14)}
summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:1.5rem;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:2rem;color:var(--hot);transition:transform .2s}
details[open] summary::after{content:"\2013"}
details p{padding:0 40px 24px 0;color:rgba(236,230,218,.78);max-width:64ch}

/* find */
.find{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;align-items:center}
address{font-style:normal;font-family:var(--head);font-weight:700;font-size:1.8rem;line-height:1.2;text-transform:uppercase;margin:1.2rem 0}
address b{color:var(--hot)}
.contact{font-size:1.2rem;margin-bottom:1.6rem}
.contact a{text-decoration:none;border-bottom:1px solid var(--hot)}
.find-btns{display:flex;gap:12px;flex-wrap:wrap}
.map{height:min(460px,60vh);border:1px solid rgba(236,230,218,.15);position:relative}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.9) hue-rotate(180deg) saturate(1.6)}

/* footer */
.footer{border-top:2px solid var(--blood);padding:50px 0 100px;background:#050506}
.foot{display:flex;gap:30px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.foot-brand{display:flex;align-items:center;gap:16px;font-family:var(--head);font-weight:800;font-size:2rem;line-height:1.1;letter-spacing:.06em}
.foot-brand img{border-radius:50%}
.foot-brand em{font-style:normal;color:var(--hot)}
.foot-brand span{font-size:1rem;color:var(--steel);letter-spacing:.2em;text-transform:uppercase;font-weight:600}
.foot-links{display:flex;gap:22px;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:1.1rem}
.foot-links a{text-decoration:none;border-bottom:2px solid var(--blood)}
.copy{width:100%;color:var(--steel);font-size:.85rem}

.sticky-cta{display:none}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}

/* tablet and phone */
@media (max-width:980px){
  .links{display:none}
  .nav-right{margin-left:auto}
  .cards{grid-template-columns:1fr}
  .price-grid{grid-template-columns:1fr 1fr}
  .gear{grid-template-columns:1fr 1fr}
  .tt{grid-template-columns:1fr}
  .coach-grid,.find{grid-template-columns:1fr}
  .find{gap:30px}
}
@media (max-width:760px){
  .brand span{display:none}
  .hero{height:auto;min-height:0;display:flex;flex-direction:column;padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .hero-bg{position:relative;inset:auto;height:min(112vw,520px);flex:none}
  .hero-bg{-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,#000 62%,transparent 100%)}
  .hero-bg img{object-position:50% 30%}
  .hero-shade{background:linear-gradient(0deg,#050304 0%,rgba(5,3,4,.85) 18%,rgba(5,3,4,0) 42%),linear-gradient(180deg,rgba(5,3,4,.6) 0%,rgba(5,3,4,0) 16%);bottom:auto;height:min(112vw,520px)}
  .hero-copy{position:relative;left:auto;right:auto;bottom:auto;margin:-72px 20px 0}
  .tagline{font-size:clamp(3rem,15vw,4.6rem)}
  .tagline br{display:block}
  .hero-copy .sub{font-size:1rem;margin:.8rem 0 1.1rem}
  .nav .btn-sm{display:none}
  .facts{font-size:.95rem;letter-spacing:.06em;gap:.3rem}
  .facts li::after{content:none}
  .sub{font-size:1rem;margin:.8rem 0 1.1rem;max-width:30ch}
  .hero-btns .btn{font-size:1rem;padding:.7em 1.2em}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:130px;gap:8px}
  .g1{grid-column:1/3;grid-row:1/4}.g4{grid-column:1/3;grid-row:4/6}.g2{grid-column:1/2;grid-row:6/9}.g3{grid-column:2/3;grid-row:6/9}
  .gallery figcaption{font-size:.9rem;left:10px;bottom:8px}
  .price-grid{grid-template-columns:1fr}
  .gear{grid-template-columns:1fr}
  summary{font-size:1.25rem}
  .sticky-cta{display:flex;position:fixed;z-index:85;left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));align-items:center;justify-content:center;
    font-family:var(--head);font-weight:800;font-size:1.3rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;background:var(--blood);color:#fff;padding:.85em;
    box-shadow:0 8px 30px rgba(193,18,31,.5);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px))}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}

.slot time{flex:none}
.slot span{min-width:0;overflow-wrap:anywhere}

/* sign-up block: scroll-driven cut-out sequence */
.su-scene{position:relative;height:340vh;background:#000}
.su-scene .scene-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#000;isolation:isolate}
.su-back{position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 56% 46%,#a3121c 0%,#640b14 42%,#1c0407 78%,#050304 100%)}
.su-scene .stage{position:absolute;inset:-4%;transform-origin:50% 42%;will-change:transform;transform:translate3d(var(--sx,0),var(--sy,0),0) rotate(var(--sr,0deg)) scale(var(--ss,1))}
.su-scene .stage .frame{position:absolute;inset:0;opacity:0;will-change:opacity;display:block}
.su-scene .stage .frame:first-child{opacity:1}
.su-scene .stage img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.su-scene .stage .frame{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 14%);mask-image:linear-gradient(180deg,transparent 0,#000 14%)}
.su-fade{position:absolute;left:0;right:0;top:0;height:30%;pointer-events:none;background:linear-gradient(180deg,#000 0,rgba(0,0,0,.82) 18%,rgba(0,0,0,.45) 48%,rgba(0,0,0,.16) 78%,transparent 100%)}
.su-scene .grade,.su-scene .flash,.su-scene .vig,.su-scene .black{position:absolute;inset:0;pointer-events:none}
.su-scene .grade-a{background:radial-gradient(ellipse at 60% 45%,#a3121c 0%,#5a0a12 60%,#1c0407 100%);mix-blend-mode:multiply;opacity:.38}
.su-scene .grade-b{background:linear-gradient(180deg,rgba(193,18,31,.30),rgba(10,10,11,.35));mix-blend-mode:overlay}
.su-scene .flash{background:#ff4b55;opacity:0;mix-blend-mode:screen}
.su-scene .vig{inset:-30%;background:radial-gradient(ellipse at center,transparent 36%,rgba(0,0,0,.55) 58%,#000 84%);box-shadow:0 0 0 100vmax #000;transform:scale(var(--vs,1.35));will-change:transform}
.su-scene .black{background:#000;opacity:0}
.su-end{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none;will-change:opacity}
.su-end.live{pointer-events:auto}
.su-glow{position:absolute;width:min(170vw,1500px);aspect-ratio:1;background:radial-gradient(circle,rgba(239,43,54,.7) 0,rgba(214,32,44,.42) 14%,rgba(193,18,31,.2) 28%,rgba(193,18,31,.08) 42%,rgba(193,18,31,.02) 56%,transparent 70%);opacity:var(--lg,.35);transform:scale(var(--lgs,.9))}
.su-copy{position:relative;text-align:center;padding:0 22px;max-width:760px;transform:translateY(var(--cy,18px))}
.su-copy .eyebrow{justify-content:center}
.su-copy .lead{margin-left:auto;margin-right:auto;margin-bottom:2rem;color:rgba(236,230,218,.88)}
@media (max-width:760px){
  .su-scene{height:300vh}
  .su-scene .stage{inset:auto -10% -3% -10%;aspect-ratio:3/4;transform-origin:50% 38%}
  .su-scene .stage img{object-position:50% 50%}
  .su-scene .stage .frame{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%);mask-image:linear-gradient(180deg,transparent 0,#000 16%)}
  .su-copy .h2{font-size:clamp(2.4rem,13vw,3.6rem)}
}
@media (prefers-reduced-motion:reduce){.su-scene{height:300vh}}
.notice{position:fixed;top:0;left:0;right:0;z-index:95;background:var(--vg-red);color:#fff;text-align:center;font-weight:700;font-size:1.05rem;line-height:1.3;padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));padding-top:max(10px,env(safe-area-inset-top))}
body.has-notice .nav{top:var(--notice-h,0px)}
