:root{
  --paper:#F8F7F2;
  --ink:#0E0E0E;
  --night:#0B0B0B;
  --red:#EF483E;
  --mute:#6F6D67;
  --mute-d:#9C9A93;
  --line:#D9D7CF;
  --gut:clamp(16px,4vw,56px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Josefin Sans',system-ui,sans-serif;font-weight:300;background:var(--paper);color:var(--ink);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
figure{margin:0}

.label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--mute)}
h2{font-weight:300;text-transform:uppercase;letter-spacing:.06em;line-height:1.02;font-size:clamp(40px,7vw,104px)}
h3{font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:13px}

/* Nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:18px var(--gut);transition:background .5s,transform .5s;mix-blend-mode:difference}
.nav-logo img{height:34px;width:auto;filter:invert(1)}
@media (max-width:820px){.nav-logo img{height:24px}}
.nav nav{display:flex;gap:clamp(14px,3vw,36px)}
.nav nav a{text-decoration:none;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:#fff}
.nav-logo{opacity:0;transition:opacity .5s}
body.scrolled .nav-logo{opacity:1}
body.nav-hide .nav{transform:translateY(-100%)}

/* 1. Hero */
.hero{height:260vh;position:relative}
.hero-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero-word{position:absolute;top:13vh;left:var(--gut);right:var(--gut);display:flex;justify-content:center;will-change:transform,opacity}
.hero-word img{width:min(78vw,980px);height:auto}
.hero-sub{position:absolute;top:calc(13vh + min(78vw,980px) * .195 + 22px);will-change:opacity}
.hero-frame{--p:0;position:absolute;inset:0;clip-path:inset(calc(46vh - var(--p)*46vh) calc(38vw - var(--p)*38vw) calc(8vh - var(--p)*8vh) calc(38vw - var(--p)*38vw));will-change:clip-path}
.hero-main,.hero-side{position:absolute;inset:0;overflow:hidden}
.hero-side{display:none}
.hero-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;transform:scale(calc(1.25 - var(--p)*.25))}
.hero-frame:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.88),rgba(0,0,0,.55) 38%,rgba(0,0,0,.1) 75%);opacity:var(--p)}
.hero-motto{position:absolute;z-index:2;left:var(--gut);bottom:9vh;color:#fff;font-size:clamp(26px,4vw,58px);font-weight:400;text-transform:uppercase;letter-spacing:.05em;line-height:1.08;text-shadow:0 2px 24px rgba(0,0,0,.35);opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}
.hero.done .hero-motto{opacity:1;transform:none}
.hero-cue{position:absolute;bottom:22px;right:var(--gut);display:flex;align-items:center;gap:10px}
.hero-cue:after{content:'';width:1px;height:34px;background:var(--mute);animation:cue 1.8s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero.done .hero-cue{opacity:0}

/* 2. Statement */
.statement{padding:clamp(110px,18vh,200px) var(--gut) clamp(90px,14vh,160px);max-width:1400px;margin:0 auto}
.words{font-size:clamp(34px,6.2vw,92px);line-height:1.06;font-weight:300;text-transform:uppercase;letter-spacing:.03em;margin:28px 0 64px}
.words span{opacity:.12;transition:opacity .35s}
.words span.on{opacity:1}
.words span.r{color:var(--red)}
.statement-foot{display:grid;grid-template-columns:1fr 1fr;gap:var(--gut);max-width:900px;margin-left:auto;font-size:17px;color:var(--mute)}
.statement-foot p:last-child{color:var(--ink)}

/* 3. Collection */
.collection{position:relative;background:var(--paper)}
.col-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,4vh,44px)}
.col-head{display:flex;align-items:flex-end;gap:var(--gut);padding:0 var(--gut)}
.col-head h2{font-size:clamp(34px,5vw,72px)}
.col-head .label{writing-mode:vertical-rl;transform:rotate(180deg)}
.col-count{margin-left:auto;white-space:nowrap;font-size:13px;letter-spacing:.2em;font-weight:500}
.col-count span{color:var(--red)}
.col-track{display:flex;gap:clamp(16px,2.4vw,36px);padding:0 var(--gut);will-change:transform;width:max-content}
.card{width:clamp(220px,24vw,340px);flex:none}
.card a{display:block;text-decoration:none}
.card figure{position:relative;aspect-ratio:3/4;overflow:hidden;background:#e9e7e0}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.card:hover img{transform:scale(1.05)}
.card-n{margin-top:16px;font-size:11px;letter-spacing:.2em;color:var(--red);font-weight:500}
.card h3{margin-top:4px}
.card-d{margin-top:6px;font-size:15px;color:var(--mute);line-height:1.45;max-width:30ch}
.col-bar{margin:0 var(--gut);height:1px;background:var(--line);position:relative}
.col-bar span{position:absolute;left:0;top:-1px;height:3px;width:100%;background:var(--ink);transform-origin:left;transform:scaleX(0)}

/* Play mark */
.play{position:absolute;right:14px;bottom:14px;width:48px;height:48px;border-radius:50%;background:var(--red);display:grid;place-items:center;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.play:before{content:'';margin-left:4px;border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
a:hover .play{transform:scale(1.12)}

/* 4. Films */
.films{background:var(--night);color:#F2F0EA;padding:clamp(90px,14vh,150px) 0 clamp(80px,12vh,130px)}
.films .label{color:var(--mute-d)}
.films-head{padding:0 var(--gut);display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px}
.films-row{display:grid;grid-template-columns:repeat(7,1fr);gap:clamp(10px,1.4vw,20px);padding:0 var(--gut)}
.film{text-decoration:none;opacity:0;transform:translateY(60px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.2,1)}
.film.in{opacity:1;transform:none}
.film figure{position:relative;aspect-ratio:9/16;overflow:hidden;background:#1a1a1a}
.film img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .7s,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.film:hover img{filter:none;transform:scale(1.04)}
.film .play{width:40px;height:40px;right:10px;bottom:10px}
.film .play:before{border-left-width:11px;border-top-width:7px;border-bottom-width:7px}
.film>span{display:block;margin-top:12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--mute-d)}

/* 5. Designer */
.designer{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
.designer-img{overflow:hidden;position:relative}
.designer-img img{position:absolute;inset:-12% 0;width:100%;height:124%;object-fit:cover;object-position:50% 20%;will-change:transform}
.designer-text{padding:clamp(70px,12vh,140px) var(--gut);display:flex;flex-direction:column;justify-content:center;gap:24px;max-width:640px}
.designer-text p:not(.label){font-size:18px;color:#3b3a37}
.designer-text h2{font-size:clamp(40px,5.4vw,80px)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px;padding-top:28px;border-top:1px solid var(--line)}
.stats dt{font-size:clamp(28px,3vw,42px);font-weight:300;line-height:1}
.stats dd{margin-top:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:500;line-height:1.5}
.stats div:first-child dt{color:var(--red)}

/* 6. Footer */
.foot{background:var(--night);color:#F2F0EA;padding:clamp(100px,16vh,170px) var(--gut) 34px;display:flex;flex-direction:column;gap:clamp(40px,7vh,72px)}
.foot-motto{font-size:clamp(30px,5vw,72px);text-transform:uppercase;line-height:1.06;letter-spacing:.04em}
.foot-logo{width:min(100%,1100px);height:auto}
.foot-links{display:flex;flex-wrap:wrap;gap:16px 48px;font-size:16px;letter-spacing:.06em}
.foot-links a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:4px}
.foot-links a.red{color:var(--red);border-color:var(--red)}
.foot-c{color:var(--mute-d)}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* Desktop hero */
@media (min-width:821px){
  .hero-word img{width:min(56vw,760px)}
  .hero-sub{top:calc(13vh + min(56vw,760px) * .195 + 20px)}
  .hero-frame{clip-path:none;display:grid;grid-template-columns:repeat(3,1fr);gap:calc((1 - var(--p))*28px);transform-origin:50% 100%;transform:translateY(calc((1 - var(--p))*-5vh)) scale(calc(.54 + var(--p)*.46));will-change:transform}
  .hero-main,.hero-side{position:relative;inset:auto;display:block}
  .hero-side{opacity:clamp(0,calc(var(--p)*1.6 - .35),1)}
  .hero-side.l{transform:translateX(calc((1 - var(--p))*45%))}
  .hero-side.r{transform:translateX(calc((1 - var(--p))*-45%))}
  .hero-frame img{transform:none;object-position:50% 15%}
  .hero-motto{bottom:8vh}
}

/* Phone */
@media (max-width:820px){
  .nav nav{gap:14px}
  .nav nav a{font-size:10px;letter-spacing:.16em}
  .hero{height:220vh}
  .hero-word{top:16vh}
  .hero-word img{width:88vw}
  .hero-sub{top:calc(16vh + 88vw * .195 + 16px)}
  .hero-frame{clip-path:inset(calc(42vh - var(--p)*42vh) calc(22vw - var(--p)*22vw) calc(10vh - var(--p)*10vh) calc(22vw - var(--p)*22vw))}
  .statement-foot{grid-template-columns:1fr;font-size:16px}
  .col-head .label{display:none}
  .card{width:68vw}
  .films-row{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:42vw;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);padding-bottom:8px;scrollbar-width:none}
  .films-row::-webkit-scrollbar{display:none}
  .film{scroll-snap-align:start}
  .designer{grid-template-columns:1fr}
  .designer-img{height:80vh}
  .designer-text p:not(.label){font-size:16px}
  .stats{grid-template-columns:1fr 1fr 1fr;gap:12px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal,.film{opacity:1;transform:none}
  .words span{opacity:1}
}
