@font-face{font-family:"Fraunces";font-weight:400;font-display:swap;src:url("../fonts/Fraunces-400.woff2") format("woff2");}
  @font-face{font-family:"Fraunces";font-weight:600;font-display:swap;src:url("../fonts/Fraunces-600.woff2") format("woff2");}
  @font-face{font-family:"Archivo";font-weight:500;font-display:swap;src:url("../fonts/Archivo-var.woff2") format("woff2");}
  @font-face{font-family:"Archivo";font-weight:700;font-display:swap;src:url("../fonts/Archivo-var.woff2") format("woff2");}

  :root{
    --paper:#f7f6f2; --panel:#ffffff; --ink:#17160f; --mut:#6f6b60;
    --line:#e5e2d8; --accent:#7a1c2b; --gold:#b0862f;
    /* soft + dark shades are derived from --accent, so one color drives everything */
    --accent-soft:color-mix(in srgb, var(--accent) 12%, #ffffff);
    --accent-dk:color-mix(in srgb, var(--accent) 78%, #000000);
    --serif:"Fraunces", Georgia, serif;
    --sans:"Archivo", system-ui, -apple-system, sans-serif;
  }
  *{margin:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;} @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{font-family:var(--sans);font-weight:500;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;}
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1080px;margin:0 auto;padding:0 30px;}
  .eyebrow{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);}
  .serif{font-family:var(--serif);}
  .tnum{font-variant-numeric:tabular-nums;}

  /* top bar */
  .top{border-bottom:1px solid var(--line);}
  .top .wrap{display:flex;justify-content:space-between;align-items:center;padding:20px 30px;}
  .logo{font-family:var(--serif);font-weight:600;font-size:22px;letter-spacing:-.01em;}
  .logo b{color:var(--accent);font-weight:600;}
  .top .cta{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.02em;padding:10px 18px;border:1px solid var(--ink);border-radius:999px;}
  .top .cta:hover{background:var(--ink);color:var(--paper);}

  /* hero */
  .hero{padding:56px 0 60px;}
  .hero .grid{display:grid;grid-template-columns:1fr 380px;gap:56px;align-items:center;}
  @media(max-width:840px){.hero .grid{grid-template-columns:1fr;gap:36px;}}
  .hero .eyebrow{margin-bottom:16px;}
  .hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(56px,10vw,108px);line-height:.92;letter-spacing:-.02em;}
  .hero .meta{margin-top:20px;font-size:16px;color:var(--mut);}
  .hero .meta b{color:var(--ink);font-weight:700;}
  .hero .quick{margin-top:28px;display:flex;gap:34px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px;}
  .hero .quick .q{text-align:center;}
  .hero .quick .q .n{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1;}
  .hero .quick .q .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:700;margin-top:6px;}
  /* portrait */
  .portrait{aspect-ratio:4/5;border-radius:14px;overflow:hidden;position:relative;background:
     linear-gradient(155deg, color-mix(in srgb, var(--accent) 82%, #000) 0%, var(--accent) 58%, color-mix(in srgb, var(--accent) 72%, #fff) 100%);box-shadow:0 30px 60px -30px rgba(20,30,25,.5);}
  .portrait .init{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:120px;color:rgba(255,255,255,.16);}
  .portrait .badge{position:absolute;top:16px;left:16px;background:rgba(255,255,255,.92);color:var(--accent);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:999px;}
  .portrait .cap{position:absolute;bottom:14px;left:16px;font-size:11px;color:rgba(255,255,255,.7);letter-spacing:.08em;text-transform:uppercase;}

  /* sections */
  section.blk{padding:44px 0;border-top:1px solid var(--line);}
  .blk-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:26px;gap:16px;flex-wrap:wrap;}
  .blk-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(26px,4vw,38px);letter-spacing:-.01em;}
  .cols{display:grid;grid-template-columns:1fr 320px;gap:52px;align-items:start;}
  @media(max-width:840px){.cols{grid-template-columns:1fr;gap:0;}}

  .film{aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#12130f;display:flex;align-items:center;justify-content:center;position:relative;}
  .film .play{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;}
  .film .play::after{content:"";border-left:24px solid var(--accent);border-top:15px solid transparent;border-bottom:15px solid transparent;margin-left:6px;}
  .film .cap{position:absolute;bottom:14px;left:16px;color:rgba(255,255,255,.85);font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;}
  .filmlinks{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;}
  .flink{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:9px 16px;border-radius:999px;}
  .flink:hover{filter:brightness(.96);}

  .meas{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  @media(max-width:520px){.meas{grid-template-columns:repeat(2,1fr);}}
  .meas .m{background:var(--panel);padding:22px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;}
  .meas .m .n{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1;}
  .meas .m .l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:700;margin-top:8px;}

  .statement{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.5;color:#2a2a20;max-width:60ch;}

  /* schedule */
  .sched .row{display:grid;grid-template-columns:120px 1fr auto;gap:22px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
  @media(max-width:600px){.sched .row{grid-template-columns:90px 1fr;}}
  .sched .date{text-align:center;}
  .sched .date .d{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1;}
  .sched .date .mo{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-top:4px;}
  .sched .ev .t{font-weight:700;font-size:17px;}
  .sched .ev .loc{color:var(--mut);font-size:14px;margin-top:2px;}
  .sched .watch{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:7px 13px;border-radius:999px;white-space:nowrap;}
  @media(max-width:600px){.sched .watch{grid-column:1/-1;justify-self:start;margin-top:6px;}}

  .eval blockquote{font-family:var(--serif);font-weight:400;font-size:23px;line-height:1.5;color:var(--ink);}
  .eval .by{margin-top:16px;font-weight:700;font-size:14px;color:var(--mut);}

  /* sidebar cards */
  .side .card{border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin-bottom:20px;background:var(--panel);}
  .side .card h3{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);margin-bottom:14px;}
  .kv{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;}
  .kv:last-child{border-bottom:none;}
  .kv .k{color:var(--mut);}
  .kv .v{font-weight:700;}
  .contact-btn{display:block;text-align:center;background:var(--accent);color:#fff;font-weight:700;font-size:15px;padding:13px;border-radius:10px;margin-top:6px;}
  .contact-btn:hover{filter:brightness(1.08);}
  .contact-note{font-size:12px;color:var(--mut);margin-top:12px;line-height:1.5;}

  footer{border-top:1px solid var(--line);padding:34px 0;margin-top:20px;}
  footer .wrap{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;color:var(--mut);font-size:13px;}
  footer .footlinks{display:flex;gap:20px;}

.side .card h3.coaches-h{margin-bottom:6px;}
.coach{padding:13px 0;border-bottom:1px solid var(--line);}
.coach:last-of-type{border-bottom:none;}
.coach .role{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;}
.coach .cn{font-weight:700;font-size:15px;margin-top:3px;}
.coach .cmail{display:inline-block;margin-top:4px;font-size:13px;color:var(--accent);text-decoration:underline;word-break:break-word;}
