/* Final hero — Step 4 */
.shell-header:not(.is-scrolled) .shell-nav { color:#f4f6f3; background:rgba(7,23,37,.54); border-color:rgba(255,255,255,.14); box-shadow:inset 0 1px 0 rgba(255,255,255,.1); }
.shell-header:not(.is-scrolled) .shell-brand { color:#f4f6f3; }
.shell-header:not(.is-scrolled) .shell-brand em,.shell-header:not(.is-scrolled) .desktop-nav a { color:rgba(244,246,243,.65); }
.shell-header:not(.is-scrolled) .desktop-nav a:hover,.shell-header:not(.is-scrolled) .desktop-nav a:focus-visible,.shell-header:not(.is-scrolled) .desktop-nav a.is-active { color:#f4f6f3; }
.shell-header:not(.is-scrolled) .menu-toggle { color:#f4f6f3; }

.hero-final { position:relative; z-index:1; min-height:max(47rem,100svh); display:grid; align-items:center; margin-top:-5.05rem; padding:clamp(9rem,15vh,11rem) 0 clamp(5rem,8vh,7rem); overflow:hidden; color:#f4f6f3; background:#071725; scroll-margin-top:5.2rem; }
.hero-final::before { content:""; position:absolute; z-index:0; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(7,23,37,.12),rgba(7,23,37,.02) 50%,rgba(7,23,37,.32)),radial-gradient(ellipse 58% 72% at 88% 46%,rgba(26,78,78,.62),rgba(13,50,55,.28) 48%,transparent 74%); }
.hero-final__grid { position:absolute; z-index:0; inset:0; opacity:.38; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:clamp(4.5rem,7vw,7rem) clamp(4.5rem,7vw,7rem); -webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 34%,#000 70%,#000 100%); mask-image:linear-gradient(90deg,transparent 0%,transparent 34%,#000 70%,#000 100%); }
.hero-final__light { position:absolute; z-index:0; right:-10%; top:15%; width:58%; aspect-ratio:1.2; opacity:.42; pointer-events:none; background:radial-gradient(circle,rgba(74,172,158,.16),transparent 64%); filter:blur(18px); transform:translate3d(0,0,0); }
.hero-final__layout { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.18fr) minmax(25rem,.82fr); grid-template-rows:auto auto; gap:1.6rem clamp(3rem,7vw,8rem); align-items:center; }
.hero-final__copy { position:relative; z-index:3; display:grid; justify-items:start; gap:0; padding-top:1rem; }
.hero-final__eyebrow { margin-bottom:clamp(1.45rem,2.4vw,2rem); color:#79cbbf; font-size:clamp(.64rem,.72vw,.72rem); font-weight:600; letter-spacing:.075em; line-height:1.5; text-transform:uppercase; }
.hero-final__eyebrow span,.hero-final__role span,.hero-final__context span { padding-inline:.28em; color:rgba(244,246,243,.36); }
.hero-final h1 { max-width:12.6ch; color:#f4f6f3; font-size:clamp(3.35rem,5.2vw,5.35rem); font-weight:600; line-height:.965; letter-spacing:-.055em; text-wrap:balance; }
.hero-final h1 span { color:#dff4ef; }
.hero-final__summary { max-width:38rem; margin-top:clamp(1.5rem,2.5vw,2rem); color:#aab7c2; font-size:clamp(1rem,1.2vw,1.1rem); line-height:1.7; }
.hero-final__role { display:flex; align-items:center; gap:.6rem; margin-top:1.5rem; color:#79cbbf; font-size:clamp(.64rem,.72vw,.72rem); font-weight:600; letter-spacing:.065em; line-height:1.55; text-transform:uppercase; }
.hero-final__role i { width:.42rem; aspect-ratio:1; flex:none; background:#56bfae; box-shadow:0 0 0 .28rem rgba(86,191,174,.11); }
.hero-final__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:clamp(1.7rem,2.8vw,2.25rem); }
.hero-final__actions .button { min-height:3.1rem; padding:.85rem 1.1rem; }
.button--secondary-dark { color:#f4f6f3; background:rgba(244,246,243,.025); border-color:rgba(244,246,243,.24); }
.button--secondary-dark:hover,.button--secondary-dark:focus-visible { color:#fff; background:rgba(244,246,243,.08); border-color:rgba(121,203,191,.6); }
.hero-final__context { grid-column:1; max-width:47rem; color:rgba(170,183,194,.68); font-size:clamp(.58rem,.66vw,.66rem); font-weight:600; letter-spacing:.055em; line-height:1.6; text-transform:uppercase; }

.hero-portrait { --hero-shift-x:0px; --hero-shift-y:0px; position:relative; z-index:2; grid-column:2; grid-row:1 / span 2; justify-self:end; width:min(100%,31.5rem); margin:0; padding:0 1rem 1rem 0; transform:translate3d(var(--hero-shift-x),var(--hero-shift-y),0); transition:transform 520ms var(--ease-out); }
.hero-portrait__offset { position:absolute; z-index:0; inset:1rem 0 0 1rem; border:1px solid rgba(86,191,174,.34); background:linear-gradient(135deg,rgba(86,191,174,.08),transparent 32%); }
.hero-portrait__frame { position:relative; z-index:2; aspect-ratio:4/5; overflow:hidden; background:#152c3b; border:1px solid rgba(244,246,243,.28); box-shadow:0 2.2rem 5rem rgba(0,0,0,.24); }
.hero-portrait__frame::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.04); }
.hero-portrait img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 42%; }
.hero-portrait__signal { position:absolute; z-index:3; top:-1px; left:-22%; width:28%; height:2px; opacity:.75; background:linear-gradient(90deg,transparent,#79cbbf,transparent); animation:portrait-signal 10s var(--ease-standard) infinite; }
.hero-portrait figcaption { position:relative; z-index:3; display:flex; justify-content:space-between; gap:1rem; padding:.75rem .1rem 0; color:rgba(170,183,194,.62); font-size:.56rem; font-weight:600; letter-spacing:.065em; line-height:1.5; text-transform:uppercase; }
.hero-constellation { position:absolute; z-index:1; top:-7%; right:-12%; width:128%; height:112%; overflow:visible; pointer-events:none; transform:translate3d(calc(var(--hero-shift-x) * -.45),calc(var(--hero-shift-y) * -.45),0); transition:transform 650ms var(--ease-out); }
.hero-constellation__links path { stroke:rgba(121,203,191,.27); stroke-width:1.15; }
.hero-constellation__links .hero-constellation__direction { stroke:rgba(121,203,191,.68); stroke-width:1.6; }
.hero-constellation__signals circle { fill:#79cbbf; opacity:.7; }
.hero-constellation__decision circle:first-child { fill:rgba(86,191,174,.15); stroke:#79cbbf; stroke-width:1.5; }
.hero-constellation__decision circle:last-child,.hero-constellation__traveller { fill:#79cbbf; }
.hero-constellation__pulse { fill:none; stroke:#79cbbf; stroke-width:1; opacity:.42; transform-box:fill-box; transform-origin:center; animation:hero-measurement 6.4s var(--ease-standard) infinite; }
.hero-constellation__traveller { filter:drop-shadow(0 0 4px rgba(121,203,191,.45)); }
.hero-constellation__converge path { fill:none; stroke:rgba(121,203,191,.55); stroke-width:1.4; stroke-dasharray:4 9; animation:hero-converge 8s linear infinite; }
.hero-final__exit { position:absolute; z-index:3; left:50%; bottom:0; width:min(100% - (var(--gutter) * 2),var(--container-main)); height:2.8rem; transform:translateX(-50%); pointer-events:none; }
.hero-final__exit span { position:absolute; left:0; bottom:0; width:42%; height:1px; background:linear-gradient(90deg,rgba(86,191,174,.62),rgba(244,246,243,.08),transparent); }
.hero-final__exit i { position:absolute; left:42%; bottom:0; width:5px; aspect-ratio:1; background:#79cbbf; transform:translate(-50%,2px); }

@keyframes hero-measurement { 0%,72%,100% { opacity:.15; transform:scale(.86); } 84% { opacity:.62; transform:scale(1.34); } }
@keyframes hero-converge { to { stroke-dashoffset:-52; } }
@keyframes portrait-signal { 0%,18% { transform:translateX(0); opacity:0; } 25% { opacity:.8; } 48% { transform:translateX(435%); opacity:.8; } 56%,100% { transform:translateX(435%); opacity:0; } }

@media (max-width:1100px) {
  .hero-final__layout { grid-template-columns:minmax(0,1fr) minmax(22rem,.72fr); gap:1.5rem 3rem; }
  .hero-final h1 { font-size:clamp(3.15rem,5.6vw,4.65rem); }
  .hero-portrait { width:min(100%,27rem); }
}
@media (max-width:900px) {
  .hero-final { min-height:auto; padding:8.5rem 0 5rem; }
  .hero-final__layout { grid-template-columns:1fr; grid-template-rows:auto; gap:0; }
  .hero-final__copy { grid-column:1; grid-row:1; max-width:44rem; }
  .hero-portrait { grid-column:1; grid-row:2; justify-self:start; width:min(78vw,31rem); margin-top:3.25rem; }
  .hero-final__context { grid-column:1; grid-row:3; margin-top:1.65rem; }
  .hero-final__grid { opacity:.25; -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 42%,#000 100%); mask-image:linear-gradient(180deg,transparent 0%,#000 42%,#000 100%); }
}
@media (max-width:640px) {
  .hero-final { margin-top:-4.25rem; padding:6.5rem 0 4.5rem; }
  .hero-final::before { background:radial-gradient(ellipse 90% 45% at 78% 72%,rgba(26,78,78,.48),transparent 72%); }
  .hero-final__light { top:52%; right:-28%; width:110%; opacity:.28; }
  .hero-final__eyebrow { white-space:nowrap; margin-bottom:1rem; font-size:clamp(.54rem,2.35vw,.62rem); letter-spacing:.035em; }
  .hero-final h1 { max-width:13ch; font-size:clamp(2.6rem,11.8vw,3.25rem); line-height:1.01; letter-spacing:-.052em; text-wrap:pretty; }
  .hero-final__summary { margin-top:.95rem; font-size:.96rem; line-height:1.65; }
  .hero-final__role { align-items:flex-start; margin-top:.9rem; font-size:.61rem; letter-spacing:.045em; }
  .hero-final__role i { margin-top:.26rem; }
  .hero-final__actions { display:grid; width:100%; gap:.65rem; margin-top:1.15rem; }
  .hero-final__actions .button { width:100%; min-height:3rem; }
  .hero-portrait { width:min(93%,27rem); margin-top:.8rem; padding:0 .65rem .65rem 0; }
  .hero-portrait__offset { inset:.65rem 0 0 .65rem; }
  .hero-portrait figcaption { display:grid; gap:.16rem; padding-top:.65rem; }
  .hero-constellation { top:-4%; right:-6%; width:113%; height:104%; }
  .hero-constellation__signals circle:nth-child(n+4),.hero-constellation__links path:nth-child(n+3),.hero-constellation__converge { display:none; }
  .hero-final__context { display:grid; gap:.2rem; max-width:32rem; margin-top:1.25rem; font-size:.57rem; letter-spacing:.04em; }
  .hero-final__context span { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-final__light,.hero-portrait,.hero-constellation { transform:none !important; transition:none !important; }
  .hero-portrait__signal { display:none; }
  .hero-constellation__traveller { display:none; }
  .hero-constellation__pulse,.hero-constellation__converge path { animation:none !important; }
  .hero-constellation__pulse { opacity:.34; transform:none; }
}
