:root{
    --ink:#0A0F1C;
    --ink-2:#111A2E;
    --paper:#FAF7F2;      /* warm cream */
    --paper-2:#F3EEE6;
    --white:#FFFFFF;
    --text:#171A22;
    --muted:#5C6478;
    --line:#EAE6DE;
    --line-cool:#E6E9F0;
    --red:#E0202F;
    --red-dark:#B4111E;
    --blue:#1B4FA0;
    --gold:#E7A83F;
    --ember:#FF7A3D;
    --radius:18px;
    --shadow-sm:0 1px 2px rgba(20,15,10,.05),0 6px 16px rgba(20,15,10,.06);
    --shadow-md:0 16px 38px rgba(20,15,10,.12),0 4px 10px rgba(20,15,10,.06);
    --shadow-lg:0 34px 70px rgba(10,15,28,.28);
    --maxw:1140px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  h1,h2,h3,h4,.display{font-family:"Space Grotesk","Inter",sans-serif;letter-spacing:-.02em;line-height:1.08}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;padding:13px 22px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;position:relative;overflow:hidden}
  .btn:hover{transform:translateY(-2px)}
  .btn-red{background:linear-gradient(135deg,#F0353F,#D1121F);color:#fff;box-shadow:0 10px 24px rgba(224,32,47,.34)}
  .btn-red:hover{box-shadow:0 14px 30px rgba(224,32,47,.42)}
  .btn-ghost{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.24)}
  .btn-ghost:hover{background:rgba(255,255,255,.13)}
  .btn-lg{padding:16px 30px;font-size:16px}
  /* subtle shine sweep on primary buttons */
  .btn-red::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);animation:shine 4.5s ease-in-out infinite}
  @keyframes shine{0%,60%{left:-120%}80%,100%{left:130%}}

  /* reveal on scroll */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

  /* Header */
  header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.8);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:72px}
  .brand{display:flex;align-items:center;gap:12px;font-family:"Space Grotesk";font-weight:700;font-size:17px}
  .brand .mark{width:40px;height:40px;flex:0 0 auto}
  .brand small{display:block;font-family:"Inter";font-weight:500;font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
  .navlinks{display:flex;gap:30px;font-size:14.5px;font-weight:500}
  .navlinks a{color:#3F4658;transition:color .15s;position:relative}
  .navlinks a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--red);transition:width .2s}
  .navlinks a:hover{color:var(--red)}.navlinks a:hover::after{width:100%}
  .nav-cta{display:flex;align-items:center;gap:12px}
  .live{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#1a7f47}
  .live .pd{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.5);animation:pulse 2s infinite}
  @keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
  @media(max-width:900px){.navlinks{display:none}.nav-cta .live{display:none}}

  /* belt stripe divider */
  .belt{height:6px;display:flex}
  .belt i{flex:1}
  .belt .w{background:#F2F2F2}.belt .y{background:#F5C518}.belt .g{background:#2F9E44}.belt .b{background:#1B4FA0}.belt .r{background:#E0202F}.belt .k{background:#14161C}

  /* Hero */
  /* Photo sits at the bottom of the stack under a near-opaque scrim — it reads as
     texture, not subject matter, and keeps contrast for the white hero text. */
  .hero{position:relative;overflow:hidden;color:#fff;
    background:
      radial-gradient(900px 520px at 88% 8%,rgba(255,122,61,.24),transparent 60%),
      radial-gradient(760px 520px at 6% 92%,rgba(27,79,160,.30),transparent 60%),
      radial-gradient(1100px 700px at 78% -12%,rgba(24,39,70,.92) 0,transparent 60%),
      linear-gradient(160deg,rgba(10,15,28,.90) 0%,rgba(14,23,48,.84) 55%,rgba(10,15,28,.93) 100%),
      image-set(url(photos/poomsae-kick-1536.webp) 1x) 30% 30%/cover no-repeat,
      #0A0F1C;}
  @media(max-width:820px){.hero{background-image:
      radial-gradient(900px 520px at 88% 8%,rgba(255,122,61,.24),transparent 60%),
      radial-gradient(760px 520px at 6% 92%,rgba(27,79,160,.30),transparent 60%),
      radial-gradient(1100px 700px at 78% -12%,rgba(24,39,70,.92) 0,transparent 60%),
      linear-gradient(160deg,rgba(10,15,28,.92) 0%,rgba(14,23,48,.88) 55%,rgba(10,15,28,.94) 100%),
      url(photos/poomsae-kick-768.webp)}}
  .hero .wrap{position:relative;padding:76px 24px 84px;display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}
  @media(max-width:920px){.hero .wrap{grid-template-columns:1fr;padding:56px 24px 64px}}
  .eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#F1D9C6;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);padding:7px 15px;border-radius:999px}
  .eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 4px rgba(255,122,61,.25)}
  h1.hero-title{font-size:clamp(40px,5.6vw,68px);font-weight:700;margin:22px 0 0}
  h1.hero-title .accent{background:linear-gradient(92deg,#FFB07A,#FF5A64 55%,#E0202F);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .hero-sub{margin-top:20px;font-size:18px;color:#C4CDE0;max-width:520px}
  .hero-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
  /* countdown */
  .cd{display:flex;gap:10px;margin-top:34px;flex-wrap:wrap;align-items:center}
  .cd .lbl{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:#9FABC6;font-weight:600;width:100%;margin-bottom:2px}
  .cd .box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px 16px;min-width:70px;text-align:center}
  .cd .box b{font-family:"Space Grotesk";font-size:28px;font-weight:700;display:block;line-height:1}
  .cd .box span{font-size:11px;color:#93A0BC;letter-spacing:.06em;text-transform:uppercase}

  /* hero medallion */
  .medallion{position:relative;display:flex;align-items:center;justify-content:center;min-height:360px}
  .medallion .glow{position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,122,61,.22),rgba(27,79,160,.12) 55%,transparent 70%);filter:blur(6px)}
  .ring-rot{position:absolute;width:92%;aspect-ratio:1;animation:spin 26s linear infinite}
  .ring-rot2{position:absolute;width:74%;aspect-ratio:1;animation:spin 40s linear infinite reverse}
  @keyframes spin{to{transform:rotate(360deg)}}
  /* Monochrome seal sits directly on the hero blue — no white puck, and it stays put.
     Only the two dashed rings rotate. */
  .taeg{position:relative;width:48%;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 14px 30px rgba(0,0,0,.45))}
  .orbit{position:absolute;font-family:"Inter";font-weight:600;font-size:12.5px;color:#fff;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(4px);padding:7px 13px;border-radius:999px;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.25)}
  .orbit .d{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:middle}
  .o1{top:5%;left:1%}
  .o2{top:17%;right:-6%}
  .o3{bottom:17%;right:-4%}
  .o4{bottom:4%;left:9%}
  @media(max-width:920px){.medallion{min-height:300px;margin-top:8px}}

  /* marquee */
  .marquee{background:var(--ink-2);color:#fff;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);padding:15px 0;overflow:hidden;white-space:nowrap}
  .marquee .track{display:inline-flex;gap:34px;align-items:center;animation:scrollx 26s linear infinite;font-family:"Space Grotesk";font-weight:600;font-size:15px;letter-spacing:.02em;color:#C9D3EA}
  .marquee .track .s{color:var(--ember);font-size:12px}
  @keyframes scrollx{to{transform:translateX(-50%)}}

  section.block{padding:88px 0}
  .kicker{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
  .h2{font-size:clamp(28px,3.7vw,42px);font-weight:700;margin-top:12px}
  .lead{color:var(--muted);font-size:17.5px;max-width:640px;margin-top:14px}
  .center{text-align:center;margin:0 auto}

  /* welcome band */
  .welcome{background:linear-gradient(180deg,#FFFFFF,var(--paper))}
  .aud{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
  .chip{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-weight:600;font-size:14.5px;box-shadow:var(--shadow-sm)}
  .chip .e{font-size:18px}

  /* divisions */
  .divgroup{margin-top:30px}
  .divgroup h3{font-size:20px;font-weight:600;display:flex;align-items:center;gap:12px;margin-bottom:18px}
  .badge{font-family:"Inter";font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px}
  .badge.spar{background:#FDE7E9;color:var(--red-dark)}
  .badge.poom{background:#E7EEFB;color:var(--blue)}
  .badge.brk{background:#FBEFD6;color:#8A6410}
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:18px}
  .card{position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,border-color .18s;overflow:hidden}
  .card::before{content:"";position:absolute;top:0;left:0;height:4px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}
  .card.blue::before{background:var(--blue)}.card.gold::before{background:var(--gold)}
  .card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:#E0DACF}
  .card:hover::before{transform:scaleX(1)}
  .card .ic{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
  .ic.red{background:#FDE7E9;color:var(--red)}
  .ic.blue{background:#E7EEFB;color:var(--blue)}
  .ic.gold{background:#FBEFD6;color:#B07D12}
  .card h4{font-size:18px;font-weight:600}
  .card p{color:var(--muted);font-size:14.5px;margin-top:8px}

  /* pricing */
  .pricewrap{background:var(--paper);border-radius:26px;padding:46px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;border:1px solid var(--line)}
  @media(max-width:820px){.pricewrap{grid-template-columns:1fr;padding:30px}}
  .pricecard{background:linear-gradient(155deg,#131C30,#0A0F1C);color:#fff;border-radius:22px;padding:36px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
  .pricecard::after{content:"";position:absolute;top:-40%;right:-30%;width:70%;height:120%;background:radial-gradient(circle,rgba(255,122,61,.18),transparent 62%)}
  .pricecard .amt{font-family:"Space Grotesk";font-size:58px;font-weight:700;line-height:1;position:relative}
  .pricecard .amt small{font-size:18px;color:#9FABC6;font-weight:500}
  .pricecard .addon{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);display:flex;align-items:baseline;gap:8px;position:relative}
  .pricecard .addon b{font-family:"Space Grotesk";font-size:24px}
  .pricelist{list-style:none;display:flex;flex-direction:column;gap:13px;margin-top:6px}
  .pricelist li{display:flex;gap:11px;align-items:flex-start;font-size:15.5px}
  .pricelist svg{flex:0 0 auto;margin-top:3px;color:var(--red)}

  /* steps */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:38px;position:relative}
  @media(max-width:820px){.steps{grid-template-columns:1fr 1fr}}
  .step{position:relative}
  .step .n{font-family:"Space Grotesk";font-weight:700;font-size:16px;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#F0353F,#D1121F);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(224,32,47,.3)}
  .step h4{margin-top:16px;font-size:17px;font-weight:600}
  .step p{color:var(--muted);font-size:14.5px;margin-top:6px}

  /* quote */
  .quotesec{position:relative;color:#fff;
    background:
      linear-gradient(160deg,rgba(17,26,46,.86),rgba(10,15,28,.93)),
      url(photos/champion-1536.webp) 50% 26%/cover no-repeat,
      #111A2E;}
  @media(max-width:820px){.quotesec{background-image:
      linear-gradient(160deg,rgba(17,26,46,.90),rgba(10,15,28,.95)),
      url(photos/champion-768.webp)}}
  .quote{max-width:820px;margin:0 auto;text-align:center}
  .quote p{font-family:"Space Grotesk";font-weight:500;font-size:clamp(22px,3vw,30px);line-height:1.35;margin-top:10px}
  .quote .who{margin-top:22px;color:#9FABC6;font-size:15px}
  .quote .who b{color:#fff;font-weight:600}

  /* form */
  .formsec{background:linear-gradient(180deg,#0A0F1C,#0E1526);color:#fff}
  .formgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:start}
  @media(max-width:900px){.formgrid{grid-template-columns:1fr;gap:28px}}
  .formcard{background:#fff;color:var(--text);border-radius:22px;padding:32px;box-shadow:var(--shadow-lg)}
  .field{margin-bottom:16px}
  .field label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:#2A3040}
  .field input,.field select{width:100%;padding:12px 14px;border:1px solid var(--line-cool);border-radius:11px;font-family:inherit;font-size:14.5px;background:#fff;transition:border-color .15s,box-shadow .15s}
  .field input:focus,.field select:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(224,32,47,.13)}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .divpick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
  .opt{display:flex;align-items:center;gap:10px;border:1px solid var(--line-cool);border-radius:11px;padding:11px 13px;cursor:pointer;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,transform .1s}
  .opt:hover{border-color:#C9D0DE;transform:translateY(-1px)}
  .opt input{width:17px;height:17px;accent-color:var(--red)}
  .opt.on{border-color:var(--red);background:#FFF5F5}
  .waiver{display:flex;gap:11px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:13px;font-size:13px;color:#3a4256;margin-top:4px}
  .waiver input{width:18px;height:18px;margin-top:1px;accent-color:var(--red)}
  .total{display:flex;align-items:center;justify-content:space-between;margin:20px 0 16px;padding-top:18px;border-top:1px dashed var(--line-cool)}
  .total .lbl{font-size:14px;color:var(--muted)}
  .total .val{font-family:"Space Grotesk";font-size:36px;font-weight:700;transition:transform .2s}
  .total .val.bump{transform:scale(1.12)}
  .secure{display:flex;align-items:center;gap:8px;justify-content:center;font-size:12.5px;color:var(--muted);margin-top:14px}
  .formside h2{font-size:clamp(26px,3.2vw,36px)}
  .formside .lead{color:#C4CDE0}
  .tick{display:flex;gap:12px;align-items:flex-start;margin-top:18px}
  .tick svg{flex:0 0 auto;margin-top:3px;color:#FF7A3D}
  .tick b{font-weight:600}.tick p{color:#9FABC6;font-size:14px;margin-top:2px}

  /* CTA band */
  .ctaband{background:linear-gradient(135deg,#E0202F,#B4111E);color:#fff;text-align:center}
  .ctaband .wrap{padding:64px 24px}
  .ctaband h2{font-size:clamp(28px,3.6vw,40px)}
  .ctaband p{margin-top:12px;color:#FFE1E3;font-size:17px}
  .ctaband .btn{background:#fff;color:var(--red);margin-top:26px}
  .ctaband .btn::after{display:none}

  /* footer */
  footer{background:var(--ink);color:#B9C3DA;padding:56px 0 34px}
  .foot{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:30px}
  .foot .brand{color:#fff}
  .foot small{color:#8A96B2}
  .foot-links{display:flex;gap:44px;flex-wrap:wrap}
  .foot-links h5{color:#fff;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}
  .foot-links a{display:block;font-size:14px;margin-bottom:8px;color:#9FABC6}
  .foot-links a:hover{color:#fff}
  .copy{margin-top:24px;font-size:13px;color:#7A85A0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

  /* schedule */
  .sched{max-width:760px;margin:36px auto 0}
  .srow{display:grid;grid-template-columns:160px 1fr;gap:18px;padding:16px 0 16px 26px;position:relative;border-bottom:1px solid var(--line);border-left:2px solid var(--line)}
  .srow::before{content:"";position:absolute;left:-7px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
  .stime{font-family:"Space Grotesk";font-weight:600;font-size:14.5px;color:var(--ink)}
  .sdesc{color:var(--text);font-size:15px}
  .sdesc em{color:var(--red);font-style:normal;font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em}
  @media(max-width:620px){.srow{grid-template-columns:1fr;gap:4px}}

  /* info panel */
  .infopanel{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}
  @media(max-width:640px){.infopanel{grid-template-columns:1fr}}
  .ip{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm)}
  .ip h4{font-size:17px;font-weight:600}
  .ip p{color:var(--muted);font-size:14.5px;margin-top:8px}
  .ip b{color:var(--text);font-family:"Space Grotesk"}
  .ipnote{display:inline-block;margin-top:12px;font-size:12px;font-weight:600;color:#8A6410;background:#FBEFD6;padding:3px 11px;border-radius:999px}

  /* cause band */
  .cause{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .cause .wrap{padding:38px 24px;display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}
  .cause img{width:96px;height:96px;flex:0 0 auto;background:#fff;border-radius:16px;padding:8px;box-shadow:0 6px 18px rgba(20,15,10,.08)}
  .cause .ct{max-width:560px}
  .cause .ct b{font-family:"Space Grotesk";font-size:19px;display:block;color:var(--ink)}
  .cause .ct p{color:var(--muted);font-size:15px;margin-top:5px}
  .cause .ct strong{color:var(--text)}

  @media(prefers-reduced-motion:reduce){
    *{animation:none !important}
    .reveal{opacity:1;transform:none}
  }

  /* ---------- Sub-page shell (register / coach / waiver / rules) ---------- */
  .subhero{background:linear-gradient(160deg,#0A0F1C 0%,#0E1730 55%,#0A0F1C 100%);color:#fff;padding:54px 0 58px;position:relative;overflow:hidden}
  .subhero::after{content:"";position:absolute;top:-40%;right:-8%;width:46%;height:180%;background:radial-gradient(circle,rgba(255,122,61,.16),transparent 62%);pointer-events:none}
  .subhero h1{font-size:clamp(30px,4.4vw,48px);font-weight:700;margin-top:14px;position:relative}
  .subhero .lead{color:#C4CDE0;position:relative;margin-top:14px}
  .crumb{font-size:13px;color:#9FABC6;position:relative}
  .crumb a{color:#9FABC6}.crumb a:hover{color:#fff}

  /* notices */
  .notice{border-radius:14px;padding:16px 18px;font-size:14.5px;display:flex;gap:12px;align-items:flex-start;margin:22px 0}
  .notice svg{flex:0 0 auto;margin-top:2px}
  .notice b{display:block;margin-bottom:3px;font-weight:600}
  .notice-warn{background:#FFF8E8;border:1px solid #F0DCA8;color:#6B5312}
  .notice-warn svg{color:#B78514}
  .notice-info{background:#F1F5FD;border:1px solid #D6E0F2;color:#28405F}
  .notice-info svg{color:var(--blue)}
  .notice-draft{background:#FDF2F3;border:1px solid #F3D3D6;color:#7A2B32}
  .notice-draft svg{color:var(--red)}

  /* legal document */
  .doc{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:38px 40px;box-shadow:var(--shadow-sm);max-width:800px;margin:0 auto}
  @media(max-width:640px){.doc{padding:26px 22px}}
  .doc h2{font-size:21px;font-weight:700;margin-bottom:6px}
  .doc .docsub{font-size:13px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-weight:600;margin-bottom:22px}
  .doc ul{margin:0 0 18px 20px;display:flex;flex-direction:column;gap:15px}
  .doc li{font-size:15px;line-height:1.72;color:#2B313F}
  .doc hr{border:none;border-top:1px solid var(--line);margin:30px 0}
  .sigrow{display:grid;grid-template-columns:1.4fr 1.4fr .8fr;gap:16px;margin-top:16px}
  @media(max-width:640px){.sigrow{grid-template-columns:1fr}}
  .sigbox{border-bottom:1.5px solid #C9CFDC;padding-bottom:5px;min-height:40px;display:flex;align-items:flex-end}
  .siglbl{font-size:11.5px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-weight:600;margin-top:6px}

  /* scroll-to-accept waiver box */
  .waiverbox{border:1px solid var(--line-cool);border-radius:13px;background:#FCFCFD;padding:18px 20px;max-height:250px;overflow-y:auto;font-size:13.5px;line-height:1.68;color:#3A4152}
  .waiverbox p{margin-bottom:13px}
  .waiverbox strong{color:var(--text)}
  .waiverbox::-webkit-scrollbar{width:9px}
  .waiverbox::-webkit-scrollbar-thumb{background:#D3D8E4;border-radius:9px}
  .scrollnote{font-size:12.5px;color:var(--muted);margin-top:9px;display:flex;align-items:center;gap:7px}
  .scrollnote.done{color:#1a7f47;font-weight:600}

  /* data tables (divisions / weights) */
  .tbl{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:8px}
  .tbl th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:11px 14px;border-bottom:1.5px solid var(--line)}
  .tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
  .tbl tr:last-child td{border-bottom:none}
  .tbl tbody tr:hover{background:var(--paper)}
  .tblwrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm)}

  /* misc */
  .pill{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:#FFF0E6;color:#B4460C;border:1px solid #F6D6BE}
  .pill.grey{background:var(--paper-2);color:var(--muted);border-color:var(--line)}
  .backlink{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--red);margin-top:30px}
  .fieldnote{font-size:12.5px;color:var(--muted);margin-top:6px}
  .req{color:var(--red)}
  .subnav{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px;position:relative}
  .subnav a{font-size:14px;font-weight:600;padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;transition:background .15s}
  .subnav a:hover{background:rgba(255,255,255,.16)}
  .subnav a.on{background:#fff;color:var(--ink);border-color:#fff}

  @media print{
    header,footer,.subhero,.backlink,.noprint{display:none!important}
    .doc{border:none;box-shadow:none;padding:0;max-width:100%}
    body{background:#fff}
    section.block{padding:0}
  }

  /* directions link on the venue card */
  .maplink{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:14px;font-weight:600;color:var(--red);transition:gap .15s ease}
  .maplink:hover{gap:11px}
  .maplink svg:first-child{flex:0 0 auto}

  /* ---------- Mobile navigation (built by assets/nav.js) ---------- */
  .burger{display:none;background:none;border:1px solid var(--line);border-radius:10px;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;color:var(--text);padding:0;flex:0 0 auto}
  .burger svg{width:22px;height:22px}
  .burger svg path{transition:transform .22s ease,opacity .16s ease;transform-origin:center}
  .burger.open .l1{transform:translateY(6px) rotate(45deg)}
  .burger.open .l2{opacity:0}
  .burger.open .l3{transform:translateY(-6px) rotate(-45deg)}
  .mobilenav{display:none}
  @media(max-width:900px){
    .burger{display:inline-flex}
    .nav-cta .btn{display:none}          /* the CTA moves into the panel */
    .mobilenav{display:block;position:fixed;top:72px;left:0;right:0;bottom:0;z-index:59;
      background:rgba(255,255,255,.97);backdrop-filter:blur(16px);
      padding:22px 24px calc(22px + env(safe-area-inset-bottom));overflow-y:auto;
      animation:navin .18s ease}
    .mobilenav[hidden]{display:none}
    .mobilenav a{display:flex;align-items:center;min-height:56px;font-size:18px;font-weight:600;
      color:var(--text);border-bottom:1px solid var(--line)}
    .mobilenav a:last-child{border-bottom:none}
    .mobilenav a.mobilecta{justify-content:center;margin-top:20px;min-height:54px;border-radius:12px;
      background:linear-gradient(135deg,#F0353F,#D1121F);color:#fff;box-shadow:0 10px 24px rgba(224,32,47,.34)}
    .mobilenav a.mobilecta::after{display:none}
  }
  @keyframes navin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

  /* ---------- Rules dropdown (desktop only; nav.js flattens it for mobile) ---------- */
  .navdrop{position:relative}
  .navdrop-btn{background:none;border:none;font-family:inherit;font-size:14.5px;font-weight:500;color:#3F4658;
    cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:5px;transition:color .15s}
  .navdrop-btn svg{transition:transform .18s}
  .navdrop:hover .navdrop-btn,.navdrop:focus-within .navdrop-btn{color:var(--red)}
  .navdrop:hover .navdrop-btn svg,.navdrop:focus-within .navdrop-btn svg{transform:rotate(180deg)}
  .dropmenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(4px);
    background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md);
    padding:7px;min-width:158px;opacity:0;visibility:hidden;transition:opacity .15s,transform .15s;z-index:70}
  /* bridge the gap so the menu survives the cursor crossing into it */
  .navdrop::after{content:"";position:absolute;top:100%;left:0;right:0;height:14px}
  .navdrop:hover .dropmenu,.navdrop:focus-within .dropmenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(10px)}
  .dropmenu a{display:block;padding:9px 13px;border-radius:8px;font-size:14.5px;font-weight:500;color:#3F4658;transition:background .12s,color .12s}
  .dropmenu a::after{display:none}
  .dropmenu a:hover{background:var(--paper);color:var(--red)}
  @media(max-width:900px){.navdrop{display:none}}

  /* orbit pills are links now — give them a real tap target and hover feedback */
  a.orbit{transition:background .15s,transform .15s,border-color .15s}
  a.orbit:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4);transform:translateY(-2px)}
  @media(max-width:900px){.orbit{min-height:44px;padding:11px 15px;font-size:13px}}

  /* ---------- Awards podium ---------- */
  .podium{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:38px;max-width:680px;margin-left:auto;margin-right:auto}
  @media(max-width:640px){.podium{grid-template-columns:1fr 1fr;gap:12px}}
  .medal{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 14px;text-align:center;box-shadow:var(--shadow-sm)}
  .medal .disc{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    margin:0 auto 12px;font-family:"Space Grotesk";font-weight:700;font-size:19px;color:#fff}
  .medal .disc.gold{background:linear-gradient(150deg,#F2C55C,#C98A21);box-shadow:0 6px 16px rgba(201,138,33,.35)}
  .medal .disc.silver{background:linear-gradient(150deg,#D2D7E0,#9AA2B1);box-shadow:0 6px 16px rgba(154,162,177,.35)}
  .medal .disc.bronze{background:linear-gradient(150deg,#DFA277,#B06B3C);box-shadow:0 6px 16px rgba(176,107,60,.35)}
  .medal b{font-family:"Space Grotesk";font-size:16px;display:block}
  .medal small{color:var(--muted);font-size:12.5px;display:block;margin-top:3px;line-height:1.4}
