/* Identity layer (Nov 2026): keeps the bright look but moves the site away from the Gutsy styling.
   Wide rounded display type, flag-stripe labels, race-bib stats, straight flag ticker, angled section edges, ticket mockup. */
:root{--disp:"Unbounded","Plus Jakarta Sans",sans-serif;--body:"DM Sans",system-ui,sans-serif;--flag:linear-gradient(90deg,#111 0 33.3%,#FFD21F 33.3% 66.6%,#E8202A 66.6%)}
body{font-family:var(--body)}
h1,h2,h3{font-weight:800;letter-spacing:-.02em;line-height:1.02}
h2{font-size:clamp(1.9rem,4.4vw,3.4rem)}
h3{font-size:1.25rem}
.brand span{font-size:.92rem;letter-spacing:0;line-height:1.05}

/* hero headline: wide, mixed case, less shouty */
.hero h1{font-size:clamp(2.6rem,8.2vw,6.8rem);line-height:.98;text-transform:none;letter-spacing:-.035em}
.hero h1 .l3{margin-top:.04em}
.count b{font-weight:700;font-size:clamp(1.6rem,3.6vw,2.3rem)}
.dists b{font-size:1.15rem}

/* section labels: flag dash instead of pills */
.kicker,.clubs .kicker,.promo .kicker,.contact .kicker,.kicker-pink{background:none!important;border:0!important;padding:0;border-radius:0;display:inline-flex;align-items:center;gap:10px;font:700 .78rem var(--body);letter-spacing:.2em}
.kicker::before{content:"";width:34px;height:6px;border-radius:2px;background:var(--flag);flex:none}
.kicker{color:#7B3BFF}
.cause .kicker,.clubs .kicker,.promo .kicker{color:#fff}
.contact .kicker{color:var(--ink)}

/* buttons: squarer, with an arrow nudge */
.btn{border-radius:12px;letter-spacing:.01em}
.btn:hover{transform:translateY(-2px)}
.btn-yel,.btn-pink,.btn-teal{position:relative;overflow:hidden}
.btn-yel::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--flag);opacity:.9}

/* ticker: straight black band with flag edges */
.ticker{transform:none;margin:0;background:#111;color:#fff;border-top:5px solid var(--yel);border-bottom:5px solid var(--red);padding:14px 0;box-shadow:none}
.ticker span{font:700 1.05rem var(--disp);letter-spacing:.02em}
.ticker span i{color:var(--yel)}
.ticker .track{animation-duration:48s}

/* stats as race bibs */
.stats{gap:18px}
.stat,.stat:nth-child(n){background:#fff;color:var(--ink);border-radius:14px;padding:46px 20px 20px;box-shadow:0 18px 36px -20px rgba(43,17,80,.45);border:1px solid rgba(43,17,80,.08)}
.stat:hover{transform:translateY(-6px) rotate(1.2deg)}
.stat::after{content:attr(data-tag);position:absolute;top:0;left:0;right:0;height:30px;display:flex;align-items:center;justify-content:center;font:700 .66rem var(--body);letter-spacing:.24em;text-transform:uppercase;color:#fff;background:var(--c,#2F6BFF)}
.stat .pins{position:absolute;inset:38px 10px 10px;pointer-events:none}
.stat .pins i{position:absolute;width:7px;height:7px;border-radius:50%;background:#E4DDEF;box-shadow:inset 0 1px 1px rgba(0,0,0,.25)}
.stat .pins i:nth-child(1){top:0;left:0}.stat .pins i:nth-child(2){top:0;right:0}.stat .pins i:nth-child(3){bottom:0;left:0}.stat .pins i:nth-child(4){bottom:0;right:0}
.stat::before{display:none}
.stat b{font:800 clamp(2.4rem,4.6vw,3.6rem)/1 var(--disp);color:var(--c,#2F6BFF);letter-spacing:-.04em}
.stat span{font-weight:600;color:var(--mute);opacity:1}
.stat:nth-child(1){--c:#E0A800}.stat:nth-child(2){--c:#2F6BFF}.stat:nth-child(3){--c:#FF3D7F}.stat:nth-child(4){--c:#0FA67F}

/* angled section edges */
.cause{clip-path:polygon(0 4vw,100% 0,100% calc(100% - 4vw),0 100%);padding-top:calc(clamp(70px,10vw,120px) + 3vw);padding-bottom:calc(clamp(70px,10vw,120px) + 3vw);margin:-2vw 0}
.clubs{clip-path:polygon(0 0,100% 4vw,100% 100%,0 calc(100% - 4vw));padding-top:calc(clamp(70px,10vw,120px) + 3vw);padding-bottom:calc(clamp(70px,10vw,120px) + 3vw)}
.promo{clip-path:polygon(0 4vw,100% 0,100% 100%,0 100%);padding-top:calc(clamp(70px,10vw,120px) + 3vw);margin-top:-4vw}

/* other small shifts */
.dist-tabs button{font:800 1.3rem var(--disp);border-radius:12px}
.dist-info .big{font:800 4rem/1 var(--disp);letter-spacing:-.04em}
.timeline time{font:700 1.05rem var(--disp)}
.cause h2{font-size:clamp(2.4rem,6vw,4.6rem)}
.pillar h3{font-size:1.9rem}
.pillar .n{font:700 .8rem var(--disp);border-radius:6px}
.reels-head h3{font-size:1.6rem}
.tier .p{font:800 1.5rem var(--disp)}
.tier h3{font-size:1.15rem}
.partner-strip span{font:700 1.2rem var(--disp);text-transform:none}
.club{border-radius:10px}
.acc summary::after{font:700 1.5rem var(--disp)}
.beat b{font:800 1.6rem var(--disp)}
.fb b{font:800 1.1rem var(--disp)}
.masonry figure{border-radius:6px}
.masonry figure:nth-child(3n+1){border-radius:6px 28px 6px 6px}
.reel{border-radius:10px}

/* race-pass ticket (replaces the phone mockup) */
.ticket-wrap{position:relative;display:flex;justify-content:center;padding:20px 0}
.ticket{width:min(360px,100%);background:#fff;color:var(--ink);border-radius:18px;display:flex;flex-direction:column;box-shadow:0 40px 80px -30px rgba(20,8,60,.6);transform:rotate(-3deg);animation:sway 7s ease-in-out infinite;position:relative}
@keyframes sway{50%{transform:rotate(-1deg) translateY(-10px)}}
.ticket .tk-top{background:#111;color:#fff;border-radius:18px 18px 0 0;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:6px solid transparent;border-image:var(--flag) 1}
.ticket .tk-top img{width:40px;height:40px;object-fit:contain}
.ticket .tk-top small{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;opacity:.8;display:block}
.ticket .tk-top b{font:800 .95rem var(--disp)}
.ticket .tk-mid{padding:18px 20px 22px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.ticket .tk-bib{font:800 4.2rem/0.9 var(--disp);letter-spacing:-.05em;color:#7B3BFF}
.ticket .tk-dist{display:inline-block;background:var(--yel);font:800 .9rem var(--disp);padding:4px 10px;border-radius:6px;margin-top:8px}
.ticket .tk-qr{width:84px;height:84px;background:conic-gradient(#111 25%,#fff 0 50%,#111 0 75%,#fff 0) 0 0/14px 14px;border:6px solid #fff;outline:2px solid #111;border-radius:6px}
.ticket .tk-cut{height:0;border-top:2px dashed #D9D2E6;margin:0 18px;position:relative}
.ticket .tk-cut::before,.ticket .tk-cut::after{content:"";position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:#7a43f0}
.ticket .tk-cut::before{left:-31px}.ticket .tk-cut::after{right:-31px}
.ticket .tk-bot{padding:16px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;font-size:.74rem;color:var(--mute)}
.ticket .tk-bot b{display:block;color:var(--ink);font-size:.92rem}
.chip{position:absolute;background:#fff;color:var(--ink);border-radius:14px;padding:10px 14px;display:flex;gap:10px;align-items:center;box-shadow:0 18px 40px -16px rgba(0,0,0,.45);font-size:.8rem;z-index:2;animation:bob 5s ease-in-out infinite}
.chip i{font-style:normal;font-size:1.3rem}
.chip b{display:block;font-size:.88rem}
.chip.c1{left:-6px;top:-34px}
.ticket-wrap{margin-top:34px}
.chip.c2{right:-6px;bottom:0;animation-delay:-2.5s}
@keyframes bob{50%{transform:translateY(-8px)}}

@media (max-width:600px){
  .hero h1{font-size:clamp(2.3rem,11vw,3.4rem)}
  .stats{grid-template-columns:1fr 1fr}
  .chip.c1{left:0;top:-10px}.chip.c2{right:0;bottom:-14px}
  .ticket .tk-bib{font-size:3.4rem}
}
@media (prefers-reduced-motion:reduce){.ticket,.chip{animation:none}}

/* live course map */
.map-card:has(.live-map){padding:0;overflow:hidden}
.live-map{height:min(560px,72vh);min-height:420px;border-radius:26px}
.map-card .map-open{z-index:600;bottom:14px;right:14px;top:auto}
.map-card .lm-note{bottom:auto;top:auto;right:auto;left:auto;display:none}
@media (max-width:700px){.live-map{height:520px;border-radius:26px 26px 0 0}.map-card .map-open{position:static;display:block;margin:10px auto 12px;font-size:.8rem}}
