@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
  --ink: #173b4e;
  --ink-2: #224f63;
  --forest: #3f6d46;
  --sun: #f4d878;
  --peach: #f3b777;
  --paper: #f5f1e9;
  --paper-2: #ebe5d9;
  --white: #fffdf8;
  --line: rgba(245, 241, 233, .17);
  --muted: rgba(245, 241, 233, .68);
  --shadow: 0 22px 80px rgba(4, 20, 29, .28);
  --font-display: 'Space Grotesk', sans-serif;
  --font-body: 'Manrope', sans-serif;
  --ease: cubic-bezier(.2,.8,.2,1);
  --fs: 1;
}

html[data-theme='light'] {
  --bg: var(--paper);
  --surface: #fffaf0;
  --text: var(--ink);
  --text-soft: #5c6f72;
  --line: rgba(23,59,78,.16);
  --glass: rgba(245,241,233,.82);
  --shadow: 0 22px 80px rgba(49, 61, 60, .12);
}
html:not([data-theme='light']) {
  --bg: #08171f;
  --surface: #0e2530;
  --text: var(--paper);
  --text-soft: rgba(245,241,233,.65);
  --line: rgba(245,241,233,.15);
  --glass: rgba(8,23,31,.82);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: calc(16px * var(--fs));
  background: var(--bg);
  color: var(--text);
  transition: background .35s ease, color .35s ease;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}
body.motion-reduced *, body.motion-reduced *::before, body.motion-reduced *::after {
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: .01ms !important;
  scroll-behavior: auto !important;
}
button, input, textarea, select { font: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { color: inherit; }
::selection { background: var(--sun); color: var(--ink); }

.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; background: var(--sun); color: var(--ink); padding: 10px 14px; border-radius: 99px; font-weight: 700; }
.skip-link:focus { top: 16px; }

.site-header {
  height: 92px;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 90;
  padding: 0 clamp(18px, 3.2vw, 52px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(to bottom, var(--glass), rgba(8,23,31,0));
  backdrop-filter: blur(14px);
}
.brand-mark {
  width: 172px;
  height: 70px;
  display: flex;
  align-items: center;
}
.brand-mark img { width: 100%; max-height: 64px; object-fit: contain; filter: drop-shadow(0 6px 16px rgba(0,0,0,.08)); }
.menu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--line);
  background: var(--glass);
  border-radius: 999px;
  padding: 10px 15px 10px 16px;
  cursor: pointer;
  transition: transform .25s var(--ease), border-color .25s ease, background .25s ease;
}
.menu-trigger:hover { transform: translateY(-2px); border-color: rgba(244,216,120,.65); }
.menu-trigger span { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; }
.menu-icon { width: 26px; height: 26px; border-radius: 50%; background: var(--sun); display: grid; place-items: center; position: relative; }
.menu-icon::before, .menu-icon::after { content: ''; position: absolute; width: 10px; height: 1.5px; background: var(--ink); transition: .3s var(--ease); }
.menu-icon::before { transform: translateY(-2px); }
.menu-icon::after { transform: translateY(2px); }
body.menu-open .menu-icon::before { transform: rotate(45deg); }
body.menu-open .menu-icon::after { transform: rotate(-45deg); }

.menu-panel {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: #07151c;
  color: var(--paper);
  display: grid;
  grid-template-columns: minmax(220px, 28vw) 1fr;
  opacity: 0;
  pointer-events: none;
  clip-path: inset(0 0 100% 0);
  transition: clip-path .58s var(--ease), opacity .18s ease;
}
body.menu-open .menu-panel { opacity: 1; pointer-events: auto; clip-path: inset(0 0 0 0); }
.menu-art { border-right: 1px solid rgba(245,241,233,.12); position: relative; overflow: hidden; }
.menu-art::before, .menu-art::after { content:''; position:absolute; border: 1px solid rgba(244,216,120,.62); border-radius:50%; width:320px; aspect-ratio:1; left:-110px; top:28%; }
.menu-art::after { width:430px; left:-166px; top:22%; border-color: rgba(243,183,119,.36); }
.menu-bird-line { position:absolute; inset:auto 28px 40px; font: 600 clamp(1.1rem,2vw,1.7rem)/1.08 var(--font-display); color: var(--paper); max-width: 260px; }
.menu-main { padding: 122px clamp(24px,5vw,78px) 38px; display:flex; flex-direction:column; justify-content:space-between; }
.menu-nav { border-top: 1px solid rgba(245,241,233,.14); }
.menu-link { display:grid; grid-template-columns:52px 1fr auto; gap:20px; align-items:center; padding:18px 0; border-bottom:1px solid rgba(245,241,233,.14); transition: padding-left .25s var(--ease), color .25s ease; }
.menu-link:hover { padding-left: 12px; color: var(--sun); }
.menu-link small { font: 600 .7rem/1 var(--font-body); color: rgba(245,241,233,.45); }
.menu-link strong { font: 500 clamp(1.55rem,3.2vw,3rem)/1 var(--font-display); letter-spacing:-.04em; }
.menu-link svg { width:23px; height:23px; opacity:.62; }
.menu-foot { display:flex; justify-content:space-between; gap:18px; align-items:flex-end; color:rgba(245,241,233,.58); font-size:.78rem; }
.lang-switch { display:flex; gap:8px; }
.lang-switch button { border:1px solid rgba(245,241,233,.18); background:transparent; padding:8px 10px; border-radius:99px; cursor:pointer; color:inherit; }
.lang-switch button.active { background:var(--sun); color:var(--ink); border-color:var(--sun); }

.page-shell { min-height:100vh; padding-top:92px; }
.grid-wrap { width:min(1540px, calc(100% - 36px)); margin:0 auto; border-left:1px solid var(--line); border-right:1px solid var(--line); }
.hero-home { min-height: min(860px, calc(100vh - 26px)); display:grid; grid-template-rows:auto 1fr; border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.hero-topline { display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid var(--line); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-soft); }
.hero-stage { display:grid; place-items:center; position:relative; padding:50px clamp(18px,4vw,66px) 64px; }
.hero-content { width:min(100%, 1280px); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(330px,.9fr); gap:clamp(26px,5vw,86px); align-items:center; z-index:3; }
.hero-copy h1 { margin:0 0 28px; font: 500 clamp(3.5rem,7.8vw,8.2rem)/.87 var(--font-display); letter-spacing:-.065em; max-width: 8ch; text-transform:uppercase; }
.hero-copy .cta { margin-top:20px; }
.cta { display:inline-flex; align-items:center; gap:12px; background:var(--sun); color:var(--ink); border:1px solid var(--sun); padding:14px 18px 14px 20px; border-radius:999px; font-weight:800; font-size:.84rem; letter-spacing:.03em; transition:transform .24s var(--ease), box-shadow .24s ease; }
.cta:hover { transform:translateY(-3px); box-shadow:0 12px 30px rgba(244,216,120,.18); }
.cta svg { width:18px; height:18px; }
.hero-visual { position:relative; min-height:530px; display:grid; place-items:center; perspective:900px; }
.hero-image-frame { width:min(100%,560px); aspect-ratio:4/5; overflow:hidden; position:relative; transform-style:preserve-3d; box-shadow:var(--shadow); }
.hero-image-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(5,20,29,.38)); pointer-events:none; }
.hero-image-frame img { width:100%; height:100%; object-fit:cover; transform:scale(1.04); transition:transform .7s var(--ease); }
.hero-image-frame:hover img { transform:scale(1.09); }
.hero-ring { position:absolute; border:1px solid; border-radius:50%; pointer-events:none; animation:floatRing 9s ease-in-out infinite; }
.hero-ring.r1 { width:440px; height:440px; border-color:rgba(244,216,120,.55); right:-88px; top:-40px; }
.hero-ring.r2 { width:520px; height:520px; border-color:rgba(243,183,119,.35); right:-120px; top:-82px; animation-delay:-3s; }
.hero-ring.r3 { width:320px; height:320px; border-color:rgba(63,109,70,.55); left:-70px; bottom:-56px; animation-delay:-5s; }
.hero-olive { position:absolute; width:110px; right:-18px; bottom:38px; opacity:.9; animation:sway 5s ease-in-out infinite; }
.hero-olive path { stroke:var(--forest); }
@keyframes floatRing { 0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(-8px,14px,0) rotate(6deg)} }
@keyframes sway { 0%,100%{transform:rotate(-4deg)}50%{transform:rotate(7deg)} }

.section { padding:clamp(70px,9vw,145px) clamp(18px,4vw,66px); border-bottom:1px solid var(--line); position:relative; }
.section-head { display:grid; grid-template-columns:120px 1fr auto; gap:28px; align-items:start; margin-bottom:clamp(34px,6vw,78px); }
.eyebrow { font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; color:var(--text-soft); }
.section-head h2, .page-title { margin:0; font:500 clamp(2.7rem,6vw,6.4rem)/.92 var(--font-display); letter-spacing:-.055em; text-transform:uppercase; }
.section-head h2 { max-width:10ch; }
.section-num { font:500 clamp(1.15rem,2vw,1.65rem)/1 var(--font-display); color:var(--text-soft); }

.story-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(24px,4vw,60px); align-items:end; }
.story-image { min-height:560px; position:relative; overflow:hidden; }
.story-image img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform 1s var(--ease); }
.story-image:hover img { transform:scale(1.035); }
.story-copy { padding-bottom:28px; }
.story-copy p { font-size:clamp(1.1rem,2vw,1.65rem); line-height:1.45; letter-spacing:-.025em; max-width:36ch; margin:0 0 34px; }
.micro-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); }
.micro { padding:18px 0; border-bottom:1px solid var(--line); font-size:.8rem; color:var(--text-soft); }
.micro:nth-child(odd){border-right:1px solid var(--line);padding-right:14px}.micro:nth-child(even){padding-left:14px}

.pillars { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.pillar { min-height:330px; padding:30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; overflow:hidden; transition:background .3s ease, color .3s ease; }
.pillar::before { content:''; position:absolute; width:210px; aspect-ratio:1; border-radius:50%; border:1px solid currentColor; opacity:.16; right:-88px; top:-84px; transition:transform .55s var(--ease); }
.pillar:hover::before { transform:scale(1.35) translate(-6px,8px); }
.pillar:nth-child(1):hover { background:var(--sun); color:var(--ink); }
.pillar:nth-child(2):hover { background:var(--peach); color:var(--ink); }
.pillar:nth-child(3):hover { background:var(--forest); color:var(--paper); }
.pillar-index { font-size:.7rem; letter-spacing:.14em; color:var(--text-soft); }
.pillar h3 { margin:90px 0 16px; font:500 clamp(1.55rem,3vw,2.6rem)/1 var(--font-display); letter-spacing:-.04em; text-transform:uppercase; }
.pillar p { max-width:31ch; color:var(--text-soft); line-height:1.55; }
.pillar:hover p, .pillar:hover .pillar-index { color:currentColor; opacity:.72; }

.route { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(30px,6vw,96px); align-items:center; }
.route-copy h3 { font:500 clamp(2.2rem,4.6vw,4.8rem)/.95 var(--font-display); text-transform:uppercase; letter-spacing:-.05em; margin:0 0 22px; }
.route-copy p { color:var(--text-soft); line-height:1.65; max-width:48ch; }
.route-map { min-height:430px; position:relative; border:1px solid var(--line); overflow:hidden; background:linear-gradient(155deg,rgba(244,216,120,.08),transparent 58%); }
.route-map svg { position:absolute; inset:0; width:100%; height:100%; }
.map-chip { position:absolute; display:flex; gap:8px; align-items:center; font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--text-soft); }
.map-chip::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--sun); box-shadow:0 0 0 7px rgba(244,216,120,.1); }
.map-chip.ca { left:13%; top:43%; }.map-chip.az{left:32%;top:56%}.map-chip.nm{left:50%;top:50%}.map-chip.tx{left:70%;top:60%}

.support-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.partner-slot { aspect-ratio:1.1; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; place-items:center; padding:22px; color:var(--text-soft); text-align:center; position:relative; overflow:hidden; }
.partner-slot::before { content:''; width:62px; height:62px; border:1px solid var(--line); border-radius:50%; position:absolute; top:30%; left:50%; transform:translate(-50%,-50%); }
.partner-slot span { margin-top:74px; font-size:.75rem; }
.support-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.ghost { display:inline-flex; align-items:center; gap:10px; padding:13px 17px; border:1px solid var(--line); border-radius:999px; font-weight:700; font-size:.82rem; transition:.25s var(--ease); }
.ghost:hover { border-color:var(--sun); transform:translateY(-2px); }

.footer-cta { padding:clamp(80px,10vw,150px) clamp(18px,4vw,66px) 34px; position:relative; overflow:hidden; }
.footer-cta h2 { margin:0 0 34px; font:500 clamp(3.2rem,8vw,8.6rem)/.88 var(--font-display); letter-spacing:-.065em; max-width:10ch; text-transform:uppercase; }
.footer-meta { margin-top:90px; padding-top:20px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; color:var(--text-soft); font-size:.78rem; }

/* Inner pages */
.page-hero { min-height:560px; padding:clamp(70px,9vw,140px) clamp(18px,4vw,66px) 64px; border-bottom:1px solid var(--line); display:grid; align-content:end; position:relative; overflow:hidden; }
.page-hero .kicker { color:var(--text-soft); text-transform:uppercase; font-size:.75rem; letter-spacing:.15em; margin-bottom:25px; }
.page-title { max-width:12ch; }
.page-hero .intro { max-width:50ch; font-size:clamp(1rem,1.6vw,1.25rem); line-height:1.6; color:var(--text-soft); margin:26px 0 0; }
.page-hero .brand-arc { position:absolute; width:600px; aspect-ratio:1; border:1px solid rgba(244,216,120,.34); border-radius:50%; right:-190px; top:-180px; }
.page-hero .brand-arc::after { content:''; position:absolute; inset:48px; border:1px solid rgba(243,183,119,.3); border-radius:50%; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,82px); align-items:start; }
.big-copy { font:500 clamp(2rem,4.3vw,4rem)/1.04 var(--font-display); letter-spacing:-.045em; text-transform:uppercase; margin:0; }
.prose { color:var(--text-soft); line-height:1.75; max-width:64ch; }
.prose p:first-child { margin-top:0; }
.image-tall { min-height:620px; position:relative; overflow:hidden; border:1px solid var(--line); }
.image-tall img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.image-caption { margin-top:10px; font-size:.72rem; color:var(--text-soft); }
.value-list { margin-top:40px; border-top:1px solid var(--line); }
.value-row { display:grid; grid-template-columns:70px 1fr auto; gap:20px; padding:20px 0; border-bottom:1px solid var(--line); align-items:center; }
.value-row strong { font:500 clamp(1.25rem,2.3vw,2rem)/1 var(--font-display); text-transform:uppercase; }
.value-row span { color:var(--text-soft); font-size:.78rem; }
.profile-framework { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.profile-card { min-height:340px; padding:25px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; }
.profile-card .avatar-placeholder { width:90px; aspect-ratio:1; border-radius:50%; border:1px dashed var(--line); display:grid; place-items:center; color:var(--text-soft); font-size:.68rem; }
.profile-card h3 { font:500 1.5rem/1.05 var(--font-display); text-transform:uppercase; margin:24px 0 8px; }
.profile-card p { color:var(--text-soft); font-size:.9rem; line-height:1.5; }

.work-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.work-card { min-height:360px; border:1px solid var(--line); padding:26px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.work-card::before { content:''; position:absolute; width:180px; aspect-ratio:1; border:1px solid currentColor; border-radius:50%; right:-80px; top:-70px; opacity:.12; }
.work-card h3 { font:500 clamp(1.5rem,2.4vw,2.2rem)/1 var(--font-display); text-transform:uppercase; letter-spacing:-.03em; max-width:8ch; }
.work-card p { color:var(--text-soft); line-height:1.55; max-width:30ch; }
.impact-feature { display:grid; grid-template-columns:1.15fr .85fr; min-height:590px; border:1px solid var(--line); }
.impact-feature .image { overflow:hidden; min-height:420px; }.impact-feature .image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.impact-feature:hover .image img{transform:scale(1.04)}
.impact-feature .copy { padding:clamp(28px,5vw,66px); display:flex; flex-direction:column; justify-content:flex-end; }
.impact-feature .copy h3 { font:500 clamp(2rem,4.5vw,4.6rem)/.95 var(--font-display); text-transform:uppercase; letter-spacing:-.05em; margin:0 0 24px; }
.impact-feature .copy p { color:var(--text-soft); line-height:1.65; }

.cms-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cms-card { border:1px solid var(--line); padding:24px; min-height:320px; display:flex; flex-direction:column; justify-content:space-between; }
.cms-card .tag { font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--text-soft); }
.cms-card h3 { font:500 clamp(1.45rem,2.2vw,2.2rem)/1.05 var(--font-display); text-transform:uppercase; }
.cms-card p { color:var(--text-soft); line-height:1.55; }

.vault-shell { display:grid; grid-template-columns:.85fr 1.15fr; border:1px solid var(--line); min-height:600px; overflow:hidden; }
.vault-art { background:linear-gradient(145deg,var(--forest),#244c36); color:var(--paper); padding:clamp(28px,5vw,62px); position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; }
.vault-art::before,.vault-art::after{content:'';position:absolute;border:1px solid rgba(255,255,255,.23);border-radius:50%;width:420px;aspect-ratio:1;right:-190px;top:-150px}.vault-art::after{width:520px;right:-230px;top:-200px}
.vault-art h3 { font:500 clamp(2.4rem,4.5vw,4.6rem)/.92 var(--font-display); text-transform:uppercase; letter-spacing:-.05em; max-width:8ch; z-index:1; }
.vault-art p { max-width:34ch; line-height:1.6; opacity:.74; z-index:1; }
.vault-login { padding:clamp(28px,5vw,64px); display:flex; flex-direction:column; justify-content:center; }
.vault-login h2 { font:500 clamp(2rem,4vw,3.6rem)/1 var(--font-display); text-transform:uppercase; margin:0 0 12px; }
.vault-login > p { color:var(--text-soft); margin:0 0 34px; max-width:48ch; line-height:1.6; }
.form-row { display:grid; gap:9px; margin-bottom:18px; }
.form-row label { font-size:.75rem; letter-spacing:.07em; text-transform:uppercase; color:var(--text-soft); }
.form-row input,.form-row textarea,.form-row select { width:100%; background:transparent; color:var(--text); border:1px solid var(--line); border-radius:0; padding:14px 15px; outline:none; }
.form-row input:focus,.form-row textarea:focus,.form-row select:focus { border-color:var(--sun); }
.form-status { margin-top:18px; padding:12px 14px; border:1px solid var(--line); color:var(--text-soft); font-size:.82rem; display:none; }
.form-status.show { display:block; }
.vault-list { margin-top:46px; display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.vault-item { padding:20px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--text-soft); font-size:.88rem; }

.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,6vw,96px); }
.contact-side h2 { font:500 clamp(2.4rem,5vw,5.2rem)/.92 var(--font-display); text-transform:uppercase; letter-spacing:-.05em; margin:0 0 22px; }
.contact-side p { color:var(--text-soft); line-height:1.65; }
.contact-detail { margin-top:44px; padding-top:20px; border-top:1px solid var(--line); }
.contact-detail a { text-decoration:underline; text-underline-offset:4px; }
.contact-form textarea { min-height:160px; resize:vertical; }

/* loader + transitions */
.loader { position:fixed; inset:0; z-index:500; background:#07151c; color:var(--paper); display:grid; place-items:center; transition:opacity .5s ease, visibility .5s ease; }
.loader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loader-scene { width:min(78vw,680px); aspect-ratio:1.6; position:relative; display:grid; place-items:center; overflow:hidden; }
.loader-logo { width:min(330px,54vw); opacity:0; transform:translateY(14px) scale(.96); animation:loaderLogo 1.05s var(--ease) .2s forwards; filter:drop-shadow(0 16px 38px rgba(0,0,0,.18)); }
.loader-line { position:absolute; width:120%; height:1px; background:rgba(245,241,233,.22); left:-10%; transform:scaleX(0); animation:loaderLine .8s var(--ease) .1s forwards; }
.loader-line.a{top:39%}.loader-line.b{top:61%;animation-delay:.22s}
.loader-circle { position:absolute; width:370px; aspect-ratio:1; border-radius:50%; border:1px solid rgba(244,216,120,.58); clip-path:inset(0 100% 0 0); animation:circleReveal .85s var(--ease) .28s forwards; }
.loader-circle.c2 { width:480px; border-color:rgba(243,183,119,.32); animation-delay:.43s; }
.loader-word { position:absolute; bottom:8%; font:600 .7rem/1 var(--font-body); letter-spacing:.2em; text-transform:uppercase; color:rgba(245,241,233,.56); }
@keyframes loaderLogo { to{opacity:1;transform:none} }
@keyframes loaderLine { to{transform:scaleX(1)} }
@keyframes circleReveal { to{clip-path:inset(0 0 0 0)} }
.transition-layer { position:fixed; inset:0; z-index:450; pointer-events:none; visibility:hidden; }
.transition-layer.active { visibility:visible; }
.transition-panel { position:absolute; inset:0; background:#07151c; clip-path:circle(0% at 92% 8%); transition:clip-path .58s var(--ease); }
.transition-layer.active .transition-panel { clip-path:circle(150% at 92% 8%); }
.transition-mark { position:absolute; right:clamp(24px,5vw,80px); top:50%; transform:translateY(-50%); width:180px; aspect-ratio:1; border:1px solid rgba(244,216,120,.6); border-radius:50%; opacity:0; transition:opacity .2s .18s ease, transform .45s .12s var(--ease); }
.transition-layer.active .transition-mark { opacity:1; transform:translateY(-50%) scale(1.12); }
.transition-mark::before,.transition-mark::after{content:'';position:absolute;left:-35%;right:-35%;height:1px;background:rgba(245,241,233,.28);top:43%}.transition-mark::after{top:57%}

/* accessibility */
.access-btn { position:fixed; right:22px; bottom:22px; z-index:120; width:48px; height:48px; border-radius:50%; border:1px solid rgba(244,216,120,.55); background:var(--sun); color:var(--ink); display:grid; place-items:center; cursor:pointer; box-shadow:0 12px 30px rgba(0,0,0,.18); }
.access-btn svg { width:24px; height:24px; }
.access-panel { position:fixed; right:22px; bottom:80px; z-index:119; width:min(310px,calc(100vw - 32px)); padding:16px; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow); opacity:0; transform:translateY(8px) scale(.98); pointer-events:none; transition:.25s var(--ease); }
.access-panel.open { opacity:1; transform:none; pointer-events:auto; }
.access-panel h3 { margin:0 0 14px; font:600 1rem/1 var(--font-display); text-transform:uppercase; }
.access-row { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:11px 0; border-top:1px solid var(--line); font-size:.82rem; }
.access-controls { display:flex; gap:6px; }
.access-controls button { border:1px solid var(--line); background:transparent; min-width:34px; height:34px; display:grid; place-items:center; cursor:pointer; border-radius:50%; }
.access-controls button.active { background:var(--sun); color:var(--ink); border-color:var(--sun); }

.reveal { opacity:0; transform:translateY(30px); transition:opacity .75s var(--ease), transform .75s var(--ease); }
.reveal.in { opacity:1; transform:none; }

@media (max-width: 1024px) {
  .hero-content { grid-template-columns:1fr 1fr; gap:34px; }
  .hero-copy h1 { font-size:clamp(3.6rem,8vw,6.4rem); }
  .hero-visual { min-height:460px; }
  .story-grid,.route,.split,.impact-feature,.vault-shell,.contact-grid { grid-template-columns:1fr; }
  .story-image { min-height:500px; }
  .route-map { min-height:380px; }
  .support-grid { grid-template-columns:repeat(2,1fr); }
  .work-cards,.cms-grid { grid-template-columns:1fr 1fr; }
  .profile-framework { grid-template-columns:1fr 1fr; }
  .vault-art { min-height:420px; }
}
@media (max-width: 768px) {
  .site-header { height:78px; padding-inline:16px; }
  .brand-mark { width:132px; height:58px; }
  .menu-trigger span { display:none; }
  .menu-trigger { padding:7px; border:0; background:transparent; }
  .page-shell { padding-top:78px; }
  .grid-wrap { width:calc(100% - 20px); }
  .hero-home { min-height:760px; }
  .hero-topline { padding:13px 14px; font-size:.62rem; }
  .hero-stage { align-items:start; padding:34px 14px 44px; }
  .hero-content { grid-template-columns:1fr; gap:28px; }
  .hero-copy h1 { font-size:clamp(3rem,14vw,5.3rem); max-width:8ch; margin-bottom:20px; }
  .hero-visual { min-height:360px; }
  .hero-image-frame { max-width:84vw; aspect-ratio:4/4.8; }
  .hero-ring.r1 { width:300px;right:-40px}.hero-ring.r2{width:360px;right:-70px}.hero-ring.r3{width:220px;left:-30px}
  .section { padding:72px 14px; }
  .section-head { grid-template-columns:1fr auto; gap:14px; margin-bottom:38px; }
  .section-head .eyebrow { grid-column:1/-1; }
  .section-head h2 { max-width:11ch; font-size:clamp(2.6rem,12vw,4.5rem); }
  .story-image { min-height:420px; }
  .pillars,.work-cards,.cms-grid,.profile-framework { grid-template-columns:1fr; }
  .pillar { min-height:270px; }
  .pillar h3 { margin-top:60px; }
  .support-grid { grid-template-columns:1fr 1fr; }
  .partner-slot { aspect-ratio:1; }
  .footer-cta { padding:72px 14px 26px; }
  .footer-meta { flex-direction:column; align-items:flex-start; margin-top:58px; }
  .menu-panel { grid-template-columns:1fr; }
  .menu-art { display:none; }
  .menu-main { padding:94px 20px 24px; }
  .menu-link { grid-template-columns:36px 1fr auto; padding:15px 0; }
  .menu-link strong { font-size:clamp(1.5rem,8vw,2.4rem); }
  .menu-foot { flex-direction:column; align-items:flex-start; }
  .page-hero { min-height:470px; padding:76px 14px 44px; }
  .page-title { font-size:clamp(3rem,13vw,5.2rem); }
  .image-tall { min-height:460px; }
  .impact-feature { display:grid; }
  .impact-feature .copy { min-height:360px; }
  .vault-list { grid-template-columns:1fr; }
  .access-btn { right:14px; bottom:14px; }
  .access-panel { right:14px; bottom:72px; }
}
@media (max-width:430px) {
  .hero-home { min-height:720px; }
  .hero-visual { min-height:330px; }
  .hero-image-frame { max-width:90vw; }
  .support-grid { grid-template-columns:1fr; }
  .partner-slot { aspect-ratio:1.45; }
  .micro-grid { grid-template-columns:1fr; }
  .micro:nth-child(odd){border-right:0;padding-right:0}.micro:nth-child(even){padding-left:0}
  .route-map { min-height:330px; }
  .map-chip { font-size:.6rem; }
  .footer-cta h2 { font-size:clamp(3rem,15vw,5rem); }
}
