:root {
  --bg:#0c1117; --panel:#141b24; --panel2:#1a2230; --line:#26303d;
  --ink:#e8edf3; --muted:#8b97a8; --accent:#d62828; --accent2:#051d3b;
  --good:#16a34a; --warn:#f59e0b; --bad:#dc2626;
  --hero1:#7c3aed; --hero2:#3b82f6;
  --sidebar-w:240px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
a{color:#9ec3ff;text-decoration:none}
a:hover{text-decoration:underline}
.muted{color:var(--muted)}
.overflow{overflow-x:auto}

/* ===== SIDEBAR ===== */
.sidebar{
  position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);
  background:var(--panel);border-right:1px solid var(--line);
  padding:1.1rem .9rem;display:flex;flex-direction:column;gap:.5rem;
  overflow-y:auto;
}
.sidebar .logo{
  font-weight:900;letter-spacing:1.5px;font-size:1.05rem;color:var(--ink);
  display:block;margin:0 0 1rem .15rem;
}
.sidebar .logo span{color:var(--accent)}
.sidebar .logo:hover{text-decoration:none}

.sidebar .me{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:.65rem;border:1px solid var(--line);border-radius:12px;
  background:var(--panel2);margin-bottom:.85rem;
}
.sidebar .avatar{
  width:54px;height:54px;border-radius:14px;background:#0a0f15;
  border:2px solid var(--accent2);display:grid;place-items:center;
  font-weight:800;font-size:1.1rem;color:var(--ink);margin-bottom:.45rem;
}
.sidebar .me-name{font-weight:600;font-size:.95rem;line-height:1.2}
.sidebar .me-meta{color:var(--muted);font-size:.78rem;word-break:break-all;line-height:1.2;margin-top:.1rem}
.sidebar .me-id{color:var(--muted);font-size:.72rem;margin-top:.2rem;letter-spacing:.5px}

.sidebar .nav{display:flex;flex-direction:column;gap:.15rem}
.nav-sep{
  font-size:.68rem;text-transform:uppercase;letter-spacing:1px;
  color:var(--muted);padding:.85rem .65rem .35rem;
}
.nav-item{
  display:flex;align-items:center;gap:.7rem;padding:.55rem .65rem;
  border-radius:8px;color:#cbd5e1;font-size:.92rem;
}
.nav-item:hover{background:var(--panel2);text-decoration:none}
.nav-item.active{background:var(--panel2);color:var(--ink);
  box-shadow:inset 3px 0 0 var(--accent2)}
.nav-item.active svg{color:var(--accent2)}
.nav-item svg{width:20px;height:20px;flex:none;color:var(--muted)}

.sidebar-foot{
  margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:.2rem;
}
.foot-link{padding:.45rem .65rem;border-radius:7px;font-size:.85rem;color:var(--ink)}
.foot-link:hover{background:var(--panel2);text-decoration:none}

/* ===== MAIN ===== */
.container{
  margin-left:var(--sidebar-w);padding:1.25rem 1.5rem;max-width:1180px;
}

/* responsive sidebar */
@media (max-width:780px){
  .sidebar{
    position:relative;width:auto;height:auto;border-right:none;
    border-bottom:1px solid var(--line);
    flex-direction:row;flex-wrap:wrap;align-items:center;padding:.6rem .8rem;
  }
  .sidebar .logo{margin:0;font-size:1rem}
  .sidebar .me{display:none}
  .sidebar .nav{flex-direction:row;flex-wrap:wrap;gap:.2rem;margin-left:auto}
  .sidebar .nav-sep{display:none}
  .nav-item span{display:none}
  .nav-item{padding:.45rem .55rem}
  .sidebar-foot{flex-direction:row;border:none;padding:0;margin-left:.5rem}
  .container{margin-left:0;padding:1rem}
}

/* ===== LOGIN ===== */
.login-body{display:grid;place-items:center;min-height:100vh;background:var(--bg)}
.login-card{background:var(--panel);padding:2rem 2.25rem;border:1px solid var(--line);
  border-radius:14px;min-width:320px;display:flex;flex-direction:column;gap:.7rem}
.login-card h1{margin:.2rem 0 0;font-size:1.5rem;letter-spacing:1px}
.login-card h1 span{color:var(--accent)}
.login-card label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted);gap:.25rem}
.login-card input{padding:.55rem .65rem;border:1px solid var(--line);border-radius:7px;
  background:#0a0f15;color:var(--ink);font-size:1rem}
.login-card button{margin-top:.5rem;padding:.65rem 1rem;border:none;border-radius:7px;
  background:var(--accent);color:#fff;font-weight:600;cursor:pointer}
.error{background:#3a1414;border:1px solid #7a2020;color:#fecaca;padding:.5rem .75rem;border-radius:7px}

/* ===== HERO ===== */
.hero{
  position:relative;border-radius:16px;padding:1.5rem 1.75rem;
  background:linear-gradient(135deg, var(--hero1) 0%, var(--hero2) 100%);
  color:#fff;overflow:hidden;margin:.6rem 0 1rem;
  box-shadow:0 12px 32px rgba(60, 30, 180, .25);
}
.hero::after{
  content:"";position:absolute;right:-40px;top:-40px;width:240px;height:240px;
  background:radial-gradient(circle, rgba(255,255,255,.15), transparent 70%);
  pointer-events:none;
}
.hero .eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;
  opacity:.8;margin-bottom:.3rem}
.hero h2{margin:0;font-size:1.4rem;border:none;padding:0;line-height:1.25}
.hero .hero-meta{margin-top:.35rem;opacity:.85;font-size:.9rem}
.hero .hero-cta{
  display:inline-block;margin-top:.9rem;padding:.55rem 1.1rem;
  background:#fff;color:#3b22a8;border-radius:8px;font-weight:600;font-size:.85rem;
}
.hero .hero-cta:hover{background:#f0eaff;text-decoration:none}
.hero.idle{
  background:linear-gradient(135deg, #1f2937 0%, #0f172a 100%);
  box-shadow:none;border:1px solid var(--line);
}

/* ===== CARDS / GRIDS ===== */
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:1rem 1.1rem;margin:.85rem 0;display:flex;flex-direction:column;gap:.6rem}
.card.success{border-color:#1f6f37;background:#102819}
.card.warn{border-color:#7a5b18;background:#2a2110}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}
.split-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:780px){.split-2{grid-template-columns:1fr}}
.big{font-size:1.6rem;font-weight:700}
.label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}

/* "Today" panel */
.today-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.25rem}
.today-panel h3{margin:0 0 .4rem;font-size:1rem;border:none;padding:0}
.today-empty{color:var(--muted);font-size:.9rem;padding:.4rem 0}

/* ===== FORMS ===== */
label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted);gap:.25rem}
label.inline{flex-direction:row;align-items:center;gap:.4rem;color:var(--ink)}
input,select,textarea{padding:.5rem .6rem;border:1px solid var(--line);border-radius:6px;
  background:#0a0f15;color:var(--ink);font:inherit}
textarea{resize:vertical;min-height:60px}
button,.btn{padding:.55rem 1rem;border:none;border-radius:7px;background:var(--accent2);
  color:#fff;font-weight:600;cursor:pointer;font-size:.95rem}
button:hover,.btn:hover{filter:brightness(1.1)}
.btn-mini{padding:.3rem .55rem;font-size:.8rem;background:#1c2532;color:var(--ink);
  border-radius:5px;text-decoration:none;display:inline-block;border:none;cursor:pointer}
.btn-mini:hover{background:#26303d;text-decoration:none}
.btn-pay{background:var(--good);font-size:1.05rem;padding:.7rem 1.25rem}
.rowflex{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}

/* ===== TABLES ===== */
.data{width:100%;border-collapse:collapse;margin:.5rem 0}
.data th,.data td{border-bottom:1px solid var(--line);padding:.45rem .55rem;text-align:left;vertical-align:top}
.data th{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
.data td.num,.data th.num{text-align:right;font-variant-numeric:tabular-nums}
.data tr.foul-row td{opacity:.55}
.data tr.pr-row{background:#0e1d12}

/* ===== feed & notes ===== */
.feed{list-style:none;padding:0;margin:.25rem 0}
.feed li{padding:.45rem 0;border-bottom:1px solid var(--line)}
.notes{list-style:none;padding:0;margin:.25rem 0}
.notes li{background:var(--panel);border:1px solid var(--line);border-radius:8px;
  padding:.65rem .85rem;margin:.5rem 0}
.notes li.private{border-color:#7a5b18}
.notes .meta{font-size:.75rem;color:var(--muted);margin-bottom:.3rem}
.notes .body{white-space:pre-wrap}
.badge{background:#2a2110;color:#fcd34d;padding:.1rem .4rem;border-radius:4px;font-size:.7rem}
.pr-badge{background:#102819;color:#86efac;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:700;margin-left:.3rem}

/* ===== pills ===== */
.status{padding:.15rem .5rem;border-radius:99px;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px}
.status.open{background:#1c2532;color:#fcd34d}
.status.paid{background:#102819;color:#86efac}
.status.void{background:#2a1010;color:#fca5a5}

.w-pill{display:inline-block;min-width:1.6rem;text-align:center;padding:.05rem .35rem;
  border-radius:4px;font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}
.w-pill.g{background:#102819;color:#86efac}
.w-pill.y{background:#2a2110;color:#fcd34d}
.w-pill.r{background:#2a1010;color:#fca5a5}
.w-cell{display:flex;gap:.15rem;flex-wrap:wrap}
.wellness-grid td:not(:first-child){text-align:center}

.pr-event{margin-bottom:.5rem}
.pr-event h3{margin:.8rem 0 .25rem;font-size:.95rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}

/* ===== program grid ===== */
.program-grid{display:grid;grid-template-columns:auto repeat(7, minmax(110px, 1fr));
  gap:.4rem;margin-top:.6rem}
.program-grid .pcell{background:var(--panel);border:1px solid var(--line);
  border-radius:8px;padding:.5rem .6rem;min-height:60px;font-size:.8rem}
.program-grid .pcell.head{background:transparent;border:none;font-weight:700;text-align:center;
  color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;padding:.2rem 0}
.program-grid .pcell.weekhead{background:transparent;border:none;font-weight:700;
  text-align:right;padding-right:.4rem;color:var(--muted);font-size:.78rem}
.program-grid .pitem{display:block;padding:.3rem .4rem;margin-top:.3rem;
  background:#0a0f15;border:1px solid var(--line);border-radius:5px;color:var(--ink);
  line-height:1.25;font-size:.78rem}
.program-grid .pitem.done{opacity:.55;text-decoration:line-through}
.program-grid .pitem .kk{
  display:inline-block;padding:0 .25rem;border-radius:3px;font-size:.65rem;
  margin-right:.25rem;text-transform:uppercase;letter-spacing:.5px;
}
.kk-throws{background:#3a1414;color:#fca5a5}
.kk-lift{background:#142233;color:#9ec3ff}
.kk-conditioning{background:#102819;color:#86efac}
.kk-mobility{background:#2a2110;color:#fcd34d}
.kk-rest{background:#1c2532;color:var(--muted)}
.kk-meet{background:#3a1f6f;color:#d8b4fe}

/* ===== resource cards ===== */
.res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.8rem}
.res-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.85rem 1rem}
.res-card .kind{display:inline-block;padding:.1rem .4rem;border-radius:4px;background:#1c2532;
  color:var(--ink);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;margin-right:.3rem}
.res-card .tag{color:var(--muted);font-size:.78rem}
.res-card h3{margin:.3rem 0 .25rem;font-size:1rem;border:none;padding:0}

/* ===== partner / coach cards ===== */
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;margin-top:.5rem}
.person{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem}
.person .avatar-lg{width:60px;height:60px;border-radius:50%;background:#0a0f15;
  border:2px solid var(--accent2);display:grid;place-items:center;
  font-weight:800;font-size:1.1rem;margin-bottom:.2rem}
.person .pname{font-weight:600}
.person .pmeta{color:var(--muted);font-size:.78rem}

/* ===== video player ===== */
.video-wrap{margin:.5rem 0}
.player{width:100%;max-width:900px;background:#000;border-radius:10px;display:block}
.vid-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem;
  padding:.5rem .65rem;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.vid-controls button{padding:.3rem .6rem;font-size:.85rem;background:#1c2532;color:var(--ink);border-radius:5px}
.vid-controls button:hover{background:#26303d}
.vid-controls label{flex-direction:row;align-items:center;gap:.35rem;color:var(--ink);font-size:.85rem}
.vid-controls select{padding:.25rem .4rem;font-size:.85rem}
.vid-sep{color:var(--line)}
.vid-help{font-size:.8rem;margin:.2rem 0 1rem}
kbd{background:#1c2532;padding:.05rem .35rem;border:1px solid var(--line);border-radius:4px;font:13px ui-monospace,Menlo,monospace}

/* ===== misc ===== */
.flash{background:#142233;border:1px solid #2a3f5c;color:#cfe2ff;padding:.5rem .75rem;
  border-radius:7px;margin:.5rem 0}
.flash.success{background:#102819;border-color:#1f6f37;color:#bbf7d0}
pre{background:#0a0f15;padding:.75rem;border-radius:7px;border:1px solid var(--line);
  white-space:pre-wrap;font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}
h1{margin:.5rem 0 1rem}
h2{margin-top:1.5rem;border-bottom:1px solid var(--line);padding-bottom:.3rem}
h3{margin:.5rem 0}
details summary{cursor:pointer;color:var(--ink)}
optgroup{color:var(--muted)}

/* Recordings grid */
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;margin-top:.6rem}
.video-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.75rem .85rem}
.video-card .vtitle{font-weight:600;line-height:1.2;margin-bottom:.2rem;display:block;color:var(--ink)}
.video-card .vmeta{color:var(--muted);font-size:.78rem}

/* ===== The Grind ========================================================= */
.grind-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem;margin-top:.6rem}
.grind-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;color:var(--ink);text-decoration:none;transition:border-color .12s,transform .12s}
.grind-card:hover{border-color:#3b4d6a;text-decoration:none;transform:translateY(-1px)}
.grind-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem}
.grind-name{font-weight:700;font-size:1.05rem}
.grind-days{font-size:.78rem;text-transform:uppercase;letter-spacing:1px}
.grind-bar{background:#0a0f15;height:8px;border-radius:99px;overflow:hidden;border:1px solid var(--line);margin:.4rem 0}
.grind-bar span{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#3b82f6);border-radius:99px;transition:width .25s}
.grind-meta{margin-top:.3rem;font-size:.82rem;color:var(--ink)}

.grind-rules{list-style:none;padding:0;margin:.5rem 0}
.grind-rules li{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:#11182a;border:1px solid var(--line);border-radius:10px;padding:.85rem 1.1rem;margin:.45rem 0}
.grind-rules li.done{border-color:#5b3aad;background:#181238}
.grind-rule-label{font-size:.95rem}
.grind-rules li.done .grind-rule-label{opacity:.85}
.grind-check{width:34px;height:34px;border-radius:50%;background:transparent;border:1.5px solid #3b4d6a;color:var(--muted);
  display:grid;place-items:center;padding:0;cursor:pointer;transition:all .12s}
.grind-check:hover{border-color:#7c3aed;color:#a78bfa}
.grind-rules li.done .grind-check{border-color:#7c3aed;color:#a78bfa;background:rgba(124,58,237,.12)}
.grind-check svg{width:18px;height:18px}

.grind-history{font-size:.75rem}
.grind-history th, .grind-history td{padding:.25rem .35rem}
.grind-history th.num{text-align:center}
.grind-history td.num{text-align:center}
.tick-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1c2532;border:1px solid var(--line)}
.tick-dot.done{background:#a78bfa;border-color:#7c3aed}
.tick-dot.today{background:transparent;border-color:#a78bfa;box-shadow:0 0 0 2px rgba(167,139,250,.18)}

.login-back{margin-top:.6rem;text-align:center;font-size:.8rem;color:var(--muted);text-decoration:none}
.login-back:hover{color:var(--ink);text-decoration:underline}

/* ===== Welcome (public marketing page) ===== */
.welcome-body{
  background:#f4f1ec;color:#0c0c0e;
  font-family:'Inter Tight','Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  margin:0;line-height:1.4;overflow-x:hidden;
}

/* ===== Nav ===== */
.w-nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem 2rem;color:#fff;transition:all .25s ease;
}
.w-nav.scrolled{background:rgba(12,12,14,.92);backdrop-filter:blur(8px);padding:.7rem 2rem}
.w-brand{
  font-family:'Inter Tight',sans-serif;font-weight:900;letter-spacing:1.5px;
  font-size:1.05rem;color:#fff;text-decoration:none;transition:opacity .15s;
}
.w-brand span{color:#f0a000;margin-left:.15rem}
.w-brand:hover{text-decoration:none;opacity:.85}
.w-links{display:flex;gap:1.8rem;align-items:center}
.w-links > a{color:#fff;text-decoration:none;font-size:.85rem;font-weight:500;letter-spacing:.3px;opacity:.85}
.w-links > a:hover{opacity:1;text-decoration:none}
.w-cta{
  padding:.65rem 1.4rem;background:#fff;color:#0c0c0e;
  border-radius:0;font-size:.78rem;letter-spacing:1px;text-transform:uppercase;
  text-decoration:none;font-weight:700;transition:all .15s;
  display:inline-block;border:1px solid #fff;cursor:pointer;
}
.w-cta:hover{background:transparent;color:#fff;text-decoration:none}
.w-cta.primary{background:#0c0c0e;border-color:#0c0c0e;color:#fff}
.w-cta.primary:hover{background:#f0a000;border-color:#f0a000;color:#0c0c0e}
.w-cta.ghost{background:transparent;color:#fff;border:1px solid #fff}
.w-cta.ghost:hover{background:#fff;color:#0c0c0e}

/* ===== HERO ===== */
.w-hero{
  position:relative;height:100vh;min-height:680px;
  background:#0c0c0e;color:#fff;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.w-hero-img-wrap{position:absolute;inset:0;overflow:hidden}
.w-hero-img{
  position:absolute;inset:0;width:100%;height:110%;
  object-fit:cover;object-position:center 35%;
  filter:grayscale(15%) contrast(108%) brightness(80%);
  transform:translate3d(0,0,0) scale(1.08);
  transition:transform 0.05s linear;
  will-change:transform;
  animation:kenburns 24s ease-in-out infinite alternate;
}
@keyframes kenburns{
  0%   { transform:translate3d(-1%,0,0) scale(1.08); }
  100% { transform:translate3d(1%,0,0) scale(1.14); }
}
.w-hero-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.25) 40%, rgba(0,0,0,.78) 100%);
}
.w-hero-text{
  position:relative;z-index:2;padding:0 2rem 5rem;max-width:1400px;
  transition:transform .15s ease-out;
  --mx:0px; --my:0px;
}
.w-hero-eyebrow{
  font-size:.72rem;letter-spacing:3px;text-transform:uppercase;font-weight:600;
  color:rgba(255,255,255,.78);margin-bottom:1.4rem;
  display:inline-flex;align-items:center;gap:.6rem;
}
.w-hero-eyebrow .dot{
  width:8px;height:8px;border-radius:50%;background:#f0a000;
  box-shadow:0 0 0 0 rgba(240,160,0,.7);
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%   { box-shadow:0 0 0 0 rgba(240,160,0,.7); }
  70%  { box-shadow:0 0 0 12px rgba(240,160,0,0); }
  100% { box-shadow:0 0 0 0 rgba(240,160,0,0); }
}
.w-hero-headline{
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(2.6rem, 9vw, 8.6rem);line-height:.95;letter-spacing:-.035em;
  margin:0 0 1.8rem;color:#fff;text-transform:uppercase;
  transform:translate3d(var(--mx,0px), var(--my,0px), 0);
  transition:transform .25s cubic-bezier(.2,.6,.2,1);
}
.w-hero-headline .word{
  display:inline-block;opacity:0;transform:translateY(28px);
  animation:wordReveal .85s cubic-bezier(.2,.6,.2,1) forwards;
  margin-right:.18em;
}
.w-hero-headline .word.shown{opacity:1;transform:none;animation:none}
@keyframes wordReveal{
  to { opacity:1; transform:translateY(0); }
}
.w-hero-actions{display:flex;gap:.8rem;margin-top:1rem;flex-wrap:wrap;animation:wordReveal 1.2s 1.6s both}
.w-hero-foot{
  position:relative;z-index:2;display:flex;justify-content:space-between;
  padding:0 2rem 1.5rem;font-size:.75rem;letter-spacing:1px;color:rgba(255,255,255,.7);
}
.w-scroll{display:inline-flex;align-items:center;gap:.6rem;letter-spacing:2px;font-weight:600}
.w-scroll .line{
  display:inline-block;width:34px;height:1px;background:rgba(255,255,255,.5);
  animation:scrollLine 2.6s ease-in-out infinite;transform-origin:left;
}
@keyframes scrollLine{
  0%,100%  { transform:scaleX(.4); opacity:.4; }
  50%      { transform:scaleX(1); opacity:1; }
}

/* ===== Sections ===== */
.w-section{padding:6rem 2rem;background:#f4f1ec;position:relative}
.w-section.dark{background:#0c0c0e;color:#fff}
.w-section-inner{max-width:1240px;margin:0 auto}
.w-section-inner.narrow{max-width:820px;text-align:center}
.w-eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:3px;
  text-transform:uppercase;color:#0c0c0e;opacity:.55;margin-bottom:1.2rem;
}
.w-eyebrow.light{color:#fff;opacity:.6}
.w-h2{
  font-family:'Inter Tight',sans-serif;font-weight:700;
  font-size:clamp(1.8rem, 4vw, 3.2rem);line-height:1.05;letter-spacing:-.02em;
  margin:0 0 1.5rem;max-width:1100px;
}
.w-h2.light{color:#fff}
.w-h2 em{font-style:normal;color:#c84d29;font-weight:900}
.w-lead{font-size:1.15rem;line-height:1.55;color:#2a2a30;max-width:780px;margin:0 0 2.5rem}

/* ===== Reveal animations ===== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease, transform .8s cubic-bezier(.2,.6,.2,1)}
.reveal.shown{opacity:1;transform:none}
.reveal-img{opacity:0;clip-path:inset(0 100% 0 0);transition:opacity .9s ease, clip-path 1.1s cubic-bezier(.6,.0,.2,1)}
.reveal-img.shown{opacity:1;clip-path:inset(0 0 0 0)}

/* ===== Quote ===== */
.w-quote{
  font-family:'Inter Tight',sans-serif;font-weight:700;
  font-size:clamp(1.4rem,3.2vw,2.4rem);line-height:1.25;letter-spacing:-.015em;
  margin:0 0 1.5rem;color:#fff;
}
.w-quote em{font-style:normal;color:#f0a000;font-weight:900}
.w-cite{display:block;font-size:.9rem;color:rgba(255,255,255,.7);font-style:normal}
.w-cite strong{color:#fff;font-weight:600}

/* ===== Numbers grid ===== */
.w-num-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:3rem 2rem;margin-top:2rem;
  border-top:1px solid rgba(0,0,0,.1);padding-top:2.5rem;
}
.w-num{
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(2.8rem,5.5vw,4.8rem);line-height:1;letter-spacing:-.03em;
  color:#0c0c0e;
}
.w-num-lbl{
  font-size:.78rem;letter-spacing:1.5px;text-transform:uppercase;
  color:#5a5a60;margin-top:.6rem;font-weight:600;line-height:1.4;
}

/* ===== Feature blocks ===== */
.w-block{
  display:grid;grid-template-columns:1fr 1fr;gap:0;background:#f4f1ec;align-items:stretch;
}
.w-block.reverse{direction:rtl}
.w-block.reverse > *{direction:ltr}
.w-block-img{position:relative;min-height:520px;overflow:hidden}
.w-block-img img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;filter:grayscale(8%) contrast(102%);
  transition:transform 1s cubic-bezier(.2,.6,.2,1);
}
.w-block-img:hover img{transform:scale(1.04)}
.w-block-text{padding:5rem 4rem;display:flex;flex-direction:column;justify-content:center;background:#f4f1ec}
.w-h3{
  font-family:'Inter Tight',sans-serif;font-weight:700;
  font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.1;letter-spacing:-.02em;
  margin:0 0 1rem;color:#0c0c0e;
}
.w-block-text p{font-size:1rem;line-height:1.6;color:#3a3a40;margin:0 0 1.2rem;max-width:520px}
.w-block-text p strong{color:#0c0c0e;font-weight:700}
.w-bullets{list-style:none;padding:0;margin:0;font-size:.92rem;color:#3a3a40}
.w-bullets li{padding:.5rem 0;border-top:1px solid rgba(0,0,0,.1);position:relative;padding-left:1.5rem}
.w-bullets li:before{content:"→";position:absolute;left:0;color:#c84d29;font-weight:700}
.w-block kbd{
  background:#0c0c0e;color:#fff;padding:.05rem .35rem;border-radius:3px;
  font-family:ui-monospace,Menlo,monospace;font-size:.78rem;
}

/* ===== People (athlete/coach cards) ===== */
.w-people-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2rem;
}
.w-person{
  background:#fff;border:1px solid rgba(0,0,0,.08);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .35s cubic-bezier(.2,.6,.2,1), box-shadow .35s;
}
.w-person:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(0,0,0,.12)}
.w-person-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:#0c0c0e}
.w-person-img.portrait{aspect-ratio:3/4}
.w-person-img img{
  width:100%;height:100%;object-fit:cover;object-position:center 30%;
  transition:transform .8s cubic-bezier(.2,.6,.2,1);filter:grayscale(8%) contrast(105%);
}
.w-person:hover .w-person-img img{transform:scale(1.06)}
.w-person-body{padding:1.4rem 1.4rem 1.6rem}
.w-person-name{
  font-family:'Inter Tight',sans-serif;font-size:1.4rem;font-weight:700;letter-spacing:-.01em;
  margin-bottom:.2rem;
}
.w-person-meta{color:#5a5a60;font-size:.82rem;margin-bottom:.9rem;letter-spacing:.3px}
.w-person-stats{list-style:none;padding:0;margin:0;font-size:.88rem}
.w-person-stats li{padding:.45rem 0;border-top:1px solid rgba(0,0,0,.08);
  display:grid;grid-template-columns:90px 1fr;gap:.6rem;align-items:baseline}
.w-person-stats li:first-child{border-top:none}
.w-person-stats li span{color:#7a7a82;font-size:.72rem;text-transform:uppercase;letter-spacing:1px;font-weight:600}
.w-person-stats li strong{color:#0c0c0e;font-weight:700}
.w-person-stats .muted{color:#888;font-weight:400;font-size:.78rem}
.w-fineprint{margin-top:2.5rem;color:#5a5a60;font-size:.88rem;line-height:1.6;max-width:1000px}

/* ===== Timeline ===== */
.w-timeline{
  list-style:none;padding:0;margin:2.5rem 0 0;
  display:flex;flex-direction:column;gap:1.6rem;
  position:relative;
}
.w-timeline:before{
  content:"";position:absolute;left:128px;top:.6rem;bottom:.6rem;width:1px;
  background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,rgba(240,160,0,.4) 50%,rgba(255,255,255,.1) 100%);
}
.w-timeline li{
  display:grid;grid-template-columns:120px 1fr;gap:2rem;align-items:start;position:relative;
  padding-left:.5rem;
}
.w-timeline li:before{
  content:"";position:absolute;left:124px;top:.6rem;width:10px;height:10px;border-radius:50%;
  background:#f0a000;box-shadow:0 0 0 4px rgba(240,160,0,.18);
}
.w-timeline li.milestone:before{background:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.22)}
.w-time-year{
  font-family:'Inter Tight',sans-serif;font-weight:900;font-size:1.4rem;
  color:#f0a000;line-height:1;letter-spacing:-.01em;text-align:right;padding-top:.1rem;
}
.w-timeline h4{
  font-family:'Inter Tight',sans-serif;font-size:1.15rem;margin:0 0 .35rem;color:#fff;font-weight:700;letter-spacing:-.01em;
}
.w-timeline p{color:rgba(255,255,255,.7);font-size:.95rem;line-height:1.55;margin:0}
.w-timeline p strong{color:#fff}

/* ===== Programs grid ===== */
.w-prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}
.w-prog-grid > div{
  background:#fff;border:1px solid rgba(0,0,0,.08);padding:1.5rem 1.6rem;
  transition:border-color .2s,transform .2s;
}
.w-prog-grid > div:hover{border-color:#0c0c0e;transform:translateY(-3px)}
.w-prog-grid h4{
  font-family:'Inter Tight',sans-serif;font-size:1.1rem;font-weight:700;
  margin:0 0 .5rem;color:#0c0c0e;letter-spacing:-.01em;
  display:flex;justify-content:space-between;align-items:center;gap:.5rem;
}
.w-prog-grid p{color:#5a5a60;font-size:.9rem;line-height:1.5;margin:0}
.w-new{background:#c84d29;color:#fff;font-size:.6rem;padding:.15rem .45rem;border-radius:0;letter-spacing:1px;font-weight:700;text-transform:uppercase}

/* ===== Final CTA ===== */
.w-final{
  position:relative;padding:8rem 2rem;color:#fff;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;
}
.w-final-bg{position:absolute;inset:0}
.w-final-bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 25%;
  filter:grayscale(35%) contrast(105%) brightness(55%);
}
.w-final-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(12,12,14,.6) 0%, rgba(12,12,14,.85) 100%);
}
.w-final-text{position:relative;z-index:2;max-width:760px}
.w-final-text h2{
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(2rem,5vw,3.8rem);line-height:1.05;letter-spacing:-.02em;
  margin:0 0 1.2rem;color:#fff;text-transform:uppercase;
}
.w-final-text p{font-size:1.05rem;line-height:1.55;color:rgba(255,255,255,.85);margin:0 0 2rem}
.w-final-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ===== Footer ===== */
.w-foot{
  background:#0c0c0e;color:rgba(255,255,255,.55);
  display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;
  padding:2rem;font-size:.78rem;letter-spacing:.3px;gap:1.5rem;
}
.w-foot strong{color:#fff;font-weight:900;letter-spacing:1px;margin-right:.6rem}
.w-foot .muted{font-size:.72rem;text-align:center;color:rgba(255,255,255,.45);line-height:1.5}
.w-foot a{color:rgba(255,255,255,.7);text-decoration:none}
.w-foot a:hover{color:#fff;text-decoration:underline}
.w-foot > div:last-child{text-align:right}
.w-foot > div:last-child a{margin-left:.8rem}

/* ===== Responsive ===== */
@media (max-width:1000px){
  .w-num-grid{grid-template-columns:repeat(2,1fr)}
  .w-people-grid{grid-template-columns:1fr;gap:1.5rem}
  .w-person{flex-direction:row}
  .w-person-img{aspect-ratio:auto;width:38%;min-height:320px}
  .w-person-img.portrait{aspect-ratio:auto}
  .w-person-body{flex:1}
  .w-prog-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:780px){
  .w-block{grid-template-columns:1fr}
  .w-block.reverse{direction:ltr}
  .w-block-img{min-height:340px}
  .w-block-text{padding:3rem 1.5rem}
  .w-timeline:before{left:60px}
  .w-timeline li{grid-template-columns:52px 1fr;gap:1.5rem}
  .w-timeline li:before{left:56px}
  .w-time-year{font-size:1rem;text-align:right}
  .w-foot{grid-template-columns:1fr;text-align:center}
  .w-foot > div:last-child{text-align:center}
}
@media (max-width:640px){
  .w-nav{padding:.9rem 1.2rem}
  .w-nav.scrolled{padding:.6rem 1.2rem}
  .w-links{gap:.9rem}
  .w-links > a:not(.w-cta){display:none}
  .w-cta{padding:.55rem 1rem;font-size:.72rem}
  .w-hero{min-height:580px}
  .w-hero-text{padding:0 1.2rem 3rem}
  .w-hero-foot{padding:0 1.2rem 1rem;flex-direction:column;gap:.3rem;align-items:flex-start}
  .w-section{padding:4rem 1.2rem}
  .w-num-grid{grid-template-columns:1fr;gap:2rem}
  .w-person{flex-direction:column}
  .w-person-img{width:100%;aspect-ratio:4/3}
  .w-prog-grid{grid-template-columns:1fr}
  .w-final{padding:5rem 1.2rem}
}

.login-back{margin-top:.6rem;text-align:center;font-size:.8rem;color:var(--muted);text-decoration:none}
.login-back:hover{color:var(--ink);text-decoration:underline}

/* ===== Welcome v3: slideshow, strips, dense stats, roster, initials portraits ===== */

/* --- denser stat grid for "quantity" --- */
.w-num-grid.dense{
  grid-template-columns:repeat(4,1fr);gap:1.6rem 1.2rem;padding-top:2rem;
}
.w-num-grid.dense .w-num{font-size:clamp(1.8rem,3.2vw,2.8rem)}
.w-num-grid.dense .w-num-lbl{font-size:.7rem;letter-spacing:1.2px}
@media (max-width:900px){.w-num-grid.dense{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.w-num-grid.dense{grid-template-columns:repeat(2,1fr);gap:1.3rem}}

/* --- section separator image strips --- */
.w-strip{
  position:relative;height:240px;overflow:hidden;background:#0c0c0e;display:block;
}
.w-strip img{
  width:100%;height:100%;object-fit:cover;object-position:center 35%;
  filter:grayscale(20%) contrast(108%) brightness(70%);
}
.w-strip-cap{
  position:absolute;left:0;right:0;bottom:0;padding:1.2rem 2rem;
  background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 100%);
  color:#fff;font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;
}
.w-strip-cap span{font-weight:900;color:#f0a000;margin-right:.5rem}
.w-section + .w-strip, .w-strip + .w-section{margin:0}
@media (max-width:640px){.w-strip{height:180px}.w-strip-cap{padding:.9rem 1.2rem;font-size:.7rem}}

/* --- light lead text for dark sections --- */
.w-lead.light{color:rgba(255,255,255,.78)}

/* --- showcase slideshow --- */
.w-slider{
  position:relative;margin-top:2.5rem;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);overflow:hidden;
}
.w-slider-track{
  display:flex;width:100%;transition:transform .85s cubic-bezier(.2,.6,.2,1);
}
.w-slide{
  flex:0 0 100%;display:grid;grid-template-columns:1fr 1fr;min-height:480px;
}
.w-slide-img{position:relative;overflow:hidden;background:#000}
.w-slide-img img{
  width:100%;height:100%;object-fit:cover;object-position:center 30%;
  filter:grayscale(15%) contrast(105%) brightness(95%);
  transition:transform 8s cubic-bezier(.2,.6,.2,1);
}
.w-slide.w-slider-active .w-slide-img img{transform:scale(1.08)}
.w-slide-body{padding:2.5rem 2.2rem;display:flex;flex-direction:column;justify-content:center;gap:.7rem;background:#16161d}
.w-slide-eyebrow{font-size:.7rem;letter-spacing:3px;text-transform:uppercase;color:#f0a000;font-weight:700}
.w-slide-name{
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05;letter-spacing:-.02em;color:#fff;
}
.w-slide-line{color:rgba(255,255,255,.78);font-size:.95rem;line-height:1.55;margin:0}
.w-slide-line strong{color:#fff;font-weight:700}
.w-slide-stats{list-style:none;padding:0;margin:.5rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:.4rem .8rem;font-size:.82rem}
.w-slide-stats li{display:flex;flex-direction:column;gap:.1rem;padding:.4rem 0;border-top:1px solid rgba(255,255,255,.1)}
.w-slide-stats li span{color:rgba(255,255,255,.5);font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}
.w-slide-stats li strong{color:#fff;font-weight:600}

.w-slider-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;
  border:1px solid rgba(255,255,255,.25);font-size:1.6rem;line-height:1;
  display:grid;place-items:center;cursor:pointer;transition:all .18s;font-family:'Inter Tight';
}
.w-slider-arrow:hover{background:#f0a000;color:#0c0c0e;border-color:#f0a000}
.w-slider-arrow.prev{left:1rem}
.w-slider-arrow.next{right:1rem}
.w-slider-dots{
  position:absolute;bottom:1rem;left:0;right:0;z-index:5;
  display:flex;justify-content:center;gap:.5rem;padding:0;
}
.w-slider-dots button{
  width:32px;height:4px;border:none;background:rgba(255,255,255,.3);padding:0;
  cursor:pointer;border-radius:0;transition:background .18s,width .18s;
}
.w-slider-dots button:hover{background:rgba(255,255,255,.55)}
.w-slider-dots button.active{background:#f0a000;width:48px}
.w-slider-progress{
  position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.08);z-index:4;
}
.w-slider-progress span{display:block;height:100%;background:#f0a000;width:0%}
@media (max-width:780px){
  .w-slide{grid-template-columns:1fr;min-height:auto}
  .w-slide-img{height:280px}
  .w-slide-body{padding:1.8rem 1.4rem}
  .w-slider-arrow{width:36px;height:36px;font-size:1.3rem}
  .w-slider-arrow.prev{left:.5rem}
  .w-slider-arrow.next{right:.5rem}
}

/* --- coach initials portraits --- */
.w-person-img.initials{
  background:var(--ini-bg,#3a2050);display:grid;place-items:center;aspect-ratio:3/4;
  position:relative;overflow:hidden;
}
.w-person-img.initials::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.18),transparent 60%);
  pointer-events:none;
}
.w-ini{
  font-family:'Inter Tight',sans-serif;font-weight:900;letter-spacing:-.04em;
  font-size:clamp(4.5rem,7vw,7rem);color:#fff;line-height:1;
  text-shadow:0 4px 16px rgba(0,0,0,.3);position:relative;z-index:2;
}

/* --- 4-up people grid --- */
.w-people-grid.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:1100px){.w-people-grid.four{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.w-people-grid.four{grid-template-columns:1fr}}

/* --- roster --- */
.w-h3.sub{
  font-family:'Inter Tight',sans-serif;font-size:1rem;font-weight:700;
  text-transform:uppercase;letter-spacing:2px;color:#5a5a60;
  margin:2.5rem 0 1.2rem;padding-bottom:.5rem;border-bottom:1px solid rgba(0,0,0,.12);
}
.w-roster{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:.6rem;margin-top:1rem;
}
.w-roster-card{
  background:#fff;border:1px solid rgba(0,0,0,.08);border-left:3px solid #c84d29;
  padding:.8rem 1rem;display:grid;grid-template-columns:auto auto 1fr;gap:.3rem .8rem;
  align-items:baseline;transition:transform .15s,box-shadow .15s;
}
.w-roster-card:hover{transform:translateX(2px);box-shadow:0 4px 12px rgba(0,0,0,.06)}
.w-roster-card.featured{
  background:linear-gradient(135deg,#fff7ed 0%,#fed7aa 100%);
  border-left-color:#f0a000;border-left-width:4px;
}
.w-roster-card.featured .w-roster-rank{color:#f0a000}
.w-roster-card.featured .w-roster-pr{color:#0c0c0e}
.w-roster-rank{
  font-family:'Inter Tight',sans-serif;font-weight:900;font-size:.78rem;
  color:#c84d29;letter-spacing:1px;min-width:1.5rem;
}
.w-roster-pr{
  font-family:'Inter Tight',sans-serif;font-weight:900;font-size:1.05rem;
  color:#c84d29;letter-spacing:-.01em;min-width:4.5rem;
}
.w-roster-pr .muted{color:#888;font-weight:600;font-size:.72rem}
.w-roster-name{
  font-weight:700;font-size:.95rem;color:#0c0c0e;grid-column:3;grid-row:1;
}
.w-roster-school{
  grid-column:2/4;grid-row:2;
  color:#5a5a60;font-size:.78rem;line-height:1.3;
}
.w-roster-school span{color:#bbb;margin:0 .25rem}
.w-roster-school em{color:#f0a000;font-style:normal;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;margin-left:.3rem}
@media (max-width:640px){
  .w-roster{grid-template-columns:1fr}
  .w-roster-card{padding:.7rem .85rem}
}

/* ===== Welcome v4: events scroll, athlete roster cards ===== */

/* ---- Events scroll: each event is full viewport ---- */
.w-events{background:#0c0c0e;color:#fff;position:relative}
.w-event{
  position:relative;min-height:100vh;display:flex;align-items:center;
  padding:0 max(2rem,5vw);overflow:hidden;
}
.w-event-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.w-event-num{
  position:absolute;top:8%;right:6%;
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(6rem,18vw,16rem);line-height:.85;letter-spacing:-.04em;
  color:rgba(255,255,255,.05);user-select:none;pointer-events:none;
}
.w-event-content{position:relative;z-index:2;max-width:640px}
.w-event-eyebrow{
  font-size:.78rem;letter-spacing:3px;text-transform:uppercase;
  color:#f0a000;margin-bottom:1.2rem;font-weight:700;
}
.ev-disc .w-event-eyebrow{color:#90c8ff}
.ev-ham  .w-event-eyebrow{color:#ff8a8a}
.ev-jav  .w-event-eyebrow{color:#ffd58e}
.w-event-title{
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(3rem,8vw,7rem);line-height:.88;letter-spacing:-.04em;
  text-transform:uppercase;color:#fff;margin:0 0 1.5rem;
  opacity:0;transform:translateY(28px);
  transition:opacity .9s ease, transform .9s cubic-bezier(.2,.6,.2,1);
}
.w-event.active .w-event-title{opacity:1;transform:none}
.w-event-tagline{
  font-size:1.05rem;line-height:1.6;color:rgba(255,255,255,.78);
  margin:0 0 1.8rem;max-width:540px;
  opacity:0;transform:translateY(20px);
  transition:opacity .9s .15s ease, transform .9s .15s cubic-bezier(.2,.6,.2,1);
}
.w-event.active .w-event-tagline{opacity:1;transform:none}
.w-event-stat{
  display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;
  font-size:.85rem;border-top:1px solid rgba(255,255,255,.12);
  padding-top:1rem;max-width:420px;
  opacity:0;transform:translateY(20px);
  transition:opacity .9s .3s ease, transform .9s .3s cubic-bezier(.2,.6,.2,1);
}
.w-event.active .w-event-stat{opacity:1;transform:none}
.w-event-stat span{color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:1.5px;font-size:.68rem;font-weight:600}
.w-event-stat strong{color:#fff;font-family:'Inter Tight';font-weight:700;font-size:1.1rem}

/* ---- The implement: rides the arc when section is active ---- */
.w-event-implement{
  position:absolute;width:28px;height:28px;z-index:3;
  pointer-events:none;
  opacity:0;
  left:0;top:0;
  /* offset-path activates per-event below */
}
.w-event.active .w-event-implement{
  animation:implementFly 2.6s cubic-bezier(.4,.0,.6,1) forwards;
}
@keyframes implementFly{
  0%   { opacity:0; offset-distance:0%; }
  6%   { opacity:1; }
  92%  { opacity:1; }
  100% { opacity:0; offset-distance:100%; }
}

/* Per-event offset paths, match the SVG path "d" attributes */
.ev-shot .w-event-implement{
  offset-path:path('M 220 600 Q 600 80 1050 580');
  offset-rotate:0deg;
  width:30px;height:30px;
}
.ev-disc .w-event-implement{
  offset-path:path('M 200 600 Q 600 120 1080 560');
  offset-rotate:auto;
  width:40px;height:40px;
  animation-duration:2.8s;
}
.ev-disc .disc-impl{animation:discSpin 1.6s linear infinite;transform-origin:center}
@keyframes discSpin{from{transform:rotateZ(0)}to{transform:rotateZ(360deg)}}
.ev-ham .w-event-implement{
  offset-path:path('M 250 580 Q 700 -50 1080 580');
  offset-rotate:auto;
  width:34px;height:34px;
  animation-duration:3s;
}
.ev-jav .w-event-implement{
  offset-path:path('M 280 680 Q 720 40 1140 540');
  offset-rotate:auto;
  width:70px;height:18px;
  animation-duration:2.2s;
}

/* SVG container needs viewBox-relative absolute positioning for offset-path to align */
.w-event-bg{position:absolute;inset:0}
.w-event-implement{
  /* Use the SVG coordinate system: scale to viewport */
  transform-box:fill-box;
}
/* Position the implement layer to match the SVG's viewBox (1200x800) */
.w-event{contain:layout style paint}
.w-event::after{
  content:"";position:absolute;inset:0;pointer-events:none;
}

/* The implement is positioned by offset-path which uses viewBox-style coords.
   We constrain it inside a wrapper sized to the SVG.
   The .w-event-bg fills the section; offset-path coords are in its viewBox space.
   To make this work, scale the implement's positioning context to the bg's size. */
.w-event-implement{
  position:absolute;
  top:0;left:0;
  /* offset-path coords are 0..1200 / 0..800, we set width/height of section to that ratio */
}
/* Force a fixed-aspect overlay so the implement path is predictable across viewports */
.w-event-stage{
  position:absolute;inset:0;
  /* aspect-ratio holds layout consistent with SVG viewBox */
}

@media (max-width:780px){
  .w-event{padding:6rem 1.5rem 4rem;min-height:auto;align-items:flex-start}
  .w-event-num{font-size:6rem;top:1.5rem;right:1rem;opacity:.4}
  .w-event-title{font-size:clamp(2.5rem,12vw,4rem)}
  .w-event-tagline{font-size:1rem}
}

/* ---- Athlete roster cards ---- */
.roster-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:1rem;margin-top:1.4rem;
}
.w-athlete{
  background:#fff;border:1px solid rgba(0,0,0,.08);
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform .25s cubic-bezier(.2,.6,.2,1), box-shadow .25s;
}
.w-athlete:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(0,0,0,.1)}
.w-athlete.featured{border:2px solid #f0a000}
.w-athlete-img{
  position:relative;aspect-ratio:3/2;
  background:var(--ini-bg,#3a2050);
  display:grid;place-items:center;overflow:hidden;
}
.w-athlete-img.sm{aspect-ratio:5/2}
.w-athlete-img::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.18),transparent 60%);
  pointer-events:none;
}
.w-athlete-img .w-ini{
  font-family:'Inter Tight',sans-serif;font-weight:900;
  font-size:clamp(3rem,6vw,5rem);color:#fff;line-height:1;
  letter-spacing:-.04em;position:relative;z-index:2;
  text-shadow:0 4px 16px rgba(0,0,0,.3);
}
.w-athlete-img.sm .w-ini{font-size:2.4rem}
.w-athlete-rank{
  position:absolute;top:.5rem;left:.7rem;z-index:3;
  font-family:'Inter Tight',sans-serif;font-weight:900;font-size:.85rem;
  color:rgba(255,255,255,.78);letter-spacing:1px;
}
.w-athlete-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.w-athlete-name{font-family:'Inter Tight';font-weight:700;font-size:1.05rem;color:#0c0c0e;letter-spacing:-.01em}
.w-athlete-meta{color:#5a5a60;font-size:.78rem;line-height:1.3}
.w-athlete-meta em{color:#c84d29;font-style:normal;font-size:.7rem;text-transform:uppercase;letter-spacing:1px}
.w-athlete-best{
  margin-top:.5rem;padding-top:.6rem;border-top:1px solid rgba(0,0,0,.08);
  display:flex;flex-direction:column;gap:.15rem;
}
.w-athlete-best > span:first-child{
  font-size:.65rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:#7a7a82;
}
.w-athlete-best strong{font-size:.95rem;color:#0c0c0e;font-weight:700;line-height:1.3}
.w-athlete-best .muted{font-size:.75rem;color:#888;font-weight:400}
.w-athlete-pr{
  margin-top:.5rem;font-size:.82rem;color:#5a5a60;
  border-top:1px solid rgba(0,0,0,.06);padding-top:.5rem;
}
.w-athlete-pr strong{color:#c84d29;font-weight:700}
.w-athlete.featured .w-athlete-pr strong{color:#0c0c0e}

/* compact variant for the rest of the roster */
.roster-grid.compact{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}
.w-athlete.compact{flex-direction:row;align-items:stretch}
.w-athlete.compact .w-athlete-img{aspect-ratio:1;width:64px;flex-shrink:0}
.w-athlete.compact .w-athlete-img .w-ini{font-size:1.5rem}
.w-athlete.compact .w-athlete-body{padding:.6rem .8rem;justify-content:center;gap:.1rem}
.w-athlete.compact .w-athlete-name{font-size:.9rem}
.w-athlete.compact .w-athlete-meta{font-size:.72rem}
.w-athlete.compact .w-athlete-pr{margin-top:.3rem;padding-top:.3rem;font-size:.75rem;border-top:none}

@media (max-width:640px){
  .roster-grid, .roster-grid.compact{grid-template-columns:1fr}
}

/* slide monogram (no photo), sits in .w-slide-img where the image used to live */
.w-slide-mono{
  width:100%;height:100%;display:grid;place-items:center;position:relative;overflow:hidden;
}
.w-slide-mono::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),transparent 60%);
  pointer-events:none;
}
.w-slide-mono span{
  font-family:'Inter Tight',sans-serif;font-weight:900;letter-spacing:-.05em;
  font-size:clamp(7rem,18vw,14rem);color:#fff;line-height:1;
  text-shadow:0 6px 30px rgba(0,0,0,.35);position:relative;z-index:2;
}

/* ===== USA Throws Project brand palette ===== */
:root {
  --usat-navy: #051d3b;
  --usat-red:  #d62828;
  --usat-red-bright: #ef3232;
  --usat-cream: #f4f1ec;
  --usat-ink: #0c0c0e;
}

/* Brand recolor: hero accents */
.w-hero-eyebrow .dot{ background:var(--usat-red) !important; box-shadow:0 0 0 0 rgba(214,40,40,.6) !important; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(214,40,40,.65)} 70%{box-shadow:0 0 0 12px rgba(214,40,40,0)} 100%{box-shadow:0 0 0 0 rgba(214,40,40,0)} }
.w-cta.primary{ background:var(--usat-navy); border-color:var(--usat-navy); }
.w-cta.primary:hover{ background:var(--usat-red); border-color:var(--usat-red); color:#fff; }
.w-brand span{ color:var(--usat-red); }

/* Event eyebrows use brand red as default; per-event overrides keep their flavors */
.w-event-eyebrow{ color:var(--usat-red); }
.ev-shot .w-event-eyebrow{ color:var(--usat-red); }
.ev-jav  .w-event-eyebrow{ color:#ffd58e; }

/* Section eyebrows */
.w-eyebrow{ color:var(--usat-navy); opacity:.8; }
.w-eyebrow.light{ color:#fff; opacity:.7; }

/* Numbers + accents */
.w-num{ color:var(--usat-navy); }
.strip-num{ color:var(--usat-red); }
.w-pillar-num, .w-time-year{ color:var(--usat-red); }

/* Quote em */
.w-quote em{ color:var(--usat-red-bright); }
.w-h2 em{ color:var(--usat-red); }

/* Featured card border */
.w-athlete.featured{ border-color:var(--usat-red); }
.w-roster-card.featured{ background:linear-gradient(135deg,#fff7ed 0%, #ffd9c5 100%); border-left-color:var(--usat-red); }
.w-roster-card.featured .w-roster-rank{ color:var(--usat-red); }
.w-roster-card{ border-left-color:var(--usat-navy); }
.w-roster-pr{ color:var(--usat-navy); }
.w-roster-rank{ color:var(--usat-navy); }

/* Stats band */
.w-stats{ background:var(--usat-navy); }
.welcome-body .w-cta-band, .w-cta-band{ background:linear-gradient(135deg,var(--usat-navy) 0%, var(--usat-red) 100%); }
.welcome-cta-band, .w-final-bg{}
.w-bullets li:before{ color:var(--usat-red); }

/* Slider dots & arrows */
.w-slider-dots button.active{ background:var(--usat-red); }
.w-slider-arrow:hover{ background:var(--usat-red); border-color:var(--usat-red); color:#fff; }
.w-slider-progress span{ background:var(--usat-red); }
.w-slide-eyebrow{ color:var(--usat-red); }

/* Strip cap accent */
.w-strip-cap span{ color:var(--usat-red); }

/* Featured slide eyebrow */
.w-slide-eyebrow{ color:var(--usat-red); }

/* Programs grid hover */
.w-prog-grid > div:hover{ border-color:var(--usat-navy); }
.w-new{ background:var(--usat-red); }

/* Pillars */
.w-pillars{ background:var(--usat-navy); }
.w-pillars-grid h4{ color:#fff; }

/* Final CTA gradient with brand */
.welcome-cta-band{ background:linear-gradient(135deg, var(--usat-navy) 0%, var(--usat-red) 100%); }

/* Stats band variant */
.w-stats{ background:var(--usat-red); }

/* Brand logo image in nav */
.w-brand.brand-logo{ padding:0; display:inline-flex; align-items:center; }
.w-brand.brand-logo img{ height:30px; width:auto; display:block; filter:brightness(1) drop-shadow(0 2px 8px rgba(0,0,0,.4)); transition:transform .2s; }
.w-nav.scrolled .w-brand.brand-logo img{ filter:brightness(1) drop-shadow(0 1px 3px rgba(0,0,0,.3)); }
.w-brand.brand-logo:hover img{ transform:scale(1.04); }


/* ===== US Map & Camps section ===== */
.w-map{
  position:relative; max-width:980px; margin:1.5rem auto 1rem;
  aspect-ratio: 4 / 2.5;
  background: linear-gradient(180deg, #fffdf8 0%, #e8e1d2 100%);
  border:1px solid rgba(5,29,59,.18);
  border-radius:14px;
  overflow:hidden;
  box-shadow: 0 8px 24px rgba(5,29,59,.06);
}
.w-map-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:contain; opacity:.9;
  /* Tint the black SVG strokes/fills toward USAT navy */
  filter: invert(8%) sepia(48%) saturate(2900%) hue-rotate(202deg) brightness(85%) contrast(110%);
}
.w-pin{
  position:absolute; transform:translate(-50%,-50%);
  background:transparent; border:none; padding:0; cursor:pointer;
  width:32px; height:32px;
  display:grid; place-items:center;
}
.w-pin-dot{
  position:relative; z-index:2; width:14px; height:14px; border-radius:50%;
  background:var(--usat-red); border:2px solid #fff;
  box-shadow:0 2px 8px rgba(0,0,0,.3);
}
.w-pin.featured .w-pin-dot{ width:18px; height:18px; background:var(--usat-red); border-color:#fff; box-shadow:0 0 0 3px rgba(214,40,40,.25), 0 4px 12px rgba(0,0,0,.4); }
.w-pin-pulse{
  position:absolute; inset:50% auto auto 50%;
  width:14px; height:14px; border-radius:50%; transform:translate(-50%,-50%);
  border:2px solid var(--usat-red); opacity:0;
  animation:pinPulse 2.4s infinite ease-out;
}
.w-pin.featured .w-pin-pulse{ animation-duration:1.8s; border-color:var(--usat-red); }
@keyframes pinPulse{
  0%   { width:14px; height:14px; opacity:.8; }
  100% { width:50px; height:50px; opacity:0; }
}
.w-pin:hover .w-pin-dot{ transform:scale(1.25); }
.w-pin:focus-visible{ outline:2px solid var(--usat-navy); outline-offset:4px; border-radius:50%; }

.w-map-tooltip{
  position:absolute; pointer-events:none;
  background:var(--usat-navy); color:#fff;
  padding:.5rem .85rem; border-radius:8px;
  font-size:.82rem; line-height:1.35; max-width:240px;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  opacity:0; transform:translate(-50%,-130%) scale(.96);
  transition:opacity .15s, transform .2s cubic-bezier(.2,.6,.2,1);
  z-index:10; white-space:normal;
}
.w-map-tooltip.show{ opacity:1; transform:translate(-50%,-130%) scale(1); }
.w-map-tooltip strong{ display:block; font-weight:700; color:var(--usat-red-bright); margin-bottom:.15rem; }
.w-map-tooltip em{ font-style:normal; color:rgba(255,255,255,.7); font-size:.7rem; text-transform:uppercase; letter-spacing:1.5px; }

/* Camps list */
.w-camps-list{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:.6rem .9rem; margin-top:1.5rem; padding-top:1.2rem;
  border-top:1px solid rgba(5,29,59,.1);
  font-size:.92rem;
}
.w-camps-list > div{ display:flex; align-items:flex-start; gap:.7rem; padding:.45rem 0; }
.w-camps-list > div.featured strong{ color:var(--usat-red); }
.w-camp-dot{ width:10px; height:10px; border-radius:50%; flex:none; margin-top:.45rem; background:var(--usat-navy); }
.w-camp-dot.dot-la{ background:#a01a1a; }
.w-camp-dot.dot-al{ background:#d62828; }
.w-camp-dot.dot-fl{ background:#f59e0b; }
.w-camp-dot.dot-pa{ background:#0a2a55; }
.w-camps-list em{ font-style:normal; color:var(--usat-red); font-weight:700; }

@media (max-width:780px){
  .w-map{ aspect-ratio: 4 / 3; }
  .w-pin{ width:24px; height:24px; }
}

/* ===== Welcome v6: editorial dark elevation ===== */

/* Body flips to dark default for editorial reverence */
.welcome-body{
  background:#0a0a0c;
  color:#e8e3d6;
}

/* Light sections become explicit cream islands amid the dark default */
.w-section{
  background:#f4f1ec;
  color:#0c0c0e;
}
.w-section.dark{ background:#0a0a0c; color:#e8e3d6; }

/* Strips bleed dark by default; existing .w-strip.dark unchanged */
.w-strip{ background:#0a0a0c; }
.w-strip:not(.dark) img{ filter:grayscale(15%) contrast(105%) brightness(70%); }

/* Programs grid cards on cream background (visible against dark sandwich) */
.w-prog-grid > div{ background:#fff; }

/* People grid cards on cream */
.w-person, .w-athlete{ background:#fff; }

/* Map frame sits on cream w-section background, already fine */

/* Final CTA: unchanged dark+image */

/* ====== Editorial type: serif pull-quote ====== */
.w-quote.serif{
  font-family:'Playfair Display', Georgia, serif;
  font-weight:900; font-style:italic;
  font-size:clamp(1.8rem, 4.5vw, 3.4rem);
  line-height:1.18; letter-spacing:-.015em;
  color:#fff; margin:0 0 2rem; max-width:880px;
  text-wrap:balance;
}
.w-quote.serif em{
  font-style:italic; color:#d62828; font-weight:900;
}
.w-cite{
  display:block; font-size:.92rem; color:rgba(255,255,255,.65);
  font-style:normal; letter-spacing:.2px;
}
.w-cite strong{ color:#fff; font-weight:600; }
.w-cite-tag{
  display:inline-block; margin-left:.5rem; padding:.1rem .55rem;
  background:rgba(214,40,40,.18); color:#fbd4d4; border-radius:99px;
  font-size:.72rem; letter-spacing:1px; text-transform:uppercase;
  font-weight:600; vertical-align:1px;
}

/* ====== Sources footnote ====== */
.w-sources{
  margin-top:2.5rem; padding-top:1.5rem;
  border-top:1px solid rgba(5,29,59,.12);
  font-size:.82rem; color:#5a5a60; line-height:1.65;
  max-width:1000px;
}
.w-sources strong{
  display:inline-block; color:#0c0c0e; font-weight:700;
  text-transform:uppercase; letter-spacing:1.5px;
  font-size:.7rem; margin-right:.5rem;
}
.w-sources em{ color:#0c0c0e; font-style:italic; }

/* Tighten lead leading for editorial feel */
.w-lead, .w-lead.light{ font-weight:400; line-height:1.55; max-width:680px; }

/* Subtle ascender weight on event titles */
.w-event-title{ font-family:'Inter Tight',sans-serif; font-weight:900; }

/* Discipline chapter eyebrows match brand */
.w-event-eyebrow{ font-weight:700; }

/* Programs: the "new" tag uses brand red strongly */
.w-new{ background:#d62828; color:#fff; }


/* ===== Welcome v7: Brute-style functional layer ===== */

/* ---- Philosophy block ---- */
.w-philosophy{
  font-family:'Playfair Display', Georgia, serif;
  font-weight:700; font-style:italic;
  font-size:clamp(1.6rem, 4vw, 3rem);
  line-height:1.18; letter-spacing:-.015em;
  color:#fff; margin:0 0 1.3rem; max-width:980px;
  text-wrap:balance;
}
.w-philosophy em{ color:#d62828; font-style:italic; font-weight:900; }
.w-philosophy-sub{
  color:rgba(255,255,255,.7);
  font-size:1.05rem; line-height:1.55; max-width:680px; margin:0;
}

/* ---- Access Tiers ---- */
.w-tiers{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.2rem; margin-top:2.5rem;
}
.w-tier{
  position:relative; background:#fff; border:1px solid rgba(5,29,59,.08);
  border-radius:14px; padding:1.8rem 1.6rem 1.6rem;
  display:flex; flex-direction:column; gap:.8rem;
  transition:transform .25s cubic-bezier(.2,.6,.2,1), box-shadow .25s;
}
.w-tier:hover{ transform:translateY(-4px); box-shadow:0 20px 40px rgba(5,29,59,.1); }
.w-tier.featured{
  background:#0a0a0c; color:#f4f1ec;
  border:2px solid #d62828;
  box-shadow:0 16px 40px rgba(214,40,40,.18);
}
.w-tier.featured .w-tier-name{ color:#fff; }
.w-tier.featured .w-tier-price{ color:rgba(255,255,255,.7); }
.w-tier.featured .w-tier-list li{ color:rgba(255,255,255,.85); border-top-color:rgba(255,255,255,.12); }
.w-tier.featured .w-tier-list li:before{ color:#d62828; }
.w-tier-eyebrow{
  font-size:.7rem; font-weight:700; letter-spacing:2.5px;
  text-transform:uppercase; color:#d62828;
}
.w-tier-name{
  font-family:'Inter Tight',sans-serif; font-size:1.7rem; font-weight:900;
  margin:0; color:#0c0c0e; letter-spacing:-.02em;
}
.w-tier-price{
  font-size:.92rem; color:#5a5a60; font-weight:500;
  border-bottom:1px solid rgba(5,29,59,.08); padding-bottom:.9rem;
}
.w-tier.featured .w-tier-price{ border-color:rgba(255,255,255,.12); }
.w-tier-list{
  list-style:none; padding:0; margin:0; flex:1;
  font-size:.92rem; line-height:1.45;
}
.w-tier-list li{
  padding:.55rem 0 .55rem 1.5rem; border-top:1px solid rgba(5,29,59,.06);
  position:relative; color:#2a2a30;
}
.w-tier-list li:first-child{ border-top:none; }
.w-tier-list li:before{
  content:"→"; position:absolute; left:0; color:#d62828; font-weight:700;
}
.w-tier-cta{
  display:block; text-align:center; margin-top:.5rem;
  padding:.85rem 1rem; background:#0a0a0c; color:#fff;
  border-radius:8px; font-weight:700; text-decoration:none;
  letter-spacing:.5px; transition:background .15s;
}
.w-tier-cta:hover{ background:#d62828; text-decoration:none; color:#fff; }
.w-tier.featured .w-tier-cta{ background:#d62828; }
.w-tier.featured .w-tier-cta:hover{ background:#fff; color:#0a0a0c; }
.w-tier-badge{
  position:absolute; top:-12px; right:1.4rem;
  background:#d62828; color:#fff; padding:.25rem .8rem;
  border-radius:99px; font-size:.7rem; font-weight:700;
  letter-spacing:1.5px; text-transform:uppercase;
}

@media (max-width:900px){
  .w-tiers{ grid-template-columns:1fr; }
  .w-tier.featured{ order:-1; }
}

/* ---- Mobile App preview ---- */
.w-app{
  display:grid; grid-template-columns:1fr 1fr; gap:3rem;
  align-items:center; margin-top:2rem;
}
.w-app-body h2{ margin-bottom:1.2rem; }
.w-app-bullets{ list-style:none; padding:0; margin:1.5rem 0 2rem; font-size:.95rem; line-height:1.5; }
.w-app-bullets li{
  padding:.5rem 0 .5rem 1.5rem; position:relative;
  border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.75);
}
.w-app-bullets li:before{
  content:"+"; position:absolute; left:0; color:#d62828; font-weight:900;
}
.w-app-bullets strong{ color:#fff; font-weight:700; }

.w-app-phone{ display:grid; place-items:center; }
.w-phone{
  width:280px; height:580px; background:#0a0a0c;
  border-radius:36px; border:7px solid #18181d;
  box-shadow:0 30px 60px rgba(0,0,0,.4), inset 0 0 0 2px rgba(255,255,255,.06);
  position:relative; overflow:hidden;
}
.w-phone-notch{
  position:absolute; top:7px; left:50%; transform:translateX(-50%);
  width:120px; height:22px; background:#0a0a0c; border-radius:0 0 14px 14px; z-index:2;
}
.w-phone-screen{
  background:#0c1117; height:100%; padding:34px 12px 12px;
  overflow:hidden; font-family:'Inter','Inter Tight',sans-serif;
  font-size:.72rem; color:#e8edf3; line-height:1.35;
  display:flex; flex-direction:column; gap:8px;
}
.w-phone-bar{ font-size:.65rem; color:rgba(255,255,255,.45); padding:0 6px 4px; letter-spacing:.5px; }
.w-phone-card{
  background:#141b24; border:1px solid #26303d; border-radius:10px;
  padding:.65rem .75rem;
}
.w-phone-card.hero{
  background:linear-gradient(135deg,#051d3b 0%, #d62828 100%);
  border:none; color:#fff;
}
.w-phone-eyebrow{ font-size:.55rem; letter-spacing:1.5px; text-transform:uppercase; opacity:.8; }
.w-phone-title{ font-family:'Inter Tight'; font-weight:900; font-size:1.15rem; line-height:1.1; margin-top:.15rem; letter-spacing:-.01em; }
.w-phone-meta{ font-size:.6rem; opacity:.8; margin-top:.15rem; }
.w-phone-card-h{ font-size:.6rem; color:#8b97a8; text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:.35rem; }
.w-phone-list{ list-style:none; padding:0; margin:0; }
.w-phone-list li{ padding:.18rem 0; border-top:1px solid rgba(255,255,255,.05); font-size:.68rem; display:flex; align-items:center; gap:.35rem; }
.w-phone-list li:first-child{ border-top:none; }
.kk{ display:inline-block; font-size:.5rem; padding:.05rem .25rem; border-radius:3px; text-transform:uppercase; letter-spacing:.5px; font-weight:700; }
.kk-throws{ background:#3a1414; color:#fca5a5; }
.kk-lift{ background:#142233; color:#9ec3ff; }
.kk-mob{ background:#2a2110; color:#fcd34d; }
.w-phone-pills{ display:flex; gap:.25rem; flex-wrap:wrap; }
.pp{ font-size:.55rem; padding:.12rem .35rem; border-radius:4px; font-weight:700; letter-spacing:.5px; }
.pp.g{ background:#102819; color:#86efac; }
.pp.y{ background:#2a2110; color:#fcd34d; }
.w-phone-row{
  display:flex; justify-content:space-between; padding:.2rem 0;
  border-top:1px solid rgba(255,255,255,.05); font-size:.66rem;
}
.w-phone-row:first-of-type{ border-top:none; }
.w-phone-row strong{ color:#d62828; font-weight:900; font-family:'Inter Tight'; }

@media (max-width:900px){ .w-app{ grid-template-columns:1fr; } .w-phone{ margin:1rem auto 0; } }

/* ---- Instagram-style social proof grid ---- */
.w-ig-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:1.8rem;
}
.w-ig-tile{
  aspect-ratio:1; background-size:cover; background-position:center;
  position:relative; overflow:hidden; text-decoration:none;
  filter:grayscale(15%) contrast(105%);
  transition:filter .2s, transform .25s;
}
.w-ig-tile:hover{ filter:grayscale(0%); transform:scale(1.02); text-decoration:none; }
.w-ig-tile::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,.7) 100%);
}
.w-ig-tile span{
  position:absolute; left:.75rem; right:.75rem; bottom:.6rem; z-index:2;
  color:#fff; font-size:.78rem; font-weight:600; letter-spacing:.3px;
  text-shadow:0 1px 4px rgba(0,0,0,.6);
}
@media (max-width:780px){ .w-ig-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .w-ig-grid{ grid-template-columns:1fr; } }

/* ---- Newsletter ---- */
.w-newsletter{
  display:flex; gap:.5rem; margin:1.8rem 0 .8rem; max-width:520px;
}
.w-newsletter input[type=email]{
  flex:1; padding:.95rem 1rem; border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.05); color:#fff; border-radius:0;
  font:inherit; font-size:1rem; outline:none;
  transition:border-color .15s;
}
.w-newsletter input[type=email]:focus{ border-color:#d62828; background:rgba(255,255,255,.08); }
.w-newsletter input::placeholder{ color:rgba(255,255,255,.4); }
.w-newsletter button{
  padding:.95rem 1.6rem; background:#d62828; color:#fff; border:none;
  font-weight:700; letter-spacing:1.2px; text-transform:uppercase;
  font-size:.85rem; cursor:pointer; transition:background .15s;
}
.w-newsletter button:hover{ background:#fff; color:#0a0a0c; }
.w-fine{ font-size:.78rem; color:rgba(255,255,255,.45); margin:0; }

/* ===== Welcome v8: multi-page split, nav, popup, page heroes, FAQ ===== */

/* ---- Brute-style flat horizontal nav ---- */
.wt-nav{
  position:sticky; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:.85rem 1.5rem;
  background:rgba(10,10,12,.85);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:background .2s, padding .2s;
}
.wt-nav.scrolled{ background:rgba(10,10,12,.95); padding:.65rem 1.5rem; }
.wt-brand{ display:inline-flex; align-items:center; text-decoration:none; }
.wt-brand img{ height:28px; width:auto; display:block; transition:transform .2s; }
.wt-brand:hover img{ transform:scale(1.04); }

.wt-links{ display:flex; gap:1.6rem; align-items:center; }
.wt-links a{
  color:#f4f1ec; text-decoration:none;
  font-family:'Inter Tight',sans-serif; font-weight:700;
  font-size:.78rem; letter-spacing:2px; text-transform:uppercase;
  padding:.4rem 0; position:relative; transition:color .15s;
}
.wt-links a:hover{ color:#d62828; text-decoration:none; }
.wt-links a.active{ color:#d62828; }
.wt-links a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px;
  height:2px; background:#d62828;
}

.wt-cta{
  padding:.55rem 1.1rem !important; background:#d62828; color:#fff !important;
  letter-spacing:1.5px !important;
  transition:background .15s, transform .15s !important;
}
.wt-cta:hover{ background:#fff; color:#0a0a0c !important; transform:translateY(-1px); }
.wt-cta.active::after{ display:none; }

.wt-burger{
  display:none; background:transparent; border:none; cursor:pointer;
  width:36px; height:36px; padding:0; position:relative;
}
.wt-burger span{
  display:block; height:2px; width:24px; margin:5px auto;
  background:#f4f1ec; transition:transform .2s, opacity .2s;
}
.wt-burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.wt-burger.open span:nth-child(2){ opacity:0; }
.wt-burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:900px){
  .wt-burger{ display:block; }
  .wt-links{
    position:fixed; top:60px; left:0; right:0; bottom:0;
    flex-direction:column; gap:0; padding:1.5rem 2rem;
    background:rgba(10,10,12,.98);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    transform:translateX(100%); transition:transform .25s ease;
    overflow-y:auto;
  }
  .wt-links.open{ transform:translateX(0); }
  .wt-links a{
    width:100%; padding:1.1rem 0;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-size:1.1rem; letter-spacing:1.5px;
  }
  .wt-links a.active::after{ display:none; }
  .wt-cta{
    margin-top:1rem; text-align:center;
    background:#d62828; padding:1rem !important;
  }
}

/* ---- Footer ---- */
.wt-foot{
  background:#0a0a0c; color:#e8e3d6; padding:3rem 2rem 1.2rem;
  border-top:1px solid rgba(255,255,255,.06);
}
.wt-foot-grid{
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:2rem;
}
.wt-foot-brand img{ height:36px; margin-bottom:.8rem; }
.wt-foot-tag{ color:rgba(255,255,255,.55); font-size:.85rem; line-height:1.5; margin:0; max-width:280px; }
.wt-foot-h{
  font-family:'Inter Tight',sans-serif;
  font-size:.7rem; letter-spacing:2.5px; text-transform:uppercase;
  color:#d62828; font-weight:700; margin-bottom:.8rem;
}
.wt-foot-grid a{
  display:block; color:rgba(255,255,255,.78); text-decoration:none;
  font-size:.88rem; padding:.25rem 0; transition:color .15s;
}
.wt-foot-grid a:hover{ color:#d62828; text-decoration:none; }
.wt-foot-bottom{
  max-width:1200px; margin:2.5rem auto 0; padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.06);
  display:flex; justify-content:space-between; font-size:.75rem;
  color:rgba(255,255,255,.45); flex-wrap:wrap; gap:.5rem;
}
@media (max-width:780px){
  .wt-foot-grid{ grid-template-columns:1fr 1fr; gap:1.5rem; }
}
@media (max-width:480px){
  .wt-foot-grid{ grid-template-columns:1fr; }
}

/* ---- Newsletter popup ---- */
.wt-popup{
  position:fixed; inset:0; z-index:100;
  background:rgba(0,0,0,.7); backdrop-filter:blur(4px);
  display:grid; place-items:center; padding:1.5rem;
  animation:popIn .25s ease;
}
@keyframes popIn{ from{opacity:0} to{opacity:1} }
.wt-popup[hidden]{ display:none; }
body.wt-popup-open{ overflow:hidden; }
.wt-popup-card{
  position:relative; background:#fff;
  max-width:480px; width:100%; padding:2.5rem 2rem 2rem;
  border-top:6px solid #d62828; border-radius:2px;
  box-shadow:0 30px 80px rgba(0,0,0,.4);
  animation:popUp .3s cubic-bezier(.2,.6,.2,1);
}
@keyframes popUp{ from{transform:translateY(20px); opacity:0} to{transform:none; opacity:1} }
.wt-popup-close{
  position:absolute; top:.5rem; right:.5rem;
  background:transparent; border:none; cursor:pointer;
  width:36px; height:36px; font-size:1.6rem; line-height:1;
  color:#5a5a60; transition:color .15s;
}
.wt-popup-close:hover{ color:#0c0c0e; }
.wt-popup-eyebrow{
  font-size:.7rem; font-weight:700; letter-spacing:2.5px;
  text-transform:uppercase; color:#d62828; margin-bottom:.7rem;
}
.wt-popup-card h2{
  font-family:'Inter Tight',sans-serif; font-weight:900;
  font-size:1.6rem; line-height:1.15; letter-spacing:-.015em;
  margin:0 0 .8rem; color:#0a0a0c;
}
.wt-popup-card p{ color:#3a3a40; font-size:.95rem; line-height:1.5; margin:0 0 1.4rem; }
.wt-popup-form{ display:flex; gap:.4rem; margin-bottom:.8rem; }
.wt-popup-form input{
  flex:1; padding:.85rem 1rem; border:1px solid rgba(5,29,59,.15);
  background:#fff; color:#0c0c0e; font:inherit; font-size:.95rem;
  border-radius:0; outline:none;
}
.wt-popup-form input:focus{ border-color:#d62828; }
.wt-popup-form button{
  padding:.85rem 1.3rem; background:#0a0a0c; color:#fff;
  border:none; cursor:pointer; font-weight:700;
  letter-spacing:1px; text-transform:uppercase; font-size:.78rem;
  transition:background .15s;
}
.wt-popup-form button:hover{ background:#d62828; }
.wt-popup-skip{
  display:block; background:transparent; border:none; cursor:pointer;
  font-size:.78rem; color:#7a7a82; padding:.4rem 0;
  margin:.3rem auto 0; text-decoration:underline;
}
.wt-popup-skip:hover{ color:#0c0c0e; }

/* ---- Page hero for subpages ---- */
.wt-pagehero{
  position:relative; min-height:46vh; padding:7rem 2rem 4rem;
  display:flex; align-items:flex-end; overflow:hidden;
  background:#0a0a0c;
}
.wt-pagehero img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 35%;
  filter:grayscale(20%) contrast(105%) brightness(70%);
}
.wt-pagehero-veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(10,10,12,.85) 100%);
}
.wt-pagehero-text{
  position:relative; z-index:2; color:#fff; max-width:780px;
}
.wt-pagehero-text .wt-eyebrow{
  font-size:.72rem; font-weight:700; letter-spacing:3px;
  text-transform:uppercase; color:#d62828; margin-bottom:1rem;
}
.wt-pagehero-text h1{
  font-family:'Inter Tight',sans-serif; font-weight:900;
  font-size:clamp(2.4rem, 6vw, 4.8rem); line-height:.98;
  letter-spacing:-.025em; text-transform:uppercase;
  margin:0 0 .9rem;
}
.wt-pagehero-text p{
  color:rgba(255,255,255,.78); font-size:1.05rem;
  line-height:1.5; margin:0; max-width:620px;
}

/* ---- Feature grid (used on Train page) ---- */
.wt-feature-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem;
  margin-top:2rem;
}
.wt-feature-grid > div{
  background:#fff; border:1px solid rgba(5,29,59,.08);
  padding:1.4rem 1.5rem; border-left:3px solid #d62828;
  transition:transform .2s, box-shadow .2s;
}
.w-section.dark .wt-feature-grid > div{
  background:#16161d; border-color:rgba(255,255,255,.08); border-left-color:#d62828;
}
.wt-feature-grid > div:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(0,0,0,.1); }
.wt-feature-grid h4{
  font-family:'Inter Tight'; font-size:1rem; font-weight:700;
  letter-spacing:-.01em; margin:0 0 .4rem; color:#0c0c0e;
}
.w-section.dark .wt-feature-grid h4{ color:#fff; }
.wt-feature-grid p{ color:#5a5a60; font-size:.88rem; line-height:1.45; margin:0; }
.w-section.dark .wt-feature-grid p{ color:rgba(255,255,255,.7); }
@media (max-width:900px){ .wt-feature-grid{ grid-template-columns:1fr; } }

/* ---- FAQ ---- */
.wt-faq{ max-width:820px; margin:2rem auto 0; }
.wt-faq-item{
  background:#fff; border:1px solid rgba(5,29,59,.08);
  border-left:3px solid #d62828;
  margin-bottom:.5rem; padding:0;
  transition:box-shadow .15s;
}
.wt-faq-item[open]{ box-shadow:0 8px 24px rgba(5,29,59,.06); }
.wt-faq-item summary{
  cursor:pointer; padding:1.1rem 1.4rem;
  font-family:'Inter Tight'; font-weight:700; font-size:1.02rem;
  color:#0c0c0e; letter-spacing:-.01em;
  list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.wt-faq-item summary::-webkit-details-marker{ display:none; }
.wt-faq-item summary::after{
  content:"+"; font-size:1.4rem; color:#d62828; font-weight:900;
  transition:transform .2s;
}
.wt-faq-item[open] summary::after{ transform:rotate(45deg); }
.wt-faq-body{
  padding:0 1.4rem 1.2rem; color:#3a3a40;
  font-size:.95rem; line-height:1.6;
}
.wt-faq-body a{ color:#d62828; font-weight:600; }
.wt-eyebrow{
  font-size:.72rem; font-weight:700; letter-spacing:3px;
  text-transform:uppercase; color:#d62828;
}

/* Hide the old nav (.w-nav) when the new layout is being used */
.welcome-body > .w-nav { display:none; }

/* Reveal animation (shared with layout) */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.6,.2,1); }
.reveal.shown{ opacity:1; transform:none; }

/* ============================================ COACHES, Future.co style cards ============================================ */
.wt-coachgrid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:28px; margin-top:42px;
}
.wt-coach{
  background:#fff; border-radius:18px; overflow:hidden;
  box-shadow:0 8px 28px rgba(5,29,59,.08);
  border:1px solid #eee; display:flex; flex-direction:column;
  transition: transform .25s ease, box-shadow .25s ease;
}
.wt-coach:hover{transform:translateY(-4px); box-shadow:0 14px 40px rgba(5,29,59,.14);}
.wt-coach-img{
  position:relative; width:100%; aspect-ratio:4/5; overflow:hidden;
  background:#0a2a55;
}
.wt-coach-img img{
  width:100%; height:100%; object-fit:cover; object-position:center top;
  display:block;
}
.wt-coach-img.mono{
  display:flex; align-items:center; justify-content:center;
  background:var(--ini-bg,#051d3b);
}
.wt-coach-img.mono .w-ini{
  font-family:'Inter Tight',sans-serif; font-weight:900;
  color:rgba(255,255,255,.92); font-size:7rem; letter-spacing:-.04em;
  text-shadow:0 8px 30px rgba(0,0,0,.25);
}
.wt-coach-body{padding:22px 22px 24px; display:flex; flex-direction:column; flex:1;}
.wt-coach-spec{
  font-family:'Inter',sans-serif; font-size:.78rem;
  text-transform:uppercase; letter-spacing:.12em; color:#d62828; font-weight:700;
}
.wt-coach-name{
  font-family:'Inter Tight',sans-serif; font-weight:900; font-size:1.8rem;
  margin:6px 0 4px; color:#051d3b; line-height:1.05;
}
.wt-coach-meta{
  font-family:'Inter',sans-serif; font-size:.86rem; color:#666; margin-bottom:14px;
}
.wt-coach-cred{
  list-style:none; padding:0; margin:0 0 18px;
  font-family:'Inter',sans-serif; font-size:.92rem; color:#333; line-height:1.55;
}
.wt-coach-cred li{
  padding:6px 0 6px 18px; position:relative; border-top:1px solid #f1eee9;
}
.wt-coach-cred li:first-child{border-top:0;}
.wt-coach-cred li::before{
  content:""; position:absolute; left:0; top:14px; width:8px; height:8px;
  background:#d62828; border-radius:50%;
}
.wt-coach-cta{
  margin-top:auto; align-self:flex-start;
  background:#051d3b; color:#fff; padding:11px 22px; border-radius:999px;
  font-family:'Inter Tight',sans-serif; font-weight:700; font-size:.92rem;
  text-decoration:none; transition:background .2s;
}
.wt-coach-cta:hover{background:#d62828;}

.wt-howlist{
  list-style:none; counter-reset:steps;
  padding:0; margin:18px 0; display:grid; gap:14px;
}
.wt-howlist li{
  counter-increment:steps; padding:14px 18px 14px 64px; position:relative;
  background:rgba(255,255,255,.06); border-radius:12px;
  font-family:'Inter',sans-serif; font-size:1.02rem; line-height:1.5;
}
.wt-howlist li::before{
  content:counter(steps); position:absolute; left:18px; top:13px;
  width:32px; height:32px; border-radius:50%;
  background:#d62828; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family:'Inter Tight',sans-serif; font-weight:900;
}
.w-section:not(.dark) .wt-howlist li{
  background:#f7f5f0; color:#222;
}

.w-fineprint{
  margin-top:36px; font-family:'Inter',sans-serif; font-size:.88rem;
  color:#666; line-height:1.6; border-top:1px solid #eee; padding-top:18px;
}

/* ============================================ PAGE HERO, short variant ============================================ */
.wt-pagehero.short{min-height:340px;}
.wt-pagehero.short .wt-pagehero-text{padding-bottom:60px;}
.wt-pagehero-cta{margin-top:18px; display:flex; gap:12px; flex-wrap:wrap;}

/* ============================================ BOOKING, landing tiers ============================================ */
.wt-book-tiers{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px; margin-top:36px;
}
.wt-book-tier{
  background:#fff; padding:24px 22px; border-radius:14px;
  border:1px solid #eee; box-shadow:0 4px 18px rgba(5,29,59,.06);
  display:flex; flex-direction:column;
}
.wt-book-tier-price{
  font-family:'Inter Tight',sans-serif; font-weight:900; color:#d62828;
  font-size:2.2rem; line-height:1;
}
.wt-book-tier-name{
  font-family:'Inter Tight',sans-serif; font-weight:800; color:#051d3b;
  font-size:1.2rem; margin:10px 0 6px;
}
.wt-book-tier-blurb{
  font-family:'Inter',sans-serif; color:#444; font-size:.92rem;
  margin:0 0 16px; line-height:1.5; flex:1;
}

.wt-book-coaches{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px; margin-top:24px;
}
.wt-book-coachchip{
  background:rgba(255,255,255,.06); border-radius:12px;
  padding:18px 18px; text-decoration:none; color:#fff;
  border:1px solid rgba(255,255,255,.1);
  display:flex; flex-direction:column; gap:4px;
  transition:background .2s, transform .2s;
}
.wt-book-coachchip:hover{background:rgba(214,40,40,.18); transform:translateY(-2px);}
.wt-book-coachchip strong{
  font-family:'Inter Tight',sans-serif; font-weight:800; font-size:1.1rem; color:#fff;
}
.wt-book-coachchip span{
  font-family:'Inter',sans-serif; font-size:.86rem; color:rgba(255,255,255,.7);
}
.wt-book-coachchip em{
  margin-top:8px; font-style:normal; font-family:'Inter Tight',sans-serif;
  font-weight:700; font-size:.88rem; color:#ff6b6b;
}

.wt-howfine{
  font-family:'Inter',sans-serif; color:#666; font-size:.85rem;
  border-top:1px solid #eee; padding-top:18px; margin-top:24px; line-height:1.6;
}

/* ============================================ BOOKING, form ============================================ */
.wt-book-form{
  max-width:880px; margin:0 auto; display:grid; gap:32px;
}
.wt-book-form fieldset{
  border:0; padding:0; margin:0;
}
.wt-book-form legend{
  font-family:'Inter Tight',sans-serif; font-weight:900;
  font-size:1.3rem; color:#051d3b; margin-bottom:14px;
  display:block;
}
.wt-book-form legend .muted{
  color:#888; font-weight:500; font-size:.92rem;
}
.wt-book-form .req{color:#d62828;}

.wt-radio-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}
.wt-radio{display:block; cursor:pointer;}
.wt-radio input{position:absolute; opacity:0; pointer-events:none;}
.wt-radio-card{
  background:#fff; border:2px solid #eee; border-radius:12px;
  padding:16px 16px; display:flex; flex-direction:column; gap:4px;
  transition:border-color .2s, background .2s, transform .2s;
}
.wt-radio-card strong{
  font-family:'Inter Tight',sans-serif; font-weight:800;
  color:#051d3b; font-size:1.02rem;
}
.wt-radio-card span{
  font-family:'Inter',sans-serif; color:#666; font-size:.86rem; line-height:1.45;
}
.wt-radio-card.price .wt-radio-price{
  margin-top:8px; font-family:'Inter Tight',sans-serif; font-weight:900;
  color:#d62828; font-size:1.4rem;
}
.wt-radio input:checked + .wt-radio-card{
  border-color:#d62828; background:#fff8f7;
}
.wt-radio:hover .wt-radio-card{transform:translateY(-2px);}

.wt-form-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
}
.wt-book-form label{
  display:flex; flex-direction:column; gap:6px;
  font-family:'Inter',sans-serif; font-size:.88rem; color:#333; font-weight:500;
}
.wt-book-form input,
.wt-book-form select,
.wt-book-form textarea{
  font-family:'Inter',sans-serif; font-size:1rem;
  padding:11px 14px; border:1px solid #ddd; border-radius:8px;
  background:#fff; color:#111;
  transition:border-color .2s;
}
.wt-book-form input:focus,
.wt-book-form select:focus,
.wt-book-form textarea:focus{
  outline:0; border-color:#051d3b;
}
.wt-book-form textarea{resize:vertical; min-height:96px;}
.wt-book-form .wt-full{grid-column:1/-1;}

.wt-book-actions{
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
  margin-top:8px;
}

.wt-book-err{
  background:#fff0f0; border:1px solid #d62828; color:#7a1818;
  padding:12px 16px; border-radius:10px; font-family:'Inter',sans-serif;
}

/* ============================================ BOOKING, thanks ============================================ */
.wt-thanks{
  background:#fff; border-radius:14px; padding:8px 24px;
  border:1px solid #eee; box-shadow:0 4px 18px rgba(5,29,59,.06);
  margin-bottom:24px;
}
.wt-thanks-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:16px 0; border-top:1px solid #f1eee9;
  font-family:'Inter',sans-serif; font-size:.96rem;
}
.wt-thanks-row:first-child{border-top:0;}
.wt-thanks-row span{color:#777;}
.wt-thanks-row strong{color:#051d3b; text-align:right;}
.wt-thanks-pill{
  display:inline-block; padding:4px 10px; border-radius:999px;
  font-family:'Inter Tight',sans-serif; font-weight:700; font-size:.82rem;
  text-transform:uppercase; letter-spacing:.06em;
}
.wt-thanks-pill.paid{background:#dff5e1; color:#1d6b2a;}
.wt-thanks-pill.pending{background:#fff3d6; color:#7a5a00;}
.wt-thanks-pill.cancelled{background:#ffe0e0; color:#7a1818;}

/* small screens */
@media (max-width:640px){
  .wt-coach-img.mono .w-ini{font-size:5rem;}
  .wt-book-tier-price{font-size:1.8rem;}
}

.wt-book-tier-spec{
  font-family:'Inter',sans-serif; font-size:.78rem;
  text-transform:uppercase; letter-spacing:.12em; color:#d62828; font-weight:700;
  margin:8px 0 0;
}

/* ============================================ ONBOARDING ============================================ */

.ob-head{margin:1.2rem 0 1.6rem}
.ob-eyebrow{
  font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--accent2,#d62828);font-weight:700;margin-bottom:.4rem;
}
.ob-h1{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;
  font-size:2.2rem;line-height:1.05;font-weight:900;
  margin:0 0 .5rem;color:var(--ink,#e6edf3);
}
.ob-lead{color:var(--muted,#94a3b8);font-size:1.02rem;line-height:1.5;max-width:60ch;margin:0}

/* progress strip */
.ob-progress{
  display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
  margin:0 0 1.2rem;
}
.ob-step{
  width:28px;height:28px;border-radius:999px;display:grid;place-items:center;
  font-size:.78rem;font-weight:700;color:var(--muted,#94a3b8);
  background:transparent;border:1.5px solid var(--line,#2a3441);
}
.ob-step.cur{background:var(--accent2,#d62828);color:#fff;border-color:var(--accent2,#d62828);}
.ob-step.done{background:var(--panel2,#1a2230);color:var(--ink);border-color:var(--panel2,#1a2230);}
.ob-progress-label{font-size:.78rem;color:var(--muted,#94a3b8);margin-left:.6rem;}

/* tier grid */
.ob-tier-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin:1.2rem 0;
}
.ob-tier{display:block;cursor:pointer;position:relative;}
.ob-tier input{position:absolute;opacity:0;pointer-events:none;}
.ob-tier-card{
  background:var(--panel,#10171f);border:1.5px solid var(--line,#2a3441);
  border-radius:14px;padding:1.3rem 1.2rem;height:100%;
  display:flex;flex-direction:column;gap:.45rem;
  transition:border-color .2s, background .2s, transform .2s;
}
.ob-tier:hover .ob-tier-card{transform:translateY(-3px);}
.ob-tier input:checked + .ob-tier-card{
  border-color:var(--accent2,#d62828);
  background:var(--panel2,#1a2230);
  box-shadow:0 6px 24px rgba(214,40,40,.18);
}
.ob-tier.featured .ob-tier-card{border-color:rgba(214,40,40,.45);}
.ob-tier-badge{
  position:absolute;top:-10px;right:14px;
  background:var(--accent2,#d62828);color:#fff;padding:4px 11px;border-radius:999px;
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;
}
.ob-tier-price{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;font-weight:900;
  color:var(--accent2,#d62828);font-size:2rem;line-height:1;
}
.ob-tier-name{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;font-weight:800;
  color:var(--ink,#e6edf3);font-size:1.3rem;margin:.2rem 0 0;line-height:1.1;
}
.ob-tier-tagline{color:var(--ink);font-size:.95rem;font-weight:600;margin:.3rem 0 0;}
.ob-tier-blurb{color:var(--muted,#94a3b8);font-size:.88rem;line-height:1.5;margin:.3rem 0;}
.ob-tier-list{list-style:none;padding:0;margin:.5rem 0 0;}
.ob-tier-list li{
  font-size:.85rem;color:var(--ink);padding:.35rem 0 .35rem 1.1rem;
  position:relative;border-top:1px solid rgba(255,255,255,.06);
}
.ob-tier-list li:first-child{border-top:0;}
.ob-tier-list li::before{
  content:"";position:absolute;left:0;top:.85rem;
  width:6px;height:6px;border-radius:50%;background:var(--accent2,#d62828);
}
.ob-tier-billing{
  margin-top:.85rem;padding:.7rem .85rem;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid var(--line);
}
.ob-tier-billing-h{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:.4rem;}
.ob-tier-radio{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.88rem;color:var(--ink);cursor:pointer;}
.ob-tier-radio input{position:relative;opacity:1;pointer-events:auto;accent-color:var(--accent2,#d62828);}
.ob-tier-note{font-size:.7rem;color:var(--accent2,#d62828);margin-top:.4rem;font-style:italic;}

/* coach grid (Tier 3 step) */
.ob-coach-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.2rem 0;
}
.ob-coach{display:block;cursor:pointer;position:relative;}
.ob-coach input{position:absolute;opacity:0;pointer-events:none;}
.ob-coach-card{
  background:var(--panel);border:1.5px solid var(--line);border-radius:14px;
  overflow:hidden;display:flex;flex-direction:column;
  transition:border-color .2s, transform .2s;
}
.ob-coach:hover .ob-coach-card{transform:translateY(-3px);}
.ob-coach input:checked + .ob-coach-card{
  border-color:var(--accent2,#d62828);
  box-shadow:0 6px 24px rgba(214,40,40,.18);
}
.ob-coach-img{aspect-ratio:4/5;overflow:hidden;background:#0a0f15;}
.ob-coach-img img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.ob-coach-body{padding:.9rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;}
.ob-coach-spec{
  font-size:.7rem;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--accent2,#d62828);font-weight:700;
}
.ob-coach-name{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;font-weight:800;
  color:var(--ink);font-size:1.15rem;margin:.1rem 0 0;line-height:1.1;
}
.ob-coach-pitch{color:var(--muted);font-size:.85rem;line-height:1.45;margin:.2rem 0 .4rem;}
.ob-coach-select{
  margin-top:auto;align-self:flex-start;
  background:var(--panel2);color:var(--ink);
  padding:.45rem .9rem;border-radius:999px;
  font-size:.82rem;font-weight:600;
  border:1px solid var(--line);
  transition:background .2s, color .2s;
}
.ob-coach input:checked + .ob-coach-card .ob-coach-select{
  background:var(--accent2,#d62828);color:#fff;border-color:var(--accent2,#d62828);
}

/* intake form */
.ob-form{display:flex;flex-direction:column;gap:1.4rem;max-width:920px;}
.ob-form fieldset{border:0;padding:0;margin:0;}
.ob-form legend{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;font-weight:800;
  font-size:1.05rem;color:var(--ink);margin-bottom:.7rem;display:block;
}
.ob-form legend .muted{color:var(--muted);font-weight:500;font-size:.85rem;}

.ob-radio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;}
.ob-radio{display:block;cursor:pointer;}
.ob-radio input{position:absolute;opacity:0;pointer-events:none;}
.ob-radio-card{
  background:var(--panel);border:1.5px solid var(--line);border-radius:10px;
  padding:.85rem 1rem;display:flex;flex-direction:column;gap:.2rem;
  transition:border-color .2s;
}
.ob-radio input:checked + .ob-radio-card{
  border-color:var(--accent2,#d62828);background:var(--panel2);
}
.ob-radio-card strong{color:var(--ink);font-size:.95rem;}
.ob-radio-card span{color:var(--muted);font-size:.8rem;}

.ob-checks{display:flex;flex-wrap:wrap;gap:.5rem;}
.ob-check{
  display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;
  background:var(--panel);border:1.5px solid var(--line);border-radius:999px;
  cursor:pointer;font-size:.88rem;color:var(--ink);
}
.ob-check input{accent-color:var(--accent2,#d62828);}
.ob-check:has(input:checked){border-color:var(--accent2,#d62828);background:var(--panel2);}

.ob-pr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.55rem;}
.ob-pr{
  display:flex;justify-content:space-between;align-items:center;
  padding:.55rem .8rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;
}
.ob-pr-label strong{display:block;color:var(--ink);font-size:.92rem;}
.ob-pr-label span{color:var(--muted);font-size:.78rem;}
.ob-pr-input{display:flex;align-items:center;gap:.3rem;}
.ob-pr-input input{
  width:90px;background:var(--panel2);border:1px solid var(--line);color:var(--ink);
  padding:.4rem .55rem;border-radius:7px;font-size:.92rem;
}
.ob-unit{color:var(--muted);font-size:.78rem;}

.ob-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;}
.ob-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--ink);}
.ob-form label.ob-full{grid-column:1/-1;}
.ob-form input, .ob-form select, .ob-form textarea{
  background:var(--panel2);border:1px solid var(--line);color:var(--ink);
  padding:.55rem .7rem;border-radius:7px;font-size:.95rem;font-family:inherit;
}
.ob-form input:focus, .ob-form select:focus, .ob-form textarea:focus{
  outline:0;border-color:var(--accent2,#d62828);
}
.ob-form textarea{resize:vertical;min-height:80px;}

/* actions row */
.ob-actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:1.5rem;}
.btn-primary{
  background:var(--accent2,#d62828);color:#fff;padding:.7rem 1.4rem;
  border:0;border-radius:9px;font-family:'Inter Tight',ui-sans-serif,sans-serif;
  font-weight:700;font-size:.95rem;cursor:pointer;transition:transform .15s, background .15s;
  text-decoration:none;display:inline-block;
}
.btn-primary:hover{transform:translateY(-1px);background:#b51e1e;text-decoration:none;}
.btn-primary.btn-big{padding:1rem 2rem;font-size:1.05rem;}
.btn-ghost{
  background:transparent;color:var(--muted);padding:.7rem 1.2rem;
  border:1px solid var(--line);border-radius:9px;font-size:.92rem;
  text-decoration:none;
}
.btn-ghost:hover{color:var(--ink);text-decoration:none;}
.ob-link{font-size:.85rem;color:var(--muted);}

/* welcome screen */
.ob-welcome{max-width:760px;}
.ob-welcome-coach{display:flex;gap:1.1rem;align-items:center;margin-bottom:1rem;}
.ob-welcome-coach img{
  width:96px;height:120px;object-fit:cover;object-position:center top;
  border-radius:12px;border:2px solid var(--accent2,#d62828);
}
.ob-welcome-from{
  font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--accent2,#d62828);font-weight:700;
}
.ob-welcome-spec{color:var(--muted);font-size:.85rem;margin-top:.2rem;}
.ob-welcome-msg{
  border-left:3px solid var(--accent2,#d62828);
  padding:.8rem 1.1rem;margin:1.2rem 0;background:var(--panel);border-radius:0 10px 10px 0;
  font-size:1.02rem;line-height:1.6;color:var(--ink);font-style:italic;
}
.ob-welcome-summary{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:.3rem 1rem;margin:1.2rem 0;
}
.ob-summary-row{
  display:flex;justify-content:space-between;padding:.7rem 0;
  border-top:1px solid var(--line);font-size:.92rem;
}
.ob-summary-row:first-child{border-top:0;}
.ob-summary-row span{color:var(--muted);}
.ob-summary-row strong{color:var(--ink);}

/* launch screen */
.ob-launch{max-width:680px;}
.ob-launch-eyebrow{
  font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--accent2,#d62828);font-weight:700;margin-bottom:.5rem;
}
.ob-launch-card{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:.3rem 1.2rem;margin:1.4rem 0;
}
.ob-launch-row{display:flex;justify-content:space-between;padding:.85rem 0;
  border-top:1px solid var(--line);gap:1rem;font-size:.93rem;}
.ob-launch-row:first-child{border-top:0;}
.ob-launch-row span{color:var(--muted);min-width:110px;flex:none;}
.ob-launch-row strong{color:var(--ink);text-align:right;font-weight:600;}

/* ============================================ TIER BANNER on dashboard ============================================ */
.tier-banner{
  display:flex;align-items:center;gap:1rem;
  background:var(--panel);border:1.5px solid var(--line);border-radius:12px;
  padding:.85rem 1rem;margin:0 0 1.1rem;
}
.tier-banner.with-coach{border-left:4px solid var(--accent2,#d62828);}
.tier-coach-photo{
  width:60px;height:60px;border-radius:10px;object-fit:cover;object-position:center top;
  border:2px solid var(--accent2,#d62828);flex:none;
}
.tier-banner-text{flex:1;min-width:0;}
.tier-banner-eyebrow{
  font-size:.7rem;text-transform:uppercase;letter-spacing:1.2px;
  color:var(--accent2,#d62828);font-weight:700;
}
.tier-banner-name{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;font-weight:800;
  color:var(--ink);font-size:1.05rem;margin:.15rem 0;line-height:1.1;
}
.tier-banner-meta{color:var(--muted);font-size:.82rem;}
.tier-banner-link{
  flex:none;color:var(--accent2,#d62828);font-size:.82rem;font-weight:600;
}

/* ============================================ MOBILE BREAKPOINTS (onboarding + dashboard) ============================================ */
@media (max-width:900px){
  .ob-tier-grid{grid-template-columns:1fr;}
  .ob-coach-grid{grid-template-columns:repeat(2,1fr);}
  .ob-radio-grid{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .ob-h1{font-size:1.65rem;}
  .ob-coach-grid{grid-template-columns:1fr;}
  .ob-pr-grid{grid-template-columns:1fr;}
  .tier-banner{flex-wrap:wrap;}
  .tier-banner-link{margin-left:auto;}
  .tier-coach-photo{width:48px;height:48px;}
  .ob-progress-label{display:none;}
  .ob-actions{flex-direction:column;align-items:stretch;}
  .ob-actions .btn-primary, .ob-actions .btn-ghost{text-align:center;}
  .ob-welcome-coach{flex-direction:column;align-items:flex-start;text-align:left;}
  .ob-welcome-coach img{width:80px;height:100px;}
}

/* Onboarding pages: hide the sidebar's broken "nav links to features you haven't unlocked yet" entries
   We still want logo + logout. Easiest: shrink the nav on the onboarding pages.
   But applied globally, only restrict on the specific routes via body class would be better.
   For now we'll keep nav visible, every link 302s back if the route requires onboarding. */

/* CMS-driven athletes additions */
.w-slide-mono{
  width:100%; height:100%;
  display:grid; place-items:center;
  background:linear-gradient(135deg,#051d3b,#0a2a55);
}
.w-slide-mono span{
  font-family:'Inter Tight',ui-sans-serif,sans-serif;
  font-weight:900; color:#fff; font-size:6rem; letter-spacing:-.04em;
  text-shadow:0 8px 30px rgba(0,0,0,.25);
}
.w-slide-source, .w-athlete-source{
  display:inline-block; margin-top:.5rem;
  color:#d62828; font-size:.78rem; font-weight:600;
  text-decoration:none;
}
.w-slide-source:hover, .w-athlete-source:hover{ text-decoration:underline; }
.w-athlete-best-meta{
  font-size:.85rem; line-height:1.5; margin-top:.25rem;
}
.wt-edit-link{
  display:inline-block; margin-top:.6rem;
  color:#fff; background:rgba(214,40,40,.85);
  padding:.45rem .9rem; border-radius:999px;
  font-size:.78rem; font-weight:700; text-decoration:none;
}
.wt-edit-link:hover{ background:#d62828; text-decoration:none; }

/* ============================================================
   DARK PREMIUM THEME — site-wide marketing reskin
   Appended 2026-07-15. Last block wins the cascade.
   Palette:
     bg        #0a0a0c  (near-black)
     body text #e8e8e8  (off-white)
     headline  #ffffff  (pure white)
     accent    #c9a84c  (warm gold — CTAs, PR numbers, highlighted stats)
     card/div  #2d2d2d  (secondary — card backgrounds + section dividers)
     borders   1px solid rgba(255,255,255,.08)
   To revert: delete from this comment to EOF (or restore the
   style.css.bak.*-pre-darktheme snapshot).
   ============================================================ */

/* ---- Palette anchor + brand-var remap (recolors var()-driven accents) ---- */
.welcome-body{
  --usat-red:#c9a84c;          /* every var(--usat-red) accent → gold */
  --usat-red-bright:#d8bb63;
  --usat-navy:#141416;         /* structural dark stays dark */
  --usat-cream:#0a0a0c;
  --usat-ink:#e8e8e8;
  --dk-bg:#0a0a0c; --dk-card:#2d2d2d; --dk-gold:#c9a84c;
  --dk-line:rgba(255,255,255,.08); --dk-text:#e8e8e8;
  background:#0a0a0c;
  color:#e8e8e8;
}

/* ---- Kill light section fills; everything sits on near-black ---- */
.welcome-body .w-section,
.welcome-body .w-section.dark{ background:#0a0a0c; color:#e8e8e8; }
.welcome-body .w-block-text{ background:#0a0a0c; }
.welcome-body .w-block-text p{ color:#b8b8b8; }
.welcome-body .w-block-text p strong{ color:#ffffff; }

/* ---- Headlines: pure white, heavier weight (keep font stack) ---- */
.welcome-body .w-h2,
.welcome-body .w-final-text h2,
.welcome-body .w-hero-headline,
.welcome-body .w-tier-name,
.welcome-body .wt-popup-card h2{ color:#ffffff; font-weight:800; }
.welcome-body .w-h2.light{ color:#ffffff; }

/* ---- Eyebrows / leads / body copy on the now-dark sections ---- */
.welcome-body .w-eyebrow{ color:#c9a84c; opacity:.85; }
.welcome-body .w-eyebrow.light{ color:#c9a84c; opacity:.85; }
.welcome-body .w-lead{ color:#b8b8b8; }
.welcome-body .w-h2 em,
.welcome-body .w-philosophy em,
.welcome-body .w-quote.serif em{ color:#c9a84c; }
.welcome-body .w-sources{ color:#9a9a9a; border-top-color:rgba(255,255,255,.08); }
.welcome-body .w-sources strong,
.welcome-body .w-sources em{ color:#e8e8e8; }
.welcome-body .w-app-bullets li{ border-top-color:rgba(255,255,255,.08); }
.welcome-body .w-app-bullets li:before{ color:#c9a84c; }
.welcome-body .w-app-bullets strong{ color:#ffffff; }

/* ---- Hero + final-CTA: flat 70% black overlay over the photo ---- */
.welcome-body .w-hero-veil{ background:rgba(0,0,0,.70); }
.welcome-body .w-final-veil{ background:rgba(0,0,0,.70); }
.welcome-body .w-hero-eyebrow .dot{
  background:#c9a84c !important;
  box-shadow:0 0 0 0 rgba(201,168,76,.6) !important;
}

/* ---- Pricing cards: graphite surface, subtle borders, gold featured ---- */
.welcome-body .w-tier{
  background:#2d2d2d; color:#e8e8e8;
  border:1px solid rgba(255,255,255,.08);
}
.welcome-body .w-tier:hover{ box-shadow:0 20px 40px rgba(0,0,0,.45); }
.welcome-body .w-tier.featured{
  background:#202024; color:#e8e8e8;
  border:2px solid #c9a84c;
  box-shadow:0 16px 40px rgba(201,168,76,.18);
}
.welcome-body .w-tier-eyebrow{ color:#c9a84c; }
.welcome-body .w-tier-name{ color:#ffffff; }
.welcome-body .w-tier-price{ color:#b0b0b0; border-bottom-color:rgba(255,255,255,.08); }
.welcome-body .w-tier-list li{ color:#d0d0d0; border-top-color:rgba(255,255,255,.08); }
.welcome-body .w-tier-list li:before{ color:#c9a84c; }
.welcome-body .w-tier-badge{ background:#c9a84c; color:#0a0a0c; }

/* ---- CTAs → warm gold (dark ink text) ---- */
.welcome-body .w-cta.primary{ background:#c9a84c; border-color:#c9a84c; color:#0a0a0c; }
.welcome-body .w-cta.primary:hover{ background:#d8bb63; border-color:#d8bb63; color:#0a0a0c; }
.welcome-body .w-tier-cta{ background:#c9a84c; color:#0a0a0c; }
.welcome-body .w-tier-cta:hover{ background:#d8bb63; color:#0a0a0c; }
.welcome-body .w-tier.featured .w-tier-cta{ background:#c9a84c; color:#0a0a0c; }
.welcome-body .w-tier.featured .w-tier-cta:hover{ background:#ffffff; color:#0a0a0c; }
.wt-cta{ background:#c9a84c !important; color:#0a0a0c !important; }
.wt-cta:hover{ background:#d8bb63 !important; color:#0a0a0c !important; }

/* ---- Coach / people / program / roster cards ---- */
.welcome-body .w-prog-grid > div,
.welcome-body .w-person,
.welcome-body .w-athlete{
  background:#2d2d2d; color:#e8e8e8;
  border:1px solid rgba(255,255,255,.08);
}
.welcome-body .w-roster-card{ background:#2d2d2d; border-color:rgba(255,255,255,.08); }
.welcome-body .w-roster-card.featured{
  background:linear-gradient(135deg,#2d2620 0%, #3a2f1c 100%);
  border-left-color:#c9a84c;
}
.welcome-body .w-roster-card.featured .w-roster-rank{ color:#c9a84c; }
.welcome-body .w-roster-pr,
.welcome-body .w-roster-card.featured .w-roster-pr{ color:#c9a84c; }

/* ---- PR numbers + highlighted stats → gold ---- */
.welcome-body .w-phone-row strong{ color:#c9a84c; }
.welcome-body .w-event-stat strong{ color:#c9a84c; }
.welcome-body .w-slide-stats li strong{ color:#c9a84c; }
.welcome-body .w-new{ background:#c9a84c; color:#0a0a0c; }

/* ---- Nav accents ---- */
.wt-nav{ border-bottom-color:rgba(255,255,255,.08); }
.wt-links a:hover, .wt-links a.active{ color:#c9a84c; }
.wt-links a.active::after{ background:#c9a84c; }

/* ---- Footer ---- */
.wt-foot{ border-top-color:rgba(255,255,255,.08); }
.wt-foot-h{ color:#c9a84c; }
.wt-foot-grid a:hover{ color:#c9a84c; }
.wt-foot-bottom{ border-top-color:rgba(255,255,255,.08); }
.welcome-body .w-foot strong{ font-weight:800; }

/* ---- Newsletter / modal → dark card ---- */
.wt-popup-card{
  background:#141416; color:#e8e8e8;
  border-top:6px solid #c9a84c;
  border:1px solid rgba(255,255,255,.08);
  border-top:6px solid #c9a84c;
}
.wt-popup-eyebrow{ color:#c9a84c; }
.wt-popup-card p{ color:#b8b8b8; }
.wt-popup-close{ color:#8a8a8a; }
.wt-popup-close:hover{ color:#ffffff; }
.wt-popup-form input{
  background:#0a0a0c; color:#e8e8e8;
  border:1px solid rgba(255,255,255,.12);
}
.wt-popup-form button{ background:#c9a84c !important; color:#0a0a0c !important; }
.wt-popup-form button:hover{ background:#d8bb63 !important; color:#0a0a0c !important; }
/* ===================== END DARK PREMIUM THEME ===================== */

/* ---- Camp gallery: img tiles inside .w-ig-tile (lazy-loaded) ---- */
.welcome-body .w-ig-tile img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block;
}

/* ---- Camp gallery: compact, always-visible (no reveal gate) ---- */
.welcome-body .w-ig-grid.camp-gallery{
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:.4rem; margin-top:1.8rem;
}
@media (max-width:480px){
  .welcome-body .w-ig-grid.camp-gallery{ grid-template-columns:repeat(2,1fr); }
}

/* ============================================================
   USA THROWS .io DESIGN SYSTEM  (2026-07-15)
   Foundation tokens + components: All Access pricing, Jav Bros
   podcast, Leaderboard, Event landing pages.
   ============================================================ */
.welcome-body{
  --io-bg:#0a0a0c; --io-card:#111111; --io-elev:#1a1a1a;
  --io-border:rgba(255,255,255,.07);
  --io-white:#ffffff; --io-2:#a0a0a0; --io-muted:#555555;
  --io-gold:#c9a84c; --io-gold-h:#e0bc5e; --io-green:#4caf7d;
  --io-mono:'SF Mono','Fira Code','JetBrains Mono',ui-monospace,'DejaVu Sans Mono',Menlo,Consolas,monospace;
}
/* --- utilities --- */
.io-label{ display:inline-block; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--io-gold); font-weight:700; margin-bottom:1rem; }
.io-mono{ font-family:var(--io-mono); font-variant-numeric:tabular-nums; }
/* --- spacing tune (design-system section rhythm) --- */
.welcome-body .w-section{ padding:120px 2rem; }
@media (max-width:900px){ .welcome-body .w-section{ padding:64px 1.2rem; } }
/* --- buttons --- */
.welcome-body .w-cta{ min-height:48px; display:inline-flex; align-items:center; justify-content:center; }
.welcome-body .w-cta.primary{ background:var(--io-gold); border-color:var(--io-gold); color:#0a0a0c; }
.welcome-body .w-cta.primary:hover{ background:var(--io-gold-h); border-color:var(--io-gold-h); color:#0a0a0c; }
.welcome-body .w-cta.secondary{ background:transparent; border:1px solid var(--io-gold); color:var(--io-gold); }
.welcome-body .w-cta.secondary:hover{ background:var(--io-gold); color:#0a0a0c; }
.welcome-body .w-cta.ghost{ background:transparent; border:1px solid rgba(255,255,255,.5); color:#fff; }
.welcome-body .w-cta.ghost:hover{ background:#fff; color:#0a0a0c; }

/* ===== All Access membership ===== */
.w-access{ max-width:640px; margin:2.6rem auto 0; }
.w-access-card{ background:#111; border:1px solid var(--io-gold); border-radius:12px;
  padding:40px 36px; text-align:center; box-shadow:0 24px 70px rgba(201,168,76,.12); }
.w-access-kicker{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--io-gold); font-weight:800; }
.w-access-price{ margin:.5rem 0 .1rem; color:#fff; font-weight:800; letter-spacing:-.02em;
  font-size:3.4rem; line-height:1; }
.w-access-price span{ font-size:1.1rem; color:var(--io-2); font-weight:600; letter-spacing:0; }
.w-access-sub{ color:var(--io-2); font-size:.95rem; margin:0 0 1.6rem; }
.w-access-list{ list-style:none; padding:0; margin:0 0 1.8rem; text-align:left; }
.w-access-list li{ padding:.6rem 0 .6rem 1.9rem; position:relative; color:#e8e8e8;
  border-top:1px solid var(--io-border); font-size:.96rem; line-height:1.4; }
.w-access-list li:first-child{ border-top:none; }
.w-access-list li:before{ content:"✓"; position:absolute; left:0; top:.55rem;
  color:var(--io-gold); font-weight:800; }
.w-access-cta{ display:block; width:100%; box-sizing:border-box; text-align:center;
  background:var(--io-gold); color:#0a0a0c !important; border:none; border-radius:8px;
  padding:0 24px; min-height:52px; line-height:52px; font-weight:800; letter-spacing:1px;
  text-transform:uppercase; font-size:.9rem; text-decoration:none; transition:background .15s; }
.w-access-cta:hover{ background:var(--io-gold-h); text-decoration:none; }
.w-access-fine{ color:var(--io-muted); font-size:.8rem; margin:.9rem 0 0; }
.w-addon{ margin-top:1rem; background:#111; border:1px solid var(--io-border); border-radius:12px;
  padding:24px 28px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.w-addon-body h4{ margin:0 0 .35rem; color:#fff; font-size:1.1rem; font-weight:700; }
.w-addon-body h4 span{ color:var(--io-gold); font-family:var(--io-mono); font-size:.95rem; margin-left:.4rem; }
.w-addon-body p{ margin:0; color:var(--io-2); font-size:.9rem; line-height:1.5; max-width:520px; }
.w-addon-cta{ flex:none; background:transparent; border:1px solid var(--io-gold); color:var(--io-gold);
  border-radius:8px; padding:.7rem 1.2rem; font-weight:700; text-decoration:none; white-space:nowrap;
  transition:background .15s,color .15s; }
.w-addon-cta:hover{ background:var(--io-gold); color:#0a0a0c; text-decoration:none; }
@media (max-width:640px){ .w-addon{ flex-direction:column; align-items:flex-start; } }

/* ===== Jav Bros Podcast ===== */
.w-pod{ display:grid; grid-template-columns:1.5fr 1fr; gap:2.5rem; margin-top:2rem; align-items:start; }
.w-pod-featured{ background:#1a1a1a; border:1px solid var(--io-border); border-radius:12px; overflow:hidden; }
.w-pod-thumb{ position:relative; aspect-ratio:16/8; overflow:hidden; }
.w-pod-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.w-pod-thumb .w-pod-veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(10,10,12,.75)); }
.w-pod-play{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2;
  width:64px; height:64px; border-radius:50%; background:var(--io-gold); border:none; cursor:pointer;
  display:grid; place-items:center; box-shadow:0 8px 30px rgba(0,0,0,.5); transition:transform .15s,background .15s; }
.w-pod-play:hover{ transform:translate(-50%,-50%) scale(1.06); background:var(--io-gold-h); }
.w-pod-play svg{ margin-left:3px; }
.w-pod-info{ padding:20px 22px; }
.w-pod-eptitle{ margin:.2rem 0 .6rem; color:#fff; font-size:1.15rem; font-weight:700; line-height:1.25; }
.w-pod-dur{ display:inline-block; background:rgba(201,168,76,.14); color:var(--io-gold);
  font-family:var(--io-mono); font-size:.72rem; padding:.2rem .6rem; border-radius:999px; letter-spacing:.5px; }
.w-pod-follow{ color:var(--io-2); font-size:.88rem; margin:1.4rem 0 .7rem; }
.w-pod-platforms{ display:flex; gap:1.1rem; align-items:center; }
.w-pod-platforms a{ color:var(--io-2); display:inline-flex; align-items:center; gap:.4rem;
  font-size:.85rem; text-decoration:none; transition:color .15s; }
.w-pod-platforms a:hover{ color:var(--io-gold); text-decoration:none; }
.w-pod-list{ display:flex; flex-direction:column; gap:.7rem; }
.w-pod-mini{ display:flex; gap:.9rem; align-items:center; background:#111; border:1px solid var(--io-border);
  border-radius:10px; padding:.85rem 1rem; text-decoration:none; transition:border-color .15s,transform .15s; }
.w-pod-mini:hover{ border-color:rgba(201,168,76,.4); transform:translateX(2px); text-decoration:none; }
.w-pod-mini-ep{ flex:none; font-family:var(--io-mono); color:var(--io-gold); font-size:.8rem; font-weight:700;
  width:44px; text-align:center; }
.w-pod-mini-body{ min-width:0; }
.w-pod-mini-title{ color:#fff; font-size:.92rem; font-weight:600; line-height:1.25; }
.w-pod-mini-meta{ color:var(--io-2); font-size:.78rem; margin-top:.15rem; }
.w-pod-cta{ margin-top:2.2rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
  border-top:1px solid var(--io-border); padding-top:1.6rem; }
.w-pod-cta span{ color:var(--io-2); font-size:1rem; }
.w-pod-cta span b{ color:#fff; }
@media (max-width:820px){ .w-pod{ grid-template-columns:1fr; } }

/* ===== Leaderboard ===== */
.w-board-wrap{ background:#111; border:1px solid var(--io-border); border-radius:12px; padding:24px; margin-top:2rem; overflow-x:auto; }
.w-board-pills{ display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.w-board-pill{ background:transparent; border:1px solid var(--io-border); color:var(--io-2);
  border-radius:999px; padding:.4rem 1rem; font-size:.82rem; font-weight:600; cursor:pointer;
  transition:all .15s; }
.w-board-pill:hover{ border-color:rgba(201,168,76,.5); color:#fff; }
.w-board-pill.active{ background:var(--io-gold); border-color:var(--io-gold); color:#0a0a0c; }
.w-board-table{ width:100%; border-collapse:collapse; min-width:640px; }
.w-board-table th{ text-align:left; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--io-muted); font-weight:700; padding:.5rem .75rem; border-bottom:1px solid var(--io-border); }
.w-board-table td{ padding:.75rem .75rem; border-bottom:1px solid var(--io-border); color:#e8e8e8; font-size:.92rem; }
.w-board-table tr:last-child td{ border-bottom:none; }
.w-board-rank{ font-family:var(--io-mono); color:var(--io-2); font-weight:700; width:52px; }
.w-board-table tr[data-rank="1"] .w-board-rank,
.w-board-table tr[data-rank="2"] .w-board-rank,
.w-board-table tr[data-rank="3"] .w-board-rank{ color:var(--io-gold); }
.w-board-athlete{ color:#fff; font-weight:600; white-space:nowrap; }
.w-board-mark{ font-family:var(--io-mono); color:var(--io-green); font-weight:700; white-space:nowrap; }
.w-board-dim{ color:var(--io-2); white-space:nowrap; }
.w-board-foot{ text-align:center; margin-top:1.8rem; }
.w-board-foot p{ color:var(--io-2); margin:0 0 1rem; }

/* ===== Event landing pages ===== */
.ev-hero{ position:relative; min-height:78vh; display:flex; align-items:center; overflow:hidden; background:#0a0a0c; }
.ev-hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(12%) contrast(106%) brightness(60%); }
.ev-hero-veil{ position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,10,12,.9) 0%,rgba(10,10,12,.55) 60%,rgba(10,10,12,.35) 100%); }
.ev-hero-in{ position:relative; z-index:2; max-width:1100px; margin:0 auto; padding:5rem 2rem; width:100%; }
.ev-hero h1{ font-size:clamp(2.2rem,5.5vw,4.4rem); font-weight:800; letter-spacing:-.02em; line-height:1.03;
  color:#fff; margin:.4rem 0 1rem; max-width:16ch; }
.ev-cred{ color:var(--io-2); font-size:1rem; line-height:1.5; margin:0 0 1.8rem; max-width:60ch; }
.ev-cred b{ color:#fff; }
.ev-hero-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.ev-section{ padding:100px 2rem; max-width:1100px; margin:0 auto; }
.ev-section.tight{ padding:70px 2rem; }
.ev-h2{ font-size:clamp(1.7rem,3.5vw,2.6rem); font-weight:700; letter-spacing:-.015em; color:#fff; margin:.3rem 0 1.4rem; }
.ev-lead{ color:var(--io-2); font-size:1.05rem; line-height:1.6; max-width:70ch; }
.ev-spotlight{ display:grid; grid-template-columns:.85fr 1.15fr; gap:2.5rem; align-items:center;
  background:#111; border:1px solid var(--io-border); border-radius:12px; padding:32px; }
.ev-spotlight img{ width:100%; border-radius:10px; object-fit:cover; aspect-ratio:4/5; }
.ev-spotlight p{ color:var(--io-2); line-height:1.65; }
.ev-creds{ list-style:none; padding:0; margin:1.2rem 0 0; }
.ev-creds li{ padding:.5rem 0 .5rem 1.6rem; position:relative; color:#e8e8e8; border-top:1px solid var(--io-border); }
.ev-creds li:before{ content:"·"; position:absolute; left:.3rem; color:var(--io-gold); font-weight:900; font-size:1.3rem; line-height:1; }
.ev-grid4{ display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-top:1.5rem; }
.ev-fcard{ background:#111; border:1px solid var(--io-border); border-radius:12px; padding:26px 22px; }
.ev-fcard h4{ color:#fff; margin:.2rem 0 .5rem; font-size:1.05rem; }
.ev-fcard p{ color:var(--io-2); font-size:.9rem; line-height:1.5; margin:0; }
.ev-fcard .io-label{ margin-bottom:.6rem; }
.ev-quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem; }
.ev-quote{ background:#1a1a1a; border:1px solid var(--io-border); border-radius:12px; padding:26px 24px; }
.ev-quote p{ color:#e8e8e8; font-size:1rem; line-height:1.55; margin:0 0 1rem; }
.ev-quote cite{ color:var(--io-gold); font-style:normal; font-weight:700; font-size:.9rem; }
.ev-quote cite span{ display:block; color:var(--io-2); font-weight:400; font-size:.8rem; margin-top:.2rem; }
.ev-coaches{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem; }
.ev-coach{ background:#111; border:1px solid var(--io-border); border-radius:12px; padding:22px; text-align:center; }
.ev-coach img{ width:88px; height:88px; border-radius:50%; object-fit:cover; margin:0 auto .8rem; display:block; border:2px solid var(--io-border); }
.ev-coach h4{ color:#fff; margin:0 0 .2rem; }
.ev-coach div{ color:var(--io-2); font-size:.85rem; }
.ev-final{ text-align:center; padding:110px 2rem; background:#0a0a0c; border-top:1px solid var(--io-border); }
.ev-final h2{ font-size:clamp(1.8rem,4vw,3rem); font-weight:800; color:#fff; margin:0 0 1.6rem; letter-spacing:-.02em; }
.ev-final-actions{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
@media (max-width:900px){
  .ev-spotlight{ grid-template-columns:1fr; }
  .ev-grid4{ grid-template-columns:1fr 1fr; }
  .ev-quotes,.ev-coaches{ grid-template-columns:1fr; }
}
@media (max-width:560px){ .ev-grid4{ grid-template-columns:1fr; } }
/* ===================== END .io DESIGN SYSTEM ===================== */

/* ===== .io nav: centered links + right actions ===== */
.wt-nav.scrolled{ background:#0a0a0c; border-bottom:1px solid rgba(255,255,255,.07); }
.wt-brand img{ height:32px !important; width:auto; filter:brightness(0) invert(1); }
.wt-links{ flex:1; display:flex; align-items:center; margin-left:2rem; }
.wt-mid{ display:flex; gap:1.8rem; align-items:center; margin:0 auto; }
.wt-actions{ display:flex; gap:.9rem; align-items:center; }
.wt-signin{ color:#fff !important; opacity:.85; }
.wt-signin:hover{ opacity:1; color:var(--io-gold) !important; }
@media (max-width:900px){
  .wt-links{ margin-left:0; }
  .wt-mid, .wt-actions{ display:contents; }
}

/* logo: use the dark-bg SVG variant as-is (no destructive filter) */
.welcome-body .wt-brand img{ filter:none; }

/* ===== Camps page ===== */
.camps-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; margin-top:1rem; }
.camp-card{ background:#111; border:1px solid var(--io-border); border-radius:12px; padding:32px; display:flex; flex-direction:column; }
.camp-name{ color:#fff; font-family:'Inter Tight',sans-serif; font-weight:800; font-size:1.5rem; letter-spacing:-.02em; margin:.5rem 0 .2rem; }
.camp-loc{ color:var(--io-gold); font-weight:600; font-size:.95rem; }
.camp-blurb{ color:var(--io-2); line-height:1.55; margin:.9rem 0 1.2rem; }
.camp-meta{ list-style:none; padding:0; margin:0 0 1.4rem; }
.camp-meta li{ display:flex; gap:.8rem; padding:.5rem 0; border-top:1px solid var(--io-border); color:#e8e8e8; font-size:.92rem; }
.camp-meta li span{ flex:none; width:80px; color:var(--io-muted); text-transform:uppercase; letter-spacing:.08em; font-size:.68rem; font-weight:700; padding-top:.15rem; }
.camp-cta{ margin-top:auto; align-self:flex-start; background:transparent; border:1px solid var(--io-gold); color:var(--io-gold); border-radius:8px; padding:.7rem 1.2rem; font-weight:700; text-decoration:none; transition:background .15s,color .15s; }
.camp-cta:hover{ background:var(--io-gold); color:#0a0a0c; text-decoration:none; }
.camps-note{ color:var(--io-2); font-size:.9rem; margin-top:2rem; max-width:70ch; }
.camps-note a{ color:var(--io-gold); }
/* Newsletter thank-you state */
.wt-popup-thanks{ color:var(--io-gold); font-weight:700; font-size:1rem; padding:.6rem 0 .2rem; }
@media (max-width:760px){ .camps-grid{ grid-template-columns:1fr; } }

/* pricing action row (Start Free / Get Coached) */
.w-access-actions{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; margin-top:.4rem; }

/* ============================================================
   ATHLETE DASHBOARD — Task 1 (greeting + quick actions) + Task 4 (modals)
   Uses app tokens: --panel #141b24 · --line #26303d · --accent #d62828
   ============================================================ */
.dash-tourbar{ display:flex; align-items:center; gap:.75rem; background:var(--panel2);
  border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:8px;
  padding:.6rem .85rem; margin-bottom:1rem; font-size:.9rem; color:var(--ink); }
.dash-tourbar span{ flex:1; }
.dash-tourbar-cta{ color:var(--accent); font-weight:600; text-decoration:none; white-space:nowrap; }
.dash-tourbar-cta:hover{ text-decoration:underline; }
.dash-tourbar-x{ background:none; border:none; color:var(--muted); font-size:1.2rem; cursor:pointer; line-height:1; padding:0 .2rem; }
.dash-tourbar-x:hover{ color:var(--ink); }

.dash-hero{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  flex-wrap:wrap; margin:0 0 1.4rem; }
.dash-greeting{ margin:0 0 .15rem; font-size:1.9rem; line-height:1.1; }
.dash-date{ color:var(--muted); font-size:.95rem; }
.dash-hero-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.qa-btn{ background:var(--accent); color:#fff; border:none; border-radius:8px;
  padding:.6rem 1.1rem; font-size:.92rem; font-weight:600; cursor:pointer;
  transition:background .15s ease, transform .15s ease; }
@media (prefers-reduced-motion: no-preference){ .qa-btn:hover{ transform:translateY(-1px); } }
.qa-btn:hover{ background:#e23b3b; }
.qa-btn.done{ background:var(--panel2); color:var(--good); cursor:default; border:1px solid var(--line); }
.qa-btn.done:hover{ transform:none; background:var(--panel2); }

/* ----- modals ----- */
body.qa-open{ overflow:hidden; }
.qa-modal{ position:fixed; inset:0; z-index:120; background:rgba(0,0,0,.6);
  display:grid; place-items:center; padding:1.2rem; }
@media (prefers-reduced-motion: no-preference){ .qa-modal{ animation:qaFade .2s ease; } }
@keyframes qaFade{ from{opacity:0} to{opacity:1} }
.qa-modal[hidden]{ display:none; }
.qa-dialog{ background:var(--panel); border:1px solid var(--line); border-radius:14px;
  width:100%; max-width:440px; box-shadow:0 24px 70px rgba(0,0,0,.55); overflow:hidden; }
@media (prefers-reduced-motion: no-preference){ .qa-dialog{ animation:qaUp .25s cubic-bezier(.2,.6,.2,1); } }
@keyframes qaUp{ from{transform:translateY(16px);opacity:0} to{transform:none;opacity:1} }
.qa-head{ display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.25rem; border-bottom:1px solid var(--line); }
.qa-head h3{ margin:0; font-size:1.1rem; border:none; padding:0; }
.qa-x{ background:none; border:none; color:var(--muted); font-size:1.5rem; line-height:1; cursor:pointer; }
.qa-x:hover{ color:var(--ink); }
.qa-body{ padding:1.1rem 1.25rem; display:flex; flex-direction:column; gap:.85rem; }
.qa-field{ display:flex; flex-direction:column; gap:.3rem; font-size:.82rem; color:var(--muted); }
.qa-field select, .qa-field input{ font-size:.95rem; color:var(--ink); }
.qa-markrow{ display:flex; gap:.5rem; }
.qa-markrow input{ flex:1; }
.qa-markrow select{ width:70px; }
.qa-check{ display:flex; align-items:center; gap:.5rem; color:var(--ink); font-size:.9rem; }
.qa-check input{ width:auto; }
.qa-slider{ display:flex; flex-direction:column; gap:.35rem; }
.qa-slider-top{ display:flex; justify-content:space-between; font-size:.85rem; color:var(--ink); }
.qa-slider-top b{ color:var(--accent); font-variant-numeric:tabular-nums; }
.qa-slider input[type=range]{ width:100%; accent-color:var(--accent); }
.qa-actions{ display:flex; justify-content:flex-end; gap:.6rem; margin-top:.3rem; }
.qa-save{ background:var(--accent); color:#fff; border:none; border-radius:7px; padding:.55rem 1.1rem; font-weight:600; cursor:pointer; }
.qa-save:hover{ background:#e23b3b; }
.qa-save:disabled{ opacity:.6; cursor:default; }
.qa-err{ background:#3a1414; border:1px solid #7a2020; color:#fecaca; padding:.4rem .6rem; border-radius:6px; font-size:.82rem; }
.qa-toast{ position:fixed; left:50%; bottom:26px; transform:translateX(-50%); z-index:130;
  background:var(--panel2); border:1px solid var(--line); color:var(--ink);
  padding:.7rem 1.2rem; border-radius:10px; font-size:.92rem; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.qa-toast[hidden]{ display:none; }
.qa-toast.gold{ border-color:#f5a623; color:#ffd98a; }
@media (max-width:560px){ .dash-hero{ align-items:flex-start; } .dash-hero-actions{ width:100%; } .qa-btn{ flex:1; } }

/* fix: foul checkbox row (override global label column) */
.qa-check{ flex-direction:row !important; justify-content:flex-start; }

/* ============================================================
   DASHBOARD — Task 5: sidebar polish + mobile hamburger + badge
   ============================================================ */
.nav-item{ transition:background .15s ease, color .15s ease; }
.nav-item svg{ transition:color .15s ease; }
.nav-item:hover svg{ color:var(--ink); }
.nav-item.active{ color:#fff; box-shadow:inset 3px 0 0 var(--accent); }
.nav-item.active svg{ color:var(--accent); }
.nav-badge{ margin-left:auto; width:8px; height:8px; border-radius:50%;
  background:var(--accent); flex:none; box-shadow:0 0 0 2px rgba(214,40,40,.25); }

/* mobile hamburger + slide-in sidebar */
.side-burger{ display:none; align-items:center; justify-content:center;
  background:var(--panel); border:1px solid var(--line); border-radius:8px;
  color:var(--ink); cursor:pointer; width:42px; height:42px; }
.side-burger svg{ width:22px; height:22px; }
.side-scrim{ display:none; }
@media (max-width:768px){
  .side-burger{ display:flex; position:fixed; top:12px; left:12px; z-index:80; }
  .sidebar{ transform:translateX(-100%); transition:transform .25s ease; z-index:90;
    box-shadow:0 0 40px rgba(0,0,0,.6); }
  .sidebar.open{ transform:translateX(0); }
  .side-scrim.show{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:85; }
  .container{ margin-left:0; padding-top:66px; }
}
@media (prefers-reduced-motion: reduce){ .sidebar{ transition:none; } }

/* Task 5 fix: override the legacy horizontal-topbar mobile sidebar with a real slide-in panel */
@media (max-width:780px){
  .side-burger{ display:flex; }
  .sidebar{
    position:fixed; top:0; left:0; bottom:0; height:100vh; width:264px; max-width:82%;
    flex-direction:column; flex-wrap:nowrap; align-items:stretch; padding:1rem .8rem;
    border-right:1px solid var(--line); border-bottom:none;
    transform:translateX(-100%); transition:transform .25s ease; overflow-y:auto; z-index:90;
    box-shadow:0 0 40px rgba(0,0,0,.6);
  }
  .sidebar.open{ transform:translateX(0); }
  .sidebar .logo{ font-size:1.05rem; margin-bottom:.6rem; }
  .sidebar .me{ display:block; }
  .sidebar .nav{ flex-direction:column; flex-wrap:nowrap; gap:.15rem; margin-left:0; }
  .sidebar .nav-sep{ display:block; }
  .nav-item span{ display:inline; }
  .nav-item{ padding:.6rem .65rem; }
  .sidebar-foot{ flex-direction:column; border-top:1px solid var(--line); padding-top:.8rem; margin-left:0; }
  .side-scrim.show{ display:block; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:85; }
  .container{ margin-left:0; padding:1rem; padding-top:66px; }
}
@media (max-width:780px) and (prefers-reduced-motion: reduce){ .sidebar{ transition:none; } }

/* ============================================================
   DASHBOARD — Task 2: Next Meet countdown + Today's Plan cards
   ============================================================ */
.nm-card{ display:block; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:12px; padding:1.25rem 1.4rem; text-decoration:none; color:var(--ink);
  transition:transform .15s ease, box-shadow .15s ease; }
a.nm-card:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.4); text-decoration:none; }
.nm-card.empty{ border-left-color:var(--line); }
.nm-label,.tp-head{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.nm-title{ font-size:1rem; font-weight:600; margin:.35rem 0 .2rem; color:var(--ink); }
.nm-count{ text-align:center; padding:.5rem 0 .3rem; }
.nm-num{ font-size:3.4rem; font-weight:800; line-height:1; color:#fff; font-variant-numeric:tabular-nums; }
.nm-unit{ font-size:.8rem; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; margin-top:.2rem; }
.nm-cta{ display:inline-block; margin-top:.3rem; color:var(--accent); font-weight:600; font-size:.9rem; }
.nm-empty{ color:var(--muted); margin:.6rem 0 1rem; }
.nm-ghost,.tp-ghost{ display:inline-block; border:1px solid var(--line); border-radius:8px; padding:.5rem .9rem;
  color:var(--ink); text-decoration:none; font-size:.9rem; transition:border-color .15s ease, color .15s ease; }
.nm-ghost:hover,.tp-ghost:hover{ border-color:var(--accent); color:var(--accent); text-decoration:none; }

.tp-card{ background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:1.25rem 1.4rem; }
.tp-head{ margin-bottom:.7rem; }
.tp-wellness{ display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:.7rem; }
.tp-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.1rem; }
.tp-item{ display:flex; align-items:flex-start; gap:.6rem; padding:.5rem .35rem; border-radius:8px; transition:background .15s ease; }
.tp-item:hover{ background:var(--panel2); }
.tp-check{ flex:none; width:22px; height:22px; border-radius:6px; border:1.5px solid var(--line);
  background:transparent; color:#fff; font-size:.85rem; line-height:1; cursor:pointer; margin-top:1px;
  display:grid; place-items:center; transition:border-color .15s ease, background .15s ease; }
.tp-check:hover{ border-color:var(--accent); }
.tp-item.done .tp-check{ background:var(--accent); border-color:var(--accent); }
.tp-text{ font-size:.92rem; line-height:1.35; color:var(--ink); }
.tp-item.done .tp-text{ text-decoration:line-through; opacity:.55; }
.tp-empty{ color:var(--muted); margin:.4rem 0 1rem; }
.tp-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.tp-ghost{ font-size:.88rem; padding:.5rem .85rem; }

/* ============================================================
   DASHBOARD — Task 3: PR board implement cards
   ============================================================ */
.prb-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin:.3rem 0 .5rem; }
.prb-card{ background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:1.25rem 1.4rem;
  text-align:center; transition:box-shadow .15s ease, border-color .15s ease; }
.prb-head{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.prb-head span{ color:var(--ink); font-weight:600; letter-spacing:0; text-transform:none; }
.prb-value{ margin:.7rem 0 .1rem; display:flex; align-items:baseline; justify-content:center; gap:.2rem; }
.prb-mark{ font-family:var(--io-mono,monospace); font-size:2.6rem; font-weight:800; color:#fff; line-height:1;
  font-variant-numeric:tabular-nums; }
.prb-unit{ font-size:1rem; color:var(--muted); font-weight:600; }
.prb-ftin{ color:var(--muted); font-size:.9rem; font-variant-numeric:tabular-nums; }
.prb-date{ color:var(--muted); font-size:.78rem; margin-top:.35rem; }
.prb-dashes{ margin:.9rem 0 .3rem; font-size:2rem; color:var(--line); letter-spacing:.15em; font-weight:800; }
.prb-none{ color:var(--muted); font-size:.85rem; }
.prb-log{ display:inline-block; margin-top:.5rem; color:var(--accent); font-weight:600; font-size:.85rem; text-decoration:none; }
.prb-log:hover{ text-decoration:underline; }
/* gold PR flash (Task 3) — fires on ?new_pr, even from an empty card */
.prb-card.pr-flash{ animation:prbFlash 1s ease; }
@keyframes prbFlash{
  0%{ border-color:#f5a623; box-shadow:0 0 0 0 rgba(245,166,35,.55); }
  40%{ border-color:#f5a623; box-shadow:0 0 0 6px rgba(245,166,35,.28); }
  100%{ border-color:var(--line); box-shadow:0 0 0 0 rgba(245,166,35,0); }
}
@media (max-width:640px){ .prb-grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce){ .prb-card.pr-flash{ animation:none; } }

/* ============================================================
   DASHBOARD — Task 8: dismissible upgrade banner (Option B)
   ============================================================ */
.tier-banner{ background:var(--panel) !important; border:1px solid var(--line);
  border-left:3px solid var(--accent); border-radius:12px; overflow:hidden;
  transition:max-height .28s ease, opacity .28s ease, margin .28s ease, padding .28s ease; }
.tier-banner-eyebrow{ color:var(--accent) !important; }
.tier-banner-name{ color:#fff !important; }
.tier-banner-meta{ color:var(--muted) !important; }
.tier-banner-link{ color:var(--accent) !important; }
.tier-banner-x{ background:none; border:none; color:var(--muted); font-size:1.35rem; line-height:1;
  cursor:pointer; margin-left:.6rem; align-self:flex-start; padding:0 .2rem; transition:color .15s ease; }
.tier-banner-x:hover{ color:var(--ink); }

/* ============================================================
   DASHBOARD — Task 7: recent sessions compact log
   ============================================================ */
.rs-list{ display:flex; flex-direction:column; gap:.35rem; }
.rs-row{ display:block; padding:.7rem .9rem; border:1px solid var(--line); border-radius:10px;
  background:var(--panel); text-decoration:none; color:var(--ink);
  transition:background .15s ease, border-color .15s ease; }
.rs-row:hover{ background:var(--panel2); border-color:#33404f; text-decoration:none; }
.rs-top{ font-weight:600; font-size:.95rem; }
.rs-stats{ color:var(--muted); font-size:.85rem; margin-top:.2rem; }
.rs-stats b{ color:var(--good); }
.rs-dot{ color:var(--muted); }
.rs-all{ display:inline-block; margin-top:.65rem; color:var(--accent); font-weight:600; font-size:.9rem; text-decoration:none; }
.rs-all:hover{ text-decoration:underline; }
.rs-empty .tp-ghost{ margin-top:.2rem; }

/* ============================================================
   DASHBOARD — Task 6: drag-and-drop video uploader
   ============================================================ */
.vu-form{ display:flex; flex-direction:column; gap:.85rem; max-width:640px; }
.vu-drop{ border:2px dashed var(--line); border-radius:12px; padding:2rem 1.5rem; text-align:center;
  background:var(--panel); cursor:pointer; transition:border-color .15s ease, background .15s ease; }
.vu-drop.drag{ border-color:var(--accent); background:var(--panel2); }
.vu-drop svg{ width:28px; height:28px; color:var(--muted); }
.vu-drop-main{ font-weight:600; margin:.4rem 0 .2rem; color:var(--ink); }
.vu-drop-sub{ color:var(--muted); font-size:.9rem; }
.vu-choose{ background:none; border:none; color:var(--accent); font-weight:600; cursor:pointer; font-size:.9rem; padding:0; }
.vu-file{ margin-top:.6rem; color:var(--ink); font-size:.88rem; font-weight:600; }
.vu-label{ display:flex; flex-direction:column; gap:.3rem; font-size:.82rem; color:var(--muted); }
.vu-progress{ height:34px; background:var(--panel2); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.vu-bar{ height:100%; width:0; background:var(--accent); color:#fff; font-size:.8rem; font-weight:700;
  display:flex; align-items:center; justify-content:center; transition:width .15s ease; min-width:2.6em; }
.vu-msg{ font-size:.9rem; padding:.55rem .75rem; border-radius:8px; }
.vu-msg.ok{ background:#102819; color:#86efac; }
.vu-msg.ok a{ color:#86efac; text-decoration:underline; }
.vu-msg.err{ background:#3a1414; color:#fecaca; }

/* ============================================================
   DASHBOARD — Task 9: training activity heatmap
   ============================================================ */
.ha-wrap{ max-width:100%; }
.ha-months{ display:flex; gap:3px; margin-bottom:3px; padding-left:0; }
.ha-mo{ width:14px; font-size:.62rem; color:var(--muted); flex:none; overflow:visible; white-space:nowrap; }
.ha-grid{ display:flex; gap:3px; overflow-x:auto; padding-bottom:.2rem; }
.ha-week{ display:flex; flex-direction:column; gap:3px; flex:none; }
.ha-cell{ width:14px; height:14px; border-radius:3px; display:block; }
.ha-cell.l0{ background:#1a2230; }
.ha-cell.l1{ background:rgba(214,40,40,.32); }
.ha-cell.l2{ background:rgba(214,40,40,.62); }
.ha-cell.l3{ background:var(--accent); }
.ha-cell.empty{ background:transparent; }
a.ha-cell{ position:relative; }
a.ha-cell:hover{ outline:1px solid rgba(255,255,255,.35); }
a.ha-cell[data-tip]:hover::after{ content:attr(data-tip); position:absolute; bottom:150%; left:50%;
  transform:translateX(-50%); background:#000; color:#fff; padding:.3rem .55rem; border-radius:6px;
  font-size:.72rem; white-space:nowrap; z-index:20; pointer-events:none; box-shadow:0 4px 12px rgba(0,0,0,.5); }
.ha-legend{ display:flex; align-items:center; gap:5px; margin-top:.6rem; color:var(--muted); font-size:.75rem; }
.ha-legend .ha-cell{ width:12px; height:12px; }
.ha-sub{ color:var(--muted); font-weight:400; font-size:.9rem; }
@media (max-width:768px){
  .ha-week:nth-child(-n+4), .ha-months .ha-mo:nth-child(-n+4){ display:none; }
}

/* ============================================================
   MOBILE FIXES 2026-07-15 — nav slide-in panel + hero positioning
   (appended last so it overrides the conflicting desktop .wt-links rules)
   ============================================================ */
@media (max-width:900px){
  .wt-burger{ display:block; }
  .wt-links{
    position:fixed !important; top:0; left:0; right:0; bottom:0;
    display:flex !important; flex:none !important; flex-direction:column !important;
    align-items:stretch !important; justify-content:flex-start; gap:0;
    margin:0 !important; padding:74px 1.5rem 2rem;
    background:#0a0a0c; border:none;
    transform:translateX(100%); transition:transform .28s ease;
    overflow-y:auto; z-index:59;
  }
  .wt-links.open{ transform:translateX(0) !important; }
  .wt-mid, .wt-actions{ display:contents !important; }
  .wt-links a{
    width:100%; box-sizing:border-box; padding:1rem .1rem; text-align:left;
    border-bottom:1px solid rgba(255,255,255,.08); font-size:1.15rem; letter-spacing:1px;
  }
  .wt-links a.active::after{ display:none; }
  .wt-signin{ margin-top:.3rem; }
  .wt-cta{ margin-top:1.1rem; text-align:center; border-bottom:none !important; }
}

/* Hero on phones: center the content, clear the nav, give the buttons room, no scroll-jitter */
@media (max-width:640px){
  .w-hero{ justify-content:center; min-height:86vh; }
  .w-hero-text{ padding:5rem 1.2rem 2rem; transform:none !important; opacity:1 !important; }
  .w-hero-headline{ margin-bottom:1.1rem; }
  .w-hero-foot{ display:none; }
}

/* fix: backdrop-filter on .wt-nav was creating a containing block for the
   position:fixed mobile menu, clamping its height. Drop it on mobile so the
   slide-in panel sizes to the viewport. */
@media (max-width:900px){
  .wt-nav, .wt-nav.scrolled{
    -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
    background:#0a0a0c !important;
  }
}

/* Coach payouts card */
.pay-card .pay-status{ margin-bottom:.6rem; }
.pay-card .btn{ margin-top:.4rem; }

/* Billing page */
.bill-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:.5rem; }
.bill-plan{ display:flex; flex-direction:column; }
.bill-name{ font-weight:700; font-size:1.05rem; }
.bill-price{ color:var(--accent); font-weight:800; font-size:1.4rem; margin:.2rem 0 .6rem; font-variant-numeric:tabular-nums; }
.bill-list{ list-style:none; padding:0; margin:0 0 1rem; font-size:.85rem; color:var(--muted); flex:1; }
.bill-list li{ padding:.25rem 0 .25rem 1rem; position:relative; }
.bill-list li:before{ content:"·"; position:absolute; left:.1rem; color:var(--accent); }
@media (max-width:780px){ .bill-grid{ grid-template-columns:1fr; } }

/* Dashboard: book-a-session CTA card */
.book-cta-card{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--accent);
  border-radius:12px; padding:1.1rem 1.4rem; margin:1rem 0 1.4rem; text-decoration:none; color:var(--ink);
  transition:transform .15s ease, box-shadow .15s ease; }
.book-cta-card:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.4); text-decoration:none; }
.book-cta-eyebrow{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:700; }
.book-cta-title{ font-weight:700; font-size:1.1rem; margin:.15rem 0; }
.book-cta-sub{ color:var(--muted); font-size:.88rem; }
.book-cta-arrow{ flex:none; color:var(--accent); font-weight:700; white-space:nowrap; }
@media (max-width:560px){ .book-cta-card{ flex-direction:column; align-items:flex-start; } }

/* Coaches page: book-with-coach button */
.person .book-with{ display:inline-block; margin-top:.45rem; background:var(--accent); color:#fff; font-weight:600; }
.person .book-with:hover{ background:#e23b3b; }

/* ===== coach / admin console (dark-theme, added 2026-07-18) ===== */
.con{max-width:1040px;margin:0 auto}
.con h1{margin:0 0 .2rem}
.con .sub{color:var(--muted);margin:.1rem 0 1.2rem}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:.7rem;margin-bottom:1.3rem}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem}
.stat b{display:block;font-size:1.55rem;font-weight:800;color:var(--ink);line-height:1.1}
.stat span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-top:.2rem}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.05rem 1.2rem;margin-bottom:1.2rem}
.panel > h3{margin:0 0 .8rem;font-size:1.05rem}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;padding:.5rem;border-bottom:1px solid var(--line);font-weight:600}
.tbl td{padding:.6rem .5rem;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl .dim{color:var(--muted)}
.tbl .u{font-size:.78rem;color:var(--muted)}
.btnrow{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.ubtn{display:inline-flex;align-items:center;gap:.4rem;border-radius:8px;padding:.5rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none;border:1px solid transparent;line-height:1;white-space:nowrap}
.ubtn:hover{text-decoration:none}
.ubtn.p{background:var(--good);color:#fff}
.ubtn.p:hover{background:#12833c}
.ubtn.s{background:var(--panel2);color:var(--ink);border-color:var(--line)}
.ubtn.s:hover{background:#232d3c}
.ubtn.v{background:#5a3410;color:#ffcf9e;border-color:#8a521c}
.ubtn.v:hover{background:#6d3f14}
.ubtn.d{background:#3a1414;color:#fca5a5;border-color:#7a2020}
.ubtn.d:hover{background:#4a1a1a}
.ubtn.sm{padding:.34rem .6rem;font-size:.78rem}
.ok{color:var(--good);font-weight:700}
.pend{color:var(--warn);font-weight:600}
.icon{display:inline-block;vertical-align:-2px;flex:none}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;align-items:end}
.form-grid label{font-size:.74rem;color:var(--muted);gap:.2rem}
.notice{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:1rem 1.15rem;margin-bottom:1.1rem;display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}
.notice.warn{border-color:#7a5b18;background:#241d10}
.qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.3rem}
.qcard{display:flex;flex-direction:column;gap:.15rem;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:1.1rem;text-decoration:none;color:var(--ink)}
.qcard:hover{border-color:var(--good);background:var(--panel2);text-decoration:none}
.qcard .qt{font-weight:700;margin-top:.5rem}
.qcard .qd{color:var(--muted);font-size:.83rem}
.tag{display:inline-block;font-size:.72rem;font-weight:700;padding:.12rem .5rem;border-radius:999px}
.tag.new{background:#3a1414;color:#fca5a5;border:1px solid #7a2020}
.sesshead{background:var(--panel2);padding:.6rem .9rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;border-bottom:1px solid var(--line)}
.sesswrap{border:1px solid var(--line);border-radius:12px;margin-bottom:.9rem;overflow:hidden;background:var(--panel)}
@media(max-width:780px){.qgrid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}}

/* ============================================================
   MOBILE HARDENING 2026-07-22
   - no double-tap zoom (keeps pinch-zoom for a11y)
   - no sideways scroll / zoom-pan breakage
   - hero fits the phone cleanly
   ============================================================ */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
html,body{ overflow-x:clip; touch-action:manipulation; }
/* belt-and-suspenders: clip the logo marquee even if immersive.css is absent */
.marquee-track{ overflow:hidden; max-width:100%; }

@media (max-width:640px){
  /* hero fills the phone, frames the athlete, no horizontal spill */
  .w-hero{ min-height:100svh; height:100svh; }
  .w-hero-img-wrap{ overflow:hidden; }
  .w-hero-img{ width:100%; height:100%; transform:none !important; animation:none !important;
               object-position:center 42%; }
  .w-hero-text{ padding-bottom:2.6rem; }
  .w-hero-actions{ display:flex; flex-direction:column; gap:.7rem; width:100%; max-width:420px; }
  .w-hero-actions .w-cta{ width:100%; box-sizing:border-box; text-align:center; }
}

/* newsletter popup: stack + no button-text wrap on phones */
.wt-popup-form button{ white-space:nowrap; }
@media (max-width:640px){
  .wt-popup-form{ flex-direction:column; gap:.55rem; }
  .wt-popup-form input, .wt-popup-form button{ width:100%; box-sizing:border-box; }
  .wt-popup-form button{ padding:.95rem 1rem; }
}

/* ============================================================
   CAMP CARDS 2026-07-22 — photo banner + featured badge
   ============================================================ */
.camp-card{ padding:0; overflow:hidden; }
.camp-photo{ position:relative; height:184px; overflow:hidden; background:#0c0c0c; }
.camp-photo img{ width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(10%) contrast(104%) brightness(.94); transition:transform .5s ease; }
.camp-card:hover .camp-photo img{ transform:scale(1.045); }
.camp-body{ padding:32px; display:flex; flex-direction:column; flex:1; }
.camp-badge{ position:absolute; top:12px; left:12px; z-index:2;
  background:var(--io-gold); color:#0a0a0c; font-weight:800; font-size:.66rem;
  letter-spacing:.09em; text-transform:uppercase; padding:.32rem .66rem; border-radius:999px; }
.camp-featured{ border-color:var(--io-gold); box-shadow:0 0 0 1px var(--io-gold) inset; }
@media (max-width:760px){ .camp-photo{ height:170px; } .camp-body{ padding:24px; } }

/* hero headline: force each phrase onto its own line (EVERY DAY always at bottom) */
.w-hero-headline .hl{ display:block; }
