:root {
  --forest: #0F2E24;
  --forest-deep: #061A14;
  --cream: #EADCC8;
  --cream-soft: #F2E8D8;
  --gold: #C9A96A;
  --charcoal: #171717;
  --ink: #10211B;
  --muted-dark: rgba(234, 220, 200, 0.64);
  --muted-light: rgba(16, 33, 27, 0.62);
  --line-dark: rgba(234, 220, 200, 0.15);
  --line-light: rgba(15, 46, 36, 0.14);
  --shell: min(1180px, calc(100vw - 64px));
  --ease: cubic-bezier(.2,.7,.2,1);
  --fabric-pattern: linear-gradient(115deg, rgba(255,255,255,.018), rgba(255,255,255,0) 34%), repeating-linear-gradient(90deg, rgba(255,255,255,.012) 0, rgba(255,255,255,.012) 1px, transparent 1px, transparent 6px), repeating-linear-gradient(0deg, rgba(0,0,0,.035) 0, rgba(0,0,0,.035) 1px, transparent 1px, transparent 7px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--forest-deep); }
body {
  margin: 0;
  color: var(--cream);
  background: var(--forest-deep);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
button { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 9999; background: var(--cream); color: var(--forest); padding: 12px 16px; }
.skip-link:focus { top: 16px; }

.site-header {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  height: 88px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding-inline: 34px;
  border-bottom: 1px solid transparent;
  transition: background .35s var(--ease), border-color .35s var(--ease), height .35s var(--ease), backdrop-filter .35s var(--ease);
}
.site-header.is-scrolled {
  height: 72px;
  background: rgba(6, 26, 20, 0.78);
  backdrop-filter: blur(18px);
  border-bottom-color: rgba(234,220,200,.10);
}
.brand { display: inline-flex; align-items: center; gap: 13px; width: max-content; }
.brand-mark { width: 33px; height: 33px; object-fit: contain; }
.brand-name { font-size: 11px; letter-spacing: .27em; font-weight: 600; white-space: nowrap; }
.desktop-nav { display: flex; align-items: center; gap: 31px; }
.desktop-nav a { position: relative; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: rgba(234,220,200,.75); transition: color .25s; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background: var(--gold); transition:right .25s var(--ease); }
.desktop-nav a:hover { color: var(--cream); }

.nav-join { color: var(--gold) !important; }

.hero-actions { margin-top: 34px; display:flex; gap:14px; flex-wrap:wrap; }
.cta-button { min-width: 228px; min-height: 56px; display:inline-flex; align-items:center; justify-content:space-between; gap:18px; padding:0 20px; border:1px solid rgba(234,220,200,.22); color:var(--cream); background:rgba(255,255,255,.02); font-size:10px; letter-spacing:.18em; text-transform:uppercase; transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.cta-button:hover { transform:translateY(-1px); }
.cta-button .arrow { font-size:14px; color:inherit; }
.cta-primary { background:rgba(201,169,106,.16); border-color:rgba(201,169,106,.56); }
.cta-primary:hover { background:var(--gold); border-color:var(--gold); color:var(--forest-deep); }
.cta-secondary { background:rgba(255,255,255,.025); border-color:rgba(234,220,200,.20); }
.cta-secondary:hover { background:rgba(234,220,200,.10); border-color:rgba(234,220,200,.34); }

.initiator-grid { grid-template-columns:minmax(280px, 360px) minmax(0, 1fr); gap:clamp(52px,7vw,110px); align-items:center; }
.initiator-portrait-card { position:relative; margin:0; width:min(100%, 360px); min-height:430px; border:1px solid var(--line-light); background:linear-gradient(180deg, rgba(15,46,36,.05), rgba(15,46,36,.01)); overflow:hidden; display:flex; align-items:flex-end; justify-content:center; justify-self:center; box-shadow: inset 0 0 0 1px rgba(15,46,36,.04); }
.initiator-portrait-card::before { content:""; position:absolute; inset:0; background:var(--fabric-pattern); opacity:.08; pointer-events:none; }
.initiator-portrait-bg { position:absolute; inset:auto 10% 0 10%; height:78%; border-radius:22px 22px 0 0; background:radial-gradient(circle at 50% 14%, rgba(234,220,200,.97), rgba(234,220,200,.80) 50%, rgba(234,220,200,.18) 72%, rgba(234,220,200,0) 78%), linear-gradient(180deg, rgba(15,46,36,.06), rgba(15,46,36,0)); }
.initiator-portrait { position:relative; z-index:1; width:min(74%, 260px); max-height:348px; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 14px 24px rgba(6,26,20,.10)); }
.initiator-portrait-card figcaption { position:absolute; left:20px; top:18px; z-index:2; font-size:9px; letter-spacing:.20em; color:rgba(15,46,36,.42); }
.initiator-copy .display { max-width: 12ch; }

.join-section { position:relative; overflow:hidden; }
.join-section::before { content:""; position:absolute; inset:0; pointer-events:none; background:var(--fabric-pattern); opacity:.10; mix-blend-mode:soft-light; }
.join-top { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(60px,9vw,140px); align-items:end; }
.join-intro .lead { margin:0; }
.join-grid { margin-top:72px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line-dark); border-left:1px solid var(--line-dark); }
.join-card { min-height:248px; padding:26px 28px 30px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); position:relative; overflow:hidden; }
.join-card:last-child { border-right:0; }
.join-card::after { content:""; position:absolute; inset:0; background:var(--fabric-pattern); opacity:.06; pointer-events:none; }
.join-card h3 { margin:76px 0 14px; font-size:22px; font-weight:500; letter-spacing:.01em; max-width:310px; }
.join-card p { margin:0; color:var(--muted-dark); font-size:15px; line-height:1.7; max-width:320px; }
.join-detail-grid { margin-top:34px; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.join-detail-card { border:1px solid var(--line-dark); padding:30px; position:relative; background:rgba(255,255,255,.015); overflow:hidden; }
.join-detail-card::before { content:""; position:absolute; inset:0; background:var(--fabric-pattern); opacity:.06; pointer-events:none; }
.detail-kicker { margin:0 0 12px; font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); }
.join-detail-card h3 { margin:0 0 22px; font-size:28px; line-height:1.05; font-weight:500; }
.join-list { margin:0; padding:0; list-style:none; display:grid; gap:14px; }
.join-list li { position:relative; padding-left:18px; color:var(--muted-dark); font-size:15px; line-height:1.6; }
.join-list li::before { content:""; position:absolute; left:0; top:.72em; width:7px; height:7px; border:1px solid rgba(201,169,106,.72); transform:translateY(-50%) rotate(45deg); }
.join-actions { display:flex; gap:16px; flex-wrap:wrap; margin-top:36px; align-items:center; }
.contact-button { min-height:60px; width:auto; min-width:280px; border:1px solid rgba(201,169,106,.42); display:inline-flex; align-items:center; justify-content:space-between; padding:0 22px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); background:rgba(255,255,255,.02); box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.contact-button:hover { transform:translateY(-1px); }
.join-primary { background:rgba(201,169,106,.16); border-color:rgba(201,169,106,.56); }
.join-primary:hover { background:var(--gold); color:var(--forest-deep); border-color:var(--gold); }
.join-secondary { border-color:rgba(234,220,200,.20); }
.join-secondary:hover { background:rgba(234,220,200,.10); border-color:rgba(234,220,200,.34); }
.join-note { margin-top:18px; color:rgba(234,220,200,.55); font-size:11px; letter-spacing:.15em; text-transform:uppercase; }

.finale-actions { margin-top:32px; display:flex; gap:14px; flex-wrap:wrap; }
.finale-actions .hero-link { margin-top:0; }
.desktop-nav a:hover::after { right:0; }
.header-actions { display:flex; justify-content:flex-end; align-items:center; gap:24px; }
.lang-switch { display:flex; gap:7px; font-size:10px; letter-spacing:.16em; color:rgba(234,220,200,.42); }
.lang-btn { border:0; padding:0; color:rgba(234,220,200,.42); background:none; cursor:pointer; font-size:10px; letter-spacing:.14em; }
.lang-btn.is-active { color: var(--cream); }
.menu-button { display:none; width:38px; height:38px; border:0; background:transparent; position:relative; cursor:pointer; }
.menu-button span { position:absolute; width:22px; height:1px; background:var(--cream); left:8px; transition:transform .3s var(--ease), top .3s var(--ease); }
.menu-button span:first-child { top:15px; }
.menu-button span:last-child { top:22px; }
body.menu-open .menu-button span:first-child { top:18px; transform:rotate(45deg); }
body.menu-open .menu-button span:last-child { top:18px; transform:rotate(-45deg); }
.mobile-menu { position:fixed; inset:0; z-index:90; background:var(--forest-deep); padding:120px 28px 36px; opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s; }
.mobile-menu.is-open { opacity:1; visibility:visible; }
.mobile-menu nav { display:grid; gap:20px; }
.mobile-menu nav a { font-size:clamp(34px,9vw,58px); letter-spacing:-.04em; line-height:1.02; }
.mobile-menu-foot { position:absolute; bottom:34px; left:28px; font-size:10px; letter-spacing:.24em; color:var(--gold); }

.hero { min-height:100svh; position:relative; overflow:hidden; background:var(--forest-deep); }
.hero-poster, .hero-video, .hero-overlay, .grain { position:absolute; inset:0; width:100%; height:100%; }
.hero-poster img { width:100%; height:100%; object-fit:cover; }
.hero-video { object-fit:cover; filter:saturate(.72) brightness(.54) contrast(1.08) sepia(.10) hue-rotate(-4deg); animation:heroDrift 18s ease-in-out infinite alternate; }
.hero-video-mobile { display:none; }
.hero-overlay { background:linear-gradient(90deg, rgba(4,18,14,.88) 0%, rgba(4,18,14,.48) 50%, rgba(4,18,14,.64) 100%), linear-gradient(180deg, rgba(2,12,9,.12) 0%, rgba(2,12,9,.20) 55%, rgba(2,12,9,.70) 100%); }
.grain { opacity:.12; pointer-events:none; 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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E"); mix-blend-mode:soft-light; }
@keyframes heroDrift { from { transform:scale(1.025) translate3d(0,0,0);} to { transform:scale(1.07) translate3d(-.5%, -.5%,0);} }
.hero::before, .road-section::before, .status-section::before, .finale-section::before, .site-footer::before {
  content:""; position:absolute; inset:0; pointer-events:none; background:var(--fabric-pattern); opacity:.12; mix-blend-mode:soft-light;
}
.hero-content { position:relative; z-index:3; min-height:100svh; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding-top:90px; max-width:min(1080px, 100%); }
.hero-kicker { font-size:11px; letter-spacing:.34em; font-weight:600; color:rgba(234,220,200,.62); margin-bottom:18px; }
.hero-title-wrap { display:flex; align-items:flex-start; gap:22px; }
.hero-monogram { width:clamp(78px,8vw,114px); flex:none; margin-top:10px; filter:drop-shadow(0 8px 24px rgba(0,0,0,.18)); }
.hero-heading-block { display:flex; flex-direction:column; }
.hero-title { margin:0; font-size:clamp(62px,7.4vw,112px); line-height:.89; letter-spacing:-.055em; font-weight:520; max-width:1060px; }
.hero-title > span { white-space:nowrap; }
.hero-subtitle { margin:16px 0 0; font-size:clamp(15px,1.45vw,22px); line-height:1.2; letter-spacing:.42em; text-transform:uppercase; color:var(--gold); }
.hero-copy { max-width:590px; margin:30px 0 0; font-size:clamp(17px,1.6vw,22px); line-height:1.55; color:rgba(234,220,200,.82); font-weight:350; }
.hero-link { margin-top:34px; display:inline-flex; align-items:center; gap:16px; font-size:11px; text-transform:uppercase; letter-spacing:.18em; border-bottom:1px solid rgba(234,220,200,.42); padding-bottom:10px; }
.hero-link .arrow { color:var(--gold); font-size:16px; transition:transform .25s var(--ease); }
.hero-link:hover .arrow { transform:translate(3px,3px); }
.hero-fabric-ghost {
  position:absolute; z-index:1; right:-5vw; bottom:-9vh; width:min(50vw,760px); height:min(64vh,620px);
  background:url('assets/embroidered.webp') center/cover no-repeat;
  opacity:.095; filter:saturate(.76) contrast(1.08);
  -webkit-mask-image:linear-gradient(135deg, transparent 0%, rgba(0,0,0,.16) 23%, #000 58%, transparent 100%);
  mask-image:linear-gradient(135deg, transparent 0%, rgba(0,0,0,.16) 23%, #000 58%, transparent 100%);
  mix-blend-mode:screen; pointer-events:none;
}
.hero-stitch-frame {
  position:absolute; z-index:2; inset:112px 9vw 68px 9vw; border:1px solid rgba(234,220,200,.10); pointer-events:none;
}
.hero-stitch-frame::before, .hero-stitch-frame::after { content:""; position:absolute; height:1px; width:72px; background:var(--gold); opacity:.78; }
.hero-stitch-frame::before { left:-1px; top:-1px; }
.hero-stitch-frame::after { right:-1px; bottom:-1px; }
.hero-meta { position:absolute; z-index:2; left:50%; bottom:28px; transform:translateX(-50%); display:flex; justify-content:space-between; font-size:9px; letter-spacing:.22em; color:rgba(234,220,200,.45); }

.light-section { background:var(--cream-soft); color:var(--ink); }
.dark-section { background:var(--forest-deep); color:var(--cream); }
.project-section, .road-section, .journey-section, .status-section, .initiator-section, .join-section, .contact-section, .journal-section { padding:clamp(110px,12vw,190px) 0; }
.split-grid { display:grid; grid-template-columns:120px 1fr; gap:40px; }
.section-index { color:rgba(15,46,36,.32); font-size:12px; letter-spacing:.22em; padding-top:9px; }
.section-main { max-width:1000px; }
.eyebrow { margin:0 0 28px; font-size:10px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:rgba(15,46,36,.54); }
.eyebrow-gold { color:var(--gold); }
.display { margin:0; font-size:clamp(48px,6.8vw,104px); line-height:.96; letter-spacing:-.055em; font-weight:430; }
.display-dark { color:var(--forest); }
.lead { margin:36px 0 0; max-width:840px; font-size:clamp(18px,2vw,28px); line-height:1.55; font-weight:350; color:rgba(234,220,200,.72); }
.lead-dark { color:rgba(15,46,36,.76); }
.lead-narrow { max-width:510px; align-self:end; }
.project-flow { margin-top:74px; display:flex; align-items:center; gap:28px; }
.flow-node { width:min(330px,40vw); min-height:132px; padding:28px; border:1px solid var(--line-light); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); display:flex; flex-direction:column; justify-content:space-between; background:rgba(255,255,255,.16); position:relative; overflow:hidden; }
.flow-node::before { content:""; position:absolute; inset:0; background:var(--fabric-pattern); opacity:.08; pointer-events:none; }
.flow-node-outline { background:transparent; border-style:dashed; opacity:.62; }
.flow-small { font-size:9px; letter-spacing:.26em; color:rgba(15,46,36,.48); }
.flow-node strong { font-size:20px; letter-spacing:.14em; font-weight:500; }
.flow-arrow { color:var(--gold); font-size:24px; }

.road-section { position:relative; overflow:hidden; }
.field-ghost { position:absolute; inset:0; background:url('assets/field-detail.webp') center/cover no-repeat; opacity:.075; filter:grayscale(.4); }
.road-section .shell { position:relative; z-index:1; }
.road-heading { display:grid; grid-template-columns:1.3fr .7fr; gap:70px; align-items:end; }
.road-line { margin-top:96px; display:grid; grid-template-columns:repeat(6,1fr); position:relative; }
.road-line::before { content:""; position:absolute; left:0; right:0; top:22px; height:1px; background:linear-gradient(90deg,var(--gold),rgba(201,169,106,.18)); }
.road-step { position:relative; padding:54px 24px 0 0; min-height:154px; border-right:1px solid var(--line-dark); }
.road-step::before { content:""; position:absolute; top:16px; left:0; width:13px; height:13px; border-radius:50%; background:var(--forest-deep); border:1px solid var(--gold); box-shadow:0 0 0 4px var(--forest-deep); }
.road-step-last::before { background:var(--gold); }
.road-step span { display:block; color:var(--gold); font-size:9px; letter-spacing:.18em; margin-bottom:18px; }
.road-step strong { display:block; font-size:15px; letter-spacing:.12em; font-weight:550; }
.road-step small { display:block; color:var(--muted-dark); margin-top:10px; font-size:12px; line-height:1.4; }

.material-break { height:min(78vh,780px); position:relative; background:var(--forest); overflow:hidden; }
.material-break img { width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.03); }
.material-vignette { position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,18,13,.20),rgba(3,18,13,.22)), radial-gradient(circle at 50% 45%,transparent 32%,rgba(3,18,13,.64) 100%); }
.material-label { position:absolute; left:34px; bottom:26px; font-size:9px; letter-spacing:.26em; color:rgba(234,220,200,.58); }

.journey-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(60px,8vw,120px); align-items:center; }
.journey-copy { max-width:570px; }
.quote-line { margin-top:54px; display:grid; grid-template-columns:64px 1fr; gap:22px; align-items:start; }
.quote-line span { height:1px; background:var(--gold); margin-top:11px; }
.quote-line p { margin:0; color:rgba(15,46,36,.60); font-size:14px; line-height:1.6; }
.journey-visual { margin:0; }
.journey-visual img { width:100%; aspect-ratio:4/3; object-fit:cover; filter:saturate(.80) contrast(1.03); }
.journey-visual figcaption { display:flex; justify-content:space-between; padding-top:15px; color:rgba(15,46,36,.48); font-size:9px; letter-spacing:.20em; }

.status-top { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; }
.status-badge { display:flex; align-items:center; gap:10px; border:1px solid var(--line-dark); padding:11px 14px; font-size:9px; letter-spacing:.20em; }
.status-badge i { width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 14px rgba(201,169,106,.65); }
.status-grid { margin-top:80px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); }
.status-card { min-height:260px; padding:30px 28px 34px 0; border-right:1px solid var(--line-dark); position:relative; overflow:hidden; }
.status-card::after { content:""; position:absolute; inset:0; background:var(--fabric-pattern); opacity:.06; pointer-events:none; }
.status-card:not(:first-child) { padding-left:28px; }
.status-card:last-child { border-right:0; }
.card-no { font-size:9px; letter-spacing:.22em; color:var(--gold); }
.status-card h3 { margin:84px 0 14px; font-size:18px; font-weight:500; letter-spacing:.04em; }
.status-card p { margin:0; color:var(--muted-dark); font-size:14px; line-height:1.6; }

.initiator-grid { display:grid; grid-template-columns:minmax(280px, 360px) minmax(0, 1fr); gap:clamp(52px,7vw,110px); align-items:center; }
.initiator-stamp { aspect-ratio:1; max-width:430px; border:1px solid var(--line-light); box-shadow: inset 0 0 0 1px rgba(15,46,36,.05); display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; background:linear-gradient(145deg, rgba(15,46,36,.035), transparent); overflow:hidden; }
.initiator-stamp::before, .initiator-stamp::after { content:""; position:absolute; background:var(--line-light); }
.initiator-stamp::before { width:1px; top:0; bottom:0; left:50%; }
.initiator-stamp::after { height:1px; left:0; right:0; top:50%; }
.initiator-stamp span { position:relative; z-index:1; font-size:clamp(76px,10vw,148px); letter-spacing:-.08em; color:var(--forest); font-weight:450; background:var(--cream-soft); padding:0 18px; }
.initiator-stamp small { position:absolute; bottom:22px; left:22px; font-size:9px; letter-spacing:.20em; color:rgba(15,46,36,.45); }
.small-copy { max-width:650px; margin:28px 0 0; font-size:14px; line-height:1.7; color:rgba(15,46,36,.56); }

.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(60px,9vw,140px); }
.contact-side { align-self:end; }
.contact-side .lead { margin-top:0; font-size:clamp(17px,1.6vw,23px); }
.contact-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:34px; }
.contact-tags span { border:1px solid var(--line-dark); padding:9px 11px; font-size:9px; letter-spacing:.12em; color:rgba(234,220,200,.65); text-transform:uppercase; }
.contact-button span:last-child { font-size:18px; }

.journal-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(60px,9vw,140px); align-items:start; }
.journal-card { border-top:1px solid var(--line-light); padding-top:18px; position:relative; }
.journal-card::before { content:""; position:absolute; top:-1px; left:0; width:72px; height:1px; background:var(--gold); }
.journal-card-top { display:flex; justify-content:space-between; font-size:9px; letter-spacing:.20em; color:rgba(15,46,36,.44); }
.journal-card h3 { margin:54px 0 18px; font-size:clamp(28px,3.4vw,52px); line-height:1.04; letter-spacing:-.04em; font-weight:430; color:var(--forest); max-width:680px; }
.journal-card p { margin:0; color:rgba(15,46,36,.60); font-size:15px; line-height:1.7; max-width:580px; }
.journal-line { margin-top:44px; height:1px; background:linear-gradient(90deg,var(--gold),var(--line-light)); }

.finale-section { min-height:82vh; position:relative; display:flex; align-items:center; overflow:hidden; background:var(--forest-deep); }
.finale-bg { position:absolute; inset:-5%; background:url('assets/hero-poster.webp') center/cover no-repeat; filter:saturate(.70) brightness(.42); transform:scale(1.04); }
.finale-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,18,14,.86),rgba(4,18,14,.40)), linear-gradient(180deg,rgba(4,18,14,.2),rgba(4,18,14,.75)); }
.finale-content { position:relative; z-index:1; padding:120px 0; }
.finale-logo { width:74px; margin-bottom:44px; }
.finale-kicker { margin:0 0 18px; color:var(--gold); font-size:10px; letter-spacing:.28em; }
.finale-title { margin:0; font-size:clamp(52px,7.6vw,118px); line-height:.94; letter-spacing:-.055em; font-weight:430; }
.finale-title span { color:rgba(234,220,200,.58); }
.finale-road { margin:38px 0 0; font-size:12px; letter-spacing:.34em; }

.site-footer { position:relative; background:#04130f; padding:76px 0 26px; border-top:1px solid rgba(234,220,200,.09); overflow:hidden; }
.footer-grid { display:grid; grid-template-columns:1fr .55fr 1fr; gap:70px; }
.footer-brand img { width:min(340px,100%); }
.footer-links { display:grid; gap:13px; align-content:start; }
.footer-links a { font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:rgba(234,220,200,.60); }
.footer-contact { display:grid; gap:20px; align-content:start; }
.footer-contact a { font-size:13px; color:var(--cream); }
.footer-contact p { margin:0; max-width:430px; color:rgba(234,220,200,.45); font-size:12px; line-height:1.6; }
.footer-bottom { margin-top:64px; padding-top:20px; border-top:1px solid rgba(234,220,200,.09); display:flex; justify-content:space-between; font-size:8px; letter-spacing:.18em; color:rgba(234,220,200,.34); }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity:1; transform:translateY(0); }

@media (max-width: 980px) {
  :root { --shell:min(100% - 40px, 900px); }
  .site-header { padding-inline:20px; grid-template-columns:1fr auto; }
  .desktop-nav { display:none; }
  .header-actions { gap:12px; }
  .menu-button { display:block; }
  .brand-name { display:none; }
  .split-grid { grid-template-columns:1fr; }
  .section-index { display:none; }
  .road-heading, .journey-grid, .initiator-grid, .join-top, .join-detail-grid, .journal-grid { grid-template-columns:1fr; }
  .hero-fabric-ghost { width:58vw; opacity:.08; }
  .hero-stitch-frame { inset:100px 24px 58px; }
  .lead-narrow { max-width:720px; margin-top:30px; }
  .road-line { grid-template-columns:repeat(3,1fr); row-gap:42px; }
  .road-line::before { display:none; }
  .road-step { border-top:1px solid var(--line-dark); padding-top:46px; }
  .road-step::before { top:-7px; }
  .status-grid { grid-template-columns:repeat(2,1fr); }
  .join-grid { grid-template-columns:1fr; border-left:0; }
  .join-card { border-right:0; border-bottom:1px solid var(--line-dark); }
  .join-card:last-child { border-bottom:1px solid var(--line-dark); }
  .join-actions { flex-direction:column; align-items:flex-start; }
  .contact-button { width:100%; min-width:0; }
  .status-card:nth-child(2) { border-right:0; }
  .status-card:nth-child(-n+2) { border-bottom:1px solid var(--line-dark); }
  .initiator-portrait-card { min-height:360px; width:min(100%, 320px); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .initiator-portrait { width:min(68%, 210px); max-height:280px; }
  .initiator-copy .display { font-size:clamp(54px, 14vw, 78px); }
  .footer-brand { grid-column:1/-1; }
}

@media (max-width: 640px) {
  :root { --shell:calc(100vw - 32px); }
  .site-header { height:72px; }
  .brand-mark { width:30px; height:30px; }
  .hero-video-desktop { display:none; }
  .hero-video-mobile { display:block; }
  .hero-overlay { background:linear-gradient(180deg,rgba(4,18,14,.42),rgba(4,18,14,.58) 45%,rgba(4,18,14,.88)); }
  .hero-content { justify-content:flex-end; padding:0 0 112px; }
  .hero-actions { gap:10px; }
  .cta-button { width:100%; min-width:0; }
  .hero-kicker { font-size:9px; letter-spacing:.28em; margin-bottom:14px; }
  .hero-title-wrap { gap:14px; }
  .hero-monogram { width:52px; margin-top:8px; }
  .hero-title { font-size:clamp(44px,11.5vw,72px); line-height:.90; }
  .hero-subtitle { margin-top:12px; font-size:12px; letter-spacing:.32em; }
  .hero-copy { font-size:17px; line-height:1.5; margin-top:24px; max-width:90%; }
  .hero-link { margin-top:26px; }
  .hero-fabric-ghost { width:92vw; right:-38vw; bottom:-8vh; opacity:.07; }
  .hero-stitch-frame { inset:88px 14px 52px; }
  .hero-meta { bottom:18px; }
  .hero-meta span:last-child { display:none; }
  .project-section, .road-section, .journey-section, .status-section, .initiator-section, .join-section, .contact-section, .journal-section { padding:94px 0; }
  .display { font-size:clamp(46px,14vw,72px); }
  .lead { font-size:18px; margin-top:28px; }
  .eyebrow { margin-bottom:20px; }
  .project-flow { margin-top:50px; display:grid; grid-template-columns:1fr; gap:14px; }
  .flow-node { width:100%; min-height:112px; }
  .flow-arrow { transform:rotate(90deg); width:max-content; margin-left:8px; }
  .road-line { margin-top:64px; grid-template-columns:1fr 1fr; }
  .road-step { min-height:144px; }
  .material-break { height:58vh; min-height:420px; }
  .material-break img { object-position:52% 50%; }
  .material-label { left:16px; bottom:16px; font-size:7px; }
  .journey-visual { order:-1; }
  .quote-line { margin-top:38px; grid-template-columns:40px 1fr; }
  .status-top { align-items:flex-start; flex-direction:column; }
  .status-grid { margin-top:56px; grid-template-columns:1fr; }
  .status-card, .status-card:not(:first-child) { border-right:0; border-bottom:1px solid var(--line-dark); padding:26px 0; min-height:190px; }
  .status-card:last-child { border-bottom:0; }
  .status-card h3 { margin-top:54px; }
  .initiator-stamp { max-width:100%; width:100%; }
  .contact-tags { gap:6px; }
  .contact-tags span { font-size:8px; }
  .finale-section { min-height:74vh; }
  .finale-content { padding:100px 0; }
  .finale-title { font-size:clamp(48px,14vw,78px); }
  .footer-grid { grid-template-columns:1fr; gap:42px; }
  .footer-brand { grid-column:auto; }
  .footer-brand img { width:270px; max-width:85%; }
  .footer-bottom { flex-direction:column; gap:8px; }
}



/* Contact form — Project New Ground */
.contact-panel {
  margin-top: 54px;
  border: 1px solid var(--line-dark);
  display: grid;
  grid-template-columns: .72fr 1.28fr;
  background: rgba(255,255,255,.018);
  position: relative;
  overflow: hidden;
}
.contact-panel::before {
  content:"";
  position:absolute;
  inset:0;
  background:var(--fabric-pattern);
  opacity:.055;
  pointer-events:none;
}
.contact-panel-copy,
.contact-form { position:relative; z-index:1; }
.contact-panel-copy {
  padding: 42px 36px;
  border-right: 1px solid var(--line-dark);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.contact-panel-copy h3 {
  margin:0;
  font-size:clamp(30px,3.2vw,48px);
  line-height:1.03;
  letter-spacing:-.04em;
  font-weight:450;
  max-width:10ch;
}
.contact-panel-copy > p:not(.detail-kicker) {
  margin:24px 0 0;
  color:var(--muted-dark);
  font-size:15px;
  line-height:1.7;
  max-width:410px;
}
.contact-direct {
  margin-top:auto;
  padding-top:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:100%;
  border-bottom:1px solid rgba(201,169,106,.34);
  padding-bottom:12px;
  color:rgba(234,220,200,.72);
  font-size:11px;
  letter-spacing:.08em;
  transition:color .25s var(--ease), border-color .25s var(--ease);
}
.contact-direct:hover { color:var(--cream); border-color:var(--gold); }
.contact-form { padding:42px; }
.form-row { display:grid; gap:18px; }
.form-row-two { grid-template-columns:1fr 1fr; }
.form-field { display:grid; gap:10px; margin-bottom:18px; }
.form-field > span {
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(234,220,200,.56);
}
.form-field small { font-size:8px; color:rgba(234,220,200,.38); }
.form-field input,
.form-field select,
.form-field textarea {
  width:100%;
  border:1px solid rgba(234,220,200,.18);
  background:rgba(255,255,255,.025);
  color:var(--cream);
  border-radius:0;
  font:inherit;
  font-size:15px;
  outline:none;
  transition:border-color .22s var(--ease), background .22s var(--ease), box-shadow .22s var(--ease);
}
.form-field input,
.form-field select { min-height:54px; padding:0 15px; }
.form-field textarea { padding:15px; resize:vertical; min-height:150px; line-height:1.55; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color:rgba(201,169,106,.72);
  background:rgba(255,255,255,.04);
  box-shadow:0 0 0 2px rgba(201,169,106,.08);
}
.form-field select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%); background-position:calc(100% - 17px) 24px,calc(100% - 12px) 24px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:38px; }
.form-field select option { color:var(--charcoal); background:#f2e8d8; }
.form-consent { display:flex; align-items:flex-start; gap:11px; margin-top:2px; color:rgba(234,220,200,.52); font-size:11px; line-height:1.55; cursor:pointer; }
.form-consent input { appearance:none; width:16px; height:16px; min-width:16px; margin:1px 0 0; border:1px solid rgba(234,220,200,.28); background:rgba(255,255,255,.02); display:grid; place-items:center; cursor:pointer; }
.form-consent input::after { content:""; width:7px; height:4px; border-left:1.5px solid var(--forest-deep); border-bottom:1.5px solid var(--forest-deep); transform:rotate(-45deg) scale(0); transition:transform .18s var(--ease); }
.form-consent input:checked { background:var(--gold); border-color:var(--gold); }
.form-consent input:checked::after { transform:rotate(-45deg) scale(1); }
.form-footer { margin-top:26px; display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; }
.form-submit {
  min-width:230px;
  min-height:58px;
  border:1px solid rgba(201,169,106,.62);
  background:rgba(201,169,106,.16);
  color:var(--cream);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:0 20px;
  font:inherit;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);
}
.form-submit:hover:not(:disabled) { background:var(--gold); color:var(--forest-deep); border-color:var(--gold); transform:translateY(-1px); }
.form-submit:disabled { opacity:.6; cursor:wait; }
.form-status { margin:0; min-height:20px; color:rgba(234,220,200,.52); font-size:12px; line-height:1.5; }
.form-status.is-success { color:#cfdcbf; }
.form-status.is-error { color:#e3b4a7; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none !important; }
.join-tail { margin-top:20px; display:flex; align-items:center; justify-content:space-between; gap:24px; color:rgba(234,220,200,.50); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.join-tail a { color:var(--gold); border-bottom:1px solid rgba(201,169,106,.36); padding-bottom:7px; white-space:nowrap; }

@media (max-width: 980px) {
  .contact-panel { grid-template-columns:1fr; }
  .contact-panel-copy { border-right:0; border-bottom:1px solid var(--line-dark); }
  .contact-panel-copy h3 { max-width:15ch; }
  .contact-direct { margin-top:30px; padding-top:0; }
}

@media (max-width: 640px) {
  .contact-panel { margin-top:36px; }
  .contact-panel-copy, .contact-form { padding:26px 22px; }
  .form-row-two { grid-template-columns:1fr; gap:0; }
  .form-footer { grid-template-columns:1fr; }
  .form-submit { width:100%; min-width:0; }
  .join-tail { flex-direction:column; align-items:flex-start; line-height:1.6; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
  .hero-video { display:none !important; }
}

#project, #road, #journey, #status, #join, #journal, #contact { scroll-margin-top: 72px; }


/* Legal pages */
.form-consent a { color:var(--cream); border-bottom:1px solid rgba(201,169,106,.55); }
.form-consent a:hover { color:var(--gold); }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:12px 18px; padding-top:2px; }
.footer-legal-links a { font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:rgba(234,220,200,.42); }
.footer-legal-links a:hover { color:var(--cream); }

.legal-page { min-height:100vh; background:var(--cream-soft); color:var(--ink); }
.legal-hero { position:relative; padding:170px 0 80px; background:var(--forest-deep); color:var(--cream); overflow:hidden; }
.legal-hero::before { content:""; position:absolute; inset:0; background:var(--fabric-pattern); opacity:.12; pointer-events:none; }
.legal-hero::after { content:""; position:absolute; right:-9vw; top:28px; width:min(46vw,620px); aspect-ratio:1; background:url('assets/logo-monogram-light.png') center/contain no-repeat; opacity:.035; transform:rotate(-4deg); }
.legal-hero .shell { position:relative; z-index:1; }
.legal-back { display:inline-flex; gap:10px; align-items:center; margin-bottom:38px; font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:rgba(234,220,200,.58); }
.legal-back:hover { color:var(--cream); }
.legal-title { margin:0; max-width:960px; font-size:clamp(58px,8vw,118px); line-height:.91; letter-spacing:-.055em; font-weight:430; }
.legal-subtitle { margin:28px 0 0; max-width:720px; color:rgba(234,220,200,.67); font-size:clamp(17px,1.6vw,22px); line-height:1.6; }
.legal-meta { margin-top:34px; display:flex; gap:14px 28px; flex-wrap:wrap; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); }
.legal-body { padding:clamp(80px,9vw,130px) 0; }
.legal-layout { display:grid; grid-template-columns:240px minmax(0,760px); gap:clamp(50px,8vw,120px); align-items:start; }
.legal-toc { position:sticky; top:104px; display:grid; gap:11px; padding-top:6px; }
.legal-toc span { margin-bottom:8px; font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:rgba(15,46,36,.42); }
.legal-toc a { font-size:12px; color:rgba(15,46,36,.58); line-height:1.45; }
.legal-toc a:hover { color:var(--forest); }
.legal-content { display:grid; gap:58px; }
.legal-block { scroll-margin-top:110px; }
.legal-block + .legal-block { padding-top:2px; }
.legal-block .legal-no { display:block; margin-bottom:12px; font-size:9px; letter-spacing:.20em; color:var(--gold); }
.legal-block h2 { margin:0 0 20px; font-size:clamp(30px,4vw,52px); line-height:1.03; letter-spacing:-.035em; font-weight:470; color:var(--forest); }
.legal-block h3 { margin:30px 0 10px; font-size:20px; font-weight:520; color:var(--forest); }
.legal-block p, .legal-block li { color:rgba(15,46,36,.72); font-size:15px; line-height:1.75; }
.legal-block p { margin:0 0 15px; }
.legal-block ul { margin:15px 0 0; padding:0; list-style:none; display:grid; gap:9px; }
.legal-block li { position:relative; padding-left:18px; }
.legal-block li::before { content:""; position:absolute; left:0; top:.82em; width:6px; height:6px; border:1px solid var(--gold); transform:translateY(-50%) rotate(45deg); }
.legal-card { margin-top:20px; padding:24px 26px; border:1px solid var(--line-light); background:rgba(255,255,255,.22); }
.legal-card dl { margin:0; display:grid; grid-template-columns:150px 1fr; gap:10px 20px; }
.legal-card dt { font-size:9px; letter-spacing:.15em; text-transform:uppercase; color:rgba(15,46,36,.44); }
.legal-card dd { margin:0; font-size:14px; color:var(--forest); overflow-wrap:anywhere; }
.legal-inline-link { color:var(--forest); border-bottom:1px solid rgba(201,169,106,.75); }
.legal-inline-link:hover { color:#805f26; }
.legal-callout { margin-top:28px; border-left:2px solid var(--gold); padding:6px 0 6px 20px; }
.legal-callout p { margin:0; color:rgba(15,46,36,.78); }
.legal-footer-note { margin-top:64px; padding-top:24px; border-top:1px solid var(--line-light); color:rgba(15,46,36,.45); font-size:11px; line-height:1.6; }

@media (max-width: 840px) {
  .legal-hero { padding:130px 0 64px; }
  .legal-layout { grid-template-columns:1fr; gap:40px; }
  .legal-toc { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); border-bottom:1px solid var(--line-light); padding-bottom:28px; }
  .legal-toc span { grid-column:1/-1; }
}
@media (max-width: 560px) {
  .legal-title { font-size:clamp(48px,15vw,72px); }
  .legal-toc { grid-template-columns:1fr; }
  .legal-card dl { grid-template-columns:1fr; gap:4px; }
  .legal-card dd { margin-bottom:10px; }
}
