/* Cinematic — Indexed premium design system.
   Composition is rendered from cinematic_data.composition; every variant keeps
   dvh sizing, reduced-motion fallbacks, and mobile degradation. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#16110c;--cream:#f7f2ea;--warm:#efe6d6;--paper:#fffdfa;
  --gold:#b8924a;--gold-lt:#d8b274;--gold-text:#866a35;--stone:#9c8f7c;
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,sans-serif;
  --type-scale:1.333;--hero-vw:16vw;--split-vw:9vw;--section-title-vw:7vw;--card-title-vw:5vw;
  --base-weight:300;--head-weight:500;--track:.02em;
  --gutter:28px;--hero-split:.6;--hero-split-pct:60%;--max-w:1280px;--rhythm:1;--section-pad-y:6rem;
  --tint:hsla(38,60%,40%,.16);--radius:2px;
}
html,body{margin:0;background:var(--ink);color:var(--cream);overflow-x:hidden}
body{font-family:var(--sans);font-weight:var(--base-weight);line-height:1.6;-webkit-font-smoothing:antialiased}
body.type-serif{--serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,sans-serif}
body.type-sans{--serif:'Space Grotesk','Inter',system-ui,sans-serif;--sans:'Inter',system-ui,sans-serif}
body.type-display{--serif:'Playfair Display',Georgia,serif;--sans:'Space Grotesk','Inter',system-ui,sans-serif}
body.type-romantic-script{--serif:'Great Vibes',cursive;--sans:'Cormorant Infant',Georgia,serif}
body.type-athletic-condensed{--serif:'Barlow Condensed','Inter',system-ui,sans-serif;--sans:'Barlow','Inter',system-ui,sans-serif}
body.type-culinary-serif{--serif:'Playfair Display SC',Georgia,serif;--sans:'Karla','Inter',system-ui,sans-serif}
body.type-statement-condensed{--serif:'Bebas Neue','Inter',system-ui,sans-serif;--sans:'Source Sans 3','Inter',system-ui,sans-serif}
body.type-fashion-forward{--serif:'Syne','Inter',system-ui,sans-serif;--sans:'Manrope','Inter',system-ui,sans-serif}
body.lang-kh{--serif:'Noto Serif Khmer',serif;--sans:'Noto Sans Khmer','Inter',system-ui,sans-serif}
img,video{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.video-shell{position:relative;width:100%;height:100%;overflow:hidden;background:var(--ink)}
.video-shell__poster,.video-shell > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-shell video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s cubic-bezier(.2,.7,.2,1)}
.video-shell.is-video-ready video{opacity:1}
.ssr-static .video-shell video{display:none}
.eyebrow{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--gold-lt)}
.case-none .eyebrow{text-transform:none;letter-spacing:.18em}
.case-upper-head .hero h1,.case-upper-head .statement h2,.case-upper-head .craft h2,.case-upper-head .visit h2{text-transform:uppercase;letter-spacing:var(--track)}
.case-upper-eyebrow .eyebrow{text-transform:uppercase}
body.type-serif .hero h1,body.type-serif .statement h2,body.type-serif .craft h2,body.type-serif .visit h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:.9;letter-spacing:.04em}
body.type-sans .hero h1,body.type-sans .statement h2,body.type-sans .craft h2,body.type-sans .visit h2{font-family:'Space Grotesk','Inter',system-ui,sans-serif;font-weight:700;line-height:.94;letter-spacing:0}
body.type-display .hero h1,body.type-display .statement h2,body.type-display .craft h2,body.type-display .visit h2{font-family:'Playfair Display',Georgia,serif;font-weight:700;line-height:.86;letter-spacing:0}
body.type-romantic-script .hero h1,body.type-romantic-script .statement h2,body.type-romantic-script .craft h2,body.type-romantic-script .visit h2{font-family:'Great Vibes',cursive;font-weight:400;line-height:.96;letter-spacing:0}
body.type-athletic-condensed .hero h1,body.type-athletic-condensed .statement h2,body.type-athletic-condensed .craft h2,body.type-athletic-condensed .visit h2{font-family:'Barlow Condensed','Inter',system-ui,sans-serif;font-weight:700;line-height:.88;letter-spacing:.01em}
body.type-culinary-serif .hero h1,body.type-culinary-serif .statement h2,body.type-culinary-serif .craft h2,body.type-culinary-serif .visit h2{font-family:'Playfair Display SC',Georgia,serif;font-weight:700;line-height:.9;letter-spacing:.02em}
body.type-statement-condensed .hero h1,body.type-statement-condensed .statement h2,body.type-statement-condensed .craft h2,body.type-statement-condensed .visit h2{font-family:'Bebas Neue','Inter',system-ui,sans-serif;font-weight:400;line-height:.84;letter-spacing:.02em}
body.type-fashion-forward .hero h1,body.type-fashion-forward .statement h2,body.type-fashion-forward .craft h2,body.type-fashion-forward .visit h2{font-family:'Syne','Inter',system-ui,sans-serif;font-weight:700;line-height:.88;letter-spacing:0}
body.lang-kh .hero h1,body.lang-kh .statement h2,body.lang-kh .craft h2,body.lang-kh .visit h2{font-family:'Noto Serif Khmer',serif;line-height:1.08;letter-spacing:0}
.treat-textured::before,.treat-moody::before{content:"";position:fixed;inset:0;z-index:2;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:3px 3px;opacity:.13;mix-blend-mode:overlay}
.treat-moody::after{content:"";position:fixed;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 35%,rgba(0,0,0,.32));mix-blend-mode:multiply}

#intro{position:fixed;inset:0;z-index:1000;background:var(--ink);display:flex;align-items:center;justify-content:center}
.intro-frame{display:grid;gap:clamp(1.2rem,3vw,2rem);justify-items:center;width:min(92vw,960px);padding:0 1rem}
#intro .mark{font-family:var(--serif);font-size:clamp(3rem,9vw,7rem);font-weight:500;letter-spacing:.5em;padding-left:.5em;color:var(--cream);opacity:0;max-width:92vw;overflow-wrap:break-word}
.intro-logo{height:clamp(72px,12vw,120px);width:auto;border-radius:10px}
.preloader-line{width:min(420px,58vw);height:1px;background:rgba(247,242,234,.18);overflow:hidden;transform-origin:left}
.preloader-line span{display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--gold-lt),var(--cream));transform:scaleX(0);transform-origin:left}

nav{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;justify-content:space-between;align-items:center;
  padding:1.4rem clamp(1.3rem,4vw,3.5rem);mix-blend-mode:difference;color:#fff}
nav .brand{font-family:var(--serif);font-size:1.35rem;letter-spacing:.32em;padding-left:.32em;font-weight:500;max-width:72vw;overflow-wrap:break-word}
nav .lang{cursor:pointer;background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:999px;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;padding:.4rem .9rem;transition:.3s}
nav .lang:hover{background:rgba(255,255,255,.15)}
#prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--gold);z-index:130}
#stage{background:var(--ink)}

/* Hero variants */
.hero{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden}
.hero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,rgba(10,8,5,.35),rgba(10,8,5,.1) 35%,rgba(10,8,5,.55)),var(--tint)}
.hero .eyebrow{margin-bottom:1.3rem}
.hero h1{font-family:var(--serif);font-weight:var(--head-weight);font-size:clamp(3.6rem,var(--hero-vw),15rem);line-height:.82;letter-spacing:var(--track);max-width:100%;overflow-wrap:break-word}
.hero .sub{font-size:clamp(1rem,1.6vw,1.35rem);max-width:34ch;margin-top:1.6rem;color:rgba(247,242,234,.92)}
.scrollcue{position:absolute;bottom:1.4rem;left:50%;transform:translateX(-50%);z-index:3;font-size:.64rem;
  letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.7);writing-mode:vertical-rl}
.hero--full{height:100vh;height:100dvh}
.hero--full .bg{position:absolute;inset:0;z-index:0;transform:scale(1.05)}
.hero--full .inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 clamp(1.3rem,5vw,5rem) clamp(2.6rem,9vh,7rem)}
.hero-full--centered-title .inner{justify-content:center;align-items:center;text-align:center;padding:0 clamp(1.3rem,6vw,6rem)}
.hero-full--centered-title .sub{margin-left:auto;margin-right:auto}
.hero-full--bottom-band .inner{inset:auto clamp(1.3rem,5vw,5rem) clamp(2.6rem,7vh,5rem);display:block;width:min(760px,calc(100% - 2.6rem));padding:clamp(1.2rem,2vw,2rem);background:rgba(10,8,5,.58);backdrop-filter:blur(14px);border-left:2px solid var(--gold)}
.hero--cinematic .scrim{background:linear-gradient(180deg,rgba(9,6,4,.28),rgba(9,6,4,.18) 42%,rgba(9,6,4,.74)),linear-gradient(90deg,rgba(0,0,0,.42),transparent 58%),var(--tint)}
.hero-cinematic__media{will-change:transform}
.hero-cinematic__wash{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.14),transparent 24%,transparent 72%,rgba(216,178,116,.16));mix-blend-mode:screen}
.hero--cinematic .inner{max-width:min(1120px,100%);justify-content:flex-end}
.hero--cinematic h1{overflow:hidden;overflow-wrap:normal;word-break:keep-all}
.cinematic-char{display:inline-block;opacity:0;transform:translateY(105%);clip-path:inset(0 0 100% 0);will-change:transform,opacity,clip-path}
.cinematic-char--space{width:.24em;opacity:1;transform:none;clip-path:none}
.hero--split{display:grid;grid-template-columns:minmax(0,var(--hero-split-pct)) minmax(360px,1fr);height:100vh;height:100dvh;background:var(--ink)}
.hero--split-reverse{grid-template-columns:minmax(360px,1fr) minmax(0,var(--hero-split-pct))}
.hero--split-reverse .hero-split__panel{grid-column:1;grid-row:1}
.hero--split-reverse .hero-split__media{grid-column:2;grid-row:1}
.hero-split__media{position:relative;z-index:0;min-height:100vh;min-height:100dvh;overflow:hidden}
.hero-split__panel{position:relative;z-index:2;background:var(--warm);color:var(--ink);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(2.4rem,7vh,5.5rem);
  min-height:100vh;min-height:100dvh;overflow:hidden;padding:clamp(6rem,10vh,8rem) clamp(1.6rem,4vw,4.5rem) clamp(6.4rem,11vh,8rem)}
.hero-split__panel::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.3),rgba(255,255,255,0) 38%),linear-gradient(180deg,rgba(255,255,255,.18),rgba(0,0,0,.04));pointer-events:none}
.hero-split__panel::after{content:"";position:absolute;left:clamp(1.6rem,4vw,4.5rem);right:clamp(1.6rem,4vw,4.5rem);top:50%;height:1px;background:rgba(33,24,18,.18)}
.hero-split__panel > *{position:relative}
.hero-split__mark{z-index:1;display:flex;align-items:flex-start;min-height:clamp(76px,9vw,118px)}
.hero-split__copy{z-index:1;max-width:min(32rem,100%);padding-top:clamp(1.8rem,6vh,4.5rem)}
.hero-split__panel .eyebrow{color:#5a3b2a;font-weight:600;margin-bottom:clamp(.9rem,2vh,1.4rem)}
.hero-split__panel h1{font-size:clamp(3.2rem,var(--split-vw),7.2rem);line-height:.88;max-width:100%;overflow-wrap:normal;word-break:keep-all}
.hero-split__panel .sub{color:#352920;font-weight:400;max-width:30ch}
.hero-split__logo{width:auto;height:clamp(76px,9vw,118px);object-fit:contain;align-self:flex-start;border-radius:10px}
.hero-split--masthead-panel .hero-split__panel{justify-content:flex-start;gap:clamp(1.6rem,5vh,4rem)}
.hero-split--masthead-panel .hero-split__mark{min-height:auto}
.hero-split--masthead-panel .hero-split__copy{margin-top:auto;padding-top:0}
.hero-split--masthead-panel .hero-split__panel::after{top:clamp(9rem,27vh,18rem)}
.hero-split--masthead-panel .hero-split__panel h1{max-width:100%}
.hero-split--editorial-rail .hero-split__panel{justify-content:center}
.hero-split--editorial-rail .hero-split__panel::after{top:clamp(6rem,14vh,9rem);bottom:clamp(6.4rem,11vh,8rem);left:clamp(5.8rem,9vw,9rem);right:auto;width:1px;height:auto}
.hero-split--editorial-rail .hero-split__mark{position:absolute;right:clamp(1.6rem,4vw,4.5rem);top:clamp(6rem,10vh,8rem);min-height:auto;opacity:.9}
.hero-split--editorial-rail .hero-split__copy{max-width:min(29rem,100%);padding-top:0;padding-left:clamp(2rem,5vw,4rem)}
.hero-split--editorial-rail .hero-split__panel h1{max-width:100%}

/* Statement variants */
.statement{position:relative;height:130vh}
.statement .pin{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.statement .img{position:absolute;inset:-10% 0;z-index:0}
.statement .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(var(--tint),var(--tint)),rgba(10,8,5,.42)}
.statement h2{position:relative;z-index:2;font-family:var(--serif);font-weight:400;text-align:center;color:#fff;
  font-size:clamp(2.4rem,var(--section-title-vw),7rem);line-height:1.02;letter-spacing:var(--track);max-width:16ch;padding:0 1rem}
.statement h2 .w{display:inline-block;opacity:0;transform:translateY(40px)}
.statement--side .pin{justify-content:flex-start}
.statement--side.side-right .pin{justify-content:flex-end}
.statement--side .scrim{background:linear-gradient(to right,rgba(8,6,4,.78),rgba(8,6,4,.28) 54%,rgba(8,6,4,.62))}
.statement--side.side-right .scrim{background:linear-gradient(to left,rgba(8,6,4,.78),rgba(8,6,4,.28) 54%,rgba(8,6,4,.62))}
.statement-side__copy{position:relative;z-index:2;width:min(620px,84vw);margin:0 clamp(1.3rem,7vw,7rem);opacity:0;transform:translateY(34px);clip-path:inset(0 100% 0 0)}
.statement--side.side-right .statement-side__copy{clip-path:inset(0 0 0 100%)}
.statement-side__copy h2{font-size:clamp(2.4rem,var(--section-title-vw),6.2rem);text-align:left;max-width:12ch;padding:0;margin:.9rem 0 1.1rem}
.statement-side__copy p{font-size:clamp(1rem,1.5vw,1.28rem);max-width:38ch;color:rgba(247,242,234,.86)}
.statement--video-mask{height:132vh;background:var(--ink)}
.statement--video-mask .pin{align-items:stretch}
.video-mask__media{position:absolute;inset:0;z-index:0;transform:scale(1.04)}
.statement--video-mask .scrim{background:linear-gradient(180deg,rgba(8,6,4,.72),rgba(8,6,4,.32),rgba(8,6,4,.78)),var(--tint)}
.video-mask__copy{position:relative;z-index:2;display:flex;min-height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center;padding:0 clamp(1.3rem,5vw,5rem);text-align:center}
.video-mask__copy .eyebrow{margin-bottom:1.2rem}
.video-mask__copy h2{font-family:var(--serif);font-size:clamp(3rem,7rem,10rem);line-height:.88;max-width:11ch;color:rgba(255,255,255,.08);-webkit-text-stroke:1px rgba(255,255,255,.82);text-shadow:0 24px 70px rgba(0,0,0,.45);letter-spacing:var(--track)}
.video-mask__word{display:inline-block;opacity:0;transform:translateY(44px);clip-path:inset(0 0 100% 0)}

/* Gallery: horizontal pin */
.gallery{position:relative;background:var(--cream);color:var(--ink);overflow:hidden}
.gallery--horizontal .track{display:flex;align-items:center;gap:var(--gutter);height:100vh;height:100dvh;padding:0 8vw;will-change:transform}
.gallery .lead{flex:0 0 auto;width:min(80vw,420px)}
.gallery .lead .eyebrow,.mosaic-lead .eyebrow{color:var(--gold-text,var(--gold))}
.gallery .lead h3,.mosaic-lead h3{font-family:var(--serif);font-weight:var(--head-weight);font-size:clamp(2.2rem,var(--card-title-vw),4rem);line-height:1.04;margin:1rem 0 1.1rem;letter-spacing:var(--track)}
.gallery .lead p,.mosaic-lead p{font-weight:300;color:#5c5346;max-width:34ch}
.gallery figure{flex:0 0 auto;position:relative;width:clamp(260px,34vw,520px);height:70vh;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 30px 80px -30px rgba(40,28,12,.45)}
.gallery figure img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figcaption{position:absolute;left:1.1rem;bottom:1rem;z-index:2;color:#fff;font-family:var(--serif);
  font-size:1.4rem;text-shadow:0 2px 20px rgba(0,0,0,.5)}
.gallery figure .grad{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(0,0,0,.5),transparent 45%)}

/* Gallery: mosaic */
.showcase--mosaic{padding:var(--section-pad-y) clamp(1.3rem,5vw,5rem);background:var(--cream);color:var(--ink)}
.mosaic-lead{max-width:min(880px,var(--max-w));margin:0 auto clamp(2rem,7vh,5rem)}
.mosaic-lead h3{max-width:13ch}
.mosaic-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(150px,16vw);gap:var(--gutter);max-width:var(--max-w);margin:0 auto}
.cols-2 .mosaic-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.cols-4 .mosaic-grid{grid-template-columns:repeat(8,minmax(0,1fr))}
.showcase--mosaic figure{width:auto;height:auto;min-height:260px}
.showcase--mosaic .tile-1{grid-column:span 3;grid-row:span 2}
.showcase--mosaic .tile-2{grid-column:span 2;grid-row:span 1}
.showcase--mosaic .tile-3{grid-column:span 1;grid-row:span 2}
.showcase--mosaic .tile-4{grid-column:span 2;grid-row:span 2}
.showcase--mosaic .tile-5{grid-column:span 4;grid-row:span 1}
.pattern-salon .showcase--mosaic .tile-1,.pattern-salon .showcase--mosaic .tile-4{grid-row:span 1}
.pattern-cascade .showcase--mosaic .tile-2,.pattern-cascade .showcase--mosaic .tile-5{grid-row:span 2}
.pattern-product-strip .showcase--mosaic figure{grid-row:span 1;min-height:220px}
.pattern-frame-grid .showcase--mosaic .tile-3{grid-column:span 2}

/* Showcase: layered collage + filmstrip */
.showcase--layered{position:relative;min-height:108vh;padding:var(--section-pad-y) clamp(1.3rem,5vw,5rem);background:var(--paper);color:var(--ink)}
.layered-collage__lead{position:relative;z-index:3;max-width:min(580px,82vw);margin:0 auto clamp(2rem,7vh,5rem)}
.layered-collage__lead .eyebrow,.filmstrip__lead .eyebrow{color:var(--gold-text,var(--gold))}
.layered-collage__lead h3,.filmstrip__lead h3{font-family:var(--serif);font-weight:var(--head-weight);font-size:clamp(2.2rem,3.8rem,4.8rem);line-height:1.02;letter-spacing:var(--track);margin:1rem 0}
.layered-collage__lead p{color:#5c5346;max-width:36ch}
.layered-collage{position:relative;min-height:78vh;max-width:var(--max-w);margin:0 auto}
.layered-collage__item{position:absolute;overflow:hidden;border-radius:var(--radius);box-shadow:0 36px 100px -34px rgba(25,18,10,.58);background:var(--ink);will-change:transform}
.layered-collage__item img{filter:saturate(.88) contrast(1.04);transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .8s}
.layered-collage__item:nth-child(even) img{filter:grayscale(1) sepia(.16) contrast(1.05)}
.layered-collage__item:hover img{transform:scale(1.04);filter:saturate(1.04) contrast(1.08)}
.layered-collage__item figcaption{position:absolute;left:1rem;bottom:.9rem;z-index:2;color:#fff;font-family:var(--serif);font-size:1.3rem;text-shadow:0 2px 18px rgba(0,0,0,.55)}
.layer-1{left:2%;top:6%;width:min(42vw,520px);height:58vh}
.layer-2{right:4%;top:0;width:min(30vw,390px);height:42vh}
.layer-3{left:34%;top:34%;width:min(32vw,420px);height:46vh;z-index:2}
.layer-4{right:1%;bottom:0;width:min(36vw,480px);height:34vh}
.layer-5{left:8%;bottom:2%;width:min(24vw,320px);height:30vh}
.showcase--filmstrip{padding:var(--section-pad-y) 0;background:var(--cream);color:var(--ink)}
.filmstrip__lead{width:min(var(--max-w),calc(100% - 2.6rem));margin:0 auto clamp(1.8rem,5vh,3.5rem)}
.filmstrip{overflow:hidden;border-top:1px solid rgba(22,17,12,.12);border-bottom:1px solid rgba(22,17,12,.12);padding:1rem 0;background:rgba(255,253,250,.52)}
.filmstrip__track{display:flex;gap:1rem;width:max-content;animation:filmstrip-scroll 34s linear infinite;will-change:transform}
.filmstrip__frame{position:relative;flex:0 0 clamp(220px,26vw,380px);height:clamp(300px,48vh,560px);overflow:hidden;border-radius:var(--radius);background:var(--ink)}
.filmstrip__frame:nth-child(3n+2){height:clamp(240px,38vh,460px);align-self:center}
.filmstrip__frame figcaption{position:absolute;left:.9rem;bottom:.8rem;color:#fff;font-family:var(--serif);font-size:1.12rem;text-shadow:0 2px 18px rgba(0,0,0,.5)}
@keyframes filmstrip-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.ssr-static .filmstrip__track{animation:none}

/* Set pieces */
.setpiece{position:relative;height:145vh;background:var(--ink);overflow:hidden}
.setpiece .pin{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:center;justify-content:center}
.setpiece__media{position:absolute;inset:-6% 0;z-index:0;transform:scale(1.04);will-change:transform}
.setpiece .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,6,4,.82),rgba(8,6,4,.18) 52%,rgba(8,6,4,.62)),var(--tint)}
.setpiece--scrub-video .scrim{background:linear-gradient(90deg,rgba(8,6,4,.76),rgba(8,6,4,.08) 50%,rgba(8,6,4,.48)),linear-gradient(180deg,rgba(8,6,4,.16),rgba(8,6,4,.56)),var(--tint)}
.setpiece__copy{position:relative;z-index:3;width:min(620px,84vw);margin-right:auto;margin-left:clamp(1.3rem,7vw,8rem);opacity:0;transform:translateY(34px)}
.setpiece__copy h2{font-family:var(--serif);font-weight:var(--head-weight);font-size:clamp(2.6rem,4.6rem,5.6rem);line-height:1;letter-spacing:var(--track);max-width:11ch;margin:.9rem 0 1.1rem}
.setpiece__copy p{font-size:clamp(1rem,1.18rem,1.28rem);max-width:38ch;color:rgba(247,242,234,.86)}
.setpiece__progress{position:absolute;z-index:4;left:clamp(1.3rem,5vw,5rem);right:clamp(1.3rem,5vw,5rem);bottom:2rem;height:1px;background:rgba(255,255,255,.2);overflow:hidden}
.setpiece__progress span{display:block;width:100%;height:100%;background:var(--gold-lt);transform:scaleX(0);transform-origin:left}
.setpiece--particles{height:120vh}
.setpiece--particles .pin{isolation:isolate}
.setpiece--particles canvas{position:absolute;inset:0;z-index:2;pointer-events:none}

/* Trust and ticker */
.trust{background:var(--paper);color:var(--ink);padding:var(--section-pad-y) clamp(1.3rem,5vw,5rem)}
.trust-card{max-width:var(--max-w);margin:0 auto;opacity:0;transform:translateY(34px)}
.trust--founder .trust-card{display:grid;grid-template-columns:minmax(220px,360px) minmax(0,1fr);gap:clamp(1.6rem,5vw,5rem);align-items:center}
.trust__portrait{min-height:clamp(280px,42vh,520px);background:var(--warm);overflow:hidden;border-radius:var(--radius)}
.trust__portrait:empty{display:none}
.trust__portrait:empty + .trust__copy{grid-column:1/-1;text-align:center}
.trust__copy .eyebrow,.trust--quote .eyebrow{color:var(--gold-text,var(--gold))}
.trust__copy h2{font-family:var(--serif);font-size:clamp(2.4rem,4rem,5rem);font-weight:var(--head-weight);line-height:1;margin:.8rem 0 1rem;letter-spacing:var(--track)}
.trust__copy p{font-size:clamp(1.05rem,1.24rem,1.36rem);color:#4f473d;max-width:48ch}
.trust--quote .trust-card{width:min(940px,100%);text-align:center}
.trust--quote blockquote{font-family:var(--serif);font-size:clamp(2.2rem,4rem,5.2rem);line-height:1.04;letter-spacing:var(--track);color:#241b14}
.trust--quote figcaption{margin-top:1.4rem;color:var(--gold-text,var(--gold));font-size:.75rem;letter-spacing:.2em;text-transform:uppercase}
.ticker{position:relative;overflow:hidden;background:var(--ink);color:var(--cream);border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.ticker__track{display:flex;width:max-content;gap:clamp(1.6rem,5vw,5rem);padding:1rem 0;animation:ticker-scroll 28s linear infinite;will-change:transform}
.ticker__track span{font-family:var(--serif);font-size:clamp(1.8rem,3rem,4rem);line-height:1;white-space:nowrap;color:rgba(247,242,234,.82)}
.ticker__track span::after{content:"";display:inline-block;width:.34rem;height:.34rem;margin-left:clamp(1.6rem,5vw,5rem);border-radius:50%;background:var(--gold-lt);vertical-align:middle}
@keyframes ticker-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.ssr-static .ticker__track{animation:none}

.cinematic-cursor{position:fixed;left:0;top:0;z-index:999;display:none;width:18px;height:18px;border:1px solid rgba(255,255,255,.72);border-radius:50%;pointer-events:none;transform:translate3d(-50%,-50%,0);mix-blend-mode:difference}
.cinematic-cursor.is-active{width:42px;height:42px;border-color:var(--gold-lt);background:rgba(216,178,116,.16)}
@media(hover:hover) and (pointer:fine){
  body:not(.ssr-static) .cinematic-cursor{display:block}
}

/* Craft */
.craft{position:relative;height:130vh}
.craft .pin{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
.craft .img{position:absolute;inset:-10% 0;z-index:0;transform:scale(1.1)}
.craft .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to right,rgba(10,8,5,.78),rgba(10,8,5,.25)),var(--tint)}
.craft .inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;
  padding:0 clamp(1.3rem,7vw,8rem);max-width:760px}
.craft .eyebrow{margin-bottom:1.3rem}
.craft h2{font-family:var(--serif);font-weight:var(--head-weight);font-size:clamp(2.2rem,var(--card-title-vw),5rem);line-height:1.04;color:#fff;letter-spacing:var(--track)}
.craft p{font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:300;margin-top:1.5rem;max-width:46ch;color:rgba(247,242,234,.86)}

/* Visit */
.visit{background:var(--paper);color:var(--ink);padding:var(--section-pad-y) clamp(1.3rem,5vw,5rem) clamp(2.6rem,6vh,5rem);text-align:center}
.visit .eyebrow{color:var(--gold-text,var(--gold))}
.visit h2{font-family:var(--serif);font-weight:var(--head-weight);font-size:clamp(2.4rem,var(--section-title-vw),5.5rem);line-height:1;margin:1.1rem 0 2.6rem;letter-spacing:var(--track)}
.visit .grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1.6rem,6vw,5rem);margin-bottom:3rem}
.visit .grid > div h4{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-text,var(--gold));margin-bottom:.5rem}
.visit .grid > div p,.visit .grid .social-pill{font-size:1.05rem;color:#3a342b}
.visit .social-pill{display:inline-block;margin:0 .4rem}
.btn{display:inline-block;padding:1.05rem 3rem;border-radius:max(999px,var(--radius));background:var(--ink);color:var(--cream);
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s}
.btn:hover{background:var(--gold)}
footer{background:var(--paper);color:var(--stone);text-align:center;padding:2.4rem 1rem 3rem;border-top:1px solid rgba(0,0,0,.06)}
.footer-wordmark{font-family:var(--serif);font-size:1.3rem;letter-spacing:.3em;padding-left:.3em}
.badge{display:inline-flex;align-items:center;gap:.5rem;margin-top:.7rem;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.reveal{opacity:0;transform:translateY(34px)}

@media(max-width:1024px){
  .hero--cinematic h1{font-size:clamp(3.2rem,6rem,7rem)}
  .statement--video-mask,.setpiece{height:auto}
  .statement--video-mask .pin,.setpiece .pin{position:relative;height:86vh;height:86dvh}
  .setpiece__media{inset:0;transform:none}
  .setpiece__copy{width:auto;margin:0 1.3rem}
  .setpiece__copy h2{font-size:clamp(2.4rem,4rem,5rem)}
  .setpiece__progress{display:none}
  .showcase--layered{min-height:auto}
  .layered-collage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-height:auto}
  .layered-collage__item{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;height:48vh;height:48dvh}
  .layered-collage__item:nth-child(3){grid-column:1/-1}
  .trust--founder .trust-card{grid-template-columns:1fr}
}

@media(max-width:760px){
  nav{padding:1rem 1.1rem}
  nav .brand{font-size:1rem;letter-spacing:.18em;padding-left:.18em;max-width:64vw}
  .hero h1{font-size:clamp(3.2rem,20vw,7rem)}
  .hero-full--bottom-band .inner{left:1.1rem;right:1.1rem;bottom:5.8rem;width:auto;padding:1rem}
  .hero--split{display:flex;flex-direction:column;height:auto;min-height:auto}
  .hero--split-reverse .hero-split__panel,.hero--split-reverse .hero-split__media{grid-column:auto;grid-row:auto}
  .hero-split__media{height:36vh;height:36dvh;min-height:36vh;min-height:36dvh;flex:0 0 36vh;flex-basis:36dvh}
  .hero-split__panel{flex:0 0 auto;min-height:64vh;min-height:64dvh;justify-content:flex-start;gap:1rem;padding:2.2rem 1.3rem 6.25rem}
  .hero-split__panel::after{display:none}
  .hero-split--editorial-rail .hero-split__panel{justify-content:flex-start}
  .hero-split--editorial-rail .hero-split__mark{position:relative;right:auto;top:auto;opacity:1}
  .hero-split--editorial-rail .hero-split__copy{padding-left:0;border-left:0}
  .hero-split__mark{min-height:auto}
  .hero-split__copy{padding-top:0}
  .hero-split__logo{height:clamp(52px,13vw,70px)}
  .hero-split__panel h1{font-size:clamp(2.6rem,13.5vw,4.9rem)}
  .hero-split__panel .sub{font-size:.98rem;line-height:1.45;margin-top:.9rem}
  .scrollcue{display:none}
  .statement,.craft{height:auto}
  .statement .pin,.craft .pin{position:relative;height:84vh;height:84dvh}
  .video-mask__copy h2{font-size:clamp(2.7rem,4.6rem,5.2rem)}
  .statement-side__copy{margin:0 1.3rem;width:auto}
  .statement-side__copy h2{font-size:clamp(2.4rem,15vw,5.2rem)}
  .gallery--horizontal .track{flex-direction:column;height:auto;gap:1.2rem;padding:4rem 1.3rem;transform:none!important}
  .gallery .lead{width:100%;margin-bottom:1rem}
  .gallery figure{width:100%;height:66vh;height:66dvh}
  .showcase--mosaic{padding:4rem 1.3rem}
  .mosaic-grid{display:block}
  .showcase--mosaic figure{width:100%;height:62vh;height:62dvh;margin:0 0 1.1rem}
  .showcase--layered,.showcase--filmstrip,.trust{padding:4rem 1.3rem}
  .layered-collage{display:block}
  .layered-collage__item{height:62vh;height:62dvh;margin:0 0 1.1rem}
  .filmstrip__track{animation:none;display:grid;width:auto;grid-template-columns:1fr;gap:1rem}
  .filmstrip__track .filmstrip__frame:nth-child(n+5){display:none}
  .filmstrip__frame,.filmstrip__frame:nth-child(3n+2){height:58vh;height:58dvh}
  .trust--quote blockquote{font-size:clamp(2.2rem,3.6rem,4.1rem)}
  .ticker__track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;padding:1.2rem}
  .ticker__track span{font-size:clamp(1.7rem,2.4rem,3rem)}
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .reveal,.statement h2 .w,.statement-side__copy,.cinematic-char,.video-mask__word,.layered-collage__item,.trust-card,.setpiece__copy{opacity:1!important;transform:none!important;clip-path:none!important}
  #intro{display:none!important}
  .gallery--horizontal .track{transform:none!important;flex-direction:column;height:auto;gap:1.2rem;padding:4rem 8vw}
  .gallery figure{width:100%;max-width:560px;height:60vh;margin:0 auto}
  .filmstrip__track,.ticker__track{animation:none!important;transform:none!important}
  .setpiece,.statement--video-mask{height:auto}
  .setpiece .pin,.statement--video-mask .pin{position:relative;height:84vh;height:84dvh}
  .setpiece__progress,.cinematic-cursor{display:none!important}
  .setpiece--particles canvas{display:none!important}
  video{display:none}
  .hero--full .bg,.hero-split__media,.craft .img,.setpiece__media,.video-mask__media{background:var(--ink)}
}
