.theme-toggle[data-astro-cid-l6lhmie6] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-dim);
  cursor: pointer;
  transition: color .15s, border-color .15s;
}

.theme-toggle[data-astro-cid-l6lhmie6]:hover {
  color: var(--text);
  border-color: var(--border-hover);
}

.theme-toggle[data-astro-cid-l6lhmie6] svg[data-astro-cid-l6lhmie6] {
  width: 18px;
  height: 18px;
}

.icon-sun[data-astro-cid-l6lhmie6] {
  display: none;
}

:root[data-theme="dark"] .icon-moon[data-astro-cid-l6lhmie6] {
  display: none;
}

:root[data-theme="dark"] .icon-sun[data-astro-cid-l6lhmie6] {
  display: block;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .icon-moon[data-astro-cid-l6lhmie6] {
    display: none;
  }

  :root:not([data-theme="light"]) .icon-sun[data-astro-cid-l6lhmie6] {
    display: block;
  }
}
/*
  Theme: light (white) is the default look, overridable two ways — system
  preference (prefers-color-scheme) when the visitor hasn't chosen, or an
  explicit choice via [data-theme] on <html> (set by ThemeToggle.astro and
  applied pre-paint by the inline script in BaseLayout.astro) which always
  wins over system preference in either direction.
*/
:root {
  --bg: #f7f7f5;
  --bg-elevated: #ffffff;
  --surface: #eef0f2;
  --border: #dfe3e8;
  --border-hover: #c7ccd3;
  --text: #14171c;
  --text-dim: #5b6570;
  --text-soft: #333a42;
  --header-bg: rgba(247, 247, 245, 0.85);
  --shadow: rgba(20, 23, 28, 0.16);
  --accent: #ff5a3c;
  --accent-ink: #1a0d08;
  --adventure: #a8641f;
  --sport: #d81e4f;
  --offroad: #6142e0;
  --scooter: #0f9d73;
  --touring: #8a6d00;
  --cruiser: #a8291d;
  --naked: #cf3f96;
  --electric: #3f8f1f;
  --classic: #7a5c40;
  --general: #0f7fb0;
  --roundup-tint-1: rgba(255, 90, 60, 0.1);
  --roundup-tint-2: rgba(60, 200, 255, 0.1);
  --radius: 14px;
  --max-width: 90vw;
  --font-body: "Lora Variable", "Lora", Georgia, "Times New Roman", serif;
  --font-serif: "Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif;
  font-family: var(--font-body);
  font-optical-sizing: auto;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0b0d10;
    --bg-elevated: #14171c;
    --surface: #1b1f26;
    --border: #2a2f38;
    --border-hover: #3a4150;
    --text: #eef1f5;
    --text-dim: #9aa4b2;
    --text-soft: #d7dce3;
    --header-bg: rgba(11, 13, 16, 0.9);
    --shadow: rgba(0, 0, 0, 0.5);
    --adventure: #d68a2c;
    --sport: #ff3b5c;
    --offroad: #7a5cff;
    --scooter: #2cd6a0;
    --touring: #f0c419;
    --cruiser: #c0392b;
    --naked: #ff6ec7;
    --electric: #7cfc00;
    --classic: #b08968;
    --general: #3cc8ff;
    --roundup-tint-1: rgba(255, 90, 60, 0.14);
    --roundup-tint-2: rgba(60, 200, 255, 0.1);
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --bg: #0b0d10;
  --bg-elevated: #14171c;
  --surface: #1b1f26;
  --border: #2a2f38;
  --border-hover: #3a4150;
  --text: #eef1f5;
  --text-dim: #9aa4b2;
  --text-soft: #d7dce3;
  --header-bg: rgba(11, 13, 16, 0.9);
  --shadow: rgba(0, 0, 0, 0.5);
  --adventure: #d68a2c;
  --sport: #ff3b5c;
  --offroad: #7a5cff;
  --scooter: #2cd6a0;
  --touring: #f0c419;
  --cruiser: #c0392b;
  --naked: #ff6ec7;
  --electric: #7cfc00;
  --classic: #b08968;
  --general: #3cc8ff;
  --roundup-tint-1: rgba(255, 90, 60, 0.14);
  --roundup-tint-2: rgba(60, 200, 255, 0.1);
  color-scheme: dark;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

img { max-width: 100%; display: block; }

/* Visible to screen readers and search engines, not sighted visitors — for
   a page's real h1 when the visual design doesn't call for a printed page
   title (e.g. the homepage, which opens straight into the roundup/hero
   cards). */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

a { color: inherit; text-decoration: none; }

/* Editorial voice, site-wide: every real headline (article titles, card
   titles, section headers) reads as a serif headline like the roundups —
   nav links, logo, and badges are spans/anchors, not h-tags, so they're
   unaffected. */
h1, h2, h3 {
  font-family: var(--font-serif);
}

.eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--accent);
  margin-bottom: 10px;
}

.page-header {
  margin: 30px 0 8px;
}
.page-header h1 {
  font-size: clamp(2rem, 4.6vw, 2.8rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
}
.page-header p {
  color: var(--text-dim);
  font-size: 1.05rem;
  margin: 0;
}

.container {
  width: 100%;
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 50px;
}

/* ---------- Header ---------- */

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--header-bg);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}

.site-header .bar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  padding-bottom: 14px;
  gap: 24px;
}

.bar-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
  flex: 1;
  min-width: 0;
}

.logo-group {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}
.logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}
.logo img {
  height: 76px;
  width: auto;
  display: block;
}
.logo-text {
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.logo-text .dot { color: var(--accent); }

.nav {
  display: flex;
  align-items: center;
  gap: 18px;
  flex: 1;
  justify-content: center;
  flex-wrap: wrap;
}

.nav a {
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text-dim);
  transition: background 0.15s, color 0.15s;
}
.nav a:hover {
  background: color-mix(in srgb, var(--accent) 14%, var(--surface));
  color: var(--text);
}
.nav a[aria-current="page"] {
  background: var(--accent);
  color: var(--accent-ink);
}

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-dim);
  cursor: pointer;
}
.nav-toggle:hover {
  color: var(--text);
  border-color: var(--border-hover);
}
.nav-toggle svg {
  width: 18px;
  height: 18px;
}
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-menu { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }

@media (max-width: 760px) {
  .container {
    max-width: 100%;
    padding: 0 20px;
  }
  .site-header .bar {
    padding-top: 12px;
    padding-bottom: 12px;
    gap: 12px;
  }
  .bar-right { gap: 10px; }
  .logo-group { gap: 8px; }
  .logo img { height: 56px; }
  .logo-text { font-size: 0.9rem; }

  .nav-toggle { display: inline-flex; }

  .nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 2px;
    padding: 10px 20px 16px;
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    background: var(--bg-elevated);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
  }
  .nav.open { display: flex; }
  .nav a {
    padding: 10px 14px;
    border-radius: 10px;
    text-align: left;
  }
}

/* ---------- Category badges ---------- */

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, currentColor 14%, var(--bg-elevated));
  border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
}
.badge::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 6px currentColor;
}
.badge.adventure { color: var(--adventure); }
.badge.sport { color: var(--sport); }
.badge.offroad { color: var(--offroad); }
.badge.scooter { color: var(--scooter); }
.badge.touring { color: var(--touring); }
.badge.cruiser { color: var(--cruiser); }
.badge.naked { color: var(--naked); }
.badge.electric { color: var(--electric); }
.badge.classic { color: var(--classic); }
.badge.general { color: var(--general); }

/* ---------- Cards / grid ---------- */

.grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin: 24px 0;
}
@media (max-width: 900px) {
  .grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .grid { grid-template-columns: 1fr; }
}

.card {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 2px var(--shadow);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
  transform: translateY(-4px);
  border-color: var(--border-hover);
  box-shadow: 0 16px 32px -12px var(--shadow);
}

.card .thumb {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--surface);
}
.card .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.card:hover .thumb img {
  transform: scale(1.06);
}

.card .body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.card h3 {
  font-size: 1.02rem;
  line-height: 1.35;
  margin: 0;
}

.card .excerpt {
  font-size: 0.88rem;
  color: var(--text-dim);
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card .meta {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.78rem;
  color: var(--text-dim);
  padding-top: 6px;
}

/* weekly roundup callout (top of homepage) */
.roundup-callout {
  position: relative;
  display: block;
  margin-top: 24px;
  padding: 22px 26px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--roundup-tint-1), var(--roundup-tint-2));
  border: 1px solid var(--border);
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.roundup-callout::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--offroad));
}
.roundup-callout:hover {
  transform: translateY(-2px);
  border-color: var(--border-hover);
  box-shadow: 0 16px 32px -14px var(--shadow);
}
.roundup-callout-eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--accent);
  margin-bottom: 8px;
}
.roundup-callout h2 { margin: 0 0 8px; font-size: 1.4rem; }
.roundup-callout p { margin: 0; color: var(--text-dim); }
.roundup-callout p::after {
  content: "→";
  display: inline-block;
  margin-left: 6px;
  color: var(--accent);
  font-weight: 700;
  transition: transform 0.2s ease;
}
.roundup-callout:hover p::after {
  transform: translateX(4px);
}

/* hero (first item on homepage) */
.hero {
  display: grid;
  grid-template-columns: 480px 1fr;
  gap: 28px;
  margin: 20px 0 8px;
}
.hero .thumb {
  aspect-ratio: 16/9;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 20px 40px -16px var(--shadow);
}
.hero .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.hero:hover .thumb img { transform: scale(1.04); }
.hero h2 { font-size: 1.8rem; line-height: 1.2; margin: 14px 0 8px; transition: color 0.15s ease; }
.hero:hover h2 { color: var(--accent); }
@media (max-width: 760px) {
  .hero { grid-template-columns: 1fr; }
}

/* ---------- Section headings ---------- */

.section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-top: 40px;
}
.section-head h2 {
  position: relative;
  font-size: 1.8rem;
  margin: 0;
  padding-left: 14px;
}
.section-head h3 {
  position: relative;
  font-size: 1.4rem;
  margin: 0;
  padding-left: 14px;
}
.section-head h2::before,
.section-head h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  bottom: 0.15em;
  width: 4px;
  border-radius: 2px;
  background: var(--accent);
}
.section-head a {
  font-size: 0.85rem;
  color: var(--accent);
  font-weight: 600;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: text-decoration-color 0.15s ease;
  text-decoration: underline transparent;
}
.section-head a:hover {
  text-decoration-color: var(--accent);
}

/* ---------- Article page ---------- */

.article-header-grid {
  display: grid;
  grid-template-columns: 460px 1fr;
  gap: 28px;
  align-items: start;
}
.article-header-text {
  order: 2;
}
.article-hero {
  order: 1;
  position: sticky;
  top: 84px;
}
.article-hero img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--radius);
  box-shadow: 0 20px 40px -16px var(--shadow);
}
@media (max-width: 900px) {
  .article-header-grid {
    grid-template-columns: 1fr;
  }
  .article-hero {
    position: static;
    order: -1;
    max-width: 100%;
    margin-left: 0;
  }
  .article-hero img {
    aspect-ratio: 16/9;
  }
}

.article-title {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  line-height: 1.15;
  margin: 18px 0 10px;
}

.article-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  color: var(--text-dim);
  font-size: 0.9rem;
  margin-bottom: 20px;
}

.article-excerpt {
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--text-soft);
  margin-bottom: 20px;
}
.article-excerpt::first-letter {
  font-family: var(--font-serif);
  font-size: 2.8rem;
  font-weight: 600;
  float: left;
  line-height: 0.8;
  padding: 5px 7px 0 0;
  color: var(--accent);
}

.cta-out {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent);
  color: var(--accent-ink);
  font-weight: 700;
  padding: 14px 22px;
  border-radius: 10px;
  font-size: 1rem;
  margin: 8px 0 28px;
  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--accent) 70%, transparent);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.cta-out:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--accent) 80%, transparent);
}

.source-note {
  color: var(--text-dim);
  font-size: 0.85rem;
  border-top: 1px solid var(--border);
  padding-top: 16px;
  margin-top: 10px;
}

/* ---------- Ad slots ---------- */

.ad-slot {
  margin: 12px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 32px;
  background: var(--bg-elevated);
  border: 1px dashed var(--border);
  border-radius: 10px;
  color: var(--text-dim);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  overflow: hidden;
}

/* ---------- Affiliate box ---------- */

.affiliate-box {
  position: relative;
  background: linear-gradient(160deg, color-mix(in srgb, var(--accent) 6%, var(--surface)), var(--surface));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 24px;
  margin: 24px 0;
  overflow: hidden;
}
.affiliate-box::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%);
  pointer-events: none;
}
.brand-row {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.amazon-badge {
  position: relative;
  display: inline-block;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  color: var(--text);
  padding-bottom: 7px;
}
.amazon-smile {
  position: absolute;
  left: 1px;
  bottom: -1px;
  width: 78%;
  height: 9px;
}
.brand-row .tagline {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-dim);
  padding-left: 10px;
  border-left: 1px solid var(--border);
}
.affiliate-box .cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent);
  color: var(--accent-ink);
  font-weight: 700;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 0.95rem;
  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--accent) 70%, transparent);
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
.affiliate-box .cta:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -10px color-mix(in srgb, var(--accent) 80%, transparent);
}
.affiliate-box .disclosure {
  position: relative;
  margin: 14px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: 0.68rem;
  line-height: 1.4;
  color: var(--text-dim);
  opacity: 0.75;
}
.gear-row {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}
.gear-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 18px 8px 16px;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) - 4px);
  cursor: pointer;
  transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
}
.gear-tile .icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 14%, transparent);
  transition: background 0.15s, transform 0.15s;
}
.gear-tile svg {
  width: 22px;
  height: 22px;
  color: var(--accent);
}
.gear-tile span {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-soft);
}
.gear-tile:hover {
  border-color: var(--accent);
  transform: translateY(-3px);
  box-shadow: 0 10px 20px -10px var(--shadow);
}
.gear-tile:hover .icon-wrap {
  background: var(--accent);
  transform: scale(1.06);
}
.gear-tile:hover .icon-wrap svg {
  color: var(--accent-ink);
}

/* ---------- Footer ---------- */

.site-footer {
  margin-top: 60px;
  border-top: 1px solid var(--border);
  padding: 30px 0 40px;
  color: var(--text-dim);
  font-size: 0.85rem;
}
.footer-text {
  margin: 0;
}
.footer-links-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 10px 0 0;
}
.footer-links-row a {
  color: var(--accent);
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 12%, var(--surface));
  box-shadow: 0 6px 14px -8px color-mix(in srgb, var(--accent) 60%, transparent);
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.footer-links-row a:hover {
  background: var(--accent);
  color: var(--accent-ink);
  box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--accent) 80%, transparent);
  transform: translateY(-1px);
}

.social-links {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
}
.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text-dim);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.social-link svg {
  width: 17px;
  height: 17px;
}
.social-link:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink);
  transform: translateY(-2px);
}

.header-socials {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.header-socials .social-link {
  width: 30px;
  height: 30px;
  background: none;
  border: none;
}
.header-socials .social-link svg {
  width: 16px;
  height: 16px;
}
.header-socials .social-link:hover {
  background: var(--surface);
  transform: none;
  color: var(--accent);
}

/* ---------- Consent banner ---------- */

.consent-banner {
  position: fixed;
  bottom: 16px;
  left: 16px;
  right: 16px;
  max-width: 620px;
  margin: 0 auto;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  box-shadow: 0 12px 40px var(--shadow);
  z-index: 100;
}
.consent-banner p { margin: 0 0 12px; font-size: 0.88rem; color: var(--text-dim); }
.consent-banner .actions { display: flex; gap: 10px; }
.consent-banner button {
  border: none;
  border-radius: 8px;
  padding: 10px 16px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
}
.consent-banner .accept { background: var(--accent); color: var(--accent-ink); }
.consent-banner .reject { background: var(--surface); color: var(--text); border: 1px solid var(--border); }

main { flex: 1; }
/* lora-cyrillic-ext-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-cyrillic-ext-wght-normal.YcVxMP-u.woff2) format('woff2-variations');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* lora-cyrillic-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-cyrillic-wght-normal.UWPuZLjM.woff2) format('woff2-variations');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* lora-math-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-math-wght-normal.sOy7rEfW.woff2) format('woff2-variations');
  unicode-range: U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;
}

/* lora-symbols-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-symbols-wght-normal.DQ5VrUkH.woff2) format('woff2-variations');
  unicode-range: U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;
}

/* lora-vietnamese-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-vietnamese-wght-normal.CfJ7gtf3.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* lora-latin-ext-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-latin-ext-wght-normal.C2Wlntb9.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* lora-latin-wght-normal */
@font-face {
  font-family: 'Lora Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 400 700;
  src: url(/_astro/lora-latin-wght-normal.BiLcIKcI.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* fraunces-vietnamese-opsz-normal */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-vietnamese-opsz-normal.Czevyj-6.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* fraunces-latin-ext-opsz-normal */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-latin-ext-opsz-normal.CJcjJNj7.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* fraunces-latin-opsz-normal */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-latin-opsz-normal.DihXLNYH.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* fraunces-vietnamese-opsz-italic */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-vietnamese-opsz-italic.DxWqP7Ku.woff2) format('woff2-variations');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* fraunces-latin-ext-opsz-italic */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-latin-ext-opsz-italic.CGbN9UgK.woff2) format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* fraunces-latin-opsz-italic */
@font-face {
  font-family: 'Fraunces Variable';
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url(/_astro/fraunces-latin-opsz-italic.lSdLDfvT.woff2) format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}