
:root{
  --paper:#EFE9DD; --paper-deep:#E6DECF; --ink:#1A1714; --ink-soft:#4A433B;
  --oxblood:#742A2A; --olive:#5B6244; --gold:#A6853F; --hairline:rgba(26,23,20,0.14);
  --display:"EB Garamond", Georgia, "Times New Roman", serif;
  --ui: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --ease: cubic-bezier(.7,0,.2,1);
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
html,body{ min-height:100%; }
body{ background:var(--paper); color:var(--ink); font-family:var(--ui);
  -webkit-font-smoothing:antialiased; min-height:100vh; display:flex; flex-direction:column; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
.skip-link{ position:fixed; top:10px; left:10px; z-index:9999; transform:translateY(-160%); background:#fff; color:#111; padding:.75rem 1rem; border-radius:4px; font:600 .9rem/1 var(--ui); }
.skip-link:focus{ transform:none; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{ outline:3px solid #d6b36a; outline-offset:3px; }

/* ---- top bar ---- */
.topbar{ display:flex; align-items:baseline; gap:clamp(18px,3vw,34px);
  padding:clamp(22px,3vw,34px) clamp(24px,5vw,60px); position:relative; z-index:60; }
.wordmark{ font-family:var(--display); font-weight:500; font-size:clamp(1.15rem,2vw,1.5rem);
  letter-spacing:.34em; text-transform:uppercase; color:var(--ink); text-decoration:none; padding-right:.34em; }
.menu{ position:relative; }
.menu-toggle{ font-family:var(--ui); font-size:.74rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-soft); background:none; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:.5em; padding:.3em 0; }
.menu-toggle .caret{ width:6px; height:6px; border-right:1.4px solid currentColor; border-bottom:1.4px solid currentColor;
  transform:rotate(45deg) translateY(-1px); transition:transform .3s var(--ease); }
.menu-toggle[aria-expanded="true"] .caret{ transform:rotate(-135deg) translateY(-1px); }
.menu-toggle:hover{ color:var(--ink); }
.menu-panel{ position:absolute; top:calc(100% + 16px); left:0; min-width:230px; background:var(--paper);
  border:1px solid var(--hairline); padding:10px 0; display:flex; flex-direction:column;
  box-shadow:0 18px 50px rgba(26,23,20,0.10); opacity:0; transform:translateY(-8px); pointer-events:none;
  transition:opacity .28s var(--ease), transform .28s var(--ease); z-index:50; }
.menu-panel.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.menu-panel[hidden]{ display:none; }
.menu-panel a{ font-family:var(--display); font-size:1.05rem; color:var(--ink); text-decoration:none;
  padding:9px clamp(20px,3vw,26px); transition:color .2s var(--ease), background .2s var(--ease); }
.menu-panel a:hover{ color:var(--oxblood); background:var(--paper-deep); }
.menu-panel a[aria-current="page"]{ color:var(--oxblood); }

/* ---- layout helpers ---- */
main{ flex:1; }
.wrap{ width:min(100%,1140px); margin-inline:auto; padding-inline:clamp(24px,5vw,60px); }
.section{ padding-block:clamp(46px,8vw,104px); }
.section--tight{ padding-block:clamp(30px,5vw,60px); }
.center{ text-align:center; }
.eyebrow{ font-family:var(--ui); font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:var(--oxblood); display:block; }
hr.rule{ height:1px; background:var(--hairline); border:0; margin-block:clamp(30px,5vw,60px); }

/* ---- page hero ---- */
.page-hero{ text-align:center; padding-block:clamp(48px,9vw,110px) clamp(20px,4vw,40px); }
.page-hero h1{ font-family:var(--display); font-weight:500; font-size:clamp(2.3rem,6.5vw,4.2rem);
  line-height:1.04; letter-spacing:.01em; margin-top:.32em; }
.page-hero .sub{ font-family:var(--display); font-size:clamp(1.05rem,2vw,1.4rem); font-style:italic;
  color:var(--ink-soft); margin-top:.8em; max-width:46ch; margin-inline:auto; line-height:1.55; }

h2.sec{ font-family:var(--display); font-weight:500; font-size:clamp(1.7rem,3.6vw,2.6rem); letter-spacing:.01em; line-height:1.1; }
h3.sub-h{ font-family:var(--display); font-weight:500; font-size:clamp(1.3rem,2.4vw,1.7rem); }
.lead{ font-family:var(--display); font-size:clamp(1.15rem,1.9vw,1.4rem); line-height:1.6; color:var(--ink); max-width:60ch; }
.prose p{ font-family:var(--display); font-size:clamp(1.04rem,1.4vw,1.2rem); line-height:1.72; color:var(--ink-soft); max-width:64ch; margin-bottom:1em; }
.prose p strong{ color:var(--ink); font-weight:500; }

/* ---- two column editorial ---- */
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start; }
.two-col--40{ grid-template-columns:.85fr 1.15fr; }
@media(max-width:820px){ .two-col,.two-col--40{ grid-template-columns:1fr; } }

.pullquote{ font-family:var(--display); font-style:italic; font-size:clamp(1.4rem,3vw,2.1rem);
  line-height:1.4; color:var(--ink); border-left:2px solid var(--oxblood); padding-left:clamp(18px,3vw,34px); max-width:24ch; }

/* ---- card grid ---- */
.grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(268px,1fr)); gap:clamp(16px,2.4vw,28px); }
.grid--2{ grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.card{ border:1px solid var(--hairline); background:var(--paper); padding:clamp(22px,3vw,32px);
  display:flex; flex-direction:column; gap:.55em; text-decoration:none; color:inherit;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease); }
a.card:hover{ transform:translateY(-4px); box-shadow:0 22px 54px rgba(26,23,20,.09); border-color:rgba(26,23,20,.30); }
.card .tag{ font-family:var(--ui); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--oxblood); }
.card h3{ font-family:var(--display); font-weight:500; font-size:1.5rem; line-height:1.15; }
.card p{ color:var(--ink-soft); line-height:1.6; font-size:.98rem; }
.card--invite{justify-content:flex-start;background:linear-gradient(158deg,rgba(201,163,108,.10),transparent 62%);border-color:rgba(201,163,108,.34)}
.card--invite .card-arrow{margin-top:auto;padding-top:1em;color:var(--gold);font-size:1.1rem}
.card--photo{padding:0;justify-content:flex-start;overflow:hidden}.card--photo .card-img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;filter:brightness(.82) saturate(.82);transition:transform .8s var(--ease),filter .8s var(--ease)}
.card--photo:hover .card-img{transform:scale(1.025);filter:brightness(.87) saturate(.88)}.card--photo .card-body{display:flex;flex:1;flex-direction:column;gap:.55em;padding:clamp(24px,3vw,38px)}

/* ---- material / finish chips ---- */
.chip{ height:150px; border:1px solid var(--hairline); margin-bottom:.9em; position:relative; overflow:hidden; }
.chip--foil{ background:linear-gradient(120deg,#c9a24e 0%,#f3e3ad 30%,#a6853f 55%,#e9d59a 80%,#8f6f2e 100%); }
.chip--emboss{ background:var(--paper-deep); box-shadow:inset 8px 8px 18px rgba(26,23,20,.10), inset -8px -8px 18px rgba(255,255,255,.6); }
.chip--letter{ background:var(--paper-deep); box-shadow:inset 0 0 0 2px rgba(26,23,20,.05); }
.chip--letter::after{ content:"E"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-size:5rem; color:transparent; text-shadow:1px 1px 0 rgba(255,255,255,.7), -1px -1px 2px rgba(26,23,20,.22); }
.chip--edge{ background:var(--paper); border-bottom:14px solid var(--oxblood); }
.chip--spot{ background:var(--paper-deep); }
.chip--spot::after{ content:""; position:absolute; inset:22px; background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(26,23,20,.06)); }
.chip--laser{ background:repeating-linear-gradient(45deg,var(--paper-deep) 0 9px,rgba(26,23,20,.05) 9px 11px); }
.chip--cotton{ background:radial-gradient(circle at 30% 30%, #f6f1e6, var(--paper-deep)); }
.chip--ink{ background:var(--ink); }
.chip--olive{ background:var(--olive); }

/* ---- steps ---- */
.steps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:clamp(22px,3vw,40px); }
.step .num{ font-family:var(--display); font-size:clamp(2.2rem,4vw,3rem); color:var(--oxblood); line-height:1; }
.step h3{ font-family:var(--display); font-weight:500; font-size:1.4rem; margin:.3em 0 .35em; }
.step p{ color:var(--ink-soft); line-height:1.6; font-size:.97rem; }

/* ---- manifesto bands ---- */
.band{ padding-block:clamp(46px,8vw,104px); border-top:1px solid var(--hairline); }
.band .n{ font-family:var(--display); font-style:italic; color:var(--gold); font-size:1.05rem; }
.band h2{ font-family:var(--display); font-weight:500; font-size:clamp(2rem,5vw,3.3rem); line-height:1.08; margin:.15em 0 .35em; max-width:20ch; }
.band p{ font-family:var(--display); font-size:clamp(1.06rem,1.7vw,1.3rem); color:var(--ink-soft); line-height:1.7; max-width:58ch; }
.band--ink{ background:var(--ink); color:var(--paper); border-top-color:transparent; }
.band--ink h2{ color:var(--paper); } .band--ink p{ color:rgba(239,233,221,.72); } .band--ink .n{ color:var(--gold); }

/* ---- FAQ ---- */
.faq details{ border-top:1px solid var(--hairline); }
.faq details:last-child{ border-bottom:1px solid var(--hairline); }
.faq summary{ font-family:var(--display); font-size:clamp(1.15rem,2vw,1.4rem); padding:.85em 0; cursor:pointer;
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1em; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--oxblood); font-family:var(--ui); font-size:1.3rem; }
.faq details[open] summary::after{ content:"\2013"; }
.faq details p{ color:var(--ink-soft); line-height:1.72; padding:0 0 1.1em; max-width:72ch;
  font-family:var(--display); font-size:1.08rem; }

/* ---- buttons / CTA ---- */
.btn{ display:inline-block; font-family:var(--ui); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--paper); background:var(--ink); padding:1.05em 2.1em; text-decoration:none; border:1px solid var(--ink);
  transition:background .3s var(--ease), color .3s var(--ease); }
.btn:hover{ background:transparent; color:var(--ink); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); }
.cta-row{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:1.6em; }

/* ---- landing hero ---- */
.hero-main{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  gap:clamp(22px,3.5vw,40px); padding:12px clamp(24px,5vw,60px) clamp(48px,7vw,90px); }
.hero-stage{ width:min(90vw,940px); aspect-ratio:16/10; position:relative; overflow:hidden;
  border:1px solid var(--hairline);
  background:radial-gradient(120% 120% at 50% 38%, #F6F1E7 0%, var(--paper-deep) 100%); }
.hero-stage::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 90px rgba(26,23,20,0.07); pointer-events:none; }
.hero-illus{ position:absolute; inset:0; width:100%; height:100%; }
.hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tagline{ font-family:var(--display); font-size:clamp(1.1rem,2vw,1.5rem); color:var(--ink); letter-spacing:.01em; }
.tagline em{ color:var(--oxblood); font-style:italic; }

/* ---- configurator ---- */
.page-head{ text-align:center; margin-bottom:clamp(24px,4vw,44px); }
.page-head h1{ font-family:var(--display); font-weight:500; font-size:clamp(1.9rem,4vw,2.8rem); letter-spacing:.01em; }
.page-head p{ font-family:var(--display); font-size:clamp(1rem,1.6vw,1.2rem); color:var(--ink-soft); margin-top:.5em; font-style:italic; }
.configurator-frame{ width:min(94vw,1080px); aspect-ratio:16/10; border:1px solid var(--hairline); margin-inline:auto;
  background:repeating-linear-gradient(45deg,transparent 0 22px,rgba(26,23,20,0.02) 22px 44px),var(--paper-deep);
  display:flex; align-items:center; justify-content:center; position:relative; }
#configurator-root{ position:absolute; inset:0; }
.mount-note{ font-family:var(--ui); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-soft); opacity:.62; text-align:center; line-height:1.9; max-width:70%; }
.dyo-steps{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:clamp(20px,3vw,34px); }
.dyo-steps span{ font-family:var(--ui); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft); border:1px solid var(--hairline); padding:.6em 1em; }

/* ---- gallery / journal tiles ---- */
.tile{ border:1px solid var(--hairline); aspect-ratio:4/3; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:18px; color:var(--paper);
  background:linear-gradient(180deg,rgba(26,23,20,0) 40%,rgba(26,23,20,.55) 100%), var(--paper-deep); }
.tile.t-ink{ background:linear-gradient(180deg,rgba(26,23,20,.15),rgba(26,23,20,.72)), var(--ink); }
.tile.t-olive{ background:linear-gradient(180deg,rgba(26,23,20,.05),rgba(26,23,20,.55)), var(--olive); }
.tile.t-ox{ background:linear-gradient(180deg,rgba(26,23,20,.05),rgba(26,23,20,.6)), var(--oxblood); }
.tile.t-gold{ background:linear-gradient(180deg,rgba(26,23,20,.05),rgba(26,23,20,.5)), var(--gold); }
.tile .cap{ font-family:var(--display); font-size:1.15rem; }
.tile .cap small{ display:block; font-family:var(--ui); font-size:.62rem; letter-spacing:.18em;
  text-transform:uppercase; opacity:.85; margin-bottom:.3em; }
.tile.t-plain{ color:var(--ink); background:var(--paper-deep); }

.note{ font-family:var(--ui); font-size:.8rem; letter-spacing:.02em; color:var(--ink-soft);
  background:var(--paper-deep); border-left:2px solid var(--gold); padding:.9em 1.1em; line-height:1.6; }

/* ---- Ink Wash transition ---- */
.ink-transition{ position:fixed; inset:0; z-index:9999; background:var(--ink); transform-origin:top;
  transform:scaleY(1); pointer-events:none; will-change:transform; animation:inkReveal .8s var(--ease) forwards; }
.ink-transition::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:linear-gradient(var(--paper),transparent); opacity:.5; }
@keyframes inkReveal{ from{transform:scaleY(1);} to{transform:scaleY(0);} }
@media (prefers-reduced-motion: reduce){
  .ink-transition{ animation:none; transform:scaleY(0); }
  .menu-panel,.menu-toggle .caret,.card{ transition:none; }
  html{ scroll-behavior:auto; }
}
.consent-panel{ position:fixed; z-index:9998; left:14px; bottom:14px; width:min(480px,calc(100vw - 28px)); padding:14px 16px; border:1px solid #665c4b; background:#151411; color:#eee7dc; box-shadow:0 18px 60px #0009; }
.consent-panel[hidden]{ display:none; }
.consent-panel strong{ display:block; font:600 .76rem/1.2 var(--ui); letter-spacing:.1em; text-transform:uppercase; }
.consent-panel p{ margin:.35rem 0 .75rem; color:#c9c0b4; font:.92rem/1.42 var(--display); }
.consent-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.consent-actions button{ flex:1 1 170px; min-height:44px; padding:.65rem .8rem; border:1px solid #8d7956; background:#eee7dc; color:#171511; font:600 .7rem/1.15 var(--ui); letter-spacing:.07em; text-transform:uppercase; cursor:pointer; }
.consent-actions button.secondary{ background:transparent; color:#eee7dc; }
@media(min-width:900px){
  .consent-panel{left:18px;right:18px;bottom:18px;width:auto;padding:12px 14px;display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:center;gap:16px}
  .consent-panel p{margin:0;max-width:64ch}.consent-actions{flex-wrap:nowrap}.consent-actions button{flex:0 0 auto;min-width:164px}
}
.privacy-choices{ border:0; background:none; color:inherit; font:inherit; cursor:pointer; text-align:left; padding:0; }

/* ---- footer ---- */
.site-foot{ background:var(--paper-deep); border-top:1px solid var(--hairline);
  padding:clamp(40px,6vw,74px) 0 clamp(22px,3vw,34px); margin-top:auto; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:clamp(22px,4vw,46px); }
@media(max-width:820px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-brand .fw{ font-family:var(--display); letter-spacing:.28em; text-transform:uppercase; font-size:1.25rem; }
.foot-brand p{ font-family:var(--display); color:var(--ink-soft); font-size:1rem; line-height:1.6; margin-top:.7em; max-width:34ch; }
.foot-brand .olive{ margin-top:1em; }
.foot-col h4{ font-family:var(--ui); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.8em; }
.foot-col a{ display:block; font-family:var(--display); font-size:1rem; color:var(--ink); text-decoration:none; padding:.26em 0; transition:color .2s var(--ease); }
.foot-col a:hover{ color:var(--oxblood); }
.foot-bottom{ display:flex; justify-content:space-between; gap:1em; flex-wrap:wrap;
  margin-top:clamp(28px,4vw,50px); padding-top:1.2em; border-top:1px solid var(--hairline);
  font-family:var(--ui); font-size:.72rem; letter-spacing:.07em; color:var(--ink-soft); }
.foot-bottom a{ text-decoration:none; color:var(--ink-soft); }
.foot-bottom a:hover{ color:var(--oxblood); }

@media(max-width:560px){ .wordmark{ letter-spacing:.24em; } .mount-note{ max-width:82%; } }

/* ---- Estienne cinematic editorial system ---- */
:root{
  --paper:#161513; --paper-deep:#0d0d0c; --ink:#f0eadf; --ink-soft:#aaa298;
  --oxblood:#c56f4e; --olive:#858a70; --gold:#c9a36c; --hairline:rgba(240,234,223,.16);
  --display:"EB Garamond", Georgia, serif; --ease:cubic-bezier(.22,.61,.36,1);
}
html{ background:#0d0d0c; }
body{ background:var(--paper); color:var(--ink); overflow-x:clip; }
body::before{ content:""; position:fixed; inset:0; pointer-events:none; z-index:1000; opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.topbar{ position:relative; align-items:center; justify-content:space-between; padding:22px 230px 22px clamp(22px,4vw,64px);
  border-bottom:1px solid var(--hairline); background:rgba(13,13,12,.9); backdrop-filter:blur(18px); }
.topbar .menu{ position:absolute; right:160px; }
@media(max-width:640px){ .topbar{ padding-right:140px; } .topbar .menu{ right:72px; } }
.wordmark{ color:var(--ink); font:600 clamp(1.05rem,1.6vw,1.3rem)/1 var(--ui); letter-spacing:.36em; }
.menu-toggle{ color:var(--ink-soft); }
.menu-panel{ position:fixed; top:76px; left:16px; right:16px; width:auto; max-height:calc(100svh - 92px); padding:clamp(24px,5vw,70px); overflow:auto; background:linear-gradient(135deg,#15130f 0%,#090908 62%);
  border-color:var(--hairline); box-shadow:0 30px 100px rgba(0,0,0,.72); perspective:1100px; transform:translateY(-12px) rotateX(-2deg); transform-origin:top center; }
.menu-panel{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 22px; }
.menu-panel.open{ display:grid; }
.menu-panel.open{ transform:translateY(0) rotateX(var(--menu-rx,0deg)) rotateY(var(--menu-ry,0deg)); }
.menu-panel::before{ content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(90deg,transparent 0 12%,#c9a36c0b 12.2% 12.5%,transparent 12.7% 25%),radial-gradient(circle at var(--menu-x,76%) var(--menu-y,28%),#c9a36c24,transparent 28%); }
.menu-scene{ grid-column:1/-1; min-height:clamp(110px,20vh,220px); position:relative; transform-style:preserve-3d; border-bottom:1px solid var(--hairline); margin-bottom:18px; overflow:hidden; }
.menu-scene .sheet{ position:absolute; width:clamp(150px,24vw,330px); aspect-ratio:1.58; border:1px solid #d8cbb933; background:linear-gradient(145deg,#eee4d5,#aa9b86); box-shadow:0 30px 80px #0008; }
.menu-scene .sheet.one{ right:18%; top:8%; transform:translateZ(90px) rotate(-7deg); }
.menu-scene .sheet.two{ right:8%; top:26%; transform:translateZ(30px) rotate(8deg); background:#4d1715; }
.menu-scene .brass{ position:absolute; right:43%; top:18%; width:clamp(54px,8vw,100px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 34% 30%,#f1d79a,#8b642e 55%,#2b2015); box-shadow:0 18px 50px #0009; transform:translateZ(140px); }
.menu-scene .label{ position:absolute; left:0; bottom:20px; font:clamp(2.4rem,6vw,6.5rem)/.84 var(--display); letter-spacing:-.045em; max-width:8ch; transform:translateZ(70px); }
.menu-panel a{ position:relative; color:var(--ink); font-size:clamp(1rem,1.7vw,1.25rem); padding:14px 12px; border-bottom:1px solid #ffffff12; transform:translateZ(22px); }
.menu-panel a:hover{ color:var(--gold); background:rgba(255,255,255,.04); }
.wrap{ width:min(100%,1320px); padding-inline:clamp(22px,5vw,74px); }
.section{ padding-block:clamp(76px,11vw,160px); }
.section--tight{ padding-block:clamp(58px,8vw,112px); }
.page-hero{ text-align:left; padding-block:clamp(92px,15vw,210px) clamp(56px,8vw,100px); }
.page-hero h1{ font-size:clamp(4rem,11vw,10rem); line-height:.82; letter-spacing:-.045em; max-width:9ch; }
.page-hero .sub{ margin:1.4em 0 0; max-width:54ch; font-size:clamp(1.15rem,2vw,1.65rem); color:var(--ink-soft); }
.eyebrow,.card .tag{ color:var(--gold); letter-spacing:.26em; }
h2.sec{ font-size:clamp(2.6rem,6vw,5.8rem); line-height:.92; letter-spacing:-.03em; }
h3.sub-h{ font-size:clamp(1.8rem,3vw,2.6rem); }
.lead{ color:var(--ink); font-size:clamp(1.3rem,2.3vw,1.9rem); }
.prose p{ color:var(--ink-soft); font-size:clamp(1.08rem,1.5vw,1.3rem); }
.prose p strong{ color:var(--ink); }
.two-col{ gap:clamp(44px,8vw,130px); }
.pullquote{ font-size:clamp(2rem,4vw,4rem); line-height:1.1; color:var(--ink); border-left:0; padding-left:0; }
.grid{ gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
.card{ min-height:280px; justify-content:flex-end; background:#171613; border:0; padding:clamp(28px,4vw,54px); }
.card--photo{ padding:0; justify-content:flex-start; }
.card--invite{ justify-content:flex-start; }
.card h3{ font-size:clamp(1.55rem,2.5vw,2.35rem); }
.card p{ color:var(--ink-soft); font-size:1rem; }
a.card:hover{ transform:none; background:#201e1a; box-shadow:none; }
.chip{ height:220px; border-color:var(--hairline); filter:saturate(.75); }
.steps{ gap:1px; background:var(--hairline); }
.step{ min-height:310px; padding:clamp(28px,4vw,52px); background:#121210; }
.step .num{ color:var(--gold); }
.step h3{ font-size:clamp(1.6rem,2.8vw,2.5rem); }
.step p{ color:var(--ink-soft); }
.band{ padding-block:clamp(88px,13vw,190px); border-top-color:var(--hairline); }
.band h2{ font-size:clamp(3rem,8vw,8rem); line-height:.86; letter-spacing:-.045em; max-width:13ch; }
.band p{ color:var(--ink-soft); }
.band--ink{ background:#090908; color:var(--ink); }
.band--ink h2{ color:var(--ink); }
.band--ink p{ color:var(--ink-soft); }
.band--ink .n{ color:var(--gold); }
/* --- empty trailing grid cells must not show the light hairline
       container background; separators come from the cells --- */
.grid{ background:#171613; border:0; }
.card{ outline:1px solid var(--hairline); }
.steps{ background:#121210; }
.step{ outline:1px solid var(--hairline); }
.finish-strip{ background:#121210; }
.finish-strip>*{ outline:1px solid var(--hairline); }
.shop-paths{ background:#121210; }
.shop-paths>*{ outline:1px solid var(--hairline); }
.heritage-olive{position:relative;overflow:hidden;isolation:isolate;background:#090908;color:#f4eee3}
.heritage-olive::before{content:"";position:absolute;inset:-20%;z-index:-1;background:radial-gradient(circle at 78% 42%,#5b62443d,transparent 30%),linear-gradient(115deg,#090908 12%,#17150f 58%,#0a0908 100%)}
.heritage-olive h2{color:#f4eee3}.heritage-olive p{color:#cec5b8}.heritage-olive .n{color:#d5b274}
.values-ink{background:linear-gradient(135deg,#15130f,#080807 72%)}
.values-ink h2{color:#f4eee3}.values-ink p{color:#d3cabc}.values-ink .n{color:#d5b274}
.consultation{position:relative;overflow:hidden;border:1px solid rgba(190,155,89,.28);background:radial-gradient(circle at 82% 20%,rgba(190,155,89,.17),transparent 34%),#0b0a08;color:#f4eee3;padding:clamp(34px,6vw,76px);margin-top:clamp(44px,7vw,92px)}
.consultation p{color:#d3cabc;max-width:54ch}.consultation .btn{margin-top:1.2rem}.booking-pending{display:inline-flex;align-items:center;min-height:44px;margin-top:1.2rem;padding:.8rem 1.1rem;border:1px solid rgba(244,238,227,.3);color:#c8bfae;font:600 .72rem/1 var(--ui);letter-spacing:.12em;text-transform:uppercase;cursor:not-allowed}
.btn{ color:#111; background:var(--ink); border-color:var(--ink); padding:1.15em 2.2em; }
.btn:hover{ color:var(--ink); border-color:var(--ink); }
.btn--ghost{ color:var(--ink); background:transparent; }
.btn--ghost:hover{ color:#111; background:var(--ink); }
.tile{ min-height:390px; border:0; }
.tile.t-plain{ color:var(--ink); background:#24211c; }
.note{ color:var(--ink-soft); background:#11110f; border-left-color:var(--gold); }
.faq details{ border-color:var(--hairline); }
.faq details p{ color:var(--ink-soft); }
.configurator-frame{ width:100%; min-height:70svh; aspect-ratio:16/9; border-color:var(--hairline); background:#0d0d0c; }
.dyo-steps span{ color:var(--ink-soft); border-color:var(--hairline); }
.site-foot{ background:#090908; border-color:var(--hairline); padding-top:clamp(64px,9vw,120px); }
.foot-brand .fw{ font:600 1.15rem/1 var(--ui); letter-spacing:.34em; }
.foot-brand p,.foot-bottom{ color:var(--ink-soft); }
.foot-col h4{ color:#7f786f; }
.foot-col a{ color:var(--ink); }
.foot-col a:hover{ color:var(--gold); }
.foot-bottom{ border-color:var(--hairline); }

/* home composition */
.estienne-hero{ position:relative; min-height:calc(100svh - 70px); display:grid; align-items:end; overflow:hidden; background:#0b0b0a; }
.estienne-hero-media{ position:absolute; inset:0; }
.estienne-hero-media img{ width:100%; height:100%; object-fit:cover; filter:brightness(.42) saturate(.72) contrast(1.12); transform:scale(1.03); animation:estienneDrift 18s ease-in-out infinite alternate; }
.estienne-hero-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,9,8,.94) 0%,rgba(9,9,8,.55) 52%,rgba(9,9,8,.14)),linear-gradient(0deg,rgba(9,9,8,.72),transparent 55%); }
.estienne-hero-copy{ position:relative; z-index:2; padding:clamp(36px,7vw,104px) clamp(22px,5vw,74px); max-width:1400px; }
.estienne-kicker{ font:500 .68rem/1.3 var(--ui); letter-spacing:.3em; text-transform:uppercase; color:var(--gold); }
.estienne-hero h1{ margin:.24em 0 .28em; max-width:10ch; font-size:clamp(5rem,14vw,13.5rem); line-height:.72; letter-spacing:-.065em; font-weight:500; }
.estienne-hero-lede{ max-width:42ch; font-family:var(--display); font-size:clamp(1.2rem,2vw,1.7rem); line-height:1.45; color:#c8c0b5; }
.estienne-hero-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:2rem; }
.estienne-index{ position:absolute; right:clamp(22px,4vw,64px); bottom:clamp(36px,7vw,96px); z-index:2; color:#8d857b; font-size:.68rem; letter-spacing:.18em; writing-mode:vertical-rl; text-transform:uppercase; }
@keyframes estienneDrift{ to{ transform:scale(1.09) translate3d(-1.5%,1%,0); } }
.statement{ min-height:90svh; display:flex; align-items:center; }
.statement h2{ max-width:13ch; font-size:clamp(4rem,10vw,10rem); line-height:.82; letter-spacing:-.055em; font-weight:500; }
.statement h2 em{ color:var(--gold); font-weight:400; }
.material-story{ display:grid; grid-template-columns:1.15fr .85fr; min-height:92svh; }
.material-story-media{ min-height:70svh; overflow:hidden; }
.material-story-media img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) saturate(.78); transition:transform 1.2s var(--ease); }
.material-story:hover img{ transform:scale(1.025); }
.material-story-copy{ display:flex; flex-direction:column; justify-content:center; padding:clamp(50px,8vw,120px); background:#0b0b0a; }
.material-story-copy h2{ font-size:clamp(3rem,6.5vw,6.5rem); line-height:.88; letter-spacing:-.04em; margin:.25em 0 .45em; }
.material-story-copy p{ color:var(--ink-soft); font:clamp(1.1rem,1.6vw,1.35rem)/1.65 var(--display); }
.finish-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hairline); }
.finish-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(28px,7vw,110px);align-items:end;padding-block:clamp(62px,9vw,116px) clamp(34px,5vw,64px);background:#090908}
.finish-intro h2{max-width:9ch;margin:.18em 0 0;font-size:clamp(3.2rem,7vw,7rem);line-height:.84;letter-spacing:-.05em;font-weight:500}
.finish-intro-copy p{max-width:38ch;color:var(--ink-soft);font:clamp(1.02rem,1.5vw,1.28rem)/1.55 var(--display)}
.text-link{display:inline-flex;align-items:center;gap:.65em;margin-top:1.25rem;color:var(--ink);font:600 .7rem/1.2 var(--ui);letter-spacing:.16em;text-transform:uppercase;text-decoration:none}
.text-link::after{content:"\2192";color:var(--gold);font-size:1rem;transition:transform .3s var(--ease)}
.text-link:hover::after{transform:translateX(4px)}
.finish-frame{ position:relative; min-height:56svh; overflow:hidden; background:#0b0b0a; display:block; text-decoration:none; }
.finish-frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:brightness(.76) saturate(.88); transition:transform 1s var(--ease),filter 1s var(--ease); }
.finish-frame:hover img{ transform:scale(1.04); filter:brightness(.78) saturate(.9); }
.finish-frame::after{content:"";position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(5,5,4,.78));pointer-events:none}
.finish-frame span{ position:absolute; z-index:1; left:26px; bottom:24px; color:#f4eee3;font:.65rem/1 var(--ui); letter-spacing:.22em; text-transform:uppercase; }
.shop-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hairline);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.shop-path{min-height:190px;padding:clamp(26px,4vw,52px);background:#0c0c0b;color:var(--ink);text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;transition:background .4s var(--ease)}
.shop-path:hover{background:#17140f}.shop-path .estienne-kicker{display:block;margin-bottom:1.4rem}.shop-path h3{font:500 clamp(1.65rem,3vw,2.65rem)/.95 var(--display);letter-spacing:-.025em}
.shop-path p{max-width:34ch;margin-top:.65rem;color:var(--ink-soft);font:1rem/1.5 var(--display)}
.shop-path .arrow{margin-top:1.4rem;color:var(--gold);font-size:1.15rem;transition:transform .3s var(--ease);transform-origin:left center}.shop-path:hover .arrow{transform:translateX(5px)}
.material-proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vw,22px);margin-block:clamp(28px,5vw,64px)}
.material-proof{position:relative;min-height:clamp(250px,34vw,430px);overflow:hidden;background:#0b0b0a;scroll-margin-top:90px}
.material-proof img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.86)}
.material-proof::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(5,5,4,.8))}
.material-proof figcaption{position:absolute;z-index:1;left:22px;right:22px;bottom:20px;color:#f4eee3;font:.65rem/1.2 var(--ui);letter-spacing:.18em;text-transform:uppercase}
.how-promise{background:linear-gradient(135deg,#15130f,#070706 72%)}
.how-promise h2{color:#f4eee3}.how-promise p{color:#d3cabc}.how-promise .n{color:#d5b274}
.atelier-ledger{ display:grid; grid-template-columns:.8fr 1.2fr; min-height:88svh; border-top:1px solid var(--hairline); }
.atelier-copy{ display:flex; flex-direction:column; justify-content:center; padding:clamp(50px,8vw,120px); }
.atelier-copy h2{ font-size:clamp(3rem,7vw,7rem); line-height:.86; letter-spacing:-.045em; margin:.25em 0 .45em; }
.atelier-copy p{ color:var(--ink-soft); font:clamp(1.08rem,1.6vw,1.35rem)/1.65 var(--display); }
.type-drawers{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:minmax(110px,1fr); gap:8px; padding:clamp(30px,5vw,76px); background:#0a0a09; }
.type-drawer{ position:relative; border:1px solid #514737; background:linear-gradient(145deg,#2a231b,#15120f); box-shadow:inset 0 0 28px #0008; }
.type-drawer::before{ content:attr(data-letter); position:absolute; inset:0; display:grid; place-items:center; color:#9f8967; font:italic clamp(2rem,4vw,4.5rem)/1 var(--display); opacity:.72; }
.type-drawer::after{ content:""; position:absolute; left:50%; bottom:12px; width:26px; height:7px; transform:translateX(-50%); border:1px solid #b08a4e; background:#3a2c1c; }
.type-drawer:nth-child(3n){ grid-row:span 2; }
.type-drawer:nth-child(5n){ grid-column:span 2; }
.process-cta{ min-height:78svh; display:grid; place-items:center; text-align:center; border-top:1px solid var(--hairline); background:radial-gradient(circle at 50% 30%,#2a241c,#0a0a09 62%); }
.process-cta h2{ font-size:clamp(4rem,11vw,11rem); line-height:.8; letter-spacing:-.06em; max-width:9ch; margin:0 auto .3em; }
.process-cta p{ max-width:42ch; color:var(--ink-soft); font:clamp(1.1rem,1.8vw,1.45rem)/1.55 var(--display); margin:0 auto 2em; }
.atelier-journey{ --journey:0; --scene:0; height:360svh; position:relative; padding-block:11svh; background:#090908; }
.journey-sticky{ position:sticky; top:11svh; height:78svh; max-height:720px; margin-inline:clamp(14px,3vw,52px); overflow:hidden; isolation:isolate; perspective:1200px; border:1px solid #8e7b5d2e; background:radial-gradient(circle at 62% 42%,#302719 0,#11100d 34%,#080807 72%); }
.journey-sticky::before{ content:""; position:absolute; inset:-12%; opacity:.5; background:radial-gradient(circle at var(--mx,56%) var(--my,42%),#b9955733,transparent 30%); pointer-events:none; }
.journey-world{ position:absolute; inset:3% 2%; transform-style:preserve-3d; transform:translate3d(calc((var(--journey) - .5) * -3vw),calc((var(--journey) - .5) * -1.5vh),calc(var(--journey) * 70px)) rotateX(calc((var(--journey) - .5) * 1.5deg)) scale(.94); }
.journey-rail{ position:absolute; left:8%; right:8%; top:51%; height:2px; background:linear-gradient(90deg,transparent,#655842 12%,#655842 88%,transparent); transform:translateZ(-120px); }
.journey-sheet{ position:absolute; left:53%; top:45%; width:clamp(180px,25vw,360px); aspect-ratio:1.58; transform-style:preserve-3d; transform:translate3d(-50%,-50%,80px) rotateZ(calc(-5deg + var(--journey) * 9deg)) rotateX(calc(58deg - var(--journey) * 38deg)); transition:filter .8s var(--ease); filter:drop-shadow(0 30px 26px #0009); }
.journey-sheet::before{ content:""; position:absolute; inset:0; border-radius:4px; background:linear-gradient(135deg,#f0e8d9,#c7b9a3); box-shadow:inset 0 0 0 1px #fff7,inset 0 0 48px #8c7a5b20; }
.journey-sheet::after{ content:"ESTIENNE"; position:absolute; inset:0; display:grid; place-items:center; color:#742a2a; font:500 clamp(1.5rem,4vw,4.2rem)/1 var(--display); letter-spacing:.12em; opacity:clamp(.08,calc((var(--journey) - .28) * 2.8),.92); text-shadow:0 1px 0 #fff8; }
.journey-fibre{ position:absolute; inset:0; border-radius:4px; opacity:.28; mix-blend-mode:multiply; background-image:repeating-linear-gradient(82deg,transparent 0 5px,#75644d18 6px 7px); }
.journey-layer{ position:absolute; inset:0; pointer-events:none; transform-style:preserve-3d; opacity:0; transition:opacity .65s var(--ease),transform 1s var(--ease); }
.atelier-journey[data-scene="0"] .scene-paper,.atelier-journey[data-scene="1"] .scene-type,.atelier-journey[data-scene="2"] .scene-press,.atelier-journey[data-scene="3"] .scene-foil,.atelier-journey[data-scene="4"] .scene-edge,.atelier-journey[data-scene="5"] .scene-cards,.atelier-journey[data-scene="6"] .scene-invite{ opacity:1; }
.paper-stack{ position:absolute; right:8%; top:17%; width:clamp(170px,26vw,390px); aspect-ratio:1.55; border:1px solid #e7ddca44; background:#ded2bf; box-shadow:-10px 12px #b7a891,-20px 24px #857660,-36px 48px 70px #0008; transform:translateZ(-20px) rotate(-8deg); }
.paper-swatch{ position:absolute; width:clamp(80px,10vw,145px); aspect-ratio:.72; background:#3d1614; border:1px solid #b3946244; box-shadow:0 28px 60px #0007; }
.paper-swatch.a{left:10%;top:18%;transform:translateZ(70px) rotate(9deg)}.paper-swatch.b{left:18%;top:28%;background:#beb09a;transform:translateZ(20px) rotate(-4deg)}
.type-grid{ position:absolute; inset:12% 7% 16% 54%; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; transform:translateZ(-20px) rotateY(-8deg); }
.type-grid i{ display:grid; place-items:center; font:italic clamp(1.5rem,4vw,4rem)/1 var(--display); color:#b99a67; border:1px solid #594b38; background:#1b1712; box-shadow:inset 0 0 22px #000; }
.ink-disc{ position:absolute; left:12%; top:22%; width:clamp(130px,19vw,270px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 35% 30%,#552320,#170a09 55%,#020202); box-shadow:0 35px 80px #000; transform:translateZ(80px); }
.roller{ position:absolute; left:50%; top:48%; width:clamp(280px,52vw,720px); height:clamp(76px,12vw,150px); border-radius:999px; background:linear-gradient(#4a3720,#d3ad68 35%,#70502a 62%,#271b11); box-shadow:0 30px 90px #000, inset 0 0 0 2px #e3c68644; transform:translate3d(-50%,-50%,160px) rotate(calc(var(--journey) * 420deg)); }
.press-frame{ position:absolute; inset:10% 18%; border:clamp(12px,2vw,26px) solid #30291f; border-bottom-width:clamp(42px,7vw,84px); box-shadow:inset 0 0 0 2px #806c4b,0 50px 100px #0009; transform:translateZ(-100px); }
.foil-line{ position:absolute; left:-10%; right:-10%; top:45%; height:clamp(18px,3vw,38px); background:linear-gradient(90deg,transparent,#6b4a20,#f0d390,#8e682f,transparent); box-shadow:0 0 22px #dab66d66; transform:translateZ(210px) rotate(-7deg); }
.foil-orbit{ position:absolute; right:11%; top:18%; width:clamp(100px,16vw,230px); aspect-ratio:1; border:clamp(12px,2vw,28px) solid #b48a4c; border-radius:50%; box-shadow:inset 0 0 22px #000,0 25px 70px #0008; transform:translateZ(10px) rotateY(24deg); }
.edge-loupe{ position:absolute; right:12%; top:16%; width:clamp(150px,25vw,330px); aspect-ratio:1; border:clamp(12px,2vw,24px) solid #b48d51; border-radius:50%; box-shadow:inset 0 0 70px #b88e5140,0 28px 80px #000; transform:translateZ(170px); }
.edge-loupe::after{content:"";position:absolute;width:42%;height:16%;right:-30%;bottom:0;background:linear-gradient(90deg,#8a6635,#d3b271);transform:rotate(42deg);transform-origin:left;border-radius:99px}
.card-fan{ position:absolute; inset:14% 12%; transform-style:preserve-3d; }
.card-fan i{ position:absolute; left:50%; top:50%; width:clamp(180px,27vw,390px); aspect-ratio:1.58; border-radius:4px; background:linear-gradient(135deg,#eadfce,#bfb09a); border:1px solid #fff5; box-shadow:0 32px 70px #0008; }
.card-fan i:nth-child(1){transform:translate3d(-80%,-58%,20px) rotate(-14deg)}.card-fan i:nth-child(2){transform:translate3d(-45%,-48%,80px) rotate(2deg);background:#4d1715}.card-fan i:nth-child(3){transform:translate3d(-10%,-34%,140px) rotate(15deg)}
.invite-ring{ position:absolute; left:50%; top:45%; width:clamp(280px,48vw,650px); aspect-ratio:1; border:1px solid #b4936055; border-radius:50%; transform:translate3d(-50%,-50%,-60px); box-shadow:0 0 100px #ba91552b,inset 0 0 100px #ba91551c; }
.journey-copy{ position:absolute; left:clamp(28px,5vw,72px); top:50%; width:min(31ch,31vw); transform:translateY(-50%); z-index:8; }
.journey-step{ position:absolute; left:0; top:50%; width:100%; opacity:0; transform:translateY(calc(-50% + 14px)); transition:opacity .28s var(--ease),transform .38s var(--ease); pointer-events:none; }
.journey-step.active{ opacity:1; transform:translateY(-50%); pointer-events:auto; }
.journey-step h2{ margin:.18em 0 .25em; font-size:clamp(2.7rem,4.8vw,4.9rem); line-height:.86; letter-spacing:-.052em; font-weight:500; }
.journey-step p:last-child{ color:#c4bbad; font:clamp(.98rem,1.25vw,1.18rem)/1.5 var(--display); max-width:32ch; }
.journey-step .btn{ margin-top:1.2rem; pointer-events:auto; }
.journey-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:1.2rem}.journey-actions .btn{margin-top:0}
.journey-progress{ position:absolute; right:clamp(18px,4vw,56px); top:50%; z-index:9; display:grid; gap:10px; transform:translateY(-50%); }
.journey-progress i{ width:2px; height:clamp(18px,4vh,42px); background:#80725e55; transition:background .4s,height .4s; }
.journey-progress i.active{ background:#d2ad6d; height:clamp(30px,6vh,62px); }
.journey-counter{ position:absolute; right:clamp(18px,4vw,56px); bottom:30px; z-index:9; color:#9d927f; font:.64rem/1 var(--ui); letter-spacing:.2em; }
.journey-exit{position:absolute;left:50%;bottom:18px;z-index:9;transform:translateX(-50%);color:#9d927f;font:.6rem/1 var(--ui);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
.chapter-scene{ --chapter-p:0; position:relative; min-height:72svh; overflow:hidden; display:grid; align-items:end; padding:clamp(90px,12vw,160px) clamp(24px,7vw,100px) clamp(50px,7vw,90px); background:radial-gradient(circle at 65% 35%,#332a1d,#0a0a09 64%); isolation:isolate; perspective:1100px; }
.chapter-scene::before{content:"";position:absolute;inset:-10%;background:radial-gradient(circle at var(--cx,68%) var(--cy,36%),#c39b5a2c,transparent 28%);pointer-events:none}
.chapter-copy{position:relative;z-index:4;max-width:54ch;transform:translateY(calc((1 - var(--chapter-p)) * 22px));opacity:calc(.55 + var(--chapter-p) * .45)}
.chapter-copy .chapter-title{margin:.18em 0 .28em;font:500 clamp(3.5rem,8vw,8.5rem)/.82 var(--display);letter-spacing:-.055em}.chapter-copy p:last-child{max-width:36ch;color:#c7bdaf;font:clamp(1rem,1.5vw,1.32rem)/1.6 var(--display)}
.chapter-object{position:absolute;right:clamp(3%,8vw,10%);top:12%;width:min(43vw,560px);height:66%;transform-style:preserve-3d;transform:translate3d(calc((.5 - var(--chapter-p))*6vw),calc((.5 - var(--chapter-p))*5vh),calc(var(--chapter-p)*110px)) rotateY(calc(-12deg + var(--chapter-p)*17deg));}
.chapter-object i{position:absolute;display:block;box-shadow:0 32px 80px #0009;border:1px solid #d8c49b3d}
.chapter-object i:nth-child(1){inset:10% 8% 18% 10%;background:linear-gradient(135deg,#d8cbb8,#8f806b);transform:translateZ(20px) rotate(-8deg)}
.chapter-object i:nth-child(2){inset:20% 18% 8% 0;background:#431614;transform:translateZ(80px) rotate(7deg)}
.chapter-object i:nth-child(3){inset:4% 0 30% 30%;background:linear-gradient(145deg,#211b14,#7a6038);transform:translateZ(140px) rotate(16deg)}
.chapter-scene[data-chapter="heritage"] .chapter-object i{border:8px solid #3b3023;background:#17130f;box-shadow:inset 0 0 0 1px #9f8558,0 32px 80px #0009}
.chapter-scene[data-chapter="materials"] .chapter-object i:nth-child(1){background:#e1d7c7}.chapter-scene[data-chapter="materials"] .chapter-object i:nth-child(2){background:#6a1f1c}.chapter-scene[data-chapter="materials"] .chapter-object i:nth-child(3){background:#263026}
.chapter-scene[data-chapter="process"] .chapter-object i:nth-child(1){border-radius:50%;background:radial-gradient(circle,#16130f 0 35%,#bc9555 36% 45%,#17130f 46%);}.chapter-scene[data-chapter="process"] .chapter-object i:nth-child(2){height:18%;top:47%;background:linear-gradient(#5b4326,#dbb873,#523819);border-radius:99px}.chapter-scene[data-chapter="process"] .chapter-object i:nth-child(3){background:transparent;border:12px solid #3c3327}
.chapter-scene[data-chapter="collections"] .chapter-object i,.chapter-scene[data-chapter="gallery"] .chapter-object i{aspect-ratio:1.58;height:auto}.chapter-scene[data-chapter="business"] .chapter-object i:nth-child(3){background:linear-gradient(135deg,#d5c5ad,#9a835e)}
.chapter-number{position:absolute;right:clamp(20px,4vw,56px);bottom:28px;color:#9d927f;font:.64rem/1 var(--ui);letter-spacing:.22em;z-index:5}
@media(max-width:820px){
  .menu-panel{ grid-template-columns:repeat(2,minmax(0,1fr)); max-height:calc(100svh - 84px); top:68px; padding:22px; }
  .menu-scene{ min-height:130px; }
  .page-hero h1{ font-size:clamp(3.7rem,17vw,7rem); }
  .material-story{ grid-template-columns:1fr; }
  .material-story-media{ min-height:58svh; }
  .finish-strip{ grid-template-columns:1fr; }
  .finish-frame{ min-height:44svh; }
  .finish-intro{grid-template-columns:1fr}
  .shop-paths{grid-template-columns:1fr}.shop-path{min-height:160px}
  .material-proof-grid{grid-template-columns:1fr}.material-proof{min-height:48svh}
  .atelier-ledger{ grid-template-columns:1fr; }
  .type-drawers{ min-height:70svh; grid-template-columns:repeat(3,1fr); }
  .estienne-index{ display:none; }
}
@media (prefers-reduced-motion: reduce){ .estienne-hero-media img{ animation:none; } }
@media (prefers-reduced-motion: reduce){.chapter-copy,.chapter-object{transform:none}.chapter-copy{opacity:1}}
@media(max-width:560px){
  .topbar{ padding-right:168px; }
  .menu-panel{ left:8px; right:8px; grid-template-columns:1fr; }
  .menu-panel a{ min-height:48px; display:flex; align-items:center; }
  .menu-scene .sheet.one{ right:8%; }.menu-scene .sheet.two{ right:-6%; }.menu-scene .brass{ right:38%; }
  html,body{ overflow-x:clip; }
  .estienne-hero{ min-height:90svh; }
  .estienne-hero-copy{ width:100%; min-width:0; padding-inline:24px; }
  .estienne-hero h1{ width:100%; max-width:100%; font-size:clamp(3.5rem,17.5vw,4.6rem); line-height:.8; overflow-wrap:anywhere; }
  .estienne-hero-lede{ width:calc(100vw - 48px); max-width:calc(100vw - 48px); overflow-wrap:anywhere; }
  .estienne-hero-actions{ display:grid; grid-template-columns:1fr; max-width:280px; }
  .estienne-hero-actions .btn{ width:100%; text-align:center; }
  .estienne-hero-media::after{ background:linear-gradient(0deg,rgba(9,9,8,.95) 5%,rgba(9,9,8,.28) 82%); }
  .finish-intro{padding-inline:24px}
  .statement{ min-height:75svh; }
  .statement h2{ font-size:clamp(3.3rem,17vw,6rem); }
  .configurator-frame{ min-height:78svh; }
  .atelier-journey{height:350svh;padding-block:9svh}.journey-sticky{top:9svh;height:80svh;max-height:none;margin-inline:8px}
  .journey-sticky::after{content:"";position:absolute;z-index:6;left:16px;right:16px;top:54%;height:1px;background:linear-gradient(90deg,transparent,#a98a5944 18%,#a98a5944 82%,transparent);pointer-events:none}
  .journey-world{ inset:34px 0 46% 0; transform:translate3d(calc((var(--journey) - .5) * -5vw),calc((var(--journey) - .5) * -1vh),calc(var(--journey) * 30px)) scale(.82); transform-origin:center; }
  .journey-copy{ left:20px; right:34px; top:57%; bottom:42px; width:auto; transform:none; }
  .journey-step h2{ font-size:clamp(2rem,10vw,3rem); line-height:.88; max-width:11ch; }
  .journey-step p:last-child{ max-width:31ch; font-size:.88rem; line-height:1.38; }
  .journey-step .btn{margin-top:.75rem;padding:.75rem 1rem}.journey-actions{margin-top:.75rem;gap:7px}.journey-actions .btn{margin-top:0;padding:.7rem .8rem;font-size:.62rem}
  .journey-sheet{ left:51%; top:48%; width:52vw; }
  .journey-progress{ left:18px; right:18px; top:17px; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; transform:none; }
  .journey-progress i,.journey-progress i.active{width:auto;height:2px}
  .journey-counter{right:16px;bottom:14px}.journey-exit{display:none}
  .type-grid{ inset:8% 3% 10% 46%; }.ink-disc{left:5%;top:8%}.press-frame{inset:5% 8% 8%}.roller{top:49%}.edge-loupe{right:4%;top:5%}.card-fan{inset:4% 4% 8%}
  .chapter-scene{min-height:78svh;padding:90px 24px 44px;align-items:end}.chapter-object{width:68vw;height:48%;right:-8%;top:8%}.chapter-copy{max-width:90%;}.chapter-copy .chapter-title{font-size:clamp(3rem,14vw,5.2rem);max-width:9ch}
  .consent-panel{left:10px;bottom:10px;width:calc(100vw - 20px);padding:12px}
  .consent-actions{display:grid;grid-template-columns:1fr 1fr}
  .consent-actions button{min-width:0;padding:.6rem .45rem;font-size:.62rem}
}
@media (prefers-reduced-motion: reduce){
  .atelier-journey{height:auto;padding-block:0}
  .journey-sticky{position:relative;top:auto;height:auto;max-height:none;margin:0;padding:72px 0}
  .journey-sticky::after{display:none}
  .journey-world{position:relative;inset:auto;height:48svh;transform:none}
  .journey-layer{display:none}.scene-cards{display:block;opacity:1}
  .journey-sheet{transform:translate3d(-50%,-50%,0) rotate(-3deg)}
  .journey-copy{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;transform:none;padding:0 24px}
  .journey-step{position:relative;top:auto;opacity:1;transform:none;padding:34px 0;border-top:1px solid var(--hairline)}
  .journey-progress,.journey-counter,.journey-exit{display:none}
}
