@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant.woff2') format('woff2');font-weight:400 500;font-display:swap}
:root{color-scheme:dark;--bg:#17110d;--ink:#f6ead5;--muted:#b7a48c;--accent:#d9ae73;--line:#483a2d;font-family:Manrope,Arial,sans-serif;background:var(--bg);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;flex-direction:column;align-items:center}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{opacity:.23;cursor:default}button, a{-webkit-tap-highlight-color:transparent}h1,h2,p,figure{margin:0}img{display:block;width:100%;height:100%;object-fit:cover}button{touch-action:manipulation}.chrome{width:min(1440px,100%);padding-left:32px;padding-right:32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar{height:66px;flex:none}.brand{font-size:11px;text-transform:uppercase;letter-spacing:.19em;color:var(--muted)}.quiet{border:0;background:none;padding:12px 0;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:12px;min-height:44px}.quiet:hover{color:var(--ink)}.quiet span[aria-hidden]{font-size:19px}.stage{position:relative;width:min(1400px,calc(100vw - 64px),calc((100svh - 144px)*16/9));aspect-ratio:16/9;flex:none;margin:auto 0;overflow:hidden;container-type:inline-size;touch-action:pan-y}.slide{position:absolute;inset:0;background:var(--bg);overflow:hidden}.slide[hidden]{display:none!important}.eyebrow{font-size:clamp(11px,1cqw,15px);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);line-height:1.5}.title{font-size:clamp(36px,6.4cqw,96px);line-height:1.07;font-weight:400;letter-spacing:-.055em;text-wrap:balance}.serif{font-family:Cormorant,Georgia,serif;font-weight:400;letter-spacing:-.025em}.subtitle{font-size:clamp(20px,2.7cqw,40px);line-height:1.3}.slide .eyebrow{position:relative;z-index:2}.controls{min-height:70px;flex:none}.chapter-button{max-width:60%;text-align:left}.navigation{display:flex;align-items:center;gap:12px}.arrow{border:1px solid var(--line);background:transparent;border-radius:50%;width:44px;height:44px;font-size:22px;line-height:1}.arrow:hover:not(:disabled){background:#2e2116;border-color:var(--accent)}.counter{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:52px;text-align:center}.progress{width:100%;height:2px;background:#2c2118;flex:none}.progress>div{height:100%;background:var(--accent)}
/* A quiet opening gives the speaker room to ask the question. */
.question{display:flex;flex-direction:column;justify-content:center;padding:7%;background:radial-gradient(ellipse at 90% 100%,#3b291a 0,transparent 58%),var(--bg)}.question .eyebrow{margin-bottom:5%}.question .title{font-size:7.5cqw;max-width:92%}.question .closing{font-size:5.9cqw;max-width:94%}.question .note{margin-top:7%;font-size:clamp(12px,1.4cqw,21px);color:var(--muted)}
/* Full-bleed images retain the chosen dark-room direction. */
.hero .hero-image{position:absolute;inset:0 0 0 25%}.hero .hero-image img{object-position:var(--focus,50% 50%)}.hero .veil{position:absolute;inset:0;background:linear-gradient(90deg,#17110d 0%,rgba(23,17,13,.91) 24%,rgba(23,17,13,.36) 65%,rgba(23,17,13,.07) 100%)}.hero .copy{position:absolute;inset:11% 7%;display:flex;flex-direction:column;align-items:flex-start}.hero .title{margin-top:auto;font-size:9.6cqw;max-width:88%}.hero .subtitle{margin-top:3%;margin-bottom:8%;max-width:70%}.hero.smoke .hero-image{left:45%}.hero.smoke .hero-image img{object-fit:contain}.hero.smoke .title{font-size:7cqw;margin-bottom:8%}.hero.amber .title{font-size:13cqw}.hero.amber .hero-image img{filter:brightness(.78) saturate(.8)}.hero.hotel .title{font-size:8.4cqw}.hero.hotel .hero-image{left:15%}
/* Photographs sit on the dark field, without crushing their highlights. */
.gallery{padding:5% 6%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:7%}.gallery .heading{display:flex;align-items:flex-end;justify-content:space-between;gap:4%}.gallery .heading .title{font-size:4.4cqw}.gallery .heading .eyebrow{max-width:29%;text-align:right}.gallery .pictures{display:grid;gap:3%;min-height:0}.gallery .pictures.two{grid-template-columns:1fr 1fr}.gallery .pictures.three{grid-template-columns:1fr 1fr 1fr}.gallery figure{min-width:0;min-height:0;position:relative}.gallery figure img{object-fit:contain}.gallery .crop img{object-fit:cover}.gallery figcaption{font-size:clamp(11px,1.1cqw,17px);color:var(--muted);margin-top:10px}.gallery.captioned .pictures{padding-bottom:26px}.gallery.travels .pictures{grid-template-columns:1fr 1.35fr}.gallery.travels figure:first-child img{object-fit:cover;object-position:50% 40%}.gallery.interiors .pictures{grid-template-columns:.8fr 1.2fr}.gallery.materials .pictures{grid-template-columns:1fr 1fr 1fr}.gallery .resin-pair{display:grid;grid-template-rows:1fr 1fr;gap:10px;height:100%;min-height:0}.gallery .resin-pair img{object-fit:cover}
.editorial{padding:5.5% 6%;display:grid;grid-template-columns:40% 1fr;gap:5%}.editorial .copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.editorial .eyebrow{margin-bottom:12%}.editorial .title{font-size:6cqw}.editorial .subtitle{margin-top:8%;color:var(--muted);font-size:2.2cqw}.editorial .photo{min-height:0;min-width:0}.editorial .photo img{object-fit:contain}.editorial.vanilla .photo img{object-fit:cover;object-position:55% center}.editorial.flacons{grid-template-columns:34% 1fr}.editorial.flacons .title{font-size:5cqw}.editorial.pair{grid-template-columns:27% 1fr;gap:6%}.editorial.pair .title{font-size:4.5cqw}.editorial.pair .pair-images{display:grid;grid-template-columns:1fr .8fr;gap:4%;align-items:center;min-height:0}.editorial.pair figure{height:100%;min-height:0}.editorial.pair figure:nth-child(2){height:66%}.editorial.pair img{object-fit:contain}.editorial.resins .photos{display:grid;grid-template-columns:1fr .7fr;gap:5%;align-items:center;min-height:0}.editorial.resins .photos figure{min-height:0;height:75%}.editorial.resins img{object-fit:contain}
.perfumes{padding:5% 6%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:7%}.perfumes .heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10%}.perfumes .title{font-size:4.3cqw}.perfumes .eyebrow{text-align:right}.perfume-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.6%;min-height:0;padding-bottom:30px}.perfume-grid figure{height:100%;min-height:0;min-width:0}.perfume-grid img{object-fit:cover}.perfume-grid figcaption{margin-top:12px;color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums}
dialog{width:min(640px,calc(100vw - 32px));max-height:85svh;background:#20170f;color:var(--ink);border:1px solid var(--line);padding:24px}dialog::backdrop{background:#000a}.dialog-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dialog-heading h2{font-size:26px;font-weight:400}#chapter-list{display:grid;gap:4px}#chapter-list button{background:none;border:0;border-bottom:1px solid var(--line);padding:17px 0;text-align:left;display:flex;gap:20px;font-size:16px}#chapter-list button:hover{color:var(--accent)}#chapter-list button span{color:var(--muted);font-size:12px;padding-top:3px}.hint{color:var(--muted);font-size:11px;line-height:1.6;margin-top:22px}
@media(max-width:700px){
  body{min-height:100svh}.chrome{padding-left:20px;padding-right:20px}.topbar{height:56px}.brand{font-size:10px;letter-spacing:.14em}#fullscreen{font-size:0;gap:0}#fullscreen span{font-size:22px}.stage{width:100%;height:calc(100svh - 132px);min-height:460px;aspect-ratio:auto;margin:0;container-type:inline-size}.controls{min-height:74px;padding-bottom:env(safe-area-inset-bottom,0px);gap:10px}.chapter-button{font-size:11px;line-height:1.4;max-width:49%;gap:7px}.navigation{gap:7px}.counter{min-width:43px;font-size:11px}.arrow{width:42px;height:42px}.eyebrow{font-size:10px;letter-spacing:.12em}.title{font-size:12cqw}.subtitle{font-size:26px}.question{padding:28px}.question .eyebrow{margin-bottom:32px}.question .title,.question .closing{font-size:12.5cqw;max-width:100%;line-height:1.1}.question .note{margin-top:40px;font-size:13px;line-height:1.5;max-width:85%}
  .hero .hero-image,.hero.hotel .hero-image,.hero.smoke .hero-image{inset:0 0 18% 0}.hero .veil{background:linear-gradient(0deg,#17110d 0%,rgba(23,17,13,.96) 18%,rgba(23,17,13,.5) 49%,rgba(23,17,13,.04) 78%)}.hero .copy{inset:24px 28px}.hero .title,.hero.hotel .title{font-size:15cqw;line-height:1.02;max-width:100%}.hero .subtitle{font-size:26px;max-width:100%;margin-top:18px;margin-bottom:14px}.hero.amber .title{font-size:22cqw}.hero.smoke .title{font-size:14cqw;margin-bottom:16px}.hero.smoke .hero-image img{object-position:center top}.hero .eyebrow{text-shadow:0 1px 12px #000}
  .gallery{padding:24px 24px 32px;gap:22px}.gallery .heading{display:block}.gallery .heading .title{font-size:9.3cqw;line-height:1.12}.gallery .heading .eyebrow{font-size:10px;text-align:left;max-width:none;margin-top:14px}.gallery .pictures.two,.gallery.travels .pictures,.gallery.interiors .pictures{grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:16px}.gallery.travels .pictures{grid-template-columns:.8fr 1.2fr;grid-template-rows:1fr}.gallery.travels .pictures figure{height:85%;align-self:center}.gallery .pictures.three{grid-template-columns:repeat(3,1fr);gap:10px;align-items:center}.gallery .pictures.three figure{height:73%}.gallery.materials{padding:24px 20px 30px}.gallery.materials .pictures{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:28px 14px}.gallery.materials .pictures figure{height:100%}.gallery.materials .pictures figure:last-child{grid-column:1/3}.gallery.materials .pictures figure:last-child img{object-fit:cover;object-position:center 45%}.gallery.materials .resin-pair{grid-template-columns:1fr .65fr;grid-template-rows:1fr;gap:6px}.gallery.materials .resin-pair img{object-fit:cover}.gallery figcaption{font-size:11px;margin-top:7px}
  .editorial,.editorial.flacons,.editorial.pair{padding:24px 24px 32px;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:26px}.editorial .eyebrow{margin-bottom:15px}.editorial .title,.editorial.flacons .title,.editorial.pair .title{font-size:10.5cqw;line-height:1.08}.editorial .subtitle{font-size:22px;margin-top:14px}.editorial .photo img{object-fit:contain}.editorial.vanilla .photo img{object-fit:cover}.editorial.pair .pair-images{grid-template-columns:1fr .82fr;gap:16px}.editorial.pair figure:nth-child(2){height:70%}.editorial.resins .photos{grid-template-columns:1fr .75fr;gap:14px}.editorial.resins .photos figure{height:85%}
  .perfumes{padding:24px 24px 32px;gap:24px}.perfumes .heading{display:block}.perfumes .title{font-size:9.2cqw;line-height:1.1}.perfumes .eyebrow{font-size:10px;text-align:left;margin-top:14px}.perfume-grid{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:28px 16px;padding-bottom:18px}.perfume-grid figcaption{font-size:11px;margin-top:6px}.perfume-grid img{object-fit:cover}
}
@media(max-width:370px){.chrome{padding-left:14px;padding-right:14px}.navigation{gap:4px}.chapter-button{max-width:44%}.stage{min-height:420px}.hero .copy{left:24px;right:24px}}
@media(max-height:550px) and (min-width:701px){.topbar{height:40px}.controls{min-height:54px}.stage{width:min(calc(100vw - 48px),calc((100svh - 100px)*16/9))}.arrow{width:36px;height:36px}.title{min-font-size:24px}}

/* Native vertical paging: touch and trackpad keep their normal browser behavior. */
html,body{height:100%;overflow:hidden}
body{height:100dvh;min-height:0}
.stage{width:100%;height:auto;min-height:0;aspect-ratio:auto;flex:1 1 0;margin:0;overflow-x:hidden;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;overscroll-behavior-y:contain;container-type:normal;-webkit-overflow-scrolling:touch}
.stage::-webkit-scrollbar{display:none}
.scene{position:relative;display:flex;justify-content:center;align-items:center;height:100%;width:100%;scroll-snap-align:start;scroll-snap-stop:always}
.slide{position:relative;inset:auto;width:min(1400px,calc(100% - 64px),calc((100dvh - 144px)*16/9));height:auto;aspect-ratio:16/9;flex:none;container-type:inline-size}
.scroll-cue{position:absolute;bottom:6%;left:7%;display:flex;align-items:center;gap:14px;color:var(--muted);font-size:clamp(11px,1.2cqw,16px)}
.scroll-cue span{font-size:22px}
.scene .title,.scene .subtitle,.scene .heading,.scene .eyebrow,.scene .note,.scene .scroll-cue{opacity:.35;translate:0 12px;transition:opacity .6s ease,translate .7s cubic-bezier(.22,.61,.36,1)}
.scene .heading .title,.scene .heading .eyebrow{opacity:1;translate:none;transition:none}
.scene figure{opacity:.72;translate:0 10px;transition:opacity .75s ease,translate .8s cubic-bezier(.22,.61,.36,1)}
.scene .hero-image{translate:none;overflow:hidden;z-index:0}
.hero .veil{z-index:1;pointer-events:none}
.hero .copy{z-index:2}
.scene .hero-image img{scale:1.025;transition:scale 1.25s cubic-bezier(.22,.61,.36,1)}
.scene.is-active .title,.scene.is-active .subtitle,.scene.is-active .heading,.scene.is-active .eyebrow,.scene.is-active .note,.scene.is-active .scroll-cue,.scene.is-active figure{opacity:1;translate:0 0}
.scene.is-active .hero-image img{scale:1}
.scene.is-active .subtitle,.scene.is-active .note{transition-delay:70ms}
.scene.is-active figure:nth-child(2){transition-delay:45ms}
.scene.is-active figure:nth-child(3){transition-delay:90ms}
.scene.is-active figure:nth-child(4){transition-delay:135ms}
.progress>div{transition:width .45s ease}
.arrow{transition:background-color .2s,border-color .2s,opacity .2s}
@media(max-width:700px){
  .slide{width:100%;height:100%;aspect-ratio:auto;min-height:0}
  .stage{min-height:0;height:auto}
  .scroll-cue{left:28px;bottom:28px;font-size:12px}
  .controls{padding-bottom:max(0px,env(safe-area-inset-bottom))}
}
@media(max-height:550px) and (min-width:701px){
  .stage{width:100%}
  .slide{width:min(calc(100% - 48px),calc((100dvh - 100px)*16/9))}
}
@media(prefers-reduced-motion:reduce){
  .scene *,.progress>div,.arrow{transition:none!important;animation:none!important;translate:none!important;scale:1!important}
  .scene .title,.scene .subtitle,.scene .heading,.scene .eyebrow,.scene .note,.scene .scroll-cue,.scene figure{opacity:1}
}

/* A light, reversible photographic treatment, tuned by subject. */
.slide{isolation:isolate}
.gallery img,.editorial img{filter:brightness(.94) saturate(.9) sepia(.08)}
.editorial.pair .pair-images figure:first-child img{filter:brightness(.94) contrast(.97) sepia(.13)}
.perfume-grid img{filter:brightness(.97) saturate(.96) sepia(.035)}
.hero.hotel img{filter:brightness(.95) saturate(.88) sepia(.055)}
.hero.amber .hero-image img{filter:brightness(.84) saturate(.78) sepia(.035)}
.gallery img,.editorial img,.perfume-grid img{
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 2%,#000 98%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 2%,#000 98%,transparent 100%);
}
.hero .hero-image{
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 15%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 15%,#000 100%);
}
.hero.smoke .hero-image{mix-blend-mode:screen}

/* Slow ambient motion only runs on the current slide. No text is animated at idle. */
.slide::before{
  content:"";position:absolute;inset:-20%;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at 76% 75%,rgba(201,140,71,.11),transparent 57%);
  opacity:.55;
}
.hero::before{content:none}
.scene.is-active .slide::before{animation:ambient-light 22s ease-in-out infinite alternate}
.scene.is-active .hero-image img{animation:ambient-camera 16s ease-in-out -4s infinite alternate}
.scene.is-active .smoke .hero-image img{animation:smoke-camera 14s ease-in-out -3s infinite alternate;transform-origin:50% 42%}
.scene.is-active .hotel .hero-image img{animation:hotel-camera 18s ease-in-out -5s infinite alternate}
.scene.is-active .gallery img,.scene.is-active .editorial img,.scene.is-active .perfume-grid img{
  animation:ambient-photo 18s ease-in-out infinite alternate;
}
.scene.is-active figure:nth-child(even) img{animation-duration:21s;animation-direction:alternate-reverse}
@keyframes ambient-camera{
  from{transform:translate3d(-.6%,.45%,0) scale(1.025)}
  to{transform:translate3d(.6%,-.45%,0) scale(1.085)}
}
@keyframes smoke-camera{
  from{transform:translate3d(.45%,1.1%,0) scale(1.045)}
  to{transform:translate3d(-.55%,-1.1%,0) scale(1.14)}
}
@keyframes hotel-camera{
  from{transform:translate3d(-1%,.2%,0) scale(1.03)}
  to{transform:translate3d(1%,-.3%,0) scale(1.075)}
}
@keyframes ambient-photo{
  from{transform:translate3d(0,1px,0)}
  to{transform:translate3d(0,-2px,0)}
}
@keyframes ambient-light{
  from{transform:translate3d(-2%,1%,0);opacity:.45}
  to{transform:translate3d(3%,-2%,0);opacity:.8}
}
.page-hidden .scene.is-active img,.page-hidden .scene.is-active .slide::before{animation-play-state:paused}
@media(max-width:700px){
  .hero .hero-image{
    -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.8),#000 10%,#000 82%,transparent 100%);
    mask-image:linear-gradient(180deg,rgba(0,0,0,.8),#000 10%,#000 82%,transparent 100%);
  }
}
@media(prefers-reduced-motion:reduce){
  .scene.is-active .slide::before{animation:none!important;transform:none!important;opacity:.45}
  .scene.is-active img{animation:none!important;transform:none!important}
}
