@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/store/montserrat-latin-600-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('/store/montserrat-latin-800-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/store/inter-latin-400-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/store/inter-latin-600-normal.woff2') format('woff2');
}

:root {
  --k-base: #71c200;
  --k-signal: #070609;
  --k-accent-strong: #000000;
  --k-field: #131516;
  --k-raised: #1b1e20;
  --k-script: #ffffff;
  --k-dim: #c1c1c1;
  --k-edge: #2b2f31;
  --k-rule-bold: #3f4548;
  --k-grad-1: #3c3759;
  --k-ramp-end: #1d182a;
  --k-notice: #a93226;

  --g-1: 5px;
  --g-2: 10px;
  --g-3: 15px;
  --g-4: 25px;
  --g-5: 40px;
  --g-6: 60px;
  --g-7: 90px;
  --g-8: 140px;

  --r-capsule: 9999px;
  --r-circle: 50%;
  --r-1: 3px;
  --r-2: 4px;
  --r-3: 10px;
  --r-4: 16px;
  --r-5: 28px;
  --r-6: 36px;
  --r-7: 44px;
  --r-8: 56px;

  --f-heading: 'Montserrat', 'Trebuchet MS', sans-serif;
  --f-base: 'Inter', 'Segoe UI', sans-serif;

  --z-xxl: clamp(27px, 4.6vw, 72px);
  --z-h2: clamp(24px, 2.8vw, 44px);
  --z-h3: clamp(21px, 1.7vw, 28px);
  --z-h4: clamp(18px, 1.3vw, 20px);
  --z-minor: clamp(14px, 1.05vw, 16px);
  --z-xs-2: clamp(12px, 0.9vw, 14px);
  --z-reading: clamp(17px, 1.15vw, 18px);
  --z-sm: clamp(14px, 1vw, 15px);
  --z-xs: clamp(11px, 0.8vw, 12px);

  --l-tight: 1.08;
  --l-default: 1.5;
  --l-open: 1.7;

  --w-base: 400;
  --w-mid: 600;
  --w-thick: 800;

  --e-tight: -0.03em;
  --e-regular: 0;
  --e-spread: 0.05em;

  --d-1: 0 1px 2px rgba(0, 0, 0, 0.05);
  --d-2: 0 2px 4px rgba(0, 0, 0, 0.06);
  --d-3: 0 4px 10px rgba(0, 0, 0, 0.08);
  --d-4: 0 10px 28px rgba(0, 0, 0, 0.12);
  --d-5: 0 20px 48px rgba(0, 0, 0, 0.16);
  --d-6: 0 26px 60px rgba(0, 0, 0, 0.22);
  --d-7: 0 32px 72px rgba(0, 0, 0, 0.28);
  --d-8: 0 40px 90px rgba(0, 0, 0, 0.34);

  --t-brisk: 120ms;
  --t-steady: 200ms;
  --t-calm: 343ms;

  --x-land: cubic-bezier(0.31, 0.73, 0.33, 0.94);
  --x-start: cubic-bezier(0.67, 0.06, 0.69, 0.27);
  --x-smooth: cubic-bezier(0.48, 0.07, 0.47, 1);
  --x-spring: cubic-bezier(0.34, 1.05, 0.6, 1.1);

  --v-full: 1420px;
  --v-inner: 1420px;
  --v-slim: 500px;
  --v-pad-lg: 32px;
  --v-pad-md: 20px;
  --v-inset-mobile: 12px;

  --b-fine: 1px;
  --b-even: 2px;
  --b-strong: 3px;

  --h-size-desktop: 80px;
  --h-h-sm: 64px;

  --n-sec-y: 48px;
  --n-shell: 80px;
  --n-cookie: 0px;
}

@media (max-width: 880px) {
  :root {
    --v-pad-lg: var(--v-pad-md);
    --n-sec-y: 36px;
  }
}

@media (max-width: 540px) {
  :root {
    --v-pad-lg: var(--v-inset-mobile);
  }
}

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

html,
body {
  overflow-x: clip;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--k-field);
  color: var(--k-script);
  font-family: var(--f-base);
  font-size: var(--z-reading);
  font-weight: var(--w-base);
  line-height: var(--l-default);
  padding-block-start: var(--n-shell);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  overflow-wrap: anywhere;
}

h1 {
  font-family: var(--f-heading);
  font-size: var(--z-xxl);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-tight);
  line-height: var(--l-tight);
}

h2 {
  font-family: var(--f-heading);
  font-size: var(--z-h2);
  font-weight: var(--w-mid);
  letter-spacing: var(--e-tight);
  line-height: var(--l-tight);
}

h3 {
  font-family: var(--f-base);
  font-size: var(--z-h3);
  font-weight: var(--w-mid);
  line-height: 1.25;
}

p {
  margin: 0;
}

img {
  max-width: 100%;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

a {
  color: var(--k-base);
}

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

.skip-jump {
  position: absolute;
  inset-inline-start: var(--g-3);
  z-index: 300;
  background: var(--k-base);
  color: var(--k-signal);
  font-family: var(--f-heading);
  font-size: var(--z-minor);
  font-weight: var(--w-thick);
  padding: var(--g-2) var(--g-4);
  border-radius: var(--r-3);
  text-decoration: none;
}

.skip-jump:not(:focus) {
  top: -200px !important;
}

.skip-jump:focus {
  top: var(--g-3);
}

.atrium {
  flex: 1 0 auto;
  display: block;
}

[id] {
  scroll-margin-block-start: calc(var(--n-shell) + var(--g-4));
}

[data-reveal] {
  opacity: 0;
  clip-path: inset(100% 0 0 0);
  transform: translateY(20px);
  transition: opacity var(--t-calm) var(--x-land), clip-path var(--t-calm) var(--x-land), transform var(--t-calm) var(--x-land);
}

[data-reveal].is-live {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: none;
}

/* ---------------------------------------------------------------- container */
.facet-guts,
.tile-guts,
.beacon-guts,
.hutch-guts,
.quatrefoil-guts,
.parapet-guts,
.lobby-guts,
.chevron-guts,
.banner-guts,
.spire-guts,
.grove-guts,
.lozenge-guts,
.slab-guts,
.glyph-guts {
  width: 100%;
  max-width: calc(var(--v-full) + 2 * var(--v-pad-lg));
  margin-inline: auto;
  padding-inline: var(--v-pad-lg);
}

/* ---------------------------------------------------------------- rg band */
.crest {
  width: 100%;
  max-width: calc(var(--v-full) + 2 * var(--v-pad-lg));
  margin-inline: auto;
  padding-inline: var(--v-pad-lg);
  padding-block-start: var(--g-3);
}

.crest-band {
  display: block;
  text-align: center;
  background: var(--k-notice);
  color: #ffffff;
  border-radius: var(--r-3);
  font-size: var(--z-sm);
  padding: var(--g-2) var(--g-4);
}

.crest-jump {
  background: var(--k-notice);
  color: #ffffff;
  text-underline-offset: 3px;
}

.crest-jump:hover {
  background: #8d2820;
  color: #ffffff;
}

/* ---------------------------------------------------------------- header */
.canopy {
  position: fixed;
  inset-block-start: var(--n-cookie, 0px);
  inset-inline: 0;
  z-index: 90;
  background: var(--k-field);
  border-block-end: var(--b-fine) solid var(--k-edge);
  backdrop-filter: blur(6px);
  transition: inset-block-start var(--t-steady) var(--x-land);
}

.canopy-band {
  display: flex;
  align-items: center;
  gap: var(--g-3);
  height: 80px;
  min-height: 80px;
  padding-inline: var(--g-4);
  max-width: 1560px;
  margin-inline: auto;
}

.canopy-brand {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  background: #0a0c0d;
  border-radius: var(--r-circle);
  padding: 5px 22px;
  text-decoration: none;
}

.canopy-brand-media {
  display: block;
  height: 60px;
  width: auto;
  flex-shrink: 0;
}

.canopy-menu-lever {
  display: none;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  margin-left: auto;
  background: var(--k-raised);
  color: var(--k-script);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-3);
  cursor: pointer;
}

.canopy-lines {
  display: block;
  width: 18px;
  height: 18px;
  background-image: radial-gradient(circle, currentColor 1.9px, transparent 2.1px);
  background-size: 6px 6px;
  background-position: 1px 1px;
  transition: transform var(--t-steady) var(--x-land);
}

.canopy-menu-lever[aria-expanded='true'] .canopy-lines {
  transform: rotate(45deg);
}

.canopy-links {
  margin-inline-start: auto;
  flex: 0 0 auto;
}

.canopy-list {
  display: flex;
  align-items: center;
  gap: var(--g-2);
  list-style: none;
}

.canopy-entry {
  display: flex;
  align-items: center;
}

.canopy-entry[hidden] {
  display: none;
}

.canopy-entry + .canopy-entry::before {
  content: '/';
  color: var(--k-dim);
  opacity: 0.35;
  margin-inline-end: var(--g-2);
}

.canopy-jump {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-inline: var(--g-2);
  border-radius: var(--r-2);
  color: var(--k-dim);
  font-family: var(--f-base);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  border-block-end: var(--b-even) solid transparent;
  transition: color var(--t-brisk) var(--x-land), background-color var(--t-brisk) var(--x-land);
}

.canopy-jump:hover {
  background: var(--k-raised);
  color: var(--k-script);
}

.canopy-jump[aria-current='page'] {
  color: var(--k-script);
  background: var(--k-field);
  border-block-end-color: var(--k-base);
}

.canopy-more {
  position: relative;
  display: flex;
  align-items: center;
}

.canopy-more[hidden] {
  display: none;
}

.canopy-more-opener {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: var(--k-field);
  color: var(--k-dim);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-2);
  cursor: pointer;
  transition: color var(--t-brisk) var(--x-land), background-color var(--t-brisk) var(--x-land);
}

.canopy-more-opener:hover,
.canopy-more-opener[aria-expanded='true'] {
  background: var(--k-raised);
  color: var(--k-script);
}

.canopy-dots {
  display: block;
  width: 18px;
  height: 4px;
  background-image: radial-gradient(circle, currentColor 1.9px, transparent 2.1px);
  background-size: 7px 4px;
  background-position: 0 0;
}

.canopy-more-menu {
  display: none;
  position: absolute;
  inset-block-start: calc(100% + 8px);
  inset-inline-end: 0;
  min-width: 240px;
  max-height: 62vh;
  overflow-y: auto;
  list-style: none;
  padding: var(--g-2);
  background: var(--k-raised);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-3);
  box-shadow: var(--d-5);
  z-index: 20;
}

.canopy-more-menu.is-open {
  display: block;
}

.canopy-more-menu .canopy-entry {
  display: block;
}

.canopy-more-menu .canopy-entry::before {
  content: none;
}

.canopy-more-menu .canopy-jump {
  display: flex;
  width: 100%;
  white-space: normal;
  border-block-end: 0;
}

.canopy-buttons {
  display: flex;
  align-items: center;
  gap: var(--g-3);
  flex-shrink: 0;
}

.canopy-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding-inline: var(--g-4);
  background: var(--k-field);
  border: var(--b-even) solid var(--k-base);
  border-radius: var(--r-4);
  color: var(--k-base);
  font-family: var(--f-heading);
  font-size: var(--z-xs-2);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color var(--t-brisk) var(--x-land), background-color var(--t-brisk) var(--x-land);
}

.canopy-button:hover {
  background: var(--k-base);
  color: var(--k-signal);
}

.canopy-dock {
  display: none;
  position: absolute;
  inset-block-start: 100%;
  inset-inline: 0;
  max-height: 70vh;
  overflow-y: auto;
  background: var(--k-field);
  border-block-end: var(--b-fine) solid var(--k-edge);
  box-shadow: var(--d-5);
  padding: var(--g-3) var(--g-4) var(--g-5);
}

.canopy-dock.is-open {
  display: block;
}

.canopy-dock-list {
  list-style: none;
}

.canopy-dock-entry {
  display: block;
}

.canopy-dock-jump {
  display: block;
  padding-block: var(--g-3);
  border-block-end: var(--b-fine) solid var(--k-edge);
  background: var(--k-field);
  color: var(--k-script);
  font-family: var(--f-base);
  font-size: var(--z-minor);
  font-weight: 500;
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  text-decoration: none;
}

.canopy-dock-jump:hover {
  background: var(--k-raised);
  color: var(--k-base);
}

/* ---------------------------------------------------------------- breadcrumbs */
.reel {
  width: 100%;
  max-width: calc(var(--v-full) + 2 * var(--v-pad-lg));
  margin-inline: auto;
  padding-inline: var(--v-pad-lg);
  padding-block: var(--g-4) 0;
}

.reel-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  font-size: var(--z-sm);
}

.reel-entry {
  display: inline-flex;
  align-items: center;
}

.reel-entry + .reel-entry::before {
  content: '\203A';
  color: var(--k-base);
  opacity: 0.7;
  margin-inline: var(--g-2);
}

.reel-jump {
  background: var(--k-field);
  color: var(--k-dim);
  text-decoration: none;
}

.reel-jump:hover {
  background: var(--k-field);
  color: var(--k-base);
}

.reel-here {
  background: var(--k-field);
  color: var(--k-script);
}

/* ---------------------------------------------------------------- hero */
.facet {
  position: relative;
  background: var(--k-field);
  padding-block: var(--g-5);
}

.facet-guts {
  position: relative;
  min-height: clamp(440px, 58vh, 620px);
  display: flex;
  align-items: center;
}

.facet-main {
  position: relative;
  z-index: 2;
  width: 48%;
  padding-block: var(--g-6);
}

.facet-eyebrow {
  display: inline-block;
  background: var(--k-field);
  color: var(--k-base);
  font-family: var(--f-heading);
  font-size: var(--z-xs);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  margin-block-end: var(--g-3);
}

.facet-head {
  background: var(--k-field);
  color: var(--k-script);
  font-size: clamp(27px, 4.1vw, 60px);
}

.facet-sub {
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-minor);
  line-height: var(--l-open);
  max-width: var(--v-slim);
  margin-block-start: var(--g-4);
}

.facet-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-block-start: var(--g-5);
  text-decoration: none;
}

.facet-fine {
  display: block;
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-xs);
  margin-block-start: var(--g-3);
}

.facet-jump {
  background: var(--k-field);
  color: var(--k-base);
}

.facet-jump:hover {
  background: var(--k-base);
  color: var(--k-signal);
}

.facet-figure {
  position: absolute;
  inset-block-start: calc(-1 * var(--g-5));
  inset-block-end: calc(-1 * var(--g-5));
  inset-inline-end: var(--v-pad-lg);
  width: calc(50% - var(--v-pad-lg));
  margin: 0;
  border-radius: var(--r-4);
  overflow: hidden;
  box-shadow: var(--d-5);
  transform: rotate(2deg);
  transition: transform var(--t-calm) var(--x-land);
}

.facet-figure:hover {
  transform: rotate(0deg) scale(1.02);
}

.facet-media {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1380px) {
  .facet-main {
    width: 50%;
  }

  .facet-figure {
    width: calc(48% - var(--v-pad-lg));
  }
}

@media (max-width: 1040px) {
  .facet-figure {
    width: calc(46% - var(--v-pad-lg));
  }
}

@media (max-width: 880px) {
  .facet-guts {
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
  }

  .facet-main {
    width: 100%;
    padding-block: var(--g-5) var(--g-4);
  }

  .facet-figure {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    transform: none;
  }
}

/* ---------------------------------------------------------------- page header */
.tile {
  background: var(--k-base);
  padding-block: var(--g-6);
}

.tile-eyebrow {
  display: inline-block;
  background: var(--k-base);
  color: var(--k-signal);
  font-family: var(--f-heading);
  font-size: var(--z-xs);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  opacity: 0.75;
  margin-block-end: var(--g-3);
}

.tile-head {
  background: var(--k-base);
  color: var(--k-signal);
  font-size: clamp(30px, 6vw, 64px);
}

.tile-sub {
  background: var(--k-base);
  color: var(--k-signal);
  opacity: 0.82;
  font-size: var(--z-minor);
  line-height: var(--l-open);
  margin-block-start: var(--g-4);
}

/* ---------------------------------------------------------------- byline */
.glyph {
  background: var(--k-field);
  border-block-end: var(--b-fine) solid var(--k-edge);
  padding-block: var(--g-3);
}

.glyph-guts {
  display: flex;
  align-items: center;
  gap: var(--g-3);
}

.glyph-photo {
  display: block;
  width: 40px;
  height: 40px;
  border-radius: var(--r-circle);
  object-fit: cover;
  flex-shrink: 0;
}

.glyph-detail {
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-sm);
}

.glyph-person {
  background: var(--k-field);
  color: var(--k-base);
  text-decoration: none;
}

.glyph-person:hover {
  background: var(--k-base);
  color: var(--k-signal);
}

.glyph-post {
  background: var(--k-field);
  color: var(--k-dim);
}

/* ---------------------------------------------------------------- prose */
.beacon {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.beacon-part {
  margin-block-start: var(--g-5);
}

.beacon-part:first-child {
  margin-block-start: 0;
}

.beacon-lede {
  position: relative;
  padding-inline-start: 34px;
  background: var(--k-field);
  color: var(--k-script);
  margin-block: var(--g-5) var(--g-4);
}

.beacon-part:first-child .beacon-lede {
  margin-block-start: 0;
}

.beacon-lede::before {
  content: '';
  position: absolute;
  inset-inline-start: 5px;
  inset-block-start: 0.42em;
  width: 14px;
  height: 14px;
  background: var(--k-base);
  opacity: 0.55;
  transform: rotate(45deg);
}

.beacon-guts p {
  background: var(--k-field);
  color: var(--k-dim);
  line-height: var(--l-open);
  margin-block-end: var(--g-3);
}

.beacon-list,
.beacon-order {
  margin-block: var(--g-3) var(--g-4);
  padding-inline-start: var(--g-4);
}

.beacon-list {
  list-style: none;
}

.beacon-entry {
  position: relative;
  background: var(--k-field);
  color: var(--k-dim);
  line-height: var(--l-open);
  margin-block-end: var(--g-2);
}

.beacon-list .beacon-entry::before {
  content: '';
  position: absolute;
  inset-inline-start: calc(-1 * var(--g-4));
  inset-block-start: 0.62em;
  width: 8px;
  height: 8px;
  background: var(--k-base);
  transform: rotate(45deg);
}

.beacon-jump {
  background: var(--k-field);
  color: var(--k-base);
  text-underline-offset: 3px;
  transition: color var(--t-brisk) var(--x-land), background-color var(--t-brisk) var(--x-land);
}

.beacon-jump:hover {
  background: var(--k-base);
  color: var(--k-signal);
}

.beacon-figure {
  max-width: 900px;
  margin: var(--g-5) auto;
  border-radius: var(--r-4);
  overflow: hidden;
  background: var(--k-raised);
}

.beacon-figure-tall {
  max-width: 520px;
}

.beacon-media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  max-height: 56vh;
  object-fit: cover;
  transition: transform var(--t-calm) var(--x-land);
}

.beacon-figure-tall .beacon-media {
  aspect-ratio: 4 / 5;
  height: auto;
  max-height: 60vh;
}

.beacon-figure:hover .beacon-media {
  transform: scale(1.06);
}

.beacon-call {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--g-2);
  margin-block: var(--g-5);
}

.beacon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.beacon-fine {
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-xs);
}

/* ---------------------------------------------------------------- items grid */
.hutch {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.hutch-lede {
  background: var(--k-field);
  color: var(--k-script);
  margin-block-end: var(--g-5);
}

.hutch-list {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--g-4);
  align-items: start;
}

.hutch-entry {
  grid-column: span 7;
  background: var(--k-raised);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-5);
  padding: var(--g-5);
  box-shadow: var(--d-3);
  transition: border-color var(--t-steady) var(--x-land), box-shadow var(--t-steady) var(--x-land);
}

.hutch-entry:nth-child(4n + 2),
.hutch-entry:nth-child(4n + 3) {
  grid-column: span 5;
}

.hutch-entry:hover {
  border-color: var(--k-base);
  box-shadow: var(--d-5);
}

.hutch-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--r-3);
  background: #1f2a14;
  color: var(--k-base);
  border: var(--b-fine) solid var(--k-rule-bold);
  margin-block-end: var(--g-3);
}

.hutch-mark {
  display: block;
  width: 21px;
  height: 21px;
  fill: currentColor;
}

.hutch-head {
  background: var(--k-raised);
  color: var(--k-script);
  font-size: var(--z-h4);
  font-family: var(--f-heading);
  font-weight: var(--w-thick);
  margin-block-end: var(--g-2);
}

.hutch-note {
  background: var(--k-raised);
  color: var(--k-dim);
  font-size: var(--z-reading);
  line-height: var(--l-default);
}

@media (max-width: 880px) {
  .hutch-entry,
  .hutch-entry:nth-child(4n + 2),
  .hutch-entry:nth-child(4n + 3) {
    grid-column: span 12;
  }

  .hutch-entry {
    padding: var(--g-4);
  }
}

/* ---------------------------------------------------------------- reviews */
.quatrefoil {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.quatrefoil-lede {
  background: var(--k-field);
  color: var(--k-script);
  margin-block-end: var(--g-5);
}

.quatrefoil-list {
  display: block;
}

.quatrefoil-entry {
  position: relative;
  max-width: calc(var(--v-slim) + var(--g-6));
  margin-inline: auto;
  padding-block: var(--g-5);
  padding-inline-start: var(--g-6);
  border-block-end: var(--b-fine) solid var(--k-edge);
}

.quatrefoil-entry:last-child {
  border-block-end: 0;
}

.quatrefoil-entry::before {
  content: '\201C';
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 18px;
  font-family: var(--f-heading);
  font-size: 64px;
  line-height: 1;
  color: var(--k-base);
  opacity: 0.5;
}

.quatrefoil-quote {
  margin: 0;
}

.quatrefoil-note {
  background: var(--k-field);
  color: var(--k-script);
  font-family: var(--f-heading);
  font-size: var(--z-h4);
  font-style: italic;
  font-weight: var(--w-mid);
  line-height: 1.35;
}

.quatrefoil-detail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--g-3);
  margin-block-start: var(--g-3);
  font-size: var(--z-sm);
}

.quatrefoil-person {
  background: var(--k-field);
  color: var(--k-base);
  font-style: normal;
  font-weight: var(--w-mid);
}

.quatrefoil-score {
  background: var(--k-field);
  color: var(--k-dim);
  letter-spacing: 1px;
}

.quatrefoil-day {
  background: var(--k-field);
  color: var(--k-dim);
}

/* ---------------------------------------------------------------- faq */
.parapet {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.parapet-lede {
  background: var(--k-field);
  color: var(--k-script);
  margin-block-end: var(--g-5);
}

.parapet-list {
  display: block;
}

.parapet-entry {
  padding-block: var(--g-4);
  border-block-end: var(--b-fine) solid var(--k-edge);
}

.parapet-ask {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: baseline;
  cursor: pointer;
  list-style: none;
}

.parapet-ask::-webkit-details-marker {
  display: none;
}

.parapet-mark {
  background: var(--k-field);
  color: var(--k-base);
  font-family: var(--f-heading);
  font-size: var(--z-minor);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
}

.parapet-head {
  background: var(--k-field);
  color: var(--k-script);
  font-family: var(--f-heading);
  font-size: var(--z-h4);
  font-style: italic;
  font-weight: var(--w-thick);
}

.parapet-reply {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: baseline;
  margin-block-start: var(--g-3);
}

.parapet-entry[open] .parapet-reply {
  animation: parapet-unroll var(--t-calm) var(--x-land);
}

.parapet-note {
  background: var(--k-field);
  color: var(--k-dim);
  line-height: var(--l-open);
}

@keyframes parapet-unroll {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

/* ---------------------------------------------------------------- table */
.lobby {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.lobby-lede {
  background: var(--k-field);
  color: var(--k-script);
  margin-block-end: var(--g-5);
}

.lobby-scroll {
  overflow-x: auto;
  border-radius: var(--r-4);
  border: var(--b-fine) solid var(--k-edge);
}

.lobby-plate {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  background: var(--k-raised);
  font-size: var(--z-sm);
}

.lobby-plate thead {
  background: var(--k-base);
}

.lobby-plate th[scope='col'] {
  background: var(--k-base);
  color: var(--k-signal);
  font-family: var(--f-base);
  font-size: var(--z-xs-2);
  font-weight: var(--w-mid);
  letter-spacing: var(--e-spread);
  text-align: left;
  text-transform: uppercase;
  padding: var(--g-3) var(--g-4);
}

.lobby-plate th[scope='row'] {
  background: var(--k-raised);
  color: var(--k-script);
  font-weight: var(--w-mid);
  text-align: left;
  padding: var(--g-3) var(--g-4);
}

.lobby-plate td {
  background: var(--k-raised);
  color: var(--k-dim);
  text-align: left;
  padding: var(--g-3) var(--g-4);
}

.lobby-plate tbody tr:nth-child(even) th[scope='row'] {
  background: #212528;
  color: var(--k-script);
}

.lobby-plate tbody tr:nth-child(even) td {
  background: #212528;
  color: var(--k-dim);
}

.lobby-plate tbody tr:hover th[scope='row'] {
  background: #262b2e;
  color: var(--k-script);
  transition: background-color var(--t-brisk) var(--x-land);
}

.lobby-plate tbody tr:hover td {
  background: #262b2e;
  color: var(--k-script);
  transition: background-color var(--t-brisk) var(--x-land);
}

@media (max-width: 640px) {
  .lobby-plate {
    min-width: 0;
  }

  .lobby-plate th[scope='col'],
  .lobby-plate th[scope='row'],
  .lobby-plate td {
    padding: var(--g-2);
  }
}

/* ---------------------------------------------------------------- inline cta */
.banner {
  display: block;
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.banner-tile {
  max-width: 600px;
  margin-inline: auto;
  text-align: center;
  background: var(--k-raised);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-5);
  padding: var(--g-6) var(--g-5);
}

.banner-head {
  background: var(--k-raised);
  color: var(--k-script);
  font-family: var(--f-heading);
  font-size: var(--z-h4);
  font-weight: var(--w-thick);
}

.banner-sub {
  background: var(--k-raised);
  color: var(--k-dim);
  margin-block-start: var(--g-3);
}

.banner-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-block-start: var(--g-4);
  text-decoration: none;
}

.banner-fine {
  display: block;
  background: var(--k-raised);
  color: var(--k-dim);
  font-size: var(--z-xs);
  margin-block-start: var(--g-3);
}

/* ---------------------------------------------------------------- cta strip */
.chevron {
  background: var(--k-signal);
  padding-block: var(--g-6);
}

.chevron-guts {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--g-5);
}

.chevron-copy {
  flex: 1 1 auto;
}

.chevron-head {
  background: var(--k-signal);
  color: var(--k-script);
  font-family: var(--f-heading);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-tight);
  text-transform: uppercase;
  max-width: var(--v-slim);
}

.chevron-note {
  background: var(--k-signal);
  color: var(--k-dim);
  line-height: var(--l-default);
  margin-block-start: var(--g-3);
  max-width: 580px;
}

.chevron-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--g-2);
  flex-shrink: 0;
}

.chevron-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.chevron-fine {
  background: var(--k-signal);
  color: var(--k-dim);
  font-size: var(--z-xs);
}

.chevron-jump {
  background: var(--k-signal);
  color: var(--k-base);
}

.chevron-jump:hover {
  background: var(--k-base);
  color: var(--k-signal);
}

@media (max-width: 880px) {
  .chevron-guts {
    flex-direction: column;
    align-items: stretch;
  }

  .chevron-side {
    align-items: stretch;
  }
}

/* ---------------------------------------------------------------- author card */
.lozenge {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.lozenge-tile {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: var(--g-5);
  background: var(--k-raised);
  border-inline-start: 4px solid var(--k-base);
  border-radius: var(--r-4);
  padding: var(--g-5);
}

.lozenge-photo {
  display: block;
  width: 120px;
  height: 120px;
  border-radius: var(--r-circle);
  object-fit: cover;
}

.lozenge-body {
  display: block;
}

.lozenge-mark {
  display: block;
  background: var(--k-raised);
  color: var(--k-base);
  font-family: var(--f-heading);
  font-size: 56px;
  line-height: 0.6;
}

.lozenge-quote {
  margin: var(--g-3) 0 0;
}

.lozenge-note {
  background: var(--k-raised);
  color: var(--k-script);
  font-size: var(--z-minor);
  font-style: italic;
  line-height: var(--l-default);
}

.lozenge-detail {
  background: var(--k-raised);
  color: var(--k-dim);
  font-size: var(--z-sm);
  letter-spacing: var(--e-spread);
  margin-block-start: var(--g-4);
}

@media (max-width: 640px) {
  .lozenge-tile {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ---------------------------------------------------------------- legal */
.spire {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.spire-part {
  margin-block-end: var(--g-5);
}

.spire-head {
  background: var(--k-field);
  color: var(--k-script);
  font-family: var(--f-base);
  font-size: var(--z-h3);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-regular);
  margin-block-end: var(--g-3);
}

.spire-note {
  background: var(--k-field);
  color: var(--k-dim);
  line-height: var(--l-open);
  margin-block-end: var(--g-3);
}

.spire-list {
  padding-inline-start: var(--g-4);
}

.spire-entry {
  background: var(--k-field);
  color: var(--k-dim);
  line-height: var(--l-open);
  margin-block-end: var(--g-2);
}

.spire-fine {
  display: block;
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-sm);
  line-height: var(--l-open);
}

/* ---------------------------------------------------------------- contact form */
.grove {
  background: var(--k-field);
  padding-block: var(--n-sec-y);
}

.grove-box {
  background: var(--k-raised);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-4);
  padding: var(--g-6) var(--g-5);
}

.grove-line {
  display: block;
  margin-block-end: var(--g-4);
}

.grove-tag {
  display: block;
  background: var(--k-raised);
  color: var(--k-script);
  font-size: var(--z-sm);
  font-weight: var(--w-mid);
  margin-block-end: var(--g-2);
}

.grove-input,
.grove-area {
  display: block;
  width: 100%;
  background: var(--k-field);
  color: var(--k-script);
  border: var(--b-fine) solid var(--k-edge);
  border-radius: var(--r-4);
  font-family: var(--f-base);
  font-size: var(--z-reading);
  padding: var(--g-3);
}

.grove-input:focus,
.grove-area:focus {
  border-color: var(--k-base);
  outline: none;
}

.grove-button {
  width: 100%;
  min-height: 72px;
  background: var(--k-base);
  color: var(--k-signal);
  border: 0;
  border-radius: var(--r-4);
  font-family: var(--f-heading);
  font-size: var(--z-h4);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color var(--t-brisk) var(--x-land), color var(--t-brisk) var(--x-land);
}

.grove-button:hover {
  background: #8ade14;
  color: var(--k-signal);
}

.grove-words {
  background: var(--k-raised);
  color: var(--k-base);
  border-radius: var(--r-4);
  font-weight: var(--w-mid);
  margin-block-start: var(--g-4);
  padding: var(--g-4);
}

/* ---------------------------------------------------------------- error */
.slab {
  background: var(--k-field);
  padding-block: var(--g-7);
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 0 auto;
}

.slab-guts {
  text-align: center;
}

.slab-head {
  position: relative;
  display: inline-block;
  background: var(--k-field);
  color: var(--k-script);
}

.slab-head::before,
.slab-head::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  opacity: 0.6;
}

.slab-head::before {
  color: var(--k-base);
  transform: translate(2px, -2px);
}

.slab-head::after {
  color: #4f9c00;
  transform: translate(-2px, 2px);
}

.slab-note {
  background: var(--k-field);
  color: var(--k-dim);
  line-height: var(--l-open);
  margin-block-start: var(--g-4);
}

.slab-return {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding-inline: var(--g-5);
  margin-block-start: var(--g-5);
  background: var(--k-base);
  color: var(--k-signal);
  border-radius: var(--r-4);
  font-family: var(--f-heading);
  font-size: var(--z-minor);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color var(--t-brisk) var(--x-land), color var(--t-brisk) var(--x-land);
}

.slab-return:hover {
  background: #8ade14;
  color: var(--k-signal);
}

/* ---------------------------------------------------------------- footer */
.portal {
  background: var(--k-field);
  padding-block: var(--g-6);
  margin-block-start: auto;
  border-block-start: var(--b-fine) solid var(--k-edge);
}

.portal-frame {
  width: 100%;
  max-width: calc(var(--v-full) + 2 * var(--v-pad-lg));
  margin-inline: auto;
  padding-inline: var(--v-pad-lg);
}

.portal-masthead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--g-2);
  border-block: 4px solid var(--k-script);
  padding-block: var(--g-4);
}

.portal-brand {
  display: inline-flex;
  text-decoration: none;
}

.portal-brand-media {
  display: block;
  height: 44px;
  width: auto;
}

.portal-issue {
  background: var(--k-field);
  color: var(--k-dim);
  font-family: var(--f-heading);
  font-size: var(--z-xs);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
}

.portal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--g-5);
  padding-block: var(--g-5);
}

.portal-side {
  display: block;
}

.portal-lede {
  background: var(--k-field);
  color: var(--k-script);
  font-family: var(--f-heading);
  font-size: var(--z-minor);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  margin-block-end: var(--g-3);
}

.portal-list {
  list-style: none;
}

.portal-entry {
  display: block;
  margin-block-end: var(--g-2);
}

.portal-jump {
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-sm);
  text-decoration: none;
}

.portal-jump:hover {
  background: var(--k-field);
  color: var(--k-base);
}

.portal-base {
  border-block-start: var(--b-fine) solid var(--k-rule-bold);
  padding-block-start: var(--g-4);
  text-align: center;
}

.portal-fine {
  background: var(--k-field);
  color: var(--k-dim);
  font-size: var(--z-xs);
}

@media (max-width: 640px) {
  .portal-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ---------------------------------------------------------------- cookie */
.mosaic {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 95;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-140%);
  transition: transform var(--t-calm) var(--x-land), opacity var(--t-calm) var(--x-land), visibility 0s linear var(--t-calm);
}

.mosaic.is-live {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: none;
}

.mosaic-band {
  display: flex;
  align-items: center;
  gap: var(--g-4);
  justify-content: space-between;
  width: 100%;
  max-width: calc(var(--v-full) + 2 * var(--v-pad-lg));
  margin-inline: auto;
  background: var(--k-raised);
  border-block-end: var(--b-fine) solid var(--k-rule-bold);
  padding: var(--g-3) var(--v-pad-lg);
}

.mosaic-mark {
  display: block;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  fill: currentColor;
  background: var(--k-raised);
  color: var(--k-base);
}

.mosaic-words {
  flex: 1 1 auto;
  background: var(--k-raised);
  color: var(--k-dim);
  font-size: var(--z-sm);
  line-height: var(--l-default);
}

.mosaic-buttons {
  display: flex;
  align-items: center;
  gap: var(--g-2);
  flex-shrink: 0;
}

.mosaic-yes,
.mosaic-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding-inline: var(--g-4);
  border-radius: var(--r-4);
  font-family: var(--f-heading);
  font-size: var(--z-xs-2);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--t-brisk) var(--x-land), color var(--t-brisk) var(--x-land);
}

.mosaic-yes {
  background: var(--k-base);
  color: var(--k-signal);
  border: 0;
}

.mosaic-yes:hover {
  background: #8ade14;
  color: var(--k-signal);
}

.mosaic-no {
  background: var(--k-field);
  color: var(--k-script);
  border: var(--b-fine) solid var(--k-rule-bold);
}

.mosaic-no:hover {
  background: var(--k-rule-bold);
  color: var(--k-script);
}

@media (max-width: 720px) {
  .mosaic-band {
    flex-wrap: wrap;
    gap: var(--g-2);
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.35;
  }

  .mosaic-words {
    font-size: 13px;
    line-height: 1.35;
    flex: 1 1 100%;
  }

  .mosaic-buttons {
    flex: 1 1 100%;
  }

  .mosaic-yes,
  .mosaic-no {
    flex: 1 1 auto;
    min-height: 40px;
    padding-inline: var(--g-3);
    font-size: 12px;
    white-space: normal;
  }
}

/* ---------------------------------------------------------------- header narrow */
@media (max-width: 900px) {
  .canopy-band {
    height: 64px;
    min-height: 64px;
    padding-inline: var(--g-3);
    gap: var(--g-2);
  }

  .canopy-brand {
    padding: 4px 14px;
  }

  .canopy-brand-media {
    height: 40px;
  }

  .canopy-links {
    display: none;
  }

  .canopy-menu-lever {
    display: inline-flex;
    order: 4;
    margin-left: 0;
  }

  .canopy-buttons {
    margin-inline-start: auto;
    order: 3;
  }

  .canopy-button {
    min-height: 40px;
    padding-inline: var(--g-3);
    font-size: 11px;
  }
}

@media (max-width: 620px) {
  .canopy-band {
    flex-wrap: wrap;
    height: auto;
    min-height: 64px;
    padding-block: var(--g-2);
  }

  .canopy-buttons {
    order: 5;
    flex-basis: 100%;
    margin-inline-start: 0;
  }

  .canopy-button {
    width: 100%;
  }

  .canopy-menu-lever {
    margin-left: auto;
  }
}

/* ---------------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal] {
    opacity: 1;
    clip-path: none;
    transform: none;
  }

  .facet-figure {
    transform: rotate(2deg);
  }
}

/* ---------------------------------------------------------------- offer button (scripts/cta-style.mjs) */
.hearth-act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--g-4);
  min-height: 44px;
  border-radius: var(--r-4);
  border: var(--b-even) solid #0369a1;
  font-family: var(--f-heading);
  font-size: var(--z-xs-2);
  font-weight: var(--w-thick);
  letter-spacing: var(--e-spread);
  background: #0284c7;
  color: #000000;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color var(--t-calm) var(--x-land), transform var(--t-calm) var(--x-land);
  animation: hearth-ripple 2.21s linear infinite;
}

.hearth-act:hover {
  background: #0369a1;
  color: #ffffff;
  animation: none;
}

.hearth-act:active {
  background: #075985;
  color: #ffffff;
}

.hearth-act:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
}

@keyframes hearth-ripple {
  0% {
    transform: scale(1);
    animation-timing-function: var(--x-land);
  }

  14.480% {
    transform: scale(1.04);
    animation-timing-function: var(--x-smooth);
  }

  43.439%,
  100% {
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hearth-act {
    animation: none !important;
    transition: none !important;
  }
}
