:root{
  --bg:#0f0d0c; --bg-2:#171412; --surface:#1e1a17; --line:rgba(240,230,220,.12);
  --text:#efe8df; --muted:#a89e93; --faint:#7a7068;
  --red:#c8202c; --red-hover:#e0303b; --gold:#c9a45c; --bone:#f3ede4; --ink:#141110;
  --font-display:'Clash Display','Satoshi',sans-serif; --font-body:'Satoshi','Inter',sans-serif;
  --text-xs:clamp(.75rem,.72rem + .15vw,.82rem); --text-sm:clamp(.875rem,.85rem + .15vw,.95rem);
  --text-base:clamp(1rem,.96rem + .2vw,1.075rem); --text-lg:clamp(1.15rem,1.05rem + .5vw,1.4rem);
  --text-xl:clamp(1.6rem,1.2rem + 1.6vw,2.4rem); --text-2xl:clamp(2.2rem,1.5rem + 3vw,3.8rem);
  --text-hero:clamp(2.8rem,1.4rem + 6vw,6.4rem);
  --wrap:min(1200px,100% - 2.5rem); --r-sm:4px; --r-md:8px; --r-lg:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.05;font-weight:600}
h1,h2{font-family:var(--font-display);letter-spacing:-.01em}
h3{font-size:var(--text-lg);font-weight:700;line-height:1.25}
p{margin:0}
.wrap{width:var(--wrap);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-weight:700}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.8rem 1.4rem;border-radius:var(--r-sm);font-weight:700;font-size:var(--text-sm);text-decoration:none;letter-spacing:.02em;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-hover)}
.btn-ghost{border-color:rgba(240,230,220,.3);color:var(--text);background:transparent}.btn-ghost:hover{border-color:var(--text)}
.btn-dark{background:var(--ink);color:var(--bone)}.btn-dark:hover{background:#000}

/* header */
.header{position:sticky;top:0;z-index:50;background:rgba(15,13,12,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:1rem}
.brand{display:flex;flex-direction:column;text-decoration:none;line-height:1}
.brand b{font-family:var(--font-display);font-size:1.35rem;letter-spacing:.14em;color:var(--text)}
.brand b span{color:var(--red)}
.brand small{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a{text-decoration:none;font-size:var(--text-sm);color:var(--muted);font-weight:500}
.nav a:hover{color:var(--text)}
.nav .btn{color:#fff;min-height:42px;padding:.55rem 1rem}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--text);width:44px;height:44px;border-radius:var(--r-sm);cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:inline-flex;align-items:center;justify-content:center}
  .nav{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:.5rem 1.25rem 1.25rem;display:none}
  .nav.open{display:flex}
  .nav a{padding:.85rem 0;border-bottom:1px solid var(--line);font-size:var(--text-base)}
  .nav .btn{margin-top:1rem;border:0}
}

/* hero */
.hero{position:relative;min-height:min(88vh,860px);display:flex;align-items:flex-end;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,13,12,.35) 0%,rgba(15,13,12,.55) 45%,rgba(15,13,12,.97) 100%),linear-gradient(90deg,rgba(15,13,12,.85) 0%,rgba(15,13,12,0) 70%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(6rem,14vh,10rem) clamp(3rem,7vh,5rem)}
.hero h1{font-size:var(--text-hero);max-width:14ch;margin-top:1rem;text-transform:uppercase;line-height:.95}
.hero h1 em{font-style:normal;color:var(--red)}
.hero p.lede{max-width:56ch;margin-top:1.5rem;font-size:var(--text-lg);color:#d9d0c6;line-height:1.5}
.hero .ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

.creds{border-block:1px solid var(--line);background:var(--bg-2)}
.creds ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.creds li{padding:1.4rem 1.25rem;border-left:1px solid var(--line)}
.creds li:first-child{border-left:0;padding-left:0}
.creds strong{display:block;font-family:var(--font-display);font-size:var(--text-xl);color:var(--text);line-height:1;font-weight:600}
.creds span{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.12em;display:block;margin-top:.5rem}
@media (max-width:860px){.creds ul{grid-template-columns:1fr 1fr}.creds li{border-left:0;padding-left:0;border-top:1px solid var(--line)}.creds li:nth-child(-n+2){border-top:0}.creds li:nth-child(even){padding-left:1rem;border-left:1px solid var(--line)}}

section{padding-block:clamp(4rem,9vw,7.5rem)}
.sec-head{max-width:720px;margin-bottom:clamp(2rem,4vw,3.5rem)}
.sec-head h2{font-size:var(--text-2xl);margin-top:.75rem}
.sec-head p{margin-top:1rem;color:var(--muted);font-size:var(--text-lg);line-height:1.5}

/* disciplines */
.disc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,2rem)}
.disc article{background:var(--surface);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.disc article img{aspect-ratio:16/10;object-fit:cover;width:100%}
.disc .body{padding:clamp(1.5rem,3vw,2.25rem);display:flex;flex-direction:column;gap:1rem;flex:1}
.disc h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600}
.disc ul{list-style:none;margin:.25rem 0 0;padding:0;display:grid;gap:0}
.disc li{padding:.7rem 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;font-size:var(--text-sm)}
.disc li span:last-child{color:var(--muted);white-space:nowrap}
.note{font-size:var(--text-xs);color:var(--faint);margin-top:auto}
@media (max-width:860px){.disc{grid-template-columns:1fr}}

/* story */
.story{background:var(--bone);color:var(--ink)}
.story .grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.story .eyebrow{color:var(--red)}
.story h2{font-size:var(--text-2xl);margin-top:.75rem}
.story .copy p{margin-bottom:1.1rem;color:#3a332e;max-width:62ch}
.story blockquote{margin:0;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.15;border-top:3px solid var(--red);padding-top:1.25rem;margin-top:1.5rem}
.record{margin-top:2rem;border-top:1px solid rgba(20,17,16,.15)}
.record div{display:grid;grid-template-columns:64px 1fr auto;gap:1rem;padding:.75rem 0;border-bottom:1px solid rgba(20,17,16,.12);font-size:var(--text-sm);align-items:baseline}
.record b{font-weight:700}.record em{font-style:normal;color:#6b625a}
.record .big{font-family:var(--font-display);font-size:1.15rem;font-weight:600}
@media (max-width:860px){.story .grid{grid-template-columns:1fr}}

/* membership */
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-items:stretch}
.plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:1rem;position:relative}
.plan.feat{border-color:var(--red);background:#241c19}
.plan .tag{position:absolute;top:-12px;left:1.5rem;background:var(--red);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.3rem .6rem;border-radius:var(--r-sm)}
.plan h3{font-size:var(--text-lg)}
.plan .for{font-size:var(--text-sm);color:var(--muted);min-height:3em}
.price{display:flex;align-items:baseline;gap:.35rem}
.price b{font-family:var(--font-display);font-size:2.6rem;font-weight:600;line-height:1}
.price span{color:var(--muted);font-size:var(--text-sm)}
.annual{font-size:var(--text-xs);color:var(--gold);margin-top:-.5rem}
.plan ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;font-size:var(--text-sm);flex:1}
.plan li{padding-left:1.3rem;position:relative;color:#d8cfc5}
.plan li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--red)}
.plan .btn{width:100%}
.plan-strip{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding:1.25rem 1.5rem;border:1px dashed rgba(201,164,92,.45);border-radius:var(--r-md);font-size:var(--text-sm)}
.plan-strip b{color:var(--gold)}
@media (max-width:1080px){.plans{grid-template-columns:1fr 1fr;row-gap:1.75rem}}
@media (max-width:620px){.plans{grid-template-columns:1fr}}

/* programs */
.programs{background:var(--bg-2)}
.prog-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(1rem,2.5vw,2rem)}
.prog-list{display:grid;gap:0}
.prog{display:grid;grid-template-columns:1fr auto;gap:.4rem 1.5rem;padding:1.5rem 0;border-top:1px solid var(--line)}
.prog:last-child{border-bottom:1px solid var(--line)}
.prog p{grid-column:1/-1;color:var(--muted);font-size:var(--text-sm);max-width:60ch}
.prog .p{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--text)}
.prog-img{border-radius:var(--r-lg);overflow:hidden;position:relative;min-height:320px}
.prog-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
@media (max-width:860px){.prog-grid{grid-template-columns:1fr}.prog-img{order:-1;min-height:240px}}

/* how */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;counter-reset:s}
.steps div{border-top:2px solid var(--red);padding-top:1.25rem}
.steps div::before{counter-increment:s;content:"0" counter(s);font-family:var(--font-display);color:var(--gold);font-size:var(--text-sm);letter-spacing:.1em}
.steps h3{margin:.6rem 0 .5rem}
.steps p{color:var(--muted);font-size:var(--text-sm)}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* faq */
.faq{max-width:820px}
.faq details{border-top:1px solid var(--line);padding:1.1rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:1rem;min-height:28px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--red);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:.75rem;color:var(--muted);max-width:68ch}

/* contact */
.contact{background:var(--red);color:#fff}
.contact .grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,4rem)}
.contact h2{font-size:var(--text-2xl)}
.contact .eyebrow{color:#fff;opacity:.8}
.contact p{margin-top:1rem;opacity:.92;max-width:44ch}
.contact .direct{margin-top:2rem;display:grid;gap:.4rem;font-size:var(--text-sm)}
.contact .direct a{font-weight:700}
form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
form .full{grid-column:1/-1}
label{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:.4rem}
input,select,textarea{width:100%;font:inherit;font-size:var(--text-base);padding:.8rem .9rem;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.18);color:#fff;min-height:48px}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,.6)}
select option{color:#111}
textarea{min-height:120px;resize:vertical}
.form-msg{grid-column:1/-1;font-size:var(--text-sm);min-height:1.2em}
@media (max-width:860px){.contact .grid{grid-template-columns:1fr}form{grid-template-columns:1fr}}

footer{padding-block:2.5rem;font-size:var(--text-xs);color:var(--faint)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}
footer a{color:var(--muted)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* real-photo hero */
.hero img{object-position:50% 22%}
@media (min-width:861px){
  .hero img{left:auto;right:0;width:58%}
  .hero::after{background:linear-gradient(90deg,var(--bg) 0%,var(--bg) 40%,rgba(15,13,12,.55) 58%,rgba(15,13,12,.1) 80%,rgba(15,13,12,.3) 100%),linear-gradient(180deg,rgba(15,13,12,0) 60%,var(--bg) 100%)}
}
@media (max-width:860px){.hero::after{background:linear-gradient(180deg,rgba(15,13,12,.25) 0%,rgba(15,13,12,.7) 45%,rgba(15,13,12,.98) 75%)}.hero{min-height:auto}.hero .wrap{padding-top:52vh}}
.story .portrait{margin-top:2rem;width:100%;max-width:420px;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);filter:grayscale(1) contrast(1.05)}
/* videos */
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.vid{position:relative;display:block;width:100%;aspect-ratio:9/12;border:0;padding:0;border-radius:var(--r-lg);overflow:hidden;background:#000;cursor:pointer;color:#fff;text-align:left}
.vid img{width:100%;height:100%;object-fit:cover;transition:transform .4s,opacity .3s;opacity:.85}
.vid:hover img{transform:scale(1.03);opacity:1}
.vid .play{position:absolute;left:50%;top:45%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--red);box-shadow:0 6px 24px rgba(0,0,0,.4)}
.vid .play::after{content:"";position:absolute;left:26px;top:20px;border-style:solid;border-width:12px 0 12px 18px;border-color:transparent transparent transparent #fff}
.vid .cap{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1rem 1rem;background:linear-gradient(transparent,rgba(0,0,0,.85));font-weight:700;font-size:var(--text-sm)}
.vid.playing iframe{width:100%;height:100%;border:0}
@media (max-width:760px){.vid-grid{grid-template-columns:1fr;max-width:380px}}
.buy-alt{background:none;border:0;color:var(--muted);font:inherit;font-size:var(--text-xs);text-decoration:underline;cursor:pointer;padding:.25rem;margin-top:-.5rem;min-height:32px}
.buy-alt:hover{color:var(--text)}
.buy-inline{background:none;border:0;color:var(--gold);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.buy-msg{min-height:1.2em;margin-top:1rem;color:var(--gold);font-size:var(--text-sm)}
.btn:disabled{opacity:.7;cursor:wait}
.checkin{min-height:calc(100vh - 140px);display:flex;align-items:center}