/* ─── ABOUT ─── */
.about-section { background:var(--coal); }
.about-grid { display:grid;grid-template-columns:1fr 1.1fr;gap:5rem;margin-top:4rem;align-items:start; }
.bio { font-size:.97rem;line-height:1.85;color:var(--dim);font-weight:400; }
.bio p + p { margin-top:1.1rem; }
.bio strong { color:var(--sand);font-weight:700; }

.pull-quote {
  background:var(--panel);border-left:3px solid var(--volt);
  padding:2rem 2.2rem;margin-top:2.2rem;
}
.pull-quote p {
  font-family:'Instrument Serif',serif;font-style:italic;
  font-size:1.35rem;line-height:1.55;color:var(--sand);
}
.pull-quote cite { display:block;margin-top:.7rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);font-style:normal; }

/* stat cards replacing measurements grid */
.stat-board { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--edge);border:1px solid var(--edge); }
.stat-card { background:var(--panel);padding:1.5rem 1.3rem;transition:background .2s; }
.stat-card:hover { background:#1a1c1f; }
html.light .stat-card:hover { background:#d9c9a8; }
.stat-val { font-family:'Bebas Neue',sans-serif;font-size:2.1rem;letter-spacing:.05em;color:var(--text);line-height:1; }
.stat-val sub { font-size:.75rem;color:var(--dim);vertical-align:baseline;margin-left:.1rem; }
.stat-key { font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin-top:.35rem; }

/* ─── TIMELINE / JOURNEY ─── */
.journey-section { background:var(--bg); }
.timeline { margin-top:3.5rem;position:relative;padding-left:2rem; }
.timeline::before { content:'';position:absolute;left:0;top:.5rem;bottom:.5rem;width:1px;background:linear-gradient(var(--edge),var(--volt) 50%,var(--edge)); }
.tl-item { position:relative;padding:0 0 2.8rem 2.2rem; }
.tl-item::before {
  content:'';position:absolute;left:calc(-2rem + -4px);top:.35rem;
  width:9px;height:9px;border-radius:50%;
  background:var(--edge);border:1px solid var(--muted);
  transition:background .3s,border-color .3s;
}
.tl-item.active::before { background:var(--volt);border-color:var(--volt);box-shadow:0 0 12px rgba(214,59,59,.4); }
.tl-year { font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--volt);font-weight:700; }
.tl-title { font-family:'Bebas Neue',sans-serif;font-size:1.45rem;letter-spacing:.04em;color:var(--text);margin-top:.2rem; }
.tl-body { font-size:.86rem;line-height:1.7;color:var(--dim);margin-top:.3rem; }

/* ─── NEXT UP BOX ─── */
.next-up-box {
  border: 1px solid var(--volt);
  background: linear-gradient(135deg, rgba(214,59,59,.08) 0%, var(--panel) 100%);
  padding: 2rem 2.5rem;
  position: relative;
  overflow: hidden;
}
.next-up-box::before {
  content: 'NEXT';
  position: absolute; top: -0.5rem; right: 2rem;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 6rem; letter-spacing: .04em;
  color: rgba(214,59,59,.06); line-height: 1;
  user-select: none; pointer-events: none;
}
/* ═══════════════════════════════════════════════════════════════════════════
   LOCALE-SPECIFIC LAYOUT (audit point) — BLOCK 2
   Default (non-live) eyebrow localization for cs locale.
   Czech "PŘÍŠTÍ" replaces English "NEXT" when no tournament is currently
   active. PŘÍŠTÍ is 6 letters (vs 4 for NEXT) AND has 4 diacritics
   (Ř háček, Š háček, two Í čárkas), so it needs both horizontal width
   compression and vertical headroom for the marks. Values picked from
   test grid Option A — see beta 1.5.15 archive.
   See Web_Development_Guidelines section on locale parity discipline.
   ═══════════════════════════════════════════════════════════════════════════ */
html[lang^="cs"] .next-up-box::before {
  content: 'PŘÍŠTÍ';
  top: 0.5rem;
  font-size: 4.5rem;
  line-height: 1.2;
}
/* ═══════════════════════════════════════════════════════════════════════════
   END LOCALE-SPECIFIC LAYOUT — BLOCK 2
   ═══════════════════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════════════════
   LOCALE-SPECIFIC LAYOUT (audit point) — BLOCK 1
   Content rendered for cs locale needs slightly different positioning/sizing
   from EN due to display-font diacritic accommodation. EN and CS render the
   same DOM and same JS-driven content; this block is purely typographic
   adjustment for the Czech word ŽIVĚ which has marks above the cap line.
   When auditing parity between EN and CS, all such blocks are tagged with
   "LOCALE-SPECIFIC LAYOUT (audit point)" — grep for that string to find them.
   See Web_Development_Guidelines for the parity discipline rules.
   ═══════════════════════════════════════════════════════════════════════════ */
.next-up-box.is-live::before { content: 'LIVE'; }
html[lang^="cs"] .next-up-box.is-live::before {
  content: 'ŽIVĚ';
  /* Czech ŽIVĚ has háček on Ž and čárka on Ě that extend above the cap line.
     Three CSS properties work together to fit the word fully inside the box:
       - top: 0.5rem    — slight nudge down (was -0.5rem for NEXT/LIVE which
                          have no marks above cap line)
       - font-size: 5rem — was 6rem, leaves ~1rem headroom for diacritics
       - line-height: 1.2 — gives the line box internal vertical room so
                            diacritic glyphs render INSIDE the line box
                            rather than spilling above it
     Values empirically determined via test grid in beta 1.5.11 archive.
     EN/LIVE keeps the original 6rem + top: -0.5rem positioning for visual
     consistency with the default NEXT eyebrow. */
  top: 0.5rem;
  font-size: 5rem;
  line-height: 1.2;
}
/* ═══════════════════════════════════════════════════════════════════════════
   END LOCALE-SPECIFIC LAYOUT — BLOCK 1
   ═══════════════════════════════════════════════════════════════════════════ */
.next-up-label {
  font-size: .6rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--volt); font-weight: 700; margin-bottom: 1.2rem;
  display: flex; align-items: center; gap: .7rem;
}
.next-up-label::before { content:''; width:1.5rem; height:1px; background:var(--volt); }
.next-up-inner {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem;
}
.next-up-date {
  font-family: 'DM Mono', monospace; font-size: 1rem;
  color: var(--text); letter-spacing: .08em; margin-bottom: .35rem;
  font-weight: 600;
}
.next-up-name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  letter-spacing: .03em; line-height: 1; color: var(--text);
}
.next-up-location {
  font-size: 1.05rem; color: var(--dim); margin-top: .6rem;
}
.next-up-right { text-align: right; flex-shrink: 0; }
.next-up-tier {
  font-size: .7rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--dim); border: 1px solid var(--edge);
  padding: .35rem 1rem; display: inline-block; margin-bottom: .9rem;
}
.next-up-countdown {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 3.2rem; letter-spacing: .04em;
  color: var(--volt); line-height: 1;
}
.next-up-countdown span {
  display: block; font-family: 'Syne', sans-serif;
  font-size: .65rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--dim); margin-top: .25rem; font-weight: 700;
}

/* ─── RESULTS ─── */
.results-row-hidden { display:none !important; }
#loadMoreWrap {
  text-align:center;
  margin-top:1.6rem;
}
#loadMoreResults {
  font-family:'Syne',sans-serif;
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;
  color:var(--volt);background:none;border:1px solid var(--volt);
  padding:.7rem 1.8rem;cursor:pointer;
  transition:background .2s,color .2s;
  touch-action:manipulation;
}
#loadMoreResults:hover { background:var(--volt);color:var(--bg); }
.results-section { background:var(--coal); }
.results-table { width:100%;border-collapse:collapse;margin-top:2.8rem; }
.results-table thead tr { border-bottom:1px solid var(--edge); }
.results-table th {
  text-align:left;padding:.7rem 1rem;
  font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:700;
}
.results-table td { padding:.9rem 1rem;font-size:.88rem;border-bottom:1px solid rgba(34,37,39,.6); }
.results-table tr:hover td { background:rgba(255,255,255,.02); }
html.light .results-table tr:hover td { background:rgba(0,0,0,.03); }
.place { font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.04em;line-height:1; }
.place.gold   { color:#FFD700; }
.place.silver { color:#b0b8c8; }
.place.bronze { color:#cd7f32; }
.place.top5   { color:#7ecfb3; }
.place.top9   { color:var(--dim); }
.place.other  { color:#52575e; }
html.light .place.gold   { color:#a07010; }
html.light .place.silver { color:#5a6070; }
html.light .place.bronze { color:#8b4510; }
html.light .place.top5   { color:#0a7060; }
html.light .place.top9   { color:var(--muted); }
html.light .place.other  { color:var(--muted); }
.event-name { display:block;font-weight:700;color:var(--text);font-size:.88rem; }
.event-tier {
  display:inline-block;margin-top:.2rem;font-size:.52rem;letter-spacing:.15em;
  text-transform:uppercase;padding:.15rem .5rem;background:var(--panel);color:var(--dim);
}
.event-tier.elite { background:rgba(214,59,59,.12);color:var(--volt); }
.upcoming-row td { color:var(--volt)!important; }
.upcoming-row { border-left:2px solid var(--volt); }

.upcoming-tab {
  display:inline-flex;align-items:center;justify-content:space-between;
  gap:1.2rem;padding:.85rem 1.2rem;
  min-width:260px;max-width:480px;
  border:1.5px solid var(--gold);
  background:rgba(200,169,81,.05);
  transition:padding .2s, gap .2s;
}
html.light .upcoming-tab {
  border-color: #7a5c18;
  background: var(--panel);
}

/* Tab content rules — were inline styles in JS innerHTML, blocked by CSP without 'unsafe-inline' */
.tab-tier {
  font-size: .58rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--gold); font-weight: 700; margin-bottom: .35rem;
}
.tab-name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.35rem; letter-spacing: .03em;
  color: var(--text); line-height: 1.1;
}
.tab-location {
  font-size: .8rem; color: var(--dim); margin-top: .3rem;
}
.tab-note {
  font-size: .68rem; color: var(--gold); font-weight: 700;
  margin-top: .4rem; letter-spacing: .04em;
}
.tab-countdown-wrap { text-align: right; flex-shrink: 0; }

/* Small countdown variant (tabs); .next-up-countdown is the large variant in the main box */
.next-up-countdown-small {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.6rem; letter-spacing: .04em;
  color: var(--gold); line-height: 1;
}
.next-up-countdown-small span {
  display: block; font-family: 'Syne', sans-serif;
  font-size: .6rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--dim); margin-top: .2rem;
}

/* Volt-coloured note inside the next-up main box (renderMain) */
.next-up-note {
  margin-top: .8rem; font-size: .72rem; letter-spacing: .06em;
  color: var(--volt); font-weight: 700;
}

/* Compact tabs at medium width — hide qualifying note */
@media (max-width:1300px) {
  .upcoming-tab .tab-note { display:none; }
}

/* Narrower — hide location/date line */
@media (max-width:850px) {
  .upcoming-tab .tab-location { display:none; }
}

/* Narrow — hide tier label too, just name + countdown */
@media (max-width:650px) {
  .upcoming-tab { min-width:0; padding:.6rem .9rem; gap:.75rem; }
}

.results-table th.sortable {
  cursor: none; user-select: none;
  transition: color .2s;
  white-space: nowrap;
}
.results-table th.sortable:hover { color: var(--volt); }
.results-table th.sortable.asc .sort-icon::after { content: ' ↑'; }
.results-table th.sortable.desc .sort-icon::after { content: ' ↓'; }
.results-table th.sortable .sort-icon { color: var(--muted); font-size: .7em; }
.results-table th.sort-active { color: var(--volt); }
.results-table th.sort-active .sort-icon { color: var(--volt); }



.road-ahead {
  margin-top:3rem;
  padding:2rem 2.5rem;
  background:var(--panel);
  border:1px solid var(--edge);
  border-left:3px solid var(--volt);
  display:flex; align-items:flex-start; gap:2rem;
}
.road-ahead-icon {
  font-family:'Bebas Neue',sans-serif;
  font-size:3rem; line-height:1; color:var(--volt); opacity:.4; flex-shrink:0;
}
.road-ahead .label {
  font-size:.6rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--volt); font-weight:700; margin-bottom:.5rem;
  display:flex; align-items:center; gap:.6rem;
}
.road-ahead .label::before { content:''; width:1.5rem; height:1px; background:var(--volt); }
.road-ahead h3,
.road-ahead h4 {
  font-family:'Bebas Neue',sans-serif;
  font-size:1.4rem; letter-spacing:.04em; color:var(--text); margin-bottom:.45rem; line-height:1.1;
}
.road-ahead p { font-size:.88rem;line-height:1.78;color:var(--dim); }
.road-ahead strong { color:var(--sand); }

/* Mobile — stack icon above content, give the text room to breathe */
@media (max-width: 720px) {
  .road-ahead {
    flex-direction: column;
    gap: 1rem;
    padding: 1.6rem 1.4rem;
    margin-top: 2.2rem;
  }
  .road-ahead-icon {
    font-size: 2.4rem;
    opacity: .35;
  }
  .road-ahead h3,
  .road-ahead h4 {
    font-size: 1.55rem;
    line-height: 1.15;
  }
  .road-ahead p {
    font-size: .92rem;
    line-height: 1.7;
  }
}

.sc-stats {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 1.1rem 0 .8rem;
  padding: 1rem 0;
  border-top: 1px solid var(--edge);
  border-bottom: 1px solid var(--edge);
}
.sc-stat { text-align: center; flex: 1; min-width: 0; padding: 0 .5rem; }
.sc-stat-n {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2.8rem;
  letter-spacing: .02em;
  color: var(--text);
  line-height: 1;
  white-space: nowrap;
}
.sc-stat-n.highlight {
  color: #4caf7d;
  font-size: 3.2rem;
}
.sc-stat-l {
  font-size: .52rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--dim);
  margin-top: .3rem;
}
.sc-stat-divider { width: 1px; height: 44px; background: var(--edge); flex-shrink: 0; }

/* Tighten stat numbers as card width narrows */
@media (max-width:1200px) {
  .sc-stat-n { font-size: 2.1rem; }
  .sc-stat-n.highlight { font-size: 2.3rem; }
}
@media (max-width:1000px) {
  .sc-stat-n { font-size: 2.3rem; }
  .sc-stat-n.highlight { font-size: 2.5rem; }
}
@media (max-width:700px) {
  .sc-stat-n { font-size: 1.8rem; }
  .sc-stat-n.highlight { font-size: 2rem; }
  .social-card { padding: 1.8rem 1.4rem; }
  .sc-handle { font-size: 1.7rem; }
}
@media (max-width:450px) {
  .sc-stat-n { font-size: 1.5rem; }
  .sc-stat-n.highlight { font-size: 1.7rem; }
  .sc-stat { padding: 0 .25rem; }
}


.social-section { background:var(--bg); }
.social-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem; }
.social-card {
  background:var(--panel);border:1px solid var(--edge);padding:2.2rem 2rem;
  text-decoration:none;display:block;transition:border-color .2s,transform .25s;
  position:relative;overflow:hidden;
}
.social-card::before {
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(214,59,59,.07) 0%,transparent 60%);
  opacity:0;transition:opacity .3s;
}
.social-card:hover { border-color:var(--volt);transform:translateY(-4px); }
.social-card:hover::before { opacity:1; }
.sc-platform { font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--volt);font-weight:700; }
.sc-handle { font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:.04em;color:var(--text);margin-top:.5rem;line-height:1; }
.sc-sub { font-size:.8rem;color:var(--dim);margin-top:.5rem;line-height:1.5; }
.sc-cta { margin-top:1.5rem;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--volt);font-weight:700; }

/* ─── SPONSORS ─── */
.sponsors-section { background:var(--coal); }
.why-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:3.5rem;background:var(--edge);border:1px solid var(--edge); }
.why-card { background:var(--panel);padding:2rem 1.5rem;transition:background .2s; }
.why-card:hover { background:var(--edge); }
.why-num { font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--volt);line-height:1; }
.why-title { font-family:'Bebas Neue',sans-serif;font-size:1.05rem;letter-spacing:.08em;margin-top:.7rem;color:var(--text); }
.why-body { font-size:.8rem;color:var(--dim);line-height:1.65;margin-top:.45rem; }

.sponsor-slots { display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:2.5rem; }
.slot {
  border:1px dashed var(--edge);padding:2rem 1rem;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;
  text-align:center;transition:border-color .2s;
}
.slot:hover { border-color:var(--volt); }
.slot-label { font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted); }

.cta-box {
  margin-top:4rem;padding:3rem;
  background:linear-gradient(135deg,rgba(214,59,59,.09) 0%,var(--panel) 100%);
  border:1px solid var(--volt);
}
.partner-split .cta-box { margin-top: 0; }
.cta-box h3 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(2rem,3.5vw,3rem);letter-spacing:.03em;line-height:1;color:var(--text);margin-bottom:1.1rem;
}
.cta-box h3 em { font-family:'Instrument Serif',serif;font-style:italic;color:var(--sand); }
.cta-body { font-size:.93rem;line-height:1.78;color:var(--dim);max-width:680px; }
.cta-quote {
  font-family:'Instrument Serif',serif;font-style:italic;
  font-size:1.1rem;color:var(--sand);margin-top:1.2rem;line-height:1.5;
}

/* ─── CONTACT ─── */
.contact-section {
  background:var(--bg);
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start;
}
.contact-big {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3rem,6vw,6rem);letter-spacing:.03em;line-height:.92;color:var(--text);
  margin-top:1.2rem;
}
.contact-big .lt { color:var(--volt); }
.contact-body { font-size:.9rem;line-height:1.8;color:var(--dim);margin-top:1.5rem;max-width:440px; }
.contact-email { display:inline-block;margin-top:1.5rem;font-family:'DM Mono',monospace;font-size:.95rem;color:var(--sand);text-decoration:none;border-bottom:1px solid rgba(196,162,101,.35);padding-bottom:.15rem;transition:border-color .2s; }
.contact-email:hover { border-color:var(--sand); }
.c-note { font-size:.72rem;line-height:1.65;color:var(--dim);padding:1.2rem 1.5rem;background:var(--panel);border-left:2px solid var(--edge);margin-bottom:1.8rem; }
.c-note strong { color:var(--text); }
.c-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.c-input {
  width:100%;background:var(--panel);border:1px solid var(--edge);
  color:var(--text);font-family:'Syne',sans-serif;font-size:.85rem;
  padding:.85rem 1rem;outline:none;transition:border-color .2s;
  margin:0;
  font-family:'Syne',sans-serif;
}
.c-input:focus { border-color:var(--volt); }
.c-input::placeholder { color:var(--muted);font-family:'Syne',sans-serif; }
textarea.c-input { min-height:130px;resize:vertical;display:block;font-family:'Syne',sans-serif; }
.c-phone-wrap { display:flex; gap:0; }
.c-phone-code {
  width:auto; min-width:0; flex:0 0 auto;
  padding:.85rem .6rem;
  border-right:none;
  font-size:.78rem;
  background:var(--panel);
  color:var(--text);
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.c-phone-num { flex:1; }
.c-btn {
  background:var(--volt);color:var(--bg);border:none;
  font-family:'Syne',sans-serif;font-size:.72rem;letter-spacing:.18em;font-weight:700;
  text-transform:uppercase;padding:.8rem 1.8rem;cursor:none;
  display:inline-flex;align-items:center;gap:.5rem;
  transition:background .2s,opacity .2s;
}
.c-btn:hover { background:var(--volt-dim); }

/* ─── BUTTON SHARED ─── */
.btn {
  display:inline-block;margin-top:1.8rem;
  font-size:.72rem;letter-spacing:.18em;font-weight:700;text-transform:uppercase;
  color:var(--volt);text-decoration:none;border:1px solid var(--volt);
  padding:.65rem 1.5rem;transition:background .2s,color .2s;
}
.btn:hover { background:var(--volt);color:var(--bg); }

/* ─── FOOTER ─── */
footer {
  background:var(--coal);border-top:1px solid var(--edge);
  padding:1.8rem 3rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
}
.footer-brand { display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap; }
.footer-mark { font-family:'Bebas Neue',sans-serif;font-size:1.15rem;letter-spacing:.14em;color:var(--text);line-height:1; }
.footer-copy { font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;line-height:1.4; }
.grecaptcha-badge { visibility:hidden !important; }
.footer-privacy-link {
  font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);text-decoration:none;transition:color .2s;
  flex-shrink:0;
}
.footer-privacy-link:hover { color:var(--volt); }

/* ─── ANIMATED DIVIDER ─── */
.divider { height:1px;background:linear-gradient(90deg,transparent,var(--volt),transparent);opacity:.3; }

/* ─── KEYFRAMES ─── */
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:none} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes pulse { 0%,100%{opacity:.3} 50%{opacity:1} }
@keyframes orbit {
  from { transform: rotate(0deg) translateX(120px) rotate(0deg); }
  to   { transform: rotate(360deg) translateX(120px) rotate(-360deg); }
}
@keyframes spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes dash { to { stroke-dashoffset: 0; } }

/* Chart line draw-in (was inline <style> in JS-injected SVG, blocked by CSP) */
@keyframes ptDraw2 { to { stroke-dashoffset: 0; } }
.chart-line { animation: ptDraw2 2s .8s ease forwards; }

/* Partner-section background star drift (was inline <style> in SVG, lost in 1.3.15 extraction) */
@keyframes starRise {
  0%   { transform: translate(0, 0); }
  100% { transform: translate(40px, -60px); }
}
.sr { animation: starRise linear infinite alternate; }

/* ─── PHOTO FILMSTRIP ─── */
/* photos section removed */


/* ─── RESPONSIVE ─── */

/* Large desktop — tighten gaps before things collide */
@media (max-width:1400px) {
  nav { padding:1.1rem 2rem; }
  .nav-links { gap:1.6rem; }
}

/* Drop nav links to hamburger drawer at 1280px and below.
   Czech labels (notably "Sociální sítě" + "Partneři") need substantially
   more horizontal room than English equivalents — this breakpoint is sized
   to keep the inline nav comfortable in either language. */
@media (max-width:1280px) {
  .nav-links { display:none; }
  .nav-hamburger { display:flex; }
  #modeToggle { display:none; }
}

/* Small mobile — also hide Partner With Me from header */
@media (max-width:600px) {
  nav > div > .nav-btn { display:none; }
}

/* Very narrow — hide lang toggle from header (available in drawer) */
@media (max-width:350px) {
  #langToggle { display:none; }
}

@media (max-width:1200px) {
  .about-grid { grid-template-columns:1fr; gap:2.5rem; }
  .stat-board { grid-template-columns:repeat(4,1fr); }
}

/* Stat board — progressive densification as width narrows */
@media (max-width:1000px) {
  .stat-card { padding:1.2rem 1rem; }
  .stat-val { font-size:1.85rem; }
}

@media (max-width:700px) {
  .stat-board { grid-template-columns:repeat(2,1fr); }
  .stat-card { padding:1.3rem 1.1rem; }
}

@media (max-width:450px) {
  .stat-card { padding:1rem .85rem; }
  .stat-val { font-size:1.55rem; }
  .stat-val sub { font-size:.65rem; }
  .stat-key { font-size:.52rem; }
}

@media (max-width:900px) {
  nav { padding:1.1rem 1.5rem; }
  .hero { min-height:100vh; }
  .hero-left { max-width:100%; padding:0 1.5rem 5rem; }
  .hero-photo-overlay {
    background:
      linear-gradient(to bottom, transparent 30%, var(--bg) 100%),
      linear-gradient(to right, var(--bg) 0%, rgba(8,9,9,0.8) 50%, transparent 100%);
  }
  section { padding:4rem 1.5rem; }
  .about-grid { grid-template-columns:1fr; gap:2.5rem; }
  .social-grid { grid-template-columns:1fr; }
  .why-grid { grid-template-columns:1fr 1fr; }
  .sponsor-slots { grid-template-columns:1fr 1fr; }
  .contact-section { grid-template-columns:1fr; gap:2.5rem; }
  .c-row { grid-template-columns:1fr; }
  footer { flex-direction:column;align-items:flex-start; }

  /* Hero stats — 2x2 grid on mobile so 4 stats stay readable */
  .hero-stats { display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--edge); border-left:none; }
  .h-stat { padding:1.1rem 1rem; border-right:1px solid var(--edge); border-bottom:1px solid var(--edge); }
  .h-stat:first-child { padding-left:1rem; }
  .h-stat:nth-child(2n) { border-right:none; }
  .h-stat:nth-last-child(-n+2) { border-bottom:none; }
  .h-stat-n { font-size:1.7rem; }

  /* Scroll hint — move to bottom-center so it never clips */
  .scroll-hint { right:1.2rem; bottom:3.5rem; }
  .scroll-line { height:48px; }
  .scroll-hint span { font-size:.72rem; letter-spacing:.22em; }

  /* Hide vertical accent line — looks odd when hero stacks on mobile */
  .hero-left::after { display:none; }
}

@media (max-width:380px) {
  .h-stat { padding:.9rem .7rem; }
  .h-stat-n { font-size:1.45rem; }
  .h-stat-l { font-size:.5rem; letter-spacing:.18em; }
}


@media (max-width:700px) {
  footer {
    flex-direction:column;
    align-items:flex-start;
    gap:.8rem;
    padding:1.6rem 1.5rem;
  }
  .footer-brand { flex-direction:column;align-items:flex-start;gap:.4rem; }
}

/* Results table — progressive column hiding at narrow widths */

@media (max-width:850px) {
  .results-table td:nth-child(3) span:last-child { display:none; }
  .results-table td:nth-child(3) { white-space:nowrap; }
}

/* Mobile — card layout: each row becomes a 2-col card (badge | stacked data) */
@media (max-width:650px) {
  .results-table,
  .results-table tbody { display:block; }

  /* Hide the header row — card layout is self-labelling */
  .results-table thead { display:none; }

  /* Each result row → 2-column grid */
  .results-table tr {
    display:grid;
    grid-template-columns:52px 1fr;
    grid-template-rows:auto auto auto;
    column-gap:.8rem;
    padding:.85rem .5rem;
    border-bottom:1px solid rgba(34,37,39,.6);
    align-items:start;
  }
  .results-table tr:hover { background:rgba(255,255,255,.02); }

  /* Col 1 — Finish badge: left column, spans all 3 rows */
  .results-table td:nth-child(1) {
    grid-column:1; grid-row:1 / span 3;
    display:flex; align-items:center; justify-content:center;
    padding:0;
  }

  /* Col 2 — Event name + tier badge: right col, row 1 */
  .results-table td:nth-child(2) {
    grid-column:2; grid-row:1;
    display:block; padding:0;
    font-size:.82rem; line-height:1.4;
  }

  /* Col 3 — Location: right col, row 2 — restore and show compactly */
  .results-table td:nth-child(3) {
    grid-column:2; grid-row:2;
    display:flex !important; align-items:center; gap:.35rem;
    padding:.3rem 0 0; white-space:normal;
    font-size:.72rem; color:var(--dim);
  }
  /* Restore location text (hidden at 850px), show at smaller size */
  .results-table td:nth-child(3) span:last-child {
    display:inline !important;
    font-size:.72rem !important;
    color:var(--dim) !important;
    letter-spacing:.02em !important;
  }
  /* Shrink flag emoji from 3.2rem to a card-friendly size */
  .results-table td:nth-child(3) span:first-child {
    font-size:1.4rem !important;
    line-height:1 !important;
    vertical-align:middle !important;
  }

  /* Col 4 — Date: right col, row 3 — restore and show */
  .results-table td:nth-child(4) {
    grid-column:2; grid-row:3;
    display:block !important;
    padding:.2rem 0 0;
    font-size:.68rem; color:var(--muted);
  }


}
.coach-quote { background:var(--panel);border-left:3px solid var(--sand);padding:2rem 2.2rem;margin-top:1.6rem; }
.coach-quote-text { font-family:'Instrument Serif',serif;font-style:italic;font-size:1.35rem;line-height:1.55;color:var(--sand); }
.coach-quote-attr { display:block;margin-top:.7rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted); }


/* Merged partnerships section */
.partnerships-section { padding: 6rem 3rem; }
.partnerships-section > svg { z-index: 0; }
.divider-inner { height:1px;background:var(--edge);margin:4.5rem 0 3.5rem; }
.partner-split { display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:stretch; }
.partner-split > * { display:flex;flex-direction:column; }
.partner-split .cta-box { padding:2.5rem; margin-top:0; height:100%; }
.partner-split .cta-box h3 { font-size:clamp(1.7rem,2.8vw,2.3rem); margin-bottom:1rem; }
.partner-split .cta-body { font-size:.88rem;line-height:1.7; }
.partner-split .cta-quote { font-size:1rem;margin-top:1rem;margin-bottom:1.8rem; }
.partner-form { height:100%; display:flex; flex-direction:column; }
.partner-form .c-note { margin-bottom: 1.4rem; }
.partner-form form { display:flex;flex-direction:column;flex:1;gap:1rem; }
.partner-form textarea.c-input { flex:1;min-height:140px; }

.partner-contact-line { display:flex;align-items:baseline;gap:1.2rem;padding:.85rem 0;border-top:1px solid rgba(255,255,255,.08); }
.partner-contact-line:last-child { border-bottom:1px solid rgba(255,255,255,.08); }
.partner-contact-key { font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);min-width:90px;flex-shrink:0; }
.partner-email { font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.04em;color:var(--volt);text-decoration:none;transition:color .2s; }
.partner-email:hover { color:var(--sand); }
.partner-contact-val { font-size:.75rem;color:var(--dim); }

/* Progressive partnerships optimisation as width narrows (LARGEST breakpoint first) */
@media (max-width:1300px) {
  .partnerships-section { padding: 6rem 2.5rem; }
  .why-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:1100px) {
  .partner-split { grid-template-columns:1fr; gap:2.5rem; }
  .sponsor-slots { grid-template-columns:1fr 1fr; }
  .cta-box { padding:2rem; }
  .partner-split .cta-box h3 { font-size:clamp(1.5rem,2.5vw,2rem); }
}

@media (max-width:900px) {
  .partner-split { grid-template-columns:1fr;gap:2.5rem; }
  .partnerships-section { padding:5rem 1.5rem; }
  .cta-box { padding:1.8rem 1.5rem; }
  .cta-box h3 { font-size:1.6rem !important; line-height:1.1; }
  .cta-body { font-size:.85rem; line-height:1.7; }
  .cta-quote { font-size:.95rem; }
  .partner-contact-line { padding:.7rem 0; }
  .partner-contact-key { min-width:auto; flex:0 0 auto; }
  .partner-contact-val { font-size:.7rem; }
  .c-note { font-size:.68rem; padding:1rem 1.2rem; line-height:1.6; margin-bottom:1.2rem; }
  .c-input { font-size:.85rem; padding:.9rem 1rem; }
  .c-row { gap:.7rem; }
  .partner-form form { gap:.7rem; }
  textarea.c-input { min-height:110px; }
  .c-btn { width:100%; padding:1rem 1.5rem; justify-content:center; }
}

@media (max-width:600px) {
  .why-grid { grid-template-columns:1fr; }
  .sponsor-slots { grid-template-columns:1fr; }
  .c-row { grid-template-columns:1fr; gap:.7rem; }
}

/* Social + Press split */


/* ─── PHOTOS ─── */
/* ─── PHOTOS — editorial photo essay ─── */
.photos-section {
  padding: 6rem 3rem 7rem;
  position: relative;
}

/* Header strip — title + photo count, magazine-style layout */
.photos-header {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 2rem;
  margin-bottom: 3.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--edge);
}
.photos-header-left {
  display: flex;
  flex-direction: column;
  gap: .7rem;
}
.photos-header-left .s-label,
.photos-header-left .s-title {
  margin-bottom: 0;
}
.photos-count {
  display: flex;
  align-items: baseline;
  gap: .7rem;
  text-align: right;
}
.photos-count-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 2rem;
  letter-spacing: .04em;
  color: var(--gold);
  line-height: 1;
}
.photos-count-label {
  font-family: 'DM Mono', monospace;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--dim);
  font-weight: 300;
}

/* Essay grid — 12-column composed layout. Lead spans 7, portrait spans 5 */
.photos-essay {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: minmax(0, auto);
  gap: 1.4rem;
}

.ph-frame {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .75rem;
  /* Subtle persistent frame — no hover transforms on the image */
  transition: opacity .4s ease;
}

/* Meta row: numbered + place — sits ABOVE the image, magazine credit style */
.ph-meta {
  display: flex;
  align-items: center;
  gap: .9rem;
  font-family: 'DM Mono', monospace;
  font-size: .65rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--dim);
  font-weight: 300;
}
.ph-num {
  color: var(--gold);
  font-weight: 400;
  letter-spacing: .08em;
}
.ph-divider {
  flex: 0 0 auto;
  width: 2.4rem;
  height: 1px;
  background: var(--edge);
}
.ph-place {
  color: var(--text);
  letter-spacing: .12em;
  flex: 1;
}

/* The picture container — this is where the image lives */
.ph-frame picture {
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--panel);
  /* Thin frame that becomes gold on hover — no scaling, no glitch */
  outline: 1px solid var(--edge);
  outline-offset: 0;
  transition: outline-color .35s ease;
}
.ph-frame picture::after {
  /* Subtle vignette overlay; intensifies on hover */
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(8,9,9,.45) 100%);
  opacity: .6;
  pointer-events: none;
  transition: opacity .35s ease;
}
.ph-frame:hover picture { outline-color: var(--gold); }
.ph-frame:hover picture::after { opacity: .85; }

.ph-frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  /* NO transform on hover — this is what was causing the glitch in the
     old multi-column layout. Animation lives on the frame outline + caption. */
}

/* Caption: tag + journalistic line — Instrument Serif italic body */
.ph-frame figcaption {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: 0 .15rem;
}
.ph-tag {
  display: inline-block;
  width: fit-content;
  font-size: .55rem;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--volt);
  font-weight: 700;
  padding-bottom: .25rem;
  border-bottom: 1px solid var(--volt);
}
.ph-caption {
  font-family: 'Instrument Serif', serif;
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.4;
  color: var(--sand);
  margin: 0;
}

/* Light mode adaptations */
html.light .ph-frame picture { outline-color: rgba(28, 40, 64, .25); }
html.light .ph-frame:hover picture { outline-color: #7a5c18; }
html.light .ph-caption { color: var(--text); }
html.light .photos-header { border-bottom-color: rgba(28, 40, 64, .2); }

/* ─── Composed layout — desktop (≥1100px) ─── */
.ph-lead     { grid-column: 1 / span 7; grid-row: 1; }
.ph-portrait { grid-column: 8 / span 5; grid-row: 1 / span 2; }
.ph-wide     { grid-column: 1 / span 4; grid-row: 2; }
.ph-close    { grid-column: 5 / span 3; grid-row: 2; }

.ph-lead picture     { aspect-ratio: 3 / 2;  }
.ph-portrait picture { aspect-ratio: 3 / 4;  }
.ph-wide picture     { aspect-ratio: 3 / 2;  }
.ph-close picture    { aspect-ratio: 4 / 5;  }

/* Tablet (≥720px and <1100px): 6-column simpler layout */
@media (max-width: 1099px) {
  .photos-section { padding: 5rem 2rem 6rem; }
  .photos-essay { grid-template-columns: repeat(6, 1fr); gap: 1.1rem; }
  .ph-lead     { grid-column: 1 / span 6; grid-row: 1; }
  .ph-portrait { grid-column: 1 / span 3; grid-row: 2; }
  .ph-wide     { grid-column: 4 / span 3; grid-row: 2; }
  .ph-close    { grid-column: 1 / span 6; grid-row: 3; }
  .ph-lead picture, .ph-close picture { aspect-ratio: 16 / 9; }
}

/* Mobile (<720px): single column stack */
@media (max-width: 719px) {
  .photos-section { padding: 4rem 1.25rem 5rem; }
  .photos-header { grid-template-columns: 1fr; gap: .8rem; }
  .photos-count { text-align: left; justify-content: flex-start; }
  .photos-essay { grid-template-columns: 1fr; gap: 2rem; }
  .ph-lead, .ph-portrait, .ph-wide, .ph-close {
    grid-column: 1; grid-row: auto;
  }
  .ph-portrait picture { aspect-ratio: 4 / 5; }
  .ph-caption { font-size: .98rem; }
}



.social-press-section { padding:7rem 3rem; }
.social-press-split { display:grid;grid-template-columns:1fr 1px 1fr;gap:4rem; }
.sp-divider { background:var(--edge); }
.sp-col { display:flex;flex-direction:column; }
.sp-social-grid { grid-template-columns:1fr;margin-top:2rem; }

/* Progressive — ease padding + gap as page narrows */
@media (max-width:1300px) {
  .social-press-section { padding:6rem 2.5rem; }
  .social-press-split { gap:3rem; }
}

@media (max-width:1100px) {
  .social-press-section { padding:5rem 2rem; }
  .social-press-split { gap:2.5rem; }
}

/* Stack social and press vertically — each full width */
@media (max-width:1000px) {
  .social-press-split { grid-template-columns:1fr; gap:3rem; }
  .sp-divider { height:1px; width:100%; }
  .sp-social-grid { grid-template-columns:1fr 1fr; }
  .social-press-section { padding:4rem 2rem; }
}

/* Full mobile — single card column */
@media (max-width:600px) {
  .sp-social-grid { grid-template-columns:1fr; }
  .social-press-section { padding:4rem 1.5rem; }
}

.press-grid { display:grid;grid-template-columns:1fr;gap:1rem;margin-top:2rem; }
.press-card { border:1px solid var(--edge);padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:inherit;transition:border-color .2s; }
.press-card:hover { border-color:var(--volt); }
.press-outlet { font-size:.55rem;letter-spacing:.24em;text-transform:uppercase;color:var(--volt);font-weight:700; }
.press-headline { font-family:'Syne',sans-serif;font-size:.95rem;font-weight:700;color:var(--text);line-height:1.4; }
.press-date { font-family:'DM Mono',monospace;font-size:.58rem;color:var(--muted);margin-top:auto;padding-top:.8rem;border-top:1px solid var(--edge); }


/* Press */

/* ─── COOKIE BANNER (consent) ─── */
#cookieBanner {
  position: fixed; bottom: 0; left: 0; right: 0;
  z-index: 9990;
  background: var(--panel);
  border-top: 1px solid var(--volt);
  padding: 1.4rem 1.8rem;
  transform: translateY(110%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
#cookieBanner.show { transform: translateY(0); }
.cb-inner {
  max-width: 1280px; margin: 0 auto;
}
.cb-top {
  display: flex; gap: 2rem; align-items: center; justify-content: space-between; flex-wrap: wrap;
}
.cb-text {
  font-size: .78rem; line-height: 1.65;
  color: var(--dim); flex: 1; min-width: 260px; max-width: 680px;
}
.cb-text strong {
  font-family: 'Syne', sans-serif;
  color: var(--sand); font-weight: 700;
  display: block; margin-bottom: .3rem;
  font-size: .58rem; letter-spacing: .28em; text-transform: uppercase;
}
.cb-text a { color: var(--gold); text-decoration: none; transition: color .2s; }
.cb-text a:hover { color: var(--sand); }
.cb-actions { display: flex; gap: .55rem; flex-shrink: 0; flex-wrap: wrap; align-items: center; }
.cb-btn {
  font-family: 'Syne', sans-serif;
  font-size: .55rem; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 700; padding: .65rem 1.2rem;
  border: 1px solid var(--edge); background: none; color: var(--muted);
  cursor: pointer; transition: border-color .2s, color .2s, background .2s;
  -webkit-tap-highlight-color: rgba(200,169,81,.15);
  touch-action: manipulation; white-space: nowrap;
}
.cb-btn:hover { border-color: var(--sand); color: var(--sand); }
.cb-btn-primary {
  border-color: var(--gold); color: var(--gold);
}
.cb-btn-primary:hover {
  background: rgba(200,169,81,.12);
  color: var(--sand);
  border-color: var(--sand);
}
.cb-btn-text { border: none; padding: .65rem .5rem; }
.cb-btn-text:hover { color: var(--sand); border: none; background: none; }

/* Customise panel */
.cb-customise {
  display: none;
  margin-top: 1.2rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--edge);
}
.cb-customise.show { display: block; }
.cb-cat {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 1.5rem; padding: .85rem 0;
  border-bottom: 1px solid rgba(28,40,64,.6);
}
.cb-cat:last-child { border-bottom: none; }
.cb-cat-info { flex: 1; }
.cb-cat-name {
  font-size: .58rem; letter-spacing: .22em; text-transform: uppercase;
  color: var(--sand); font-weight: 700; margin-bottom: .3rem;
  font-family: 'Syne', sans-serif;
}
.cb-cat-desc {
  font-size: .72rem; line-height: 1.55;
  color: var(--dim);
}
.cb-cat-locked {
  font-size: .52rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--muted); padding: .35rem .8rem;
  border: 1px solid var(--edge);
  font-family: 'Syne', sans-serif; font-weight: 700;
  flex-shrink: 0;
}
/* Toggle switch */
.cb-toggle {
  position: relative; width: 36px; height: 20px;
  flex-shrink: 0; cursor: pointer;
  background: var(--edge); border-radius: 10px;
  transition: background .2s;
}
.cb-toggle::after {
  content: ""; position: absolute;
  top: 2px; left: 2px;
  width: 16px; height: 16px;
  background: var(--muted); border-radius: 50%;
  transition: left .2s, background .2s;
}
.cb-toggle.on { background: var(--gold); }
.cb-toggle.on::after { left: 18px; background: var(--bg); }
.cb-toggle input { display: none; }

@media (max-width: 700px) {
  #cookieBanner { padding: 1.1rem 1rem; }
  .cb-top { flex-direction: column; gap: 1rem; }
  .cb-text { font-size: .76rem; min-width: 0; }
  .cb-actions { width: 100%; }
  .cb-btn { flex: 1; padding: .75rem .5rem; font-size: .52rem; }
  .cb-cat { flex-wrap: wrap; gap: .8rem; }
}



/* ══════════════════════════════════════════════
   UTILITY CLASSES — extracted from inline styles
   ══════════════════════════════════════════════ */

/* Layout */
.u-flex-end     { display:flex; align-items:center; gap:1rem; justify-content:flex-end; }
.u-flex-sm-gap  { display:flex; align-items:center; gap:.6rem; }
.u-tab-list     { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1rem; }
.u-divider-row  { display:flex; align-items:center; gap:1rem; margin-top:3.5rem; margin-bottom:1.2rem; }
.u-cb-actions   { margin-top:1rem; justify-content:flex-end; }
.u-rel-hidden   { position:relative; overflow:hidden; }
.u-bg-svg       { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.15; }
.u-hidden       { display:none; }
.u-w-full       { width:100%; }
.u-no-ptr       { pointer-events:none; }
.u-nowrap       { white-space:nowrap; }
.u-rule         { flex:1; height:1px; background:var(--edge); }

/* Spacing */
.u-mb-sm  { margin-bottom:1rem; }
.u-mb-md  { margin-bottom:1.2rem; }
.u-mt-lg  { margin-top:2.5rem; }
.u-mt-xl  { margin-top:4rem; }

/* Typography */
.u-flag-emoji    { font-size:3.2rem; line-height:1; vertical-align:middle; }
.u-flag-text     { font-size:.82rem; color:var(--text); letter-spacing:.04em; vertical-align:middle; }
.u-sub-text      { color:var(--dim); font-size:.88rem; margin-top:.7rem; }
.u-rule-label    { font-size:.85rem; letter-spacing:.2em; text-transform:uppercase; color:var(--dim); font-weight:700; }
.u-chart-label   { margin-bottom:1rem; font-size:.55rem; }
.u-chart-foot    { font-size:.58rem; letter-spacing:.1em; color:var(--muted); margin-top:.6rem; text-align:right; }
.u-growth-stat   { font-size:.82rem; font-weight:700; color:#4caf7d; letter-spacing:.04em; margin-top:.2rem; }
.u-partners-intro { color:var(--dim); font-size:.95rem; line-height:1.75; margin-top:.9rem; max-width:760px; margin-bottom:3.5rem; }
.u-slots-note    { font-size:.7rem; color:var(--muted); margin-top:1rem; letter-spacing:.05em; }
.u-recaptcha-note { font-size:.65rem; color:var(--dim); margin-top:.75rem; line-height:1.5; }
.u-link-dim      { color:var(--dim); text-decoration:underline; }

/* Components */
.u-chart-card     { margin-top:2rem; background:var(--panel); border:1px solid var(--edge); padding:1.5rem 1.5rem 1rem; }
.u-card-disabled  { border-color:var(--edge); opacity:.75; cursor:default; pointer-events:none; }
.u-coming-badge   { font-size:.58rem; letter-spacing:.18em; padding:.2rem .5rem; border:1px solid var(--dim); color:var(--muted); }
.u-press-body     { font-size:.8rem; color:var(--dim); line-height:1.7; margin-top:.6rem; }
.u-stat-sub       { font-size:.75rem; color:var(--dim); }
.u-press-box      { margin-top:1.2rem; border:1px solid var(--edge); padding:.85rem 1rem; background:var(--panel); }
.u-press-box-label { font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--dim); font-weight:700; margin-bottom:.35rem; }
.u-press-box-body { font-size:.82rem; color:var(--dim); line-height:1.65; }

/* Images */
/* (object-position helpers removed in 1.4.08 — no longer used after gallery redesign) */

/* Animation delays — hero stat arrows */
.u-anim-del-120 { animation-delay:1.20s; }
.u-anim-del-138 { animation-delay:1.38s; }

/* SVG particle animation combos (34 unique duration+delay combinations) */
.sr-20-0   { animation-duration:20s; animation-delay:0s; }
.sr-20-n1  { animation-duration:20s; animation-delay:-1s; }
.sr-20-n2  { animation-duration:20s; animation-delay:-2s; }
.sr-20-n3  { animation-duration:20s; animation-delay:-3s; }
.sr-20-n4  { animation-duration:20s; animation-delay:-4s; }
.sr-20-n5  { animation-duration:20s; animation-delay:-5s; }
.sr-20-n9  { animation-duration:20s; animation-delay:-9s; }
.sr-22-n2  { animation-duration:22s; animation-delay:-2s; }
.sr-22-n3  { animation-duration:22s; animation-delay:-3s; }
.sr-22-n4  { animation-duration:22s; animation-delay:-4s; }
.sr-22-n5  { animation-duration:22s; animation-delay:-5s; }
.sr-22-n6  { animation-duration:22s; animation-delay:-6s; }
.sr-25-n1  { animation-duration:25s; animation-delay:-1s; }
.sr-25-n2  { animation-duration:25s; animation-delay:-2s; }
.sr-25-n6  { animation-duration:25s; animation-delay:-6s; }
.sr-25-n7  { animation-duration:25s; animation-delay:-7s; }
.sr-25-n9  { animation-duration:25s; animation-delay:-9s; }
.sr-28-n2  { animation-duration:28s; animation-delay:-2s; }
.sr-28-n3  { animation-duration:28s; animation-delay:-3s; }
.sr-28-n5  { animation-duration:28s; animation-delay:-5s; }
.sr-28-n6  { animation-duration:28s; animation-delay:-6s; }
.sr-28-n7  { animation-duration:28s; animation-delay:-7s; }
.sr-28-n8  { animation-duration:28s; animation-delay:-8s; }
.sr-30-n1  { animation-duration:30s; animation-delay:-1s; }
.sr-30-n4  { animation-duration:30s; animation-delay:-4s; }
.sr-30-n5  { animation-duration:30s; animation-delay:-5s; }
.sr-30-n7  { animation-duration:30s; animation-delay:-7s; }
.sr-30-n8  { animation-duration:30s; animation-delay:-8s; }
.sr-32-n1  { animation-duration:32s; animation-delay:-1s; }
.sr-32-n3  { animation-duration:32s; animation-delay:-3s; }
.sr-32-n6  { animation-duration:32s; animation-delay:-6s; }
.sr-32-n7  { animation-duration:32s; animation-delay:-7s; }
.sr-32-n9  { animation-duration:32s; animation-delay:-9s; }
.sr-35-n3  { animation-duration:35s; animation-delay:-3s; }

/* ── FAQ section ────────────────────────────────────────── */
.faq-section {
  padding: 4rem 1.25rem;
  max-width: 1200px;
  margin: 0 auto;
}
.faq-list {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.6rem;
}
@media (min-width: 900px) {
  .faq-list {
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem;
    row-gap: 0.6rem;
    align-items: start;
  }
}
.faq-item {
  background: var(--panel);
  border: 1px solid var(--edge);
  border-radius: 4px;
  transition: border-color 0.25s ease;
}
.faq-item[open] {
  border-color: var(--gold);
}
.faq-q {
  cursor: pointer;
  padding: 1.1rem 1.4rem;
  font-family: 'Syne', sans-serif;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.005em;
  color: var(--gold);
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  transition: color 0.2s ease;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q::marker { content: ''; }
.faq-q::after {
  content: '+';
  font-family: 'DM Mono', monospace;
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--gold);
  flex-shrink: 0;
  line-height: 1;
  transform-origin: center;
  transition: transform 0.25s ease;
}
.faq-item[open] .faq-q::after {
  content: '−';
}
.faq-q:hover { color: var(--sand); }
.faq-q:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}
.faq-a {
  padding: 0 1.4rem 1.3rem;
  color: var(--sand);
  line-height: 1.65;
  font-size: 0.95rem;
  margin: 0;
}
@media (max-width: 600px) {
  .faq-section { padding: 3rem 1rem; }
  .faq-q { font-size: 0.95rem; padding: 1rem 1.15rem; gap: 0.75rem; }
  .faq-q::after { font-size: 1.25rem; }
  .faq-a { padding: 0 1.15rem 1.15rem; font-size: 0.9rem; }
}

/* ─── PERF: content-visibility + containment (Beta 1.4.13) ───
 * Tells the browser to skip layout/paint for off-screen sections until they
 * scroll near the viewport. Largest single intervention available against
 * the 3,888ms Style & Layout cost flagged on mobile PageSpeed.
 *
 * `contain-intrinsic-size` provides a placeholder height so the page
 * scroll length stays correct and CLS doesn't regress.
 *
 * Browser support ~93% as of 2026 (Chrome 85+, Safari 18+, Firefox 125+).
 * Older browsers gracefully render normally — no degradation. */
.results-section,
.photos-section,
.social-press-section,
.faq-section,
.partnerships-section {
  content-visibility: auto;
  contain-intrinsic-size: auto 1200px;
}

/* `contain: layout` on isolated repeating components — limits how far the
 * browser walks the layout tree when one card changes internally (hover,
 * reveal-in animation, sheet data resolving). Additive to content-visibility. */
.stat-card,
.ph-frame,
.faq-item,
.press-card,
.why-card {
  contain: layout;
}
