/* Next Level Fitness & Martial Arts -- shared design system.
   Extracted from the site-wide inline <style> core. Edit here;
   run `python3 build.py` if you also need to resync page markers. */
  :root{
    --bg:#16110f; --panel:#1f1815; --panel2:#241c19; --black:#251D1F;
    --blue:#1F4F9C; --blue-br:#3466c4; --gold:#FDCC07; --gold-deep:#e3b500;
    --text:#ece7e3; --dim:#9d938d; --line:rgba(255,255,255,.11);
    --display:"Barlow Condensed",system-ui,sans-serif;
    --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
    --body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--body);background:var(--bg);color:var(--text);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  h1,h2,h3,h4{font-family:var(--display);text-transform:uppercase;line-height:.98;font-weight:700;letter-spacing:.01em}
  .wrap{max-width:1260px;margin:0 auto;padding:0 26px}
  .mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--dim)}
  .idx{font-family:var(--mono);color:var(--gold);font-size:.72rem;letter-spacing:.14em}
  .btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:1.05rem;padding:16px 32px;border-radius:3px;cursor:pointer;border:2px solid transparent;transition:transform .12s,background .12s,color .12s}
  .btn-gold{background:var(--gold);color:#1a1315}
  .btn-gold:hover{background:var(--gold-deep);transform:translateY(-2px)}
  .btn-ghost{border-color:var(--line);color:var(--text)}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
  /* large CTA variant -- used ~38x across the site but previously
     undefined, so every "large" CTA rendered at base .btn size */
  .btn-lg{padding:19px 38px;font-size:1.25rem}
  .sec{padding:64px 0;position:relative}
  .sec-label{display:flex;align-items:center;gap:14px;margin-bottom:22px}
  .sec-label .idx{white-space:nowrap}
  .sec-label .ln{height:1px;background:var(--line);flex:1}
  .sec-label .tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--dim)}
  /* one shared heading gap -- replaces ~27 per-page inline overrides
     that had drifted to 20/24/26px */
  h2.big{font-size:clamp(2.6rem,5.8vw,4.9rem);max-width:16ch;position:relative;z-index:1;margin-bottom:24px}
  h2.big::before{content:"";position:absolute;z-index:-1;left:-6%;top:-34%;width:66%;height:180%;pointer-events:none;
    background:radial-gradient(ellipse at 32% 50%,rgba(31,79,156,.30),transparent 64%);filter:blur(32px)}
  h2.big em{font-style:normal;color:var(--gold)}

  /* header */
  header{position:sticky;top:0;z-index:70;background:rgba(22,17,15,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;gap:20px;height:74px}
  .brand{display:flex;align-items:center;gap:11px}
  .brand img{width:46px;height:46px;border-radius:50%}
  .brand b{font-family:var(--display);text-transform:uppercase;font-size:.98rem;line-height:.95;color:#fff}
  .brand b span{display:block;font-family:var(--mono);font-size:.56rem;letter-spacing:.2em;color:var(--gold);font-weight:400;margin-top:3px}
  .nav-links{display:flex;align-items:center;gap:24px;margin-left:auto}
  .nav-links a{font-size:.9rem;color:#d8d2ce}
  .nav-links a:hover{color:var(--gold)}
  .nav .btn{padding:11px 20px;font-size:.92rem}
  /* a11y tap target: the hamburger glyph is ~21x29, well under the 44x44
     minimum, and on mobile it is the only route into the nav.
     Padding is NOT used here: at phone widths the header row is already
     flex-shrinking (brand and CTA both compress), so widening this button
     steals space from them and visibly moves the glyph. Instead the hit
     area is an out-of-flow 44x44 box centred on the button, which grows
     what is tappable while consuming zero layout width. It never reaches
     the CTA -- the flex gap beside it is 20px. */
  .menu-btn{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;margin-left:auto;position:relative}
  .menu-btn::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px}

  /* programs nav dropdown */
  .nav-item{position:relative}
  /* a11y tap target: the label row is only ~17px tall. Vertical padding
     takes it to 45px and the matching negative vertical margin keeps the
     button's margin box at its original 17px, so neither the "Programs"
     text nor the dropdown panel below it moves. */
  .nav-drop-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;font-family:var(--body);font-size:.9rem;color:#d8d2ce;cursor:pointer;
    padding:14px 0;margin:-14px 0;min-height:44px}
  .nav-drop-btn:hover,.nav-drop-btn[aria-expanded="true"]{color:var(--gold)}
  .nav-drop-btn .care{display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;transition:transform .15s}
  .nav-drop-btn[aria-expanded="true"] .care{transform:rotate(180deg)}
  .nav-dropdown{display:none;position:absolute;top:calc(100% + 20px);left:50%;transform:translateX(-50%);min-width:210px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px;box-shadow:0 24px 48px rgba(0,0,0,.5);z-index:80}
  .nav-dropdown.open{display:block}
  .nav-dropdown a{display:block;padding:9px 12px;border-radius:5px;font-size:.86rem;white-space:nowrap}
  .nav-dropdown a:hover{background:rgba(253,204,7,.08);color:var(--gold)}

  /* hero */
  .hero{position:relative;padding:70px 0 40px;overflow:hidden}
  .hero::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 80% 0%,rgba(31,79,156,.35),transparent 55%),radial-gradient(80% 80% at 0% 100%,rgba(253,204,7,.08),transparent 60%);z-index:0}
  .hero .wrap{position:relative;z-index:2}
  .hero-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:34px}
  .status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;color:var(--text)}
  .status .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(253,204,7,.18)}
  .award{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:40px;padding:7px 16px;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;color:var(--text)}
  .award .idx{margin-right:2px}
  .hero-inner{position:relative;z-index:3;max-width:720px}
  .hero-emblem{position:absolute;top:50%;right:-12%;transform:translateY(-50%);width:min(70vw,900px);height:auto;z-index:1;pointer-events:none;opacity:.16}
  .hero h1{font-size:clamp(3.1rem,6.6vw,5.9rem);max-width:14ch;position:relative;z-index:1}
  .hero h1::before{content:"";position:absolute;z-index:-1;left:-10%;top:-28%;width:88%;height:170%;pointer-events:none;
    background:radial-gradient(circle at 26% 42%,rgba(253,204,7,.28),transparent 40%),radial-gradient(ellipse at 42% 52%,rgba(31,79,156,.58),rgba(31,79,156,.12) 48%,transparent 72%);
    filter:blur(36px)}
  .hero h1 em{font-style:normal;color:var(--gold)}
  .creed-punch{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1.6rem,3.6vw,2.8rem);letter-spacing:.02em;margin:16px 0 4px;color:#fff}
  .creed-punch b{color:var(--gold)}
  .hero p.lede{color:var(--dim);font-size:1.26rem;max-width:44ch;margin-top:14px}
  /* keyword + geo line under the program-page H1 (SEO); sits between the
     slogan H1 and the existing lede, deliberately lighter than the lede */
  .hero p.hero-key{color:var(--text);font-size:1.06rem;max-width:56ch;margin-top:14px}
  .hero-cta{margin-top:28px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
  .cta-sub{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--dim)}
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:40px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
  .stat{background:var(--panel);padding:20px 18px;text-align:center}
  .stat b{display:block;font-family:var(--display);font-size:2.7rem;color:var(--gold);line-height:1}
  .stat span{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;color:var(--dim);text-transform:uppercase}
  .hero-photo{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/5;background:linear-gradient(150deg,#2a3f66,#1a1315);display:flex;align-items:flex-end;padding:18px}
  .hero-photo .cap{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;color:rgba(255,255,255,.5)}
  .hero-photo .frame{position:absolute;top:14px;left:14px;font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:rgba(255,255,255,.4)}

  /* marquee */
  .marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--gold);color:#1a1315;overflow:hidden;white-space:nowrap}
  .marquee .track{display:inline-block;padding:13px 0;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;animation:scroll 26s linear infinite}
  .marquee .track span{padding:0 26px}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* reckoning */
  .reck-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:start}
  .reck p.intro{color:var(--dim);font-size:1.14rem;margin-top:8px;max-width:34ch}
  .painlist{list-style:none;display:grid;gap:0}
  .painlist li{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line);align-items:baseline}
  .painlist li:last-child{border-bottom:1px solid var(--line)}
  .painlist .n{font-family:var(--mono);color:var(--gold);font-size:.74rem;flex:0 0 26px}
  .painlist .t{font-family:var(--display);text-transform:uppercase;font-size:1.35rem;color:#fff;letter-spacing:.01em}
  .diag{margin-top:30px;padding:22px 24px;border-left:3px solid var(--gold);background:var(--panel)}
  .diag .mono{margin-bottom:6px}
  .diag p{font-family:var(--display);text-transform:uppercase;font-size:1.5rem;color:#fff;line-height:1.05}

  /* programs */
  .path-head{display:flex;align-items:baseline;gap:14px;margin:44px 0 18px}
  .path-head h3{font-size:1.5rem;color:#fff}
  .path-head .mono{color:var(--gold)}
  .prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .pcard{position:relative;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel);min-height:210px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .14s,border-color .14s}
  .pcard:hover{transform:translateY(-4px);border-color:var(--gold)}
  .pcard .ph{position:absolute;inset:0;background:#1a1315 center/cover no-repeat}
  .pcard .body{position:relative;z-index:2;padding:20px 18px;background:linear-gradient(0deg,rgba(22,17,15,.96),rgba(22,17,15,.5) 70%,transparent)}
  .pcard .age{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;color:var(--gold)}
  .pcard h3{font-size:1.58rem;color:#fff;margin:6px 0 4px}
  .pcard p{font-size:.86rem;color:var(--dim)}
  .pcard .enter{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;color:var(--text);margin-top:10px}
  .fam-line{margin-top:24px;font-family:var(--mono);font-size:.76rem;letter-spacing:.06em;color:var(--dim)}
  .fam-line a{color:var(--gold)}

  /* pillars */
  .pillars{border-top:1px solid var(--line)}
  .pillar{border-bottom:1px solid var(--line);padding:30px 0;display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:start}
  .pillar .pn{font-family:var(--mono);color:var(--gold);font-size:.8rem;letter-spacing:.12em}
  .pillar h3{font-size:2.05rem;color:#fff;margin-bottom:8px}
  .pillar p{color:var(--dim);max-width:60ch}

  /* reviews */
  .rev-top{display:flex;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:34px}
  .rev-score b{font-family:var(--display);font-size:3.4rem;color:var(--gold);line-height:.9}
  .rev-score .stars{color:var(--gold);letter-spacing:3px}
  .rev-score span{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;color:var(--dim);display:block;margin-top:4px}
  .rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .rcard{border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:24px}
  .rcard .v{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;color:var(--gold);margin-bottom:10px}
  /* (a second `.rcard p` further down in this file shadowed a declaration
     that used to sit here -- the dead copy has been removed) */
  .rcard .who{font-family:var(--display);text-transform:uppercase;color:#fff;font-size:1rem;letter-spacing:.02em}
  .rcard .role{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;color:var(--dim)}
  .rev-cta{margin-top:26px}
  .rev-cta a{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--gold)}

  /* VS */
  .vs-grid{display:grid;grid-template-columns:1fr 60px 1fr;gap:0;align-items:stretch;margin-top:10px}
  .vs-col{border:1px solid var(--line);padding:30px 26px}
  .vs-col.a{border-radius:9px 0 0 9px;background:var(--panel)}
  .vs-col.b{border-radius:0 9px 9px 0;background:linear-gradient(180deg,rgba(31,79,156,.18),var(--panel));border-color:rgba(253,204,7,.4)}
  .vs-col .lbl{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;color:var(--dim);margin-bottom:4px}
  .vs-col h3{font-size:1.5rem;color:#fff;margin-bottom:18px}
  .vs-col.b h3{color:var(--gold)}
  .vs-col ul{list-style:none;display:grid;gap:12px}
  .vs-col li{display:flex;gap:10px;font-size:.93rem;color:var(--text)}
  .vs-mid{display:flex;align-items:center;justify-content:center;font-family:var(--display);color:var(--dim);font-size:1.1rem}

  /* owner letter */
  .letter{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:center}
  .letter-photo{border:1px solid var(--line);border-radius:10px;overflow:hidden;aspect-ratio:3/4;background:#1a1315 center/cover no-repeat;background-position:center top}
  .letter-photo .cap{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:rgba(255,255,255,.55)}
  .letter blockquote{font-family:var(--display);text-transform:uppercase;font-size:clamp(2rem,4vw,3.1rem);color:#fff;line-height:1.02;margin-bottom:22px}
  .letter blockquote em{font-style:normal;color:var(--gold)}
  .letter p{color:var(--dim);margin-bottom:16px;max-width:56ch}
  .letter .sign{font-family:var(--display);text-transform:uppercase;color:#fff;font-size:1.1rem}
  .letter .sign span{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;color:var(--gold)}

  /* trial */
  .trial{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .trial-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
  .trial h2{font-size:clamp(2.4rem,5vw,3.6rem);color:#fff}
  .trial h2 em{font-style:normal;color:var(--gold)}
  .price-line{display:flex;align-items:baseline;gap:14px;margin:16px 0}
  .price-line .now{font-family:var(--display);font-size:3.2rem;color:var(--gold);line-height:1}
  .price-line .was{font-family:var(--display);font-size:1.6rem;color:var(--dim);text-decoration:line-through}
  .incl{list-style:none;display:grid;gap:12px;margin:20px 0 26px}
  .incl li{display:flex;gap:12px;color:var(--text)}
  .incl .n{font-family:var(--mono);color:var(--gold);font-size:.72rem;flex:0 0 24px}
  .trial-form{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.4)}
  /* one form header spec -- `.trial-form .fh` and `.form-panel .fh` were
     the same component under two names (13px/1.5rem vs 16px/1.55rem) */
  .trial-form .fh,.form-panel .fh{background:var(--gold);color:#1a1315;text-align:center;padding:16px;font-family:var(--display);text-transform:uppercase;font-weight:700;font-size:1.55rem;line-height:1.05}
  .trial-form .fh span,.form-panel .fh span{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;font-weight:400;margin-top:4px}
  .ghl-embed{width:100%;min-height:640px;border:0;display:block}

  /* faq */
  .faq details{border-top:1px solid var(--line);padding:20px 0}
  .faq details:last-child{border-bottom:1px solid var(--line)}
  .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;font-family:var(--display);text-transform:uppercase;font-size:1.25rem;color:#fff}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary .q{display:flex;gap:14px;align-items:baseline}
  .faq summary .n{font-family:var(--mono);color:var(--gold);font-size:.72rem}
  .faq summary .pm{color:var(--gold);font-family:var(--mono)}
  .faq p{color:var(--dim);margin-top:12px;max-width:70ch}

  /* final */
  .final{text-align:center;position:relative;overflow:hidden}
  .final::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 50% 100%,rgba(31,79,156,.35),transparent 60%)}
  .final .wrap{position:relative;z-index:2}
  .final h2{font-size:clamp(2.4rem,6vw,4.6rem);color:#fff;max-width:18ch;margin:0 auto}
  .final h2 em{font-style:normal;color:var(--gold)}
  .final p{color:var(--dim);margin:20px auto 30px;max-width:44ch}

  /* footer */
  footer{background:#120d0c;border-top:1px solid var(--line);padding:60px 0 28px}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:34px;border-bottom:1px solid var(--line)}
  footer h3{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;color:var(--gold);margin-bottom:16px;font-weight:400}
  footer a{color:#b7afab;font-size:.9rem;display:block;padding:3px 0}
  footer a:hover{color:var(--gold)}
  .foot-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
  .foot-brand img{width:52px;height:52px;border-radius:50%}
  .foot-brand b{font-family:var(--display);text-transform:uppercase;color:#fff;font-size:1rem;line-height:.95}
  .foot-creed{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-size:.85rem;margin-top:12px}
  .foot-txt{color:#8a827e;font-size:.86rem;max-width:38ch}
  .foot-bottom{padding-top:22px;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;color:#8a827e;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

  @media(max-width:960px){
    .nav-links{display:none}
    .menu-btn{display:block}
    .nav-links.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--bg);padding:18px 26px;gap:14px;border-bottom:1px solid var(--line)}
    .nav-item{width:100%}
    .nav-dropdown{display:none;position:static;transform:none;background:none;border:none;box-shadow:none;padding:10px 0 0 12px;min-width:0}
    .nav-dropdown.open{display:flex;flex-direction:column;gap:10px}
    .hero-grid,.reck-grid,.letter,.trial-grid{grid-template-columns:1fr;gap:30px}
    .hero-photo{aspect-ratio:16/10}
    .hero-emblem{opacity:.09;right:-34%;top:38%;width:150%;filter:none}
    .prog-grid,.rev-grid{grid-template-columns:1fr 1fr}
    .vs-grid{grid-template-columns:1fr;gap:14px}
    .vs-col.a,.vs-col.b{border-radius:9px}
    .vs-mid{display:none}
    .pillar{grid-template-columns:1fr;gap:8px}
    .foot-grid{grid-template-columns:1fr 1fr}
    .stats{grid-template-columns:repeat(2,1fr)}
  }
  @media(max-width:600px){
    .prog-grid,.rev-grid,.foot-grid{grid-template-columns:1fr}
  }
  @media(prefers-reduced-motion:reduce){.marquee .track{animation:none}*{transition:none!important;scroll-behavior:auto}}

  /* scrolling reviews */
  .rev-marquee{position:relative;overflow:hidden;margin:0 -26px;padding:4px 0}
  .rev-marquee::before,.rev-marquee::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:3;pointer-events:none}
  .rev-marquee::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
  .rev-marquee::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
  .rev-track{display:flex;width:max-content;padding-left:26px;animation:revscroll 55s linear infinite}
  .rev-marquee:hover .rev-track{animation-play-state:paused}
  .rev-track .rcard{width:330px;flex:0 0 330px;margin-right:16px}
  @keyframes revscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* sticky urgency bar */
  .sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(22,17,15,.97);backdrop-filter:blur(10px);border-top:2px solid var(--gold);transform:translateY(120%);transition:transform .35s cubic-bezier(.4,0,.2,1)}
  .sticky-cta.show{transform:translateY(0)}
  .sticky-cta .in{max-width:1260px;margin:0 auto;padding:12px 26px;display:flex;align-items:center;gap:16px}
  .sticky-cta .pulse{width:9px;height:9px;border-radius:50%;background:var(--gold);animation:pulse 2s infinite;flex:0 0 9px}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(253,204,7,.5)}70%{box-shadow:0 0 0 13px rgba(253,204,7,0)}100%{box-shadow:0 0 0 0 rgba(253,204,7,0)}}
  .sticky-cta .msg{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;font-size:1.08rem;color:#fff;line-height:1.05}
  .sticky-cta .msg b{color:var(--gold)}
  .sticky-cta .sub{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--dim);margin-top:2px}
  .sticky-cta .spacer{flex:1}
  .sticky-cta .close{background:none;border:none;color:var(--dim);font-size:1.4rem;cursor:pointer;line-height:1;padding:2px 6px}
  .sticky-cta .close:hover{color:var(--gold)}
  @media(max-width:640px){.sticky-cta .sub{display:none}.sticky-cta .msg{font-size:.84rem}.sticky-cta .in{padding:10px 14px;gap:10px}.sticky-cta .btn{padding:10px 15px;font-size:.82rem}}
  @media(prefers-reduced-motion:reduce){.rev-track{animation:none}.sticky-cta{transition:none}.sticky-cta .pulse{animation:none}}

  .topstrip{height:5px;background:linear-gradient(90deg,var(--blue),var(--gold))}
  .hero-layout{display:grid;grid-template-columns:1.06fr .94fr;gap:44px;align-items:center;position:relative;z-index:3}
  .hero-photo{border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:4/5;background:#1a1315 center/cover no-repeat;position:relative}
  .hero-photo .cap{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:rgba(255,255,255,.5)}
  #pillars{overflow:hidden}
  #pillars .wrap{position:relative;z-index:1}
  .sec-tri{position:absolute;top:50%;right:-16%;transform:translateY(-50%);width:min(74vw,1000px);z-index:0;opacity:.11;pointer-events:none}
  @media(max-width:960px){
    .hero-layout{grid-template-columns:1fr;gap:26px}
    .hero-photo{aspect-ratio:16/10}
    .sec-tri{right:-44%;width:160%;opacity:.09}
  }

  .sec-cta{position:relative;z-index:2;max-width:1260px;margin:38px auto 0;padding:0 26px;text-align:center}
  /* a section ending in just a CTA button doesn't need the full 64px
     bottom breath -- stacked with the next section's own top padding it
     reads as dead space after the button */
  .sec:has(> .sec-cta:last-child),
  .sec:has(> .wrap > .sec-cta:last-child){padding-bottom:32px}
  /* same fix for the handful of sections that end in a plain (non
     .sec-cta) button/link as their last piece of content -- marked
     explicitly since the button sits at varying nesting depths */
  .sec.sec-end-cta{padding-bottom:32px}
  /* every page's closing .final section ends the same way (CTA button +
     "or call" link) right before the footer -- same trailing-void fix */
  .final{padding-bottom:32px}
  .modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
  .modal[hidden]{display:none}
  .modal-backdrop{position:absolute;inset:0;background:rgba(10,7,6,.8);backdrop-filter:blur(4px)}
  .modal-card{position:relative;z-index:2;background:#fff;color:#1a1315;border-radius:12px;width:100%;max-width:470px;max-height:92vh;overflow:auto;box-shadow:0 40px 90px rgba(0,0,0,.6);animation:modalpop .25s ease}
  @keyframes modalpop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
  .modal-head{position:sticky;top:0;background:var(--gold);color:#1a1315;font-family:var(--display);text-transform:uppercase;font-weight:700;font-size:1.5rem;text-align:center;padding:14px}
  .modal-head span{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;font-weight:400;margin-top:2px}
  .modal-body{min-height:560px}
  .modal-body iframe{width:100%;min-height:660px;border:0;display:block}
  /* a11y tap target: ~17x30 glyph. Because this button is absolutely
     positioned, padding alone would visibly push the X down and left, so
     the same values are given back as negative margins -- the border box
     grows outward past top/right while the glyph stays put. */
  .modal-close{position:absolute;top:10px;right:14px;z-index:4;background:none;border:none;font-size:1.9rem;line-height:1;color:#1a1315;cursor:pointer;
    padding:8px 14px;margin:-8px -14px;min-width:44px;min-height:44px}
  .modal-close:hover{color:var(--blue)}
  @media(prefers-reduced-motion:reduce){.modal-card{animation:none}}

  .rev-track{align-items:stretch}
  .rev-track .rcard{height:300px;display:flex;flex-direction:column}
  .rcard .v{color:var(--gold);letter-spacing:3px;font-size:1rem;margin-bottom:10px}
  .rcard p{color:var(--text);font-size:.93rem;margin:0;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
  .rcard .rmeta{margin-top:auto;padding-top:14px}

  /* ---- shared program-page template -------------------------------
     Hoisted out of the inline <style> block that was copy-pasted into
     12 pages. The `.forlist li::before` checkmark glyph is hoisted here
     too -- it is identical on every program page.
     `.who` is scoped to `.wrap > .who` so it cannot collide with the
     review-card name element (`.rcard .rmeta .who`) on the homepage. */
  .phero{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;position:relative;z-index:3}
  .phero-photo{border:1px solid var(--line);border-radius:12px;aspect-ratio:4/3;background:#1a1315 center/cover no-repeat;min-height:340px}
  .wrap > .who{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;margin-top:12px}
  .who-photo{border:1px solid var(--line);border-radius:12px;aspect-ratio:4/3;background:#1a1315 center/cover no-repeat;min-height:320px}
  .wrap > .who p{color:var(--dim);margin-bottom:14px;max-width:56ch}
  .forlist{list-style:none;display:grid;gap:10px;margin-top:16px}
  .forlist li{display:flex;gap:12px;color:var(--text);font-size:.98rem}
  .forlist li::before{content:"\2713";color:var(--gold);flex:0 0 16px}
  .learn{border-top:1px solid var(--line);margin-top:14px}
  .learn .row{border-bottom:1px solid var(--line);padding:26px 0;display:grid;grid-template-columns:110px 1fr;gap:24px;align-items:start}
  .learn .ln2{font-family:var(--mono);color:var(--gold);font-size:.78rem;letter-spacing:.12em}
  .learn h3{color:#fff;font-size:1.7rem;margin-bottom:6px}
  .learn p{color:var(--dim);max-width:60ch}
  .gal{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:12px}
  .gal .g{border:1px solid var(--line);border-radius:10px;background:#1a1315 center/cover no-repeat;min-height:270px}
  .first{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}
  .fcard{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:24px}
  .fcard .fn{font-family:var(--mono);color:var(--gold);font-size:.72rem;letter-spacing:.12em}
  .fcard h3{color:#fff;font-size:1.4rem;margin:8px 0 6px}
  .fcard p{color:var(--dim);font-size:.92rem}
  .related{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:12px}
  @media(max-width:960px){
    .phero,.wrap > .who{grid-template-columns:1fr;gap:28px}
    .learn .row{grid-template-columns:1fr;gap:8px}
    .gal,.first,.related{grid-template-columns:1fr}
  }

  /* ---- visible keyboard focus -------------------------------------
     The site previously had no :focus rule at all, so anyone navigating
     by keyboard fell back to the UA default outline, which is close to
     invisible on the near-black palette. One shared ring covers every
     interactive control. :focus-visible (not :focus) so a mouse click
     never shows the ring. Purely additive -- no :hover rule is altered,
     and outline does not affect layout, so nothing moves.
     The gold ring reads on the dark page; the 2px --bg companion ring
     sits in the outline offset gap and disappears against the dark page
     while separating the gold from the white form/modal panels. */
  a:focus-visible,
  button:focus-visible,
  summary:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  .btn:focus-visible,
  .brand:focus-visible,
  .nav-links a:focus-visible,
  .nav-drop-btn:focus-visible,
  .nav-dropdown a:focus-visible,
  .menu-btn:focus-visible,
  .faq summary:focus-visible,
  .faq-nav a:focus-visible,
  .modal-close:focus-visible,
  .sticky-cta .close:focus-visible,
  footer a:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:2px;
    box-shadow:0 0 0 2px var(--bg);
  }
