/* =============================================================================
   Yards Golf Book — base.css (v2 / Pebble Beach + Collins + Fraunces)
   Site-wide design tokens, typography, header, footer.

   Strategy: keep old token names (--green-deep, --bg, etc.) so any page or JS
   that already reads them continues to work — but point them at new values.
   Pages can keep their inline :root blocks; this stylesheet, linked LAST in
   <head>, wins via source order and re-skins everything.

   Re-skinned 2026-05-18. v1 backed up at backups/base.v1_20260518T010000Z.css.
   ============================================================================= */

/* ── Font import ─────────────────────────────────────────────────────────── */
/* Fraunces (display, italic), Space Grotesk (body), DM Mono (technical).
   Critical pages also <link rel="preload" as="style"> for this URL so the
   fetch is parallel with the HTML parse. See index.html head. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,400;0,600;0,800;1,400;1,600&family=Space+Grotesk:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

/* ── Metric-matched fallbacks to eliminate font-swap CLS ──────────────────
   Synthetic Georgia (display) and Helvetica (body) tuned with
   size-adjust + ascent/descent overrides so they occupy the same vertical
   space as Fraunces and Space Grotesk respectively. First paint uses the
   fallback; when the real fonts arrive the swap is invisible because the
   metrics already match. Generated from https://screenspan.net/fallback. */
@font-face {
  font-family: 'Fraunces fallback';
  src: local('Georgia'), local('Times New Roman');
  size-adjust: 106%;
  ascent-override: 92%;
  descent-override: 25%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Space Grotesk fallback';
  src: local('Helvetica Neue'), local('Helvetica'), local('Arial');
  size-adjust: 101%;
  ascent-override: 96%;
  descent-override: 26%;
  line-gap-override: 0%;
}

/* ── Components (hex blobs, marquee, collins-hero, etc.) ───────────────── */
@import url('/css/components.css');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* ── Pebble Beach palette ─────────────────────────────────────────────── */
  --bg: #ecebe3;             /* driftwood — primary background */
  --bg-warm: #f5f3eb;        /* sand — secondary background */
  --cream: #f5f3eb;          /* sand alias */
  --white: #ffffff;
  --ink: #1c2530;            /* slate — primary text */
  --ink-mid: rgba(28, 37, 48, 0.7);
  /* --ink-muted darkened from 0.5 → 0.65 for WCAG AA 4.5:1 on body copy
     (audit pri #3). Used on ~300 small-text surfaces (meta dates, labels,
     footer links, captions). Verified contrast on the three backgrounds:
     driftwood 4.74:1, cream 4.89:1, white 4.88:1. */
  --ink-muted: rgba(28, 37, 48, 0.65);
  --ink-dim: rgba(28, 37, 48, 0.3);

  /* Brand greens collapse to "kelp". Old token names preserved for JS. */
  --green-deep: #2c5046;     /* kelp — primary brand */
  --green-mid: #234038;      /* kelp darker (hover) */
  --green-accent: #e8965f;   /* Pacific sun — now the accent (was green) */
  --green-pale: #f5f3eb;     /* sand (fallback for old --green-pale fills) */

  /* Accent / punch */
  --punch: #e8965f;          /* Pacific sun — orange */
  --punch-mid: #d97f47;      /* darker Pacific sun (hover) */
  --gold: #e8965f;           /* old --gold collapses to Pacific sun */

  /* Rules / dividers */
  --rule: rgba(28, 37, 48, 0.1);
  --rule-mid: rgba(28, 37, 48, 0.18);

  /* Functional */
  --red: #c84e4e;            /* error / destructive */
  --error: #c84e4e;

  /* Layout */
  --header-h: 52px;
  --tab-h: 44px;

  /* Typography */
  --display-font: 'Fraunces', 'Fraunces fallback', Georgia, serif;
  --body-font: 'Space Grotesk', 'Space Grotesk fallback', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono-font: 'DM Mono', 'SF Mono', Menlo, monospace;
}

html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  font-family: var(--body-font);
  font-weight: 400;
  color: var(--ink);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── Typography defaults ──────────────────────────────────────────────────── */
h1, h2, h3, h4 {
  font-family: var(--display-font);
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1.05;
}
h1 { font-size: clamp(36px, 5vw, 64px); margin-bottom: 24px; }
h2 { font-size: clamp(28px, 3.5vw, 44px); margin: 32px 0 12px; }
h3 { font-size: clamp(20px, 2vw, 28px); margin: 24px 0 8px; }
h4 { font-size: 18px; margin: 16px 0 4px; }

/* Italic-display alternate (use class="display-italic" for hero phrases) */
.display-italic, em.display, h1 em, h2 em, h3 em {
  font-family: var(--display-font);
  font-style: italic;
  font-weight: 400;
}

p, li {
  font-size: 16px;
  line-height: 1.55;
  margin-bottom: 12px;
  color: var(--ink-mid);
}
ul, ol { padding-left: 20px; margin-bottom: 16px; }
a { color: var(--green-deep); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--punch); }
strong, b { font-weight: 600; color: var(--ink); }

/* Mono helper */
.mono { font-family: var(--mono-font); letter-spacing: 0; }

/* ── Buttons (.btn family) ────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  font-family: var(--body-font);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  border-radius: 999px;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background .15s, border-color .15s, color .15s, transform .1s;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--ink); color: var(--cream); }
.btn-primary:hover { background: var(--green-deep); color: var(--cream); }
.btn-punch { background: var(--punch); color: var(--cream); }
.btn-punch:hover { background: var(--punch-mid); color: var(--cream); }
.btn-ghost { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: var(--cream); }
.btn-pill { /* compact, navlike */ padding: 8px 16px; font-size: 13px; }

/* ── Form fields ──────────────────────────────────────────────────────────── */
input, select, textarea {
  font-family: var(--body-font);
  font-size: 15px;
  color: var(--ink);
  background: var(--white);
  border: 1.5px solid var(--rule-mid);
  border-radius: 10px;
  padding: 12px 14px;
  outline: none;
  transition: border-color .15s;
}
input:focus, select:focus, textarea:focus { border-color: var(--green-deep); }
input::placeholder, textarea::placeholder { color: var(--ink-dim); }
label { font-family: var(--mono-font); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-muted); }

/* ── SVG click-target utilities (audit #19 Phase E.3) ──────────────────────
   For SVG elements that need to receive pointer events (which are off by
   default for non-fill SVG geometry). Replaces inline
   setAttribute('style', 'cursor:X;pointer-events:all') — that path is
   subject to CSP `style-src-attr`, so the class form is the CSP-clean
   way. */
.svg-click-crosshair { cursor: crosshair; pointer-events: all; }
.svg-click-pointer   { cursor: pointer;   pointer-events: all; }

/* Hex background SVG positioning (CSP Phase E.3: replaces
   svg.style.cssText in js/hex-bg.js). */
#hex-bg {
  position: fixed; top: 0; left: 0;
  width: 100vw; height: 100vh;
  z-index: 0; pointer-events: none; overflow: hidden;
}
/* Homepage hex-grid SVG (CSP Phase E.3: replaces
   svg.style.cssText in js/pages/index.js). Height is set
   per-instance via JS DOM API for dynamic pageH sizing. */
.hex-grid-svg { width: 100%; display: block; }

/* ── Strokes-gained color (audit #19 Phase E.2) ──────────────────────────
   Positive SG renders green-accent, negative renders red. Used wherever
   per-shot or per-round SG is displayed. Replaces inline
   style="color:${sg >= 0 ? 'var(--green-accent)' : '#cc3333'}". */
.sg-pos { color: var(--green-accent); }
.sg-neg { color: #cc3333; }
/* Large SG figure (my-shots tee summary); static size on top of sg-pos/neg. */
.sg-tee-figure { font-size: 36px; font-weight: 600; }

/* ── Tee color palette (audit #19 Phase E.2) ──────────────────────────────
   The 14-entry tee palette + 'default' fallback as CSS classes, so swatches
   render via class names instead of inline style="background:${hex}". Apply
   in combination with sizing classes like .tee-swatch or .tee-swatch-lg.
   Source of truth for hex values: teeColor() in js/course-state.js — keep
   in sync. */
.tee-color-black   { background: #1a1a1a; }
.tee-color-blue    { background: #2255aa; }
.tee-color-white   { background: #eeeeee; }
.tee-color-gold    { background: #c8a828; }
.tee-color-red     { background: #cc2222; }
.tee-color-green   { background: #2a8a3a; }
.tee-color-silver  { background: #aaaaaa; }
.tee-color-purple  { background: #7744aa; }
.tee-color-orange  { background: #d47a1a; }
.tee-color-yellow  { background: #ccb820; }
.tee-color-bronze  { background: #8a6832; }
.tee-color-copper  { background: #a86830; }
.tee-color-maroon  { background: #6a2233; }
.tee-color-teal    { background: #2a8a7a; }
.tee-color-default { background: #666666; }

/* ── Keyboard focus rings (audit #20) ──────────────────────────────────────
   `:focus-visible` fires only for keyboard navigation, so mouse users see
   no change. Orange outline is high-contrast on both the cream and ink
   backgrounds used across the site. */
:focus-visible {
  outline: 2px solid var(--punch);
  outline-offset: 2px;
  border-radius: 4px;
}
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[role="tab"]:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--punch);
  outline-offset: 3px;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--punch);
  outline-offset: 2px;
}

/* ── Sticky header (#header used by most app pages) ───────────────────────── */
#header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--header-h);
  background: rgba(236, 235, 227, 0.92); /* driftwood, translucent */
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--rule);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  z-index: 100;
}
.header-brand {
  font-family: var(--display-font);
  font-style: italic;
  font-weight: 800;
  font-size: 20px;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-decoration: none;
}
.header-right { display: flex; gap: 20px; align-items: center; }
.header-right a {
  font-family: var(--body-font);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--ink-mid);
  text-decoration: none;
  text-transform: none;
}
.header-right a:hover { color: var(--ink); }

/* ── Content article layout (privacy/terms/etc.) ──────────────────────────── */
.content {
  max-width: 720px;
  margin: 0 auto;
  padding: calc(var(--header-h) + 64px) 24px 80px;
}
.content h1 { font-family: var(--display-font); font-style: italic; font-weight: 400; font-size: clamp(48px, 6vw, 88px); letter-spacing: -0.02em; line-height: 1; }
.content h2 { font-family: var(--display-font); font-weight: 600; font-size: 24px; margin: 40px 0 12px; }

/* ── Footer ───────────────────────────────────────────────────────────────── */
.site-footer {
  background: var(--ink);
  color: var(--cream);
  padding: 56px 24px 32px;
  text-align: center;
}
.site-footer .footer-brand {
  font-family: var(--display-font);
  font-style: italic;
  font-weight: 800;
  font-size: 32px;
  letter-spacing: -0.02em;
  color: var(--cream);
  margin-bottom: 16px;
}
.footer-links {
  display: flex;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.footer-links a {
  font-family: var(--body-font);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  color: rgba(245, 243, 235, 0.7);
  text-decoration: none;
  text-transform: none;
  transition: color 0.2s;
}
.footer-links a:hover { color: var(--punch); }
.footer-copy,
.footer-attr {
  font-family: var(--mono-font);
  font-size: 11px;
  color: rgba(245, 243, 235, 0.5);
  margin-bottom: 6px;
}
.footer-attr a { color: rgba(245, 243, 235, 0.5); text-decoration: none; }
.footer-attr a:hover { text-decoration: underline; color: var(--cream); }
.footer-email a {
  font-family: var(--mono-font);
  font-size: 11px;
  color: var(--punch);
  text-decoration: none;
}
.footer-email a:hover { text-decoration: underline; }

/* Footer social-link hover (Bluesky/Twitter/Instagram). Was inline JS
   `onmouseover="this.style.color='#0085ff'"` — moved here so we can drop
   'unsafe-inline' from script-src-attr. */
.footer-social a { color: var(--ink-muted); text-decoration: none; font-family: var(--mono-font); font-size: 11px; transition: color .2s; }
.footer-social a:hover { color: #0085ff; }

/* Share buttons (course.html share panel). Replaces a stack of inline
   onmouseover/onmouseout handlers that swapped background+color+border. */
.share-btn {
  display: flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  border: 1px solid var(--rule-mid); border-radius: 6px;
  background: var(--white); color: var(--ink);
  cursor: pointer;
  font-family: var(--body-font); font-size: 11px;
  transition: all .15s;
}
.share-btn--twitter:hover    { background: #1da1f2; color: #fff; border-color: #1da1f2; }
.share-btn--bluesky:hover    { background: #0085ff; color: #fff; border-color: #0085ff; }
.share-btn--instagram:hover  { background: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); color: #fff; border-color: #dc2743; }
.share-btn--accent:hover     { background: var(--green-pale); border-color: var(--green-accent); }

/* Trust signals: positioned just above the footer-links row */
.footer-trust {
  display: flex;
  justify-content: center;
  gap: 22px;
  flex-wrap: wrap;
  font-family: var(--mono-font);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(245, 243, 235, 0.45);
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(245, 243, 235, 0.08);
}
.footer-trust span { display: inline-flex; align-items: center; gap: 8px; }
.footer-trust span::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--punch);
  display: inline-block;
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  opacity: 0.7;
}

/* ── Utility classes — extracted from repeated inline styles (audit #19) ──
   Each class swaps out an inline-style pattern that appeared ≥ 6 times
   across the main-app HTML. Migrating these out of `style="…"` is the
   first phase toward eventually closing `style-src 'unsafe-inline'` in
   the CSP. Page-specific one-offs stay inline (yet to be tackled). */
.is-hidden       { display: none; }
.cursor-pointer  { cursor: pointer; }
.overflow-hidden { overflow: hidden; }
.img-fill        { width: 100%; height: auto; display: block; }
.img-rounded     { width: 100%; height: auto; border-radius: 8px; }
.txt-gold        { color: var(--gold); }
.txt-meta-sm     { color: var(--ink-muted); font-size: 12px; }
.txt-body-mid    { font-size: 15px; color: var(--ink-mid); line-height: 1.55; }
.italic-regular  { font-style: italic; font-weight: 400; }
/* Phase B (audit #19): top JS-template-string patterns. */
.txt-accent        { color: var(--green-accent); }
.txt-muted         { color: var(--ink-muted); }
.txt-center-muted  { text-align: center; color: var(--ink-muted); }
.pe-none           { pointer-events: none; }
/* Phase E.4 wave 1: next batch of high-frequency static patterns. */
.link-deep         { color: var(--green-deep); text-decoration: none; }
.flex-1            { flex: 1; }
.img-cover         { width: 100%; height: 100%; object-fit: cover; display: block; }
.txt-green-mid     { color: var(--green-mid); }

/* Phase E.5: distinctive multi-property patterns (≥4×) across HTML + JS.
   Migrated by scripts/migrate_inline_styles_e5.py (exact whole-style match). */
.kicker-16     { font-family: var(--mono-font); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--punch); margin-bottom: 16px; }
.kicker-12     { font-family: var(--mono-font); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--punch); margin-bottom: 12px; }
.kicker-8      { font-family: var(--mono-font); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--punch); margin-bottom: 8px; }
.display-24    { font-family: var(--display-font); font-weight: 800; font-size: 24px; line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); margin-bottom: 12px; }
.display-22    { font-family: var(--display-font); font-weight: 800; font-size: 22px; line-height: 1.1; letter-spacing: -0.01em; color: var(--ink); margin-bottom: 8px; }
.display-italic{ font-family: var(--display-font); font-style: italic; font-weight: 400; }
.label-deep    { font-family: var(--body-font); font-size: 13px; font-weight: 600; color: var(--green-deep); margin-bottom: 4px; }
.fineprint     { font-family: var(--body-font); font-size: 11px; color: var(--ink-muted); line-height: 1.5; }
.card-cream    { background: var(--cream); border: 1.5px solid var(--rule); border-radius: 20px; overflow: hidden; }
.card-white    { background: #fff; border: 1px solid rgba(26,51,32,0.1); border-radius: 10px; overflow: hidden; }
.img-rounded-4 { width: 100%; height: auto; border-radius: 4px; margin-bottom: 12px; }
.cursor-click  { cursor: pointer; pointer-events: all; }

/* Recent-courses list rows (used on community.html + index.html promo
   strip). Values reflect what actually shipped via inline overrides —
   the community.html <style> rule was dead. */
.recent-row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; padding: 18px 28px;
  border-bottom: 1px solid var(--rule); flex-wrap: wrap;
  font-family: var(--body-font);
}
.recent-row:last-child { border-bottom: none; }
.recent-link {
  font-family: var(--display-font); font-weight: 600; font-size: 18px;
  color: var(--ink); text-decoration: none;
}
.recent-link:hover { color: var(--green-mid); text-decoration: underline; }
.recent-meta {
  font-family: var(--mono-font); font-size: 11px;
  color: var(--ink-muted); letter-spacing: 0.04em;
}

/* Iconic-library link rows (index.html "Iconic courses" directory). */
.iconic-link {
  color: var(--ink); text-decoration: none;
  border-bottom: 1px solid var(--rule);
}

/* ── Hex grid pattern overlay (site-wide texture) ─────────────────────────── */
.hex-bg-pattern {
  position: fixed; inset: 0; pointer-events: none; z-index: 0; opacity: 0.05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 52' fill='none'><path d='M30 0L60 17.32V34.64L30 51.96L0 34.64V17.32Z' stroke='%231c2530' stroke-width='1'/></svg>");
  background-size: 60px 52px;
  background-repeat: repeat;
}

/* ── CSP E.6: migrated inline-style one-offs from js/ modules ── */
.ist2ee000{font-size:8px;opacity:0.6;margin-top:1px}
.ist3f2a3d{pointer-events:all;cursor:crosshair}
.ist40ac57{margin-bottom:6px;white-space:nowrap}
.ist4da3a8{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}
.ist840b5e{cursor:crosshair}
.istd461c9{position:relative}
.istfdfde7{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}
.ist24393b{margin-top:12px;display:flex;justify-content:center;gap:16px}
.ist3494e7{font-size:8px}
.ist3b0ebb{display:none;background:var(--gold);color:white;font-size:8px;font-weight:700;padding:1px 5px;border-radius:8px;margin-left:4px;font-family:var(--body-font)}
.ist7603ef{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:white;border:1px solid var(--rule);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.1);min-width:180px;z-index:300;padding:6px 0}
.ist80d654{text-decoration:none}
.ist82b30d{display:block;padding:8px 16px;font-size:11px;font-family:var(--body-font);color:var(--ink);text-decoration:none;letter-spacing:0.06em}
.ist8cede3{display:block;padding:8px 16px;font-size:11px;font-family:var(--body-font);color:var(--green-accent);text-decoration:none;letter-spacing:0.06em;border-top:1px solid var(--rule)}
.hdr-menu-link{display:block;padding:8px 16px;font-size:11px;font-family:var(--body-font);color:var(--ink);text-decoration:none;letter-spacing:0.06em}
.hdr-menu-link:hover{background:var(--green-pale)}
.istb87ca3{display:flex;align-items:center;gap:10px}
.istd76768{gap:4px}
.ist015a5e{display:flex;align-items:center;gap:8px}
.ist4390bb{font-size:11px;color:var(--ink-muted)}
.istb4bbf5{color:var(--ink-muted);font-size:11px}
.istb6c51f{font-family:var(--mono-font);font-size:11px;color:var(--ink-muted)}
.ist5f5fd3{display:flex;align-items:center;gap:6px;padding:3px 0;cursor:pointer;font-family:'DM Mono',monospace;font-size:9px;color:var(--ink-mid)}
.ist93094c{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;font-family:'DM Mono',monospace;font-size:10px;color:var(--ink-mid);border-bottom:1px solid var(--rule)}
.ist9723bb{accent-color:var(--green-accent)}
.q-bar-fill{height:100%;border-radius:4px}
.ist0d84b3{display:flex;align-items:center;gap:8px;margin:4px 0}
.ist11a508{font-size:11px}
.ist20fd6c{width:60px;font-size:11px;color:var(--ink-mid);text-align:right}
.ist535a3e{flex:1;background:var(--green-pale);border-radius:4px;height:18px;position:relative;overflow:hidden}
.istc08e8a{width:90px;font-size:10px;color:var(--ink-muted);text-align:right}
.istd8aa6c{width:60px;font-size:10px;color:var(--ink-muted);text-align:right}
.iste81876{color:var(--error)}
.ist0a5864{margin-top:4px;font-family: var(--body-font);font-size:9px;color:var(--ink-muted);line-height:1.6}
.ist3effc4{margin-top:12px;padding:10px 14px;background:var(--green-pale);border-radius:6px;font-family:var(--body-font);font-size:11px;color:var(--green-deep);line-height:1.4}
.ist443e89{font-family: var(--body-font);font-size:9px;color:var(--ink-muted);text-align:right}
.ist76dff1{font-family: var(--body-font);font-size:14px;font-weight:600;color:var(--ink-muted);width:32px;text-align:center}
.istc4a85b{font-family: var(--body-font);font-size:9px;color:var(--green-accent);text-align:right}
.isteed0f8{font-weight:600}
.ist1fef90{font-size:8px;color:var(--ink-muted)}
.ist08d93c{font-family:var(--mono-font);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
.ist2764a4{cursor:pointer;color:var(--gold);font-size:11px;font-family:var(--mono-font);letter-spacing:0.08em}
.ist2a7c5b{margin-top:14px;text-align:center;font-family:var(--body-font);font-size:11px;color:var(--ink-muted);line-height:1.6}
.ist60b451{color:var(--green-deep);font-weight:600;text-decoration:underline}
.ist8a77e5{margin-top:8px}
.ist938939{color:var(--ink-muted)}
.ist995a06{font-family:var(--body-font);font-size:13px;color:var(--ink)}
.istadee86{cursor:pointer;text-decoration:underline}
.istc1fe10{font-family:var(--body-font);font-size:13px;color:var(--green-deep);font-weight:600}
.istcaaacc{color:var(--green-mid)}
.iste937b9{background:var(--bg-warm);border:1px dashed var(--rule-mid);border-radius:8px;padding:10px 14px;margin-bottom:12px;text-align:center}
.istf8d672{background:var(--green-pale);border:1px solid var(--green-accent);border-radius:8px;padding:12px 16px;margin-bottom:12px;text-align:center}
.ist00edb6{padding:11px 14px;background:var(--green-deep);color:var(--cream);border:none;border-radius:999px;font-family:var(--body-font);font-size:13px;font-weight:600;cursor:pointer}
.ist07d4e2{font-family:var(--display-font);font-style:italic;font-weight:400;font-size:clamp(28px,4vw,40px);line-height:1.1;color:var(--ink);margin-bottom:16px}
.ist16358e{text-align:center;font-family:var(--body-font);font-size:13px;color:var(--ink-muted);line-height:1.55}
.ist246091{font-family:var(--mono-font);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:8px}
.ist41a684{font-family:var(--body-font);font-size:13px;color:var(--ink-mid);line-height:1.55;margin-bottom:14px;flex:1}
.ist472ab6{background:var(--ink);color:var(--cream);border-radius:14px;padding:22px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.ist572173{display:none;margin-top:10px;font-family:var(--mono-font);font-size:11px;color:var(--punch)}
.ist5ddafe{font-family:var(--display-font);font-style:italic;font-weight:600;font-size:20px;color:var(--ink);margin-bottom:10px;line-height:1.2}
.ist694332{text-align:center;margin-bottom:48px}
.ist721a45{font-family:var(--body-font);font-size:15px;color:var(--ink-mid);line-height:1.6;max-width:440px;margin:0 auto}
.ist7561f9{padding:11px 14px;background:transparent;color:var(--ink);border:1.5px solid var(--ink);border-radius:999px;font-family:var(--body-font);font-size:13px;font-weight:600;cursor:pointer;text-transform:none}
.ist7904fe{font-family:\'Space Grotesk\',sans-serif;font-size:11px;color:var(--green-deep)}
.ist805a1f{padding:10px 12px;font-family:var(--body-font);font-size:13px;border:1px solid var(--rule-mid);border-radius:8px;background:var(--white);color:var(--ink);outline:none}
.ist833f09{display:flex;justify-content:center;margin-bottom:24px}
.ist87801f{font-family:var(--mono-font);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(245,243,235,0.5);margin:18px 0 8px}
.ist87a110{background:var(--cream);border:1.5px solid var(--rule);border-radius:14px;padding:22px;display:flex;flex-direction:column}
.ist9c422f{font-family:\'DM Mono\',monospace;font-size:9px;letter-spacing:0.06em;color:var(--green-accent);margin-left:8px;text-decoration:underline}
.ist9fcc8f{font-family:var(--mono-font);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--punch);margin-bottom:12px}
.ista1066d{font-family:var(--display-font);font-style:italic;font-weight:600;font-size:20px;color:var(--cream);margin-bottom:10px;line-height:1.2}
.istaafa7b{font-family:var(--body-font);font-size:13px;color:var(--ink-mid);line-height:1.55;margin-bottom:18px;flex:1}
.istae5d9f{position:absolute;top:0;left:0;right:0;background:var(--punch);color:var(--cream);font-family:var(--mono-font);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;text-align:center;padding:5px}
.istbd0c23{font-family:var(--body-font);font-size:13px;color:rgba(245,243,235,0.7);line-height:1.55;margin-bottom:18px;flex:1}
.istbe2653{display:flex;flex-direction:column;gap:8px}
.istc4c3c1{opacity:0.4}
.istcd21c2{padding:11px 14px;background:var(--punch);color:var(--cream);border-radius:999px;text-decoration:none;font-family:var(--body-font);font-size:13px;font-weight:600;text-align:center}
.istd44f6d{margin-bottom:3px}
.istded22f{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:32px}
.iste698a0{font-style:italic}
.istf5d075{max-width:720px;margin:0 auto;padding:64px 24px}
.ist0712e7{margin-top:6px;padding:6px 14px;font-family:var(--body-font);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;background:var(--green-accent);color:white;border:none;border-radius:6px;cursor:pointer}
.ist08f2ae{font-family:var(--body-font);font-size:13px;color:var(--green-accent);font-weight:600;letter-spacing:0.03em}
.ist0f699a{font-size:12px;color:var(--ink-muted);margin-bottom:10px}
.ist1c0511{padding:10px 20px;background:var(--white);color:var(--green-deep);border:1.5px solid var(--green-deep);border-radius:8px;cursor:pointer;font-family:var(--body-font);font-size:13px;font-weight:600}
.ist2104f0{font-size:10px;font-weight:300;opacity:0.8}
.ist30f26e{font-size:10px;color:var(--ink-muted);margin-top:8px}
.ist427444{background:#b89530;color:#1a1a1a;border:none;padding:6px 14px;border-radius:6px;font-family:var(--mono-font);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer}
.ist46cec8{margin-left:4px}
.ist6216c1{padding:9px 24px;background:var(--green-deep);color:#f0ede6;border:none;border-radius:8px;cursor:pointer;font-family:var(--body-font);font-size:12px;font-weight:600;letter-spacing:0.06em;transition:background .15s}
.ist769821{padding:10px 20px;background:var(--green-deep);color:#f0ede6;border:none;border-radius:8px;cursor:pointer;font-family:var(--body-font);font-size:13px;font-weight:600}
.ist97445a{flex:1}
.ist9c2081{text-decoration:none;cursor:pointer}
.ist9e97c6{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.ista16d1a{flex-shrink:0;padding:8px 14px;background:var(--white);border:1px solid var(--rule);border-radius:8px;text-decoration:none;min-width:120px}
.istac1117{font-family:\'Space Grotesk\',sans-serif;font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px}
.istb224c6{font-family:var(--body-font);font-size:9px;color:var(--ink-muted);margin-top:2px}
.istb4b65d{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.istb8c589{font-family:var(--body-font);font-size:14px;font-weight:600;color:var(--green-deep);margin-bottom:4px}
.istcf9aa6{font-size:12px;color:var(--ink-muted);margin-bottom:12px}
.istdf22af{font-size:11px;color:var(--ink-muted);margin-top:6px}
.istf88169{color:var(--green-accent);cursor:pointer;text-decoration:underline}
.istf8ce13{color:var(--gold);text-decoration:none}
.istfd56df{font-family:var(--body-font);font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap}
.ist8df983{font-size:14px;color:var(--ink)}
.ist950e8c{color:var(--green-accent);text-decoration:underline}
.istf3bf5d{padding:14px 18px;font-size:13px;color:var(--ink-muted)}
.ist17dc12{color:var(--green-accent);margin-right:4px}
.istae6871{color:var(--gold);margin-right:4px}
.istee4095{color:var(--ink-muted);margin-right:4px}
.ist095d4f{font-family:var(--mono-font);font-size:14px;font-weight:500}
.ist13ded8{padding:6px 4px;text-align:center;font-size:9px;color:var(--ink-muted);font-weight:400}
.ist1536e0{font-family:var(--mono-font);font-size:8px;color:var(--ink-muted)}
.ist1b0f49{margin-top:16px}
.ist1ec13a{border-bottom:1.5px solid var(--rule-mid)}
.ist242199{text-align:center;padding:6px 4px}
.ist29b52a{color:#cc3333}
.ist34ee32{font-size:14px;font-weight:500;color:var(--green-deep)}
.ist36a2af{font-family:var(--mono-font);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px}
.ist46eee1{padding:6px 10px;border-bottom:1px solid var(--rule);font-weight:600}
.ist49b630{font-size:20px;font-weight:600;color:var(--green-deep)}
.ist4e330d{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ist54c2af{text-align:right}
.ist55dcfd{font-family:var(--mono-font);font-size:9px;color:var(--ink-muted)}
.ist56f435{margin-top:12px}
.ist6070e2{font-family:'DM Mono',monospace;font-size:11px;padding:6px 12px;background:var(--white);border:1px solid var(--rule);border-radius:20px}
.ist6539cf{padding:6px;text-align:center;color:var(--ink-muted)}
.ist65d73f{font-family:var(--mono-font);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px}
.ist7ee3df{padding:6px 10px;border-bottom:1px solid var(--rule);text-align:center}
.ist7fad5e{font-family:\'DM Mono\',monospace;font-size:10px;color:var(--ink-muted)}
.ista6463e{text-align:center;font-weight:500;padding:6px 4px}
.istb18b59{font-weight:600;color:var(--green-accent)}
.istb42f62{font-family:var(--mono-font);font-size:10px;color:var(--ink-muted)}
.istc47bc0{width:100%;border-collapse:collapse;font-family:var(--mono-font);font-size:11px}
.istc6b2fe{background:var(--bg-warm);border-radius:8px;padding:10px;text-align:center}
.istcee95d{text-align:center;font-weight:600;padding:6px 4px}
.istde6da7{border-bottom:1px solid var(--rule)}
.istf14198{font-family:var(--mono-font);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:8px}
.istf86c24{display:inline-block;margin-top:16px;padding:10px 22px;background:var(--green-deep);color:#f0ede6;border-radius:8px;font-family:var(--mono-font);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none}
.ist04e88e{padding:8px 6px}
.ist05e321{width:100%;border-collapse:collapse;font-size:13px}
.ist08ea42{color:var(--green-deep);font-size:14px}
.ist253a42{font-size:14px;color:var(--ink);margin-bottom:6px}
.ist52e23b{padding:24px;background:var(--bg-warm);border:1px dashed var(--rule-mid);border-radius:8px;text-align:center}
.ist545d0c{padding:7px 6px;min-width:120px}
.ist5ca44b{opacity:.4;margin-top:4px}
.ist7a2416{display:inline-block;border:1px solid var(--green-deep);color:var(--green-deep);font-weight:600}
.ist7e6c39{padding:8px 6px;text-align:right}
.ist8116a9{padding:18px;background:var(--bg-warm);border:1px dashed var(--rule-mid);border-radius:8px;text-align:center;color:var(--ink-muted);font-size:13px}
.ista09956{margin-top:14px;font-size:11px;color:var(--ink-muted);line-height:1.5}
.ista64eb1{text-align:left;border-bottom:1px solid var(--rule);color:var(--ink-muted);font-family:var(--mono-font);font-size:10px;letter-spacing:0.08em;text-transform:uppercase}
.istb4c3ad{padding:7px 6px;text-align:right}
.istba119f{display:flex;gap:18px;margin-bottom:14px;font-size:12px;color:var(--ink-mid)}
.istc824fe{font-family:var(--mono-font);font-size:10px;color:var(--ink-muted);min-width:30px;text-align:right}
.istca60ae{padding:18px;color:var(--ink-muted);font-size:13px}
.istd7acd6{padding:7px 6px;font-weight:600}
.ist00091d{background:none;border:1px dashed var(--rule-mid);border-radius:6px;padding:6px 12px;cursor:pointer;font-family:var(--body-font);font-size:11px;color:var(--ink-muted);width:100%;transition:all .15s}
.ist4818e3{width:100px;padding:5px 4px;border:1px solid var(--rule);border-radius:6px;font-size:12px;font-family:var(--body-font);color:var(--ink);background:var(--white);cursor:pointer}
.ist5093f5{width:60px;padding:6px 8px;border:1px solid var(--rule);border-radius:6px;font-size:14px;font-family:var(--body-font);text-align:center;color:var(--ink)}
.ist945166{background:none;border:none;cursor:pointer;color:var(--ink-muted);font-size:14px;padding:2px 4px;line-height:1;transition:color .15s}
.ista953a1{font-size:10px;color:var(--ink-muted)}
.istab010c{grid-column:1/-1;padding:4px 0}
.istf994ee{display:flex;align-items:center;gap:6px;padding:4px 0}
.istb2a7e2{margin-top:8px;font-size:10px;color:var(--ink-muted);font-family:var(--mono-font);letter-spacing:0.04em}
.istb3bd7d{margin-top:12px;font-size:12px;color:var(--ink-mid);display:flex;gap:18px}
.ist047a71{width:28px;height:28px;border:none;background:var(--bg);color:var(--ink-mid);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ist04e4cf{font-family:'Space Grotesk', sans-serif;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ist55503b{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-family: 'Space Grotesk', sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--white)}
.ist59eddc{flex:1;min-width:0}
.ist6b1df4{font-family: 'Space Grotesk', sans-serif;font-size:10px;color:var(--ink-muted)}
.ist8a3510{display:flex;align-items:center;gap:6px;margin-top:3px}
.ist8dc159{border:none;background:none;color:var(--ink-muted);cursor:pointer;font-size:14px;padding:2px 4px;opacity:0.5;transition:opacity .15s}
.ist94744a{display:flex;align-items:center;gap:0;border:1px solid var(--rule-mid);border-radius:6px;overflow:hidden}
.ista34a19{font-family: 'Space Grotesk', sans-serif;font-size:12px;font-weight:600;color:var(--ink);min-width:55px;text-align:right}
.ist074088{padding:6px 8px;text-align:left}
.ist100834{text-align:center;margin-top:16px;font-size:9px;color:#7a8c7e}
.ist187f61{padding:5px 8px;font-weight:600;color:#2a5235}
.ist23d890{background:#2c5046;color:rgba(255,255,255,0.85);font-size:9px;letter-spacing:0.1em;text-transform:uppercase}
.ist45a85c{font-size:11px;color:#5b6470;margin-top:4px}
.ist4ff818{font-size:18px}
.ist545290{padding:5px 8px;font-weight:500}
.ist83ae07{padding:5px 4px;text-align:center}
.ist8a90c2{text-align:center;padding:40px;color:var(--ink-muted);font-size:14px}
.ist8c2017{padding:6px 8px}
.ist98292e{padding:6px 4px;text-align:center}
.ista2a61f{width:100%;border-collapse:collapse;font-size:11px}
.ista4b162{font-family:'Space Grotesk', sans-serif;color:#1c2530}
.istafdfb7{border-top:2px solid #2c5046;font-weight:600}
.istb9199e{font-size:20px}
.istba47e7{padding:6px 4px;text-align:right}
.istc05f38{padding:5px 8px;color:#3d4f42}
.istcc65e4{padding:5px 4px;text-align:right}
.istfb6edb{font-size:18px;font-weight:700;color:#2c5046;letter-spacing:-0.01em}
.istfc4262{text-align:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #2c5046}
.istb21045{margin-left:auto;font-size:9px;letter-spacing:0.1em;color:var(--green-accent)}
.sc-status-badge{padding:4px 12px;border-radius:12px;display:inline-block;text-decoration:none}
