@font-face {
  font-family: Cormorant Garamond Local;
  src: url(/fonts/cormorant-garamond-regular.woff2) format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  --ink: #0c0f0c;
  --ink-soft: #121712;
  --ink-raised: #1a2018;
  --ink-line: #343b31;
  --paper: #f3f0e7;
  --paper-deep: #e6e2d6;
  --paper-line: #cbc8bc;
  --lime: #c8d99b;
  --lime-strong: #d8e6af;
  --lime-dark: #596740;
  --wine: #783d49;
  --white: #fbfaf4;
  --muted: #9da49a;
  --muted-dark: #596057;
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --shell: 1420px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  background: var(--ink);
}
body {
  background: var(--ink);
  color: var(--white);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
  margin: 0;
  font-size: 16px;
}
body:has(dialog[open]) {
  overflow: hidden;
}
body.intro-open {
  overflow: hidden;
}
button,
input,
select {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  border: 0;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  display: block;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--lime);
  outline-offset: 4px;
}
.shell {
  width: min(calc(100% - 64px), var(--shell));
  margin-inline: auto;
}
.sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}
.skip-link {
  z-index: 100;
  background: var(--lime);
  color: var(--ink);
  padding: 12px 18px;
  transition: transform 0.18s;
  position: fixed;
  top: 16px;
  left: 20px;
  transform: translateY(-160%);
}
.skip-link:focus {
  transform: translateY(0);
}
.eyebrow {
  color: var(--lime);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin: 0 0 18px;
  font-size: 11px;
  font-weight: 650;
}
.eyebrow--ink {
  color: var(--lime-dark);
}
.button {
  cursor: pointer;
  letter-spacing: 0.01em;
  border: 1px solid #0000;
  border-radius: 3px;
  justify-content: center;
  align-items: center;
  gap: 18px;
  min-height: 52px;
  padding: 0 24px;
  font-size: 13px;
  font-weight: 650;
  transition:
    background-color 0.18s,
    border-color 0.18s,
    color 0.18s,
    transform 0.18s;
  display: inline-flex;
}
.button:hover {
  transform: translateY(-2px);
}
.button--lime {
  background: var(--lime);
  color: var(--ink);
}
.button--lime:hover {
  background: var(--lime-strong);
}
.button--ghost {
  color: var(--white);
  background: 0 0;
  border-color: #737970;
}
.button--ghost:hover {
  border-color: var(--white);
  background: #1b201b;
}
.button--dark {
  background: var(--ink);
  color: var(--white);
}
.button--dark:hover {
  background: #252b23;
}
.hero {
  background: var(--ink);
  border-bottom: 1px solid var(--ink-line);
  min-height: 504px;
  overflow: hidden;
}
.site-header {
  border-bottom: 1px solid var(--ink-line);
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 32px;
  min-height: 84px;
  display: grid;
}
.header-actions {
  align-items: center;
  gap: 8px;
  display: flex;
}
.header-intro {
  color: #aeb4ab;
  cursor: pointer;
  background: 0 0;
  border: 1px solid #0000;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  font-size: 11px;
  display: inline-flex;
}
.header-intro:hover {
  border-color: var(--ink-line);
  color: var(--white);
}
.site-menu {
  display: none;
  position: relative;
}
.site-menu summary {
  border: 1px solid var(--ink-line);
  min-width: 44px;
  min-height: 44px;
  color: var(--white);
  cursor: pointer;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  font-size: 11px;
  list-style: none;
  display: inline-flex;
}
.site-menu summary::-webkit-details-marker {
  display: none;
}
.site-menu nav {
  z-index: 40;
  background: #111611;
  border: 1px solid #4b5348;
  width: min(280px, 100vw - 28px);
  padding: 8px;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  box-shadow: 0 24px 60px #0006;
}
.site-menu nav a,
.site-menu nav button {
  color: #e7e9e3;
  cursor: pointer;
  text-align: left;
  background: 0 0;
  border-bottom: 1px solid #2b3229;
  align-items: center;
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  font-size: 13px;
  display: flex;
}
.site-menu nav a:hover,
.site-menu nav button:hover {
  color: var(--lime);
  background: #1a2118;
}
.brand-link {
  align-items: center;
  width: 180px;
  min-height: 44px;
  display: flex;
}
.brand-logo,
.footer-logo {
  filter: invert() saturate(0) brightness(1.18);
  width: 180px;
  height: auto;
}
.availability {
  color: #d4d6d0;
  justify-self: center;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  display: flex;
}
.live-dot {
  background: var(--lime);
  border-radius: 50%;
  width: 9px;
  height: 9px;
  display: inline-block;
  box-shadow: 0 0 0 5px #c8d99b1a;
}
.site-nav {
  color: #c6cac2;
  align-items: center;
  gap: 26px;
  font-size: 12px;
  display: flex;
}
.site-nav a {
  justify-content: center;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: 12px 3px;
  display: inline-flex;
  position: relative;
}
.site-nav a:after {
  content: "";
  background: var(--lime);
  height: 1px;
  transition: right 0.18s;
  position: absolute;
  bottom: 6px;
  left: 0;
  right: 100%;
}
.site-nav a:hover:after {
  right: 0;
}
.header-cta {
  border: 1px solid var(--ink-line);
  min-height: 44px;
  color: var(--white);
  cursor: pointer;
  background: 0 0;
  border-radius: 3px;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  font-size: 12px;
  transition:
    border-color 0.18s,
    background-color 0.18s;
  display: inline-flex;
}
.header-cta:hover {
  border-color: var(--lime);
  background: var(--ink-raised);
}
.hero-grid {
  grid-template-columns: 43% 57%;
  align-items: stretch;
  min-height: 340px;
  display: grid;
}
.hero-copy {
  z-index: 2;
  flex-direction: column;
  justify-content: center;
  padding: 22px 40px 22px 0;
  animation: 0.7s cubic-bezier(0.2, 0.75, 0.2, 1) both hero-copy-in;
  display: flex;
  position: relative;
}
.hero-copy h1,
.section-heading h2,
.quality-copy h2,
.contact-grid h2,
.faq-grid h2,
footer h2,
.request-dialog h2 {
  font-family: var(--serif);
  letter-spacing: -0.045em;
  margin: 0;
  font-weight: 400;
}
.hero-copy h1 {
  max-width: 650px;
  font-size: clamp(56px, 4.55vw, 72px);
  line-height: 0.88;
}
.hero-copy h1 span,
.section-heading h2 span,
.quality-copy h2 span,
.contact-grid h2 span,
.faq-grid h2 span,
footer h2 span {
  color: var(--lime);
  font-style: italic;
  display: block;
}
.hero-lead {
  color: #bdc2b9;
  max-width: 510px;
  margin: 19px 0 0;
  font-size: 15px;
  line-height: 1.7;
}
.hero-actions {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
  display: flex;
}
.hero-art {
  border-left: 1px solid var(--ink-line);
  min-height: 340px;
  animation: 0.9s cubic-bezier(0.2, 0.75, 0.2, 1) both hero-art-in;
  position: relative;
  overflow: hidden;
}
.hero-art img {
  object-fit: cover;
  object-position: 66% center;
  transition: transform 1.2s cubic-bezier(0.2, 0.75, 0.2, 1);
}
.hero-art:hover img {
  transform: scale(1.025);
}
.hero-art-label {
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  background: #0c0f0cd1;
  border: 1px solid #fff3;
  max-width: 210px;
  padding: 13px 15px;
  position: absolute;
  bottom: 20px;
  left: 22px;
}
.hero-art-label span,
.hero-art-label strong {
  display: block;
}
.hero-art-label span {
  color: var(--lime);
  letter-spacing: 0.14em;
  margin-bottom: 7px;
  font-size: 9px;
}
.hero-art-label strong {
  color: #e8eae4;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
}
.hero-benefits {
  border-top: 1px solid var(--ink-line);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-height: 80px;
  display: grid;
}
.hero-benefits > div {
  color: var(--lime);
  align-items: center;
  gap: 17px;
  padding: 20px 28px;
  display: flex;
}
.hero-benefits > div:first-child {
  padding-left: 0;
}
.hero-benefits > div + div {
  border-left: 1px solid var(--ink-line);
}
.hero-benefits span {
  color: #e0e2dc;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  display: flex;
}
.hero-benefits small {
  color: #8e958b;
  font-size: 11px;
}
.catalog-section {
  background: var(--ink-soft);
  padding: 24px 0 118px;
  scroll-margin-top: 16px;
}
.section-heading {
  grid-template-columns: 1.3fr 0.7fr;
  align-items: end;
  gap: 80px;
  display: grid;
}
.section-heading h2,
.quality-copy h2,
.contact-grid h2,
.faq-grid h2 {
  font-size: clamp(48px, 4.25vw, 66px);
  line-height: 0.95;
}
.section-heading > p,
.quality-intro {
  max-width: 510px;
  color: var(--muted-dark);
  margin: 0 0 5px;
  font-size: 14px;
  line-height: 1.75;
}
.section-heading--dark > p {
  color: var(--muted);
}
.catalog-section .section-heading {
  grid-template-columns: 1fr 390px;
  gap: 50px;
}
.catalog-section .section-heading .eyebrow {
  margin-bottom: 10px;
}
.catalog-section .section-heading h2 {
  font-size: clamp(34px, 3vw, 46px);
  line-height: 1;
}
.catalog-section .section-heading h2 span {
  margin-left: 0.16em;
  display: inline;
}
.catalog-toolbar {
  border: 1px solid var(--ink-line);
  background: #0f130f;
  grid-template-columns: 270px minmax(0, 1fr) 250px;
  align-items: stretch;
  min-height: 64px;
  margin-top: 0;
  display: grid;
}
.search-control {
  border-right: 1px solid var(--ink-line);
  color: #a9afa5;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 0 18px;
  display: flex;
}
.search-control input {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  color: var(--white);
  background: 0 0;
  border: 0;
  outline: 0;
  font-size: 13px;
}
.search-control input::placeholder {
  color: #858c82;
}
.category-list {
  scrollbar-width: none;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  display: flex;
  overflow-x: auto;
}
.category-list::-webkit-scrollbar {
  display: none;
}
.category-list button {
  color: #aeb4ab;
  cursor: pointer;
  background: 0 0;
  border: 1px solid #0000;
  border-radius: 999px;
  flex: none;
  min-height: 44px;
  padding: 0 15px;
  font-size: 12px;
  transition:
    background-color 0.16s,
    color 0.16s,
    border-color 0.16s;
}
.category-list button:hover {
  border-color: var(--ink-line);
  color: var(--white);
}
.category-list button.is-active {
  background: var(--lime);
  color: var(--ink);
}
.sort-control {
  border-left: 1px solid var(--ink-line);
  align-items: center;
  display: flex;
  position: relative;
}
.sort-control select {
  appearance: none;
  color: #d9dcd6;
  cursor: pointer;
  background: 0 0;
  border: 0;
  outline: 0;
  width: 100%;
  min-height: 62px;
  padding: 0 42px 0 18px;
  font-size: 12px;
}
.sort-control select option {
  background: var(--ink-raised);
  color: var(--white);
}
.sort-control svg {
  pointer-events: none;
  position: absolute;
  right: 17px;
}
.catalog-meta {
  color: #7f867d;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  justify-content: space-between;
  padding: 17px 2px;
  font-size: 10px;
  display: flex;
}
.catalog-layout {
  grid-template-columns: minmax(0, 1fr) 302px;
  align-items: start;
  gap: 18px;
  display: grid;
}
.product-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
  display: grid;
}
.product-card {
  border: 1px solid var(--ink-line);
  background: #101410;
  border-radius: 4px;
  min-width: 0;
  transition:
    border-color 0.2s,
    transform 0.22s,
    box-shadow 0.22s;
  overflow: hidden;
}
.product-card:hover {
  border-color: #68705f;
  transform: translateY(-4px);
  box-shadow: 0 20px 42px #00000038;
}
.product-image {
  aspect-ratio: 1/1.02;
  background: #161c14;
  position: relative;
  overflow: hidden;
}
.product-image img {
  object-fit: cover;
  transition: transform 0.45s cubic-bezier(0.2, 0.75, 0.2, 1);
}
.product-card:hover .product-image img {
  transform: scale(1.035);
}
.product-category,
.freshness-pill,
.favorite-button {
  z-index: 1;
  position: absolute;
}
.product-category {
  color: #d6d9d2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  background: #0c0f0ccc;
  border: 1px solid #fff3;
  border-radius: 2px;
  padding: 7px 9px;
  font-size: 8px;
  top: 10px;
  left: 10px;
}
.favorite-button {
  width: 44px;
  height: 44px;
  color: var(--white);
  cursor: pointer;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  background: #0c0f0cc7;
  border: 1px solid #fff3;
  border-radius: 50%;
  place-items: center;
  transition:
    color 0.16s,
    border-color 0.16s,
    transform 0.16s;
  display: grid;
  top: 10px;
  right: 10px;
}
.favorite-button:hover,
.favorite-button[aria-pressed="true"] {
  color: #c98a96;
  border-color: #b17b84;
  transform: scale(1.05);
}
.freshness-pill {
  color: var(--white);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  background: #0c0f0cd4;
  align-items: baseline;
  gap: 5px;
  padding: 8px 10px;
  display: flex;
  bottom: 10px;
  left: 10px;
}
.freshness-pill span {
  color: #a7ada3;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  font-size: 8px;
}
.freshness-pill strong {
  color: var(--lime);
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
}
.freshness-pill small {
  color: #8d938a;
  font-size: 8px;
}
.product-content {
  padding: 16px;
}
.product-title-row,
.product-origin,
.stock-data__line,
.product-footer,
.reserve-data,
.cart-panel__head,
.cart-total,
.dialog-total {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}
.product-title-row > div {
  min-width: 0;
}
.product-title-row span {
  color: #a3a99f;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 10px;
}
.product-title-row h3 {
  color: var(--white);
  font-family: var(--serif);
  letter-spacing: -0.02em;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 4px 0 0;
  font-size: 21px;
  font-weight: 400;
  overflow: hidden;
}
.product-title-row > small {
  color: #8a9187;
  flex: none;
  font-size: 10px;
}
.product-origin {
  color: #858c82;
  margin-top: 14px;
  font-size: 9px;
}
.product-origin span:last-child {
  text-align: right;
}
.stock-data {
  border-top: 1px solid #2a3028;
  border-bottom: 1px solid #2a3028;
  margin-top: 15px;
  padding: 14px 0;
}
.stock-data__line {
  color: #afb5ac;
  font-size: 10px;
}
.stock-data__line > span {
  align-items: center;
  gap: 7px;
  display: inline-flex;
}
.stock-data__line i {
  background: var(--lime);
  border-radius: 50%;
  width: 7px;
  height: 7px;
  display: inline-block;
}
.stock-data__line .stock-low i {
  background: #c6818e;
}
.stock-data__line strong {
  color: #e1e4dd;
  font-weight: 550;
}
.stock-meter {
  background: #2b3129;
  height: 3px;
  margin-top: 10px;
  overflow: hidden;
}
.stock-meter span {
  width: var(--stock);
  background: var(--lime);
  transform-origin: 0;
  height: 100%;
  animation: 0.7s ease-out both stock-in;
  display: block;
}
.reserve-data {
  color: #858c82;
  justify-content: flex-start;
  margin-top: 11px;
  font-size: 9px;
}
.product-footer {
  align-items: end;
  margin-top: 16px;
}
.product-price {
  min-width: 0;
}
.product-price strong,
.product-price span {
  display: block;
}
.product-price strong {
  color: var(--white);
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 400;
}
.product-price span {
  color: #858c82;
  margin-top: 3px;
  font-size: 8px;
}
.add-to-cart {
  background: var(--lime);
  min-height: 44px;
  color: var(--ink);
  cursor: pointer;
  border-radius: 2px;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  font-size: 10px;
  font-weight: 650;
  transition: background-color 0.16s;
  display: inline-flex;
}
.add-to-cart:hover {
  background: var(--lime-strong);
}
.quantity-stepper {
  border: 1px solid #454c42;
  grid-template-columns: 44px minmax(30px, auto) 44px;
  align-items: center;
  min-height: 44px;
  display: grid;
}
.quantity-stepper button {
  width: 44px;
  height: 44px;
  color: var(--white);
  cursor: pointer;
  background: 0 0;
  place-items: center;
  display: grid;
}
.quantity-stepper button:hover {
  background: #252b23;
}
.quantity-stepper span {
  color: var(--lime);
  text-align: center;
  font-size: 11px;
}
.empty-state {
  border: 1px solid var(--ink-line);
  color: #9ca39a;
  text-align: center;
  grid-column: 1/-1;
  place-content: center;
  justify-items: center;
  min-height: 420px;
  padding: 30px;
  display: grid;
}
.empty-state h3 {
  color: var(--white);
  font-family: var(--serif);
  margin: 18px 0 8px;
  font-size: 28px;
  font-weight: 400;
}
.empty-state p {
  margin-bottom: 20px;
  font-size: 12px;
}
.empty-state button {
  background: var(--lime);
  min-height: 44px;
  color: var(--ink);
  cursor: pointer;
  padding: 0 18px;
}
.cart-panel {
  background: var(--ink-raised);
  border: 1px solid #4a5246;
  border-radius: 4px;
  padding: 22px;
  position: sticky;
  top: 18px;
}
.cart-panel__head {
  border-bottom: 1px solid #343b31;
  align-items: flex-start;
  padding-bottom: 19px;
}
.cart-panel__head span:first-child {
  color: #8f968c;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 9px;
}
.cart-panel__head h3 {
  font-family: var(--serif);
  margin: 5px 0 0;
  font-size: 30px;
  font-weight: 400;
}
.cart-count {
  background: var(--lime);
  min-width: 34px;
  height: 34px;
  color: var(--ink);
  border-radius: 50%;
  place-items: center;
  font-size: 11px;
  font-weight: 700;
  display: grid;
}
.cart-lines {
  max-height: 300px;
  padding-right: 3px;
  overflow-y: auto;
}
.cart-line {
  border-bottom: 1px solid #343b31;
  grid-template-columns: 52px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 11px;
  padding: 13px 0;
  display: grid;
}
.cart-line img {
  object-fit: cover;
  width: 52px;
  height: 52px;
}
.cart-line strong,
.cart-line span {
  display: block;
}
.cart-line strong {
  color: #e4e6e0;
  font-family: var(--serif);
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-bottom: 5px;
  font-size: 15px;
  font-weight: 400;
  overflow: hidden;
}
.cart-line span {
  color: #858c82;
  font-size: 9px;
}
.cart-line button {
  color: #c7cbc4;
  cursor: pointer;
  background: 0 0;
  border: 1px solid #434b40;
  place-items: center;
  width: 44px;
  height: 44px;
  display: grid;
}
.cart-line button:hover {
  border-color: #737d6c;
}
.cart-total {
  align-items: end;
  padding: 22px 0 18px;
}
.cart-total span {
  color: #8d9489;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  font-size: 9px;
}
.cart-total strong {
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
}
.cart-submit {
  width: 100%;
}
.cart-note,
.demo-disclaimer {
  color: #858c82;
  font-size: 9px;
  line-height: 1.55;
}
.cart-note {
  text-align: center;
  margin: 13px 0 0;
}
.cart-empty {
  color: #8a9187;
  text-align: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 250px;
  display: flex;
}
.cart-empty strong {
  color: #dfe2dc;
  font-family: var(--serif);
  margin-top: 18px;
  font-size: 20px;
  font-weight: 400;
}
.cart-empty p {
  max-width: 190px;
  margin: 8px 0 0;
  font-size: 10px;
  line-height: 1.5;
}
.demo-disclaimer {
  max-width: 800px;
  margin: 24px 0 0;
}
.quality-section {
  background: var(--paper);
  color: var(--ink);
  padding: 120px 0;
  scroll-margin-top: 16px;
}
.quality-grid {
  grid-template-columns: 1.08fr 0.92fr;
  align-items: center;
  gap: clamp(50px, 7vw, 110px);
  display: grid;
}
.quality-visual {
  background: #1a1f18;
  min-height: 650px;
  position: relative;
  overflow: hidden;
}
.quality-visual img {
  object-fit: cover;
  object-position: 68% center;
  transition: transform 0.8s cubic-bezier(0.2, 0.75, 0.2, 1);
}
.quality-visual:hover img {
  transform: scale(1.025);
}
.quality-stamp {
  background: var(--paper);
  color: var(--ink);
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 3px 12px;
  padding: 18px;
  display: grid;
  position: absolute;
  bottom: 24px;
  left: 24px;
  right: 24px;
}
.quality-stamp svg {
  color: var(--lime-dark);
  grid-row: 1/3;
}
.quality-stamp span {
  color: var(--muted-dark);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 9px;
}
.quality-stamp strong {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
}
.quality-copy h2 span,
.faq-grid h2 span {
  color: var(--lime-dark);
}
.quality-intro {
  margin-top: 28px;
}
.quality-list {
  border-top: 1px solid var(--paper-line);
  margin-top: 44px;
}
.quality-list article {
  border-bottom: 1px solid var(--paper-line);
  grid-template-columns: 34px 1fr;
  gap: 16px;
  padding: 22px 0;
  display: grid;
}
.quality-list svg {
  color: var(--lime-dark);
  margin-top: 2px;
}
.quality-list h3 {
  font-family: var(--serif);
  margin: 0;
  font-size: 22px;
  font-weight: 400;
}
.quality-list p {
  max-width: 420px;
  color: var(--muted-dark);
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.65;
}
.process-section {
  background: var(--paper-deep);
  color: var(--ink);
  padding: 112px 0 124px;
}
.process-section .section-heading h2 span {
  color: var(--lime-dark);
}
.process-grid {
  border-top: 1px solid var(--paper-line);
  border-bottom: 1px solid var(--paper-line);
  grid-template-columns: repeat(3, 1fr);
  margin-top: 64px;
  display: grid;
}
.process-grid article {
  grid-template-columns: 1fr auto;
  align-content: space-between;
  min-height: 300px;
  padding: 28px 32px 32px;
  display: grid;
}
.process-grid article + article {
  border-left: 1px solid var(--paper-line);
}
.process-grid article > span {
  color: var(--lime-dark);
  letter-spacing: 0.12em;
  font-size: 10px;
}
.process-grid article > svg {
  color: var(--lime-dark);
}
.process-grid h3,
.process-grid p {
  grid-column: 1/-1;
}
.process-grid h3 {
  font-family: var(--serif);
  align-self: end;
  margin: 74px 0 10px;
  font-size: 30px;
  font-weight: 400;
}
.process-grid p {
  max-width: 310px;
  color: var(--muted-dark);
  margin: 0;
  font-size: 12px;
  line-height: 1.65;
}
.contact-section {
  background: #20271d;
  padding: 108px 0;
  scroll-margin-top: 16px;
}
.contact-grid {
  grid-template-columns: 1fr 0.82fr;
  align-items: center;
  gap: 90px;
  display: grid;
}
.contact-grid h2 span {
  color: var(--lime);
}
.contact-card {
  background: #171c16;
  border: 1px solid #525d4c;
  grid-template-columns: 42px 1fr;
  gap: 18px;
  padding: 30px;
  display: grid;
}
.contact-card > svg {
  color: var(--lime);
}
.contact-card span,
.contact-card strong {
  display: block;
}
.contact-card span {
  color: #90988d;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 9px;
}
.contact-card strong {
  font-family: var(--serif);
  margin-top: 7px;
  font-size: 24px;
  font-weight: 400;
}
.contact-card p {
  color: #92998f;
  margin: 13px 0 0;
  font-size: 11px;
  line-height: 1.65;
}
.contact-card a {
  color: #e0e3dc;
  border: 1px solid #4a5346;
  grid-column: 2;
  justify-content: space-between;
  align-items: center;
  min-height: 48px;
  margin-top: 5px;
  padding: 0 14px;
  font-size: 11px;
  transition:
    border-color 0.16s,
    background-color 0.16s;
  display: flex;
}
.contact-card a:hover {
  border-color: var(--lime);
  background: #242b21;
}
.faq-section {
  background: var(--paper);
  color: var(--ink);
  padding: 112px 0;
}
.faq-grid {
  grid-template-columns: 0.82fr 1.18fr;
  gap: clamp(60px, 9vw, 150px);
  display: grid;
}
.faq-list {
  border-top: 1px solid var(--paper-line);
}
.faq-list details {
  border-bottom: 1px solid var(--paper-line);
}
.faq-list summary {
  cursor: pointer;
  min-height: 76px;
  font-family: var(--serif);
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-size: 21px;
  list-style: none;
  display: flex;
}
.faq-list summary::-webkit-details-marker {
  display: none;
}
.faq-list summary svg {
  color: var(--lime-dark);
  flex: none;
  transition: transform 0.18s;
}
.faq-list details[open] summary svg {
  transform: rotate(45deg);
}
.faq-list details p {
  max-width: 650px;
  color: var(--muted-dark);
  margin: -4px 40px 24px 0;
  font-size: 13px;
  line-height: 1.7;
}
footer {
  background: var(--ink);
  padding: 92px 0 24px;
}
.footer-top {
  grid-template-columns: 210px minmax(0, 1fr) auto;
  align-items: start;
  gap: 55px;
  display: grid;
}
.footer-top h2 {
  max-width: 760px;
  font-size: clamp(45px, 4.7vw, 72px);
  line-height: 0.95;
}
.footer-top .button {
  justify-self: end;
}
.footer-bottom {
  border-top: 1px solid var(--ink-line);
  color: #858c82;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.3fr) auto;
  gap: 24px;
  margin-top: 86px;
  padding-top: 20px;
  font-size: 9px;
  display: grid;
}
.footer-bottom nav {
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 22px;
  display: flex;
}
.footer-bottom a {
  color: #bfc4bb;
  justify-self: end;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
}
.footer-bottom nav a {
  justify-self: auto;
}
.mobile-cart {
  z-index: 25;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  background: #111610f2;
  border: 1px solid #576151;
  border-radius: 4px;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 10px 10px 10px 16px;
  animation: 0.25s ease-out both mobile-cart-in;
  display: none;
  position: fixed;
  bottom: 16px;
  left: 16px;
  right: 16px;
  box-shadow: 0 18px 45px #0000005c;
}
.mobile-cart span,
.mobile-cart strong {
  display: block;
}
.mobile-cart span {
  color: #969d93;
  font-size: 9px;
}
.mobile-cart strong {
  font-family: var(--serif);
  margin-top: 3px;
  font-size: 19px;
  font-weight: 400;
}
.mobile-cart button {
  background: var(--lime);
  min-height: 46px;
  color: var(--ink);
  cursor: pointer;
  border-radius: 2px;
  align-items: center;
  gap: 12px;
  padding: 0 15px;
  font-size: 11px;
  font-weight: 650;
  display: flex;
}
.request-dialog {
  background: var(--paper);
  width: min(610px, 100% - 28px);
  max-height: min(90svh, 880px);
  color: var(--ink);
  border: 1px solid #6d7569;
  border-radius: 4px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 32px 100px #00000080;
}
.request-dialog::backdrop {
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  background: #050705c7;
}
.request-dialog__panel {
  max-height: min(90svh, 880px);
  padding: 42px;
  position: relative;
  overflow-y: auto;
}
.dialog-close {
  z-index: 2;
  border: 1px solid var(--paper-line);
  width: 44px;
  height: 44px;
  color: var(--ink);
  cursor: pointer;
  background: 0 0;
  border-radius: 50%;
  place-items: center;
  display: grid;
  position: absolute;
  top: 18px;
  right: 18px;
}
.dialog-close:hover {
  background: var(--paper-deep);
}
.request-dialog h2 {
  max-width: 450px;
  padding-right: 40px;
  font-size: 50px;
  line-height: 0.98;
}
.dialog-intro {
  max-width: 480px;
  color: var(--muted-dark);
  margin: 20px 0 26px;
  font-size: 12px;
  line-height: 1.65;
}
.dialog-order-lines {
  border-top: 1px solid var(--paper-line);
  max-height: 190px;
  overflow-y: auto;
}
.dialog-order-lines > div {
  border-bottom: 1px solid var(--paper-line);
  font-family: var(--serif);
  justify-content: space-between;
  gap: 20px;
  padding: 13px 0;
  font-size: 16px;
  display: flex;
}
.dialog-order-lines span,
.dialog-order-lines small {
  display: block;
}
.dialog-order-lines small {
  color: var(--muted-dark);
  font-family: var(--sans);
  margin-top: 4px;
  font-size: 9px;
}
.dialog-total {
  padding: 20px 0 24px;
}
.dialog-total span {
  color: var(--muted-dark);
  letter-spacing: 0.11em;
  text-transform: uppercase;
  font-size: 9px;
}
.dialog-total strong {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 400;
}
.request-dialog form > label {
  margin-top: 14px;
  display: block;
}
.request-dialog form > label > span {
  color: #5d635a;
  margin-bottom: 8px;
  font-size: 10px;
  display: block;
}
.request-dialog input {
  border: 1px solid var(--paper-line);
  width: 100%;
  min-height: 52px;
  color: var(--ink);
  background: #faf8f1;
  border-radius: 2px;
  outline: 0;
  padding: 0 14px;
  font-size: 13px;
}
.request-dialog input:focus {
  border-color: var(--lime-dark);
}
.request-dialog input::placeholder {
  color: #687067;
  opacity: 1;
}
.dialog-submit {
  width: 100%;
  margin-top: 22px;
}
.dialog-submit:disabled {
  cursor: wait;
  opacity: 0.7;
}
.privacy-note,
.form-error {
  text-align: center;
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.55;
}
.privacy-note {
  color: #5e645b;
}
.form-error {
  color: #8d3546;
}
.request-success {
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-height: 540px;
  display: flex;
}
.request-success > svg {
  color: var(--lime-dark);
  margin-bottom: 28px;
}
.request-success > p:not(.eyebrow) {
  max-width: 470px;
  color: var(--muted-dark);
  margin: 22px 0 30px;
  font-size: 13px;
  line-height: 1.7;
}
.honeypot-field {
  width: 1px;
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute !important;
}
.request-dialog form > .consent-field {
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin-top: 18px;
  display: grid;
}
.request-dialog form > .consent-field input {
  width: 20px;
  height: 20px;
  min-height: 20px;
  accent-color: var(--lime-dark);
  margin: 1px 0 0;
}
.request-dialog form > .consent-field span {
  color: #555c53;
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
}
.consent-field a {
  border-bottom: 1px solid #7a8473;
}
.cf-turnstile {
  min-height: 65px;
  margin-top: 18px;
}
.form-fallback {
  color: #612f3a;
  text-align: left;
  background: #eee4df;
  border: 1px solid #b9968f;
  margin-top: 14px;
  padding: 14px;
  font-size: 12px;
  line-height: 1.55;
}
.form-fallback p {
  margin: 0;
}
.form-fallback button,
.form-fallback a {
  color: #612f3a;
  cursor: pointer;
  background: 0 0;
  border-bottom: 1px solid;
  align-items: center;
  min-height: 44px;
  margin-top: 8px;
  padding: 0;
  font-weight: 650;
  display: inline-flex;
}
.bloom-intro.is-checking {
  visibility: hidden;
}
.bloom-intro {
  z-index: 200;
  min-height: 100svh;
  color: var(--paper);
  isolation: isolate;
  background: #080d08;
  position: fixed;
  inset: 0;
  overflow: hidden;
}
.bloom-intro:after {
  content: "";
  z-index: -1;
  opacity: 0.54;
  pointer-events: none;
  background: #080d08;
  position: absolute;
  inset: 0;
}
.bloom-intro__meta {
  z-index: 4;
  color: var(--lime);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  white-space: nowrap;
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  position: absolute;
  top: 5.2vh;
  left: 50%;
  transform: translate(-50%);
}
.bloom-intro__bands {
  z-index: 1;
  grid-template-rows: repeat(3, 1fr);
  gap: 5px;
  height: 51vh;
  display: grid;
  position: absolute;
  inset: 14vh 2.2vw auto;
}
.bloom-intro__band {
  background: #111711;
  border: 1px solid #c8d99b21;
  animation: 1.05s cubic-bezier(0.2, 0.75, 0.2, 1) both bloom-band-in;
  position: relative;
  overflow: hidden;
}
.bloom-intro__band:nth-child(2) {
  animation-name: bloom-band-in-reverse;
  animation-delay: 90ms;
}
.bloom-intro__band:nth-child(3) {
  animation-delay: 0.18s;
}
.bloom-intro__band img {
  object-fit: cover;
  object-position: 50% 50%;
  filter: brightness(0.72) saturate(0.94) contrast(1.04);
  animation: 7s ease-out both bloom-image-drift;
  transform: scale(1.015);
  width: 100% !important;
  max-width: none !important;
  height: calc(300% + 10px) !important;
  position: absolute !important;
  inset: 0 0 auto !important;
}
.bloom-intro__band--top img {
  top: 0 !important;
}
.bloom-intro__band--middle img {
  top: calc(-100% - 5px) !important;
}
.bloom-intro__band--bottom img {
  top: calc(-200% - 10px) !important;
}
.bloom-intro__wordmark {
  z-index: 3;
  pointer-events: none;
  justify-items: center;
  gap: clamp(12px, 1.5vh, 20px);
  width: min(78vw, 1160px);
  animation: 0.9s cubic-bezier(0.2, 0.75, 0.2, 1) 0.28s both bloom-wordmark-in;
  display: grid;
  position: absolute;
  top: 29vh;
  left: 50%;
  overflow: visible;
  transform: translate(-50%);
}
.bloom-wordmark__letters {
  color: #c7aaa1;
  filter: drop-shadow(0 3px 3px #0000006b);
  justify-content: center;
  align-items: baseline;
  gap: clamp(0.16em, 2.4vw, 0.33em);
  font-family:
    Cormorant Garamond Local,
    Iowan Old Style,
    Georgia,
    serif;
  font-size: clamp(82px, 12vw, 178px);
  font-weight: 400;
  line-height: 0.78;
  display: flex;
}
.bloom-wordmark__letters > span {
  color: #0000;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 0.35px #fae7e06b;
  text-shadow:
    0 1px #ffece52e,
    0 2px 2px #00000047;
  background: linear-gradient(
    165deg,
    #ead8d1 4%,
    #c7aaa1 35%,
    #a9877e 72%,
    #d9c2ba 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
}
.bloom-wordmark__letter-l {
  position: relative;
}
.bloom-wordmark__flower {
  fill: #c7aaa126;
  stroke: #d8c0b8;
  stroke-width: 1.15px;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 2px 2px #00000057);
  width: clamp(30px, 4vw, 52px);
  position: absolute;
  bottom: calc(100% + clamp(8px, 1.4vh, 16px));
  left: 50%;
  overflow: visible;
  transform: translate(-50%);
}
.bloom-wordmark__tagline {
  color: #c9b2aa;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  text-shadow: 0 1px 6px #000000ad;
  font-size: clamp(8px, 0.8vw, 11px);
  font-weight: 550;
}
.bloom-intro__actions {
  z-index: 5;
  justify-items: center;
  gap: 14px;
  animation: 0.7s ease-out 0.52s both bloom-actions-in;
  display: grid;
  position: absolute;
  bottom: 3vh;
  left: 50%;
  transform: translate(-50%);
}
.bloom-trigger {
  color: #e3d0ca;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
  background: radial-gradient(circle at 18% 0, #c7aaa11a, #0000 42%), #070d08e6;
  border: 1px solid #c7aaa1ad;
  border-radius: 999px;
  grid-template-columns: 48px 1fr 32px;
  align-items: center;
  gap: 16px;
  width: clamp(286px, 29vw, 390px);
  min-height: 86px;
  padding: 17px 22px;
  transition:
    border-color 0.32s,
    transform 0.32s cubic-bezier(0.2, 0.75, 0.2, 1),
    box-shadow 0.32s;
  display: grid;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 16px 38px #00000047,
    inset 0 1px #ecd8d11a;
}
.bloom-trigger:before {
  content: "";
  border-radius: inherit;
  pointer-events: none;
  border: 1px solid #c7aaa129;
  transition:
    inset 0.26s,
    border-color 0.26s;
  position: absolute;
  inset: 5px;
}
.bloom-trigger:hover {
  border-color: #ddc8bf;
  transform: translateY(-3px);
  box-shadow:
    0 20px 46px #0000005c,
    inset 0 1px #f8e5de33;
}
.bloom-trigger:hover:before {
  border-color: #ddc8bf6b;
  inset: 4px;
}
.bloom-trigger:active {
  transform: scale(0.985);
}
.bloom-trigger:focus-visible {
  outline-offset: 5px;
  outline: 2px solid #ddc8bf;
}
.bloom-trigger__seal {
  color: #d8c0b8;
  border: 1px solid #c7aaa161;
  border-radius: 50%;
  place-items: center;
  width: 46px;
  height: 46px;
  transition:
    transform 0.42s cubic-bezier(0.2, 0.75, 0.2, 1),
    border-color 0.3s;
  display: grid;
}
.bloom-trigger__seal svg {
  fill: #c7aaa114;
  stroke: currentColor;
  stroke-width: 1px;
  stroke-linecap: round;
  stroke-linejoin: round;
  width: 31px;
  height: 31px;
}
.bloom-trigger:hover .bloom-trigger__seal {
  border-color: #ddc8bfb8;
  transform: rotate(7deg) scale(1.04);
}
.bloom-trigger__copy {
  justify-items: start;
  gap: 5px;
  min-width: 0;
  display: grid;
}
.bloom-trigger__eyebrow {
  color: #a98c84;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 8px;
  font-weight: 650;
  line-height: 1;
}
.bloom-trigger strong {
  font-family: "Cormorant Garamond Local", var(--serif);
  white-space: nowrap;
  font-size: clamp(17px, 1.55vw, 22px);
  font-weight: 400;
  line-height: 1.05;
}
.bloom-trigger__arrow {
  color: #c7aaa1;
  font-family: var(--sans);
  font-size: 23px;
  font-weight: 300;
  transition:
    transform 0.3s,
    color 0.3s;
}
.bloom-trigger:hover .bloom-trigger__arrow {
  color: #ead8d1;
  transform: translate(3px, -3px);
}
.bloom-petal {
  left: var(--petal-left);
  top: var(--petal-top);
  width: clamp(28px, var(--petal-size), 76px);
  aspect-ratio: 1;
  opacity: 0;
  transform-origin: 50% 70%;
  will-change: transform, opacity, filter;
  position: absolute;
  transform: translate(-50%, -50%) scale(0.16);
}
.bloom-petal img {
  object-fit: contain;
  width: 100%;
  height: 100%;
  display: block;
}
.bloom-intro.is-scattering {
  pointer-events: none;
  animation: 1.58s cubic-bezier(0.7, 0, 0.3, 1) both bloom-intro-out;
}
.bloom-intro.is-scattering:after {
  animation: 1.12s ease-out 0.16s both bloom-veil-dissolve;
}
.bloom-intro.is-scattering .bloom-intro__band:first-child {
  animation: 0.92s cubic-bezier(0.55, 0, 0.22, 1) 40ms both
    bloom-band-petalize-left;
}
.bloom-intro.is-scattering .bloom-intro__band:nth-child(2) {
  animation: 0.98s cubic-bezier(0.55, 0, 0.22, 1) 80ms both
    bloom-band-petalize-right;
}
.bloom-intro.is-scattering .bloom-intro__band:nth-child(3) {
  animation: 1.04s cubic-bezier(0.55, 0, 0.22, 1) 0.12s both
    bloom-band-petalize-left;
}
.bloom-intro.is-scattering .bloom-intro__wordmark {
  animation: 0.72s cubic-bezier(0.55, 0, 0.22, 1) 40ms both
    bloom-wordmark-petalize;
}
.bloom-intro.is-scattering .bloom-intro__actions {
  animation: 0.6s cubic-bezier(0.45, 0, 0.25, 1) both bloom-trigger-release;
}
.bloom-intro.is-scattering .bloom-intro__meta {
  animation: 0.52s ease-out both bloom-meta-release;
}
.bloom-intro.is-scattering .bloom-petal {
  animation: bloom-petal-burst var(--petal-duration) var(--petal-delay) both
    cubic-bezier(0.16, 0.76, 0.2, 1);
}
@media (min-width: 621px) and (max-height: 820px) {
  .bloom-intro__bands {
    height: 51vh;
    inset-block-start: 14vh;
  }
  .bloom-intro__wordmark {
    width: min(72vw, 960px);
    height: auto;
    top: 28vh;
  }
  .bloom-intro__actions {
    gap: 8px;
    bottom: max(10px, 1.5vh);
  }
  .bloom-trigger {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    gap: 13px;
    width: min(360px, 42vw);
    min-height: 70px;
    padding: 12px 18px;
  }
  .bloom-trigger__seal {
    width: 40px;
    height: 40px;
  }
  .bloom-trigger__seal svg {
    width: 27px;
    height: 27px;
  }
  .bloom-trigger strong {
    font-size: 18px;
  }
  .bloom-trigger__eyebrow {
    font-size: 7px;
  }
}
.inner-page {
  background: var(--ink);
  min-height: 100svh;
}
.inner-hero {
  grid-template-columns: 1.2fr 0.8fr;
  align-items: end;
  gap: 96px;
  min-height: 500px;
  padding-block: 96px 104px;
  display: grid;
}
.inner-hero h1,
.legal-page h1 {
  font-family: var(--serif);
  letter-spacing: -0.055em;
  margin: 0;
  font-size: clamp(64px, 7vw, 108px);
  font-weight: 400;
  line-height: 0.84;
}
.inner-hero h1 span,
.legal-page h1 span,
.docs-heading h2 span,
.docs-split h2 span,
.docs-callout h2 span,
.contact-location-card h2 span {
  color: var(--lime);
  font-style: italic;
}
.inner-hero > p {
  color: #aeb5aa;
  max-width: 510px;
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 1.8;
}
.docs-index {
  z-index: 20;
  border: 1px solid var(--ink-line);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  scrollbar-width: none;
  background: #0c0f0cf0;
  align-items: center;
  gap: 8px;
  min-height: 62px;
  display: flex;
  position: sticky;
  top: 0;
  overflow-x: auto;
}
.docs-index::-webkit-scrollbar {
  display: none;
}
.docs-index a {
  color: #c4c9c0;
  flex: none;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  font-size: 12px;
  display: inline-flex;
}
.docs-index a:hover {
  color: var(--lime);
}
.docs-section {
  background: var(--ink-soft);
  padding: 112px 0;
  scroll-margin-top: 72px;
}
.docs-section--paper,
.contact-profile-section {
  background: var(--paper);
  color: var(--ink);
}
.docs-heading {
  max-width: 920px;
}
.docs-heading h2,
.docs-split h2,
.docs-callout h2,
.contact-location-card h2 {
  font-family: var(--serif);
  letter-spacing: -0.045em;
  margin: 0;
  font-size: clamp(48px, 5vw, 76px);
  font-weight: 400;
  line-height: 0.95;
}
.docs-heading h2 span,
.docs-section--paper .docs-split h2 span {
  color: var(--wine);
}
.docs-steps {
  border: 1px solid var(--paper-line);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 70px;
  display: grid;
}
.docs-steps article {
  min-height: 310px;
  padding: 26px;
}
.docs-steps article + article {
  border-left: 1px solid var(--paper-line);
}
.docs-steps article > span {
  color: var(--wine);
  letter-spacing: 0.16em;
  font-size: 11px;
}
.docs-steps h3,
.docs-facts h3,
.contact-profile-card h2 {
  font-family: var(--serif);
  margin: 105px 0 12px;
  font-size: 27px;
  font-weight: 400;
  line-height: 1.05;
}
.docs-steps p,
.docs-facts p,
.docs-accordion p {
  color: var(--muted-dark);
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
}
.docs-split {
  grid-template-columns: 0.82fr 1.18fr;
  gap: 96px;
  display: grid;
}
.docs-facts {
  border: 1px solid var(--ink-line);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  display: grid;
}
.docs-facts article {
  min-height: 310px;
  color: var(--lime);
  padding: 24px;
}
.docs-facts article + article {
  border-left: 1px solid var(--ink-line);
}
.docs-facts h3 {
  color: var(--white);
  margin-top: 90px;
}
.docs-facts p {
  color: var(--muted);
}
.docs-accordion {
  border-top: 1px solid var(--paper-line);
}
.docs-accordion details {
  border-bottom: 1px solid var(--paper-line);
}
.docs-accordion summary {
  cursor: pointer;
  min-height: 78px;
  font-family: var(--serif);
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  font-size: 23px;
  display: flex;
}
.docs-accordion summary span {
  color: var(--wine);
  font-family: var(--sans);
  letter-spacing: 0.14em;
  font-size: 10px;
}
.docs-accordion p {
  max-width: 620px;
  padding: 0 0 28px;
}
.docs-callout {
  border-top: 1px solid var(--ink-line);
  border-bottom: 1px solid var(--ink-line);
  grid-template-columns: 56px minmax(0, 1fr) auto;
  align-items: center;
  gap: 36px;
  padding-block: 36px;
  display: grid;
}
.docs-callout > svg {
  color: var(--lime);
}
.docs-callout > div > p:last-child {
  max-width: 740px;
  color: var(--muted);
  margin: 22px 0 0;
  font-size: 13px;
  line-height: 1.7;
}
.contact-profile-section,
.contact-location-section {
  padding: 112px 0;
}
.contact-profile-grid {
  grid-template-columns: 1fr 0.78fr;
  align-items: stretch;
  gap: 18px;
  display: grid;
}
.contact-profile-card,
.contact-qr-card {
  border: 1px solid var(--paper-line);
}
.contact-profile-card {
  padding: 48px;
}
.contact-profile-card h2 {
  margin: 18px 0 58px;
  font-size: clamp(42px, 4.4vw, 68px);
}
.contact-line {
  border-top: 1px solid var(--paper-line);
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  min-height: 104px;
  display: grid;
}
.contact-line > div span,
.contact-line > div a {
  display: block;
}
.contact-line > div span {
  color: var(--muted-dark);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 5px;
  font-size: 10px;
}
.contact-line > div a {
  font-family: var(--serif);
  font-size: 24px;
}
.copy-contact {
  border: 1px solid var(--paper-line);
  color: #4d544c;
  cursor: pointer;
  background: 0 0;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  font-size: 10px;
  display: inline-flex;
}
.copy-contact:hover {
  border-color: var(--lime-dark);
  color: var(--ink);
}
.contact-profile-actions {
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
  display: flex;
}
.button--outline-dark {
  color: var(--ink);
  border-color: #8a9185;
}
.button--outline-dark:hover {
  border-color: var(--ink);
  background: var(--paper-deep);
}
.contact-qr-card {
  background: #f9f7f0;
  flex-direction: column;
  padding: 18px;
  display: flex;
}
.contact-qr-image {
  aspect-ratio: 0.807;
  background: #fff;
  flex: 1;
  min-height: 0;
  position: relative;
  overflow: hidden;
}
.contact-qr-image img {
  object-fit: contain;
}
.contact-qr-card > p {
  color: var(--muted-dark);
  margin: 16px 4px 2px;
  font-size: 11px;
  line-height: 1.6;
}
.contact-location-section {
  background: var(--ink-soft);
}
.contact-location-card {
  border-top: 1px solid var(--ink-line);
  border-bottom: 1px solid var(--ink-line);
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  gap: 30px;
  padding-block: 46px;
  display: grid;
}
.contact-location-card > svg {
  color: var(--lime);
}
.contact-location-card h2 {
  font-size: clamp(40px, 4vw, 62px);
}
.contact-location-card h2 span {
  font-size: 0.72em;
}
.contact-location-card > div > p:last-child {
  color: var(--muted);
  margin: 18px 0 0;
  font-size: 12px;
}
.legal-page {
  max-width: 980px;
  padding-block: 100px 126px;
}
.legal-lead {
  color: #b9beb5;
  max-width: 760px;
  margin: 44px 0 70px;
  font-size: 18px;
  line-height: 1.75;
}
.legal-page section {
  border-top: 1px solid var(--ink-line);
  grid-template-columns: 0.42fr 0.58fr;
  gap: 44px;
  padding: 32px 0;
  display: grid;
}
.legal-page section h2,
.legal-page section p {
  margin: 0;
}
.legal-page section h2 {
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
}
.legal-page section p,
.legal-note {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.75;
}
.legal-note {
  border-top: 1px solid var(--ink-line);
  padding-top: 32px;
}
.js [data-reveal] {
  opacity: 0;
  transition:
    opacity 0.65s,
    transform 0.65s cubic-bezier(0.2, 0.75, 0.2, 1);
  transform: translateY(24px);
}
.js [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}
@keyframes hero-copy-in {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes hero-art-in {
  0% {
    opacity: 0;
    transform: scale(1.02);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes stock-in {
  0% {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes mobile-cart-in {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes bloom-band-in {
  0% {
    opacity: 0;
    transform: translate(-105%);
  }
  to {
    opacity: 1;
    transform: translate(0);
  }
}
@keyframes bloom-band-in-reverse {
  0% {
    opacity: 0;
    transform: translate(105%);
  }
  to {
    opacity: 1;
    transform: translate(0);
  }
}
@keyframes bloom-image-drift {
  0% {
    transform: scale(1.09);
  }
  to {
    transform: scale(1.035);
  }
}
@keyframes bloom-wordmark-in {
  0% {
    opacity: 0;
    transform: translate(-50%) scale(0.94);
  }
  to {
    opacity: 1;
    transform: translate(-50%) scale(1);
  }
}
@keyframes bloom-actions-in {
  0% {
    opacity: 0;
    transform: translate(-50%, 22px);
  }
  to {
    opacity: 1;
    transform: translate(-50%);
  }
}
@keyframes bloom-intro-out {
  0%,
  82% {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes bloom-veil-dissolve {
  0%,
  34% {
    opacity: 0.54;
  }
  to {
    opacity: 0;
  }
}
@keyframes bloom-band-petalize-left {
  0% {
    opacity: 1;
    clip-path: inset(0);
    filter: blur() saturate();
    transform: translate(0, 0) scale(1);
  }
  38% {
    opacity: 0.78;
    filter: blur(2px) saturate(1.1);
    transform: translate(-1.5vw, -1vh) scale(0.985);
  }
  to {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    filter: blur(18px) saturate(0.55);
    transform: translate(-12vw, -4vh) scale(0.82) rotate(-1.5deg);
  }
}
@keyframes bloom-band-petalize-right {
  0% {
    opacity: 1;
    clip-path: inset(0);
    filter: blur() saturate();
    transform: translate(0, 0) scale(1);
  }
  38% {
    opacity: 0.78;
    filter: blur(2px) saturate(1.1);
    transform: translate(1.5vw, 1vh) scale(0.985);
  }
  to {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
    filter: blur(18px) saturate(0.55);
    transform: translate(12vw, 4vh) scale(0.82) rotate(1.5deg);
  }
}
@keyframes bloom-wordmark-petalize {
  0% {
    opacity: 1;
    filter: blur();
    transform: translate(-50%) scale(1);
  }
  38% {
    opacity: 0.84;
    filter: blur(1px);
    transform: translate(-50%) scale(1.018);
  }
  to {
    opacity: 0;
    filter: blur(12px);
    transform: translate(-50%) scale(1.12);
  }
}
@keyframes bloom-trigger-release {
  0% {
    opacity: 1;
    filter: blur();
    transform: translate(-50%) scale(1);
  }
  42% {
    opacity: 0.92;
    filter: blur();
    transform: translate(-50%, -5px) scale(1.08);
  }
  to {
    opacity: 0;
    filter: blur(10px);
    transform: translate(-50%, 18px) scale(1.34);
  }
}
@keyframes bloom-meta-release {
  0% {
    opacity: 1;
    transform: translate(-50%);
  }
  to {
    opacity: 0;
    transform: translate(-50%, -22px);
  }
}
@keyframes bloom-petal-burst {
  0% {
    opacity: 0;
    filter: blur(5px) brightness(1.25);
    transform: translate(-50%, -50%) scale(0.12) rotate(0);
  }
  11% {
    opacity: 1;
    filter: blur() brightness(1.08);
    transform: translate(-50%, -50%) scale(1.12) rotate(22deg);
  }
  72% {
    opacity: 0.94;
  }
  to {
    opacity: 0;
    filter: blur(1px) brightness(0.96);
    transform: translate3d(
        calc(-50% + var(--petal-x)),
        calc(-50% + var(--petal-y)),
        0
      )
      scale(0.58) rotate(var(--petal-rotation));
  }
}
@media (max-width: 1380px) {
  .site-header {
    grid-template-columns: auto 1fr auto;
  }
  .site-nav {
    display: none;
  }
  .site-menu {
    display: block;
  }
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 1120px) {
  .shell {
    width: min(100% - 44px, 980px);
  }
  .catalog-toolbar {
    grid-template-columns: 250px minmax(0, 1fr);
  }
  .sort-control {
    border-top: 1px solid var(--ink-line);
    border-left: 0;
    grid-column: 1/-1;
  }
  .sort-control select {
    min-height: 50px;
  }
  .catalog-layout {
    grid-template-columns: 1fr;
  }
  .cart-panel {
    display: none;
  }
  .mobile-cart {
    bottom: calc(12px + env(safe-area-inset-bottom));
    display: flex;
  }
  body:has(.mobile-cart) [data-site-root] {
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
  }
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .product-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .add-to-cart,
  .quantity-stepper {
    width: 100%;
  }
  .add-to-cart {
    justify-content: center;
  }
  .quantity-stepper {
    grid-template-columns: 44px 1fr 44px;
  }
  .quantity-stepper button {
    width: 44px;
  }
}
@media (max-width: 900px) {
  .shell {
    width: min(100% - 36px, 760px);
  }
  .hero {
    min-height: auto;
  }
  .site-header {
    grid-template-columns: 1fr auto;
    min-height: 90px;
  }
  .availability {
    display: none;
  }
  .brand-link,
  .brand-logo,
  .footer-logo {
    width: 154px;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .hero-copy {
    min-height: 500px;
    padding: 65px 0 58px;
  }
  .hero-copy h1 {
    max-width: 680px;
    font-size: clamp(58px, 11.5vw, 86px);
  }
  .hero-art {
    border-top: 1px solid var(--ink-line);
    border-left: 0;
    min-height: 460px;
  }
  .hero-benefits {
    grid-template-columns: 1fr;
    padding: 18px 0;
  }
  .hero-benefits > div,
  .hero-benefits > div:first-child {
    min-height: 70px;
    padding: 13px 4px;
  }
  .hero-benefits > div + div {
    border-top: 1px solid var(--ink-line);
    border-left: 0;
  }
  .section-heading,
  .quality-grid,
  .contact-grid,
  .faq-grid {
    grid-template-columns: 1fr;
  }
  .catalog-section .section-heading {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .catalog-section .section-heading h2 span {
    margin-left: 0;
    display: block;
  }
  .section-heading,
  .contact-grid,
  .faq-grid {
    gap: 40px;
  }
  .section-heading > p {
    margin: 0;
  }
  .quality-section,
  .process-section,
  .contact-section,
  .faq-section {
    padding: 88px 0;
  }
  .catalog-section {
    padding: 24px 0 88px;
  }
  .catalog-toolbar {
    grid-template-columns: 1fr;
  }
  .search-control {
    border-right: 0;
    border-bottom: 1px solid var(--ink-line);
    min-height: 58px;
  }
  .sort-control {
    grid-column: auto;
  }
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .product-footer {
    flex-direction: row;
    align-items: end;
  }
  .add-to-cart,
  .quantity-stepper {
    width: auto;
  }
  .quality-visual {
    min-height: 560px;
  }
  .quality-copy {
    padding-top: 8px;
  }
  .process-grid {
    grid-template-columns: 1fr;
  }
  .process-grid article {
    min-height: 240px;
  }
  .process-grid article + article {
    border-top: 1px solid var(--paper-line);
    border-left: 0;
  }
  .footer-top {
    grid-template-columns: 1fr;
  }
  .footer-top .button {
    justify-self: start;
  }
  .bloom-intro__bands {
    height: 46vh;
    inset: 16vh 12px auto;
  }
  .bloom-intro__wordmark {
    width: 88vw;
    height: auto;
    top: 29vh;
  }
  .bloom-intro__actions {
    bottom: calc(2.5vh + env(safe-area-inset-bottom));
  }
  .docs-index {
    width: calc(100% - 36px);
  }
  .inner-hero,
  .docs-split,
  .contact-profile-grid {
    grid-template-columns: 1fr;
  }
  .inner-hero {
    gap: 48px;
    min-height: 540px;
    padding-block: 82px;
  }
  .docs-steps,
  .docs-facts {
    grid-template-columns: 1fr 1fr;
  }
  .docs-steps article:nth-child(3) {
    border-left: 0;
    border-top: 1px solid var(--paper-line);
  }
  .docs-facts article:nth-child(3) {
    border-top: 1px solid var(--ink-line);
    border-left: 0;
    grid-column: 1/-1;
  }
  .docs-callout,
  .contact-location-card {
    grid-template-columns: 52px 1fr;
  }
  .docs-callout .button,
  .contact-location-card .button {
    grid-column: 2;
    justify-self: start;
  }
  .contact-qr-image {
    max-height: 780px;
  }
  .legal-page section {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
@media (max-width: 620px) {
  .shell {
    width: calc(100% - 28px);
  }
  .site-header {
    min-height: 78px;
  }
  .brand-link,
  .brand-logo,
  .footer-logo {
    width: 132px;
  }
  .header-cta {
    min-height: 44px;
    padding: 0 12px;
    font-size: 10px;
  }
  .header-cta svg,
  .header-intro,
  .site-menu summary span {
    display: none;
  }
  .bloom-intro__meta {
    letter-spacing: 0.24em;
    font-size: 8px;
    top: 4.5vh;
  }
  .bloom-intro__bands {
    gap: 4px;
    height: 45vh;
    inset: 13vh 9px auto;
  }
  .bloom-intro__wordmark {
    width: 90vw;
    height: auto;
    top: 27vh;
  }
  .bloom-wordmark__letters {
    gap: 0.12em;
    font-size: clamp(52px, 17vw, 70px);
  }
  .bloom-wordmark__flower {
    width: 30px;
    bottom: calc(100% + 6px);
  }
  .bloom-wordmark__tagline {
    letter-spacing: 0.2em;
    font-size: 7px;
  }
  .bloom-intro__band img {
    object-position: 66% 50%;
  }
  .bloom-trigger {
    grid-template-columns: 42px 1fr 25px;
    gap: 12px;
    width: min(350px, 100vw - 32px);
    min-height: 78px;
    padding: 14px 17px;
  }
  .bloom-trigger__seal {
    width: 40px;
    height: 40px;
  }
  .bloom-trigger strong {
    font-size: clamp(16px, 5vw, 19px);
  }
  .bloom-trigger__eyebrow {
    font-size: 7px;
  }
  .bloom-petal {
    width: min(var(--petal-size), 58px);
  }
  .inner-hero {
    min-height: 520px;
    padding-block: 72px;
  }
  .inner-hero h1,
  .legal-page h1 {
    font-size: clamp(52px, 16vw, 72px);
  }
  .legal-page h1 {
    letter-spacing: -0.04em;
    -webkit-hyphens: manual;
    hyphens: manual;
    overflow-wrap: normal;
    font-size: clamp(34px, 9vw, 42px);
    line-height: 0.94;
  }
  .docs-index {
    width: calc(100% - 28px);
  }
  .docs-section,
  .contact-profile-section,
  .contact-location-section {
    padding: 82px 0;
  }
  .docs-heading h2,
  .docs-split h2,
  .docs-callout h2,
  .contact-location-card h2 {
    font-size: 45px;
  }
  .docs-steps,
  .docs-facts {
    grid-template-columns: 1fr;
  }
  .docs-steps article,
  .docs-facts article {
    min-height: 230px;
  }
  .docs-steps article + article,
  .docs-facts article + article {
    border-top: 1px solid var(--paper-line);
    border-left: 0;
  }
  .docs-facts article + article {
    border-top-color: var(--ink-line);
  }
  .docs-steps h3,
  .docs-facts h3 {
    margin-top: 66px;
  }
  .docs-callout,
  .contact-location-card {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .docs-callout .button,
  .contact-location-card .button {
    grid-column: 1;
  }
  .contact-profile-card {
    padding: 30px 20px;
  }
  .contact-line {
    grid-template-columns: 30px minmax(0, 1fr);
    padding: 14px 0;
  }
  .contact-line .copy-contact {
    grid-column: 2;
    justify-self: start;
  }
  .contact-line > div a {
    font-size: 21px;
  }
  .contact-profile-actions {
    flex-direction: column;
  }
  .contact-profile-actions .button {
    width: 100%;
  }
  .legal-page {
    padding-block: 74px 96px;
  }
  .hero-copy {
    min-height: 480px;
    padding: 58px 0 50px;
  }
  .hero-copy h1 {
    font-size: clamp(51px, 15.4vw, 68px);
    line-height: 0.91;
  }
  .hero-lead {
    margin-top: 25px;
    font-size: 13px;
  }
  .hero-actions {
    flex-direction: column;
    margin-top: 28px;
  }
  .hero-actions .button {
    justify-content: space-between;
    width: 100%;
  }
  .hero-art {
    min-height: 350px;
  }
  .hero-art img,
  .quality-visual img {
    object-position: 72% center;
  }
  .hero-art-label {
    bottom: 14px;
    left: 14px;
  }
  .section-heading h2,
  .quality-copy h2,
  .contact-grid h2,
  .faq-grid h2 {
    font-size: 48px;
  }
  .catalog-section .section-heading {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .catalog-section .section-heading h2 {
    font-size: 40px;
  }
  .catalog-section .section-heading h2 span {
    margin-left: 0;
    display: block;
  }
  .catalog-toolbar {
    margin-top: 0;
  }
  .category-list {
    padding: 8px;
  }
  .category-list button {
    min-height: 44px;
  }
  .catalog-meta {
    font-size: 8px;
  }
  .product-grid {
    grid-template-columns: 1fr;
  }
  .product-content {
    padding: 16px;
  }
  .product-title-row h3 {
    font-size: 24px;
  }
  .product-footer {
    flex-direction: row;
    align-items: end;
  }
  .quality-visual {
    min-height: 430px;
  }
  .quality-stamp {
    bottom: 14px;
    left: 14px;
    right: 14px;
  }
  .process-grid article {
    min-height: 225px;
    padding: 24px 20px;
  }
  .process-grid h3 {
    margin-top: 58px;
  }
  .contact-card {
    grid-template-columns: 34px 1fr;
    padding: 22px 18px;
  }
  .contact-card strong {
    font-size: 21px;
  }
  .faq-list summary {
    min-height: 70px;
    font-size: 18px;
  }
  footer {
    padding-top: 78px;
  }
  .footer-top h2 {
    font-size: 48px;
  }
  .footer-bottom {
    grid-template-columns: 1fr auto;
    margin-top: 64px;
  }
  .footer-bottom nav {
    grid-area: 1/1 / auto/-1;
    justify-content: flex-start;
  }
  .request-dialog__panel {
    padding: 34px 20px 24px;
  }
  .request-dialog h2 {
    font-size: 40px;
  }
  .dialog-close {
    top: 12px;
    right: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  :before,
  :after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}
.bloom-intro__content {
  z-index: 4;
  pointer-events: none;
  position: absolute;
  inset: 0;
}
.bloom-intro__content .bloom-intro__copy,
.bloom-intro__content .bloom-intro__actions {
  pointer-events: auto;
}
.bloom-intro__skip {
  min-width: 238px;
  min-height: 62px;
  color: var(--intro-paper);
  letter-spacing: 0;
  text-transform: none;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background: #0c0f0c57;
  border: 1px solid #f3f0e785;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  padding: 0 22px 0 25px;
  font-size: 14px;
  font-weight: 650;
  transition:
    border-color 0.2s,
    background-color 0.2s,
    color 0.2s,
    transform 0.2s;
  display: flex;
}
.bloom-intro__skip:hover {
  border-color: var(--intro-lime);
  color: var(--intro-lime);
  background: #c8d99b1a;
  transform: translateY(-3px);
}
.bloom-intro__petals {
  z-index: 10;
  pointer-events: none;
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.bloom-intro__exit-petal {
  left: var(--exit-left);
  top: var(--exit-top);
  width: var(--exit-size);
  aspect-ratio: 1;
  opacity: 0;
  transform-origin: 50%;
  will-change: transform, opacity;
  position: absolute;
  transform: translate(-50%, -50%) scale(0.68) rotate(0);
}
.bloom-intro__exit-petal img {
  object-fit: contain;
  filter: drop-shadow(0 8px 10px #0000003d);
  width: 100%;
  height: 100%;
}
@keyframes editorial-copy-out {
  to {
    opacity: 0;
    transform: translateY(-6px);
  }
}
@keyframes editorial-image-out {
  to {
    opacity: 0;
    transform: scale(1.025);
  }
}
@keyframes editorial-petal-flight {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.68) rotate(0);
  }
  12% {
    opacity: 0.96;
  }
  74% {
    opacity: 0.92;
  }
  to {
    opacity: 0;
    transform: translate(calc(-50% + var(--exit-x)), calc(-50% + var(--exit-y)))
      scale(1.1) rotate(var(--exit-rotation));
  }
}
@keyframes editorial-intro-out {
  0%,
  72% {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@media (min-width: 1600px) {
  .bloom-intro--editorial:before {
    background:
      linear-gradient(
        90deg,
        #0000 0 38%,
        #c8d99b1f 38% calc(38% + 1px),
        #0000 calc(38% + 1px)
      ),
      radial-gradient(circle at 76% 42%, #783d4933, #0000 34%);
  }
  .bloom-intro--editorial .bloom-intro__bands {
    left: 38%;
  }
  .bloom-intro--editorial .bloom-intro__band img {
    object-position: 100% 50%;
  }
  .bloom-intro__content {
    flex-direction: column;
    justify-content: center;
    width: min(66vw, 1260px);
    display: flex;
    inset: 104px auto 116px clamp(64px, 5vw, 130px);
  }
  .bloom-intro__content .bloom-intro__copy {
    width: 100%;
    position: relative;
    inset: auto;
  }
  .bloom-intro__copy h2 {
    letter-spacing: 0.042em;
    font-size: clamp(218px, 14.6vw, 320px);
  }
  .bloom-intro__promise {
    margin-top: clamp(38px, 4.6vh, 52px);
    font-size: clamp(50px, 3.25vw, 68px);
  }
  .bloom-intro__lead {
    max-width: 500px;
    margin-top: 16px;
    font-size: 17px;
  }
  .bloom-intro--editorial .bloom-intro__actions {
    gap: 16px;
    margin-top: 34px;
    position: relative;
    inset: auto;
  }
  .bloom-intro__specimen {
    bottom: 15vh;
    right: clamp(38px, 3.4vw, 72px);
  }
}
@media (max-width: 620px) {
  .bloom-intro--editorial .bloom-intro__actions {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    display: grid;
  }
  .bloom-intro--editorial .bloom-trigger,
  .bloom-intro__skip {
    width: 100%;
    min-height: 52px;
  }
  .bloom-intro__skip {
    background: #0c0f0cad;
    min-width: 0;
    padding-inline: 20px;
    font-size: 12px;
    display: flex;
  }
  .bloom-intro__exit-petal:nth-child(n + 9) {
    display: none;
  }
}
@media (max-height: 670px) {
  .bloom-intro__skip {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .bloom-intro__exit-petal {
    display: none;
  }
}

/* VELORA legibility and touch refinement, 2026-09-14 */
@media (max-width: 620px) {
  .product-title-row span,
  .product-title-row > small,
  .product-origin,
  .freshness-pill span,
  .freshness-pill small,
  .product-price span,
  .cart-note,
  .demo-disclaimer {
    font-size: 10px;
    line-height: 1.45;
  }
  .category-filter button,
  .catalog-sort select {
    min-height: 44px;
  }
  .stock-line,
  .reserve-line {
    font-size: 10px;
  }
}
@media (prefers-contrast: more) {
  :root {
    --muted: #bcc3b8;
    --muted-dark: #737c70;
    --ink-line: #566050;
  }
  .product-origin,
  .cart-note,
  .demo-disclaimer,
  .reserve-line {
    color: #b8beb4;
  }
}

.bloom-intro--editorial {
  --intro-ink: #0c0f0c;
  --intro-paper: #f3f0e7;
  --intro-lime: #c8d99b;
  --intro-wine: #783d49;
  background: var(--intro-ink);
  color: var(--intro-paper);
}
.bloom-intro--editorial:before {
  content: "";
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      #0000 calc(44% - 1px),
      #c8d99b2b 44%,
      #0000 calc(44% + 1px)
    ),
    radial-gradient(circle at 78% 42%, #783d492e, #0000 31%);
  position: absolute;
  inset: 0;
}
.bloom-intro--editorial:after {
  z-index: 1;
  opacity: 1;
  background: linear-gradient(90deg, #080c081f, #0000 48%);
}
.bloom-intro--editorial .bloom-intro__brand {
  z-index: 5;
  color: var(--intro-lime);
  align-items: center;
  gap: 12px;
  animation: 0.65s cubic-bezier(0.2, 0.75, 0.2, 1) 0.12s both editorial-copy-in;
  display: flex;
  position: absolute;
  top: clamp(28px, 5.2vh, 58px);
  left: clamp(28px, 4.5vw, 74px);
}
.bloom-intro__brand-flower {
  border: 1px solid #c8d99b7a;
  border-radius: 50%;
  place-items: center;
  width: 28px;
  height: 28px;
  display: grid;
}
.bloom-intro__brand-flower svg {
  fill: #c8d99b14;
  stroke: currentColor;
  stroke-width: 1px;
  stroke-linecap: round;
  stroke-linejoin: round;
  width: 19px;
  height: 19px;
}
.bloom-intro__brand-note {
  letter-spacing: 0.25em;
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 650;
}
.bloom-intro--editorial .bloom-intro__bands {
  z-index: 1;
  border-left: 1px solid #c8d99b1f;
  height: auto;
  display: block;
  position: absolute;
  inset: 0 0 76px 44%;
  overflow: hidden;
}
.bloom-intro--editorial .bloom-intro__bands:after {
  content: "";
  z-index: 2;
  background:
    linear-gradient(90deg, var(--intro-ink) 0%, #0c0f0cb8 13%, transparent 47%),
    linear-gradient(0deg, #0c0f0c9e, transparent 28%);
  pointer-events: none;
  position: absolute;
  inset: 0;
}
.bloom-intro--editorial .bloom-intro__band {
  background: #111711;
  border: 0;
  animation: 1.1s cubic-bezier(0.2, 0.75, 0.2, 1) both editorial-image-in;
  position: absolute;
  inset: 0;
}
.bloom-intro--editorial .bloom-intro__band img {
  object-fit: cover;
  object-position: 68% 50%;
  filter: brightness(0.74) saturate(0.88) contrast(1.08);
  animation: 8s ease-out both editorial-image-drift;
  transform: scale(1);
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  inset: 0 !important;
}
.bloom-intro__copy {
  z-index: 4;
  width: min(64vw, 980px);
  animation: 0.72s cubic-bezier(0.2, 0.75, 0.2, 1) 0.22s both editorial-copy-in;
  position: absolute;
  top: 25vh;
  left: clamp(28px, 4.5vw, 74px);
}
.bloom-intro__copy h2 {
  color: var(--intro-lime);
  font-family: "Cormorant Garamond Local", var(--serif);
  letter-spacing: 0.055em;
  text-shadow:
    0 1px #f3f0e729,
    0 10px 42px #0000002e;
  margin: 0;
  font-size: clamp(104px, 14.2vw, 218px);
  font-weight: 400;
  line-height: 0.72;
}
.bloom-intro__promise {
  color: var(--intro-paper);
  font-family: "Cormorant Garamond Local", var(--serif);
  margin: clamp(32px, 5vh, 58px) 0 0;
  font-size: clamp(30px, 3.45vw, 54px);
  font-weight: 400;
  line-height: 0.98;
}
.bloom-intro__promise em {
  color: var(--intro-lime);
  font-weight: 400;
}
.bloom-intro__lead {
  color: #f3f0e7a3;
  max-width: 440px;
  margin: 15px 0 0;
  font-size: clamp(13px, 1.1vw, 16px);
  line-height: 1.55;
}
.bloom-intro__specimen {
  z-index: 4;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  background: #070b07c2;
  border: 1px solid #c8d99b47;
  width: min(270px, 21vw);
  padding: 17px 19px;
  animation: 0.65s ease-out 0.46s both editorial-copy-in;
  position: absolute;
  bottom: 18vh;
  right: clamp(24px, 4vw, 64px);
}
.bloom-intro__specimen span {
  color: var(--intro-lime);
  letter-spacing: 0.17em;
  font-size: 9px;
  font-weight: 700;
}
.bloom-intro__specimen p {
  color: var(--intro-paper);
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.35;
}
.bloom-intro--editorial .bloom-intro__actions {
  z-index: 6;
  align-items: center;
  justify-items: initial;
  gap: 25px;
  animation: 0.7s ease-out 0.4s both editorial-copy-in;
  display: flex;
  position: absolute;
  bottom: 12.8vh;
  left: clamp(28px, 4.5vw, 74px);
  transform: none;
}
.bloom-intro--editorial .bloom-trigger {
  border: 1px solid var(--intro-lime);
  background: var(--intro-lime);
  width: auto;
  min-width: 238px;
  min-height: 62px;
  color: var(--intro-ink);
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-radius: 0;
  flex-direction: row;
  justify-content: space-between;
  gap: 32px;
  padding: 0 22px 0 25px;
  transition:
    background-color 0.22s,
    color 0.22s,
    transform 0.22s;
  display: flex;
  position: relative;
}
.bloom-intro--editorial .bloom-trigger:before {
  display: none;
}
.bloom-intro--editorial .bloom-trigger:hover {
  border-color: var(--intro-paper);
  background: var(--intro-paper);
  box-shadow: none;
  transform: translateY(-3px);
}
.bloom-intro--editorial .bloom-trigger:focus-visible,
.bloom-intro__skip:focus-visible {
  outline-offset: 3px;
  outline: 1px solid #c8d99b85;
}
.bloom-trigger__label {
  font-size: 14px;
  font-weight: 700;
}
.bloom-intro--editorial .bloom-trigger__arrow {
  color: inherit;
  font-size: 23px;
}
.bloom-intro--editorial .bloom-trigger:hover .bloom-trigger__arrow {
  color: inherit;
  transform: translate(4px);
}
.bloom-intro__skip {
  color: var(--intro-paper);
  cursor: pointer;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  background: 0 0;
  border-bottom: 1px solid #f3f0e773;
  padding: 8px 0;
  font-size: 12px;
  transition:
    border-color 0.2s,
    color 0.2s;
}
.bloom-intro__skip:hover {
  border-color: var(--intro-lime);
  color: var(--intro-lime);
}
.bloom-intro__proof {
  z-index: 5;
  background: #080c08f5;
  border-top: 1px solid #c8d99b2e;
  grid-template-columns: repeat(3, 1fr);
  height: 76px;
  animation: 0.65s ease-out 0.52s both editorial-copy-in;
  display: grid;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.bloom-intro__proof span {
  color: #f3f0e7c2;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  align-items: center;
  gap: 16px;
  padding-inline: clamp(22px, 4vw, 62px);
  font-size: 11px;
  display: flex;
}
.bloom-intro__proof span + span {
  border-left: 1px solid #c8d99b2e;
}
.bloom-intro__proof b {
  color: var(--intro-lime);
  letter-spacing: 0.1em;
  font-size: 9px;
}
.bloom-intro--editorial.is-scattering .bloom-intro__band,
.bloom-intro--editorial.is-scattering .bloom-intro__copy,
.bloom-intro--editorial.is-scattering .bloom-intro__actions,
.bloom-intro--editorial.is-scattering .bloom-intro__brand,
.bloom-intro--editorial.is-scattering .bloom-intro__specimen,
.bloom-intro--editorial.is-scattering .bloom-intro__proof {
  animation: 0.56s cubic-bezier(0.45, 0, 0.25, 1) both editorial-elements-out;
}
@keyframes editorial-image-in {
  0% {
    opacity: 0;
    clip-path: inset(0 0 0 100%);
  }
  to {
    opacity: 1;
    clip-path: inset(0);
  }
}
@keyframes editorial-image-drift {
  0% {
    transform: scale(1.035);
  }
  to {
    transform: scale(1);
  }
}
@keyframes editorial-copy-in {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes editorial-elements-out {
  0% {
    opacity: 1;
    filter: blur();
    transform: translateY(0);
  }
  to {
    opacity: 0;
    filter: blur(5px);
    transform: translateY(-8px);
  }
}
@media (max-width: 620px) {
  .bloom-intro--editorial:before {
    background: radial-gradient(circle at 78% 60%, #783d492e, #0000 34%);
  }
  .bloom-intro--editorial .bloom-intro__brand {
    top: max(24px, calc(18px + env(safe-area-inset-top)));
    left: 20px;
  }
  .bloom-intro__brand-note {
    letter-spacing: 0.18em;
    font-size: 8px;
  }
  .bloom-intro--editorial .bloom-intro__bands {
    border: 0;
    inset: 37vh 0 64px 16%;
  }
  .bloom-intro--editorial .bloom-intro__bands:after {
    background:
      linear-gradient(
        180deg,
        var(--intro-ink) 0%,
        #0c0f0c33 24%,
        transparent 48%
      ),
      linear-gradient(0deg, #0c0f0ccc, transparent 36%),
      linear-gradient(90deg, var(--intro-ink), transparent 34%);
  }
  .bloom-intro--editorial .bloom-intro__band img {
    object-position: 70% 50%;
  }
  .bloom-intro__copy {
    width: calc(100% - 40px);
    top: 15vh;
    left: 20px;
  }
  .bloom-intro__copy h2 {
    letter-spacing: 0.015em;
    font-size: clamp(64px, 20vw, 82px);
    line-height: 0.78;
  }
  .bloom-intro__promise {
    max-width: 330px;
    margin-top: 24px;
    font-size: clamp(26px, 8.2vw, 36px);
  }
  .bloom-intro__lead {
    max-width: 310px;
    margin-top: 10px;
    font-size: 12px;
  }
  .bloom-intro__specimen {
    display: none;
  }
  .bloom-intro--editorial .bloom-intro__actions {
    width: calc(100% - 40px);
    display: block;
    bottom: 91px;
    left: 20px;
    right: auto;
  }
  .bloom-intro--editorial .bloom-trigger {
    flex: 1;
    width: 100%;
    min-width: 0;
    min-height: 56px;
    padding-inline: 20px;
  }
  .bloom-intro__skip {
    display: none;
  }
  .bloom-intro__proof {
    height: 64px;
  }
  .bloom-intro__proof span {
    letter-spacing: 0.06em;
    text-align: center;
    white-space: nowrap;
    justify-content: center;
    gap: 0;
    padding: 7px;
    font-size: 8px;
  }
  .bloom-intro__proof b {
    display: none;
  }
}
@media (max-width: 380px), (max-height: 670px) {
  .bloom-intro__copy {
    top: 13vh;
  }
  .bloom-intro__copy h2 {
    font-size: clamp(64px, 19vw, 86px);
  }
  .bloom-intro__promise {
    margin-top: 18px;
    font-size: 25px;
  }
  .bloom-intro__lead {
    display: none;
  }
  .bloom-intro--editorial .bloom-intro__actions {
    bottom: 78px;
  }
  .bloom-intro__proof {
    height: 54px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .bloom-intro--editorial,
  .bloom-intro--editorial *,
  .bloom-intro--editorial :before,
  .bloom-intro--editorial :after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
.bloom-intro--editorial .bloom-intro__skip {
  min-width: 238px;
  min-height: 62px;
  color: var(--intro-paper);
  letter-spacing: 0;
  text-transform: none;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background: #0c0f0c57;
  border: 1px solid #f3f0e785;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  padding: 0 22px 0 25px;
  font-size: 14px;
  font-weight: 650;
  display: flex;
}
.bloom-intro--editorial .bloom-intro__skip:hover {
  border-color: var(--intro-lime);
  color: var(--intro-lime);
  background: #c8d99b1a;
  transform: translateY(-3px);
}
.bloom-intro--editorial.is-scattering {
  animation: 0.9s cubic-bezier(0.7, 0, 0.3, 1) both editorial-intro-out;
}
.bloom-intro--editorial.is-scattering .bloom-intro__band {
  animation: 0.65s cubic-bezier(0.45, 0, 0.25, 1) both editorial-image-out;
}
.bloom-intro--editorial.is-scattering .bloom-intro__copy,
.bloom-intro--editorial.is-scattering .bloom-intro__actions,
.bloom-intro--editorial.is-scattering .bloom-intro__brand,
.bloom-intro--editorial.is-scattering .bloom-intro__specimen,
.bloom-intro--editorial.is-scattering .bloom-intro__proof {
  animation: 0.22s ease-in both editorial-copy-out;
}
.bloom-intro--editorial.is-scattering .bloom-intro__exit-petal {
  animation: editorial-petal-flight var(--exit-duration) var(--exit-delay) both
    cubic-bezier(0.16, 0.72, 0.28, 1);
}
@media (max-width: 620px) {
  .bloom-intro--editorial .bloom-intro__actions {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    display: grid;
  }
  .bloom-intro--editorial .bloom-trigger,
  .bloom-intro--editorial .bloom-intro__skip {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding-inline: 16px;
    font-size: 12px;
  }
}
@media (max-height: 670px) {
  .bloom-intro--editorial .bloom-intro__skip {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .bloom-intro__exit-petal {
    display: none;
  }
}

/* VELORA mobile intro parity patch, 2026-09-12 */
@media (max-width: 620px) {
  .bloom-intro--editorial:before {
    background:
      linear-gradient(
        90deg,
        transparent calc(44% - 1px),
        rgba(200, 217, 155, 0.17) 44%,
        transparent calc(44% + 1px)
      ),
      radial-gradient(
        circle at 78% 42%,
        rgba(120, 61, 73, 0.18),
        transparent 31%
      );
  }
  .bloom-intro--editorial .bloom-intro__bands {
    border-left: 1px solid rgba(200, 217, 155, 0.12);
    inset: 0 0 64px 44%;
  }
  .bloom-intro--editorial .bloom-intro__bands:after {
    background:
      linear-gradient(
        90deg,
        var(--intro-ink) 0%,
        rgba(12, 15, 12, 0.72) 13%,
        transparent 47%
      ),
      linear-gradient(0deg, rgba(12, 15, 12, 0.62), transparent 28%);
  }
  .bloom-intro--editorial .bloom-intro__band img {
    object-position: 68% 50%;
  }
  .bloom-intro__copy {
    top: 25vh;
  }
  .bloom-intro__copy h2 {
    font-size: clamp(76px, 21vw, 92px);
    line-height: 0.72;
  }
  .bloom-intro__promise {
    max-width: 340px;
    margin-top: 30px;
    font-size: clamp(27px, 8vw, 34px);
  }
  .bloom-intro__lead {
    display: block;
    max-width: 310px;
    margin-top: 10px;
    font-size: 12px;
  }
  .bloom-intro__specimen {
    display: block;
    width: min(142px, 36vw);
    bottom: 156px;
    right: 12px;
    padding: 12px 13px;
  }
  .bloom-intro__specimen p {
    font-size: 10px;
  }
}

@media (max-width: 380px), (max-height: 670px) {
  .bloom-intro__copy {
    top: 19vh;
  }
  .bloom-intro__copy h2 {
    font-size: clamp(68px, 20vw, 82px);
  }
  .bloom-intro__promise {
    margin-top: 20px;
    font-size: 25px;
  }
  .bloom-intro__specimen {
    display: none;
  }
}

/* VELORA mobile intro typography refinement, 2026-09-13 */
@media (max-width: 620px) {
  .bloom-intro__promise {
    max-width: 310px;
    font-size: clamp(27px, 7.8vw, 32px);
    line-height: 1.02;
    letter-spacing: 0;
    word-spacing: 0;
    text-align: left;
    text-wrap: pretty;
  }
  .bloom-intro__promise em {
    display: block;
    margin-top: 0.04em;
    white-space: nowrap;
  }
}

/* Source-build accessibility and resilience layer. */
[hidden] {
  display: none !important;
}
.bloom-intro {
  display: none;
}
.js .bloom-intro:not([hidden]) {
  display: block;
}
.intro-seen .bloom-intro {
  display: none;
}

:where(a, button, input, select, summary):focus-visible {
  outline: 3px solid #d6ff3f;
  outline-offset: 4px;
}

.product-card[hidden] {
  display: none !important;
}

.cart-total {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.cart-submit {
  box-sizing: border-box;
  justify-content: center;
}

@media (max-width: 620px) {
  :where(
    .button,
    .header-cta,
    .header-intro,
    .category-list button,
    .add-to-cart,
    .favorite-button,
    .copy-contact,
    summary
  ) {
    min-height: 44px;
  }

  .cart-note,
  .demo-disclaimer,
  .product-origin,
  .reserve-data {
    font-size: 11px;
  }
}

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

@media (forced-colors: active) {
  :where(a, button, input, select, summary) {
    forced-color-adjust: auto;
  }
  .live-dot {
    border: 1px solid currentColor;
  }
}
