
  :root{
    --ink:#08090c;
    --ink-2:#12141b;
    --ink-3:#1a1d27;
    --blue:#0050ce;
    --blue-bright:#3b74ff;
    --white:#f5f6f8;
    --steel:#8b93a1;
    --line: rgba(245,246,248,0.10);
    --success:#2fbf71;
    --danger:#ff5c5c;
    --max: 1160px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ink);
    color:var(--white);
    font-family:'Inter',system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}
  h1,h2,h3{font-family:'Anton', sans-serif; font-weight:400; letter-spacing:0.5px; line-height:1.02; margin:0;}
  .eyebrow{
    font-size:12px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase;
    color:var(--blue-bright); margin:0 0 14px;
  }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family:'Inter',sans-serif; font-weight:700; font-size:14px; letter-spacing:0.3px;
    padding:15px 28px; border-radius:2px; border:2px solid transparent; cursor:pointer;
    text-transform:uppercase; text-decoration:none; transition:transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
  }
  .btn:active{transform:scale(0.97);}
  .btn-primary{background:var(--blue); color:#fff;}
  .btn-primary:hover{background:var(--blue-bright);}
  .btn-ghost{background:transparent; color:var(--white); border-color:rgba(245,246,248,0.35);}
  .btn-ghost:hover{border-color:var(--white);}
  .btn-block{width:100%;}
  .btn[disabled]{opacity:0.6; cursor:default;}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(8,9,12,0.88); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{ position:relative; display:flex; align-items:center; justify-content:space-between; padding:18px 28px; max-width:var(--max); margin:0 auto;}
  .nav-brand{display:flex; align-items:center; gap:14px;}
  .nav-brand .brand-mark{height:46px; width:66px;}
  .nav-brand-text{font-family:'Anton'; font-size:17px; letter-spacing:0.5px; line-height:1.15;}
  .nav-brand-text span{display:block; font-family:'Inter'; font-weight:600; font-size:9px; letter-spacing:2px; color:var(--steel); text-transform:uppercase; margin-top:3px;}
  .nav-links{display:flex; gap:30px; align-items:center;}
  .nav-links a{font-size:13px; font-weight:600; text-decoration:none; color:var(--steel); text-transform:uppercase; letter-spacing:0.8px; transition:color .15s; white-space:nowrap;}
  .nav-links a:hover{color:var(--white);}
  .nav-cta{display:flex; gap:10px; margin-left:36px;}
  .nav-cta .btn{padding:11px 18px; font-size:12px; white-space:nowrap;}
  .nav-toggle{display:none; background:none; border:none; color:var(--white); font-size:26px; cursor:pointer; line-height:1;}
  .mobile-menu{
    display:none; position:absolute; top:100%; left:0; right:0; background:var(--ink); border-bottom:1px solid var(--line);
    padding:20px 28px 26px; flex-direction:column; gap:18px;
  }
  .mobile-menu.show{display:flex;}
  .mobile-menu a{font-size:14px; font-weight:600; text-decoration:none; color:var(--steel); text-transform:uppercase; letter-spacing:0.8px;}
  .mobile-menu a:hover{color:var(--white);}
  .mobile-menu .nav-cta{margin-left:0; flex-direction:column;}
  .mobile-menu .nav-cta .btn{width:100%;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative; overflow:hidden;
    display:grid; grid-template-columns: 1.05fr 0.95fr; align-items:stretch;
    min-height:500px;
  }
  .hero-copy{ padding:60px 40px 60px 28px; display:flex; flex-direction:column; justify-content:center; max-width:560px; margin-left:auto; position:relative; z-index:3;}
  .hero-copy h1{font-size:clamp(40px,5.2vw,64px); text-transform:uppercase;}
  .hero-copy h1 em{font-style:normal; color:var(--blue-bright);}
  .hero-copy p{color:var(--steel); font-size:17px; max-width:460px; margin:22px 0 34px;}
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
  .hero-stats{display:flex; gap:34px; margin-top:32px; padding-top:24px; border-top:1px solid var(--line);}
  .hero-stat b{display:block; font-family:'Anton'; font-size:26px; color:var(--white);}
  .hero-stat span{font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--steel);}

  .hero-media{ position:relative; }
  .hero-media img{ width:100%; height:100%; object-fit:cover; object-position:50% 25%; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0% 100%);}
  .hero-media::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(100deg, var(--ink) 0%, rgba(8,9,12,0.55) 16%, rgba(8,9,12,0) 40%);
  }
  .hero-slash{
    position:absolute; top:0; bottom:0; left:calc(14% - 3px); width:6px; background:var(--blue-bright);
    clip-path: polygon(50% 0, 100% 0, 50% 100%, 0 100%); z-index:2;
    box-shadow:0 0 40px 6px rgba(59,116,255,0.5);
  }

  /* diagonal divider strip, echoes the shield/brush-stroke in the brand */
  .stripe{
    height:14px; width:100%;
    background: repeating-linear-gradient(-55deg, var(--blue) 0 26px, var(--blue-bright) 26px 30px, var(--ink) 30px 58px);
  }

  section{padding:100px 0;}
  .section-head{max-width:640px; margin:0 0 56px;}
  .section-head h2{font-size:clamp(30px,4vw,44px); text-transform:uppercase;}
  .section-head p{color:var(--steel); font-size:16px; margin-top:14px;}
  .center{text-align:center; margin-left:auto; margin-right:auto;}

  /* ---------- HOW IT WORKS ---------- */
  .how{background:var(--ink-2); position:relative;}
  .how-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px;}
  .card{
    background:var(--ink); border:1px solid var(--line); padding:38px 34px;
    position:relative;
  }
  .card-tag{
    display:inline-block; font-size:11px; font-weight:800; letter-spacing:2px; text-transform:uppercase;
    color:var(--ink); background:var(--blue-bright); padding:6px 12px; margin-bottom:22px;
  }
  .card h3{font-size:24px; text-transform:uppercase; margin-bottom:22px;}
  .steps{list-style:none; margin:0; padding:0;}
  .steps li{
    display:grid; grid-template-columns:34px 1fr; gap:14px; padding:16px 0; border-top:1px solid var(--line);
  }
  .steps li:first-child{border-top:none;}
  .step-num{
    font-family:'Anton'; color:var(--blue-bright); font-size:20px;
  }
  .steps strong{display:block; font-size:15px; margin-bottom:4px;}
  .steps span{color:var(--steel); font-size:14px;}

  .rewards-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:32px;}
  .reward-card{padding-bottom:30px;}
  .tier-table{margin-top:20px; border:1px solid var(--line);}
  .tier-row{display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-top:1px solid var(--line); font-size:14px;}
  .tier-row:first-child{border-top:none;}
  .tier-row strong{color:var(--blue-bright); font-family:'Anton'; font-size:18px; font-weight:400;}
  .reward-note{color:var(--steel); font-size:14px; margin-top:18px; line-height:1.6;}
  .reward-note strong{color:var(--white);}

  /* ---------- SAFETY ---------- */
  .safety{background:var(--ink-2);}
  .safety-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
  .safety-item{text-align:center; padding:0 10px;}
  .safety-num{display:inline-block; font-family:'Anton'; font-size:15px; color:var(--blue-bright); border:1px solid var(--blue-bright); border-radius:50%; width:34px; height:34px; line-height:34px; margin-bottom:16px;}
  .safety-item h4{font-size:17px; text-transform:uppercase; margin-bottom:10px;}
  .safety-item p{color:var(--steel); font-size:14px; line-height:1.6;}

  /* ---------- REVIEWS ---------- */
  .reviews-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
  .review-card{background:var(--ink-2); border:1px solid var(--line); padding:28px 26px; position:relative;}
  .review-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:3px;
    background:repeating-linear-gradient(-55deg, var(--blue) 0 10px, var(--blue-bright) 10px 12px, transparent 12px 22px);
  }
  .review-stars{color:var(--blue-bright); font-size:14px; letter-spacing:2px; margin-bottom:14px;}
  .review-quote{font-size:15px; color:var(--white); line-height:1.6; margin-bottom:18px;}
  .review-author{font-size:13px; color:var(--steel);}
  .review-author strong{color:var(--white); font-weight:600;}
  .reviews-empty{
    grid-column:1/-1; text-align:center; padding:50px 20px; border:1px dashed var(--line); color:var(--steel); font-size:15px; line-height:1.6;
  }
  .reviews-empty a{color:var(--blue-bright); text-decoration:none; font-weight:700;}

  /* ---------- FAQ ---------- */
  .faq-list{max-width:760px; margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%; text-align:left; background:none; border:none; padding:22px 4px; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    font-family:'Inter'; font-size:16px; font-weight:600; color:var(--white);
  }
  .faq-icon{font-family:'Anton'; font-size:20px; color:var(--blue-bright); flex-shrink:0; transition:transform .2s;}
  .faq-item.open .faq-icon{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
  .faq-item.open .faq-a{max-height:220px;}
  .faq-a p{color:var(--steel); font-size:14px; line-height:1.7; padding:0 4px 22px;}

  /* ---------- ABOUT / FOUNDER ---------- */
  .about{ position:relative;}
  .about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px; align-items:center;}
  .about-photos{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .about-photos img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5;}
  .about-photos .tall{grid-row:1/3;}
  .about-text .eyebrow{margin-bottom:10px;}
  .about-text h2{font-size:clamp(28px,3.6vw,38px); text-transform:uppercase; margin-bottom:20px;}
  .about-text p{color:var(--steel); font-size:16px; margin-bottom:16px;}
  .about-text p strong{color:var(--white);}

  .founder-card{
    background:linear-gradient(180deg, var(--ink-3) 0%, var(--ink-2) 100%);
    border:1px solid var(--line); padding:0 0 26px; text-align:center; position:relative; overflow:hidden;
  }
  .founder-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:4px; z-index:2;
    background:repeating-linear-gradient(-55deg, var(--blue) 0 14px, var(--blue-bright) 14px 16px, transparent 16px 30px);
  }
  .founder-card img{ width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 20%; margin:0 0 18px; display:block; }
  .founder-card h4{font-family:'Anton'; font-size:20px; text-transform:uppercase; margin:0 0 6px;}
  .founder-card span{display:block; font-size:12px; color:var(--blue-bright); text-transform:uppercase; letter-spacing:1.5px; font-weight:700;}
  .founder-quote{
    margin:26px 0 0; padding:18px 20px; border-left:3px solid var(--blue-bright);
    background:var(--ink-3); font-size:15px; font-style:italic; color:var(--white);
  }
  .about-strip{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:60px;}
  .about-strip figure{margin:0; position:relative; overflow:hidden;}
  .about-strip img{width:100%; height:100%; aspect-ratio:16/9; object-fit:cover; object-position: center 25%;}
  .about-strip figcaption{
    position:absolute; left:0; bottom:0; right:0; padding:14px 16px;
    background:linear-gradient(0deg, rgba(8,9,12,0.85), transparent);
    font-size:12px; letter-spacing:0.5px; color:var(--steel); text-transform:uppercase; font-weight:600;
  }

  /* ---------- GET STARTED / FORMS ---------- */
  .start{background:var(--ink-2);}
  .tabs{display:flex; gap:0; max-width:640px; margin:0 auto 0; border:1px solid var(--line);}
  .tab-btn{
    flex:1; padding:18px 10px; background:transparent; border:none; cursor:pointer;
    color:var(--steel); font-family:'Inter'; font-weight:700; font-size:13px; letter-spacing:1px; text-transform:uppercase;
    border-right:1px solid var(--line); transition:background .15s, color .15s;
  }
  .tab-btn:last-child{border-right:none;}
  .tab-btn.active{background:var(--blue); color:#fff;}

  .form-panel{
    max-width:640px; margin:0 auto; background:var(--ink); border:1px solid var(--line); border-top:none;
    padding:44px 40px 40px;
  }
  .form-panel h3{font-size:22px; text-transform:uppercase; margin-bottom:6px;}
  .form-panel > p{color:var(--steel); font-size:14px; margin:0 0 30px;}
  .hidden{display:none !important;}

  .field{margin-bottom:20px;}
  .field label{display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--steel); margin-bottom:8px;}
  .field input, .field select, .field textarea{
    width:100%; background:var(--ink-3); border:1px solid var(--line); color:var(--white);
    padding:13px 14px; font-family:'Inter'; font-size:14px; border-radius:2px; outline:none;
    transition:border-color .15s;
  }
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--blue-bright);}
  .field textarea{resize:vertical; min-height:90px;}
  .row-2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .field-error{color:var(--danger); font-size:12px; margin-top:6px; display:none;}
  .field.invalid input, .field.invalid select, .field.invalid textarea{border-color:var(--danger);}
  .field.invalid .field-error{display:block;}
  .form-foot{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:8px; flex-wrap:wrap;}
  .form-note{font-size:12px; color:var(--steel); max-width:320px;}
  .submit-msg{
    margin-top:18px; padding:14px 16px; border-radius:2px; font-size:14px; display:none;
  }
  .submit-msg.show{display:block;}
  .submit-msg.ok{background:rgba(47,191,113,0.12); border:1px solid var(--success); color:#8ff0bb;}
  .submit-msg.err{background:rgba(255,92,92,0.12); border:1px solid var(--danger); color:#ffb3b3;}
  .browse-note{
    background:var(--ink-3); border:1px solid var(--blue-bright); border-left:3px solid var(--blue-bright);
    padding:14px 16px; font-size:13px; color:var(--steel); margin:-8px 0 20px;
  }

  /* ---------- COACH DIRECTORY ---------- */
  .coaches-filter{max-width:420px; margin:0 auto 32px;}
  .coaches-filter input{
    width:100%; background:var(--ink-3); border:1px solid var(--line); color:var(--white);
    padding:13px 16px; font-family:'Inter'; font-size:14px; border-radius:2px; outline:none;
  }
  .coaches-filter input:focus{border-color:var(--blue-bright);}
  .coaches-filter input::placeholder{color:var(--steel);}
  .coaches-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;}
  .coach-card{background:var(--ink-2); border:1px solid var(--line); position:relative; overflow:hidden; display:flex; flex-direction:column;}
  .coach-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:3px; z-index:2;
    background:repeating-linear-gradient(-55deg, var(--blue) 0 10px, var(--blue-bright) 10px 12px, transparent 12px 22px);
  }
  .coach-photo-wrap{width:100%; aspect-ratio:4/3; overflow:hidden; background:var(--ink-3); position:relative;}
  .coach-photo-wrap img{width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block;}
  .coach-rates{display:flex; gap:14px; margin-bottom:14px;}
  .coach-city{font-size:12px; color:var(--steel); margin-bottom:10px;}
  .btn-block{width:100%;}
  .coach-rates span{font-size:12px; color:var(--steel);}
  .coach-rates strong{font-family:'Anton'; font-size:16px; color:var(--blue-bright); font-weight:400; margin-right:3px;}
  .coach-avatar{
    width:100%; height:100%; background:var(--blue); color:#fff;
    display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:44px;
  }
  .coach-card-body{padding:24px; display:flex; flex-direction:column; flex:1;}
  .coach-card h4{font-size:19px; text-transform:uppercase; margin:0 0 4px;}
  .coach-card .coach-meta{font-size:12px; color:var(--blue-bright); text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:14px;}
  .coach-card p{font-size:14px; color:var(--steel); margin:0 0 20px; flex:1;}
  .coach-card .btn{width:100%; padding:11px; font-size:12px;}
  .coaches-empty{
    grid-column:1/-1; text-align:center; padding:50px 20px; border:1px dashed var(--line); color:var(--steel);
  }
  .coaches-empty a{color:var(--blue-bright); text-decoration:none; font-weight:700;}
  .requested-banner{
    max-width:640px; margin:0 auto 0; background:var(--blue); color:#fff; padding:12px 20px;
    font-size:13px; font-weight:600; text-align:center; display:none;
  }
  .requested-banner.show{display:block;}
  .requested-banner button{background:none; border:none; color:#fff; text-decoration:underline; cursor:pointer; font-size:12px; margin-left:10px;}

  /* ---------- CONTACT ---------- */
  .contact{position:relative; overflow:hidden;}
  .contact-inner{
    display:grid; grid-template-columns:1fr 1fr; align-items:center; background:var(--ink-2);
    border:1px solid var(--line);
  }
  .contact-copy{padding:60px 50px;}
  .contact-copy h2{font-size:clamp(28px,3.4vw,38px); text-transform:uppercase; margin-bottom:14px;}
  .contact-copy p{color:var(--steel); margin-bottom:28px;}
  .contact-item{display:flex; align-items:center; gap:14px; margin-bottom:16px;}
  .contact-icon{
    width:40px; height:40px; border-radius:50%; background:var(--blue); display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .contact-item div span{display:block; font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--steel); margin-bottom:2px;}
  .contact-item div strong{font-size:15px;}
  .contact-media{height:100%; min-height:380px; position:relative;}
  .contact-media img{width:100%; height:100%; object-fit:cover;}
  .contact-media::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--ink-2), rgba(18,20,27,0));}

  footer{border-top:1px solid var(--line); padding:34px 0;}
  .footer-inner{display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:14px;}
  .foot-right{display:flex; flex-direction:column; align-items:flex-end; gap:14px;}
  .foot-socials{display:flex; gap:14px; align-items:center;}
  .foot-socials a{color:var(--steel); display:flex; transition:color .15s;}
  .foot-socials a:hover{color:var(--white);}
  .footer-brand{display:flex; align-items:center; gap:10px; font-family:'Anton'; font-size:14px; letter-spacing:0.5px;}
  .footer-brand .brand-mark{height:24px; width:34px;}
  footer .foot-links{display:flex; gap:22px;}
  footer .foot-links a{font-size:12px; color:var(--steel); text-decoration:none; text-transform:uppercase; letter-spacing:1px;}
  footer .foot-links a:hover{color:var(--white);}
  footer .copyright{font-size:12px; color:var(--steel); margin-top:10px;}

  /* admin (demo) */
  .admin-toggle{
    position:fixed; bottom:18px; right:18px; z-index:60;
    background:var(--ink-3); border:1px solid var(--line); color:var(--steel);
    font-size:11px; padding:9px 14px; border-radius:20px; cursor:pointer; text-transform:uppercase; letter-spacing:1px;
  }
  .admin-panel{
    position:fixed; inset:0; background:rgba(8,9,12,0.94); z-index:70; display:none; overflow:auto; padding:60px 20px;
  }
  .admin-panel.show{display:block;}
  .admin-inner{max-width:840px; margin:0 auto;}
  .admin-inner h2{font-size:26px; text-transform:uppercase; margin-bottom:6px;}
  .admin-inner > p{color:var(--steel); font-size:13px; margin-bottom:30px;}
  #legal-content p{color:var(--steel); font-size:14px; line-height:1.7; margin-bottom:16px;}
  .admin-close{position:absolute; top:24px; right:28px; background:none; border:none; color:var(--white); font-size:26px; cursor:pointer;}
  .admin-entry{background:var(--ink-2); border:1px solid var(--line); padding:20px 22px; margin-bottom:14px;}
  .admin-entry .tag{display:inline-block; font-size:10px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; padding:4px 9px; margin-bottom:10px;}
  .tag.coach{background:var(--blue); color:#fff;}
  .tag.family{background:var(--blue-bright); color:#0a0a0a;}
  .admin-entry dl{display:grid; grid-template-columns:140px 1fr; gap:6px 12px; margin:0; font-size:13px;}
  .admin-entry dt{color:var(--steel);}
  .admin-entry dd{margin:0;}
  .admin-empty{color:var(--steel); font-size:14px;}

  @media (max-width: 880px){
    header .nav > .nav-links, header .nav > .nav-cta{display:none;}
    .nav-toggle{display:block;}
    .hero{grid-template-columns:1fr; min-height:auto;}
    .hero-media{height:340px; order:-1;}
    .hero-media img{clip-path:none; object-position:50% 25%;}
    .hero-slash{display:none;}
    .hero-copy{margin:0; max-width:100%; padding:48px 24px;}
    .how-grid{grid-template-columns:1fr;}
    .rewards-grid{grid-template-columns:1fr;}
    .safety-grid{grid-template-columns:1fr; gap:36px;}
    .foot-right{align-items:flex-start;}
    .reviews-grid{grid-template-columns:1fr;}
    .about-grid{grid-template-columns:1fr; gap:36px;}
    .about-photos{order:-1;}
    .founder-card{order:-1; max-width:280px; margin:0 auto;}
    .about-strip{grid-template-columns:1fr;}
    .contact-inner{grid-template-columns:1fr;}
    .contact-media{min-height:240px;}
    .row-2{grid-template-columns:1fr;}
    .coaches-grid{grid-template-columns:1fr;}
    section{padding:64px 0;}
    .form-panel{padding:32px 22px;}
  }
