:root {
  --ink: #050607;
  --carbon: #0c0f11;
  --graphite: #171c1f;
  --steel-dark: #667177;
  --steel: #a7b0b5;
  --ivory: #e4e0d7;
  --petrol: #17343a;
  --line: rgba(228, 224, 215, 0.16);
  --page-x: clamp(22px, 5vw, 86px);
  --serif: "Bodoni Moda", Didot, "Times New Roman", serif;
  --sans: "Archivo", Arial, sans-serif;
  --mono: "IBM Plex Mono", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--ivory);
  background: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
::selection { background: var(--petrol); color: var(--ivory); }

.loader {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  background: var(--ink);
  transition: opacity .9s cubic-bezier(.22,.61,.36,1), visibility .9s;
}
.loader.is-hidden { opacity: 0; visibility: hidden; }
.loader__mark { width: clamp(150px, 18vw, 260px); opacity: 0; animation: loaderMark 1.2s .1s forwards; }
.loader__line { position: absolute; bottom: 8vh; width: min(260px, 48vw); height: 1px; background: rgba(255,255,255,.08); overflow: hidden; }
.loader__line span { display: block; width: 45%; height: 100%; background: var(--steel); animation: loaderLine 1.5s infinite ease-in-out; }
@keyframes loaderMark { to { opacity: 1; } }
@keyframes loaderLine { from { transform: translateX(-120%); } to { transform: translateX(260%); } }

.site-header {
  position: fixed;
  z-index: 100;
  top: 0; left: 0; right: 0;
  height: 92px;
  padding: 16px var(--page-x);
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background .5s, border-color .5s, height .5s;
  border-bottom: 1px solid transparent;
}
.site-header.is-solid { height: 76px; background: rgba(5,6,7,.86); backdrop-filter: blur(16px); border-color: var(--line); }
.brand { width: 92px; position: relative; z-index: 4; }
.brand img { width: 100%; height: 58px; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 48px); }
.main-nav a { position: relative; padding: 10px 0; font-size: 12px; letter-spacing: .17em; text-transform: uppercase; color: rgba(228,224,215,.78); }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:3px; height:1px; background:var(--ivory); transition:right .35s; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right:0; }
.menu-toggle { display:none; border:0; background:none; align-items:center; gap:12px; padding:10px 0; z-index:5; cursor:pointer; }
.menu-toggle span { font: 500 11px/1 var(--mono); letter-spacing:.15em; }
.menu-toggle i, .menu-toggle i::after { display:block; width:24px; height:1px; background:var(--ivory); transition:.35s; }
.menu-toggle i { position:relative; }
.menu-toggle i::after { content:""; position:absolute; top:6px; }

.cinema { position: relative; height: 760vh; background: #000; }
.cinema__sticky { position: sticky; top:0; height:100vh; overflow:hidden; background:#000; }
.cinema__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.015); filter:saturate(.78) contrast(1.06) brightness(.82); }
.cinema__shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(4,6,7,.56), rgba(4,6,7,.08) 52%, rgba(4,6,7,.48)), linear-gradient(0deg, rgba(4,6,7,.52), transparent 40%, rgba(4,6,7,.18)); }
.cinema__grain { position:absolute; inset:-100%; pointer-events:none; opacity:.055; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); animation:grain .25s steps(2) infinite; }
@keyframes grain { 0%{transform:translate(0,0)} 25%{transform:translate(2%,-1%)} 50%{transform:translate(-1%,2%)} 75%{transform:translate(1%,1%)} 100%{transform:translate(-2%,-1%)} }
.cinema__copy { position:absolute; z-index:3; inset:auto; width:min(860px, 86vw); opacity:0; transform:translateY(38px); transition:opacity .45s, transform .75s cubic-bezier(.2,.75,.2,1); pointer-events:none; }
.cinema__copy.is-active { opacity:1; transform:none; pointer-events:auto; }
.cinema__copy--brand { width:min(430px, 65vw); left:50%; top:50%; transform:translate(-50%, calc(-50% + 28px)); text-align:center; }
.cinema__copy--brand.is-active { transform:translate(-50%, -50%); }
.cinema__copy--brand img { margin:auto; width:100%; max-height:300px; object-fit:contain; }
.cinema__copy--brand p { margin:12px 0 0; font:500 11px/1.4 var(--mono); letter-spacing:.34em; text-transform:uppercase; }
.cinema__copy--left { left:var(--page-x); top:49%; transform:translateY(calc(-50% + 38px)); }
.cinema__copy--left.is-active { transform:translateY(-50%); }
.cinema__copy--right { right:var(--page-x); top:50%; text-align:right; transform:translateY(calc(-50% + 38px)); }
.cinema__copy--right.is-active { transform:translateY(-50%); }
.cinema__copy--final { left:50%; bottom:9vh; text-align:center; transform:translate(-50%, 38px); }
.cinema__copy--final.is-active { transform:translate(-50%, 0); }
.eyebrow { margin:0 0 20px; font:500 11px/1.3 var(--mono); letter-spacing:.22em; color:var(--steel); text-transform:uppercase; }
.cinema h1, .cinema h2 { margin:0; font-family:var(--serif); font-weight:500; line-height:.94; letter-spacing:-.045em; font-size:clamp(58px, 8.2vw, 142px); }
.cinema__copy--final h2 { font-size:clamp(54px, 7vw, 118px); }
.text-link { display:inline-flex; align-items:center; gap:18px; margin-top:32px; font:500 12px/1 var(--mono); letter-spacing:.14em; text-transform:uppercase; pointer-events:auto; }
.text-link::after { content:""; width:64px; height:1px; background:var(--ivory); transition:width .35s; }
.text-link:hover::after { width:92px; }
.scroll-cue { position:absolute; z-index:3; left:var(--page-x); bottom:24px; display:flex; align-items:center; gap:16px; color:rgba(228,224,215,.55); }
.scroll-cue span { font:400 9px/1 var(--mono); letter-spacing:.18em; }
.scroll-cue i { width:54px; height:1px; background:rgba(228,224,215,.3); position:relative; overflow:hidden; }
.scroll-cue i::after { content:""; position:absolute; inset:0; background:var(--ivory); animation:cue 2s infinite; }
@keyframes cue { from{transform:translateX(-100%)} to{transform:translateX(100%)} }
.cinema__progress { position:absolute; z-index:4; right:22px; top:18vh; bottom:18vh; width:1px; background:rgba(228,224,215,.15); }
.cinema__progress span { display:block; width:1px; height:0; background:var(--ivory); }

.section-pad { padding-left:var(--page-x); padding-right:var(--page-x); }
.reveal { opacity:0; transform:translateY(40px); transition:opacity .85s, transform .95s cubic-bezier(.2,.75,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
.mono { font-family:var(--mono); letter-spacing:.12em; text-transform:uppercase; }

.manifesto { min-height:100vh; display:grid; grid-template-columns:minmax(100px, .42fr) 1.8fr; align-items:center; gap:8vw; padding-top:12vh; padding-bottom:12vh; background:var(--ink); }
.manifesto__index { align-self:start; margin-top:8vh; font-size:10px; color:var(--steel-dark); }
.manifesto h2 { margin:0; max-width:1200px; font:500 clamp(54px, 7.3vw, 126px)/.98 var(--serif); letter-spacing:-.05em; }
.manifesto h2 em { color:var(--steel); font-weight:400; }
.manifesto__text { width:min(560px, 100%); margin:56px 0 0 auto; color:var(--steel); font-size:clamp(18px, 1.55vw, 24px); font-weight:300; line-height:1.55; }

.knife-stage { position:relative; height:360vh; background:var(--carbon); }
.knife-stage__sticky { position:sticky; top:0; min-height:100vh; overflow:hidden; display:grid; grid-template-columns:1fr 1.45fr 1fr; align-items:center; padding:10vh var(--page-x); }
.knife-stage__halo { position:absolute; left:50%; top:48%; width:min(56vw, 860px); aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(23,52,58,.34), rgba(23,52,58,.08) 42%, transparent 70%); filter:blur(12px); }
.knife-stage__model-wrap { position:relative; z-index:2; grid-column:2; height:78vh; min-height:500px; }
model-viewer { width:100%; height:100%; background:transparent; --poster-color: transparent; }
.model-fallback { width:100%; height:100%; display:grid; place-items:center; color:var(--steel-dark); font:400 10px/1 var(--mono); letter-spacing:.2em; }
.knife-stage__title { position:relative; z-index:3; grid-column:1; grid-row:1; align-self:start; margin-top:10vh; }
.knife-stage__title h2 { margin:0; font:500 clamp(46px, 5.8vw, 102px)/.94 var(--serif); letter-spacing:-.05em; }
.knife-notes { position:relative; z-index:3; grid-column:3; grid-row:1; display:grid; align-content:center; gap:0; }
.knife-note { padding:24px 0 26px 36px; border-left:1px solid var(--line); opacity:.28; transform:translateX(15px); transition:.5s; }
.knife-note.is-active { opacity:1; transform:none; border-left-color:var(--steel); }
.knife-note span { color:var(--steel-dark); font-size:9px; }
.knife-note h3 { margin:8px 0; font:500 clamp(30px, 2.6vw, 46px)/1 var(--serif); }
.knife-note p { margin:0; max-width:300px; color:var(--steel); font-size:14px; font-weight:300; }
.model-hint { position:absolute; z-index:4; bottom:28px; left:50%; transform:translateX(-50%); margin:0; color:var(--steel-dark); font-size:9px; }

.process { background:var(--ink); }
.process__heading { padding-top:18vh; padding-bottom:10vh; }
.process__heading h2, .lines__intro h2, .custom h2 { margin:0; font:500 clamp(54px, 7.2vw, 126px)/.96 var(--serif); letter-spacing:-.05em; }
.process-strip { display:grid; grid-template-columns:1fr 1fr 1fr; min-height:88vh; }
.process-panel { position:relative; margin:0; overflow:hidden; border-right:1px solid rgba(255,255,255,.08); }
.process-panel:last-child { border-right:0; }
.process-panel img { width:100%; height:100%; object-fit:cover; filter:saturate(.48) contrast(1.1) brightness(.64); transform:scale(1.04); transition:filter .8s, transform 1.2s cubic-bezier(.2,.75,.2,1); }
.process-panel::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(5,6,7,.9), transparent 62%); }
.process-panel:hover img { filter:saturate(.78) contrast(1.06) brightness(.82); transform:scale(1); }
.process-panel figcaption { position:absolute; z-index:2; left:clamp(22px,3vw,52px); right:clamp(22px,3vw,52px); bottom:42px; }
.process-panel figcaption span { color:var(--steel); font-size:9px; }
.process-panel figcaption strong { display:block; margin-top:12px; font:500 clamp(28px, 3vw, 48px)/1.04 var(--serif); }
.process-steps { min-height:70vh; display:grid; align-content:center; }
.process-step { display:grid; grid-template-columns:120px 1fr; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); }
.process-step span { color:var(--steel-dark); font-size:10px; }
.process-step p { margin:0; font:500 clamp(52px, 7vw, 112px)/1 var(--serif); letter-spacing:-.045em; }

.lines { background:var(--ivory); color:var(--ink); padding-top:16vh; padding-bottom:10vh; }
.lines .eyebrow { color:#596267; }
.lines__intro { padding-bottom:12vh; }
.line-list { border-top:1px solid rgba(5,6,7,.18); }
.line-item { position:relative; display:grid; grid-template-columns:100px 1fr minmax(260px,.8fr) 230px; align-items:center; gap:32px; padding:42px var(--page-x); border-bottom:1px solid rgba(5,6,7,.18); overflow:hidden; transition:color .45s, background .45s; }
.line-item::before { content:""; position:absolute; inset:0; background:var(--petrol); transform:translateY(101%); transition:transform .55s cubic-bezier(.2,.75,.2,1); }
.line-item > * { position:relative; z-index:1; }
.line-item:hover { color:var(--ivory); }
.line-item:hover::before { transform:none; }
.line-item__number, .line-item__meta { font-size:9px; }
.line-item__name span { display:block; font-size:12px; letter-spacing:.13em; text-transform:uppercase; }
.line-item__name h3 { margin:2px 0 0; font:500 clamp(60px, 7vw, 110px)/.9 var(--serif); letter-spacing:-.05em; }
.line-item p { margin:0; max-width:440px; font-size:16px; font-weight:350; }
.line-item__meta { text-align:right; }

.custom { position:relative; display:grid; grid-template-columns:.72fr 1.28fr; min-height:118vh; background:var(--carbon); }
.custom__visual { position:relative; min-height:100%; border-right:1px solid var(--line); overflow:hidden; background:radial-gradient(circle at 35% 45%, rgba(23,52,58,.38), transparent 55%); }
.custom__visual img { position:absolute; width:min(58%, 380px); left:50%; top:50%; transform:translate(-50%,-50%); opacity:.32; filter:grayscale(.55); }
.custom__blade-line { position:absolute; left:15%; right:15%; top:50%; height:1px; background:linear-gradient(90deg, transparent, var(--steel), transparent); box-shadow:0 0 22px rgba(167,176,181,.35); transform:rotate(-17deg); }
.custom__content { padding-top:15vh; padding-bottom:15vh; }
.custom__lead { max-width:560px; color:var(--steel); font-size:19px; font-weight:300; }
.custom-form { margin-top:70px; max-width:900px; }
.custom-form fieldset { border:0; border-top:1px solid var(--line); padding:26px 0 34px; margin:0; }
.custom-form legend { padding:0 16px 0 0; color:var(--steel-dark); font-size:9px; }
.choice-row { display:flex; flex-wrap:wrap; gap:10px; }
.choice { border:1px solid var(--line); background:transparent; padding:13px 22px; cursor:pointer; font-size:13px; letter-spacing:.06em; transition:.3s; }
.choice:hover, .choice.is-selected { background:var(--ivory); color:var(--ink); border-color:var(--ivory); }
.text-field { display:grid; gap:12px; }
.text-field span { color:var(--steel); font-size:13px; }
.text-field input { width:100%; border:0; border-bottom:1px solid rgba(228,224,215,.28); outline:0; background:transparent; color:var(--ivory); padding:10px 0 18px; font:500 clamp(28px, 3vw, 46px)/1 var(--serif); }
.text-field input:focus { border-color:var(--ivory); }
.text-field input::placeholder { color:rgba(228,224,215,.22); }
.custom-form__footer { display:flex; align-items:flex-end; justify-content:space-between; gap:34px; padding-top:26px; }
.custom-form__footer p { margin:0; display:grid; gap:8px; }
.custom-form__footer p span { color:var(--steel-dark); font-size:9px; }
.custom-form__footer p strong { font-size:13px; font-weight:400; color:var(--steel); }
.primary-cta { position:relative; display:inline-flex; align-items:center; justify-content:center; min-width:210px; min-height:58px; padding:0 28px; border:1px solid var(--ivory); background:var(--ivory); color:var(--ink); cursor:pointer; overflow:hidden; font:500 11px/1 var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.primary-cta::before { content:""; position:absolute; inset:0; background:var(--petrol); transform:translateY(103%); transition:transform .42s cubic-bezier(.2,.75,.2,1); }
.primary-cta span { position:relative; z-index:1; }
.primary-cta:hover { color:var(--ivory); border-color:var(--petrol); }
.primary-cta:hover::before { transform:none; }

.finale { position:relative; height:100vh; min-height:680px; display:grid; place-items:center; overflow:hidden; background:#000; }
.finale__media, .finale__shade { position:absolute; inset:0; }
.finale__media img { width:100%; height:100%; object-fit:cover; filter:saturate(.58) brightness(.52) contrast(1.12); transform:scale(1.02); }
.finale__shade { background:radial-gradient(circle at center, transparent, rgba(5,6,7,.35) 52%, rgba(5,6,7,.86)), linear-gradient(0deg, rgba(5,6,7,.76), transparent); }
.finale__content { position:relative; z-index:2; width:min(1100px, 88vw); text-align:center; }
.finale__content img { width:clamp(150px, 17vw, 260px); margin:0 auto 40px; }
.finale h2 { margin:0 0 44px; font:500 clamp(54px, 7.3vw, 124px)/.94 var(--serif); letter-spacing:-.05em; }
.primary-cta--light { color:var(--ink); }

.footer { min-height:240px; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:30px; padding:50px var(--page-x); background:var(--ink); border-top:1px solid var(--line); color:var(--steel); }
.footer img { width:100px; }
.footer p { margin:0; font-size:13px; }
.footer p:last-child { text-align:right; font-size:9px; }

.toast { position:fixed; z-index:200; right:24px; bottom:24px; width:min(420px, calc(100vw - 48px)); padding:22px; background:var(--ivory); color:var(--ink); transform:translateY(calc(100% + 40px)); transition:transform .5s cubic-bezier(.2,.75,.2,1); box-shadow:0 24px 80px rgba(0,0,0,.35); }
.toast.is-visible { transform:none; }
.toast span { font-size:9px; }
.toast p { margin:8px 0 0; font-size:13px; }

@media (max-width: 980px) {
  .site-header { height:76px; }
  .brand { width:78px; }
  .menu-toggle { display:flex; }
  .main-nav { position:fixed; inset:0; z-index:3; display:grid; align-content:center; gap:0; padding:18vh var(--page-x); background:rgba(5,6,7,.98); transform:translateY(-102%); transition:transform .65s cubic-bezier(.2,.75,.2,1); }
  .main-nav.is-open { transform:none; }
  .main-nav a { font:500 clamp(44px, 9vw, 82px)/1.25 var(--serif); letter-spacing:-.04em; text-transform:none; border-bottom:1px solid var(--line); }
  .menu-open .menu-toggle i { transform:rotate(45deg); }
  .menu-open .menu-toggle i::after { top:0; transform:rotate(90deg); }
  .cinema { height:620vh; }
  .cinema__copy--right { left:var(--page-x); right:auto; text-align:left; }
  .manifesto { grid-template-columns:1fr; gap:20px; }
  .manifesto__index { margin:0; }
  .manifesto__text { margin-left:0; }
  .knife-stage__sticky { grid-template-columns:1fr; grid-template-rows:auto 1fr auto; align-items:start; padding-top:11vh; }
  .knife-stage__title { grid-column:1; grid-row:1; margin:0; }
  .knife-stage__model-wrap { grid-column:1; grid-row:2; width:100%; height:50vh; min-height:360px; }
  .knife-notes { grid-column:1; grid-row:3; grid-template-columns:repeat(3,1fr); }
  .knife-note { padding:18px 16px; border-left:0; border-top:1px solid var(--line); }
  .knife-note p { display:none; }
  .process-strip { grid-template-columns:1fr; }
  .process-panel { min-height:68vh; border-right:0; border-bottom:1px solid var(--line); }
  .line-item { grid-template-columns:60px 1fr; }
  .line-item p { grid-column:2; }
  .line-item__meta { grid-column:2; text-align:left; }
  .custom { grid-template-columns:1fr; }
  .custom__visual { min-height:42vh; border-right:0; border-bottom:1px solid var(--line); }
  .footer { grid-template-columns:1fr; text-align:left; }
  .footer p:last-child { text-align:left; }
}

@media (max-width: 640px) {
  :root { --page-x: 22px; }
  .cinema { height:520vh; }
  .cinema__video { filter:saturate(.7) contrast(1.05) brightness(.74); }
  .cinema__copy { width:calc(100vw - 44px); }
  .cinema__copy--brand { width:62vw; }
  .cinema h1, .cinema h2 { font-size:clamp(50px, 15vw, 76px); }
  .cinema__progress { display:none; }
  .scroll-cue { bottom:18px; }
  .manifesto { min-height:auto; padding-top:18vh; padding-bottom:18vh; }
  .manifesto h2, .process__heading h2, .lines__intro h2, .custom h2 { font-size:clamp(47px, 13vw, 68px); }
  .knife-stage { height:300vh; }
  .knife-stage__sticky { padding-bottom:58px; }
  .knife-stage__title h2 { font-size:48px; }
  .knife-stage__model-wrap { height:44vh; min-height:300px; }
  .knife-notes { grid-template-columns:1fr; }
  .knife-note { display:none; }
  .knife-note.is-active { display:block; }
  .process__heading { padding-top:14vh; }
  .process-panel { min-height:62vh; }
  .process-step { grid-template-columns:54px 1fr; }
  .process-step p { font-size:52px; }
  .lines { padding-top:12vh; }
  .line-item { padding-top:34px; padding-bottom:34px; gap:14px; }
  .line-item__name h3 { font-size:64px; }
  .custom__content { padding-top:12vh; padding-bottom:12vh; }
  .custom-form { margin-top:48px; }
  .custom-form__footer { align-items:stretch; flex-direction:column; }
  .primary-cta { width:100%; }
  .finale h2 { font-size:56px; }
  .finale__content img { width:150px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .cinema { height:100vh; }
  .cinema__copy:not(.cinema__copy--brand) { display:none; }
}
