@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/CormorantGaramond.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/CormorantGaramond-Italic.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/Jost.woff2) format('woff2');}

:root{
  --ivory:#F7F3EC; --paper:#EFE8DC; --ink:#141210; --ink-2:#3A3530; --mute:#6F675D;
  --champagne:#B89B6A; --champagne-soft:#D9C7A3; --wine:#6E1E3A; --line:rgba(20,18,16,.14);
  --serif:'Cormorant Garamond', 'Times New Roman', serif; --sans:'Jost', 'Helvetica Neue', Arial, sans-serif;
  --pad:clamp(20px,5.5vw,72px); --max:1320px; --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
:focus-visible{outline:1px solid var(--champagne);outline-offset:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--ivory);padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--mute);margin:0 0 18px}
.eyebrow.light{color:var(--champagne-soft)}
h1,h2,h3{font-family:var(--serif);font-weight:300;line-height:1.05;letter-spacing:-.005em;margin:0}
h2{font-size:clamp(40px,8.5vw,76px)}
h2 em,h1 em{font-style:italic;font-weight:300}
.lede{font-family:var(--serif);font-size:clamp(22px,4.6vw,30px);line-height:1.35;font-weight:300;color:var(--ink-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:0 30px;font-family:var(--sans);font-size:11.5px;font-weight:400;letter-spacing:.26em;text-transform:uppercase;border:1px solid var(--ink);background:var(--ink);color:var(--ivory);transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--ivory)}
.btn.light{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn.light:hover{background:transparent;color:var(--ivory)}
.btn.light.ghost{background:transparent;color:var(--ivory)}
.btn.light.ghost:hover{background:var(--ivory);color:var(--ink)}
.link{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;font-weight:400;border-bottom:1px solid currentColor;padding-bottom:4px;transition:color .3s}
.link:hover{color:var(--champagne)}

/* announcement + header */
.announce{background:var(--ink);color:var(--champagne-soft);text-align:center;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;padding:10px var(--pad);line-height:1.5}
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,243,236,.92);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid transparent;transition:border-color .4s}
.site-header.scrolled{border-bottom-color:var(--line)}
.bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:68px;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.brand{justify-self:center;display:block;line-height:0}
.brand img{width:92px;height:auto}
.nav-desk{display:none}
.nav-desk a,.bar-cta{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:400}
.bar-cta{justify-self:end;border-bottom:1px solid var(--ink);padding-bottom:3px}
.menu-btn{justify-self:start;background:none;border:0;padding:12px 12px 12px 0;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:7px}
.menu-btn span{display:block;width:26px;height:1px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
.menu-open .menu-btn span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-open .menu-btn span:last-child{transform:translateY(-4px) rotate(-45deg)}
.sheet{position:fixed;inset:0;top:0;z-index:40;background:var(--ivory);padding:130px var(--pad) 40px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s}
.menu-open .sheet{opacity:1;visibility:visible}
.sheet nav a{display:block;font-family:var(--serif);font-size:44px;font-weight:300;line-height:1.25;padding:2px 0}
.sheet nav a em{font-size:.5em;color:var(--mute);font-style:normal;font-family:var(--sans);letter-spacing:.2em;vertical-align:middle;margin-right:14px}
.sheet .sheet-foot{font-size:13px;color:var(--mute);line-height:1.9}
.menu-open{overflow:hidden}
@media (min-width:980px){
  .menu-btn{display:none}
  .nav-desk{display:flex;gap:34px;justify-self:start}
  .nav-desk a{position:relative}
  .nav-desk a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
  .nav-desk a:hover::after{transform:scaleX(1)}
  .bar{height:84px}
  .brand img{width:118px}
}

/* hero */
.hero{display:grid}
@keyframes settle{from{transform:scale(1.08);opacity:.2}to{transform:scale(1);opacity:1}}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero .ctas .btn{flex:1 1 200px}
.fade-in{animation:fadeup 1.4s var(--ease) both}
.d1{animation-delay:.25s}.d2{animation-delay:.45s}.d3{animation-delay:.65s}.d4{animation-delay:.85s}
@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (min-width:980px){
  .hero .ctas .btn{flex:0 0 auto}
}

/* sections */
section{position:relative}
.section{padding:clamp(84px,14vw,168px) 0}
.intro{text-align:center}
.intro .lede{max-width:22em;margin:28px auto 0}
.intro .body{max-width:34em;margin:26px auto 0;color:var(--mute)}
.rule{width:1px;height:64px;background:var(--champagne);margin:0 auto 40px}
.mono{font-family:var(--serif);font-style:italic;color:var(--champagne);font-size:20px}

/* collection */
.collection{background:var(--paper)}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(40px,7vw,72px)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 14px}
.card{display:block}
.card .ph{position:relative;overflow:hidden;aspect-ratio:3/4;background:#E4DCCD}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.card:hover .ph img{transform:scale(1.045)}
.card .meta{padding-top:16px}
.card .kind{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--mute)}
.card h3{font-size:clamp(28px,6.4vw,36px);margin:4px 0 2px}
.card .price{font-size:13.5px;letter-spacing:.06em;color:var(--ink-2)}
@media (min-width:820px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:64px 28px}.card:nth-child(3n+2){transform:translateY(56px)}.grid{padding-bottom:56px}}

/* editorial band */
.band{position:relative;min-height:88svh;display:grid;align-items:end;color:var(--ivory);overflow:hidden;background:#0d0c0b}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:14% 22%;opacity:.92}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,12,11,0) 35%,rgba(13,12,11,.82) 100%)}
.band .wrap{position:relative;z-index:1;padding-bottom:clamp(56px,10vw,120px);width:100%}
.band blockquote{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(38px,8vw,84px);line-height:1.04;max-width:13em}
.band blockquote em{color:var(--champagne-soft)}

/* story */
.story .cols{display:grid;gap:44px}
.story .fig{aspect-ratio:4/5;overflow:hidden;background:var(--paper)}
.story .fig img{width:100%;height:100%;object-fit:cover;object-position:30% 25%}
.story p{color:var(--ink-2)}
.story .sig{margin-top:30px;display:flex;align-items:center;gap:18px}
.story .sig img{width:84px}
@media (min-width:900px){.story .cols{grid-template-columns:1fr 1fr;gap:96px;align-items:center}}

/* synthetic */
.synthetic{background:var(--ink);color:var(--ivory)}
.synthetic h2{color:var(--ivory)}
.synthetic .intro-t{color:rgba(247,243,236,.7);max-width:32em;margin-top:24px}
.pillars{display:grid;gap:0;margin-top:clamp(48px,8vw,88px);border-top:1px solid rgba(247,243,236,.16)}
.pillar{padding:34px 0;border-bottom:1px solid rgba(247,243,236,.16);display:grid;grid-template-columns:56px 1fr;gap:6px 14px}
.pillar .n{font-family:var(--serif);font-style:italic;color:var(--champagne);font-size:22px;line-height:1.3}
.pillar h3{font-size:32px;color:var(--ivory)}
.pillar p{grid-column:2;margin:6px 0 0;color:rgba(247,243,236,.68);font-size:15px}
@media (min-width:900px){.pillars{grid-template-columns:repeat(3,1fr);border-top:0;gap:48px}.pillar{border:0;border-top:1px solid rgba(247,243,236,.22);grid-template-columns:1fr;padding-top:30px}.pillar p{grid-column:1}}

/* care */
.care .steps{list-style:none;margin:clamp(40px,7vw,72px) 0 0;padding:0;display:grid;gap:0;counter-reset:s}
.care .steps li{display:grid;grid-template-columns:52px 1fr;gap:4px 12px;padding:26px 0;border-top:1px solid var(--line)}
.care .steps li:last-child{border-bottom:1px solid var(--line)}
.care .steps .n{font-family:var(--serif);font-style:italic;color:var(--champagne);font-size:22px}
.care .steps h3{font-size:27px}
.care .steps p{grid-column:2;margin:4px 0 0;color:var(--mute);font-size:15px}
.care .note{margin-top:30px;color:var(--mute);font-size:14px}
@media (min-width:900px){.care .steps{grid-template-columns:1fr 1fr;column-gap:72px}.care .steps li:nth-last-child(2){border-bottom:1px solid var(--line)}}

/* faq */
.faq{background:var(--paper)}
.faq .cols{display:grid;gap:40px}
@media (min-width:900px){.faq .cols{grid-template-columns:5fr 7fr;gap:96px}}
details{border-top:1px solid var(--line)}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-family:var(--serif);font-size:24px;line-height:1.25}
summary::-webkit-details-marker{display:none}
summary .pm{flex:0 0 auto;width:14px;height:14px;position:relative}
summary .pm::before,summary .pm::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--ink);transition:transform .4s var(--ease)}
summary .pm::after{transform:rotate(90deg)}
details[open] summary .pm::after{transform:rotate(0)}
details .ans{padding:0 0 26px;color:var(--mute);font-size:15px;max-width:38em}
details .ans a{border-bottom:1px solid currentColor}

/* consult */
.consult{display:grid;background:var(--ink);color:var(--ivory)}
.consult .fig{aspect-ratio:1/1;overflow:hidden}
.consult .fig img{width:100%;height:100%;object-fit:cover}
.consult .copy{padding:clamp(64px,12vw,140px) var(--pad)}
.consult h2{color:var(--ivory)}
.consult p{color:rgba(247,243,236,.72);max-width:30em}
.consult .ctas{display:flex;flex-direction:column;gap:12px;margin-top:34px;max-width:420px}
.consult .contact-list{margin-top:40px;display:grid;gap:18px;font-size:14px}
.consult .contact-list span{display:block;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--champagne-soft)}
.consult .contact-list a{border-bottom:1px solid rgba(247,243,236,.3)}
.consult .access{margin-top:34px;font-size:13px;color:rgba(247,243,236,.5)}
@media (min-width:900px){.consult{grid-template-columns:1fr 1fr}.consult .fig{aspect-ratio:auto;min-height:640px;position:relative}.consult .fig img{position:absolute;inset:0}.consult .copy{align-self:center;padding-left:80px}}

/* footer */
.site-footer{background:#0d0c0b;color:rgba(247,243,236,.62);padding:72px 0 40px;font-size:13.5px}
.site-footer .top{display:grid;gap:40px}
.site-footer img{width:120px}
.site-footer h4{font-family:var(--sans);font-weight:400;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--champagne-soft);margin:0 0 14px}
.site-footer ul{list-style:none;margin:0;padding:0;line-height:2.1}
.site-footer a:hover{color:var(--ivory)}
.site-footer .legal{margin-top:56px;padding-top:24px;border-top:1px solid rgba(247,243,236,.12);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:11.5px;letter-spacing:.06em}
@media (min-width:900px){.site-footer .top{grid-template-columns:2fr 1fr 1fr 1fr}}

/* product page */
.crumbs{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);padding-top:22px;padding-bottom:22px}
.crumbs a{border-bottom:1px solid transparent}.crumbs a:hover{border-bottom-color:currentColor}
.pdp{display:grid;gap:0}
.pdp .media{background:var(--paper);overflow:hidden}
.pdp .media img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;animation:settle 2.2s var(--ease) both}
.pdp .info{padding:36px var(--pad) 72px}
.pdp .kind{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--mute)}
.pdp h1{font-size:clamp(64px,17vw,120px);line-height:.95;margin:10px 0 8px}
.pdp .price{font-size:18px;letter-spacing:.04em;color:var(--ink-2)}
.pdp .desc{font-family:var(--serif);font-size:23px;line-height:1.4;color:var(--ink-2);margin:28px 0 32px}
.pdp .ctas{display:grid;gap:12px;margin-bottom:40px}
.pdp .ship-note{font-size:13px;color:var(--mute);margin:-24px 0 36px}
@media (min-width:980px){
  .pdp{grid-template-columns:7fr 5fr;max-width:var(--max);margin:0 auto;padding:0 var(--pad);gap:72px;align-items:start}
  .pdp .media{position:sticky;top:100px}
  .pdp .info{padding:20px 0 80px}
}
.more{background:var(--paper)}
.more .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:820px){.more .grid{grid-template-columns:repeat(3,minmax(0,1fr))}.more .card:nth-child(3n+2){transform:none}.more .grid{padding-bottom:0}}
.more .grid .card:nth-child(3){display:none}
@media (min-width:820px){.more .grid .card:nth-child(3){display:block}}


/* ---------- hero: full-bleed film ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1fr);background:var(--ivory)}
.hero-media{grid-area:1/1;position:relative;overflow:hidden;height:min(78svh,740px);min-height:500px;background:#2a241e}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;animation:settle 2.4s var(--ease) both}
.hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(18,15,12,0) 38%,rgba(18,15,12,.30) 62%,rgba(18,15,12,.78) 100%)}
.hero-copy{display:contents}
.hero-title{grid-area:1/1;align-self:end;position:relative;z-index:2;padding:0 var(--pad) 30px;color:var(--ivory)}
.hero-title .eyebrow{color:var(--champagne-soft);margin-bottom:14px}
.hero h1{font-size:clamp(40px,10.6vw,96px);line-height:1;color:var(--ivory);text-shadow:0 2px 28px rgba(0,0,0,.22)}
.hero h1 .l2{display:block;font-style:italic;color:var(--champagne-soft)}
.hero-more{padding:30px var(--pad) 60px;background:var(--ivory)}
.hero p.sub{margin:0 0 28px;max-width:30em;color:var(--mute);font-size:15.5px}
@media (min-width:980px){
  .hero{background:#2a241e}
  .hero-media{height:calc(100svh - 121px);min-height:620px;max-height:1000px}
  .hero-media::after{background:linear-gradient(90deg,rgba(18,15,12,.66) 0%,rgba(18,15,12,.34) 38%,rgba(18,15,12,0) 64%),linear-gradient(180deg,rgba(18,15,12,0) 55%,rgba(18,15,12,.38) 100%)}
  .hero-copy{--hl:max(var(--pad),calc((100vw - var(--max))/2 + var(--pad)));display:block;grid-area:1/1;align-self:end;position:relative;z-index:2;width:calc(var(--hl) + min(700px,47vw));padding:0 0 clamp(64px,10vh,128px) var(--hl)}
  .hero-title{padding:0}
  .hero h1{font-size:clamp(58px,5.4vw,96px)}
  .hero-more{background:none;padding:28px 0 0}
  .hero p.sub{color:rgba(247,243,236,.84);margin-bottom:34px}
  .hero .btn{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
  .hero .btn:hover{background:transparent;color:var(--ivory)}
  .hero .btn.ghost{background:transparent;color:var(--ivory)}
  .hero .btn.ghost:hover{background:var(--ivory);color:var(--ink)}
}


/* desktop hero composed from the portrait film (used when no wide cut is present) */
@media (min-width:980px){
  .hero.portrait-film .hero-media{background:radial-gradient(120% 90% at 78% 40%,#4a3d31 0%,#2b231c 46%,#17130f 100%)}
  .hero.portrait-film .hero-video{left:auto;right:0;width:52%;object-position:50% 30%;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 26%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 26%,#000 100%)}
  .hero.portrait-film .hero-media::after{background:linear-gradient(90deg,rgba(18,15,12,.55) 0%,rgba(18,15,12,.2) 45%,rgba(18,15,12,0) 62%),linear-gradient(180deg,rgba(18,15,12,0) 60%,rgba(18,15,12,.35) 100%)}
}

/* ---------- promise band: hair in motion ---------- */
.band-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;opacity:.95}

/* ---------- slow ken burns + parallax on editorial stills ---------- */
.story .fig{position:relative}
.story .plx{position:absolute;inset:-7% 0;will-change:transform}
.story .fig img{object-position:46% 40%}
.kb{animation:kenburns 22s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes kenburns{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.13) translate3d(-1.5%,-1%,0)}}

/* ---------- scroll reveal fallback (IntersectionObserver, older Safari) ---------- */
.io .reveal{opacity:0;transform:translate3d(0,26px,0);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.io .reveal.in{opacity:1;transform:none}
.io .grid .reveal:nth-child(3n+2){transition-delay:.12s}.io .grid .reveal:nth-child(3n){transition-delay:.24s}
@media (min-width:820px){.io .grid .card.reveal:nth-child(3n+2){transform:translate3d(0,82px,0)}.io .grid .card.reveal.in:nth-child(3n+2){transform:translateY(56px)}.io .more .grid .card.reveal.in:nth-child(3n+2){transform:none}}

@media (prefers-reduced-motion:reduce){
  .io .reveal{opacity:1;transform:none}
  .kb{animation:none;transform:none}
  .story .plx{transform:none!important}
}

/* scroll reveal (scroll-driven, no script) */
@supports (animation-timeline: view()){
  .reveal{animation:fadeup linear both;animation-timeline:view();animation-range:entry 0% entry 38%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

.care .note a{border-bottom:1px solid currentColor}
a[href^="tel:"],a[href^="mailto:"]{white-space:nowrap}

@media (min-width:980px) and (max-width:1199px){.nav-desk{gap:20px}.nav-desk a{letter-spacing:.15em}.bar-cta{letter-spacing:.18em}}

/* never show the native play button / controls on the films (iPhone Low Power Mode) */
video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none;opacity:0!important}
video::-webkit-media-controls,video::-webkit-media-controls-panel,video::-webkit-media-controls-overlay-play-button{display:none!important;-webkit-appearance:none;opacity:0!important}
video.hero-video,video.band-video{pointer-events:none}
