.page-products{
  --p-tint-moss: #E6EEE9;
  --p-tint-sand: #EFEAE0;
  --p-ink-soft: rgba(16,26,20,.68);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  line-height: 1.75;
  overflow-x: clip;
}

.page-products .p-hero{
  position: relative;
  padding: clamp(22px, 4vw, 40px) 0 0;
  background: var(--paper);
  overflow: hidden;
}
.page-products .p-hero::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 8px;
  background: linear-gradient(90deg, var(--bamboo) 0 58%, var(--sprint) 58% 100%);
  opacity: .85;
}
.page-products .p-hero__glow{
  position: absolute;
  top: -30%; right: -18%;
  width: min(760px, 100vw);
  aspect-ratio: 1;
  background: radial-gradient(circle at 50% 50%, rgba(242,193,78,.34), rgba(242,193,78,0) 64%);
  pointer-events: none;
}
.page-products .p-hero__inner{
  position: relative;
  display: grid;
  gap: clamp(26px, 5vw, 46px);
  padding-bottom: clamp(30px, 5vw, 52px);
}
.page-products .p-hero__copy{ max-width: 40ch; }
.page-products .p-hero__title{
  margin: 14px 0 18px;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(38px, 8.4vw, 82px);
  line-height: .98;
  letter-spacing: -.025em;
}
.page-products .p-hero__title em{
  font-style: normal;
  color: var(--sprint);
  display: inline-block;
  position: relative;
}
.page-products .p-hero__title em::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: .08em;
  height: .09em;
  background: var(--bamboo);
  transform: skewX(-28deg);
  opacity: .55;
}
.page-products .p-hero__lede{
  margin: 0;
  max-width: 46ch;
  font-size: clamp(15px, 2vw, 17px);
  color: var(--p-ink-soft);
}
.page-products .p-hero__stack{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-content: start;
}
.page-products .stat-card{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 18px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: 0 1px 0 rgba(16,26,20,.04);
}
.page-products .stat-card__num{
  font-size: clamp(20px, 3.4vw, 26px);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.2;
  color: var(--ink);
}
.page-products .stat-card__label{
  font-size: 12px;
  letter-spacing: .06em;
  color: var(--stone);
}
.page-products .stat-card--lg{
  grid-column: 1 / -1;
  background: var(--forest);
  border-color: transparent;
  transform: rotate(-1deg);
}
.page-products .stat-card--lg .stat-card__num{ color: var(--paper); font-size: clamp(30px, 6vw, 42px); }
.page-products .stat-card--lg .stat-card__label{ color: var(--moss); }
.page-products .stat-card--tilt-a{ transform: rotate(1.4deg); border-color: rgba(59,122,87,.4); }
.page-products .stat-card--tilt-b{ transform: rotate(-1.2deg); background: var(--p-tint-sand); }
.page-products .stat-card--wide{ grid-column: 1 / -1; background: transparent; border-style: dashed; }

.page-products .p-rail{
  position: relative;
  border-top: 1px solid var(--line-soft);
  background: var(--paper);
}
.page-products .p-rail__list{
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 14px 0;
  list-style: none;
  overflow-x: auto;
  scrollbar-width: thin;
}
.page-products .p-rail__link{
  display: inline-block;
  white-space: nowrap;
  padding: 7px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-pill);
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--ink);
  text-decoration: none;
  transition: background 180ms var(--ease), border-color 180ms var(--ease), color 180ms var(--ease);
}
.page-products .p-rail__link:hover,
.page-products .p-rail__link:focus-visible{
  background: var(--bamboo);
  border-color: var(--bamboo);
  color: var(--paper);
}

.page-products .p-section{
  padding: clamp(48px, 8vw, 96px) 0;
  position: relative;
}
.page-products .p-section--sand{ background: var(--p-tint-sand); }
.page-products .p-section--moss{ background: var(--p-tint-moss); }
.page-products .p-section--forest{ background: var(--forest); color: var(--paper); }
.page-products .p-section--forest .p-head__title{ color: var(--paper); }
.page-products .p-section--forest .p-head__lede{ color: rgba(247,245,239,.76); }
.page-products .p-section--forest .p-head__num{ color: var(--lamp); }

.page-products .p-head{ margin-bottom: clamp(26px, 4vw, 42px); max-width: 62ch; }
.page-products .p-head__num{
  display: block;
  font-size: 12px;
  letter-spacing: .22em;
  color: var(--bamboo);
  margin-bottom: 10px;
}
.page-products .p-head__title{
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(26px, 4.6vw, 44px);
  line-height: 1.12;
  letter-spacing: -.02em;
}
.page-products .p-head__lede{
  margin: 0;
  font-size: clamp(15px, 2vw, 17px);
  color: var(--p-ink-soft);
}

.page-products .editions{ position: relative; }
.page-products .editions__grid{
  display: grid;
  gap: 16px;
  position: relative;
}
.page-products .edition{
  padding: clamp(20px, 3.4vw, 30px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  transition: border-color 200ms var(--ease), transform 240ms var(--ease);
}
.page-products .edition:hover,
.page-products .edition:focus-within{ transform: translateY(-3px); }
.page-products .edition--std:hover{ border-color: var(--bamboo); }
.page-products .edition--plus{
  border-color: rgba(255,107,53,.55);
  box-shadow: inset 0 0 0 1px rgba(255,107,53,.14);
}
.page-products .edition__name{
  margin: 14px 0 8px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(20px, 3vw, 26px);
  line-height: 1.25;
}
.page-products .edition__desc{
  margin: 0 0 16px;
  font-size: 15px;
  color: var(--p-ink-soft);
}
.page-products .edition__list{
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.page-products .edition__list li{
  position: relative;
  padding-left: 20px;
  font-size: 15px;
  line-height: 1.7;
}
.page-products .edition__list li::before{
  content: "";
  position: absolute;
  left: 2px; top: .62em;
  width: 8px; height: 8px;
  border-radius: 2px;
  background: var(--bamboo);
  transform: rotate(45deg);
}
.page-products .edition--plus .edition__list li::before{ background: var(--sprint); }
.page-products .edition__fit{
  margin: 0;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
  font-size: 14px;
  color: var(--p-ink-soft);
}
.page-products .edition__fit-key{
  display: inline-block;
  margin-right: 8px;
  padding: 1px 8px;
  border-radius: var(--r-pill);
  background: var(--p-tint-moss);
  color: var(--forest);
  font-size: 12px;
  letter-spacing: .1em;
}

.page-products .p-fig{
  margin: clamp(24px, 4vw, 44px) 0 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: linear-gradient(160deg, var(--forest), var(--bamboo));
}
.page-products .p-fig img{
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: cover;
}
.page-products .p-fig figcaption{
  padding: 12px 18px;
  font-size: 13px;
  background: var(--paper);
  color: var(--stone);
  border-top: 1px solid var(--line-soft);
}
.page-products .p-fig--strip{
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
  transform: rotate(-.8deg);
}
.page-products .p-fig--banner{ margin-top: 0; margin-bottom: clamp(24px, 4vw, 40px); }
.page-products .p-fig--banner img{ aspect-ratio: 2 / 1; }

.page-products .p-install{ display: grid; gap: clamp(24px, 4vw, 44px); }
.page-products .p-head--left{ margin-bottom: 20px; }

.page-products .req-table{
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--paper);
}
.page-products .req-table table{
  width: 100%;
  border-collapse: collapse;
  min-width: 520px;
}
.page-products .req-table__cap{
  caption-side: top;
  padding: 12px 18px;
  text-align: left;
  font-size: 12px;
  letter-spacing: .14em;
  color: var(--stone);
  border-bottom: 1px solid var(--line-soft);
}
.page-products .req-table th,
.page-products .req-table td{
  padding: 13px 18px;
  text-align: left;
  font-size: 14px;
  border-bottom: 1px solid var(--line-soft);
}
.page-products .req-table thead th{
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--stone);
  font-weight: 500;
  background: var(--p-tint-sand);
}
.page-products .req-table tbody th{ font-weight: 700; color: var(--ink); }
.page-products .req-table tbody tr:last-child th,
.page-products .req-table tbody tr:last-child td{ border-bottom: 0; }
.page-products .req-table .mono{ font-size: 13px; }

.page-products .steps{ margin: 24px 0 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.page-products .step{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
  padding: 14px 16px;
  border-left: 2px solid var(--sprint);
  background: linear-gradient(90deg, rgba(255,107,53,.07), rgba(255,107,53,0) 70%);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
.page-products .step__num{
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--clay);
  padding-top: 4px;
}
.page-products .step__name{
  margin: 0 0 4px;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
}
.page-products .step p{ margin: 0; font-size: 14px; color: var(--p-ink-soft); }

.page-products .p-fig--tilt{ margin-top: 0; transform: rotate(1.2deg); }

.page-products .signup{ display: grid; gap: clamp(20px, 3.4vw, 34px); }
.page-products .signup__steps{ display: grid; gap: 12px; }
.page-products .sstep{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
}
.page-products .sstep summary{
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
}
.page-products .sstep summary::-webkit-details-marker{ display: none; }
.page-products .sstep__num{
  font-size: 26px;
  line-height: 1;
  color: var(--bamboo);
  font-weight: 700;
  letter-spacing: -.03em;
}
.page-products .sstep__title{
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(17px, 2.4vw, 21px);
}
.page-products .sstep__hint{
  margin-left: auto;
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--stone);
  white-space: nowrap;
}
.page-products .sstep[open]{ border-color: rgba(255,107,53,.5); }
.page-products .sstep[open] .sstep__hint{ color: var(--sprint); }
.page-products .sstep__body{
  padding: 0 18px 18px 18px;
  border-top: 1px solid var(--line-soft);
  position: relative;
}
.page-products .sstep__body::before{
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--sprint);
  transform: skewY(-18deg);
}
.page-products .sstep__body p{
  margin: 14px 0 0;
  font-size: 15px;
  color: var(--p-ink-soft);
}

.page-products .signup__aside{
  padding: 22px;
  border-radius: var(--r-md);
  background: var(--forest);
  color: var(--paper);
  align-self: start;
}
.page-products .signup__aside-title{
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
}
.page-products .signup__aside p{
  margin: 0 0 18px;
  font-size: 14px;
  color: rgba(247,245,239,.78);
}
.page-products .signup__aside .btn--ghost{
  border-color: rgba(247,245,239,.42);
  color: var(--paper);
}

.page-products .triple{ display: grid; gap: 14px; }
.page-products .triple__item{
  padding: 22px;
  border-radius: var(--r-md);
  background: var(--paper);
  border-top: 3px solid var(--moss);
  transition: border-color 200ms var(--ease);
}
.page-products .triple__item:nth-child(2){ border-top-color: var(--bamboo); }
.page-products .triple__item:nth-child(3){ border-top-color: var(--sprint); }
.page-products .triple__item:hover{ border-top-color: var(--sprint); }
.page-products .triple__num{
  display: inline-block;
  font-size: 12px;
  letter-spacing: .2em;
  color: var(--stone);
  margin-bottom: 8px;
}
.page-products .triple__name{
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 19px;
}
.page-products .triple__item p{ margin: 0; font-size: 15px; color: var(--p-ink-soft); }

.page-products .p-focus{ display: grid; gap: clamp(24px, 4vw, 44px); }
.page-products .p-fig--left{ margin-top: 0; }
.page-products .focus__sub{
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
}
.page-products .focus__logic,
.page-products .focus__path{
  padding: 18px 20px;
  border-radius: var(--r-md);
  background: var(--p-tint-sand);
  margin-bottom: 14px;
}
.page-products .focus__logic p,
.page-products .focus__note{ margin: 0; font-size: 15px; color: var(--p-ink-soft); }
.page-products .path{
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
  counter-reset: pathstep;
  display: grid;
  gap: 8px;
}
.page-products .path li{
  counter-increment: pathstep;
  position: relative;
  padding-left: 30px;
  font-size: 15px;
}
.page-products .path li::before{
  content: counter(pathstep, decimal-leading-zero);
  position: absolute;
  left: 0; top: .1em;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--bamboo);
  letter-spacing: .06em;
}

.page-products .p-commute{ display: grid; gap: clamp(24px, 4vw, 44px); }
.page-products .commute__list{
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 14px;
}
.page-products .commute__list li{
  padding-left: 16px;
  border-left: 1px solid rgba(247,245,239,.24);
  font-size: 15px;
  color: rgba(247,245,239,.82);
}
.page-products .commute__list strong{
  display: block;
  color: var(--lamp);
  font-size: 13px;
  letter-spacing: .12em;
  font-weight: 700;
  margin-bottom: 4px;
}
.page-products .commute__tail{
  margin: 0;
  font-size: 15px;
  color: rgba(247,245,239,.72);
  padding-top: 16px;
  border-top: 1px solid rgba(247,245,239,.16);
}
.page-products .p-fig--tall{
  margin-top: 0;
  align-self: start;
  background: linear-gradient(180deg, rgba(59,122,87,.6), var(--forest));
}
.page-products .p-fig--tall img{ aspect-ratio: 3 / 4; }
.page-products .p-fig--tall figcaption{
  background: rgba(247,245,239,.06);
  color: rgba(247,245,239,.7);
  border-top-color: rgba(247,245,239,.14);
}

.page-products .log-list{
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}
.page-products .log{
  border-bottom: 1px solid var(--line);
  position: relative;
}
.page-products .log::before{
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--bamboo);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 240ms var(--ease);
}
.page-products .log[open]::before{ transform: scaleY(1); }
.page-products .log summary{
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px 16px 16px 20px;
  cursor: pointer;
  list-style: none;
  transition: background 180ms var(--ease);
}
.page-products .log summary::-webkit-details-marker{ display: none; }
.page-products .log summary:hover{ background: rgba(59,122,87,.06); }
.page-products .log__ver{
  font-size: 13px;
  letter-spacing: .08em;
  color: var(--sprint);
  font-weight: 700;
}
.page-products .log__title{
  font-family: var(--font-display);
  font-size: clamp(15px, 2.2vw, 18px);
  font-weight: 700;
}
.page-products .log__more{
  margin-left: auto;
  font-size: 12px;
  letter-spacing: .1em;
  color: var(--stone);
}
.page-products .log[open] .log__more{ color: var(--bamboo); }
.page-products .log__items{
  margin: 0;
  padding: 0 20px 18px 20px;
  list-style: none;
  display: grid;
  gap: 8px;
}
.page-products .log__items li{
  position: relative;
  padding-left: 16px;
  font-size: 15px;
  color: var(--p-ink-soft);
}
.page-products .log__items li::before{
  content: "";
  position: absolute;
  left: 0; top: .68em;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--bamboo);
}
.page-products .log__foot{
  margin: 22px 0 0;
  font-size: 14px;
  color: var(--stone);
}

.page-products .p-end{ background: var(--paper); }
.page-products .p-end__inner{
  padding: clamp(26px, 4vw, 44px);
  border-radius: var(--r-lg);
  background: var(--forest);
  color: var(--paper);
  position: relative;
  overflow: hidden;
}
.page-products .p-end__inner::before{
  content: "";
  position: absolute;
  right: -60px; top: -60px;
  width: 220px; height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(242,193,78,.32), rgba(242,193,78,0) 70%);
}
.page-products .p-end__title{
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(24px, 4vw, 36px);
  line-height: 1.15;
  letter-spacing: -.02em;
}
.page-products .p-end__text{
  margin: 0 0 22px;
  max-width: 56ch;
  font-size: 15px;
  color: rgba(247,245,239,.78);
}
.page-products .p-end__links{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  position: relative;
}
.page-products .p-end__links .btn--ghost{
  border-color: rgba(247,245,239,.4);
  color: var(--paper);
}

@media (min-width: 640px){
  .page-products .signup{ grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
  .page-products .triple{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-products .triple__item:nth-child(2){ transform: translateY(-8px); }
  .page-products .p-rail__list{ justify-content: flex-start; }
}

@media (min-width: 900px){
  .page-products .p-hero__inner{
    grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
    align-items: end;
  }
  .page-products .p-hero__stack{ transform: translateY(-6px); }
  .page-products .editions__grid{ grid-template-columns: 1fr 1fr; gap: 0; }
  .page-products .editions__grid::before{
    content: "";
    position: absolute;
    left: 50%; top: 12px; bottom: 12px;
    width: 2px;
    background: linear-gradient(180deg, var(--bamboo), rgba(59,122,87,.15));
    transform: translateX(-50%);
  }
  .page-products .edition{ border-radius: var(--r-lg); }
  .page-products .edition--std{ margin-right: 20px; }
  .page-products .edition--plus{ margin-left: 20px; }
  .page-products .p-install{ grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; }
  .page-products .p-fig--tilt{ margin-top: 34px; }
  .page-products .p-focus{ grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
  .page-products .p-commute{ grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); align-items: start; }
  .page-products .p-rail__list{ gap: 12px; }
}

@media (min-width: 1100px){
  .page-products .p-hero__stack{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .page-products .p-fig--strip{ margin-right: 0; margin-left: auto; }
}

@media (prefers-reduced-motion: reduce){
  .page-products *{
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}
