:root {
  --ink: #151515;
  --ink-2: #242321;
  --ivory: #f7f2e8;
  --paper: #fffdf8;
  --stone: #706b64;
  --stone-light: #b9b0a3;
  --champagne: #b79a65;
  --line: rgba(21,21,21,.14);
  --line-light: rgba(247,242,232,.18);
  --success: #365a40;
  --danger: #8a3830;
  --serif: "Bodoni 72", Didot, "Times New Roman", serif;
  --sans: Inter, Aptos, "Helvetica Neue", Arial, sans-serif;
  --shadow: 0 24px 80px rgba(10,10,10,.12);
  --shadow-dark: 0 30px 90px rgba(0,0,0,.35);
  --radius: 2px;
  --gutter: clamp(20px, 4vw, 64px);
  --max: 1440px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ivory); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--ivory);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
body.nav-open, body.cart-open, body.search-open, body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 0; cursor: pointer; }
img, svg { display: block; max-width: 100%; }
::selection { background: var(--champagne); color: var(--ink); }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 9999;
  padding: 12px 18px; background: var(--paper); color: var(--ink);
  transition: top .2s;
}
.skip-link:focus { top: 16px; }

.noise {
  position: fixed; inset: 0; pointer-events: none; z-index: 200;
  opacity: .026; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
}

.container { width: min(var(--max), calc(100% - 2*var(--gutter))); margin-inline: auto; }
.section { padding: clamp(86px, 10vw, 160px) 0; position: relative; }
.section-sm { padding: clamp(56px, 7vw, 100px) 0; }
.section-dark { background: var(--ink); color: var(--ivory); }
.section-paper { background: var(--paper); }
.section-border { border-top: 1px solid var(--line); }
.eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 11px; text-transform: uppercase; letter-spacing: .24em; font-weight: 600;
}
.eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; opacity: .55; }
.display {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(56px, 9.5vw, 150px);
  line-height: .88;
  letter-spacing: -.055em;
}
.display em, .headline em { font-style: italic; color: var(--champagne); }
.headline {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(42px, 6vw, 88px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.045em;
}
.subheadline {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(31px, 4vw, 58px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.035em;
}
.lead { font-size: clamp(18px, 1.8vw, 24px); line-height: 1.55; color: var(--stone); max-width: 680px; }
.section-dark .lead { color: rgba(247,242,232,.68); }
.muted { color: var(--stone); }
.small { font-size: 13px; }
.micro { font-size: 11px; text-transform: uppercase; letter-spacing: .18em; }
.rule { width: 100%; height: 1px; background: var(--line); }
.section-dark .rule { background: var(--line-light); }

.btn {
  --btn-bg: var(--ink); --btn-fg: var(--ivory); --btn-border: var(--ink);
  min-height: 54px;
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  padding: 0 25px;
  border: 1px solid var(--btn-border);
  background: var(--btn-bg); color: var(--btn-fg);
  text-transform: uppercase; letter-spacing: .15em; font-size: 11px; font-weight: 700;
  position: relative; overflow: hidden; transition: transform .4s var(--ease), color .35s, background .35s, border-color .35s;
}
.btn::before { content: ""; position: absolute; inset: 0; background: var(--champagne); transform: translateY(102%); transition: transform .4s var(--ease); }
.btn span, .btn svg { position: relative; z-index: 1; }
.btn:hover::before { transform: translateY(0); }
.btn:hover { color: var(--ink); border-color: var(--champagne); transform: translateY(-2px); }
.btn-outline { --btn-bg: transparent; --btn-fg: var(--ink); --btn-border: rgba(21,21,21,.35); }
.section-dark .btn-outline, .hero .btn-outline { --btn-fg: var(--ivory); --btn-border: rgba(247,242,232,.35); }
.btn-light { --btn-bg: var(--ivory); --btn-fg: var(--ink); --btn-border: var(--ivory); }
.btn-ghost { background: transparent; border: 0; min-height: auto; padding: 0; color: inherit; }
.btn-ghost::before { display: none; }
.text-link {
  display: inline-flex; align-items: center; gap: 12px; padding-bottom: 5px;
  font-size: 12px; text-transform: uppercase; letter-spacing: .17em; border-bottom: 1px solid currentColor;
}
.text-link svg { transition: transform .3s var(--ease); }
.text-link:hover svg { transform: translateX(6px); }
.icon-btn {
  width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); background: transparent;
  transition: background .25s, color .25s, border-color .25s;
}
.icon-btn:hover { background: var(--ink); color: var(--ivory); border-color: var(--ink); }

/* Preloader */
.preloader { position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center; background: var(--ink); color: var(--ivory); transition: opacity .7s var(--ease), visibility .7s; }
.preloader.is-hidden { opacity: 0; visibility: hidden; }
.preloader-inner { text-align: center; }
.preloader-word { font-family: var(--serif); font-size: clamp(42px,8vw,90px); letter-spacing: .18em; margin-left: .18em; }
.preloader-line { width: 180px; height: 1px; background: rgba(247,242,232,.18); margin: 24px auto 0; overflow: hidden; }
.preloader-line::after { content:""; display:block; width:55%; height:100%; background:var(--champagne); animation:load 1.2s var(--ease) infinite; }
@keyframes load { from{transform:translateX(-110%)} to{transform:translateX(210%)} }

/* Announcement + header */
.announcement {
  min-height: 34px; background: var(--ink); color: var(--ivory); border-bottom: 1px solid var(--line-light);
  display: flex; align-items: center; justify-content: center; text-align: center; padding: 8px var(--gutter);
  font-size: 10px; letter-spacing: .21em; text-transform: uppercase;
}
.site-header {
  position: fixed; top: 34px; left: 0; right: 0; z-index: 400;
  color: var(--ivory); transition: color .35s, background .35s, transform .35s, top .35s;
}
.site-header.is-scrolled { top: 0; background: rgba(247,242,232,.93); color: var(--ink); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.site-header.is-hidden { transform: translateY(-110%); }
.nav {
  height: 84px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
}
.nav-group { display: flex; align-items: center; gap: clamp(18px,2.4vw,38px); }
.nav-group.right { justify-content: flex-end; }
.nav-link { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; position: relative; white-space: nowrap; }
.nav-link::after { content:""; position:absolute; left:0; bottom:-8px; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease); }
.nav-link:hover::after, .nav-link.active::after { transform:scaleX(1); transform-origin:left; }
.logo { font-family: var(--serif); font-size: 25px; letter-spacing: .28em; margin-left: .28em; white-space: nowrap; }
.nav-actions { display:flex; align-items:center; gap:8px; }
.nav-icon { width: 40px; height: 40px; display:grid; place-items:center; background:transparent; color:inherit; position:relative; }
.cart-count { position:absolute; right:1px; top:3px; min-width:17px; height:17px; padding:0 4px; display:grid; place-items:center; border-radius:10px; background:var(--champagne); color:var(--ink); font-size:9px; font-weight:700; }
.menu-toggle { display:none; }

/* Overlay menu/search/cart */
.overlay { position: fixed; inset: 0; z-index: 1000; visibility: hidden; pointer-events: none; }
.overlay.is-open { visibility: visible; pointer-events: auto; }
.overlay-backdrop { position:absolute; inset:0; background:rgba(10,10,10,.62); opacity:0; transition:opacity .4s; backdrop-filter:blur(7px); }
.overlay.is-open .overlay-backdrop { opacity:1; }
.drawer { position:absolute; right:0; top:0; height:100%; width:min(520px,100%); background:var(--paper); transform:translateX(102%); transition:transform .55s var(--ease); display:flex; flex-direction:column; }
.overlay.is-open .drawer { transform:translateX(0); }
.drawer-head { min-height:84px; padding:0 28px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.drawer-title { font-family:var(--serif); font-size:30px; }
.drawer-body { flex:1; overflow:auto; padding:26px 28px; }
.drawer-foot { padding:24px 28px 30px; border-top:1px solid var(--line); background:var(--paper); }
.cart-line { display:grid; grid-template-columns:82px 1fr auto; gap:16px; padding:0 0 22px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.cart-line img { width:82px; height:102px; object-fit:cover; background:#ddd; }
.cart-line-title { font-family:var(--serif); font-size:20px; line-height:1.1; }
.cart-meta { margin-top:8px; color:var(--stone); font-size:12px; }
.cart-controls { margin-top:15px; display:flex; align-items:center; justify-content:space-between; }
.qty { display:flex; border:1px solid var(--line); height:34px; }
.qty button { width:32px; background:transparent; }
.qty span { width:34px; display:grid; place-items:center; font-size:12px; }
.remove { background:transparent; color:var(--stone); text-decoration:underline; font-size:11px; }
.cart-summary { display:grid; gap:10px; margin-bottom:18px; }
.cart-summary-row { display:flex; justify-content:space-between; font-size:13px; }
.cart-summary-row.total { font-family:var(--serif); font-size:25px; padding-top:10px; border-top:1px solid var(--line); }
.progress-track { height:2px; background:var(--line); margin:11px 0 8px; }
.progress-fill { height:100%; width:0; background:var(--champagne); transition:width .4s; }
.empty-state { min-height:55vh; display:grid; place-items:center; text-align:center; }
.empty-state .symbol { font-family:var(--serif); font-size:72px; color:var(--champagne); }

.search-panel { position:absolute; inset:0; background:var(--paper); transform:translateY(-102%); transition:transform .55s var(--ease); overflow:auto; }
.overlay.is-open .search-panel { transform:translateY(0); }
.search-top { height:96px; display:flex; justify-content:flex-end; align-items:center; }
.search-wrap { max-width:1000px; margin:0 auto; padding:8vh var(--gutter) 80px; }
.search-label { display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px; }
.search-input { width:100%; border:0; border-bottom:1px solid var(--ink); background:transparent; font-family:var(--serif); font-size:clamp(42px,7vw,88px); outline:none; padding:0 0 15px; }
.search-results { margin-top:45px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.mobile-menu { position:absolute; inset:0; background:var(--ink); color:var(--ivory); transform:translateX(-102%); transition:transform .55s var(--ease); display:flex; flex-direction:column; }
.overlay.is-open .mobile-menu { transform:translateX(0); }
.mobile-menu-head { height:84px; padding:0 22px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line-light); }
.mobile-menu-links { flex:1; padding:8vh 24px; display:flex; flex-direction:column; justify-content:center; gap:18px; }
.mobile-menu-links a { font-family:var(--serif); font-size:clamp(38px,10vw,62px); line-height:1; }
.mobile-menu-foot { padding:25px; border-top:1px solid var(--line-light); display:flex; justify-content:space-between; color:rgba(247,242,232,.6); font-size:11px; text-transform:uppercase; letter-spacing:.15em; }

/* Hero */
.hero { min-height:100svh; background:var(--ink); color:var(--ivory); display:flex; align-items:center; position:relative; overflow:hidden; }
.hero::after { content:""; position:absolute; inset:auto 0 0; height:28%; background:linear-gradient(transparent,rgba(0,0,0,.3)); pointer-events:none; }
.hero-grid { min-height:100svh; padding-top:150px; padding-bottom:70px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); align-items:center; gap:clamp(30px,5vw,90px); }
.hero-copy { position:relative; z-index:2; }
.hero-copy .display { max-width:850px; }
.hero-copy .lead { margin-top:30px; max-width:620px; color:rgba(247,242,232,.68); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.hero-art { position:relative; height:min(78vh,880px); min-height:540px; }
.hero-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:saturate(.95); transform:translateZ(0); }
.hero-orbit { position:absolute; border:1px solid rgba(247,242,232,.15); border-radius:50%; animation:orbit 20s linear infinite; }
.hero-orbit.one { width:320px; height:320px; right:0; top:20%; }
.hero-orbit.two { width:120px; height:120px; left:8%; bottom:14%; animation-duration:13s; animation-direction:reverse; }
@keyframes orbit { to { transform:rotate(360deg); } }
.hero-index { position:absolute; right:var(--gutter); bottom:34px; z-index:2; display:flex; align-items:center; gap:15px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(247,242,232,.55); }
.hero-index span { width:80px; height:1px; background:rgba(247,242,232,.28); }
.hero-word { position:absolute; left:-.04em; bottom:-.22em; font-family:var(--serif); font-size:clamp(150px,26vw,420px); letter-spacing:-.06em; color:transparent; -webkit-text-stroke:1px rgba(247,242,232,.07); pointer-events:none; white-space:nowrap; }

/* Marquee */
.marquee { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); }
.marquee-track { display:flex; width:max-content; animation:marquee 28s linear infinite; }
.marquee-item { display:flex; align-items:center; gap:32px; padding:18px 32px; font-size:10px; text-transform:uppercase; letter-spacing:.24em; white-space:nowrap; }
.marquee-dot { width:5px; height:5px; border-radius:50%; background:var(--champagne); }
@keyframes marquee { to { transform:translateX(-50%); } }

/* Intro/editorial */
.editorial-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,9vw,150px); align-items:start; }
.editorial-aside { position:sticky; top:130px; }
.editorial-copy { display:grid; gap:44px; }
.editorial-copy p { margin:0; font-family:var(--serif); font-size:clamp(31px,4.1vw,62px); line-height:1.12; letter-spacing:-.03em; }
.editorial-copy p + p { color:var(--stone); }
.stat-row { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); margin-top:40px; }
.stat { padding:30px 20px 0 0; }
.stat strong { display:block; font-family:var(--serif); font-size:clamp(34px,4vw,62px); font-weight:400; }
.stat span { font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--stone); }

/* Product cards */
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:52px; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(18px,2.5vw,34px); }
.product-card { position:relative; min-width:0; }
.product-visual { position:relative; aspect-ratio:4/5; overflow:hidden; background:#ddd; }
.product-visual img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .8s var(--ease); }
.product-card:hover .product-visual img { transform:scale(1.035); filter:saturate(1.05); }
.product-badge { position:absolute; top:16px; left:16px; z-index:2; padding:8px 10px; background:rgba(247,242,232,.88); backdrop-filter:blur(10px); font-size:9px; text-transform:uppercase; letter-spacing:.16em; }
.quick-add { position:absolute; left:14px; right:14px; bottom:14px; z-index:30; display:grid; grid-template-columns:1fr 1fr; gap:8px; transform:translateY(120%); transition:transform .45s var(--ease); pointer-events:auto; isolation:isolate; }
.product-card:hover .quick-add { transform:translateY(0); }
.quick-add button { min-height:46px; background:rgba(247,242,232,.94); backdrop-filter:blur(10px); font-size:10px; letter-spacing:.12em; text-transform:uppercase; transition:background .25s; }
.quick-add button:hover { background:var(--champagne); }
.product-info { padding:17px 1px 4px; display:grid; grid-template-columns:1fr auto; gap:10px 15px; }
.product-brand { grid-column:1/-1; font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); }
.product-title { font-family:var(--serif); font-size:clamp(21px,2vw,29px); line-height:1.05; }
.product-price { font-size:13px; padding-top:5px; }
.product-notes { grid-column:1/-1; color:var(--stone); font-size:13px; }
.product-card.compact .product-info { padding-top:12px; }
.product-card.compact .product-title { font-size:20px; }

/* Mood cards */
.mood-grid { display:grid; grid-template-columns:repeat(4,1fr); min-height:600px; }
.mood-card { position:relative; padding:34px; border-right:1px solid var(--line-light); overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; color:var(--ivory); isolation:isolate; }
.mood-card:last-child { border-right:0; }
.mood-card::before { content:""; position:absolute; inset:0; background:var(--mood-bg); opacity:.7; transition:opacity .45s, transform .7s var(--ease); z-index:-2; }
.mood-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.68),transparent 60%); z-index:-1; }
.mood-card:hover::before { opacity:1; transform:scale(1.04); }
.mood-number { font-size:10px; letter-spacing:.18em; }
.mood-title { font-family:var(--serif); font-size:clamp(36px,4vw,62px); line-height:.95; }
.mood-card p { max-width:280px; color:rgba(247,242,232,.72); }

/* Selection banner */
.selection-split { display:grid; grid-template-columns:1.15fr .85fr; min-height:720px; }
.selection-image { background:var(--paper); overflow:hidden; }
.selection-image img { width:100%; height:100%; object-fit:cover; }
.selection-copy { background:var(--ink); color:var(--ivory); padding:clamp(55px,7vw,110px); display:flex; flex-direction:column; justify-content:center; }
.selection-steps { display:grid; gap:18px; margin:35px 0; }
.selection-step { display:grid; grid-template-columns:36px 1fr; gap:14px; padding-top:18px; border-top:1px solid var(--line-light); }
.selection-step span:first-child { color:var(--champagne); font-family:var(--serif); font-size:22px; }

/* Process */
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.process-card { padding:34px 28px 30px 0; border-right:1px solid var(--line); min-height:260px; display:flex; flex-direction:column; justify-content:space-between; }
.process-card + .process-card { padding-left:28px; }
.process-card:last-child { border-right:0; }
.process-num { font-family:var(--serif); font-size:36px; color:var(--champagne); }
.process-card h3 { font-family:var(--serif); font-weight:400; font-size:27px; margin:0; }
.process-card p { color:var(--stone); font-size:14px; }

/* Journal */
.journal-grid { display:grid; grid-template-columns:1.4fr .8fr .8fr; gap:22px; }
.article-card { display:block; }
.article-image { overflow:hidden; aspect-ratio:4/3; background:#ddd; }
.article-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.article-card:hover img { transform:scale(1.035); }
.article-meta { display:flex; gap:18px; margin-top:18px; font-size:9px; text-transform:uppercase; letter-spacing:.18em; color:var(--stone); }
.article-card h3 { margin:10px 0 8px; font-family:var(--serif); font-weight:400; font-size:clamp(24px,2.6vw,42px); line-height:1.05; }
.article-card p { color:var(--stone); }
.article-card.small h3 { font-size:28px; }

/* Newsletter */
.newsletter { background:var(--champagne); padding:clamp(70px,9vw,130px) 0; }
.newsletter-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; }
.form-line { display:grid; grid-template-columns:1fr auto; border-bottom:1px solid var(--ink); }
.form-line input { border:0; background:transparent; outline:0; padding:18px 0; font-family:var(--serif); font-size:24px; min-width:0; }
.form-line button { background:transparent; padding:0 6px 0 20px; text-transform:uppercase; font-size:10px; letter-spacing:.16em; }
.checkline { display:flex; align-items:flex-start; gap:10px; margin-top:15px; font-size:11px; line-height:1.5; }
.checkline input { margin-top:3px; accent-color:var(--ink); }
.form-message { min-height:22px; margin-top:12px; font-size:12px; }

/* Footer */
.footer { background:var(--ink); color:var(--ivory); padding:80px 0 28px; }
.footer-top { display:grid; grid-template-columns:1.4fr repeat(3,.6fr); gap:50px; padding-bottom:70px; }
.footer-brand { font-family:var(--serif); font-size:clamp(40px,6vw,82px); letter-spacing:.1em; line-height:1; }
.footer-tag { margin-top:18px; max-width:380px; color:rgba(247,242,232,.55); }
.footer-title { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(247,242,232,.45); margin-bottom:18px; }
.footer-links { display:grid; gap:10px; font-size:13px; }
.footer-links a:hover { color:var(--champagne); }
.footer-bottom { border-top:1px solid var(--line-light); padding-top:25px; display:flex; justify-content:space-between; gap:30px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:rgba(247,242,232,.42); }
.footer-disclaimer { max-width:760px; text-transform:none; letter-spacing:0; line-height:1.5; }

/* Page hero */
.page-hero { min-height:68svh; padding:170px 0 80px; background:var(--ink); color:var(--ivory); display:flex; align-items:end; position:relative; overflow:hidden; }
.page-hero::after { content:""; position:absolute; width:45vw; height:45vw; border:1px solid rgba(247,242,232,.09); border-radius:50%; right:-8vw; top:-12vw; }
.page-hero .lead { color:rgba(247,242,232,.65); margin-top:28px; }
.page-hero-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; }
.page-index { font-family:var(--serif); font-size:clamp(90px,17vw,260px); line-height:.7; color:transparent; -webkit-text-stroke:1px rgba(247,242,232,.12); text-align:right; }
.breadcrumb { display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,242,232,.52); margin-bottom:25px; }

/* Catalog */
.catalog-toolbar { padding:24px 0; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100; background:rgba(247,242,232,.94); backdrop-filter:blur(18px); }
.catalog-toolbar .container { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.filters { display:flex; gap:8px; flex-wrap:wrap; }
.filter-btn { background:transparent; border:1px solid var(--line); padding:10px 15px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; transition:.25s; }
.filter-btn:hover, .filter-btn.active { background:var(--ink); color:var(--ivory); border-color:var(--ink); }
.catalog-sort { display:flex; gap:15px; align-items:center; }
.catalog-sort select { border:0; border-bottom:1px solid var(--ink); background:transparent; padding:8px 28px 8px 0; outline:0; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.catalog-grid { padding:60px 0 120px; }
.result-count { font-size:10px; text-transform:uppercase; letter-spacing:.17em; color:var(--stone); }

/* Product page */
.product-page { min-height:100vh; background:var(--paper); }
.product-layout { display:grid; grid-template-columns:1.05fr .95fr; min-height:100svh; }
.product-gallery { background:#ddd; position:sticky; top:0; height:100svh; overflow:hidden; }
.product-gallery img { width:100%; height:100%; object-fit:cover; }
.product-gallery-note { position:absolute; left:28px; bottom:25px; padding:10px 13px; background:rgba(247,242,232,.82); backdrop-filter:blur(12px); font-size:9px; letter-spacing:.13em; text-transform:uppercase; max-width:390px; }
.product-detail { padding:150px clamp(30px,6vw,100px) 80px; }
.product-detail .breadcrumb { color:var(--stone); }
.product-detail h1 { margin:18px 0 8px; font-family:var(--serif); font-weight:400; font-size:clamp(52px,6vw,90px); line-height:.9; letter-spacing:-.05em; }
.product-version { text-transform:uppercase; letter-spacing:.18em; font-size:10px; color:var(--stone); }
.product-editorial { font-family:var(--serif); font-size:clamp(22px,2.3vw,34px); line-height:1.25; margin:30px 0; }
.note-chips { display:flex; gap:8px; flex-wrap:wrap; margin:24px 0 35px; }
.note-chip { border:1px solid var(--line); padding:9px 12px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.size-label { display:flex; justify-content:space-between; margin-bottom:12px; font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.size-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.size-option { border:1px solid var(--line); background:transparent; padding:17px; display:flex; justify-content:space-between; align-items:center; transition:.25s; }
.size-option.active { border-color:var(--ink); background:var(--ink); color:var(--ivory); }
.purchase-row { margin-top:12px; display:grid; grid-template-columns:1fr auto; gap:10px; }
.purchase-row .btn { width:100%; }
.wishlist-btn { width:56px; background:transparent; border:1px solid var(--line); display:grid; place-items:center; }
.trust-list { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:28px 0; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trust-item { font-size:10px; text-transform:uppercase; letter-spacing:.11em; line-height:1.5; }
.accordion { border-top:1px solid var(--line); }
.accordion-item { border-bottom:1px solid var(--line); }
.accordion-trigger { width:100%; padding:20px 0; background:transparent; display:flex; justify-content:space-between; align-items:center; font-size:11px; letter-spacing:.15em; text-transform:uppercase; }
.accordion-content { display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s var(--ease); }
.accordion-content > div { overflow:hidden; }
.accordion-item.open .accordion-content { grid-template-rows:1fr; }
.accordion-inner { padding:0 0 24px; color:var(--stone); }
.note-pyramid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.note-level { padding:18px; background:var(--ivory); }
.note-level span { display:block; font-size:9px; text-transform:uppercase; letter-spacing:.16em; color:var(--stone); margin-bottom:8px; }

/* Selection builder */
.builder-layout { display:grid; grid-template-columns:1fr 380px; gap:50px; align-items:start; }
.builder-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.builder-card { border:1px solid var(--line); background:var(--paper); display:grid; grid-template-columns:140px 1fr; min-height:180px; transition:border-color .25s, transform .25s; overflow:hidden; }
.builder-card:hover { transform:translateY(-3px); border-color:var(--ink); }
.builder-card.selected { border:2px solid var(--champagne); }
.builder-card img { width:140px; height:100%; object-fit:cover; }
.builder-card-copy { padding:22px; display:flex; flex-direction:column; justify-content:space-between; }
.builder-card h3 { margin:0; font-family:var(--serif); font-size:25px; font-weight:400; }
.builder-card p { margin:7px 0; color:var(--stone); font-size:12px; }
.builder-select { align-self:flex-start; background:transparent; border-bottom:1px solid var(--ink); padding:5px 0; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.builder-summary { position:sticky; top:110px; background:var(--ink); color:var(--ivory); padding:32px; min-height:480px; display:flex; flex-direction:column; }
.builder-summary h2 { font-family:var(--serif); font-size:38px; font-weight:400; margin:0 0 10px; }
.builder-slots { display:grid; gap:12px; margin:28px 0; }
.builder-slot { min-height:62px; border:1px solid var(--line-light); padding:12px; display:flex; align-items:center; justify-content:space-between; font-size:12px; }
.builder-slot.empty { color:rgba(247,242,232,.4); }
.builder-summary-bottom { margin-top:auto; }
.builder-price { display:flex; justify-content:space-between; align-items:end; margin-bottom:18px; }
.builder-price strong { font-family:var(--serif); font-size:34px; font-weight:400; }

/* Quiz */
.quiz-shell { min-height:calc(100svh - 34px); background:var(--ink); color:var(--ivory); padding:150px var(--gutter) 70px; display:grid; place-items:center; }
.quiz-card { width:min(920px,100%); }
.quiz-progress { display:flex; gap:8px; margin-bottom:45px; }
.quiz-progress span { flex:1; height:2px; background:rgba(247,242,232,.14); }
.quiz-progress span.done { background:var(--champagne); }
.quiz-question { font-family:var(--serif); font-size:clamp(40px,6vw,76px); line-height:1; font-weight:400; margin:0 0 38px; }
.quiz-options { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.quiz-option { min-height:100px; padding:22px; border:1px solid var(--line-light); background:transparent; color:var(--ivory); text-align:left; transition:.25s; }
.quiz-option:hover { background:var(--ivory); color:var(--ink); }
.quiz-option strong { display:block; font-family:var(--serif); font-size:25px; font-weight:400; }
.quiz-option span { display:block; margin-top:8px; font-size:12px; opacity:.65; }
.quiz-results { display:none; }
.quiz-results.visible { display:block; }
.quiz-recommendations { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:35px; }

/* About */
.story-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:90px; }
.story-sticky { position:sticky; top:130px; align-self:start; }
.story-chapters { display:grid; gap:80px; }
.story-chapter { padding-top:30px; border-top:1px solid var(--line); }
.story-chapter h2 { font-family:var(--serif); font-size:clamp(38px,5vw,70px); line-height:1; font-weight:400; margin:0 0 24px; }
.story-chapter p { font-size:18px; color:var(--stone); max-width:750px; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.value-card { background:var(--paper); padding:45px 32px; min-height:260px; }
.value-card span { color:var(--champagne); font-family:var(--serif); font-size:34px; }
.value-card h3 { font-family:var(--serif); font-size:30px; font-weight:400; margin:30px 0 12px; }
.value-card p { color:var(--stone); }

/* Journal */
.article-layout { display:grid; grid-template-columns:250px 1fr; gap:80px; }
.article-nav { position:sticky; top:130px; align-self:start; }
.article-nav a { display:block; padding:12px 0; border-bottom:1px solid var(--line); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.article-body { max-width:800px; }
.article-body h1 { font-family:var(--serif); font-size:clamp(48px,7vw,92px); font-weight:400; line-height:.94; margin:15px 0 35px; }
.article-body .article-hero-image { margin:40px 0; aspect-ratio:16/9; object-fit:cover; width:100%; }
.article-body p { font-family:var(--serif); font-size:clamp(22px,2.2vw,30px); line-height:1.45; }
.article-body p + p { margin-top:28px; }

/* Contact / forms */
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.contact-details { display:grid; gap:25px; margin-top:45px; }
.contact-detail { padding-top:18px; border-top:1px solid var(--line); }
.contact-detail span { display:block; font-size:9px; text-transform:uppercase; letter-spacing:.17em; color:var(--stone); margin-bottom:8px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:grid; gap:8px; }
.field.full { grid-column:1/-1; }
.field label { font-size:10px; text-transform:uppercase; letter-spacing:.14em; }
.field input, .field select, .field textarea { width:100%; border:0; border-bottom:1px solid var(--ink); background:transparent; padding:13px 0; outline:0; border-radius:0; }
.field textarea { min-height:130px; resize:vertical; }

/* Legal */
.legal-layout { display:grid; grid-template-columns:260px 1fr; gap:80px; }
.legal-menu { position:sticky; top:130px; align-self:start; }
.legal-menu a { display:block; padding:12px 0; border-bottom:1px solid var(--line); font-size:11px; }
.legal-content { max-width:850px; }
.legal-section { padding:0 0 70px; scroll-margin-top:120px; }
.legal-section h2 { font-family:var(--serif); font-size:42px; font-weight:400; }
.legal-section p, .legal-section li { color:var(--stone); }
.notice { border-left:3px solid var(--champagne); padding:18px 22px; background:rgba(183,154,101,.12); }

/* Modal + toast */
.modal { position:fixed; inset:0; z-index:1600; visibility:hidden; pointer-events:none; display:grid; place-items:center; padding:20px; }
.modal.open { visibility:visible; pointer-events:auto; }
.modal::before { content:""; position:absolute; inset:0; background:rgba(10,10,10,.72); opacity:0; transition:opacity .35s; backdrop-filter:blur(9px); }
.modal.open::before { opacity:1; }
.modal-card { position:relative; width:min(600px,100%); background:var(--paper); padding:clamp(30px,5vw,60px); transform:translateY(30px); opacity:0; transition:.4s var(--ease); z-index:1; }
.modal.open .modal-card { transform:none; opacity:1; }
.modal-close { position:absolute; right:15px; top:15px; }
.modal-card h2 { font-family:var(--serif); font-size:42px; font-weight:400; margin:0 0 18px; }
.toast { position:fixed; left:50%; bottom:24px; z-index:1700; transform:translate(-50%,120px); background:var(--ink); color:var(--ivory); padding:14px 20px; font-size:12px; box-shadow:var(--shadow-dark); transition:transform .4s var(--ease); }
.toast.show { transform:translate(-50%,0); }

/* Reveal + cursor */
.reveal { opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.cursor { position:fixed; width:12px; height:12px; border-radius:50%; background:var(--champagne); z-index:3000; pointer-events:none; transform:translate(-50%,-50%); mix-blend-mode:difference; transition:width .2s,height .2s,opacity .2s; }
.cursor.is-hover { width:46px; height:46px; opacity:.55; }

/* Responsive */
@media (max-width: 1100px) {
  .nav-group { display:none; }
  .nav { grid-template-columns:1fr auto 1fr; }
  .menu-toggle { display:grid; justify-self:start; }
  .nav-actions { justify-self:end; }
  .hero-grid { grid-template-columns:1fr 440px; }
  .product-grid { grid-template-columns:repeat(2,1fr); }
  .mood-grid { grid-template-columns:repeat(2,1fr); }
  .mood-card { min-height:440px; border-bottom:1px solid var(--line-light); }
  .journal-grid { grid-template-columns:1fr 1fr; }
  .article-card:first-child { grid-column:1/-1; }
  .footer-top { grid-template-columns:1.3fr 1fr 1fr; }
  .footer-col:last-child { display:none; }
  .builder-layout { grid-template-columns:1fr 330px; }
}

@media (max-width: 820px) {
  :root { --gutter: 20px; }
  .announcement { font-size:9px; }
  .site-header { top:34px; }
  .nav { height:70px; }
  .logo { font-size:20px; letter-spacing:.2em; margin-left:.2em; }
  .nav-icon { width:36px; }
  .hero-grid { grid-template-columns:1fr; padding-top:135px; padding-bottom:0; gap:10px; }
  .hero-copy { padding-bottom:10px; }
  .hero-art { height:52vh; min-height:420px; margin-inline:-15px; }
  .hero-index { display:none; }
  .hero-word { bottom:-.05em; font-size:45vw; }
  .hero-actions { gap:8px; }
  .hero-actions .btn { flex:1; min-width:180px; }
  .editorial-grid, .selection-split, .newsletter-grid, .page-hero-grid, .product-layout, .contact-grid, .story-layout, .article-layout, .legal-layout { grid-template-columns:1fr; }
  .editorial-aside, .story-sticky, .article-nav, .legal-menu { position:static; }
  .stat-row { grid-template-columns:1fr; }
  .stat { border-bottom:1px solid var(--line); padding:24px 0; }
  .product-grid { grid-template-columns:1fr 1fr; gap:16px; }
  .quick-add {
    left:12px;
    right:12px;
    bottom:12px;
    position:absolute;
    margin:0;
    transform:none;
  }
  .quick-add button {
    border:1px solid rgba(21,21,21,.12);
    background:rgba(247,242,232,.94);
  }
  .mood-grid { grid-template-columns:1fr; }
  .mood-card { min-height:390px; border-right:0; }
  .selection-copy { padding:65px 25px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .process-card { border-bottom:1px solid var(--line); }
  .journal-grid { grid-template-columns:1fr; }
  .article-card:first-child { grid-column:auto; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand-wrap { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; }
  .page-hero { min-height:58svh; padding-top:140px; }
  .page-index { display:none; }
  .catalog-toolbar .container { align-items:flex-start; flex-direction:column; }
  .product-gallery { position:relative; height:62svh; min-height:520px; }
  .product-detail { padding:55px 22px 80px; }
  .builder-layout { grid-template-columns:1fr; }
  .builder-summary { position:static; }
  .quiz-options, .quiz-recommendations { grid-template-columns:1fr; }
  .values-grid { grid-template-columns:1fr; }
  .search-results { grid-template-columns:1fr 1fr; }
}

@media (max-width: 560px) {
  .display { font-size:clamp(50px,17vw,82px); }
  .headline { font-size:clamp(39px,13vw,62px); }
  .section { padding:80px 0; }
  .product-grid { grid-template-columns:1fr; }
  .product-card .product-visual { aspect-ratio:4/4.8; }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .process-grid { grid-template-columns:1fr; }
  .process-card, .process-card + .process-card { border-right:0; padding-left:0; }
  .footer-top { grid-template-columns:1fr; }
  .footer-col:last-child { display:block; }
  .builder-grid { grid-template-columns:1fr; }
  .builder-card { grid-template-columns:110px 1fr; }
  .builder-card img { width:110px; }
  .search-results { grid-template-columns:1fr; }
  .note-pyramid, .trust-list { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .size-options { grid-template-columns:1fr 1fr; }
  .cursor { display:none; }
}

@media (hover:none) {
  .cursor { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}
.product-hit-area {
  position:absolute;
  inset:0;
  z-index:10;
  display:block;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.product-visual > img {
  position:relative;
  z-index:1;
  pointer-events:none;
  user-select:none;
}
.product-visual-cta {
  position:absolute;
  right:17px;
  top:17px;
  z-index:20;
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  color:var(--ivory);
  background:rgba(21,21,21,.72);
  backdrop-filter:blur(12px);
  font-size:9px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:0;
  pointer-events:none;
  transform:translateY(-7px);
  transition:opacity .4s var(--ease),transform .4s var(--ease),background .35s,color .35s;
}
.product-visual-cta > span { font-size:13px; transition:transform .35s var(--ease); }
.product-card:hover .product-visual-cta,
.product-visual:focus-within .product-visual-cta {
  opacity:1;
  transform:translateY(0);
}
.product-card:hover .product-visual-cta {
  color:var(--ink);
  background:var(--champagne);
}
.product-card:hover .product-visual-cta > span { transform:translate(2px,-2px); }
.product-hit-area:focus-visible { outline:2px solid var(--champagne); outline-offset:-7px; }
button:disabled { cursor:not-allowed; }

/* Quiet-luxury motion system */
.scroll-progress {
  position:fixed;
  inset:0 0 auto;
  height:2px;
  z-index:5200;
  pointer-events:none;
}
.scroll-progress span {
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,#8e7140,var(--champagne),#f2d9a6);
  box-shadow:0 0 18px rgba(183,154,101,.55);
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}

.btn {
  isolation:isolate;
  transform:translate3d(var(--magnetic-x,0),var(--magnetic-y,0),0);
  box-shadow:0 0 0 rgba(183,154,101,0);
  will-change:transform;
}
.btn::before {
  background:linear-gradient(110deg,#a7864f 0%,#d8bd86 48%,#b79a65 100%);
}
.btn::after {
  content:"";
  position:absolute;
  z-index:0;
  top:-40%;
  bottom:-40%;
  left:-70%;
  width:42%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-18deg);
  transition:left .7s var(--ease);
}
.btn:hover {
  color:var(--ink);
  border-color:var(--champagne);
  transform:translate3d(var(--magnetic-x,0),calc(var(--magnetic-y,0) - 2px),0);
  box-shadow:0 16px 40px rgba(18,15,10,.16);
}
.btn:hover::after { left:128%; }
.btn svg { transition:transform .35s var(--ease); }
.btn:hover svg { transform:translateX(4px); }
.btn:focus-visible {
  outline:1px solid var(--champagne);
  outline-offset:4px;
}
.btn-ghost::after { display:none; }

.hero::before {
  content:"";
  position:absolute;
  inset:-10%;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at var(--hero-x,72%) var(--hero-y,38%),rgba(203,174,116,.105),transparent 12%),
    radial-gradient(circle at 18% 72%,rgba(105,83,49,.055),transparent 23%);
  opacity:.68;
  transition:opacity .5s;
}
.hero-grid { position:relative; z-index:1; }
.hero-word,.hero-index { position:absolute; z-index:1; }
.hero-art {
  perspective:1200px;
  transform-style:preserve-3d;
}
.hero-art::before {
  content:"";
  position:absolute;
  left:18%;
  right:12%;
  bottom:10%;
  height:15%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(205,172,107,.18),transparent 68%);
  filter:blur(16px);
  animation:ritual-breathe 5.8s ease-in-out infinite;
}
.hero-art img {
  transform:
    translate3d(var(--art-x,0),var(--art-y,0),28px)
    rotateX(var(--art-rx,0))
    rotateY(var(--art-ry,0));
  transition:transform .75s var(--ease),filter .6s;
  will-change:transform;
}
.hero-art:hover img {
  filter:saturate(1.04) contrast(1.015) drop-shadow(0 28px 50px rgba(0,0,0,.2));
}
.hero-orbit::after {
  content:"";
  position:absolute;
  top:50%;
  right:-3px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--champagne);
  box-shadow:0 0 14px rgba(226,198,143,.8);
}
@keyframes ritual-breathe {
  0%,100% { opacity:.38; transform:scale(.94); }
  50% { opacity:.8; transform:scale(1.06); }
}

.product-visual {
  isolation:isolate;
  box-shadow:0 0 0 rgba(21,21,21,0);
  transition:box-shadow .7s var(--ease),transform .7s var(--ease);
}
.product-visual::before {
  content:"";
  position:absolute;
  inset:10px;
  z-index:2;
  border:1px solid rgba(255,255,255,.16);
  pointer-events:none;
  transition:inset .65s var(--ease),border-color .65s;
}
.product-visual::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,35%),rgba(255,246,222,.22),transparent 34%);
  mix-blend-mode:screen;
  transition:opacity .5s;
}
.product-card:hover .product-visual {
  transform:translateY(-5px);
  box-shadow:0 28px 70px rgba(21,21,21,.16);
}
.product-card:hover .product-visual::before {
  inset:16px;
  border-color:rgba(255,255,255,.3);
}
.product-card:hover .product-visual::after { opacity:1; }
.product-visual img {
  transform:scale(1.002);
  will-change:transform;
}
.product-card:hover .product-visual img { transform:scale(1.045); }
.product-title {
  background-image:linear-gradient(90deg,var(--ink) 0 48%,var(--champagne) 52% 100%);
  background-size:210% 100%;
  background-position:0 0;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  transition:background-position .65s var(--ease);
}
.product-card:hover .product-title { background-position:100% 0; }

.mood-card::before { filter:saturate(.82); }
.mood-card:hover::before { filter:saturate(1.08); }
.mood-card .mood-number::after {
  content:"";
  display:inline-block;
  width:0;
  height:1px;
  margin-left:12px;
  vertical-align:middle;
  background:var(--champagne);
  transition:width .55s var(--ease);
}
.mood-card:hover .mood-number::after { width:46px; }

.process-card { transition:background .45s,color .45s,transform .45s var(--ease); }
.process-card:hover {
  background:var(--paper);
  transform:translateY(-6px);
}
.process-num { transition:transform .45s var(--ease); }
.process-card:hover .process-num { transform:translateX(7px); }

.article-image { position:relative; }
.article-image::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(115deg,transparent 25%,rgba(247,242,232,.18) 48%,transparent 70%);
  transform:translateX(-120%);
  transition:transform .9s var(--ease);
}
.article-card:hover .article-image::after { transform:translateX(120%); }

.reveal {
  transition:
    opacity .9s var(--ease) var(--reveal-delay,0ms),
    transform .9s var(--ease) var(--reveal-delay,0ms);
}

.cursor {
  --cursor-ink:#151515;
  --cursor-border:rgba(21,21,21,.58);
  --cursor-fill:rgba(255,253,248,.16);
  left:0;
  top:0;
  width:26px;
  height:26px;
  border:1px solid var(--cursor-border);
  border-radius:50%;
  background:var(--cursor-fill);
  mix-blend-mode:normal;
  opacity:0;
  transition:width .28s var(--ease),height .28s var(--ease),opacity .2s,background .28s,border-color .28s;
  will-change:transform,width,height;
}
.cursor::before,
.cursor::after { display:none; }
.cursor span {
  position:absolute;
  left:50%;
  top:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--cursor-ink);
  transform:translate(-50%,-50%);
  box-shadow:none;
}
.cursor.is-visible { opacity:1; }
.cursor.is-hover {
  width:44px;
  height:44px;
  opacity:.92;
}
.cursor.is-on-dark {
  --cursor-ink:#f7f2e8;
  --cursor-border:rgba(247,242,232,.66);
  --cursor-fill:rgba(21,21,21,.16);
}
.cursor.is-on-champagne {
  --cursor-ink:#111111;
  --cursor-border:#111111;
  --cursor-fill:rgba(247,242,232,.14);
}

@media (hover:hover) and (pointer:fine) {
  .has-luxury-cursor,
  .has-luxury-cursor a,
  .has-luxury-cursor button,
  .has-luxury-cursor input,
  .has-luxury-cursor select,
  .has-luxury-cursor textarea { cursor:none; }
}
@media (max-width:820px) {
  .hero::before {
    background:
      radial-gradient(circle at 65% 40%,rgba(203,174,116,.15),transparent 24%),
      radial-gradient(circle at 15% 76%,rgba(105,83,49,.08),transparent 32%);
  }
  .product-card:hover .product-visual { transform:none; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-art img,.btn,.btn:hover,.product-card:hover .product-visual { transform:none; }
  .cursor { display:none; }
}

/* Cinematic interaction layer */
.scent-canvas {
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:.9;
  -webkit-mask-image:linear-gradient(to bottom,transparent 2%,#000 18%,#000 82%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 2%,#000 18%,#000 82%,transparent 100%);
}

.hero-copy > * {
  opacity:0;
  transform:translateY(24px);
}
.site-ready .hero-copy > * {
  animation:hero-line-in .95s var(--ease) both;
}
.site-ready .hero-copy > :nth-child(1) { animation-delay:.05s; }
.site-ready .hero-copy > :nth-child(2) { animation-delay:.14s; }
.site-ready .hero-copy > :nth-child(3) { animation-delay:.24s; }
.site-ready .hero-copy > :nth-child(4) { animation-delay:.34s; }
.site-ready .hero-art { animation:hero-art-in 1.25s var(--ease) .12s both; }
@keyframes hero-line-in {
  from { opacity:0; transform:translateY(24px); filter:blur(6px); }
  to { opacity:1; transform:translateY(0); filter:blur(0); }
}
@keyframes hero-art-in {
  from { opacity:0; transform:translateY(28px) scale(.975); filter:blur(9px); }
  to { opacity:1; transform:none; filter:blur(0); }
}

:is(.size-option,.quick-add button,.filter-btn,.quiz-option,.builder-select,.wishlist-btn,.icon-btn,.nav-icon,.qty button) {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  -webkit-tap-highlight-color:transparent;
}
:is(.size-option,.filter-btn,.quiz-option,.builder-select) {
  transform:translate3d(var(--magnetic-x,0),var(--magnetic-y,0),0);
  will-change:transform;
}
:is(.btn,.size-option,.quick-add button,.filter-btn,.quiz-option,.builder-select,.wishlist-btn,.icon-btn,.nav-icon,.qty button):active {
  transform:scale(.965);
  transition-duration:.1s;
}
.luxury-ripple {
  position:absolute!important;
  z-index:4;
  display:block;
  border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.42) 0,rgba(201,171,111,.22) 32%,transparent 69%);
  transform:scale(0);
  animation:luxury-ripple .68s var(--ease) forwards;
}
@keyframes luxury-ripple {
  to { transform:scale(1.65); opacity:0; }
}

.size-options { gap:12px; }
.size-option {
  width:100%;
  min-width:0;
  min-height:68px;
  padding:19px 20px;
  background:transparent;
  border-color:rgba(21,21,21,.18);
  transition:
    transform .42s var(--ease),
    color .42s,
    border-color .42s,
    box-shadow .42s;
}
.size-option::before {
  content:"";
  position:absolute;
  inset:-1px;
  z-index:-1;
  background:linear-gradient(115deg,#151515 0%,#24211b 58%,#151515 100%);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .48s var(--ease);
}
.size-option::after {
  content:"";
  position:absolute;
  z-index:0;
  left:-45%;
  top:-70%;
  width:34%;
  height:240%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(223,194,136,.22),transparent);
  transition:left .65s var(--ease);
}
.size-option > span,
.size-option > strong { position:relative; z-index:1; }
.size-option span {
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:11px;
  font-weight:650;
}
.size-option span::after {
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--champagne);
  box-shadow:0 0 0 0 rgba(183,154,101,.5);
  opacity:0;
  transform:scale(0);
  transition:opacity .35s,transform .35s var(--ease);
}
.size-option strong {
  font-family:var(--serif);
  font-size:20px;
  font-weight:400;
  letter-spacing:-.02em;
}
.size-option:hover {
  border-color:rgba(183,154,101,.8);
  box-shadow:0 13px 34px rgba(21,21,21,.08);
}
.size-option:hover::after { left:125%; }
.size-option.active {
  color:var(--ivory);
  border-color:var(--ink);
  background:transparent;
  box-shadow:0 16px 40px rgba(21,21,21,.13);
}
.size-option.active::before { transform:scaleX(1); transform-origin:left; }
.size-option.active span::after { opacity:1; transform:scale(1); animation:selected-pulse 2.8s ease-in-out infinite; }
.size-option.is-choosing { animation:choice-confirm .58s var(--ease); }
.size-option.is-choosing strong { animation:price-arrive .5s var(--ease); }
@keyframes selected-pulse {
  50% { box-shadow:0 0 0 6px rgba(183,154,101,0); }
}
@keyframes choice-confirm {
  45% { box-shadow:0 18px 44px rgba(21,21,21,.16),0 0 0 1px rgba(183,154,101,.28); }
}
@keyframes price-arrive {
  from { opacity:.25; filter:blur(2px); }
  to { opacity:1; filter:blur(0); }
}
.purchase-row [data-add-product] {
  min-width:0;
  contain:layout paint;
}
.purchase-row [data-add-product].price-updated { animation:add-price-shift .5s var(--ease); }
@keyframes add-price-shift {
  40% { box-shadow:0 0 0 1px var(--champagne),0 14px 36px rgba(21,21,21,.15); }
}

.product-gallery {
  isolation:isolate;
}
.product-gallery::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:.72;
  background:radial-gradient(circle at var(--gallery-x,65%) var(--gallery-y,36%),rgba(255,246,220,.16),transparent 28%);
  mix-blend-mode:screen;
}
.product-gallery::after {
  content:"";
  position:absolute;
  inset:18px;
  z-index:3;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.17);
}
.product-gallery img {
  transform:translate3d(var(--gallery-tx,0),var(--gallery-ty,0),0) scale(1.025);
  transition:transform .8s var(--ease),filter .8s;
  will-change:transform;
}
.product-gallery:hover img { filter:saturate(1.025) contrast(1.01); }
.product-gallery-note { z-index:4; }

.quick-add button {
  position:relative;
  z-index:31;
  color:var(--ink);
  border:1px solid rgba(21,21,21,.1);
  background:rgba(255,253,248,.96);
  cursor:pointer;
  pointer-events:auto;
  touch-action:manipulation;
  transition:color .32s,background-color .32s,transform .28s var(--ease),box-shadow .35s,border-color .32s;
}
.quick-add button::before {
  display:none;
}
.quick-add button:hover,
.quick-add button:focus-visible,
.quick-add button.is-hovered {
  color:#111!important;
  background-color:#d6b56f!important;
  border-color:#b79a65!important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(10,10,10,.16),inset 0 0 0 1px rgba(255,255,255,.2);
}
.quick-add button:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:2px;
}

.wishlist-btn {
  font-family:var(--serif);
  font-size:25px;
  transition:background .4s,color .4s,border-color .4s,transform .38s var(--ease),box-shadow .4s;
}
.wishlist-btn:hover {
  border-color:var(--champagne);
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(21,21,21,.1);
}
.wishlist-btn.is-saved {
  background:var(--ink);
  border-color:var(--ink);
  color:var(--champagne);
  animation:heart-confirm .55s var(--ease);
}
@keyframes heart-confirm {
  40% { transform:scale(1.12) rotate(-4deg); }
}

.filter-btn::after,
.builder-select::after {
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:0;
  height:1px;
  background:var(--champagne);
  transition:left .4s var(--ease),right .4s var(--ease);
}
.filter-btn:hover::after,
.filter-btn.active::after,
.builder-select:hover::after { left:10px; right:10px; }
.filter-btn.active {
  box-shadow:0 10px 26px rgba(21,21,21,.12);
}

.quiz-option::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(115deg,var(--ivory),#e9ddc7);
  transform:translateX(-102%);
  transition:transform .5s var(--ease);
}
.quiz-option:hover { background:transparent; }
.quiz-option:hover::before { transform:translateX(0); }
.quiz-option strong,.quiz-option span { position:relative; z-index:1; }

.icon-btn svg,.nav-icon svg {
  transition:transform .45s var(--ease),stroke .35s;
}
.icon-btn:hover svg,.nav-icon:hover svg { transform:rotate(7deg) scale(1.08); }
.cart-count { transition:transform .35s var(--ease),box-shadow .35s; }
.nav-icon:hover .cart-count { transform:translateY(-2px) scale(1.08); box-shadow:0 0 0 4px rgba(183,154,101,.14); }

.accordion-trigger span {
  display:inline-grid;
  place-items:center;
  transition:transform .45s var(--ease),color .35s;
}
.accordion-trigger:hover span { color:var(--champagne); transform:rotate(90deg); }
.accordion-item.open .accordion-trigger span { transform:rotate(45deg); color:var(--champagne); }

.text-link {
  position:relative;
  overflow:hidden;
  transition:color .35s;
}
.text-link::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:var(--champagne);
  transform:translateX(-102%);
  transition:transform .48s var(--ease);
}
.text-link:hover { color:#8d6f3d; }
.text-link:hover::after { transform:translateX(0); }

.mood-card:hover .mood-title { transform:translateY(-6px); }
.mood-title { transition:transform .55s var(--ease); }
.selection-image img {
  transition:transform 1.1s var(--ease),filter .8s;
}
.selection-image:hover img {
  transform:scale(1.025);
  filter:saturate(1.04) contrast(1.015);
}
.eyebrow::before { transition:width .6s var(--ease),opacity .4s; }
.reveal.visible .eyebrow::before,.eyebrow:hover::before { width:48px; opacity:.8; }

@media (max-width:820px) {
  .scent-canvas { opacity:.56; }
  .hero-copy > * { opacity:1; transform:none; }
  .site-ready .hero-copy > * { animation:none; }
  .site-ready .hero-art { animation:hero-art-in .9s var(--ease) both; }
  .product-gallery img { transform:scale(1.025); }
  .product-gallery::after { inset:12px; }
  .size-option { min-height:64px; padding:17px 15px; }
  .size-option strong { font-size:18px; }
  :is(.size-option,.filter-btn,.quiz-option,.builder-select) { transform:none; }
  .product-visual-cta { opacity:1; transform:none; }
}

@media (prefers-reduced-motion:reduce) {
  .scent-canvas { display:none; }
  .hero-copy > * { opacity:1; transform:none; animation:none!important; }
  .site-ready .hero-art { animation:none; }
  .size-option.active span::after { animation:none; }
  .product-gallery img { transform:none; }
  .luxury-ripple { display:none; }
}
