

/* ==========================================================================
   GSWC 2029 — DESIGN SYSTEM
   Identity translated from the 2029 sponsorship deck:
   deep forest green · championship gold · cream · charcoal · slate
   Signature: diagonal "shear-cut" section edges + offset gold keyline frames
   ========================================================================== */

:root{
  /* Palette — matched to the 2029 sponsorship deck */
  --green-950:#16241C;   /* deck: forest-deep */
  --green-900:#1D2E24;
  --green-800:#24372B;   /* deck: forest — primary */
  --green-700:#2E4A3A;   /* deck: forest-soft */
  --gold-deep:#9A7733;   /* deck: gold-deep — LARGE display text only (3.6:1) */
  --gold-600:#7E6318;    /* small text on light grounds — WCAG AA 4.97:1 */
  --gold-500:#C2974A;    /* deck: gold — championship gold */
  --gold-400:#D8B463;    /* deck: gold-bright */
  --cream:#F4EFE3;       /* deck: ivory */
  --paper:#FBF8F1;       /* deck: ivory-2 */
  --ink:#1C1A15;         /* deck: ink */
  --ink-soft:#565146;    /* deck: ink-soft — body copy */
  --slate:#26394A;       /* restrained supporting neutral */
  --line:rgba(28,26,21,.14);
  --line-gold:rgba(194,151,74,.55);

  /* Type — as per the sponsorship deck */
  --display:"Oswald","Arial Narrow",sans-serif;          /* headings, numbers, nav */
  --body:"Inter","Helvetica Neue",Arial,sans-serif;      /* body & UI */
  --serif:"Cormorant Garamond",Georgia,serif;            /* quotes */
  --lockup:"Sora","Helvetica Neue",Arial,sans-serif;     /* hero/cover lockup lines */

  /* Rhythm */
  --max:1180px;
  --pad:clamp(1.1rem,4vw,2.5rem);
  --cut:0rem;                       /* dividers are straight; kept for compat */
  --sec-pad:clamp(4.6rem,10vh,8rem);   /* deck: .sec padding */
  --radius:2px;                        /* deck: near-square corners */
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--body);font-optical-sizing:auto;color:var(--ink);background:var(--paper);line-height:1.6;font-size:1.02rem;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--gold-500);outline-offset:2px;border-radius:2px}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--gold-500);color:var(--green-950);padding:.7rem 1.2rem;font-weight:700;z-index:200}
.skip-link:focus{left:1rem;top:1rem}

/* ---------- Type scale ---------- */
h1,h2,h3,.display{font-family:var(--display);text-transform:uppercase;line-height:1.04;letter-spacing:.015em;font-weight:600}
h1{font-size:clamp(2.5rem,7.5vw,5.2rem)}
h2{font-size:clamp(1.9rem,4.4vw,3.1rem);margin-bottom:.35em}
h3{font-size:clamp(1.2rem,2.4vw,1.55rem);letter-spacing:.04em}
.accent{color:var(--gold-600)}
.hero .accent,.on-dark .accent,.on-deep .accent,.on-slate .accent,footer.site .accent{color:var(--gold-500)}
.eyebrow{font-family:var(--body);font-weight:600;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-600);display:flex;align-items:center;gap:.7rem;margin-bottom:0}
.eyebrow::before{content:"";width:2.6rem;height:1px;background:var(--gold-500);flex:none}
.on-dark .eyebrow,.on-deep .eyebrow,.on-slate .eyebrow{color:var(--gold-400)}
.lede{font-size:1.02rem;max-width:none;color:rgba(28,26,21,.82)}
.on-dark .lede,.on-deep .lede,.on-slate .lede{color:rgba(244,239,227,.85)}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,2.6vw,1.7rem);line-height:1.45;font-weight:400}

/* ---------- Layout ---------- */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
section{padding-block:var(--sec-pad)}
/* Sections get equal, generous breathing space above and below.
   (Full-viewport min-height was trialled and removed — it forced awkward gaps
   around short sections.) */
main>section:not(.hero)>.wrap{width:100%}
.grid{display:grid;gap:clamp(1.2rem,3vw,2.2rem)}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}

/* Signature: shear-cut diagonal section edge */
/* Section dividers are straight horizontal edges (angled "shear cut" removed).
   Classes retained so markup and the CMS need no change. */
.cut-b,.cut-t,.on-cream.cut-t{clip-path:none;margin-top:0}
.on-dark{background:var(--green-800);color:var(--cream)}
.on-deep{background:var(--green-950);color:var(--cream)}
.on-cream{background:var(--cream)}
.on-slate{background:radial-gradient(110% 80% at 82% 6%,rgba(216,180,99,.10),transparent 55%),linear-gradient(160deg,#2C4155 0%,var(--slate) 48%,#1E2D3B 100%);color:var(--cream)}

/* Gold gradient rule (deck motif) */
.gold-rule{height:5px;background:linear-gradient(90deg,var(--gold-500),var(--green-800));border:0;width:min(220px,40%)}
.on-dark .gold-rule{background:linear-gradient(90deg,var(--gold-400),transparent)}

/* Offset gold keyline frame (deck motif) */
.frame{position:relative}
/* replaced by the deck's inset keyline — see .img-frame::before below */

/* ---------- Media placeholders (replace with real photography) ---------- */
.ph{position:relative;overflow:hidden;background:
  radial-gradient(120% 90% at 18% 12%,rgba(216,180,99,.28),transparent 55%),
  linear-gradient(155deg,var(--green-700),var(--green-950));
  min-height:260px;display:flex;align-items:flex-end}
.ph .ph-label{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:rgba(244,239,227,.72);padding:.8rem 1rem;border-top:1px solid rgba(216,180,99,.35);width:100%}
.ph.tall{min-height:420px}
.ph.wide{min-height:320px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:.92rem;font-weight:600;text-decoration:none;padding:.95rem 1.7rem;border:1px solid transparent;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold-500);color:var(--green-950)}
.btn-gold:hover{background:var(--gold-400)}
.btn-ghost{border-color:var(--gold-500);color:inherit;background:transparent}
.btn-ghost:hover{background:rgba(194,151,74,.12)}
@media(prefers-reduced-motion:reduce){.btn:hover{transform:none}}

/* ---------- Announcement bar ---------- */
.announce{background:var(--gold-500);color:var(--green-950);font-size:.9rem;padding:.5rem var(--pad);text-align:center}
.announce a{font-weight:700;text-underline-offset:3px}
.announce[hidden]{display:none}

/* ---------- Header / nav ---------- */
header.site{position:sticky;top:0;z-index:100;background:var(--green-950);color:var(--cream);border-bottom:1px solid rgba(216,180,99,.28)}
.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem var(--pad);max-width:1620px;margin-inline:auto}
.brand{font-family:var(--display);text-transform:uppercase;text-decoration:none;line-height:1.05;letter-spacing:.05em;white-space:nowrap}
.brand b{display:block;font-size:.98rem;font-weight:600}
.brand span{display:block;font-size:.66rem;letter-spacing:.3em;color:var(--gold-400)}
nav.primary{min-width:0}
nav.primary ul{list-style:none;display:flex;gap:.2rem;align-items:center;overflow-x:auto;scrollbar-width:none;padding-right:4px}
nav.primary ul::-webkit-scrollbar{display:none}
nav.primary a{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;text-decoration:none;padding:.7rem .42rem;border-bottom:2px solid transparent;white-space:nowrap}
nav.primary a:hover,nav.primary a[aria-current="page"]{border-bottom-color:var(--gold-500);color:var(--gold-400)}
nav.primary a.is-soon{opacity:.7}
nav.primary a.is-soon::after{content:"soon";font-size:.55rem;letter-spacing:.08em;vertical-align:super;margin-left:.3rem;color:var(--gold-400)}
.nav-ctas{display:flex;gap:.5rem}
.nav-ctas .btn{padding:.55rem .7rem;font-size:.7rem;letter-spacing:.08em;white-space:nowrap}
.menu-toggle{display:none;background:none;border:1px solid var(--gold-500);color:var(--cream);font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;padding:.55rem .9rem;cursor:pointer}
@media(max-width:1560px){
  .menu-toggle{display:block}
  nav.primary{position:absolute;left:0;right:0;top:100%;background:var(--green-950);border-bottom:1px solid rgba(216,180,99,.3);display:none;max-height:calc(100vh - 70px);overflow:auto}
  nav.primary.open{display:block}
  nav.primary ul{flex-direction:column;align-items:stretch;padding:.6rem var(--pad) 1.2rem}
  nav.primary a{display:block;padding:.85rem .3rem;border-bottom:1px solid rgba(244,239,227,.08)}
  .nav-ctas{display:none}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:var(--cream);background:
  linear-gradient(15deg,rgba(22,36,28,.95) 26%,rgba(22,36,28,.42) 72%),
  radial-gradient(110% 80% at 80% 20%,rgba(216,180,99,.22),transparent 60%),
  url("/assets/img/bg-01.jpg") center 32%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-home{--hero-img:url("/assets/img/bg-02.jpg");background-color:#28372C;background-image:var(--hero-img);background-repeat:no-repeat;background-position:35% top;background-size:cover}
.hero-home>.wrap{margin-left:min(4.5vw,6.5rem)}
.hero-home{overflow:hidden}
.hero-home>.wrap{position:relative;z-index:1}
.hero.hero-home{align-items:flex-start}
.hero-home .hero-tag{font-size:clamp(1.5rem,3vw,2rem)}
.hero-home .hero-ctas .btn{font-size:.9rem}
.hero-home .countdown .num{font-size:clamp(2.3rem,4.1vw,3.55rem)}
.hero-home .countdown .lbl{font-size:.75rem}
@media(min-width:761px){.hero.hero-home{padding-top:190px}}
.hero-home h1{font-size:clamp(2.7rem,8.1vw,5.6rem)}
.hero-home h1 .line-brand{display:block;color:#5A392C;font-size:1.12em;line-height:1.02}
.hero-home .hero-kicker{color:#5A392C;font-size:1.12rem}
.hero-home .countdown .unit{background:none;border:0;border-right:1px solid rgba(216,180,99,.35);min-width:0;padding:.2rem clamp(.9rem,2.4vw,2rem) .2rem 0;margin-right:clamp(.9rem,2.4vw,2rem);text-align:left}
.hero-home .countdown .unit:last-child{border-right:0;margin-right:0}
.hero-home .countdown{gap:0}
.hero-home .countdown .num{font-size:clamp(2rem,3.6vw,3.1rem);color:var(--gold-500)}
.hero-home .countdown .lbl{margin-top:.3rem}
@media(max-width:480px){.hero-home .countdown .unit{padding-right:.7rem;margin-right:.7rem}}
.hero-champ{background:
  url("/assets/img/bg-03.jpg") center 10%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-visit{background:
  url("/assets/img/bg-04.jpg") center 50%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-news{background:
  url("/assets/img/bg-05.jpg") center 82%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-partners{background:
  url("/assets/img/bg-06.jpg") center 35%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-gi{background:
  url("/assets/img/bg-07.jpg") center 38%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-live{background:
  url("/assets/img/bg-08.jpg") center 65%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-tickets{background:
  url("/assets/img/bg-09.jpg") center 45%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
#what-is-shearing .grid.g2>div>:first-child{margin-top:0}
/* Hero legibility insurance: soft type seat + mobile scrim */
/* Brighter, bolder hero type */

.hero-art-event{background:
  url("/assets/img/bg-10.jpg") center 30%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-art-shear{background:
  url("/assets/img/bg-11.jpg") center 68%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero-art-geel{background:
  url("/assets/img/bg-12.jpg") center 55%/cover no-repeat,
  linear-gradient(160deg,#2E4A3A,#16241C)}
.hero.hero-art-event h1,.hero.hero-art-shear h1,.hero.hero-art-geel h1{color:#FFFFFF;font-weight:700;text-shadow:0 2px 30px rgba(22,36,28,.6),0 1px 3px rgba(22,36,28,.55)}
.hero-art-event>.wrap,.hero-art-shear>.wrap,.hero-art-geel>.wrap{position:relative;z-index:1}
@media(max-width:760px){.hero-art-event::before,.hero-art-shear::before,.hero-art-geel::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(22,36,28,.20),rgba(22,36,28,.44));pointer-events:none}}
.hero-live .hero-ctas,.hero-partners .hero-ctas,.hero-tickets .hero-ctas{margin-top:1.4rem}
@media(max-width:760px){.hero-home .hero-kicker{font-size:.85rem}}
@media(max-width:759px){.hero-home h1 .line-brand,.hero-home .hero-kicker{color:var(--cream)}}
@media(max-width:760px){.hero-champ::before,.hero-visit::before,.hero-news::before,.hero-partners::before,.hero-gi::before,.hero-live::before,.hero-tickets::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(22,36,28,.20),rgba(22,36,28,.44));pointer-events:none}}
.hero.hero-champ h1,.hero.hero-visit h1,.hero.hero-news h1,.hero.hero-partners h1,.hero.hero-gi h1,.hero.hero-live h1,.hero.hero-tickets h1{font-size:clamp(2.9rem,8.6vw,6.1rem)}
.hero.hero-champ h1,.hero.hero-visit h1,.hero.hero-news h1,.hero.hero-partners h1,.hero.hero-gi h1,.hero.hero-live h1,.hero.hero-tickets h1{color:#FFFFFF;font-weight:700;text-shadow:0 2px 30px rgba(22,36,28,.6),0 1px 3px rgba(22,36,28,.55)}
.hero.hero-champ h1 .accent,.hero.hero-visit h1 .accent,.hero.hero-news h1 .accent,.hero.hero-partners h1 .accent,.hero.hero-gi h1 .accent,.hero.hero-live h1 .accent,.hero.hero-tickets h1 .accent{color:#E9CB82}
.hero.hero-champ .hero-tag,.hero.hero-visit .hero-tag,.hero.hero-news .hero-tag,.hero.hero-partners .hero-tag,.hero.hero-gi .hero-tag,.hero.hero-live .hero-tag,.hero.hero-tickets .hero-tag{color:#FFFFFF;font-weight:600;text-shadow:0 1px 18px rgba(22,36,28,.6),0 1px 2px rgba(22,36,28,.5)}

.hero-champ .eyebrow{color:var(--gold-400)}


.hero-champ h1,.hero-visit h1,.hero-news h1,.hero-partners h1,.hero-gi h1,.hero-live h1,.hero-tickets h1{text-shadow:0 2px 26px rgba(22,36,28,.5),0 1px 2px rgba(22,36,28,.4)}
.hero-champ .hero-tag,.hero-champ .hero-kicker,.hero-visit .hero-tag,.hero-visit .hero-kicker,.hero-news .hero-tag,.hero-news .hero-kicker,.hero-partners .hero-tag,.hero-partners .hero-kicker,.hero-gi .hero-tag,.hero-gi .hero-kicker,.hero-live .hero-tag,.hero-live .hero-kicker,.hero-tickets .hero-tag,.hero-tickets .hero-kicker{text-shadow:0 1px 14px rgba(22,36,28,.5)}
.hero-champ>.wrap,.hero-visit>.wrap,.hero-news>.wrap,.hero-partners>.wrap,.hero-gi>.wrap,.hero-live>.wrap,.hero-tickets>.wrap{position:relative;z-index:1}

@media(max-width:759px){.hero-home{background-image:var(--hero-img);background-position:right top;background-size:cover}}
.hero.sub{min-height:min(58vh,520px)}
.hero .wrap{padding-block:clamp(3rem,8vw,5.5rem) calc(clamp(3rem,8vw,5.5rem) + 2.4rem);width:100%}
.hero-kicker{display:flex;flex-wrap:wrap;gap:1.4rem;font-family:var(--display);text-transform:uppercase;letter-spacing:.18em;font-size:1rem;color:var(--gold-400);margin-bottom:1.2rem}
.hero h1 .accent{display:block}
.hero-tag{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,2.2vw,1.45rem);color:rgba(244,239,227,.9);margin:1.1rem 0 1.8rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:2.2rem}
.hero-media-note{position:absolute;top:1rem;right:1rem;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(244,239,227,.6)}

/* Countdown */
.countdown{display:flex;gap:clamp(.7rem,2.5vw,1.6rem);flex-wrap:wrap}
.countdown .unit{min-width:78px;border:1px solid rgba(216,180,99,.4);border-top:3px solid var(--gold-500);padding:.7rem .9rem;text-align:center;background:rgba(22,36,28,.55)}
.countdown .num{font-family:var(--display);font-size:clamp(1.7rem,4vw,2.6rem);font-weight:600;color:var(--gold-400);font-variant-numeric:tabular-nums}
.countdown .lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.22em;color:rgba(244,239,227,.7)}

/* ---------- Stats ---------- */
.stats{counter-reset:none}
.stat{border-top:3px solid var(--gold-500);padding-top:1rem}
.stat .num{font-family:var(--display);font-size:clamp(2.4rem,6vw,3.8rem);font-weight:600;color:var(--gold-500);line-height:1}
.on-dark .stat .num{color:var(--gold-400)}
.stat .lbl{font-weight:700;margin-top:.35rem}
.stat .sub{font-size:.9rem;opacity:.75}
.projection-note{font-size:.82rem;font-style:italic;opacity:.75;margin-top:1.6rem;max-width:none}

/* ---------- Status chips ---------- */
.chip{display:inline-block;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;padding:.28em .8em;border:1px solid currentColor;border-radius:2em}
.chip.confirmed{color:#2F6B45}
.on-dark .chip.confirmed,.on-deep .chip.confirmed{color:#8FCBA4}
.chip.proposed{color:var(--gold-600)}
.on-dark .chip.proposed,.on-deep .chip.proposed{color:var(--gold-400)}
.chip.tba,.chip.draft{color:#6B6B63}
.on-dark .chip.tba,.on-deep .chip.tba,.on-dark .chip.draft{color:rgba(244,239,227,.6)}

/* ---------- Cards ---------- */
/* .card has a light background even inside dark sections — text must stay dark */
.card,.card p,.card li,.card dd,.card h3,.card h4{color:var(--ink)}
.card p,.card li,.card dd{color:var(--ink-soft)}
.card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--gold-500);padding:1.5rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;color:var(--ink);box-shadow:0 12px 28px -20px rgba(22,36,28,.4)}

.card h3{font-size:1.05rem;line-height:1.35}
.card .card-k{font-family:var(--display);color:var(--gold-600);letter-spacing:.1em;font-size:.75rem}
.on-dark .card .card-k,.on-deep .card .card-k{color:var(--gold-400)}
.card p{font-size:.94rem;opacity:.88}

/* ---------- Timeline ---------- */
.timeline{list-style:none;position:relative;margin-top:2rem;display:grid;gap:1.1rem}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--gold-500),rgba(194,151,74,.15))}
.timeline li{position:relative;padding-left:2.4rem}
.timeline li::before{content:"";position:absolute;left:2px;top:.45rem;width:16px;height:16px;border-radius:50%;border:2px solid var(--gold-500);background:var(--paper)}
.on-dark .timeline li::before,.on-deep .timeline li::before{background:var(--green-950)}
.timeline li[data-status="confirmed"]::before{background:var(--gold-500)}
.timeline .t-date{font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--gold-600)}
.on-dark .timeline .t-date,.on-deep .timeline .t-date{color:var(--gold-400)}
.timeline .t-label{font-weight:700}
.timeline .t-detail{font-size:.92rem;opacity:.8;max-width:none}

/* ---------- Nations map (schematic) ---------- */
.nations-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem}
.nation{font-size:.85rem;padding:.45em 1em;border:1px solid rgba(216,180,99,.4);border-radius:2em;opacity:.78}
.nation.confirmed{opacity:1;background:var(--gold-500);color:var(--green-950);font-weight:700;border-color:var(--gold-500)}
.map-note{font-size:.82rem;font-style:italic;opacity:.7;margin-top:1rem}

/* ---------- Accordion / FAQ ---------- */
details.faq{border:1px solid var(--line);border-left:3px solid var(--gold-500);margin-bottom:.7rem;background:var(--paper)}
details.faq summary{cursor:pointer;font-family:var(--display);text-transform:none;letter-spacing:.01em;font-size:1.02rem;font-weight:600;padding:1rem 1.1rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
details.faq summary::after{content:"+";color:var(--gold-600);font-size:1.3rem;line-height:1}
details.faq[open] summary::after{content:"–"}
details.faq .faq-a{padding:0 1.1rem 1.1rem;max-width:none}

/* ---------- Forms ---------- */
form.gswc{display:grid;gap:1rem}
form.gswc .row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
form.gswc label{font-weight:700;font-size:.88rem;display:block;margin-bottom:.3rem}
form.gswc .req{color:var(--gold-600)}
.on-dark form.gswc .req,.on-deep form.gswc .req,.on-slate form.gswc .req{color:var(--gold-400)}
form.gswc input,form.gswc select,form.gswc textarea{width:100%;padding:.85rem 1rem;border:1px solid rgba(28,26,21,.24);background:#fff;font:inherit;color:var(--ink)}
form.gswc input:focus,form.gswc select:focus,form.gswc textarea:focus{outline:3px solid var(--gold-500);outline-offset:1px}
form.gswc fieldset{border:1px solid rgba(28,26,21,.18);padding:1.2rem 1.2rem 1rem}
form.gswc legend{font-weight:700;padding-inline:.4rem;font-size:.9rem}
form.gswc .checks{display:grid;gap:.55rem .9rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
form.gswc .check{display:flex;gap:.55rem;align-items:flex-start;font-weight:400;font-size:.92rem}
form.gswc .check input{width:auto;margin-top:.25rem}
.form-msg{padding:1rem 1.1rem;border-left:4px solid;display:none}
.form-msg.ok{border-color:#2F6B45;background:rgba(47,107,69,.08)}
.form-msg.err{border-color:#9A3B2E;background:rgba(154,59,46,.08)}
.form-msg:empty{display:none!important}
.on-dark .form-msg,.on-deep .form-msg{background:rgba(244,239,227,.94);color:var(--ink)}
.hp-field{position:absolute;left:-9999px;height:1px;overflow:hidden} /* honeypot */

/* ---------- Article cards / news ---------- */
.article-card{text-decoration:none;display:flex;flex-direction:column;border:1px solid var(--line);background:#fff;box-shadow:0 12px 28px -22px rgba(22,36,28,.35);transition:transform .18s ease,box-shadow .18s ease}
.article-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px -18px rgba(22,36,28,.5)}
@media(prefers-reduced-motion:reduce){.article-card:hover{transform:none;box-shadow:none}}
.article-card .ph{min-height:180px}
.article-card .ac-body{padding:1.1rem 1.2rem 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.article-card .ac-cat{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--gold-600)}
.article-card h3{font-size:1.08rem;text-transform:none;letter-spacing:0;line-height:1.35;margin-bottom:.15rem}
.article-card .ac-meta{font-size:.8rem;opacity:.65;margin-top:auto}

/* Article page */
.article-body{max-width:44em;margin-inline:auto}
.article-body p{margin-bottom:1.15rem}
.article-body h2{font-size:1.45rem;margin:2.2rem 0 .8rem;text-transform:none;letter-spacing:0}
.article-body .pull{border-left:3px solid var(--gold-500);padding-left:1.2rem;margin:1.8rem 0;color:var(--green-800)}
.article-meta{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:.85rem;opacity:.75;margin:1rem 0 2rem}

/* ---------- Answer box (AEO) ---------- */
.answer-box{border:1px solid var(--line-gold);border-left:5px solid var(--gold-500);background:var(--cream);padding:1.3rem 1.6rem;max-width:none;margin:1.6rem 0}
.answer-box .q{font-weight:700;margin-bottom:.4rem}
.on-dark .answer-box,.on-deep .answer-box{background:rgba(22,36,28,.55);color:var(--cream)}

/* ---------- Tier explorer ---------- */
.tiers{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.tier{border:1px solid var(--line);border-top:3px solid var(--gold-500);background:var(--paper);padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:.8rem;box-shadow:0 18px 42px -18px rgba(0,0,0,.5)}
.tier .badge{font-family:var(--display);text-transform:uppercase;letter-spacing:.18em;font-size:.64rem;color:var(--gold-600)}
.tier h3{color:var(--ink)}
.tier .price{font-family:var(--display);color:var(--gold-600);letter-spacing:.1em;text-transform:uppercase;font-size:.82rem;padding-bottom:.85rem;border-bottom:1px solid var(--line-gold)}
.tier p{font-size:.92rem;line-height:1.55;color:var(--ink-soft)}
.tier ul{list-style:none;font-size:.9rem;display:grid;gap:.55rem;margin-top:0;padding-top:.3rem}
.tier li{position:relative;padding-left:1.05rem;line-height:1.45}
.tier li::before{content:"◆";color:var(--gold-500);font-size:.55rem;position:absolute;left:0;top:.42em}


/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---------- Championship partners wall ---------- */
.pwall{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(194,151,74,.4);border:1px solid rgba(194,151,74,.4);margin-top:1.8rem;text-align:center}
@media(max-width:900px){.pwall{grid-template-columns:repeat(2,1fr)}}
.pwall-slot{background:var(--paper);padding:2.3rem 1.2rem 2.1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-decoration:none;min-height:128px}
.pwall-k{color:var(--gold-600);font-size:.55rem;line-height:1}
.pwall-name{font-family:var(--display);text-transform:uppercase;letter-spacing:.16em;font-size:.84rem;font-weight:600;color:var(--green-800)}
.pwall-status{font-family:var(--display);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-600)}
.pwall-slot img{max-height:52px;width:auto;filter:grayscale(1);opacity:.82;transition:filter .18s ease,opacity .18s ease}
.pwall-slot:hover img{filter:none;opacity:1}
@media(prefers-reduced-motion:reduce){.pwall-slot img{transition:none}}

/* ---------- Footer ---------- */
footer.site{background:var(--green-950);color:var(--cream);padding:3.5rem 0 2rem;border-top:4px solid var(--gold-500)}
footer.site h3{font-size:.85rem;letter-spacing:.2em;color:var(--gold-400);margin-bottom:.9rem}
footer.site ul{list-style:none;display:grid;gap:.45rem;font-size:.9rem}
footer.site a{text-decoration:none;opacity:.85}
footer.site a:hover{opacity:1;color:var(--gold-400)}
.foot-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.foot-ack{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(244,239,227,.14);font-size:.85rem;opacity:.75;max-width:none;font-style:italic}
.foot-legal{margin-top:1.5rem;font-size:.78rem;opacity:.6;display:flex;flex-wrap:wrap;gap:1.2rem}

footer.site .chip{color:rgba(244,239,227,.72)}

/* Article lists (reset removes default indent) */
.article-body ul,.article-body ol{padding-left:1.25rem;margin-bottom:1.15rem}
.article-body li{margin-bottom:.35rem}
code{word-break:break-word}

/* ---------- Utility ---------- */
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.center{text-align:center}
.small{font-size:.85rem;opacity:.75}
table.simple{width:100%;border-collapse:collapse;font-size:.95rem}
table.simple th,table.simple td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line)}
table.simple th{font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}
@media(max-width:700px){table.simple{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}

#highlights{padding-block:var(--sec-pad)}
.pb-plus{padding-bottom:var(--sec-pad)}  /* no-op now; kept so markup need not change */


/* ---------- Deck type alignment ---------- */
p,li,dd,figcaption,label{color:var(--ink-soft)}
/* Navigation and the header sit on dark ground — never inherit body grey */
header.site,header.site li,header.site a,nav.primary a,nav.primary li,.brand{color:var(--cream)}
nav.primary a{color:var(--cream);opacity:1}
nav.primary a:hover,nav.primary a:focus-visible,nav.primary a[aria-current="page"]{color:var(--gold-400)}
footer.site nav li,footer.site nav a{color:rgba(244,239,227,.85)}
footer.site nav a:hover{color:var(--gold-400)}
/* Any dark-ground section: all text inherits the light foreground colour */
.on-dark,.on-deep,.on-slate,.mapband,footer.site,.hero{color:var(--cream)}
.on-dark p,.on-dark li,.on-dark dd,.on-dark label,.on-dark legend,.on-dark figcaption,.on-dark summary,
.on-deep p,.on-deep li,.on-deep dd,.on-deep label,.on-deep legend,.on-deep figcaption,.on-deep summary,
.on-slate p,.on-slate li,.on-slate dd,.on-slate label,.on-slate legend,.on-slate figcaption,.on-slate summary,
.mapband p,.mapband li,.mapband label,.mapband legend,
footer.site p,footer.site li,footer.site label,footer.site legend,
.hero p,.hero li{color:var(--cream)}
.tier p,.tier li{color:var(--ink-soft)}
/* Supporting copy on dark stays legible rather than grey */
.on-dark .lede,.on-deep .lede,.on-slate .lede{color:rgba(244,239,227,.9)}
.on-dark .small,.on-deep .small,.on-slate .small,footer.site .small{color:rgba(244,239,227,.78)}
h1,h2,h3,h4{color:var(--ink)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-deep h2,.on-deep h3,.on-slate h2,
.hero h1,footer.site h2,footer.site h3{color:inherit}
.on-dark .tier h3{color:var(--ink)}
/* Deck cover lockup: Sora, uppercase, wide tracking */
.hero-kicker{font-family:var(--lockup);font-weight:500}
.hero-kicker span:first-child{font-weight:600;letter-spacing:.14em}
/* Quotes: Cormorant Garamond runs small — size up */
.pull,.quote,blockquote{font-family:var(--serif);font-style:italic;font-weight:600;line-height:1.3;font-size:1.35em}
.hero-tag{font-size:clamp(1.3rem,2.6vw,1.75rem)}
/* Large gold display text may use the deck's gold-deep (AA for large text) */
h2 .accent,h1 .accent{color:var(--gold-deep)}
.hero h1 .accent,.on-dark h2 .accent,.on-deep h2 .accent,.on-slate h2 .accent{color:var(--gold-500)}

/* ---------- Photography (deck-derived; replace with originals) ---------- */
.img-frame{position:relative;overflow:hidden;background:var(--green-950)}
.img-frame img{display:block;width:100%;height:100%;object-fit:cover}
.img-frame.wide img,.img-frame.tall img{height:100%}
.img-frame figcaption{position:absolute;left:11px;right:11px;bottom:11px;z-index:4;font-family:var(--display);text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;color:rgba(244,239,227,.8);padding:.7rem .9rem;background:linear-gradient(180deg,transparent,rgba(22,36,28,.9))}
.img-frame.tall{aspect-ratio:4/5}
.img-frame.wide{aspect-ratio:16/9}
/* height:auto is required — the HTML height attribute is a presentational hint
   and would otherwise override aspect-ratio, rendering the card 720px tall. */
.article-card img.ac-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.mapband{position:relative;background:var(--green-950)}
.mapband::before{content:"";position:absolute;inset:0;background:url("/assets/img/bg-13.jpg") center/cover no-repeat;opacity:.5}
.mapband>*{position:relative}


/* ---------- Light cards sitting on dark sections ----------
   .on-dark / .on-slate / .on-deep set a light foreground for their own copy,
   but .card has a PAPER background — its text must stay dark, so these
   overrides come last and win on cascade order. */
.on-dark .card,.on-deep .card,.on-slate .card,.mapband .card{color:var(--ink)}
.on-dark .card h3,.on-dark .card h4,.on-deep .card h3,.on-slate .card h3,.mapband .card h3{color:var(--ink)}
.on-dark .card p,.on-dark .card li,.on-dark .card dd,
.on-deep .card p,.on-deep .card li,
.on-slate .card p,.on-slate .card li,
.mapband .card p,.mapband .card li{color:var(--ink-soft)}
/* Keys and status chips on a light card need the accessible dark gold */
.on-dark .card .card-k,.on-deep .card .card-k,.on-slate .card .card-k,.mapband .card .card-k{color:var(--gold-600)}
.on-dark .card .chip,.on-deep .card .chip,.on-slate .card .chip,.mapband .card .chip{color:var(--gold-600);border-color:var(--gold-600)}
.on-dark .card,.on-deep .card{box-shadow:0 18px 42px -18px rgba(0,0,0,.5)}


/* ==========================================================================
   DECK ALIGNMENT — values lifted directly from the sponsorship deck's CSS
   ========================================================================== */

/* Headings: Oswald 600, tight leading, hairline tracking */
h1,h2,.h2{font-family:var(--display);font-weight:600;text-transform:uppercase;line-height:1.02;letter-spacing:.004em}
h2{font-size:clamp(2rem,4.6vw,3.5rem);margin-top:1.1rem;margin-bottom:0}
h3{font-family:var(--display);font-weight:600;text-transform:uppercase;line-height:1.04;letter-spacing:.004em}
/* Accent word: gold-deep on light grounds, gold-bright on dark */
h1 .accent,h2 .accent{color:var(--gold-deep);font-style:normal}
.on-dark h2 .accent,.on-deep h2 .accent,.on-slate h2 .accent,.mapband h2 .accent,
.hero h1 .accent,footer.site .accent{color:var(--gold-400)}

/* Lead & body copy */
.lede{font-size:clamp(1.05rem,1.55vw,1.22rem);line-height:1.6;font-weight:400;margin-top:1.4rem;color:var(--ink-soft);max-width:none}
.on-dark .lede,.on-deep .lede,.on-slate .lede{color:rgba(244,239,227,.86)}
p{font-size:1rem;line-height:1.65}

/* Buttons: Inter, not Oswald */
.btn{font-family:var(--body);font-weight:600;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;padding:.95rem 1.7rem;border-radius:var(--radius)}
.btn-gold:hover{background:var(--gold-400)}
.btn-ghost{background:transparent;border:1px solid rgba(244,239,227,.5);color:var(--cream)}
.btn-ghost:hover{background:rgba(244,239,227,.08);border-color:var(--gold-400)}
.on-cream .btn-ghost,section:not(.on-dark):not(.on-deep):not(.on-slate):not(.hero) .btn-ghost{border-color:rgba(28,26,21,.35);color:var(--ink)}
.on-cream .btn-ghost:hover,section:not(.on-dark):not(.on-deep):not(.on-slate):not(.hero) .btn-ghost:hover{background:rgba(28,26,21,.05);border-color:var(--gold-600)}

/* Cards: ivory-2, 2px gold top rule, deep soft shadow, Oswald uppercase heading */
.card{background:var(--paper);border:none;border-top:2px solid var(--gold-500);border-radius:var(--radius);
  padding:2.3rem 2.1rem 2.4rem;box-shadow:0 18px 40px -32px rgba(28,26,21,.4);gap:0}
.card .card-k{font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.1em;color:var(--gold-600);margin-bottom:1.1rem;text-transform:uppercase}
.card h3{font-size:clamp(1.45rem,2vw,1.8rem);color:var(--ink)}
.card p{font-size:.98rem;line-height:1.62;margin-top:.9rem;color:var(--ink-soft)}

/* Stats: big Oswald numeral in gold-bright, left keyline, Inter label */
.stat{border-top:none;border-left:1px solid rgba(216,180,99,.25);padding-left:clamp(1rem,1.8vw,1.6rem);padding-top:0}
.stat .num{font-family:var(--display);font-weight:600;color:var(--gold-400);font-size:clamp(2.8rem,6vw,4.8rem);line-height:.9;letter-spacing:0}
.stat .lbl{font-family:var(--body);font-weight:700;font-size:.95rem;letter-spacing:.01em;margin-top:.9rem;color:var(--cream)}
.stat .sub{font-size:.82rem;color:rgba(244,239,227,.62);margin-top:.4rem;line-height:1.45}

/* Framed imagery: inset gold keyline + deep shadow (deck .framed) */
.img-frame,.frame{border-radius:var(--radius);box-shadow:0 26px 52px -30px rgba(18,26,16,.6);outline:none}
.img-frame::before{content:"";position:absolute;inset:11px;border:1.5px solid rgba(216,180,99,.8);z-index:3;pointer-events:none}
/* Legacy pull-quote — serif quote with circular portrait (example-matched) */
.legacy-quote{margin:2.2rem 0 0}
.legacy-quote blockquote{margin:0;font-size:1.5em;color:var(--cream)}
.legacy-quote figcaption{display:flex;align-items:center;gap:1.25rem;margin-top:1.5rem}
.legacy-quote figcaption img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(216,180,99,.8);flex:none}
.legacy-quote .lq-name{display:block;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.9rem;color:var(--gold-400)}
.legacy-quote .lq-role{display:block;font-size:.98rem;color:rgba(244,239,227,.72);margin-top:.35rem}
/* Column that pushes its final element to the image baseline */
.col-flex{display:flex;flex-direction:column}
.push-bottom{margin-top:auto}
.chip-line{margin-top:.55rem}
.card p.chip-slot{margin-top:auto;align-self:flex-end;padding-top:1rem;text-align:right}
.fit-fig{position:relative;min-height:240px}
.fit-fig img{position:absolute;inset:0}
@media(max-width:640px){.fit-fig{aspect-ratio:11/8;min-height:0}}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;padding-top:1.8rem}
.stat-row .num{font-size:2.2rem;white-space:nowrap}
@media(max-width:640px){.stat-row{grid-template-columns:1fr;gap:1rem}}
/* Road to 2029 — timeline with companion image */
.road-grid{margin-top:2rem}
.road-grid .timeline{margin-top:0}
.road-grid .img-frame.tall{height:100%;aspect-ratio:auto}

/* Global stage map (deck .mapwrap): forest-deep panel, map full width, legend beneath */
.mapwrap{margin-top:clamp(2.4rem,4vw,3.4rem);border-radius:var(--radius);background:var(--green-950);padding:clamp(1.2rem,3vw,2.4rem)}
.mapwrap img{width:100%;height:auto;display:block}
.legend{margin-top:clamp(1.8rem,3vw,2.4rem);padding-top:clamp(1.4rem,2.4vw,1.9rem);border-top:1px solid rgba(216,180,99,.24);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 1.6rem}
.legend .lg{display:flex;align-items:center;gap:.6rem;font-family:var(--body);font-weight:600;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,239,227,.9)}
.legend .lg i{width:11px;height:11px;border-radius:50%;background:var(--gold-400);flex:none;opacity:.55}
.legend .lg.host i{background:var(--gold-500);opacity:1;box-shadow:0 0 0 3px rgba(194,151,74,.3)}
.legend .lg-ok{color:var(--gold-400)}
@media(max-width:900px){.legend{display:grid;grid-template-columns:repeat(2,1fr);justify-content:start}}
.map-note{font-size:.82rem;font-style:italic;opacity:.72;margin-top:1.4rem}

/* Deck's gold hairline + Cormorant italic pull-line pairing */
.pull,.quote,blockquote{font-family:var(--serif);font-style:italic;font-weight:600;line-height:1.3}

/* Near-square corners throughout, as per the deck */
.tier,.article-card,.answer-box,form.gswc input,form.gswc select,form.gswc textarea,.pwall-slot{border-radius:var(--radius)}


/* Stat numerals: the deck's 4.8rem assumes a 12-col grid with wider columns.
   Scale to the site's grid so long values ("40,000+") can't overflow. */
.stat{min-width:0}
.stat .num{font-size:clamp(2.3rem,3.5vw,4rem);white-space:nowrap;overflow-wrap:normal}
@media(max-width:900px){.stat .num{font-size:clamp(2.4rem,7vw,3.4rem)}}

/* Legend: even rows rather than ragged space-between wrapping */
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.1rem 1.4rem;justify-content:start}

