/* Self-hosted licensed Latin fonts keep the Figma and browser typography consistent. */
@font-face {
  font-family: 'Literata';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(vendor/literata-italic-latin.woff2) format('woff2');
  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;
}
@font-face {
  font-family: 'Literata';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url(vendor/literata-normal-latin.woff2) format('woff2');
  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;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(vendor/source-sans-3-italic-latin.woff2) format('woff2');
  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;
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(vendor/source-sans-3-normal-latin.woff2) format('woff2');
  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;
}
:root {
  --cream: #F4F0E7;
  --cream-soft: #FAF7F0;
  --cream-glass: color-mix(in srgb, #F4F0E7 92%, transparent);
  --forest: #233D32;
  --forest-deep: #13241C;
  --forest-mid: #1C3229;
  --rust: #A84F32;
  --rust-ink: #8F3F25;
  --ink: #1a1a1a;
  --muted: #5a5a52;
  --muted-on-forest: #d5ddd7;
  --line: #d6d0c4;
  --media-fallback: #e8e2d6;
  --paper-mat: #f7f1e6;
  --paper-edge: #b9a78c;
  --mat-pad: 0.55rem;
  --mat-pad-bottom: 0.78rem;
  --mat-shadow:
    0 1px 1px rgba(19, 36, 28, 0.07),
    0 7px 18px -6px rgba(19, 36, 28, 0.26),
    0 18px 34px -14px rgba(19, 36, 28, 0.2);
  --space-xs: 0.5rem;
  --space-sm: 1rem;
  --space-md: 1.75rem;
  --space-lg: 3rem;
  --space-xl: 4.5rem;
  --measure: 65ch;
  --serif: "Literata", "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --tabular: "Source Sans 3", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --shadow-panel: 0 24px 50px -18px rgba(19, 36, 28, 0.5), 0 10px 24px -10px rgba(19, 36, 28, 0.3);
}

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

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }

  [data-parallax-layer] {
    transform: none !important;
  }

  .reveal-ready {
    opacity: 1 !important;
    transform: none !important;
  }
}

body {
  margin: 0;
  background: var(--forest-deep);
  color: var(--cream);
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  position: relative;
  min-height: 100vh;
}

@media (max-width: 700px) {
  body {
    font-size: 1rem;
  }
}

.scenic-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background: #6a8a9a;
}

.scenic-layer {
  position: absolute;
  inset: -14% -3% -20%;
  background-position: center bottom;
  background-size: cover;
  background-repeat: no-repeat;
  will-change: transform;
}

.scenic-layer--sky {
  background-image: url("assets/landscape-sky.svg");
  transform: scale(1.04) translate3d(0, -1.2%, 0);
}

.scenic-layer--far {
  background-image: url("assets/landscape-far.svg");
  transform: scale(1.06) translate3d(0, 0.4%, 0);
  filter: saturate(0.92);
}

.scenic-layer--mid {
  background-image: url("assets/landscape-mid.svg");
  transform: scale(1.09) translate3d(0, 1.6%, 0);
}

.scenic-layer--near {
  background-image: url("assets/landscape-near.svg");
  transform: scale(1.12) translate3d(0, 2.8%, 0);
}

.scenic-veil {
  position: absolute;
  inset: 0;
  background:
    /* The minimum veil keeps small cream text readable even over pale sky. */
    linear-gradient(180deg, rgba(19, 36, 28, 0.72) 0%, rgba(19, 36, 28, 0.72) 58%, rgba(19, 36, 28, 0.78) 100%),
    linear-gradient(90deg, rgba(19, 36, 28, 0.08) 0%, transparent 50%, rgba(19, 36, 28, 0.06) 100%);
}

.site-banner,
.site-header,
#main,
.site-footer {
  position: relative;
  z-index: 1;
}

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

a {
  color: var(--rust-ink);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--forest-deep);
}

.chapter a:hover,
.gear-module a:hover,
.article-shell a:hover {
  color: var(--forest);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
.skip-link:focus-visible {
  /* Two contrasting rings work on both paper and the scenic background. */
  outline: 3px solid var(--cream);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--forest-deep);
}

.skip-link {
  position: absolute;
  left: var(--space-sm);
  top: -3rem;
  z-index: 100;
  padding: 0.5rem 0.75rem;
  background: var(--forest);
  color: var(--cream);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.9rem;
}

.skip-link:focus,
.skip-link:focus-visible {
  top: var(--space-sm);
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.site-banner {
  border-bottom: 1px solid color-mix(in srgb, var(--cream) 18%, transparent);
  padding: 0.65rem var(--space-md);
  text-align: center;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: var(--muted-on-forest);
  background: color-mix(in srgb, var(--forest-deep) 72%, transparent);
  backdrop-filter: blur(6px);
}

.wrap {
  width: min(1120px, calc(100% - 2.5rem));
  margin-inline: auto;
}

.site-header {
  padding: var(--space-md) 0 var(--space-sm);
}

.brand-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm) var(--space-md);
  margin-bottom: var(--space-md);
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-width: 0;
}

.brand-mark {
  display: grid;
  flex: 0 0 3.25rem;
  width: 3.25rem;
  height: 3.25rem;
  place-items: center;
  border: 1px solid rgb(240 232 212 / 42%);
  border-radius: 50%;
  background: rgb(22 43 34 / 72%);
  background-image: url("assets/camp-field-mark.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 2.65rem;
  box-shadow: 0 0.35rem 1.2rem rgb(11 24 19 / 25%);
}

.brand-copy {
  min-width: 0;
}

.brand {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.4vw, 1.85rem);
  font-weight: 600;
  color: var(--cream);
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin: 0;
}

.brand a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: inherit;
  text-decoration: none;
}

.brand-note {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  color: var(--muted-on-forest);
}

.site-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.35rem;
}

.site-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--cream);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  padding: 0;
  border-bottom: 1px solid transparent;
}

.site-nav a:hover,
.site-nav a:focus-visible,
.site-nav a[aria-current="page"] {
  border-bottom-color: var(--rust);
  color: #f0c2b0;
}

/* Hero feature */

.hero-feature {
  display: grid;
  gap: var(--space-lg);
  align-items: end;
  padding: clamp(2rem, 5vw, 4rem) 0 0;
  min-height: 0;
}

.hero-copy {
  max-width: 34rem;
  color: var(--cream);
}

.hero-copy .eyebrow {
  color: #f0d9a8;
}

.hero-copy h1 {
  font-family: var(--serif);
  font-size: clamp(2.1rem, 3.6vw, 2.85rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.025em;
  color: var(--cream);
  margin: 0 0 var(--space-sm);
  text-wrap: balance;
  text-shadow: 0 2px 24px rgba(19, 36, 28, 0.45);
}

.hero-copy .lede {
  margin: 0;
  font-size: 1.12rem;
  line-height: 1.55;
  color: var(--muted-on-forest);
  max-width: 28rem;
}

.hero-actions {display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1.3rem;margin-top:1.5rem;}
.hero-actions .button,.hero-actions .hero-secondary {margin-top:0;}
.hero-secondary {display:inline-flex;align-items:center;min-height:44px;margin-top:1.5rem;color:var(--cream);font-weight:600;text-decoration-thickness:1px;text-underline-offset:.25em;}
.hero-secondary:hover {color:#f0c2b0;}
.hero-secondary:focus-visible {outline:2px solid var(--cream);outline-offset:3px;}

.button {
  display: inline-block;
  margin-top: 1.5rem;
  padding: 0.75rem 1.2rem;
  min-height: 44px;
  background: var(--rust);
  color: var(--cream);
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.button:hover {
  background: var(--cream);
  color: var(--forest-deep);
}

.button:focus-visible {
  outline-color: var(--cream);
  box-shadow: 0 0 0 3px var(--forest);
}

/* Warm paper mats: flow layout so padding and images stay aligned */
.paper-frame,
.media,
.scenic-break,
.article-photo,
.archive-pair figure,
.gear-photo {
  background: var(--paper-mat);
  padding: var(--mat-pad) var(--mat-pad) var(--mat-pad-bottom);
  border: 1px solid var(--paper-edge);
  box-shadow: var(--mat-shadow);
  box-sizing: border-box;
  align-self: start;
}

.hero-photo {
  margin: 0;
  width: 100%;
}

.media {
  margin: 0;
  position: relative;
  width: 100%;
  min-height: 0;
  overflow: hidden;
}

.media img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  inset: auto;
}

.media figcaption {
  margin: .65rem 0 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.5;
}

.hero-photo img {
  aspect-ratio: 3 / 2;
}

.chapter-photo img {
  aspect-ratio: 1600 / 1200;
}

.chapter-photo--kitchen img {
  aspect-ratio: 1600 / 1066;
}

.media.is-missing::after,
.media:not(:has(img))::after {
  content: attr(data-label);
  display: grid;
  place-items: center;
  min-height: 12rem;
  padding: var(--space-md);
  text-align: center;
  color: var(--muted);
  font-size: 0.9rem;
  background: var(--media-fallback);
}

/* Each transition owns its spacing; do not add a section margin to it. */
main > :has(+ .scenic-window) {
  margin-bottom: 0;
}

/* Scenic breathing room */

.scenic-window {
  height: clamp(3rem, 7vw, 6rem);
  margin: 0;
}

.scenic-window--short {
  height: clamp(2.5rem, 5vw, 4.5rem);
}

.scenic-break {
  margin: 0 auto var(--space-xl);
  overflow: hidden;
}

.scenic-break img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: cover;
  position: relative;
  display: block;
}

.scenic-break--portrait {
  max-width: min(28rem, 100%);
  margin-inline: auto;
}

.scenic-break--portrait img {
  aspect-ratio: 1200 / 1600;
  object-fit: cover;
  object-position: center top;
}

/* Field almanac — layered landscape scene (offline) */

.field-almanac {
  background: transparent;
  color: var(--ink);
  padding: 0;
  margin: 0 auto var(--space-xl);
  border: 0;
  box-shadow: none;
  border-radius: 0;
}

.almanac-ledge {
  background: color-mix(in srgb, var(--cream) 96%, transparent);
  color: var(--ink);
  padding: clamp(0.9rem, 2.2vw, 1.25rem) clamp(1rem, 2.4vw, 1.45rem) 0.85rem;
  border: 1px solid color-mix(in srgb, var(--cream) 55%, #cfc6b4 45%);
  border-bottom: 0;
  border-radius: 4px 4px 0 0;
  box-shadow: var(--shadow-panel);
}

.almanac-head {
  margin-bottom: 0.55rem;
}

.almanac-head h2 {
  font-family: var(--serif);
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  color: var(--forest);
  margin: 0;
  line-height: 1.15;
  letter-spacing: -0.015em;
  font-weight: 600;
}

.almanac-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.75rem;
  align-items: end;
  margin-bottom: 0.4rem;
}

.almanac-field {
  display: grid;
  gap: 0.25rem;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--forest);
}

.almanac-field select,
.almanac-field input[type="date"] {
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0;
  padding: 0.55rem 0.65rem;
  min-height: 44px;
  border: 1px solid var(--line);
  background: var(--cream-soft);
  color: var(--ink);
  min-width: 9.5rem;
  border-radius: 4px;
}

.almanac-field select:focus-visible,
.almanac-field input[type="date"]:focus-visible,
.almanac-today:focus-visible,
.almanac-help summary:focus-visible {
  outline: 2px solid var(--rust);
  outline-offset: 2px;
}

.almanac-today {
  margin-top: 0;
  padding: 0.55rem 1rem;
  min-height: 44px;
  font-size: 0.95rem;
}

.almanac-place {
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  color: var(--muted);
  font-weight: 500;
}

.almanac-noscript {
  margin: 0.5rem 0 0;
  max-width: 34rem;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--ink);
}

.almanac-scene {
  position: relative;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--paper-edge) 50%, transparent);
  border-radius: 0 0 4px 4px;
  background: #7a9aa0;
  min-height: clamp(20rem, 48vw, 26rem);
  isolation: isolate;
  box-shadow: var(--shadow-panel);
}

.almanac-scene.is-updating {
  animation: almanac-fade 0.45s ease;
}

.almanac-layers {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.almanac-layer {
  position: absolute;
  inset: -8% -2% -12%;
  background-position: center bottom;
  background-size: cover;
  background-repeat: no-repeat;
  will-change: transform;
}

.almanac-layer--sky {
  background-image: url("assets/almanac-sky.svg");
  transform: translate3d(0, -1.5%, 0) scale(1.04);
  z-index: 1;
}

.almanac-layer--far {
  background-image: url("assets/almanac-far.svg");
  transform: translate3d(0, 0.5%, 0) scale(1.05);
  z-index: 2;
}

.almanac-layer--mid {
  background-image: url("assets/almanac-mid.svg");
  transform: translate3d(0, 2%, 0) scale(1.07);
  z-index: 3;
}

.almanac-layer--near {
  background-image: url("assets/almanac-near.svg");
  transform: translate3d(0, 3.5%, 0) scale(1.1);
  z-index: 7;
  /* Keep tree crowns from covering readable type; ground covers the lower edge. */
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, transparent 52%, #000 68%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0%, transparent 52%, #000 68%, #000 100%);
}

.almanac-read-veil {
  position: absolute;
  inset: 0;
  z-index: 4;
  background:
    radial-gradient(ellipse 48% 55% at 22% 42%, rgba(19, 36, 28, 0.46), transparent 72%),
    radial-gradient(ellipse 36% 48% at 82% 46%, rgba(19, 36, 28, 0.5), transparent 70%),
    linear-gradient(180deg, rgba(19, 36, 28, 0.72) 0%, rgba(19, 36, 28, 0.72) 100%);
  pointer-events: none;
}

.almanac-stage {
  position: relative;
  z-index: 5;
  display: grid;
  gap: 1.15rem;
  padding: clamp(1.15rem, 3vw, 1.75rem) clamp(1.15rem, 3vw, 1.75rem) clamp(2.75rem, 6vw, 3.75rem);
  min-height: inherit;
  align-content: center;
}

.almanac-daylight,
.almanac-moon {
  position: relative;
  color: var(--cream);
  text-shadow: 0 1px 2px rgba(19, 36, 28, 0.45);
}

.almanac-figure-label {
  margin: 0 0 0.2rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #f4e6c0;
  letter-spacing: 0.01em;
}

.almanac-duration {
  margin: 0 0 0.55rem;
}

.almanac-duration strong {
  font-family: var(--serif);
  font-size: clamp(2.5rem, 6.5vw, 3.6rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #fff8e8;
  font-variant-numeric: tabular-nums;
}

.almanac-dawn-dusk {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.35rem;
  margin-bottom: 0.55rem;
}

.almanac-dawn-dusk > div {
  display: grid;
  gap: 0.1rem;
}

.almanac-stat-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: #f0d9a8;
}

.almanac-dawn-dusk strong {
  font-family: var(--tabular);
  font-size: 1.12rem;
  font-weight: 600;
  color: #fff8e8;
  font-variant-numeric: tabular-nums;
}

.almanac-arc-wrap {
  margin: 0;
  max-width: 20rem;
}

.almanac-arc-svg {
  display: block;
  width: 100%;
  max-width: 20rem;
  height: auto;
  margin: 0 0 0.1rem;
  overflow: visible;
  filter: drop-shadow(0 1px 1px rgba(19, 36, 28, 0.35));
}

.almanac-arc-track {
  stroke: color-mix(in srgb, #f4e6c0 55%, transparent);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-dasharray: 2 3;
}

circle.almanac-sun {
  fill: #f2c14e;
  stroke: rgba(242, 193, 78, 0.45);
  stroke-width: 3;
}

.almanac-hour-labels {
  position: relative;
  height: 0.95rem;
  margin: 0 0 0.2rem;
  font-size: 0.75rem;
  color: #efe4c8;
  font-variant-numeric: tabular-nums;
}

.almanac-hour-labels span {
  position: absolute;
  transform: translateX(-50%);
}

.almanac-strip {
  --day-start: 25%;
  --day-width: 50%;
  position: relative;
  height: 0.72rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #13241c 0%, #24362c 100%);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(244, 240, 231, 0.18);
}

.almanac-strip::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--day-start);
  width: var(--day-width);
  background: linear-gradient(90deg, #e0c07a 0%, #f4e6c0 48%, #e8d09a 100%);
  transition: left 0.55s ease, width 0.55s ease;
}

.moon-row {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.moon-disk {
  width: 4.5rem;
  height: 4.5rem;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(19, 36, 28, 0.35));
}

.moon-disk.is-alive .moon-svg {
  animation: moon-settle 0.5s ease;
}

.moon-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.moon-phase {
  margin: 0 0 0.2rem;
  font-family: var(--serif);
  font-size: 1.25rem;
  color: #fff8e8;
  font-weight: 600;
}

.moon-illum {
  margin: 0;
  font-size: 0.95rem;
  color: #efe4c8;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.almanac-moon-note {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  color: #e8dfc8;
  max-width: 16rem;
  text-shadow: 0 1px 2px rgba(19, 36, 28, 0.5);
}

.almanac-help {
  margin-top: 0.65rem;
  font-size: 0.9rem;
  color: var(--muted);
  background: color-mix(in srgb, var(--cream) 92%, transparent);
  border: 1px solid color-mix(in srgb, var(--cream) 55%, #cfc6b4 45%);
  border-radius: 4px;
  padding: 0.15rem 0.85rem 0.35rem;
}

.almanac-help summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--forest);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.almanac-help p {
  margin: 0.2rem 0 0.55rem;
  max-width: 62ch;
  line-height: 1.55;
}

@keyframes moon-settle {
  from { opacity: 0.55; transform: scale(0.96); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes almanac-fade {
  from { opacity: 0.88; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .moon-disk.is-alive .moon-svg,
  .almanac-scene.is-updating {
    animation: none;
  }
  .almanac-strip::before {
    transition: none;
  }
  .almanac-layer--sky,
  .almanac-layer--far,
  .almanac-layer--mid,
  .almanac-layer--near {
    transform: none;
  }
}

@media (min-width: 720px) {
  .almanac-scene {
    min-height: 24rem;
  }

  .almanac-stage {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.95fr);
    align-items: end;
    gap: 1.5rem 2rem;
  }

  .almanac-daylight {
    align-self: end;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .almanac-moon {
    justify-self: end;
    max-width: 17rem;
    margin-bottom: 0.35rem;
  }
}

@media (max-width: 700px) {
  .almanac-field select,
  .almanac-field input[type="date"] {
    min-width: 0;
    width: 100%;
  }

  .almanac-controls {
    display: grid;
  }

  .almanac-today {
    width: 100%;
  }

  .almanac-scene {
    min-height: 22rem;
  }

  .almanac-stage {
    gap: 1.25rem;
    align-content: end;
  }

  .almanac-duration strong {
    font-size: clamp(2.2rem, 11vw, 2.85rem);
  }

  .almanac-arc-svg {
    max-width: 100%;
  }

  .almanac-moon {
    padding-top: 0.35rem;
    border-top: 1px solid color-mix(in srgb, #f4e6c0 28%, transparent);
  }

  .almanac-layer {
    inset: -4% -1% -6%;
  }
}

/* Chapters */

.chapter {
  display: grid;
  gap: var(--space-lg);
  align-items: start;
  margin-bottom: var(--space-xl);
  color: var(--ink);
}

.chapter-copy {
  background: var(--cream-glass);
  padding: clamp(1.5rem, 3.5vw, 2.75rem);
  box-shadow: var(--shadow-panel);
  max-width: 40rem;
}

.chapter-copy--wide {
  max-width: none;
}

.chapter-label {
  margin: 0 0 0.55rem;
  font-size: 0.92rem;
  color: var(--rust-ink);
  font-weight: 600;
}

.chapter h2,
.gear-module-head h2 {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  font-weight: 600;
  color: var(--forest);
  margin: 0 0 0.75rem;
  letter-spacing: -0.015em;
  line-height: 1.15;
}

.section-kicker {
  margin: 0;
  color: var(--muted);
  font-size: 0.98rem;
}

.prose {
  max-width: var(--measure);
}

.prose p {
  margin: 0 0 1.1rem;
}

.prose p:last-child {
  margin-bottom: 0;
}

.chapter-photo {
  margin: 0;
}

.chapter-photo--kitchen {
  margin: 0;
}

.chapter--notes {
  margin-bottom: var(--space-xl);
}

.notes {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-md);
}

.note {
  padding: 0;
  border: 0;
  background: transparent;
}

.note-label {
  display: inline-block;
  margin: 0 0 0.45rem;
  font-size: 0.88rem;
  color: var(--rust-ink);
  font-weight: 600;
}

.note h3 {
  font-family: var(--serif);
  font-size: 1.2rem;
  color: var(--forest);
  margin: 0 0 0.5rem;
  line-height: 1.25;
  font-weight: 600;
}

.note h3 a {
  color: var(--forest);
}

.note p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.section-link {
  margin-top: 1.5rem;
}

/* Gear compare module */

.gear-module {
  background: color-mix(in srgb, var(--forest-mid) 78%, transparent);
  color: var(--cream);
  padding: clamp(1.5rem, 3.5vw, 2.75rem);
  margin-bottom: var(--space-xl);
  box-shadow: var(--shadow-panel);
  border: 1px solid color-mix(in srgb, var(--cream) 14%, transparent);
  backdrop-filter: blur(4px);
}

.gear-module-head {
  margin-bottom: var(--space-lg);
  max-width: 42rem;
}

.gear-module-head h2 {
  color: var(--cream);
}

.gear-module-head .section-kicker {
  color: var(--muted-on-forest);
}

.gear-module .chapter-label {
  color: #f0c2b0;
}

.gear-feature {
  border-top: 1px solid color-mix(in srgb, var(--cream) 22%, transparent);
  padding: var(--space-md) 0 var(--space-lg);
}

.gear-feature h3 {
  font-family: var(--serif);
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  margin: 0 0 0.55rem;
  color: var(--cream);
  line-height: 1.2;
}

.gear-feature-lede {
  margin: 0 0 1.1rem;
  max-width: 58ch;
  color: var(--muted-on-forest);
  font-size: 1.05rem;
}

.gear-feature-lede a {
  color: #f0c2b0;
}

.gear-support {
  display: grid;
  gap: var(--space-md);
  border-top: 1px solid color-mix(in srgb, var(--cream) 16%, transparent);
  padding-top: var(--space-md);
}

.gear-note {
  padding: 0;
}

.gear-note h3 {
  font-family: var(--serif);
  font-size: 1.2rem;
  margin: 0 0 0.45rem;
  color: var(--cream);
}

.gear-note p {
  margin: 0;
  color: var(--muted-on-forest);
  font-size: 0.98rem;
}

.gear-compare {
  border-top: 1px solid color-mix(in srgb, var(--cream) 22%, transparent);
  padding: var(--space-md) 0;
}

.gear-compare:last-child {
  padding-bottom: 0;
}

.gear-compare h3 {
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
  margin: 0 0 1rem;
  color: var(--cream);
}

.compare-grid {
  display: grid;
  gap: var(--space-md);
}

.compare-grid--feature {
  gap: var(--space-lg);
}

.compare-grid h4 {
  margin: 0 0 0.5rem;
  font-size: 0.92rem;
  color: #f0c2b0;
  font-weight: 600;
}

.compare-grid ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted-on-forest);
}

.compare-grid li {
  margin-bottom: 0.45rem;
}

.compare-grid a {
  color: #f0c2b0;
}

.gear-links {
  margin: 1rem 0 0;
  font-size: 0.95rem;
}

.gear-links a {
  color: var(--cream);
}

/* Articles over scenery */

.article-shell {
  background: var(--cream-glass);
  color: var(--ink);
  padding: clamp(1.25rem, 3vw, 2.5rem);
  margin-bottom: var(--space-lg);
  box-shadow: var(--shadow-panel);
}

.article-shell .eyebrow {
  color: var(--rust-ink);
}

.article-shell h1,
.article-shell .aside-note h2,
.article-shell .article-body h2,
.article-shell .article-body h3,
.article-shell .gear-item h2 {
  color: var(--forest);
}

.article-shell .lede,
.article-shell .aside-note,
.article-shell .source {
  color: var(--muted);
}

.eyebrow {
  margin: 0 0 var(--space-sm);
  font-size: 0.92rem;
  color: var(--rust-ink);
  font-weight: 600;
}

h1 {
  font-family: var(--serif);
  font-size: clamp(2.1rem, 4.5vw, 3.2rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--forest);
  margin: 0 0 var(--space-md);
}

.lede {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.55;
  color: var(--muted);
  max-width: 36rem;
}

.article-head {
  padding: 0.5rem 0 2rem;
  max-width: 850px;
}

.not-found-shell {
  max-width: 58rem;
  margin-block: clamp(2rem, 8vh, 6rem);
  text-align: center;
}

.not-found-shell .article-head,
.not-found-shell .lede {
  margin-inline: auto;
}

.not-found-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1rem;
}

.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  padding-bottom: 1rem;
}

.article-body {
  max-width: 40rem;
}

.article-body h2 {
  font-family: var(--serif);
  font-size: 1.75rem;
  line-height: 1.2;
  color: var(--forest);
  margin-top: 2.25rem;
  margin-bottom: 0.75rem;
}

.article-body h3 {
  font-family: var(--serif);
  font-size: 1.28rem;
  line-height: 1.3;
  color: var(--forest);
  margin-top: 1.75rem;
  margin-bottom: 0.65rem;
}

.article-body p {
  margin-bottom: 1.3rem;
}

.article-body li {
  margin-bottom: 0.7rem;
}

.article-photo {
  margin: 0 0 2rem;
  overflow: hidden;
  transform: rotate(-0.25deg);
}

.article-photo img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  position: relative;
  display: block;
  object-fit: cover;
}

.article-photo figcaption {
  font-size: 0.85rem;
  color: var(--muted);
  padding: 0.55rem 0.1rem 0;
}

.aside-note {
  border-top: 3px solid var(--rust);
  padding-top: 1rem;
  font-size: 0.95rem;
  color: var(--muted);
  align-self: start;
}

.aside-note h2 {
  font-family: var(--serif);
  color: var(--forest);
  font-size: 1.35rem;
  margin: 0 0 0.75rem;
}

.aside-note h2:not(:first-child) {
  margin-top: 1.5rem;
}

.aside-note ul {
  padding-left: 1.2rem;
}

.article-body blockquote {
  border-left: 3px solid var(--rust);
  margin: 2rem 0;
  padding: 0.4rem 1.3rem;
  font-family: var(--serif);
  font-size: 1.45rem;
  color: var(--forest);
}

.gear-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 3rem;
  padding-bottom: 1rem;
}

.gear-item {
  border-top: 1px solid var(--line);
  padding: 1.6rem 0;
}

.gear-item:target {
  box-shadow: inset 3px 0 0 var(--rust);
  padding-left: 0.9rem;
}

.gear-item h2 {
  font-family: var(--serif);
  font-size: 1.55rem;
  color: var(--forest);
  line-height: 1.15;
  margin: 0.5rem 0;
}

.gear-item p {
  margin: 0.7rem 0;
}

.source {
  font-size: 0.85rem;
}

a.source {
  display: inline-block;
  padding: 0.15rem 0 0.35rem;
}

.status {
  font-size: 0.88rem;
  color: var(--rust-ink);
  font-weight: 600;
}

.site-footer {
  border-top: 1px solid color-mix(in srgb, var(--cream) 20%, transparent);
  padding: var(--space-lg) 0 var(--space-xl);
  color: var(--muted-on-forest);
  font-size: 0.875rem;
  background: color-mix(in srgb, var(--forest-deep) 35%, transparent);
  backdrop-filter: blur(4px);
  margin-top: var(--space-md);
}

.site-footer a {
  color: var(--cream);
}

.site-footer a:hover {
  color: #f0c2b0;
}

.site-footer p {
  margin: 0;
  max-width: 36rem;
}

#main,
.section[id],
.gear-item[id],
.chapter[id],
.gear-module[id] {
  scroll-margin-top: 1.25rem;
}

.reveal-ready {
  opacity: 0;
  transform: translateY(1rem);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal-ready.is-revealed {
  opacity: 1;
  transform: none;
}

@media (min-width: 900px) {
  .hero-feature {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: center;
  }

  .chapter--story {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  }

  .chapter--notes {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    align-items: start;
  }

  .compare-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
  }

  .compare-grid--feature {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  }

  .gear-support {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-lg);
  }
}

@media (min-width: 720px) {
  .notes {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

@media (max-width: 800px) {
  .article-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (max-width: 700px) {
  .wrap {
    width: min(1120px, calc(100% - 2rem));
  }

  .site-banner {
    padding: 0.65rem 1rem;
  }

  .site-header {
    padding-top: var(--space-sm);
  }

  .brand-row {
    margin-bottom: var(--space-sm);
  }

  .brand-lockup {
    gap: 0.65rem;
  }

  .brand-mark {
    flex-basis: 2.8rem;
    width: 2.8rem;
    height: 2.8rem;
    background-size: 2.3rem;
  }

  .brand-note {
    display: none;
  }

  .brand-row {
    gap: 0.35rem;
  }

  .site-nav {
    width: 100%;
  }

  .site-nav ul {
    justify-content: space-between;
    gap: 0 0.75rem;
  }

  .site-nav a {
    font-size: 0.9rem;
  }

  .hero-feature {
    min-height: 0;
    padding-bottom: 0;
  }

  .hero-copy h1 {
    font-size: clamp(1.85rem, 8.4vw, 2.4rem);
  }

  .scenic-layer {
    transform: scale(1.03) !important;
  }

  .scenic-window {
    height: 2.75rem;
  }

  .gear-grid {
    grid-template-columns: 1fr;
  }

  .article-head {
    padding-bottom: 1.5rem;
  }

  .article-body blockquote {
    font-size: 1.25rem;
  }
}

@media print {
  .site-banner,
  .skip-link,
  .site-nav,
  .scenic-backdrop,
  .scenic-window {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
  }

  .hero-copy,
  .brand,
  .site-nav a,
  .gear-module,
  .gear-module-head h2,
  .gear-compare h3 {
    color: #000;
    text-shadow: none;
  }

  .chapter-copy,
  .gear-module,
  .article-shell,
  .hero-photo,
  .scenic-break {
    box-shadow: none;
    background: #fff;
  }

  a {
    color: #000;
    text-decoration: underline;
  }

  .pack-zone {
    break-inside: avoid;
  }

  .pack-choice input {
    accent-color: #000;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}

/* Original archive photos, each with a distinct editorial role. */
.archive-pair { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem 2rem; align-items:start; margin-block:0 4rem; color:var(--cream); }
.archive-pair > div {grid-column:1 / -1; max-width:38rem;}
.archive-pair h2 {font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);line-height:1.15;margin:.5rem 0;}
.archive-pair figure,.gear-photo {margin:0; overflow:hidden; color:var(--ink);}
.archive-pair img {width:100%;height:auto;aspect-ratio:auto;object-fit:cover;display:block;}
.archive-pair figcaption,.gear-photo figcaption {font-size:.85rem;padding:.55rem .1rem 0;color:var(--muted);}
.gear-photo {
  width:min(100%, 25rem);
  margin:1.5rem auto 2rem;
  overflow:hidden;
}
.gear-photo--field { width:min(100%, 31rem); }
.gear-photo img {width:100%;height:auto;object-fit:contain;display:block;}
/* Approved archive sequences: natural frames, stable mats and native links. */
.photo-note {margin-block:2.75rem;min-width:0;scroll-margin-top:2rem;}
.photo-note > header {max-width:68ch;margin-bottom:1.25rem;}
.photo-note h2 {font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;margin:.35rem 0 1rem;}
.photo-note h3 {font-size:1.3rem;line-height:1.3;margin:.35rem 0 1rem;}
.photo-note .eyebrow {color:var(--rust-ink);}
.photo-note-hint {font-size:.85rem;color:var(--muted);margin:.5rem 0 0;}
.photo-note-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start;}
.photo-note-frame {margin:0;min-width:0;padding:var(--mat-pad) var(--mat-pad) var(--mat-pad-bottom);background:var(--paper-mat);border:1px solid var(--paper-edge);box-shadow:var(--mat-shadow);color:var(--ink);box-sizing:border-box;}
.photo-note-frame a {display:block;}
.photo-note-frame a:focus-visible {outline:3px solid var(--rust-ink);outline-offset:4px;}
.photo-note-frame img {display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;}
.photo-note-frame figcaption {padding:.65rem .1rem 0;font-size:.85rem;line-height:1.5;color:var(--muted);overflow-wrap:anywhere;}
.photo-note-grid > figure:last-child:nth-child(odd):not(:first-child) {grid-column:1 / -1;width:min(100%,32rem);justify-self:center;}
.photo-note--single .photo-note-grid {grid-template-columns:minmax(0,1fr);max-width:34rem;margin-inline:auto;}
.guide-page > .photo-note {background:var(--cream-soft);color:var(--ink);padding:clamp(1.25rem,4vw,3.25rem);box-shadow:var(--shadow-panel);}
.photo-note--scenery {color:var(--cream);margin-block:0 4rem;}
.photo-note--scenery .eyebrow,.photo-note--scenery .photo-note-hint {color:var(--cream);}
.photo-note--scenery .photo-note-grid {max-width:none;}
.photo-note-related {display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:1rem;}
.photo-note-related a {display:inline-flex;align-items:center;min-height:44px;color:var(--rust-ink);font-weight:700;text-underline-offset:.2em;}
@media(max-width:700px){
  .photo-note {margin-block:2rem;}
  .photo-note-grid {grid-template-columns:minmax(0,1fr);gap:1.25rem;}
  .photo-note-grid > figure:last-child:nth-child(odd):not(:first-child) {grid-column:auto;width:100%;}
  .photo-note--scenery {margin-block:0 2.5rem;}
}
@media print {.packing-shell .photo-note {display:none;}}
@media(max-width:700px){
  .archive-pair{grid-template-columns:1fr;gap:1.25rem;margin-block:0 2.5rem;}
}

/* Buying details stay part of the field notes, with the same paper and ink. */
.gear-index {display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:1.5rem 0;}
.gear-index a {display:inline-flex;align-items:center;min-height:44px;}
.buying-note {max-width:70ch;margin:0 0 2rem;color:var(--muted);}
.evidence-tag {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rust-ink);
}
.pack-zone {
  margin: 0 0 2rem;
  scroll-margin-top: 1.25rem;
}
.pack-list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  border-top: 1px solid var(--line);
}
.pack-row {
  margin: 0;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--line);
}
.pack-item-name {
  margin: 0 0 0.55rem;
  font-weight: 600;
  color: var(--ink);
}
.pack-examples {
  display: block;
  font-weight: 400;
  color: var(--muted);
  font-size: 0.92rem;
  margin-top: 0.2rem;
}
.pack-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
}
.pack-choice {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 44px;
  padding: 0 0.7rem 0 0.55rem;
  border: 1px solid var(--line);
  background: var(--cream-soft);
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 600;
}
.pack-choice input {
  width: 1.1rem;
  height: 1.1rem;
  margin: 0;
  accent-color: var(--forest);
}
.pack-note {
  margin: 0.85rem 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}
.pack-table-wrap {
  overflow-x: auto;
  margin: 0 0 1rem;
}
.pack-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.pack-table th,
.pack-table td {
  text-align: left;
  vertical-align: top;
  padding: 0.7rem 0.75rem 0.7rem 0;
  border-bottom: 1px solid var(--line);
}
.pack-table thead th {
  color: var(--forest);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pack-table tbody th {
  font-weight: 600;
  color: var(--ink);
  padding-right: 1rem;
}
.pack-table--sources tbody th {
  min-width: 12rem;
}
.equipment-guide {margin:2rem 0 2.75rem;border-top:3px solid var(--forest);scroll-margin-top:1.25rem;}
.equipment-guide-head {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0 2rem;padding:1.3rem 0 1.6rem;}
.equipment-guide-head .eyebrow {grid-column:1 / -1;margin-bottom:.3rem;}
.equipment-guide-head h2 {font-family:var(--serif);font-size:clamp(1.55rem,3vw,2.25rem);line-height:1.15;letter-spacing:-.015em;color:var(--forest);margin:0;}
.equipment-guide-head > p:last-child {margin:.1rem 0 0;max-width:42ch;color:var(--muted);}
.equipment-ledger {border-bottom:1px solid var(--line);}
.gear-decision {display:grid;grid-template-columns:minmax(5.5rem,.4fr) minmax(0,1.12fr) minmax(0,1fr);gap:1.2rem;padding:1.35rem 0;border-top:1px solid var(--line);}
.gear-decision-kind {margin:.2rem 0 0;color:var(--rust-ink);font-size:.78rem;font-weight:700;letter-spacing:.085em;text-transform:uppercase;}
.gear-decision h3 {margin:0 0 .5rem;font-family:var(--serif);font-size:1.22rem;line-height:1.25;color:var(--forest);}
.gear-decision p {margin:0 0 .65rem;line-height:1.5;}
.gear-decision a {display:inline-flex;align-items:center;min-height:44px;font-size:.94rem;font-weight:600;}
.gear-decision-product {padding-left:1.2rem;border-left:1px solid var(--line);}
.gear-decision-label {color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.01em;}
.equipment-guide-foot {max-width:65ch;margin:1rem 0 0;color:var(--muted);font-size:.92rem;}
.gear-field-note {margin:1.35rem 0 1.5rem;padding:1.05rem 1.15rem;background:var(--cream-soft);border-left:3px solid var(--rust);}
.gear-field-note h3 {margin:0 0 .7rem;color:var(--forest);font-family:var(--serif);font-size:1.12rem;line-height:1.35;}
.gear-field-note dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1.1rem;margin:0;}
.gear-field-note dl > div:last-child {grid-column:1 / -1;}
.gear-field-note dl > div {min-width:0;}
.gear-field-note dt {margin:0 0 .25rem;color:var(--forest);font-size:.82rem;font-weight:700;letter-spacing:.025em;}
.gear-field-note dd {margin:0;color:var(--ink);font-size:.92rem;line-height:1.55;}
.gear-quick-take {margin:1.35rem 0 1.5rem;padding:1.1rem 1.2rem 1.3rem;background:var(--paper-mat);border:1px solid var(--paper-edge);box-shadow:var(--mat-shadow);color:var(--ink);}
.gear-quick-take h3 {margin:0 0 .65rem;color:var(--forest);font-family:var(--serif);font-size:1.18rem;line-height:1.3;font-weight:600;}
.quick-take-verdict {margin:0 0 1.05rem;font-size:.98rem;line-height:1.55;}
.quick-take-part {margin:0 0 1.05rem;}
.quick-take-part h4 {margin:0 0 .5rem;color:var(--rust-ink);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.quick-take-part ul {margin:0;padding-left:1.15rem;}
.quick-take-part li {margin-bottom:.4rem;line-height:1.5;}
.quick-take-part li:last-child {margin-bottom:0;}
.quick-take-who,.quick-take-longterm {margin:0 0 1.05rem;font-size:.95rem;line-height:1.55;}
.quick-take-longterm {margin-bottom:0;}
.quick-take-who strong,.quick-take-longterm strong {color:var(--forest);}
.gear-specs {border-block:1px solid var(--line);padding-block:1.15rem;margin-block:1.5rem;}
.gear-specs h3 {font-family:var(--serif);color:var(--forest);margin:0 0 1rem;font-size:1.2rem;line-height:1.35;}
.gear-specs dl {margin:0;}
.gear-specs dl > div {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line);}
.gear-specs dt {font-weight:600;}
.gear-specs dd {margin:0;font-variant-numeric:tabular-nums;}
.gear-specs .gear-shop {display:inline-flex;align-items:center;min-height:44px;margin-top:.5rem;font-weight:600;}
.chairs-others {margin-top:1rem;}
/* "Another option" block inside the dark fire-safety module: use the module's on-forest colours. */
.gear-module .gear-specs {border-top:1px solid color-mix(in srgb, var(--cream) 22%, transparent);padding-top:var(--space-md);}
.gear-module .gear-specs h3 {color:var(--cream);}
.gear-module .gear-specs .guide-status {color:#f0c2b0;}
.gear-module .gear-specs a {color:#f0c2b0;}
.gear-module .gear-specs a:hover {color:var(--cream);}
.gear-module .gear-specs .buying-note {color:var(--muted-on-forest);}
.gear-module .gear-specs .buying-note strong {color:var(--cream);}
@media(max-width:450px){.gear-specs dl > div{grid-template-columns:1fr;gap:.2rem;}}
@media(max-width:800px){.gear-field-note dl{grid-template-columns:1fr;gap:.7rem;}}
@media(max-width:900px){.gear-decision{grid-template-columns:minmax(5.5rem,.35fr) minmax(0,1fr);}.gear-decision-product{grid-column:2;}}
@media(max-width:600px){.equipment-guide-head,.gear-decision{grid-template-columns:1fr;gap:.45rem;}.gear-decision-product{grid-column:1;padding:1rem 0 0;border-left:0;border-top:1px solid var(--line);}.gear-decision-kind{margin:0 0 .15rem;}}

/* A product-first index, with a distinct archive photograph for each guide. */
.guide-index {margin-block:clamp(3rem,7vw,6rem) 4rem;scroll-margin-top:1rem;}
.guide-index-head {display:grid;grid-template-columns:minmax(0,1.15fr) minmax(16rem,.85fr);align-items:end;gap:1rem 3rem;margin-bottom:1.5rem;color:var(--cream);}
.guide-index-head .eyebrow,.guide-cover .eyebrow {color:#f0d9a8;}
.guide-index .section-link a {color:var(--cream);}
.guide-index h2 {font-family:var(--serif);font-size:clamp(2rem,4.3vw,3.5rem);line-height:1.1;letter-spacing:-.025em;max-width:16ch;margin:.3rem 0;}
.guide-index-head > p {color:var(--muted-on-forest);line-height:1.55;max-width:44ch;margin:0 0 .2rem;}
.guide-card-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;}
.guide-card {display:flex;flex-direction:column;grid-column:span 2;min-width:0;background:var(--paper-mat);box-shadow:var(--mat-shadow);}
.guide-card:nth-child(1),.guide-card:nth-child(2) {grid-column:span 3;}
.guide-card-link {display:flex;flex-direction:column;flex:1;color:var(--ink);text-decoration:none;border:1px solid var(--paper-edge);padding:.5rem;transition:transform .25s ease,box-shadow .25s ease;}
.guide-card-topics {display:flex;flex-wrap:wrap;gap:.15rem 1rem;padding:.15rem 1.3rem .7rem;border-inline:1px solid var(--paper-edge);border-bottom:1px solid var(--paper-edge);}
.guide-card-topics a {display:inline-flex;align-items:center;min-height:44px;font-size:.9rem;font-weight:700;color:var(--rust-ink);text-underline-offset:.2em;}
.guide-card-link:hover {transform:translateY(-4px);box-shadow:0 20px 36px -20px rgba(0,0,0,.65);}
.guide-card-link:focus-visible {outline:3px solid var(--rust);outline-offset:3px;}
.guide-card-image {display:block;overflow:hidden;background:#c8c8bd;aspect-ratio:1.55;}
.guide-card-image img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.guide-card-link:hover img {transform:scale(1.035);}
.guide-card-copy {display:grid;gap:.35rem;padding:1rem .8rem .85rem;flex:1;align-content:start;}
.guide-card-kicker,.guide-status {color:var(--rust-ink);font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;}
.guide-card-copy strong {font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.18;color:var(--forest);}
.guide-card-copy > span:nth-child(2) {line-height:1.45;color:var(--muted);}
.guide-card-cta {align-self:end;margin-top:.7rem;color:var(--rust-ink);font-weight:700;}

.guide-page {padding-top:1.4rem;}
.guide-breadcrumb {color:var(--muted-on-forest);font-size:.9rem;margin-bottom:1rem;}
.guide-breadcrumb a {color:var(--cream);}
.guide-cover {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,3.8rem);align-items:center;margin-bottom:3rem;}
.guide-cover-copy h1 {font-family:var(--serif);font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.04;letter-spacing:-.03em;margin:.45rem 0 1.3rem;text-wrap:balance;color:var(--cream);}
.guide-cover-copy .lede {color:var(--muted-on-forest);font-size:1.1rem;line-height:1.55;max-width:49ch;}
.guide-cover-question {border-left:3px solid #df9a6a;padding:.3rem 0 .3rem 1rem;margin-top:1.8rem;max-width:42ch;}
.guide-cover-question strong {color:#f0c2b0;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;}
.guide-cover-photo {margin:0;background:var(--paper-mat);padding:var(--mat-pad) var(--mat-pad) var(--mat-pad-bottom);border:1px solid var(--paper-edge);box-shadow:var(--mat-shadow);transform:rotate(.6deg);}
.guide-cover-photo img {display:block;width:100%;height:clamp(19rem,41vw,35rem);object-fit:cover;object-position:center;}
.guide-products {background:var(--cream-soft);color:var(--ink);padding:clamp(1.25rem,4vw,3.25rem);box-shadow:var(--shadow-panel);}
.guide-products-head {display:grid;grid-template-columns:1fr 1fr;gap:1rem 3rem;align-items:end;border-bottom:3px solid var(--forest);padding-bottom:1.4rem;}
.guide-products-head .eyebrow {color:var(--rust-ink);}
.guide-products-head h2,.guide-more h2 {font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.13;color:var(--forest);margin:.3rem 0;}
.guide-products-head > p {margin:0;color:var(--muted);font-size:.94rem;max-width:46ch;}
.guide-product {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.4rem 3rem;border-bottom:1px solid var(--line);padding:1.9rem 0;scroll-margin-top:1rem;}
.guide-product h3 {font-family:var(--serif);font-size:clamp(1.35rem,2.3vw,1.85rem);line-height:1.2;color:var(--forest);margin:.15rem 0 .2rem;}
.guide-product-intro > p:last-child {margin:.75rem 0 0;max-width:52ch;}
.guide-product-role {color:var(--muted);font-weight:600;margin:0;}
.guide-product-data {border-left:1px solid var(--line);padding-left:2rem;}
.guide-product-data h4 {margin:0 0 .4rem;color:var(--forest);font-size:.92rem;text-transform:uppercase;letter-spacing:.05em;}
.guide-product-data ul {margin:.4rem 0 1rem;padding-left:1.25rem;}
.guide-product-data li {margin-bottom:.2rem;}
.guide-product-data p {margin:.6rem 0;}
.guide-product-links {display:flex;flex-wrap:wrap;gap:.25rem 1.3rem;margin-top:.7rem;}
.guide-product-links a,.guide-more a {display:inline-flex;align-items:center;min-height:44px;color:var(--rust-ink);font-weight:700;text-underline-offset:.22em;}
.guide-disclosure {background:var(--forest);padding:1.4rem 2rem;margin:1.5rem 0 2.5rem;color:var(--muted-on-forest);}
.guide-disclosure h2 {font-family:var(--serif);font-size:1.35rem;margin:0 0 .35rem;color:var(--cream);}
.guide-disclosure p {margin:0;max-width:90ch;}
.guide-more {background:var(--paper-mat);color:var(--ink);padding:1.2rem 2rem;display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;align-items:center;}
.guide-more h2 {flex-basis:100%;font-size:1.45rem;}
/* Buying decisions stay visible without tabs, accordions or JavaScript. */
.guide-decisions {background:var(--paper-mat);color:var(--ink);padding:clamp(1.25rem,4vw,3.25rem);margin-bottom:1.5rem;box-shadow:var(--shadow-panel);scroll-margin-top:1rem;}
.guide-decisions h2 {font-family:var(--serif);color:var(--forest);font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.15;margin:0 0 .7rem;}
.guide-decisions > p {max-width:65ch;color:var(--muted);margin:0 0 1.5rem;}
.decision-list {list-style:none;padding:0;margin:0;border-top:3px solid var(--forest);}
.decision-row {display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,1.1fr);gap:1rem 2rem;border-bottom:1px solid var(--line);padding:1.3rem 0;}
.decision-row a {display:inline-flex;min-height:44px;align-items:center;font-family:var(--serif);font-weight:700;color:var(--forest);font-size:1.25rem;line-height:1.25;text-underline-offset:.2em;}
.decision-row span {display:block;color:var(--muted);font-size:.85rem;margin-top:.3rem;}
.decision-row p {margin:0;font-size:.95rem;line-height:1.5;}
.decision-row strong {display:block;color:var(--forest);margin-bottom:.25rem;font-size:.8rem;}
.guide-constraint {border-left:3px solid var(--rust);padding-left:.8rem;}
.guide-check-date {font-size:.8rem;color:var(--muted);}
.guide-product h4 {margin:1.25rem 0 .4rem;color:var(--forest);font-size:.95rem;}
.guide-detail-photo {margin:1rem 0;background:var(--paper-mat);border:1px solid var(--paper-edge);padding:.45rem .45rem .6rem;}
.guide-detail-photo a {display:block;}
.guide-detail-photo img {display:block;width:100%;height:auto;}
.guide-detail-photo figcaption {color:var(--muted);font-size:.8rem;line-height:1.4;padding:.5rem .25rem 0;}
.guide-photo-pending {display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.1rem 1.1rem 1.2rem;border:1px dashed var(--paper-edge);color:var(--forest);}
.guide-photo-pending svg {color:var(--rust-ink);}
.guide-photo-pending p {margin:0;font-size:.95rem;line-height:1.45;color:var(--muted);}
.guide-photo-pending .guide-photo-pending-title {font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--forest);}
.guide-product-archive {grid-column:1 / -1;min-width:0;border-top:1px solid var(--line);}
.guide-product-archive .photo-note {margin-block:1.5rem 0;}
.guide-source-disclosure {font-size:.8rem;color:var(--muted);margin-top:.4rem;}
.guide-shopping {border-top:1px solid var(--line);margin-top:1.3rem;padding-top:.8rem;}
.guide-shopping p {font-size:.85rem;max-width:50ch;}
.guide-shopping .button {margin-top:.5rem;max-width:100%;}
.guide-disclosure a {color:var(--cream);}
.guide-questions {padding:clamp(1.25rem,4vw,3.25rem);margin-top:1.5rem;background:var(--cream-soft);color:var(--ink);}
.guide-questions h2 {font-family:var(--serif);color:var(--forest);font-size:1.8rem;margin:0 0 1rem;}
.guide-questions h3 {font-size:1.15rem;line-height:1.35;color:var(--forest);margin:1.2rem 0 .4rem;}
.guide-questions p {max-width:75ch;margin:0;}
#river-pro-work-fridge p + p { margin-top: .9rem; }
.shopping-feature {display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,3.5rem);background:var(--cream-soft);color:var(--ink);padding:clamp(1.25rem,3vw,2.5rem);margin-block:3rem;box-shadow:var(--shadow-panel);align-items:center;}
.shopping-feature-photo {margin:0;background:var(--paper-mat);padding:var(--mat-pad);border:1px solid var(--paper-edge);}
.shopping-feature-photo img {display:block;width:100%;height:auto;}
.shopping-feature-photo figcaption {color:var(--muted);font-size:.8rem;margin-top:.6rem;}
.shopping-feature-copy .eyebrow {color:var(--rust-ink);}
.shopping-feature h2 {font-family:var(--serif);color:var(--forest);font-size:clamp(1.9rem,3vw,3rem);line-height:1.12;margin:.3rem 0 1rem;text-wrap:balance;}
.shopping-feature .button {margin-top:.4rem;}
.chair-spec-comparison {display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-block:1px solid var(--line);padding-block:1rem;margin-block:1.25rem;}
.chair-spec-comparison dt {color:var(--forest);font-weight:600;font-size:.9rem;}
.chair-spec-comparison dd {margin:.25rem 0 0;font-family:var(--serif);font-size:1.7rem;color:var(--forest);}
.chair-spec-comparison dd span {display:block;font-family:var(--sans);font-size:.8rem;color:var(--muted);line-height:1.4;}
.shopping-feature-disclosure {font-size:.82rem;color:var(--muted);margin-top:1rem;}
@media(max-width:900px){.guide-card {grid-column:span 3;}.guide-card:nth-child(1),.guide-card:nth-child(2){grid-column:span 3;}.decision-row{gap:1rem;}}
@media(min-width:701px) and (max-width:900px){.guide-product{grid-template-columns:1fr;}.guide-product-data{border-left:0;border-top:1px solid var(--line);padding:1rem 0 0;}.guide-detail-photo{max-width:28rem;}}
@media(max-width:700px){.guide-index-head,.guide-cover,.guide-products-head,.guide-product,.shopping-feature,.decision-row {grid-template-columns:1fr;}.guide-index{margin-block:2.5rem 3rem;}.guide-index-head{gap:.7rem;}.guide-card-grid{grid-template-columns:1fr;}.guide-card,.guide-card:nth-child(1),.guide-card:nth-child(2){grid-column:auto;}.guide-card-image{aspect-ratio:1.8;}.guide-cover-photo img{height:clamp(15rem,75vw,25rem);}.guide-product-data{border-left:0;border-top:1px solid var(--line);padding:1rem 0 0;}.guide-disclosure,.guide-more{padding:1.25rem;}.decision-row{gap:.7rem;padding-block:1.15rem;}}

/* Packing tool: a photographed field note with a practical paper checklist. */
.packing-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3.5rem);
  padding-block: .5rem 2rem;
  border-bottom: 1px solid var(--line);
}
.packing-intro .article-head { padding: 0; }
.packing-intro .lede { max-width: 38ch; }
.packing-photo { margin: 0; transform: none; }
.packing-photo img { display: block; width: 100%; height: auto; }
.packing-photo figcaption { padding-top: .6rem; font-size: .85rem; color: var(--muted); }
.packing-jump { display: inline-flex; align-items: center; min-height: 44px; margin-top: .8rem; font-weight: 600; }
.packing-shell .article-body { min-width: 0; }
.packing-shell .pack-storage, .packing-shell .pack-print-tip { color: var(--muted); font-size: .92rem; }
.pack-toolbar { border-block: 1px solid var(--paper-edge); padding: 1rem 0; margin-bottom: .8rem; }
.packing-shell .pack-progress { margin: 0 0 .65rem; color: var(--forest); font-weight: 600; font-variant-numeric: tabular-nums; }
.pack-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.pack-actions button {
  min-height: 44px;
  padding: .5rem .8rem;
  border: 1px solid var(--forest);
  border-radius: 0;
  background: var(--cream-soft);
  color: var(--forest);
  font: 600 .95rem var(--sans);
  cursor: pointer;
}
.pack-actions button:hover { background: var(--paper-mat); }
.pack-actions [data-pack-print] { background: var(--forest); color: var(--cream); }
.pack-actions [data-pack-print]:hover { background: var(--forest-deep); }
.pack-actions [hidden], .pack-toolbar[hidden] { display: none; }
.packing-shell .pack-row { margin: 0; padding: 1rem 0; }
.packing-shell .pack-item-name { margin: 0 0 .55rem; line-height: 1.4; }
.pack-choice:has(input:checked) { border-color: var(--forest); background: #e2e9de; }
.pack-choice:has(input:focus-visible) { outline: 2px solid var(--forest); outline-offset: 3px; }
.packing-shell .pack-note { margin-top: .8rem; line-height: 1.6; }
.packing-shell .pack-table { overflow-wrap: anywhere; }
@media (max-width: 860px) {
  .packing-intro { grid-template-columns: 1fr; }
  .packing-intro .lede { max-width: 50ch; }
  .packing-photo { max-width: 32rem; }
}
@media (max-width: 380px) {
  .packing-shell .pack-choices { gap: .3rem; }
  .packing-shell .pack-choice { gap: .3rem; padding-inline: .4rem; font-size: .85rem; }
}
@media print {
  body:has(.packing-shell) .site-header,
  body:has(.packing-shell) .site-footer,
  .packing-shell .packing-photo,
  .packing-shell .aside-note,
  .packing-shell .pack-toolbar,
  .packing-shell .pack-storage,
  .packing-shell .pack-print-tip,
  .packing-shell .packing-jump,
  .packing-shell .gear-index { display: none !important; }
  .packing-shell { padding: 0; margin: 0; max-width: none; width: 100%; font-size: 10pt; }
  .packing-shell .article-layout, .packing-intro { display: block; padding: 0; }
  .packing-shell .article-body { max-width: none; }
  .packing-shell .article-head { padding-bottom: .5rem; }
  .packing-shell h1 { font-size: 24pt; }
  .packing-shell .article-head .lede { max-width: none; font-size: 10pt; }
  .packing-shell .article-body h2 { margin: 1rem 0 .4rem; font-size: 16pt; break-after: avoid; }
  .packing-shell .article-body h3 { margin: .8rem 0 .3rem; font-size: 12pt; break-after: avoid; }
  .packing-shell .article-body p { margin-bottom: .5rem; }
  .packing-shell .pack-zone { break-inside: auto; margin-bottom: .8rem; }
  .packing-shell .pack-row { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .3rem 0; break-inside: avoid; }
  .packing-shell .pack-item-name { margin: 0; flex: 1; }
  .packing-shell .pack-choices { flex-wrap: nowrap; gap: .3rem; }
  .packing-shell .pack-choice { min-height: 0; padding: .2rem .3rem; font-size: 9pt; background: #fff; border-color: #999; }
  .packing-shell .pack-choice input { width: .8rem; height: .8rem; }
  .packing-shell .pack-table-wrap { overflow: visible; }
  .packing-shell .pack-table { font-size: 10pt; }
  .packing-shell .pack-table tr { break-inside: avoid; }
  .packing-shell a { overflow-wrap: anywhere; }
}

/* Compact evidence-led comparisons use the existing forest and paper tokens. */
.guide-comparison {background:var(--paper-mat);color:var(--ink);padding:clamp(1.25rem,4vw,3.25rem);margin-block:1.5rem;border:1px solid var(--paper-edge);scroll-margin-top:1rem;}
.guide-comparison h2 {font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.15;color:var(--forest);margin:0 0 .65rem;text-wrap:balance;}
.comparison-intro {max-width:65ch;margin:0 0 1.5rem;}
.comparison-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:1.5rem 2.5rem;}
.comparison-options li:first-child:nth-last-child(3) {grid-column:1 / -1;}
.comparison-options li {min-width:0;border-top:2px solid var(--forest);padding-top:1rem;}
.comparison-options h3 {font-family:var(--serif);font-size:1.45rem;line-height:1.25;margin:.4rem 0 .7rem;}
.comparison-options h3 a {display:inline-flex;align-items:center;min-height:44px;color:var(--forest);text-decoration-thickness:1px;text-underline-offset:.2em;}
.comparison-status {color:var(--rust-ink);font-size:.8rem;margin:0;}
.comparison-fact {font-weight:700;color:var(--forest);}
.comparison-options p {font-size:.95rem;line-height:1.5;}
@media (max-width:700px) {.comparison-options {grid-template-columns:1fr;gap:1.15rem;}}

/* Gear desk: editorial discovery and compact buying decisions. */
.pub-discovery {margin-block:3.5rem 4rem;background:var(--paper-mat);color:var(--ink);padding:clamp(1.2rem,3vw,2.8rem);box-shadow:var(--mat-shadow);border-top:4px solid var(--rust);}
.pub-section-head {display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.6rem;}
.pub-section-head h2 {font-family:var(--serif);font-size:clamp(1.65rem,3vw,2.7rem);line-height:1.12;max-width:20ch;margin:.4rem 0;letter-spacing:-.025em;}
.pub-section-head > p {max-width:32ch;color:var(--muted);margin:0;}
.pub-section-head a {min-height:44px;display:inline-flex;align-items:center;}
.pub-entry-grid {display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.5rem;}
.pub-entry {color:var(--ink);text-decoration:none;display:grid;align-content:start;gap:1rem;min-width:0;}
.pub-entry > img {width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;display:block;border:6px solid #eee5d6;}
.pub-entry > span {display:grid;gap:.5rem;padding:0 .2rem;}
.pub-entry strong {font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.2;color:var(--forest);}
.pub-entry b {color:var(--rust-ink);font-weight:600;}
.pub-entry:hover strong {text-decoration:underline;text-underline-offset:.2em;}
.pub-comparison-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;}
.pub-editorial-card {min-width:0;}
.pub-editorial-card a {color:var(--ink);text-decoration:none;display:grid;gap:.8rem;background:var(--paper-mat);padding:.5rem;}
.pub-editorial-image {display:block;background:#e9e0d1;}
.pub-editorial-image img {display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:contain;}
.pub-editorial-copy {display:grid;gap:.5rem;padding:.5rem;}
.pub-editorial-copy .eyebrow {font-size:.8rem;}
.pub-editorial-copy strong {font-family:var(--serif);font-size:1.3rem;line-height:1.25;color:var(--forest);}
.pub-detail-link {font-weight:600;color:var(--rust-ink);text-underline-offset:.22em;display:inline-flex;align-items:center;min-height:44px;}
.pub-disclosure {font-size:.95rem;color:var(--muted);max-width:85ch;}
.pub-page {padding-top:1.5rem;}
.pub-page-head {max-width:900px;margin-block:1.8rem 1.5rem;color:var(--cream);}
.pub-page-head h1 {font-family:var(--serif);font-size:clamp(2rem,5vw,4rem);line-height:1.12;letter-spacing:-.035em;text-wrap:balance;margin:.7rem 0 1.2rem;}
.pub-page-head .lede {max-width:60ch;line-height:1.6;font-size:1.15rem;}
.pub-page-head .eyebrow {color:#f0d9a8;}
.pub-byline {font-size:.92rem;color:var(--muted-on-forest);}
.pub-reading-note {color:var(--muted-on-forest);font-size:.95rem;max-width:80ch;margin-bottom:2rem;}
.pub-reading-note a {color:var(--cream);}
.pub-route-nav {display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;margin-block:1.3rem 2rem;padding:1rem 1.5rem;background:var(--cream);color:var(--ink);}
.pub-route-nav a {display:inline-flex;align-items:center;min-height:44px;font-weight:600;}
.pub-method,.pub-verdict,.pub-checks,.pub-table-section {background:var(--paper-mat);color:var(--ink);padding:clamp(1.2rem,3vw,2.2rem);margin-block:1.5rem 2rem;box-shadow:var(--mat-shadow);}
.pub-method h2,.pub-verdict h2,.pub-checks h2,.pub-table-section h2 {font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.2;color:var(--forest);margin:0 0 1rem;}
.pub-method p,.pub-verdict p,.pub-checks p {max-width:72ch;line-height:1.65;}
.pub-verdict {border-left:4px solid var(--rust);}
.pub-verdict .eyebrow {margin-bottom:.7rem;}
.pub-checks {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 2rem;}
.pub-checks > h2 {grid-column:1/-1;}
.pub-checks h3 {font-size:1.15rem;line-height:1.3;}
.pub-table-scroll {max-width:100%;overflow-x:auto;}
.pub-table-scroll table {border-collapse:collapse;table-layout:fixed;width:100%;min-width:620px;line-height:1.55;font-variant-numeric:tabular-nums;}
.pub-table-scroll caption {text-align:left;font-size:.9rem;color:var(--muted);padding-bottom:1rem;}
.pub-table-scroll th,.pub-table-scroll td {text-align:left;vertical-align:top;padding:1rem;border-bottom:1px solid var(--line);overflow-wrap:anywhere;}
.pub-table-scroll thead {background:#e7e4d8;color:var(--forest);}
.pub-table-scroll th:first-child {width:22%;}
.pub-list {display:grid;gap:1.5rem;}
.pub-product {display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.2rem,3vw,2.3rem);padding:clamp(1.2rem,3vw,2.3rem);background:var(--paper-mat);color:var(--ink);box-shadow:var(--mat-shadow);scroll-margin-top:1rem;min-width:0;}
.pub-product-media {margin:0;align-self:start;padding:.4rem;background:#eee5d6;min-width:0;}
.pub-product-media img {display:block;max-width:100%;width:100%;height:auto;max-height:480px;object-fit:contain;}
.pub-product-media figcaption {font-size:.88rem;color:#4b4b40;padding:.65rem .3rem .3rem;line-height:1.5;}
.pub-product-copy {min-width:0;}
.pub-product-copy h2 {font-family:var(--serif);color:var(--forest);font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.2;margin:.6rem 0 1rem;}
.pub-product-copy p {line-height:1.55;}
.pub-number {font-size:1rem;color:var(--rust-ink);font-weight:600;margin:0 0 .5rem;}
.pub-evidence {font-size:.9rem;color:var(--muted);margin:0;}
.pub-facts {padding-left:1.2rem;line-height:1.6;margin-block:1rem;}
.pub-facts li+li {margin-top:.4rem;}
.pub-constraint {padding-top:.85rem;border-top:1px solid var(--line);}
.pub-date {font-size:.9rem;color:var(--muted);}
.pub-merchant {border-top:1px solid var(--line);margin-top:1rem;padding-top:.4rem;}
.pub-merchant > a {display:inline-flex;align-items:center;min-height:44px;}
.pub-merchant .button {margin:.8rem 0 .4rem;}
.pub-merchant p {font-size:.9rem;color:var(--muted);max-width:62ch;margin:.5rem 0 0;}
.pub-gift-group > h2 {font-family:var(--serif);font-size:2rem;color:var(--cream);margin:3rem 0 1rem;}
.pub-next {color:var(--cream);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;border-top:1px solid #809083;margin-block:3rem;padding-top:1.5rem;}
.pub-next h2 {width:100%;font-family:var(--serif);font-size:1.5rem;margin:0;}
.pub-next a,.pub-related-guide a {display:inline-flex;align-items:center;min-height:44px;color:var(--cream);}
.pub-related-guide {color:var(--cream);}
.pub-filter {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:1rem;background:var(--paper-mat);color:var(--ink);padding:1.4rem;}
.pub-filter label {display:grid;gap:.5rem;font-weight:600;min-width:0;}
.pub-filter input,.pub-filter select,.pub-filter button {min-height:46px;width:100%;font:inherit;border:1px solid #8b887e;background:#fffdf7;color:var(--ink);padding:.65rem;min-width:0;border-radius:2px;}
.pub-filter button {cursor:pointer;}
.pub-result-count,[data-catalog-empty] {color:var(--cream);}
.pub-catalog-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;}
.pub-product--compact {grid-template-columns:1fr;align-content:start;gap:1.2rem;}
.pub-product--compact .pub-product-media img {height:220px;object-fit:contain;}
.pub-product--compact .pub-product-copy {display:flex;flex-direction:column;}
.pub-product--compact .pub-merchant {margin-top:auto;}
.pub-catalog-grid [hidden],.pub-filter[hidden],[data-catalog-empty][hidden] {display:none;}
.pub-discovery a:focus-visible,.pub-page a:focus-visible,.pub-filter :focus-visible,.pub-table-scroll:focus-visible {outline:3px solid var(--rust);outline-offset:4px;}
@media(min-width:1000px){.hero-feature {grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;padding-top:2rem;}.hero-photo{max-width:600px;}.hero-copy h1{font-size:clamp(2.6rem,4vw,3.7rem);}.pub-discovery{margin-top:3rem;}}
@media(max-width:800px){.pub-comparison-grid{grid-template-columns:1fr;}.pub-editorial-card a{grid-template-columns:minmax(0,.7fr) minmax(0,1fr);align-items:center;}.pub-section-head{display:block;}.pub-section-head>p{max-width:60ch;margin-top:1rem;}.pub-checks{grid-template-columns:1fr;}}
@media(max-width:700px){.pub-entry-grid,.pub-product,.pub-catalog-grid,.pub-filter{grid-template-columns:1fr;}.pub-discovery{margin-block:2rem;}.pub-entry>img{aspect-ratio:1.8;}.pub-entry-grid{gap:2rem;}.pub-editorial-card a{grid-template-columns:1fr;}.pub-editorial-image img{max-height:220px;}.pub-product-media img{max-height:360px;}.pub-filter button{width:auto;justify-self:start;}.pub-route-nav{padding:1rem;gap:.15rem 1rem;}.pub-route-nav a{font-size:.95rem;}.pub-product--compact .pub-product-media img{height:auto;max-height:300px;}}

/* Figma editorial refinement: responsive equivalents of desktop 6:2 and phone 6:3.
   Reuse the existing scenic layers, real logo and native content below the concept. */
.hero-feature--editorial {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0;
  align-items: center;
  padding-top: 2rem;
}
.hero-feature--editorial,.pub-discovery {width:min(90%,81rem);}
.hero-feature--editorial .hero-copy {
  grid-column: 1 / 6;
  grid-row: 1;
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  padding: clamp(1.5rem, 3.3vw, 3rem);
  background: var(--cream);
  color: var(--ink);
  box-shadow: var(--shadow-panel);
}
.hero-feature--editorial .hero-copy .eyebrow {color:var(--rust-ink);font-size:1rem;}
.hero-feature--editorial .hero-copy h1 {
  color: var(--forest);
  font-size: clamp(2.25rem, 3.9vw, 3.5rem);
  font-weight: 600;
  line-height: 1.18;
  text-wrap: initial;
  text-shadow: none;
  letter-spacing: -.025em;
}
.hero-feature--editorial .hero-copy .lede {color:var(--ink);font-size:1.125rem;line-height:1.55;}
.hero-feature--editorial .hero-actions {flex-direction:column;align-items:start;gap:.5rem;}
.hero-feature--editorial .hero-secondary {color:var(--rust-ink);}
.hero-feature--editorial .hero-photo {
  grid-column: 4 / -1;
  grid-row: 1;
  max-width: none;
  width: 100%;
  margin: 0;
  transform: none;
}
.hero-feature--editorial .hero-photo img {width:100%;height:auto;aspect-ratio:auto;object-fit:contain;}
.hero-feature--editorial a:focus-visible {outline:3px solid var(--rust);outline-offset:4px;}
.hero-feature--editorial .button:hover {background:var(--forest);color:var(--cream);}
.pub-discovery .pub-section-head h2 {font-size:clamp(1.75rem,2.5vw,2.25rem);max-width:none;}
.pub-entry-grid {grid-template-columns:minmax(0,3fr) minmax(0,2fr);}
.pub-entry > img {aspect-ratio:1.5;object-fit:contain;background:#e9e0d1;border:0;}
.pub-entry strong {font-weight:600;}
.pub-editorial-card a {display:flex;flex-direction:column;align-items:stretch;padding:1rem;border:1px solid var(--line);height:100%;}
.pub-editorial-copy {padding:0;}
.pub-editorial-copy strong {font-weight:600;font-size:clamp(1.35rem,1.8vw,1.625rem);}
@media(max-width:900px) {
  .hero-feature--editorial {grid-template-columns:minmax(0,1fr);padding-top:1rem;}
  .hero-feature--editorial .hero-photo {grid-column:1;grid-row:1;}
  .hero-feature--editorial .hero-copy {grid-column:1;grid-row:2;width:calc(100% - 1rem);justify-self:center;margin-top:-1.5rem;padding:1.5rem;}
  .hero-feature--editorial .hero-copy h1 {font-size:clamp(2rem,9.2vw,3rem);}
  .hero-feature--editorial .hero-copy .lede {max-width:40ch;}
  .pub-editorial-card a {grid-template-columns:minmax(0,1fr);align-items:start;}
}
@media(max-width:700px) {
  .pub-entry-grid {grid-template-columns:minmax(0,1fr);}
  .pub-editorial-image img {max-height:none;}
}

.pub-page-head h1 {color:var(--cream);}
.pub-page-head .lede {color:var(--muted-on-forest);}

/* Focused decision articles share the existing paper and forest palette. */
.decision-article { max-width: 58rem; }
.decision-article .guide-breadcrumb { color: var(--muted); }
.decision-article .guide-breadcrumb a { color: var(--rust-ink); }
.decision-article .article-body { max-width: 42rem; margin-inline: auto; }
.decision-article .article-head { margin-inline: auto; max-width: 42rem; }
.decision-update { color: var(--muted); font-size: .9rem; margin-block: 1rem 0; }
.decision-nav { display: flex; flex-wrap: wrap; gap: .25rem 1.4rem; border-block: 1px solid var(--paper-edge); padding-block: .5rem; margin-bottom: 1.5rem; }
.decision-nav a, .guide-decision-link a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: .2em; }
.decision-photo { margin: 0 auto 2rem; max-width: 40rem; }
.decision-photo img { display: block; width: 100%; height: auto; max-height: 32rem; object-fit: contain; }
.decision-photo figcaption { font-size: .9rem; color: var(--muted); margin-top: .6rem; }
.decision-facts { margin-block: 1.5rem; border-top: 1px solid var(--paper-edge); }
.decision-facts > div { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 3fr); gap: 1rem; border-bottom: 1px solid var(--paper-edge); padding-block: 1rem; }
.decision-facts dt { font-weight: 700; color: var(--forest); }
.decision-facts dd { margin: 0; }
.decision-shopping { padding: 1.25rem; border-left: 3px solid var(--rust); background: var(--paper-mat); margin-block: 1.75rem; }
.decision-shopping p { font-size: .95rem; }
.decision-shopping .button { white-space: normal; }
.decision-article section { scroll-margin-top: 1.5rem; }
.guide-shopping .gear-shop { display: inline-flex; align-items: center; min-height: 44px; }
.guide-decision-link { margin: 0 0 1.5rem; }
.guide-decision-link a { color: var(--cream); }
@media (max-width: 600px) {
  .decision-facts > div { grid-template-columns: 1fr; gap: .35rem; }
  .decision-nav { gap: .15rem 1rem; }
}

/* October 4 decision-first preview: show the choice, then the proof.
   Same forest/paper/rust tokens; no new components beyond the comparison board and catalog groups. */
.hero-feature--editorial .hero-copy .lede {font-size:1.06rem;}
.guide-index--home,.pub-shortlists {width:min(90%,81rem);}
.guide-index--home {margin-block:clamp(2.5rem,5vw,4rem) 0;}
.guide-index--home + .pub-discovery {margin-top:clamp(2.5rem,5vw,4rem);}

/* Evidence status is the main trust signal on a product, so it reads as a tag, not fine print. */
.pub-evidence {display:inline-block;margin:0 0 .15rem;padding:.2rem .6rem;font-size:.84rem;font-weight:600;line-height:1.4;border:1px solid var(--paper-edge);color:var(--ink);background:#efe8da;}
.pub-evidence--field {background:var(--forest);border-color:var(--forest);color:var(--cream);}
.pub-role {margin:-.55rem 0 .7rem;color:var(--muted);font-weight:600;font-size:.95rem;}
.pub-product-copy h3 {font-family:var(--serif);color:var(--forest);font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.2;margin:.6rem 0 1rem;}

/* Card and contender footer: our details, then any approved retailer, then the dated source. */
.pub-next-steps {display:grid;justify-items:start;gap:.1rem;margin-top:1rem;padding-top:.6rem;border-top:1px solid var(--line);}
.pub-next-steps .pub-merchant {justify-self:stretch;margin-top:.4rem;}
.pub-next-steps .pub-date {margin:.6rem 0 0;}
.pub-next-steps .pub-date a {color:var(--muted);}
.pub-merchant > a:not(.button) {font-size:.95rem;font-weight:600;color:#4b4b40;}

/* Comparison opening: both products, their fit and their next step before the table. */
.pub-page-head {margin-block:1rem 1.2rem;}
.pub-page-head h1 {margin:.4rem 0 .9rem;}
.pub-reading-note {margin-bottom:1.4rem;}
.pub-take {font-size:1.08rem;}
.pub-contenders {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.2rem,3vw,2.5rem);margin-top:1.4rem;scroll-margin-top:1rem;}
.pub-contender {display:flex;flex-direction:column;align-items:flex-start;min-width:0;}
.pub-contender > p {max-width:none;}
.pub-contender h3 {font-family:var(--serif);color:var(--forest);font-size:clamp(1.35rem,2.2vw,1.75rem);line-height:1.2;margin:.7rem 0 .9rem;}
.pub-contender-media {align-self:stretch;margin:0 0 1rem;padding:.4rem;background:#eee5d6;}
.pub-contender-media img {display:block;width:100%;height:clamp(12rem,22vw,17rem);object-fit:contain;}
.pub-contender-media figcaption {font-size:.85rem;color:#4b4b40;padding:.6rem .3rem .25rem;line-height:1.45;}
.pub-contender .pub-next-steps {align-self:stretch;margin-top:auto;}
.pub-verdict .pub-constraint {padding-top:.7rem;}

/* Homepage decisions and lists. */
.pub-questions {display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.4rem 1.5rem;margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--line);}
.pub-questions h3 {margin:0;font-size:1.05rem;color:var(--forest);}
.pub-questions ul {display:flex;flex-wrap:wrap;gap:0 1.4rem;list-style:none;margin:0;padding:0;}
.pub-questions a {display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--rust-ink);text-underline-offset:.2em;}
.pub-shortlists {margin-block:clamp(2.5rem,5vw,4rem) 0;color:var(--cream);}
.pub-shortlists .pub-section-head {margin-bottom:1.2rem;}
.pub-shortlists .pub-section-head > p {color:var(--muted-on-forest);}
.pub-shortlists .eyebrow {color:#f0d9a8;}
.pub-shortlists .pub-entry-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;}
.pub-shortlists .pub-entry {grid-template-columns:11rem minmax(0,1fr);align-items:start;gap:1.2rem;padding:.6rem;background:var(--paper-mat);box-shadow:var(--mat-shadow);}
.pub-shortlists .pub-entry > img {width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:none;}
.pub-shortlists .pub-entry > span {padding:.5rem .4rem .5rem 0;}
.pub-shortlists .pub-entry strong {font-size:clamp(1.25rem,2vw,1.6rem);}
.pub-shortlists .pub-entry:focus-visible {outline:3px solid var(--cream);outline-offset:4px;}
.pub-more-links {display:flex;flex-wrap:wrap;gap:0 1.8rem;list-style:none;margin:1.2rem 0 .4rem;padding:0;}
.pub-more-links a {display:inline-flex;align-items:center;min-height:44px;color:var(--cream);font-weight:600;text-underline-offset:.22em;}
.pub-shortlists .pub-disclosure {color:var(--muted-on-forest);}
.pub-shortlists .pub-disclosure a,.pub-more-links a:focus-visible {color:var(--cream);}

/* Catalog: five category sections with a native index; filtering hides empty sections. */
.pub-catalog-index span {font-weight:400;color:var(--muted);margin-left:.25rem;}
.pub-catalog-index a[hidden] {display:none;}
.pub-catalog-group {margin-block:2.4rem 0;scroll-margin-top:1rem;}
.pub-catalog-group[hidden] {display:none;}
.pub-catalog-group-head {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.3rem 2rem;margin-bottom:1.2rem;padding-bottom:.9rem;border-bottom:1px solid #809083;color:var(--cream);}
.pub-catalog-group-head h2 {font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.15;margin:0;}
.pub-catalog-group-head p {grid-column:1;margin:0;color:var(--muted-on-forest);max-width:60ch;}
.pub-catalog-group-head a {grid-column:2;grid-row:1 / span 2;display:inline-flex;align-items:center;min-height:44px;color:var(--cream);font-weight:600;}
.pub-catalog-shared {color:var(--muted-on-forest);margin:-.3rem 0 1.2rem;}
.pub-catalog-shared a {color:var(--cream);}
.pub-catalog-shared[hidden] {display:none;}
@media(min-width:701px){.pub-product--compact .pub-product-media img {height:200px;}}

@media(max-width:900px){
  .pub-questions {grid-template-columns:1fr;}
  .pub-shortlists .pub-entry-grid {grid-template-columns:1fr;}
}
@media(max-width:700px){
  .pub-contenders {grid-template-columns:1fr;gap:2rem;}
  .pub-contender-media img {height:13rem;}
  .pub-catalog-group-head {grid-template-columns:1fr;}
  .pub-catalog-group-head a {grid-column:1;grid-row:auto;}
  .pub-shortlists .pub-entry {grid-template-columns:7.5rem minmax(0,1fr);gap:.9rem;}
  /* Compact category rows keep the choices together without full-width photos. */
  .guide-index--home .guide-card-link {display:grid;grid-template-columns:6.5rem minmax(0,1fr);align-items:center;gap:.9rem;padding:.45rem;}
  .guide-index--home .guide-card-image {aspect-ratio:4 / 3;}
  .guide-index--home .guide-card-copy {padding:.2rem 0;gap:.2rem;}
  .guide-index--home .guide-card-copy strong {font-size:1.2rem;}
  .guide-index--home .guide-card-copy > span:nth-child(2) {font-size:.92rem;line-height:1.4;}
  .guide-index--home .guide-card-topics {padding:0 .8rem .4rem;}
  .guide-index--home .guide-card-grid {gap:.75rem;}
  /* Evidence, captions and commission notices remain readable beside the action. */
  .pub-evidence,.pub-role,.pub-date,.pub-byline,.pub-reading-note,
  .pub-disclosure,.pub-merchant p,.pub-merchant > a:not(.button),
  .pub-contender-media figcaption,.pub-product-media figcaption,
  .pub-table-scroll caption,.pub-route-nav a,
  .guide-index--home .guide-card-copy > span:nth-child(2) {font-size:1rem;}
}

/* ==========================================================================
   October 4 aesthetic pass, direction A "Field ledger".
   Roles, not boxes: paper for decisions and product evidence, photographs set
   on the landscape for browsing, hairline ledgers for lists of choices.
   One eyebrow (the hero's), stacked section headers, one type scale.
   ========================================================================== */
:root {
  --display-1: clamp(2.15rem, 4.6vw, 3.75rem);
  --display-2: clamp(1.85rem, 3.3vw, 2.9rem);
  --display-3: clamp(1.3rem, 2.1vw, 1.7rem);
  --board-gap: clamp(1rem, 2.4vw, 2.25rem);
  --board-cols: minmax(13rem, .78fr) minmax(0, 1fr) minmax(0, 1fr);
  --hairline-on-forest: rgba(244, 240, 231, .2);
}

/* Header: one line on desktop; brand row plus one scrollable text nav on phones. */
.site-header {padding:1rem 0 .35rem;border-bottom:1px solid var(--hairline-on-forest);}
.brand-row {margin-bottom:.35rem;gap:.5rem 2rem;}
.brand-mark {flex-basis:2.9rem;width:2.9rem;height:2.9rem;background-size:2.35rem;}
.site-nav ul {flex-wrap:nowrap;gap:0 1.6rem;}
.site-nav li {flex:none;}
.site-nav a {font-size:1rem;}
.site-nav a:focus-visible {outline:2px solid var(--cream);outline-offset:-2px;}

/* Shared page heads: guide, comparison, catalog and lists read as one publication. */
.pub-page-head h1,.guide-cover-copy h1 {font-size:var(--display-1);line-height:1.08;letter-spacing:-.03em;font-weight:600;}
.pub-page-head .lede,.guide-cover-copy .lede {font-size:clamp(1.08rem,1.4vw,1.2rem);}
.pub-byline {margin-bottom:0;}
.pub-reading-note {padding-top:.8rem;border-top:1px solid var(--hairline-on-forest);max-width:62rem;}

/* Hero: actions on one row where there is room. */
@media (min-width:901px) {.hero-feature--editorial .hero-actions {flex-direction:row;align-items:center;gap:.6rem 1.6rem;}}

/* Homepage guides: one lead photograph and four smaller ones, on the landscape. */
.guide-index-head--stacked {display:block;max-width:46rem;margin-bottom:2rem;}
.guide-index-head--stacked h2 {font-size:var(--display-2);max-width:none;}
.guide-index-head--stacked p {margin:.7rem 0 0;max-width:58ch;color:var(--muted-on-forest);font-size:1.1rem;line-height:1.55;}
.guide-index--home .guide-card-grid {grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:2.2rem 1.8rem;align-items:start;}
.guide-index--home .guide-card,
.guide-index--home .guide-card:nth-child(1),
.guide-index--home .guide-card:nth-child(2) {grid-column:auto;background:none;box-shadow:none;}
.guide-index--home .guide-card:nth-child(1) {grid-row:span 2;}
.guide-index--home .guide-card-link {border:0;padding:0;color:var(--cream);}
.guide-index--home .guide-card-link:hover {transform:none;box-shadow:none;}
.guide-index--home .guide-card-link:hover strong {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;}
.guide-index--home .guide-card-link:focus-visible {outline:3px solid var(--cream);outline-offset:4px;}
.guide-index--home .guide-card-image {aspect-ratio:auto;padding:.4rem;background:var(--paper-mat);box-shadow:var(--mat-shadow);}
.guide-index--home .guide-card-image img {height:auto;aspect-ratio:16 / 10;}
.guide-index--home .guide-card:nth-child(1) .guide-card-image img {aspect-ratio:5 / 6;}
.guide-index--home .guide-card-copy {padding:1rem 0 .1rem;}
.guide-index--home .guide-card-copy strong {color:var(--cream);font-size:var(--display-3);}
.guide-index--home .guide-card:nth-child(1) .guide-card-copy strong {font-size:clamp(1.6rem,2.8vw,2.3rem);}
.guide-index--home .guide-card-copy > span:nth-child(2) {color:var(--muted-on-forest);}
.guide-index--home .guide-card-topics {border:0;padding:0;}
.guide-index--home .guide-card-topics a {color:#f0d9a8;}

/* Comparison entries: paired photographs and evidence status in a paper ledger. */
.pub-section-head--stacked {display:block;max-width:46rem;}
.pub-section-head--stacked > p {margin:.6rem 0 0;max-width:60ch;}
.pub-discovery .pub-section-head--stacked h2 {font-size:var(--display-2);}
.pub-ledger {list-style:none;margin:0;padding:0;}
.pub-ledger li + li {border-top:1px solid var(--line);}
.pub-ledger-row {display:grid;grid-template-columns:minmax(13rem,17rem) minmax(0,1fr) auto;align-items:center;gap:1rem 2rem;padding:1.4rem 0;color:var(--ink);text-decoration:none;}
.pub-ledger-row:hover strong {text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;}
.pub-ledger-row:focus-visible {outline:3px solid var(--rust);outline-offset:4px;}
.pub-ledger-pair {display:grid;grid-template-columns:1fr 1fr;gap:.45rem;}
.pub-ledger-thumb {display:block;padding:.3rem;background:#eee5d6;}
.pub-ledger-thumb img {display:block;width:100%;height:7.25rem;object-fit:contain;}
.pub-ledger-copy {display:grid;gap:.35rem;}
.pub-ledger-copy strong {font-family:var(--serif);font-size:var(--display-3);font-weight:600;line-height:1.2;color:var(--forest);}
.pub-ledger-product {display:grid;align-content:start;gap:.4rem;min-width:0;}
.pub-ledger-name {font-size:1rem;line-height:1.3;color:var(--forest);}
.pub-ledger-row .pub-detail-link {white-space:nowrap;}
.pub-ledger-sheet {background:var(--paper-mat);color:var(--ink);padding:.4rem clamp(1.2rem,3vw,2.5rem);box-shadow:var(--mat-shadow);border-top:4px solid var(--rust);margin-bottom:2rem;}
.pub-questions {border-top:2px solid var(--forest);}

/* Lists: two photo scales instead of two equal rows. */
.pub-shortlists .pub-entry-grid {grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;}
.pub-shortlists .pub-entry--lead {grid-template-columns:1fr;}
.pub-shortlists .pub-entry:not(.pub-entry--lead) {grid-template-columns:9rem minmax(0,1fr);}
.pub-shortlists .pub-section-head--stacked {margin-bottom:1.4rem;}

/* Comparison board: question and take, two products, aligned listed differences, then each decision. */
.pub-verdict:has(> .pub-matchup) {display:grid;grid-template-columns:var(--board-cols);column-gap:var(--board-gap);row-gap:0;border-left:0;border-top:4px solid var(--rust);padding:clamp(1.2rem,3vw,2.5rem);}
.pub-board-intro {grid-column:1;grid-row:1;align-self:start;}
.pub-board-intro h2 {margin:0 0 .9rem;font-size:var(--display-3);}
.pub-verdict .pub-take {font-size:1.05rem;margin:0;}
.pub-matchup {grid-column:2 / 4;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:var(--board-gap);scroll-margin-top:1rem;}
.pub-matchup-item {margin:0;display:flex;flex-direction:column;gap:.6rem;min-width:0;}
.pub-matchup-media {display:block;padding:.4rem;background:#eee5d6;}
.pub-matchup-media img {display:block;width:100%;height:clamp(11rem,19vw,15.5rem);object-fit:contain;}
.pub-matchup-item figcaption {display:grid;justify-items:start;gap:.45rem;}
.pub-matchup-name {font-family:var(--serif);font-size:var(--display-3);font-weight:600;line-height:1.2;color:var(--forest);}
.pub-matchup-caption {font-size:.88rem;line-height:1.45;color:#4b4b40;}
.pub-differences-wrap {grid-column:1 / -1;margin-top:1.8rem;border-top:2px solid var(--forest);}
.pub-differences-heading {margin:.8rem 0 0;font-size:1rem;color:var(--forest);}
.pub-differences {margin:0;}
.pub-difference {display:grid;grid-template-columns:var(--board-cols);column-gap:var(--board-gap);padding:.8rem 0;border-bottom:1px solid var(--line);}
.pub-difference dt {font-weight:700;color:var(--forest);}
.pub-difference dd {margin:0;line-height:1.5;}
.pub-differences-note {margin:.7rem 0 0;font-size:.92rem;color:var(--muted);}
.pub-verdict .pub-contenders {grid-column:2 / 4;margin-top:1.8rem;gap:var(--board-gap);}
/* The matchup carries identity; the decision column names its product as a quieter label. */
.pub-verdict .pub-contender h3 {margin:0 0 .2rem;font-family:var(--sans);font-size:1.15rem;font-weight:700;letter-spacing:0;color:var(--forest);}
.pub-contender .pub-role {margin:0 0 .8rem;}
.pub-table-section {border-top:4px solid var(--forest);}

/* Product cards (Top 10, gifts, catalog): one mat, one rhythm, actions in a footer. */
.pub-product {gap:clamp(1.1rem,2.6vw,2rem);border-top:4px solid var(--forest);}
.pub-product-media {padding:.45rem;background:#eee5d6;}
.pub-product-copy h2,.pub-product-copy h3 {margin:.55rem 0 .7rem;letter-spacing:-.01em;}
.pub-product .pub-role {margin:-.35rem 0 .8rem;}
.pub-facts {padding-left:0;list-style:none;border-top:1px solid var(--line);}
.pub-facts li {padding:.55rem 0 .55rem 1.1rem;border-bottom:1px solid var(--line);position:relative;}
.pub-facts li::before {content:"";position:absolute;left:0;top:1.15em;width:.45rem;height:1px;background:var(--rust);}
.pub-facts li + li {margin-top:0;}
.pub-constraint {border-top:0;padding-top:.2rem;}
.pub-number {font-family:var(--serif);font-size:1.05rem;}

/* Catalog finder: search, category and clear in one row; category links as one chip row. */
.pub-finder {background:var(--paper-mat);color:var(--ink);box-shadow:var(--mat-shadow);border-top:4px solid var(--rust);margin-bottom:1rem;}
.pub-finder .pub-filter {background:none;padding:1.2rem 1.4rem .4rem;}
.pub-catalog-index {display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .5rem;padding:.6rem 1.4rem 1.1rem;}
.pub-catalog-index .pub-catalog-index-label {font-weight:700;color:var(--forest);margin:0 .3rem 0 0;}
.pub-catalog-index .pub-catalog-index-label {flex:none;white-space:nowrap;}
.pub-product--compact .pub-evidence {align-self:flex-start;}
/* Standalone links on the landscape (homepage night-sky link) need the light link colour. */
main > .section-link a {color:var(--cream);}
.pub-catalog-index a {display:inline-flex;align-items:center;min-height:44px;padding:0 .85rem;border:1px solid var(--line);background:#fffdf7;color:var(--forest);font-weight:600;text-decoration:none;}
.pub-catalog-index a:hover {border-color:var(--forest);}
.pub-catalog-index a:focus-visible {outline:3px solid var(--rust);outline-offset:2px;}
.pub-catalog-group-head h2 {font-size:var(--display-2);}

/* Guide opening: steady photograph, sentence-case first question, a quiet decision link. */
.guide-cover-photo {transform:none;}
.guide-cover-photo img {height:auto;aspect-ratio:4 / 3;}
.guide-cover-question {border-left:0;border-top:2px solid #df9a6a;padding:.8rem 0 0;}
.guide-cover-question strong {font-size:1rem;letter-spacing:0;text-transform:none;color:#f0c2b0;}
.guide-decision-link {padding:.9rem 1.2rem;border:1px solid var(--hairline-on-forest);max-width:46rem;}
.guide-decision-link a {font-weight:600;}

/* Footer: who we are, then three short link groups. */
.site-footer {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2rem 3rem;margin-top:4rem;padding:2.6rem 0 3.4rem;}
.site-footer-lead {display:grid;gap:.6rem;align-content:start;}
.site-footer-brand {font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--cream);}
.site-footer-links {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem 2rem;}
.site-footer-links > div {display:grid;gap:.1rem;align-content:start;}
.site-footer-label {font-weight:700;color:var(--cream);margin-bottom:.3rem !important;}
.site-footer-links a {display:inline-flex;align-items:center;min-height:44px;}
.site-footer {font-size:1rem;}

@media (max-width:1100px) {
  .brand-row {flex-wrap:wrap;}
}
@media (max-width:900px) {
  .guide-index--home .guide-card-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .guide-index--home .guide-card:nth-child(1) {grid-row:auto;grid-column:1 / -1;}
  .pub-verdict:has(> .pub-matchup) {grid-template-columns:1fr 1fr;}
  .pub-board-intro {grid-column:1 / -1;margin-bottom:1.2rem;}
  .pub-matchup,.pub-verdict .pub-contenders {grid-column:1 / -1;grid-row:auto;}
  .pub-difference {grid-template-columns:1fr 1fr;row-gap:.25rem;}
  .pub-difference dt {grid-column:1 / -1;}
  .pub-ledger-row {grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);}
  .pub-ledger-row .pub-detail-link {grid-column:2;}
  .site-footer {grid-template-columns:1fr;}
}
@media (max-width:700px) {
  /* Header: brand row, then every route as text in one row that scrolls sideways. */
  .site-header {padding-top:.6rem;}
  .brand-row {gap:0;margin-bottom:0;}
  .site-nav {width:calc(100% + 2rem);min-width:0;flex:none;margin-inline:-1rem;}
  .site-nav ul {justify-content:flex-start;gap:0 1.3rem;overflow-x:auto;scroll-padding-inline:1rem 2.5rem;padding:0 2.5rem 0 1rem;scrollbar-width:none;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);}
  .site-nav ul::-webkit-scrollbar {display:none;}
  .site-nav a {font-size:1rem;}

  /* Guides as compact rows: thumbnail mat and text on the landscape. */
  .guide-index--home .guide-card-grid {grid-template-columns:1fr;gap:0;}
  .guide-index--home .guide-card,.guide-index--home .guide-card:nth-child(1) {grid-column:auto;padding:.9rem 0;border-top:1px solid var(--hairline-on-forest);}
  .guide-index--home .guide-card-link {padding:0;gap:.9rem;}
  .guide-index--home .guide-card-image {padding:.25rem;}
  .guide-index--home .guide-card-image img,.guide-index--home .guide-card:nth-child(1) .guide-card-image img {aspect-ratio:4 / 3;}
  .guide-index--home .guide-card-copy strong,.guide-index--home .guide-card:nth-child(1) .guide-card-copy strong {font-size:1.2rem;}
  .guide-index--home .guide-card-topics {padding:.2rem 0 0 7.4rem;}

  /* Comparison board: products side by side first, then differences, the take and each decision. */
  .pub-verdict:has(> .pub-matchup) {display:flex;flex-direction:column;padding:1.1rem 1rem 1.3rem;}
  .pub-board-intro {display:contents;}
  .pub-board-intro h2 {order:0;}
  .pub-matchup {order:1;gap:.75rem;}
  .pub-differences-wrap {order:2;}
  .pub-verdict .pub-take {order:3;margin-top:1.2rem;padding:1rem;background:#efe8da;}
  .pub-verdict .pub-contenders {order:4;grid-template-columns:1fr;gap:0;margin-top:.4rem;}
  .pub-contender {padding-top:1.1rem;margin-top:1.1rem;border-top:2px solid var(--forest);}
  .pub-matchup-media {padding:.25rem;}
  .pub-matchup-media img {height:9.5rem;}
  .pub-matchup-name {font-size:1.15rem;}
  .pub-difference {column-gap:.75rem;}

  .pub-ledger-row {grid-template-columns:1fr;gap:.8rem;}
  .pub-ledger-row .pub-detail-link {grid-column:auto;}
  .pub-ledger-thumb img {height:6.5rem;}
  .pub-shortlists .pub-entry-grid {grid-template-columns:1fr;}
  .pub-shortlists .pub-entry:not(.pub-entry--lead) {grid-template-columns:7.5rem minmax(0,1fr);}

  /* Finder: chips stay on one scrollable line. */
  .pub-finder .pub-filter {grid-template-columns:minmax(0,1fr) auto;padding:1rem 1rem .3rem;}
  .pub-finder .pub-filter label:first-child {grid-column:1 / -1;}
  .pub-finder .pub-filter button {align-self:end;}
  .pub-catalog-index {flex-wrap:nowrap;overflow-x:auto;scroll-padding-inline:1rem 2.5rem;padding:.5rem 2.5rem .9rem 1rem;scrollbar-width:none;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);}
  .pub-catalog-index::-webkit-scrollbar {display:none;}
  /* Keyboard focus must remain legible even at the scrolling row's fading edge. */
  .site-nav ul:focus-within,.pub-catalog-index:focus-within {-webkit-mask-image:none;mask-image:none;}
  .pub-catalog-index a {flex:none;}

  .site-footer-links {grid-template-columns:1fr 1fr;}

  /* Trust-critical text keeps Codex's 16px phone minimum on the new surfaces. */
  .pub-matchup-caption,.pub-differences-note,
  .pub-catalog-index span {font-size:1rem;}
}

/* Editorial dates use the same light caption color as the existing homepage cards. */
.discovery-date {display:block;font-size:.9rem;font-family:var(--sans);font-weight:400;color:var(--muted);line-height:1.5;}
.guide-index--home .discovery-date {color:var(--muted-on-forest);}
