:root {
  --ink: #151515;
  --muted: #6c6963;
  --paper: #f4f0e7;
  --paper-deep: #e8e1d5;
  --white: #fffdf8;
  --acid: #dfff4f;
  --plum: #5b1838;
  --rose: #d9a6a0;
  --line: rgba(21, 21, 21, 0.17);
  --soft-line: rgba(21, 21, 21, 0.09);
  --serif: "Newsreader", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --mono: "DM Mono", monospace;
  --shadow: 0 18px 60px rgba(42, 25, 21, 0.13);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button { color: inherit; }
body:not(.is-human) button { cursor:not-allowed !important; opacity:.52; }
a { color: inherit; text-decoration: none; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--plum);
  outline-offset: 3px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 1000;
  background: var(--ink);
  color: white;
  padding: 10px 14px;
  transform: translateY(-160%);
}
.skip-link:focus { transform: none; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 78px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 3vw;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--paper) 93%, transparent);
  backdrop-filter: blur(16px);
}
.wordmark {
  display: flex;
  gap: 11px;
  align-items: center;
  width: fit-content;
  font: 600 11px/1.05 var(--mono);
  letter-spacing: .16em;
}
.mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--ink);
  border-radius: 50%;
  font: 500 10px var(--mono);
  letter-spacing: 0;
}
.main-nav { display: flex; gap: 32px; align-items: center; }
.main-nav a, .nav-button {
  position: relative;
  border: 0;
  background: none;
  padding: 9px 0;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
}
.main-nav a::after, .nav-button::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 2px;
  height: 1px;
  background: var(--ink);
  transition: right .25s ease;
}
.main-nav a:hover::after, .nav-button:hover::after { right: 0; }
.nav-button span { font: 400 9px var(--mono); vertical-align: super; color: var(--muted); }
.main-nav a span { font: 400 8px var(--mono); vertical-align: super; color: var(--muted); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 11px; }
.text-button, .icon-button {
  border: 0;
  background: none;
  cursor: pointer;
}
.text-button { font: 500 10px var(--mono); letter-spacing: .06em; }
.status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 7px;
  border-radius: 50%;
  background: #4f8f61;
  box-shadow: 0 0 0 3px rgba(79,143,97,.12);
}
.icon-button { position: relative; font: 300 27px var(--serif); padding: 3px 8px; }
.count-badge {
  position: absolute;
  top: 2px;
  right: -2px;
  display: grid;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  place-items: center;
  border-radius: 999px;
  color: white;
  background: var(--plum);
  font: 500 8px var(--mono);
}

.hero {
  position: relative;
  overflow: hidden;
  min-height: 485px;
  padding: 74px 5vw 38px;
  display: grid;
  grid-template-columns: minmax(380px, .82fr) minmax(480px, 1.18fr);
  grid-template-rows: 1fr auto;
  gap: 34px 7vw;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at 88% 12%, rgba(223,255,79,.42), transparent 22%),
    radial-gradient(circle at 71% 89%, rgba(91,24,56,.07), transparent 28%),
    var(--paper);
}
.hero::before {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  right: -150px;
  top: 55px;
  border: 1px solid rgba(21,21,21,.12);
  border-radius: 50%;
}
.hero::after {
  content: "GLOBAL / FIT / INDEX / 26";
  position: absolute;
  right: 4vw;
  bottom: 25px;
  writing-mode: vertical-rl;
  font: 400 8px var(--mono);
  letter-spacing: .18em;
  color: rgba(21,21,21,.38);
}
.hero > * { min-width:0; }
.eyebrow, .kicker {
  margin: 0 0 17px;
  text-transform: uppercase;
  letter-spacing: .13em;
  font: 500 9px var(--mono);
}
.eyebrow { display: flex; align-items: center; gap: 10px; }
.eyebrow span { width: 25px; height: 1px; background: var(--ink); }
.hero h1 {
  margin: 0;
  max-width: 650px;
  font: 400 clamp(58px, 7vw, 105px)/.82 var(--serif);
  letter-spacing: -.06em;
}
.hero h1 em { color: var(--plum); font-weight: 400; }
.hero-intro {
  max-width: 440px;
  margin: 28px 0 0;
  font: 400 14px/1.6 var(--sans);
  color: var(--muted);
}
.hero-search-wrap { align-self: center; padding-top: 40px; }
.smart-search {
  display: grid;
  grid-template-columns: 27px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 9px 10px 9px 20px;
  border: 1px solid var(--ink);
  border-radius: 2px;
  background: var(--white);
  box-shadow: 9px 9px 0 var(--ink);
}
.search-icon {
  position: relative;
  width: 16px;
  height: 16px;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
}
.search-icon::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 1.5px;
  background: var(--ink);
  transform: rotate(45deg);
  right: -5px;
  bottom: -2px;
}
.smart-search input {
  min-width: 0;
  height: 50px;
  border: 0;
  outline: 0;
  background: transparent;
  font: 400 clamp(13px, 1.4vw, 17px) var(--sans);
}
.smart-search input::placeholder { color: #88837b; }
.smart-search button, .fit-finder > button, .dialog-primary {
  border: 1px solid var(--ink);
  background: var(--ink);
  color: white;
  height: 49px;
  padding: 0 22px;
  cursor: pointer;
  font: 500 10px var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
  transition: background .2s, color .2s;
}
.smart-search button:hover, .fit-finder > button:hover, .dialog-primary:hover { background: var(--acid); color: var(--ink); }
.search-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 15px;
  margin: 22px 0 0 3px;
  align-items: center;
  font: 400 9px var(--mono);
  color: var(--muted);
}
.search-suggestions span { text-transform: uppercase; letter-spacing: .1em; color: var(--ink); }
.search-suggestions button {
  border: 0;
  border-bottom: 1px solid rgba(21,21,21,.25);
  padding: 2px 0;
  background: none;
  color: var(--muted);
  cursor: pointer;
}
.search-suggestions button:hover { color: var(--ink); border-color: var(--ink); }
.search-readout {
  margin-top: 18px;
  padding: 11px 14px;
  border-left: 2px solid var(--plum);
  background: rgba(255,255,255,.4);
  color: var(--muted);
  font-size: 11px;
}
.search-readout strong { color: var(--ink); }
.atlas-stats {
  grid-column: 1 / -1;
  align-self: end;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: 680px;
  gap: 0;
}
.atlas-stats div {
  display: grid;
  gap: 3px;
  padding-left: 17px;
  border-left: 1px solid var(--line);
}
.atlas-stats strong { font: 400 19px var(--serif); }
.atlas-stats span { color: var(--muted); font: 400 8px var(--mono); text-transform: uppercase; letter-spacing: .08em; }

.category-rail {
  display: grid;
  grid-template-columns: repeat(8, minmax(145px, 1fr));
  overflow-x: auto;
  gap: 0;
  border-bottom: 1px solid var(--line);
  scrollbar-width: none;
}
.category-rail::-webkit-scrollbar { display: none; }
.category-card {
  position: relative;
  min-width: 150px;
  min-height: 112px;
  display: flex;
  align-items: flex-end;
  padding: 22px 17px 20px;
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background .25s ease;
}
.category-card:last-child { border-right: 0; }
.category-card:hover, .category-card.active { background: var(--white); }
.category-card.active::after {
  content: "";
  position: absolute;
  left: 17px;
  right: 17px;
  bottom: 0;
  height: 3px;
  background: var(--plum);
}
.category-card > span { display:grid; gap:7px; }
.category-card strong { display:block; font:500 16px/1.1 var(--sans); letter-spacing:-.015em; }
.category-card small { color:var(--muted); font:400 8px/1.35 var(--mono); }

.source-network {
  overflow: hidden;
  padding: 72px 4vw 82px;
  color: var(--paper);
  background:
    radial-gradient(circle at 84% 8%, rgba(223,255,79,.13), transparent 25%),
    linear-gradient(135deg, #171515, #241a20 62%, #171515);
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.source-intro {
  display: grid;
  grid-template-columns: minmax(360px, 1.05fr) minmax(360px, .95fr);
  gap: 7vw;
  align-items: end;
  margin-bottom: 46px;
}
.source-intro > *, .source-toolbar > *, .source-card { min-width:0; }
.source-intro .eyebrow { color: rgba(244,240,231,.7); }
.source-intro .eyebrow span { background: var(--acid); }
.source-intro h2 { margin:0; font:400 clamp(48px,6vw,84px)/.91 var(--serif); letter-spacing:-.045em; }
.source-intro h2 em { color:var(--acid); font-weight:400; }
.source-intro-copy { max-width:610px; justify-self:end; }
.source-intro-copy > p { margin:0 0 25px; color:rgba(244,240,231,.75); font-size:13px; line-height:1.75; }
.method-button {
  padding:0 0 6px;
  border:0;
  border-bottom:1px solid rgba(244,240,231,.65);
  color:var(--paper);
  background:none;
  cursor:pointer;
  font:500 9px var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.method-button span { margin-left:8px; color:var(--acid); }
.source-metrics {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:1px solid rgba(244,240,231,.2);
  margin-bottom:24px;
}
.source-metrics div { min-height:92px; display:grid; align-content:center; gap:5px; padding:17px 21px; border-right:1px solid rgba(244,240,231,.2); }
.source-metrics div:last-child { border-right:0; }
.source-metrics strong { font:400 26px var(--serif); color:var(--acid); }
.source-metrics span { font:400 8px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:rgba(244,240,231,.58); }
.source-toolbar {
  display:grid;
  grid-template-columns:minmax(260px,1fr) 220px 285px;
  border:1px solid rgba(244,240,231,.2);
  background:rgba(255,255,255,.035);
}
.source-search, .source-select { min-height:66px; display:grid; align-content:center; padding:10px 18px; border-right:1px solid rgba(244,240,231,.2); }
.source-search { position:relative; }
.source-search::before { content:"⌕"; position:absolute; left:18px; top:21px; color:var(--acid); font:22px var(--serif); }
.source-search input, .source-select select {
  width:100%;
  border:0;
  color:var(--paper);
  background:transparent;
  outline:0;
}
.source-search input { padding-left:27px; font-size:12px; }
.source-search input::placeholder { color:rgba(244,240,231,.5); }
.source-select { gap:6px; color:rgba(244,240,231,.5); font:400 7px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.source-select:last-child { border-right:0; }
.source-select select { appearance:none; font:500 10px var(--mono); letter-spacing:0; text-transform:none; cursor:pointer; }
.source-select option { color:var(--ink); background:var(--white); }
.source-scale-row { min-height:63px; display:flex; gap:20px; align-items:center; margin-bottom:27px; border-bottom:1px solid rgba(244,240,231,.15); }
.source-scale-row > span { color:rgba(244,240,231,.5); font:400 8px var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.source-scale-row > div { display:flex; gap:7px; flex-wrap:wrap; }
.source-scale-row button {
  border:1px solid rgba(244,240,231,.2);
  border-radius:999px;
  padding:8px 12px;
  color:rgba(244,240,231,.7);
  background:transparent;
  cursor:pointer;
  font:500 8px var(--mono);
}
.source-scale-row button small { margin-left:4px; font-size:7px; color:rgba(244,240,231,.4); }
.source-scale-row button:hover, .source-scale-row button.active { border-color:var(--acid); color:var(--ink); background:var(--acid); }
.source-scale-row button.active small { color:rgba(21,21,21,.65); }
.source-scale-row > p { margin-left:auto; color:rgba(244,240,231,.5); font:400 8px var(--mono); text-transform:uppercase; }
.source-scale-row > p strong { color:var(--paper); }
.source-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.source-card {
  position:relative;
  overflow:hidden;
  min-height:480px;
  display:flex;
  flex-direction:column;
  padding:22px;
  color:var(--ink);
  background:var(--white);
  border-top:4px solid var(--source-accent);
}
.source-card::after { content:""; position:absolute; width:150px; height:150px; right:-87px; top:-77px; border-radius:50%; background:var(--source-accent); opacity:.25; }
.source-card-head { display:flex; justify-content:space-between; align-items:start; position:relative; z-index:1; }
.source-rank { font:400 12px var(--mono); color:var(--muted); }
.source-badges { display:flex; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.source-badges span { padding:5px 7px; border:1px solid var(--line); font:500 7px var(--mono); text-transform:uppercase; letter-spacing:.05em; }
.source-badges span:first-child { border-color:var(--ink); background:var(--ink); color:white; }
.source-identity { margin:36px 0 29px; }
.source-identity p { margin:0 0 8px; color:var(--muted); font:400 7px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.source-identity h3 { margin:0; font:400 clamp(31px,3.2vw,48px)/.95 var(--serif); letter-spacing:-.04em; }
.source-identity > span { display:block; margin-top:8px; color:var(--muted); font:400 8px var(--mono); }
.source-score-row { display:grid; grid-template-columns:1fr 1fr; border-block:1px solid var(--line); }
.source-score-row div { display:grid; gap:7px; padding:14px 0; }
.source-score-row div + div { padding-left:16px; border-left:1px solid var(--line); }
.source-score-row span, .inventory-meter span { color:var(--muted); font:400 7px var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.source-score-row strong { font:400 24px var(--serif); }
.source-score-row small { font:400 8px var(--mono); color:var(--muted); }
.inventory-meter { padding:18px 0 15px; }
.inventory-meter > div { display:flex; justify-content:space-between; align-items:end; gap:12px; }
.inventory-meter strong { font:500 12px var(--mono); }
.inventory-meter strong small { color:var(--muted); font-size:7px; font-weight:400; }
.inventory-meter > i { display:block; height:5px; margin-top:11px; background:var(--paper-deep); }
.inventory-meter > i b { display:block; height:100%; background:var(--source-accent); }
.source-focus { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:20px; }
.source-focus span { padding:5px 7px; border-radius:999px; background:var(--paper); font:500 7px var(--mono); }
.source-card-links { margin-top:auto; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); padding-top:15px; gap:9px 14px; }
.source-card-links a { color:var(--muted); font:500 7px var(--mono); text-decoration:underline; text-underline-offset:3px; }
.source-card-links a:first-child { grid-column:1/-1; display:flex; justify-content:space-between; padding:12px 13px; color:var(--white); background:var(--ink); font-size:9px; text-decoration:none; text-transform:uppercase; letter-spacing:.08em; }
.source-card-links a:first-child span { color:var(--acid); }
.source-card-links a:hover { color:var(--plum); }
.source-card-links a:first-child:hover { color:var(--white); background:var(--plum); }
.source-empty { padding:70px 20px; text-align:center; border:1px solid rgba(244,240,231,.2); }
.source-empty p { font:400 28px var(--serif); }
.source-empty button { padding:10px 15px; border:1px solid var(--paper); color:var(--paper); background:transparent; cursor:pointer; font:500 8px var(--mono); text-transform:uppercase; }
.source-method-dialog { width:min(720px,92vw); }
.method-formula { margin:28px 0 0; padding:15px; background:var(--ink); color:var(--acid); font:500 8px var(--mono); letter-spacing:.08em; text-align:center; }

.catalogue {
  display: grid;
  grid-template-columns: 284px minmax(0, 1fr);
  align-items: start;
}
.filter-panel {
  position: sticky;
  top: 78px;
  max-height: calc(100vh - 78px);
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: var(--paper);
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.filter-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  padding: 28px 24px 20px;
  border-bottom: 1px solid var(--line);
}
.filter-heading h2, .results-topline h2 { margin: 0; font: 400 31px var(--serif); letter-spacing: -.03em; }
.filter-heading .kicker, .results-topline .kicker { margin-bottom: 4px; color: var(--muted); }
.clear-button {
  border: 0;
  border-bottom: 1px solid var(--ink);
  background: none;
  padding: 2px 0;
  cursor: pointer;
  font: 400 9px var(--mono);
}
.fit-finder {
  margin: 20px 18px;
  padding: 17px;
  border: 1px solid var(--ink);
  background: var(--acid);
}
.fit-title { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; }
.fit-title span { font-size: 13px; }
.fit-title strong { font: 600 11px var(--sans); }
.fit-title small { font: 400 8px var(--mono); text-transform: uppercase; }
.fit-selects { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 14px 0 10px; }
.fit-selects label, .range-inputs label, .destination-fields label {
  display: grid;
  gap: 5px;
  font: 500 8px var(--mono);
  text-transform: uppercase;
}
.fit-selects select, .range-inputs input, .destination-fields select {
  width: 100%;
  height: 36px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--white);
  padding: 0 8px;
  color: var(--ink);
  font: 500 10px var(--mono);
}
.fit-finder > button { width: 100%; height: 38px; }
.price-filter { padding: 20px 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.facet-title { display: flex; justify-content: space-between; align-items: center; font: 600 10px var(--sans); }
.facet-title span:last-child { color: var(--muted); font: 400 8px var(--mono); }
.range-track { position: relative; height: 2px; margin: 21px 2px; background: #cfc9be; }
.range-track::before, .range-track::after { content:""; position:absolute; top:50%; width:9px; height:9px; margin-top:-5px; border:1px solid var(--ink); border-radius:50%; background:var(--paper); }
.range-track::before { left: 0; }.range-track::after { right:0; }
.range-track span { position:absolute; inset:0; background:var(--ink); }
.range-inputs { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.range-inputs input { background: transparent; }
.facet-group { border-bottom: 1px solid var(--line); }
.facet-group summary {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  cursor: pointer;
  font-size: 10px;
  font-weight: 600;
}
.facet-group summary::-webkit-details-marker { display:none; }
.facet-group summary::after { content:"+"; font: 400 15px var(--mono); }
.facet-group[open] summary::after { content:"−"; }
.facet-group summary span { display:flex; align-items:center; gap:7px; }
.facet-group summary b { min-width:17px; height:17px; display:grid; place-items:center; border-radius:50%; background:var(--plum); color:white; font:400 7px var(--mono); }
.facet-options { display:grid; gap:9px; max-height:250px; overflow:auto; padding: 0 24px 19px; }
.facet-option { display:grid; grid-template-columns:15px 1fr auto; gap:8px; align-items:center; cursor:pointer; color:#35332f; font-size:10px; }
.facet-option input { appearance:none; width:14px; height:14px; margin:0; border:1px solid #706c65; background:transparent; }
.facet-option input:checked { border-color:var(--ink); background:var(--ink); box-shadow:inset 0 0 0 3px var(--paper); }
.facet-option .swatch { width:11px; height:11px; border-radius:50%; border:1px solid rgba(0,0,0,.2); }
.facet-option small { color:#8c877f; font:400 8px var(--mono); }
.show-more {
  justify-self:start;
  border:0;
  border-bottom:1px solid var(--ink);
  background:none;
  padding: 3px 0;
  cursor:pointer;
  font:400 8px var(--mono);
}
.filter-footer { display:none; }
.filter-scrim { display:none; }

.results-panel { min-width: 0; padding: 30px 3vw 64px; }
.results-topline { display:flex; justify-content:space-between; align-items:end; gap:20px; }
.result-controls { display:flex; align-items:center; gap:14px; }
.sort-select { display:flex; align-items:center; gap:8px; color:var(--muted); font:400 8px var(--mono); text-transform:uppercase; }
.sort-select select { height:36px; min-width:165px; border:1px solid var(--line); border-radius:0; background:transparent; padding:0 27px 0 10px; color:var(--ink); font:500 9px var(--mono); }
.view-switch { display:flex; border:1px solid var(--line); }
.view-switch button { width:36px; height:34px; display:grid; place-items:center; border:0; border-right:1px solid var(--line); background:transparent; cursor:pointer; }
.view-switch button:last-child { border-right:0; }
.view-switch button.active { background:var(--ink); color:white; }
.grid-icon { width:12px; height:12px; background:currentColor; box-shadow:7px 0 currentColor,0 7px currentColor,7px 7px currentColor; transform:scale(.45); transform-origin:top left; }
.list-icon { width:13px; height:1px; background:currentColor; box-shadow:0 4px currentColor,0 8px currentColor; }
.mobile-filter-button { display:none; }
.active-filters { display:flex; flex-wrap:wrap; gap:7px; min-height:20px; margin:20px 0; }
.filter-chip {
  display:inline-flex;
  gap:7px;
  align-items:center;
  height:28px;
  padding:0 9px 0 11px;
  border:1px solid var(--ink);
  border-radius:999px;
  background:transparent;
  cursor:pointer;
  font:400 8px var(--mono);
}
.filter-chip span { font-size:13px; line-height:1; }
.smart-note {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin: 9px 0 24px;
  padding: 14px 16px;
  border: 1px solid rgba(91,24,56,.2);
  background: rgba(91,24,56,.045);
}
.smart-note > div { display:flex; gap:11px; align-items:center; }
.smart-note p { margin:0; color:var(--muted); font-size:10px; line-height:1.45; }
.smart-note p strong { margin-right:.3em; color:var(--ink); }
.spark { display:grid; place-items:center; flex:0 0 auto; width:25px; height:25px; border-radius:50%; color:white; background:var(--plum); }
.smart-note button { border:0; border-bottom:1px solid var(--ink); background:none; white-space:nowrap; padding:2px 0; cursor:pointer; font:400 8px var(--mono); }

.product-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px 16px; }
.product-card { min-width:0; }
.product-visual {
  --tone: #dbc1b5;
  --accent: #5b1838;
  position:relative;
  overflow:hidden;
  aspect-ratio: .79;
  display:grid;
  place-items:center;
  background:
    linear-gradient(135deg, rgba(255,255,255,.4), transparent 46%),
    radial-gradient(circle at 68% 34%, color-mix(in srgb, var(--accent) 26%, transparent), transparent 32%),
    var(--tone);
  cursor:pointer;
}
.product-visual::before {
  content:"";
  position:absolute;
  width:68%;
  height:68%;
  border:1px solid rgba(255,255,255,.42);
  border-radius:50%;
  transform:rotate(-18deg);
}
.product-visual::after {
  content:"";
  position:absolute;
  inset:11px;
  border:1px solid rgba(21,21,21,.08);
  pointer-events:none;
}
.product-index { position:absolute; left:13px; top:13px; z-index:3; font:400 7px var(--mono); letter-spacing:.1em; }
.product-badges { position:absolute; z-index:3; left:13px; bottom:13px; display:flex; flex-wrap:wrap; gap:5px; max-width:70%; }
.product-badges span { padding:5px 7px; background:rgba(255,253,248,.87); backdrop-filter:blur(8px); font:500 7px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.save-button {
  position:absolute;
  z-index:4;
  right:12px;
  top:12px;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:rgba(255,253,248,.82);
  cursor:pointer;
  font:400 22px var(--serif);
  backdrop-filter:blur(8px);
}
.save-button.saved { color:white; background:var(--plum); }
.compare-toggle { position:absolute; right:13px; bottom:13px; z-index:4; }
.compare-toggle input { position:absolute; opacity:0; }
.compare-toggle span { display:flex; align-items:center; gap:5px; padding:5px 7px; background:rgba(255,253,248,.87); cursor:pointer; font:500 7px var(--mono); text-transform:uppercase; }
.compare-toggle span::before { content:""; width:8px; height:8px; border:1px solid var(--ink); }
.compare-toggle input:checked + span::before { background:var(--ink); box-shadow:inset 0 0 0 2px white; }
.garment { position:relative; z-index:2; width:72%; height:62%; filter:drop-shadow(0 16px 14px rgba(42,25,21,.13)); transform:rotate(-2deg); transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.product-visual:hover .garment { transform:rotate(1deg) scale(1.035); }
.garment i { position:absolute; display:block; background:var(--accent); }
.garment.bras i:nth-child(1), .garment.bras i:nth-child(2) { top:27%; width:47%; height:46%; border-radius:60% 60% 48% 48%; }
.garment.bras i:nth-child(1) { left:4%; transform:rotate(7deg); }.garment.bras i:nth-child(2) { right:4%; transform:rotate(-7deg); }
.garment.bras i:nth-child(3) { left:0; right:0; bottom:21%; height:6%; border-radius:30px; }
.garment.bras::before, .garment.bras::after { content:""; position:absolute; z-index:2; top:3%; width:2%; height:31%; border-radius:10px; background:var(--accent); }
.garment.bras::before { left:22%; transform:rotate(12deg); }.garment.bras::after { right:22%; transform:rotate(-12deg); }
.garment.underwear i:first-child { inset:17% 4% 12%; clip-path:polygon(0 0,100% 0,74% 100%,27% 100%); border-radius:20px 20px 40px 40px; }
.garment.underwear i:nth-child(2) { left:15%; right:15%; top:28%; height:2px; background:rgba(255,255,255,.45); }
.garment.bodysuits i:first-child, .garment.adaptive i:first-child { inset:2% 19%; clip-path:polygon(6% 0,36% 0,41% 15%,59% 15%,64% 0,94% 0,82% 45%,99% 100%,59% 86%,50% 100%,41% 86%,1% 100%,18% 45%); border-radius:8px; }
.garment.sleep-lounge i:first-child { width:52%; height:75%; left:5%; top:4%; border-radius:44% 4% 10% 10%; transform:rotate(6deg); }
.garment.sleep-lounge i:nth-child(2) { width:47%; height:80%; right:2%; top:4%; border-radius:4% 44% 10% 10%; transform:rotate(-5deg); opacity:.84; }
.garment.shapewear i:first-child { inset:4% 19% 0; clip-path:polygon(0 0,100% 0,82% 100%,18% 100%); border-radius:10px 10px 35px 35px; }
.garment.adaptive i:nth-child(2) { left:41%; top:34%; width:18%; height:18%; border-radius:50%; background:var(--acid); }
.garment.hosiery i:first-child { width:28%; height:94%; left:19%; top:1%; border-radius:30px 30px 10px 10px; transform:rotate(3deg); }
.garment.hosiery i:nth-child(2) { width:28%; height:94%; right:19%; top:1%; border-radius:30px 30px 10px 10px; transform:rotate(-3deg); }
.product-meta { padding-top:13px; }
.product-overline { display:flex; justify-content:space-between; gap:10px; margin-bottom:5px; color:var(--muted); font:400 7px var(--mono); text-transform:uppercase; letter-spacing:.06em; }
.product-overline .rating { color:var(--ink); }
.product-title-row { display:flex; justify-content:space-between; gap:12px; align-items:start; }
.product-title-row h3 { margin:0; font:500 14px/1.25 var(--sans); }
.product-title-row strong { white-space:nowrap; font:500 13px var(--mono); }
.product-brand { margin:0 0 2px; font:400 17px var(--serif); }
.fit-line { margin:9px 0 0; color:var(--muted); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.product-bottom { margin-top:11px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.color-dots { display:flex; gap:4px; }
.color-dots span { width:9px; height:9px; border-radius:50%; border:1px solid rgba(0,0,0,.2); }
.quick-view { border:0; border-bottom:1px solid var(--ink); background:none; padding:2px 0; cursor:pointer; font:400 8px var(--mono); }
.product-grid.compact { grid-template-columns:1fr; gap:0; }
.product-grid.compact .product-card { display:grid; grid-template-columns:160px 1fr; gap:20px; padding:15px 0; border-top:1px solid var(--line); }
.product-grid.compact .product-visual { aspect-ratio:1.1; }
.product-grid.compact .product-meta { display:grid; align-content:center; padding:0; }
.product-grid.compact .product-badges { display:none; }
.product-grid.compact .fit-line { white-space:normal; }
.empty-state { min-height:470px; display:grid; place-items:center; align-content:center; text-align:center; border:1px dashed var(--line); }
.empty-state span { font:400 88px/1 var(--serif); color:var(--plum); }
.empty-state h3 { margin:8px 0; font:400 35px var(--serif); }
.empty-state p { max-width:430px; margin:0 0 20px; color:var(--muted); font-size:12px; line-height:1.6; }
.empty-state button { border:1px solid var(--ink); padding:11px 16px; background:var(--ink); color:white; cursor:pointer; font:500 9px var(--mono); text-transform:uppercase; }
.results-footer { display:flex; justify-content:space-between; gap:20px; margin-top:45px; padding-top:17px; border-top:1px solid var(--line); color:var(--muted); font:400 8px var(--mono); }
.results-footer p { margin:0; color:var(--ink); }

.site-footer {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1.4fr;
  gap:45px;
  padding:58px 5vw;
  color:#f2eee7;
  background:var(--ink);
}
.footer-mark { font:400 clamp(30px,4vw,60px)/.9 var(--serif); letter-spacing:-.04em; }
.footer-mark em { color:var(--acid); font-weight:400; }
.site-footer > div:not(.footer-mark) { display:grid; align-content:start; gap:8px; font-size:10px; }
.site-footer strong { margin-bottom:6px; color:#918e88; font:400 8px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.site-footer span { color:#bbb6af; }
.site-footer p { margin:0; color:#85817b; font:400 8px/1.7 var(--mono); }

.compare-tray {
  position:fixed;
  z-index:50;
  left:50%;
  bottom:18px;
  width:min(720px,calc(100vw - 32px));
  min-height:70px;
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:1fr auto auto auto;
  align-items:center;
  gap:14px;
  padding:10px 12px;
  color:white;
  background:var(--ink);
  box-shadow:var(--shadow);
}
.compare-tray > div:first-child { display:flex; align-items:center; gap:11px; }
.compare-count { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:var(--ink); background:var(--acid); font:500 11px var(--mono); }
.compare-tray p { display:grid; margin:0; font-size:10px; }
.compare-tray small { color:#aaa59f; font:400 7px var(--mono); }
.compare-thumbs { display:flex; gap:5px; }
.compare-thumbs span { width:32px; height:39px; border:1px solid rgba(255,255,255,.2); background:var(--thumb); }
.compare-tray > button { height:38px; border:1px solid rgba(255,255,255,.32); background:transparent; color:white; padding:0 12px; cursor:pointer; font:500 8px var(--mono); text-transform:uppercase; }
.compare-tray > button:last-child { border-color:var(--acid); color:var(--ink); background:var(--acid); }

dialog {
  width:min(860px,calc(100vw - 30px));
  max-height:90vh;
  overflow:auto;
  padding:0;
  border:0;
  color:var(--ink);
  background:var(--paper);
  box-shadow:var(--shadow);
}
dialog::backdrop { background:rgba(21,21,21,.55); backdrop-filter:blur(4px); }
.product-dialog { width:min(1040px,calc(100vw - 30px)); }
.dialog-close { position:sticky; z-index:3; float:right; top:14px; right:14px; width:38px; height:38px; border:1px solid var(--ink); border-radius:50%; background:var(--paper); cursor:pointer; font:300 23px/1 var(--sans); }
.dialog-close + * { clear:both; }
.product-dialog-inner { display:grid; grid-template-columns:1fr 1fr; min-height:560px; }
.dialog-art { min-height:560px; display:grid; place-items:center; background:var(--tone); }
.dialog-art .garment { width:70%; height:50%; }
.dialog-details { padding:45px 42px; }
.dialog-details h2, .explain-dialog h2, .destination-dialog h2, .compare-dialog h2 { margin:5px 0 9px; font:400 43px/.95 var(--serif); letter-spacing:-.04em; }
.dialog-details .dialog-brand { margin:0; color:var(--muted); font:400 10px var(--mono); text-transform:uppercase; }
.dialog-price { margin:16px 0; font:500 17px var(--mono); }
.dialog-description { color:var(--muted); font-size:11px; line-height:1.65; }
.dialog-specs { display:grid; grid-template-columns:1fr 1fr; margin:23px 0; border-top:1px solid var(--line); }
.dialog-specs div { padding:12px 8px 12px 0; border-bottom:1px solid var(--line); }
.dialog-specs span { display:block; color:var(--muted); font:400 7px var(--mono); text-transform:uppercase; }
.dialog-specs strong { font-size:10px; font-weight:500; }
.dialog-size-grid { display:flex; flex-wrap:wrap; gap:5px; margin:9px 0 19px; }
.dialog-size-grid span { min-width:31px; padding:7px; border:1px solid var(--line); text-align:center; font:400 8px var(--mono); }
.dialog-cta { width:100%; height:46px; border:0; background:var(--ink); color:white; cursor:pointer; font:500 9px var(--mono); text-transform:uppercase; }
.explain-dialog, .destination-dialog, .compare-dialog { width:min(650px,calc(100vw - 30px)); padding:34px 40px 40px; }
.ranking-list { display:grid; margin-top:28px; border-top:1px solid var(--line); }
.ranking-list div { display:grid; grid-template-columns:38px 1fr; gap:12px; padding:15px 0; border-bottom:1px solid var(--line); }
.ranking-list span { font:400 9px var(--mono); color:var(--plum); }
.ranking-list p { display:grid; gap:3px; margin:0; color:var(--muted); font-size:10px; }
.ranking-list strong { color:var(--ink); font-size:11px; }
.destination-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:26px 0 14px; }
.destination-fields select { height:44px; background:white; }
.destination-note { color:var(--muted); font-size:10px; line-height:1.55; }
.dialog-primary { margin-top:12px; }
.comparison-table { overflow-x:auto; margin-top:26px; }
.compare-grid { display:grid; grid-template-columns:100px repeat(var(--compare-count),minmax(140px,1fr)); min-width:520px; border-top:1px solid var(--line); }
.compare-grid > div { padding:12px 9px; border-bottom:1px solid var(--line); border-right:1px solid var(--soft-line); font-size:9px; }
.compare-grid > div:nth-child(calc(var(--compare-count) + 1n)) { border-right:0; }
.compare-grid .compare-label { color:var(--muted); font:400 7px var(--mono); text-transform:uppercase; }
.compare-grid .compare-head { min-height:90px; font-size:10px; }
.compare-head span { display:block; width:100%; height:45px; margin-bottom:8px; background:var(--tone); }
.toast {
  position:fixed;
  z-index:80;
  right:20px;
  bottom:20px;
  padding:12px 16px;
  color:white;
  background:var(--plum);
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:.25s ease;
  font:500 9px var(--mono);
}
.toast.show { opacity:1; transform:none; }

@media (max-width: 1100px) {
  .hero { grid-template-columns:1fr 1fr; gap:35px; }
  .hero h1 { font-size:70px; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-rail { grid-template-columns:repeat(8,170px); }
  .source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .source-toolbar { grid-template-columns:1fr 180px 250px; }
  .site-footer { grid-template-columns:1.5fr 1fr 1fr; }
  .site-footer > p { grid-column:1/-1; }
}

@media (max-width: 800px) {
  .site-header { grid-template-columns:1fr auto; min-height:66px; padding:0 18px; }
  .main-nav { display:none; }
  .header-actions { grid-column:2; }
  .hero { min-height:auto; grid-template-columns:1fr; grid-template-rows:auto; padding:50px 20px 34px; }
  .hero h1 { font-size:clamp(48px,13vw,66px); }
  .hero-intro { font-size:12px; }
  .hero-search-wrap { padding-top:0; }
  .smart-search { grid-template-columns:24px 1fr; box-shadow:6px 6px 0 var(--ink); }
  .smart-search button { grid-column:1/-1; }
  .search-suggestions { display:none; }
  .atlas-stats { grid-template-columns:repeat(2,1fr); gap:17px 0; }
  .category-card { min-height:105px; }
  .source-network { padding:54px 18px 65px; }
  .source-intro { grid-template-columns:1fr; gap:25px; }
  .source-intro h2 { font-size:clamp(44px,12vw,66px); }
  .source-intro-copy { justify-self:start; }
  .source-metrics { grid-template-columns:repeat(2,1fr); }
  .source-metrics div:nth-child(2) { border-right:0; }
  .source-metrics div:nth-child(-n+2) { border-bottom:1px solid rgba(244,240,231,.2); }
  .source-toolbar { grid-template-columns:1fr 1fr; }
  .source-search { grid-column:1/-1; border-right:0; border-bottom:1px solid rgba(244,240,231,.2); }
  .source-scale-row { align-items:flex-start; flex-wrap:wrap; padding:18px 0; }
  .source-scale-row > span { width:100%; }
  .source-scale-row > p { align-self:center; }
  .catalogue { display:block; }
  .filter-panel {
    position:fixed;
    z-index:70;
    inset:0 auto 0 0;
    width:min(360px,92vw);
    max-height:none;
    transform:translateX(-104%);
    transition:transform .3s ease;
    box-shadow:var(--shadow);
  }
  .filter-panel.open { transform:none; }
  .filter-scrim { position:fixed; z-index:60; inset:0; background:rgba(21,21,21,.48); }
  .filter-scrim.open { display:block; }
  .filter-footer { position:sticky; bottom:0; display:block; padding:12px 18px; background:var(--paper); border-top:1px solid var(--line); }
  .filter-footer button { width:100%; height:43px; border:0; background:var(--ink); color:white; font:500 9px var(--mono); text-transform:uppercase; }
  .results-panel { padding:25px 18px 52px; }
  .results-topline { align-items:start; }
  .results-topline h2 { font-size:27px; }
  .mobile-filter-button { height:36px; display:flex; gap:7px; align-items:center; border:1px solid var(--ink); background:transparent; padding:0 10px; font:500 9px var(--mono); text-transform:uppercase; }
  .mobile-filter-button b { display:grid; place-items:center; min-width:17px; height:17px; border-radius:50%; color:white; background:var(--plum); font-size:7px; }
  .sort-select { font-size:0; }
  .sort-select select { min-width:0; width:112px; }
  .view-switch { display:none; }
  .smart-note { align-items:start; }
  .smart-note button { display:none; }
  .product-grid { gap:30px 10px; }
  .product-brand { font-size:15px; }
  .product-title-row h3 { font-size:12px; }
  .product-title-row strong { font-size:10px; }
  .product-badges { display:none; }
  .site-footer { grid-template-columns:1fr 1fr; padding:45px 22px; }
  .footer-mark { grid-column:1/-1; }
  .product-dialog-inner { grid-template-columns:1fr; }
  .dialog-art { min-height:380px; }
  .dialog-details { padding:32px 24px; }
  .compare-tray { grid-template-columns:1fr auto auto; }
  .compare-thumbs { display:none; }
}

@media (max-width: 520px) {
  .text-button { display:none; }
  .hero .fit-word { display:block; }
  .category-rail { grid-template-columns:repeat(8,145px); }
  .source-grid { grid-template-columns:1fr; }
  .source-card { min-height:450px; }
  .source-toolbar { grid-template-columns:1fr; }
  .source-select { border-right:0; border-bottom:1px solid rgba(244,240,231,.2); }
  .source-select:last-child { border-bottom:0; }
  .source-scale-row > p { width:100%; margin:0; }
  .results-topline { display:grid; }
  .result-controls { width:100%; justify-content:space-between; }
  .product-grid { grid-template-columns:1fr; }
  .product-visual { aspect-ratio:.9; }
  .product-grid.compact .product-card { grid-template-columns:118px 1fr; }
  .results-footer { display:grid; }
  .site-footer { grid-template-columns:1fr; }
  .footer-mark { grid-column:auto; }
  .compare-tray { grid-template-columns:1fr auto; }
  .compare-tray > button:nth-last-child(2) { display:none; }
  .explain-dialog, .destination-dialog, .compare-dialog { padding:28px 22px 30px; }
  .destination-fields { grid-template-columns:1fr; }
}

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

/* Real-product editorial catalogue */
.snapshot-chip {
  display:inline-flex;
  align-items:center;
  color:var(--muted);
  font:400 8px var(--mono);
  letter-spacing:.07em;
  text-transform:uppercase;
}
.hero h1 { max-width:690px; font-size:clamp(62px,6.5vw,108px); }
.hero-intro { max-width:560px; }
.catalog-note {
  display:grid;
  gap:7px;
  margin:0 0 22px;
  padding:14px 15px;
  border:1px solid var(--line);
  background:rgba(255,253,248,.6);
}
.catalog-note span { color:var(--plum); font:500 7px var(--mono); letter-spacing:.13em; }
.catalog-note p { margin:0; color:var(--muted); font-size:9px; line-height:1.55; }
.real-product { cursor:default; }
.real-product .real-visual {
  position:relative;
  isolation:isolate;
  aspect-ratio:.79;
  overflow:hidden;
  display:block;
  background:#e8e3db;
}
.real-product .real-visual::before,
.real-product .real-visual::after { content:none; }
.product-image {
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#e8e3db;
  transition:opacity .55s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.product-image-hover { z-index:2; opacity:0; }
.real-visual:hover .product-image:not(.product-image-hover) { transform:scale(1.018); }
.real-visual:hover .product-image-hover { opacity:1; transform:scale(1.018); }
.product-index {
  position:absolute;
  z-index:5;
  left:12px;
  bottom:12px;
  padding:5px 7px;
  color:var(--ink);
  background:rgba(255,253,248,.85);
  backdrop-filter:blur(8px);
  font:400 7px var(--mono);
  letter-spacing:.08em;
}
.real-product .product-badges { z-index:5; }
.image-quick-view {
  position:absolute;
  z-index:5;
  inset:auto 52px 12px auto;
  min-height:27px;
  padding:0 10px;
  border:0;
  background:rgba(255,253,248,.86);
  color:var(--ink);
  cursor:pointer;
  opacity:0;
  transform:translateY(5px);
  backdrop-filter:blur(8px);
  font:500 7px var(--mono);
  text-transform:uppercase;
  transition:.25s ease;
}
.real-visual:hover .image-quick-view,
.image-quick-view:focus-visible { opacity:1; transform:none; }
.real-product .save-button { z-index:6; }
.real-product .compare-toggle { z-index:6; }
.real-product .product-meta { padding-top:16px; }
.real-product .product-overline { margin-bottom:7px; letter-spacing:.09em; }
.real-product .product-title-row { gap:16px; }
.real-product .product-title-row h3 { max-width:72%; font:400 19px/1.08 var(--serif); letter-spacing:-.015em; }
.real-price { display:grid; justify-items:end; gap:2px; white-space:nowrap; }
.real-price strong { font:500 11px var(--mono); }
.real-price del { color:var(--muted); font:400 8px var(--mono); }
.real-product .fit-line { margin-top:8px; font:400 8px var(--mono); letter-spacing:.025em; }
.published-options { display:flex; min-width:0; flex-wrap:wrap; gap:4px; }
.published-options span {
  min-width:24px;
  padding:4px 5px;
  border:1px solid var(--line);
  background:rgba(255,253,248,.55);
  text-align:center;
  font:400 7px var(--mono);
}
.shop-source {
  flex:none;
  border-bottom:1px solid var(--ink);
  padding-bottom:2px;
  font:500 7px var(--mono);
  text-transform:uppercase;
}
.image-unavailable::after {
  content:"Preview unavailable" !important;
  position:absolute;
  z-index:7;
  inset:0;
  display:grid;
  place-items:center;
  color:var(--muted);
  background:var(--paper-deep);
  font:400 8px var(--mono);
  text-transform:uppercase;
}
.catalog-image.image-failed { visibility:hidden; }
.product-grid.compact .real-product .real-visual { aspect-ratio:.88; }
.product-grid.compact .product-title-row h3 { max-width:none; }
.compare-thumbs img { width:32px; height:39px; border:1px solid rgba(255,255,255,.2); object-fit:cover; }
.real-dialog-inner { min-height:650px; grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr); }
.real-dialog-art { position:relative; min-width:0; min-height:650px; overflow:hidden; display:grid; grid-template-rows:535px auto; place-items:stretch; align-content:start; align-self:start; background:#e8e3db; }
.real-dialog-art .product-image { object-fit:cover; }
.real-dialog-art .product-image-hover { display:none; }
.dialog-carousel-stage { position:relative; min-height:535px; overflow:hidden; isolation:isolate; }
.dialog-carousel-main { background:#e8e3db; }
.dialog-carousel-arrow {
  position:absolute;
  z-index:6;
  top:50%;
  width:38px;
  height:38px;
  border:1px solid rgba(23,22,21,.28);
  border-radius:50%;
  color:var(--ink);
  background:rgba(255,253,248,.88);
  box-shadow:0 6px 22px rgba(23,22,21,.12);
  backdrop-filter:blur(9px);
  cursor:pointer;
  transform:translateY(-50%);
  font:300 25px/1 var(--sans);
}
.dialog-carousel-arrow.previous { left:14px; }
.dialog-carousel-arrow.next { right:14px; }
.dialog-image-actions {
  position:absolute;
  z-index:7;
  right:14px;
  bottom:14px;
  display:flex;
  gap:7px;
}
.dialog-image-heart,
.dialog-image-hide {
  display:flex;
  align-items:center;
  gap:7px;
  min-height:38px;
  padding:0 13px;
  border:1px solid rgba(23,22,21,.28);
  border-radius:999px;
  color:var(--ink);
  background:rgba(255,253,248,.9);
  box-shadow:0 6px 22px rgba(23,22,21,.12);
  backdrop-filter:blur(9px);
  cursor:pointer;
}
.dialog-image-heart span { color:var(--plum); font-size:20px; line-height:1; }
.dialog-image-heart b, .dialog-image-hide b { font:500 8px var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.dialog-image-heart.hearted { color:white; border-color:var(--plum); background:var(--plum); }
.dialog-image-heart.hearted span { color:white; }
.dialog-image-heart:disabled { cursor:progress; opacity:.78; }
.dialog-image-hide span { font-size:16px; line-height:1; }
.dialog-image-hide.hidden-image { color:white; border-color:var(--ink); background:var(--ink); }
.dialog-image-class {
  position:absolute;
  z-index:6;
  left:14px;
  bottom:14px;
  max-width:calc(100% - 165px);
  padding:7px 9px;
  color:var(--ink);
  background:rgba(255,253,248,.86);
  backdrop-filter:blur(9px);
  font:400 7px var(--mono);
  text-transform:uppercase;
}
.dialog-carousel-footer { position:relative; z-index:8; display:grid; gap:8px; padding:10px 12px 12px; border-top:1px solid rgba(23,22,21,.12); background:var(--paper-deep); }
.dialog-carousel-readout { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.dialog-carousel-readout strong { flex:none; font:500 9px var(--mono); }
.dialog-carousel-readout span { color:var(--muted); text-align:right; font:400 7px/1.35 var(--mono); }
.dialog-carousel-thumbs { display:flex; gap:7px; min-width:0; overflow-x:auto; padding-bottom:2px; scrollbar-width:thin; scroll-snap-type:x proximity; }
.dialog-carousel-thumb { position:relative; flex:0 0 50px; width:50px; height:62px; overflow:hidden; padding:0; border:1px solid transparent; background:#ddd7ce; cursor:pointer; scroll-snap-align:center; opacity:.66; }
.dialog-carousel-thumb.active { border-color:var(--plum); box-shadow:0 0 0 1px var(--plum); opacity:1; }
.dialog-carousel-thumb.hidden-image { filter:grayscale(1); opacity:.42; }
.dialog-carousel-thumb.hidden-image.active { opacity:.72; }
.dialog-carousel-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.dialog-thumb-heart { position:absolute; right:2px; bottom:2px; padding:2px 3px; color:white; background:var(--plum); font:500 6px var(--mono); letter-spacing:.01em; }
.dialog-thumb-hidden { position:absolute; left:2px; bottom:2px; padding:2px 3px; color:white; background:var(--ink); font:500 5px var(--mono); text-transform:uppercase; }
.human-gate { position:relative; z-index:20; display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,360px); align-items:center; gap:24px; padding:18px clamp(18px,4vw,55px); border-bottom:1px solid var(--line); background:var(--paper-deep); }
.human-gate[hidden] { display:none; }
.human-gate h2 { margin:2px 0 4px; font:400 27px/1 var(--serif); }
.human-gate p { margin:0; color:var(--muted); font-size:10px; }
.turnstile-widget { min-height:65px; display:grid; align-items:center; justify-items:end; }
.human-status-chip { padding:6px 9px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font:500 7px var(--mono); text-transform:uppercase; white-space:nowrap; }
body.is-human .human-status-chip { color:#245d39; border-color:rgba(36,93,57,.35); background:rgba(36,93,57,.08); }
.source-disclosure { color:var(--muted); font-size:10px; line-height:1.65; }
.dialog-price del { margin-left:8px; color:var(--muted); font-size:11px; font-weight:400; }
.dialog-action-row { display:grid; gap:8px; }
.dialog-action-row a {
  display:grid;
  min-height:46px;
  place-items:center;
  border:1px solid var(--ink);
  font:500 9px var(--mono);
  text-transform:uppercase;
}
.compare-head img { display:block; width:100%; height:110px; margin-bottom:8px; object-fit:cover; }
.product-image,
.compare-thumbs img,
.dialog-carousel-thumb img,
.compare-head img { object-position:center top; }
.source-network { border-top:1px solid rgba(244,240,231,.18); }

@media (max-width:1100px) {
  .hero h1 { font-size:clamp(58px,8vw,82px); }
}

@media (max-width:800px) {
  .human-gate { grid-template-columns:1fr; }
  .turnstile-widget { justify-items:start; }
  .human-status-chip { display:none; }
  .snapshot-chip { display:none; }
  .hero h1 { font-size:clamp(50px,13vw,72px); }
  .real-dialog-inner { min-height:0; grid-template-columns:1fr; }
  .real-dialog-art { min-height:0; aspect-ratio:auto; grid-template-rows:420px auto; }
  .dialog-carousel-stage { min-height:420px; }
}

@media (max-width:520px) {
  .real-product .product-title-row h3 { font-size:23px; }
  .real-product .real-visual { aspect-ratio:.82; }
  .image-quick-view { opacity:1; transform:none; }
  .real-dialog-art { min-height:0; grid-template-rows:355px auto; }
  .dialog-carousel-stage { min-height:355px; }
  .dialog-carousel-readout span { max-width:230px; }
  .dialog-image-class { max-width:calc(100% - 135px); }
}
