: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}
