:root{--bg:#050505;--surface:#111;--fg:#f5f5f5;--muted:#a3a3a3;--accent:#00ffff;--accent-dim:#00c2c2;--border:#2a2a2a;
--display:"Oswald",Impact,sans-serif;--sans:"Outfit",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.55;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--accent)}a:hover{color:var(--fg)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;line-height:1;margin:0;font-weight:600}
h1{font-size:clamp(2.75rem,8vw,5.5rem)}h2{font-size:clamp(2rem,4.5vw,3rem)}h3{font-size:1.25rem}
p{margin:.9rem 0 0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#000;padding:.6rem 1rem;z-index:99}.skip:focus{left:1rem}
.wrap{max-width:1152px;margin:0 auto;padding:0 1.25rem}
.accent{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:.9rem}.big{font-size:1.15rem}
.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.18em;color:var(--accent);font-size:.9rem;margin:0 0 .75rem}
.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:.75rem 1.5rem;background:var(--accent);color:#000;
font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:.95rem;text-decoration:none;border:2px solid var(--accent)}
.btn:hover{background:var(--accent-dim);border-color:var(--accent-dim);color:#000}
.btn.ghost{background:transparent;color:var(--accent)}.btn.ghost:hover{background:var(--accent);color:#000}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.tlink{display:inline-block;margin-top:1.5rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;text-underline-offset:4px}
/* header */
.site-header{position:sticky;top:0;z-index:40;background:rgba(5,5,5,.94);border-bottom:1px solid var(--border)}
.bar{display:flex;align-items:center;gap:1rem;height:68px}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--fg);text-decoration:none;font-family:var(--display);font-size:1.15rem;letter-spacing:.06em;font-weight:600;margin-right:auto}
.brand img{width:44px;height:44px;object-fit:contain}
.nav{list-style:none;margin:0;padding:0;display:flex;gap:1.35rem}
.nav a{color:var(--muted);text-decoration:none;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.9rem;padding:.4rem 0}
.nav a:hover{color:var(--fg)}.nav a[aria-current=page]{color:var(--accent);border-bottom:2px solid var(--accent)}
.nav-reg{display:none}
.menu{display:none;width:48px;height:48px;background:none;border:1px solid var(--border);color:var(--fg);cursor:pointer}
.bars,.bars::before,.bars::after{display:block;width:20px;height:2px;background:var(--fg);margin:auto;position:relative;content:""}
.bars::before{position:absolute;top:-6px}.bars::after{position:absolute;top:6px}
@media (max-width:1023px){
 .menu{display:block}.hdr-reg{display:none}
 .nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--bg);flex-direction:column;gap:0;padding:.5rem 1.25rem 1.25rem;border-bottom:1px solid var(--border)}
 .nav.open{display:flex}.nav li{border-bottom:1px solid var(--border)}.nav a{display:block;padding:.9rem 0;font-size:1.1rem;color:var(--fg)}
 .nav-reg{display:block;border:0!important;margin-top:1rem}.nav-reg .btn{width:100%;color:#000}
}
/* heroes */
.hero,.page-hero,.band{position:relative;overflow:hidden;border-bottom:1px solid var(--border)}
.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shade{position:absolute;inset:0;background:rgba(5,5,5,.62)}
.shade.grad{background:linear-gradient(to top,#050505 0%,rgba(5,5,5,.72) 45%,rgba(5,5,5,.35) 100%)}
.inner{position:relative}
.hero .inner{min-height:86vh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:6rem;padding-bottom:4.5rem}
.hero-logo{width:88px;height:88px;object-fit:contain;margin-bottom:1.5rem}
.hero .lede,.page-hero .lede{font-size:1.2rem;max-width:36rem}
.page-hero .inner{padding-top:6rem;padding-bottom:3.5rem}
.page-hero:not(:has(.bg)){background:var(--surface)}
.band .inner{padding-top:6rem;padding-bottom:6rem}
.row{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between}
/* layouts */
.split{display:grid;gap:2.5rem;padding-top:4.5rem;padding-bottom:4.5rem;align-items:center}
.split img.tall{aspect-ratio:4/5;width:100%;object-fit:cover}
.pair{display:grid;border-bottom:1px solid var(--border)}.pair img{aspect-ratio:1;width:100%;object-fit:cover}
.cards3,.grid3{display:grid;gap:1.25rem;padding-top:4rem;padding-bottom:4rem}
.grid2{display:grid;gap:1.5rem;padding-top:3.5rem;padding-bottom:3.5rem}
.card{background:var(--surface);border:1px solid var(--border);padding:1.75rem}
.card-t{font-size:1.75rem}
.mini{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1rem}.mini-t{font-size:1.2rem}
.mini ul,.plist,.day ul,.roles,.flinks{list-style:none;margin:0;padding:0}
.mini li,.plist li{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0;font-size:.95rem}
.plist{margin-top:1.25rem}.plist li{border-bottom:1px solid var(--border);padding:.75rem 0}
.day h2{margin-top:.25rem;font-size:2.5rem}.day ul{margin-top:1.5rem}
.day li{border-top:1px solid var(--border);padding:1rem 0}.day .r{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.day .t{margin:0;font-family:var(--display);font-size:1.15rem}
.strip{border-top:1px solid var(--border);padding:2.5rem 0}.strip p{max-width:36rem;margin:0}
.h-sm{font-size:1.6rem;margin-bottom:.5rem}
.price.feat{border-color:var(--accent)}.price h2{font-size:1.6rem}
.amt{font-family:var(--display);font-size:3.25rem;color:var(--accent);margin-top:1.25rem;line-height:1}
.unit{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.85rem;margin-top:.4rem}
.coach{display:grid;gap:2.5rem;padding-top:3.5rem;padding-bottom:3.5rem;align-items:start}
.coach img{width:100%;object-fit:cover}
.roles{margin-top:2rem;border-top:1px solid var(--border)}.roles li{border-bottom:1px solid var(--border);padding:.8rem 0}
.gallery{list-style:none;margin:0;padding:3.5rem 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.gallery img{aspect-ratio:3/4;width:100%;object-fit:cover;background:var(--surface)}
.vids{display:grid;gap:2.5rem;padding-top:3.5rem;padding-bottom:3.5rem}
.vid{aspect-ratio:16/9;border:1px solid var(--border);background:var(--surface)}.vid iframe{width:100%;height:100%;border:0}
figure{margin:0}figcaption{margin-top:.75rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
/* footer */
.site-footer{background:var(--surface);border-top:1px solid var(--border);padding-top:3.5rem}
.fgrid{display:grid;gap:2.5rem}.fgrid img{width:64px;height:64px;object-fit:contain}
.ftitle{font-family:var(--display);font-size:1.3rem;letter-spacing:.06em}
.fh{font-size:.95rem;letter-spacing:.18em;color:var(--accent);margin-bottom:.9rem}
address{font-style:normal;line-height:1.9}.flinks li{padding:.25rem 0}
.copy{color:var(--muted);font-size:.85rem;padding-top:2rem;padding-bottom:2rem;margin:2.5rem auto 0;border-top:1px solid var(--border)}
@media (min-width:640px){.pair{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(3,1fr);gap:1rem}}
@media (min-width:860px){.pair img{aspect-ratio:3/2}.split{grid-template-columns:1fr 1fr}.cards3,.grid3{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr 1fr}
 .coach{grid-template-columns:2fr 3fr}.fgrid{grid-template-columns:repeat(3,1fr)}}
/* coach photo gallery */
.coach-gallery{padding-bottom:4rem}
.coach-gallery ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:1fr}
.coach-gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--surface)}
@media (min-width:640px){.coach-gallery ul{grid-template-columns:repeat(3,1fr)}}
.split img.wide{aspect-ratio:3/2;width:100%;object-fit:cover}
