/* Shared visual grammar for the approval lab and public marketing pages. */
.direction-page {
  --motion-instant: 120ms; --motion-fast: 180ms; --motion-ui: 240ms; --motion-copy: 480ms;
  --motion-reveal: 620ms; --motion-scene: 900ms; --motion-route: 760ms;
  --ease-out: cubic-bezier(.16,1,.3,1); --ease-standard: cubic-bezier(.65,0,.35,1);
  --ease-enter: cubic-bezier(.22,1,.36,1); --ease-heavy: cubic-bezier(.2,.75,.25,1);
  --distance-ui: 8px; --distance-copy: 24px; --distance-scene: 8vw;
  --paper: #f5f5f1; --ink: #171b1e; --muted: #626c75; --blue: #d7e5f4;
  --gutter: clamp(24px,4.2vw,80px); --scene-header: 96px;
  margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.5 Arial, Helvetica, sans-serif; overflow-x: clip;
}
html:has(.direction-page) { scroll-behavior: auto; scroll-padding-top: 96px; }
.direction-page *, .direction-page *::before, .direction-page *::after { box-sizing: border-box; }
.direction-page h1, .direction-page h2, .direction-page h3 { font-weight: 400; line-height: 1.02; letter-spacing: -.055em; margin: 0; overflow-wrap: anywhere; }
.direction-page h2 { font-size: clamp(38px,4.4vw,68px); text-wrap: balance; }
.direction-page p { margin: 0; }
.direction-page a { color: inherit; text-decoration: none; }
.direction-page button { color: inherit; font: inherit; cursor: pointer; background: transparent; border: 1px solid currentColor; }
.direction-page :is(button,a):focus-visible, .direction-page [tabindex]:focus-visible, .direction-page input:focus-visible, .direction-page select:focus-visible { outline: 3px solid #557db1; outline-offset: 5px; }
.direction-page [hidden] { display: none !important; }
.direction-page .sr-only { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.direction-page img { max-inline-size: 100%; }
.direction-page :is(button,.direction-pill) { transition: color var(--motion-fast), background-color var(--motion-fast), transform var(--motion-fast); }
.direction-page :is(button,.direction-pill):active { transform: scale(.98); }
.direction-page :is(button,a) > span[aria-hidden] { display: inline-block; transition: transform var(--motion-fast) var(--ease-out); }
.direction-page :is(button,a):hover > span[aria-hidden] { transform: translate(4px,-3px); }
.direction-pill { display: inline-flex; align-items: center; justify-content: space-between; gap: 32px; padding: 14px 20px; border: 1px solid #737b8450; border-radius: 4px; }
.direction-pill:hover { background: var(--ink); color: var(--paper); }
.direction-header { --header-ink: #171b1e; position: fixed; inset: 0 0 auto; z-index: 100; min-block-size: 88px; padding: max(16px,env(safe-area-inset-top)) var(--gutter) 16px; display: flex; align-items: center; justify-content: space-between; gap: 28px; color: var(--header-ink); background: #f5f5f1f2; border-bottom: 1px solid #78889825; }
.direction-brand { inline-size: 142px; flex: 0 0 auto; line-height: 0; }
.direction-brand img { inline-size: 100%; block-size: auto; }
.direction-header-label { font-size: .75rem; text-transform: uppercase; letter-spacing: .13em; margin-inline-end: auto; }
.direction-header nav { display: flex; align-items: center; gap: 24px; font-size: .875rem; }
.direction-header .direction-pill { padding: 10px 18px; }
.direction-header[data-motion-theme="dark"] { --header-ink: #f5f5f1; background: #171b1ef2; }
.direction-header[data-motion-theme="dark"] .direction-brand img { filter: invert(1); }
.direction-header[data-motion-theme="dark"] .direction-pill:hover { background: #d7e5f4; color: #171b1e; }
.direction-header.is-scrolled .direction-header-label { opacity: .55; }
.direction-header.is-returning .direction-header-label { opacity: 1; }
.direction-progress { position: absolute; inset: auto 0 0; block-size: 2px; background: #96afce; transform-origin: left; transform: scaleX(var(--page-progress,0)); }
.direction-scene { position: relative; min-block-size: 100svh; --enter-progress: 1; --visual-progress: 1; --copy-progress: 1; --hold-progress: 1; --exit-progress: 0; --frame-scale: .82; --frame-x: 0; --frame-radius: .2; --frame-detail: 1; --frame-phone: 0; --frame-panel: 0; --frame-resolved: 1; --field-dim: 1; --attach-photo: 1; --attach-voice: 1; --attach-meta: 1; --attach-owner: 1; --record-ready: 1; --phone-shift: 1; --dashboard-enter: 1; --handoff-progress: 1; --responsibility: 1; --action-ready: 1; --next-progress: 1; --next-arrival: 1; }
.direction-frame { min-block-size: 100svh; display: grid; align-items: center; position: relative; }
.direction-content { inline-size: 100%; min-inline-size: 0; padding: 64px var(--gutter); position: relative; }
.direction-scene > .direction-content { padding-block: max(128px,calc(var(--scene-header) + 32px)) 96px; }
.direction-kicker { font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; line-height: 1.5; }
.direction-heading { display: grid; grid-template-columns: minmax(0,.45fr) minmax(0,1fr); align-items: start; gap: 36px; margin-bottom: 28px; }
.direction-heading .direction-kicker { padding-top: 8px; }
.direction-heading h2 { max-inline-size: 22ch; }
.direction-lead { font-size: 1.125rem; max-inline-size: 44ch; line-height: 1.65; margin-top: 32px !important; }
.direction-note { font-size: .8125rem; line-height: 1.6; color: var(--muted); }
.direction-scene-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 16px; border-top: 1px solid #7f90a43d; margin-top: 20px; font-size: .8125rem; }
.direction-scene-foot i { font-style: normal; margin-inline: 16px; }
.direction-intro { background: #f5f5f1; }
.direction-title-composition { position: relative; padding-block: 44px 48px; isolation: isolate; }
.direction-title { font-size: clamp(58px,7.6vw,124px); max-inline-size: 15ch; position: relative; z-index: 2; }
.line-mask { display: block; overflow: clip; padding-bottom: .06em; }
.line-mask > span { display: block; }
.direction-title .line-mask:nth-child(2) { color: #778d9f; }
.direction-raven { position: absolute; inline-size: 29%; max-block-size: 470px; object-fit: contain; right: -1%; bottom: -10%; z-index: 0; opacity: .9; }
.direction-intro-foot { display: flex; justify-content: space-between; align-items: end; gap: 40px; border-top: 1px solid #87909a55; padding-top: 24px; }
.direction-intro-foot p { max-inline-size: 40ch; color: #626c75; }
.direction-intro-foot a { font-size: .875rem; display: flex; align-items: center; gap: 40px; flex-shrink: 0; }
.direction-compare { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 24px; }
.direction-compare button { font-size: .8125rem; border-color: #98a3ad55; padding: 8px 12px; border-radius: 2px; }
.direction-compare button[aria-pressed="true"] { background: #171b1e; color: #f5f5f1; }
.direction-field { background: #171b1e; color: #f5f5f1; }
.field-content { min-block-size: 100svh; display: flex; flex-direction: column; align-items: start; justify-content: center; overflow: clip; }
.field-image-mask { position: absolute; inset: 0; }
.direction-field-image { inline-size: 100%; block-size: 100%; object-fit: cover; filter: saturate(.55); }
.field-content::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#111c,#1111); }
.field-content :is(h2,.direction-kicker,.field-caption,.field-target) { position: relative; z-index: 1; }
.field-content h2 { font-size: clamp(56px,6.8vw,108px); max-inline-size: 11ch; margin-top: 24px; }
.field-target { position: absolute !important; inset: 34% 18% 30% 56%; border: 1px solid #eff5ff; }
.field-target::before, .field-target::after { content: ''; position: absolute; width: 16px; height: 16px; border-color: #f5f5f1; border-style: solid; }
.field-target::before { inset: -2px auto auto -2px; border-width: 3px 0 0 3px; }
.field-target::after { inset: auto -2px -2px auto; border-width: 0 3px 3px 0; }
.field-target span { position: absolute; top: calc(100% + 12px); white-space: nowrap; font-size: .875rem; }
.field-caption { margin-top: 48px !important; max-inline-size: 38ch; font-size: .8125rem; color: #d5dde3; }
.direction-morph { background: #e1e7ea; }
.morph-stage { position: relative; min-block-size: 360px; display: grid; place-items: center; isolation: isolate; }
.morph-field { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; opacity: .12; filter: saturate(.55); z-index: -1; }
.signature-frame { position: relative; inline-size: min(60%,630px); background: #f8f9fa; border: 2px solid #eaf2fb; box-shadow: 0 8px 40px #1d27391a; overflow: clip; }
.signature-frame > img { inline-size: 100%; block-size: 170px; object-fit: cover; display: block; }
.signature-detail { padding: 18px; }
.signature-detail > span { font-size: .8125rem; color: #576779; }
.signature-detail h3 { margin-block: 12px; font-size: 1.4rem; }
.signature-detail p { font-size: .875rem; }
.signature-resolved { display: flex; justify-content: space-between; padding: 14px 18px; font-size: .875rem; background: #d7e5f4; font-weight: 400; }
.morph-phone, .morph-panel { display: none; }
.frame-states { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); list-style: none; padding: 0; margin: 24px 0 12px; border-top: 1px solid #76869750; counter-reset: frame; }
.frame-states li { padding-top: 10px; font-size: .8125rem; min-inline-size: 0; overflow-wrap: anywhere; }
.frame-states li::before { counter-increment: frame; content: '0' counter(frame); display: block; font-size: .6875rem; margin-bottom: 6px; color: #657387; }
.direction-assembly { background: #d7e5f4; }
.direction-assembly-stage { position: relative; min-block-size: 400px; display: grid; place-items: center; padding-block: 16px; }
.direction-record { inline-size: min(100%,560px); padding: 16px; background: #fbfcfc; color: #202a32; border: 1px solid #a7b7c9; border-radius: 6px; }
.direction-record > header { display: flex; justify-content: space-between; gap: 12px; font-size: .75rem; color: #657183; }
.direction-record > h3 { font-size: 1.375rem; line-height: 1.2; margin: 12px 0 16px; letter-spacing: -.035em; }
.direction-record-pieces { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; }
.direction-piece { padding: 10px; min-inline-size: 0; background: #eff4f9; border: 1px solid #d9e2eb; border-radius: 3px; }
.direction-piece > span { display: block; font-size: .75rem; color: #657183; line-height: 1.4; }
.direction-piece strong { font-size: .875rem; font-weight: 500; line-height: 1.35; display: block; margin-top: 4px; overflow-wrap: anywhere; }
.piece-photo { grid-column: span 3; padding: 0; margin: 0; overflow: clip; }
.piece-photo img { display: block; inline-size: 100%; block-size: 96px; object-fit: cover; }
.piece-photo figcaption { font-size: .75rem; padding: 6px 10px; }
.piece-voice { grid-column: span 3; }
.piece-voice p { font-size: .875rem; line-height: 1.4; }
.direction-wave { block-size: 27px; display: flex; gap: 5px; align-items: center; margin-block: 5px; }
.direction-wave i { display: block; inline-size: 2px; block-size: 35%; background: #697f9b; }
.direction-wave i:nth-child(3n) { block-size: 85%; }
.direction-wave i:nth-child(3n + 1) { block-size: 55%; }
.piece-time, .piece-location, .piece-category { grid-column: span 2; }
.piece-priority, .piece-owner { grid-column: span 3; }
.direction-handoff { background: #171b1e; color: #f5f5f1; }
.direction-device-stage { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.7fr); gap: 24px; align-items: start; position: relative; min-block-size: 400px; }
.direction-phone { display: none; }
.direction-travelling-record { min-inline-size: 0; position: relative; z-index: 3; }
.direction-dashboard { background: #252c32; border: 1px solid #5e6c7a; border-radius: 7px; padding: 18px; min-inline-size: 0; }
.direction-dashboard > header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .8125rem; padding-bottom: 14px; border-bottom: 1px solid #667b8c55; }
.direction-responsibility dl { margin: 0; }
.direction-responsibility dl > div { border-bottom: 1px solid #667b8c55; padding-block: 16px; }
.direction-responsibility dt { font-size: .8125rem; color: #aebdcc; }
.direction-responsibility dd { margin: 5px 0 0; font-size: .9375rem; line-height: 1.45; }
.direction-action { font-size: .8125rem; display: flex; gap: 12px; justify-content: space-between; color: #c1d5f0; margin-top: 16px !important; }
.direction-people { background: #eeefeb; }
.people-carousel { position: relative; }
.person-slide { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 6vw; align-items: center; margin-bottom: 48px; min-inline-size: 0; }
.person-portrait { min-inline-size: 0; position: relative; aspect-ratio: 4/3; min-block-size: 320px; background: #d5dfe5; overflow: clip; }
.portrait-index { position: absolute; inset: 14px auto auto 24px; font-size: clamp(90px,12vw,190px); letter-spacing: -.08em; line-height: 1; color: #8c9aa746; }
.portrait-aperture { position: absolute; inset: 18% 18% 14%; border: 1px solid #7d8a9755; overflow: clip; display: grid; place-items: center; }
.portrait-aperture img { inline-size: 55%; block-size: auto; opacity: .38; mix-blend-mode: multiply; }
.person-portrait > p { position: absolute; inset: auto 24px 18px; font-size: .8125rem; line-height: 1.4; }
.person-slide:nth-child(2) .person-portrait { background: #252c32; color: #dce5ed; }
.person-slide:nth-child(2) .portrait-aperture { inset: 14% 24% 20%; }
.person-slide:nth-child(2) .portrait-aperture img { filter: invert(1); mix-blend-mode: screen; }
.person-slide:nth-child(3) .person-portrait { background: #ccd9ea; }
.person-slide:nth-child(3) .portrait-aperture { inset: 25% 12% 10%; }
.person-index-mask { overflow: clip; font-size: .875rem; margin-bottom: 28px; }
.person-copy { min-inline-size: 0; }
.person-copy h3 { font-size: clamp(36px,4.1vw,64px); margin: 20px 0; }
.person-role { font-size: 1.0625rem; line-height: 1.5; }
.person-statement { font-size: 1.125rem; line-height: 1.65; max-inline-size: 34ch; margin-top: 28px !important; }
.person-copy .direction-note { margin-top: 24px; max-inline-size: 42ch; }
.people-deck { min-inline-size: 0; }
.people-controls { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; border-top: 1px solid #8596a450; padding-top: 20px; }
.people-controls > span { font-size: .8125rem; color: #626c75; }
.people-buttons, [data-person-numbers] { display: flex; gap: 8px; }
.people-buttons button { min-inline-size: 44px; min-block-size: 44px; font-size: .8125rem; border-color: #87919b66; border-radius: 50%; }
.people-buttons button[aria-pressed="true"], .people-buttons button:hover { background: #171b1e; color: #fff; }
.carousel-ready .people-deck { display: grid; overflow: clip; }
.carousel-ready .person-slide { grid-area: 1/1; margin: 0 0 28px; transform: translateX(calc((var(--slide-offset) + var(--drag-progress,0)) * 108%)); transition: transform var(--motion-reveal) var(--ease-heavy); }
.carousel-ready .person-portrait { touch-action: pan-y; user-select: none; transform: rotate(calc(var(--drag-progress,0) * 2deg)); transition: transform var(--motion-reveal) var(--ease-heavy); }
.carousel-ready .person-copy { opacity: calc(.6 + var(--slide-emphasis) * .4); }
.carousel-ready.is-dragging :is(.person-slide,.person-portrait) { transition: none; }
.carousel-ready .person-slide.is-repositioning { transition: none; }
.carousel-ready .person-copy h3 { overflow: clip; }
.carousel-ready :is(.person-index-mask,.person-copy h3) > span { display: block; transform: translateY(calc(var(--drag-amount,0) * 35%)); transition: transform var(--motion-copy) var(--ease-heavy); }
.carousel-ready.is-dragging :is(.person-index-mask,.person-copy h3) > span { transition: none; }
.direction-person-chapter { background: #242a30; color: #f5f5f1; }
.person-chapter-content { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px 7vw; align-items: center; }
.person-chapter-portrait { background: #394652; aspect-ratio: 4/3; position: relative; display: grid; place-items: center; overflow: clip; }
.person-chapter-portrait img { inline-size: 42%; filter: invert(1); opacity: .5; }
.person-chapter-portrait > p { position: absolute; inset: auto 20px 20px; font-size: .8125rem; }
.person-chapter-copy h2 { margin-block: 28px 20px; }
.person-chapter-copy > p:not(.direction-kicker) { margin-top: 24px; max-inline-size: 38ch; }
.person-chapter-copy .direction-note { color: #adbdcc; }
.person-chapter-foot { display: flex; flex-wrap: wrap; gap: 24px; grid-column: 1/-1; font-size: .875rem; padding-top: 20px; border-top: 1px solid #aebdcc44; }
.direction-cut { background: #171b1e; color: #f5f5f1; }
.direction-cut .direction-frame { overflow: clip; }
.direction-cut-wash { position: absolute; inset: 0; background: #394f66; }
.direction-cut h2 { font-size: clamp(64px,8vw,130px); max-inline-size: 14ch; margin-top: 24px; }
.cut-record-id { display: block; font-size: .875rem; margin-top: 48px; color: #bad0e6; }
.direction-route { background: #e2e8ed; }
.direction-route-stage { position: relative; background: #eff2f4; overflow: clip; min-block-size: 440px; margin-top: 36px; padding: 48px; display: grid; align-items: center; }
.direction-route-stage h2 { font-size: clamp(72px,11vw,164px); }
.direction-route-stage h2 > span { display: block; }
.direction-route-stage h2 > span:nth-child(2) { color: #71899c; }
.route-alternate { background: #cbdcec; }
.direction-route-mask { position: absolute; inset: 0; background: #171b1e; clip-path: polygon(0 100%,100% 100%,100% 100%,0 100%); pointer-events: none; }
.direction-route-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-block: 24px; }
.direction-route-actions :is(button,a) { display: inline-flex; align-items: center; gap: 32px; padding: 14px 20px; border: 1px solid #8a9cab; font-size: .875rem; }
.direction-route-actions :is(button,a):hover { background: #171b1e; color: #f5f5f1; }
.fallback-composition { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 6vw; align-items: center; margin-top: 40px; }
.direction-next { background: #171b1e; color: #f5f5f1; }
.next-label { display: block; text-transform: uppercase; margin-block: 36px 12px; font-size: .875rem; }
.direction-next .next-title { font-size: clamp(78px,13vw,208px); line-height: 1; text-transform: uppercase; white-space: normal; }
.next-arrival { display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; border-top: 1px solid #97acbf77; padding-top: 24px; margin-top: 48px; }
.next-arrival > span { font-size: .875rem; color: #b9ccdf; }
.next-arrival p { max-inline-size: 37ch; }
.direction-next .direction-pill:hover { background: #d7e5f4; color: #171b1e; }
.direction-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; padding: 40px var(--gutter) 100px; font-size: .8125rem; }
.direction-debug { position: fixed; z-index: 110; bottom: 16px; right: 16px; max-inline-size: calc(100vw - 32px); font-size: .8125rem; background: #f5f8fcf7; color: #171b1e; border: 1px solid #8e9faf; border-radius: 6px; }
.direction-debug summary { cursor: pointer; padding: 12px 18px; }
.direction-debug-content { display: grid; gap: 16px; padding: 16px; max-inline-size: 320px; }
.direction-debug-content label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.direction-debug-content select { inline-size: 100%; min-inline-size: 0; padding: 8px; font: inherit; }
.direction-debug-content button { padding: 8px; font: inherit; }
.direction-debug-content input[type="range"] { inline-size: 100%; accent-color: #516c8c; }
.context-cursor { position: fixed; z-index: 120; top: 18px; left: 18px; inline-size: 76px; block-size: 76px; border-radius: 50%; background: #d5e4f3ed; color: #171b1e; border: 1px solid #9db1c9; font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; display: grid; place-items: center; pointer-events: none; transform: translate(calc(var(--cursor-x) * 100vw),calc(var(--cursor-y) * 100vh)); box-shadow: 0 4px 20px #1112; }
@media (min-width:1100px) and (min-height:760px) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .direction-scene.is-pinned { min-block-size: 240svh; }
  .direction-morph.is-pinned { min-block-size: 340svh; }
  .direction-intro.is-pinned { min-block-size: 180svh; }
  .direction-scene.is-pinned > .direction-frame { position: sticky; top: var(--scene-header); min-block-size: calc(100svh - var(--scene-header)); }
  .direction-scene.is-pinned .direction-content { padding-block: 24px; }
  .direction-scene.is-pinned .field-content { min-block-size: calc(100svh - var(--scene-header)); }
  .scene-active.is-nearby :is(.signature-frame,.direction-travelling-record,.direction-raven) { will-change: transform; }
  .scene-active:not(.title-timed) .line-mask > span { transform: translateY(calc((1 - var(--enter-progress)) * 105%)); }
  .scene-active:not(.title-timed) .line-mask:nth-child(2) > span { transform: translateY(calc((1 - var(--visual-progress)) * 105%)); }
  .scene-active .direction-raven { transform: translateY(calc(var(--scene-progress) * -3vw)); }
  .scene-active .field-image-mask { clip-path: inset(calc((1 - var(--visual-progress)) * 14%) calc((1 - var(--visual-progress)) * 5%) 0); }
  .scene-active .direction-field-image { transform: scale(calc(1.04 - var(--visual-progress) * .04)); }
  .scene-active .field-target { opacity: var(--copy-progress); }
  .scene-active .morph-field { opacity: calc(1 - var(--field-dim) * .92); }
  .scene-active .signature-frame { transform: translateX(calc(var(--frame-x) * 100vw)) scale(var(--frame-scale)); border-radius: calc(var(--frame-radius) * 28px); background: rgb(248 249 250 / var(--frame-detail)); box-shadow: none; }
  .scene-active .signature-frame > img { opacity: var(--frame-crop,1); transform: scaleY(calc(2 - var(--frame-detail))); transform-origin: top; }
  .scene-active .signature-detail { opacity: var(--frame-detail); }
  .scene-active .signature-resolved { opacity: var(--frame-resolved); }
  .scene-active .morph-phone { display: block; position: absolute; inset: 0 auto 0 3%; inline-size: 30%; border: 2px solid #728397; border-radius: 28px; opacity: var(--frame-phone); padding: 20px; font-size: .875rem; }
  .scene-active .morph-panel { display: block; position: absolute; inset: 0 0 0 auto; inline-size: 73%; border: 1px solid #728397; border-radius: 6px; opacity: var(--frame-panel); padding: 20px; font-size: .875rem; }
  .scene-active .direction-assembly-stage .direction-record { background: rgb(251 252 252 / var(--record-ready)); border-color: rgb(167 183 201 / var(--record-ready)); }
  .scene-active .direction-assembly-stage .direction-record > :is(header,h3) { opacity: var(--record-ready); }
  .scene-active .direction-assembly-stage .direction-piece { transform: translate(calc(var(--fragment-x,0px) * (1 - var(--attach))),calc(var(--fragment-y,0px) * (1 - var(--attach)))); }
  .direction-assembly-stage .piece-photo { --attach: var(--attach-photo); --fragment-x: -200px; --fragment-y: -12px; }
  .direction-assembly-stage .piece-voice { --attach: var(--attach-voice); --fragment-x: 170px; --fragment-y: -28px; }
  .direction-assembly-stage .piece-time { --attach: var(--attach-meta); --fragment-x: -230px; --fragment-y: 10px; }
  .direction-assembly-stage .piece-location { --attach: var(--attach-meta); --fragment-x: 12px; --fragment-y: 34px; }
  .direction-assembly-stage .piece-category { --attach: var(--attach-meta); --fragment-x: 230px; --fragment-y: 15px; }
  .direction-assembly-stage .piece-priority { --attach: var(--attach-owner); --fragment-x: -120px; --fragment-y: 36px; }
  .direction-assembly-stage .piece-owner { --attach: var(--attach-owner); --fragment-x: 170px; --fragment-y: 30px; }
  /* Keep the record in flow so translated content determines the pin's fit. */
  .scene-active .direction-device-stage { display: block; min-block-size: 410px; padding-block: 48px 16px; }
  .scene-active .direction-phone { display: block; position: absolute; inset: 0 auto 0 0; inline-size: 26%; padding: 16px; border: 2px solid #627488; border-radius: 26px; font-size: .8125rem; transform: translateX(calc((1 - var(--phone-shift)) * 14vw)); }
  .scene-active .direction-phone i { position: absolute; inset: auto 40% 10px; block-size: 3px; background: #aebdcc; border-radius: 6px; }
  .scene-active .direction-travelling-record { position: relative; left: 1%; inline-size: 36%; transform-origin: top left; transform: translateX(calc((1 - var(--phone-shift)) * 14vw + var(--handoff-progress) * 110%)) scale(calc(.66 + var(--handoff-progress) * .34)); }
  .scene-active .direction-dashboard { position: absolute; inset: 0 0 0 auto; inline-size: 62%; opacity: var(--dashboard-enter); transform: translateX(calc((1 - var(--dashboard-enter)) * 3vw)); }
  .scene-active .direction-responsibility { margin-left: 66%; opacity: var(--responsibility); transform: translateY(calc((1 - var(--responsibility)) * 16px)); }
  .scene-active .direction-action { opacity: var(--action-ready); }
  .scene-active .person-chapter-portrait { clip-path: inset(calc((1 - var(--visual-progress)) * 20%) 0 0); transform: translateY(calc((1 - var(--visual-progress)) * 24px)); }
  .scene-active .person-chapter-copy h2 { clip-path: inset(0 0 calc((1 - var(--enter-progress)) * 100%) 0); }
  .scene-active .person-chapter-copy > p:not(.direction-kicker) { opacity: var(--copy-progress); }
  .scene-active .direction-cut-wash { clip-path: polygon(0 0,calc(var(--visual-progress) * 100%) 0,calc(var(--visual-progress) * 130%) 100%,0 100%); }
  .scene-active .direction-next { transform: none; }
  .scene-active .next-title { transform: translateY(calc((1 - var(--next-progress)) * 40px)) scale(calc(.72 + var(--next-progress) * .28)); transform-origin: left center; }
  .scene-active .next-label { opacity: calc(1 - var(--next-progress) * .6); }
  .scene-active .next-arrival { opacity: var(--next-arrival); transform: translateY(calc((1 - var(--next-arrival)) * 24px)); }
}
.title-timed .line-mask > span { transform: none; }
.timed-playing .line-mask > span { animation: direction-title var(--motion-reveal) var(--ease-heavy) both; }
.timed-playing .line-mask:nth-child(2) > span { animation-delay: 90ms; }
@keyframes direction-title { from { transform: translateY(105%); } to { transform: translateY(0); } }
.direction-scene:focus-within :is(.line-mask > span,.person-chapter-copy h2,.next-arrival) { opacity: 1; clip-path: none; }
@view-transition { navigation: auto; }
::view-transition { background: #171b1e; }
::view-transition-old(root) { animation: direction-route-out 340ms cubic-bezier(.65,0,.35,1) both; }
::view-transition-new(root) { animation: direction-route-in 760ms cubic-bezier(.65,0,.35,1) both; }
@keyframes direction-route-out { to { opacity: 0; transform: scale(.98); } }
@keyframes direction-route-in { 0%,35% { clip-path: polygon(0 100%,100% 100%,100% 100%,0 100%); } 100% { clip-path: polygon(0 0,100% 0,100% 100%,0 100%); } }
@media (max-width:1099px), (max-height:759px), (pointer:coarse) {
  .direction-content { padding-block: 100px 64px; }
  .direction-heading { grid-template-columns: 1fr; gap: 20px; }
  .direction-title { font-size: clamp(58px,9.2vw,106px); }
  .direction-raven { inline-size: 30%; opacity: .26; }
  .direction-device-stage { grid-template-columns: 1fr; }
  .direction-travelling-record .direction-record { inline-size: 100%; }
  .signature-frame { inline-size: min(100%,630px); }
  .person-slide { grid-template-columns: 1fr; gap: 28px; align-items: start; }
  .person-portrait { min-block-size: 0; aspect-ratio: 4/3; }
  .person-copy { padding-inline: 2px; }
  .person-copy h3 { font-size: clamp(36px,6vw,58px); }
  .person-index-mask { margin-bottom: 12px; }
  .person-chapter-content, .fallback-composition { grid-template-columns: 1fr; }
  .person-chapter-portrait { max-inline-size: 650px; inline-size: 100%; }
  .next-arrival { grid-template-columns: 1fr; }
  .next-arrival .direction-pill { justify-self: start; }
}
@media (max-width:600px) {
  .direction-header { min-block-size: 80px; padding-inline: 20px; gap: 12px; }
  .direction-brand { inline-size: 104px; }
  .direction-header-label, .direction-header nav > a:not(.direction-pill) { display: none; }
  .direction-header nav { gap: 4px; }
  .direction-header .direction-pill { font-size: .75rem; padding: 8px 10px; gap: 10px; }
  .direction-header .language-switcher nav { display: block; position: absolute; inset-inline-end: 0; inline-size: 144px; }
  .direction-title { font-size: clamp(48px,12vw,72px); }
  .direction-raven { right: 0; bottom: -12px; inline-size: 36%; opacity: .16; }
  .direction-intro-foot { align-items: start; flex-direction: column; gap: 24px; }
  .field-content h2 { max-inline-size: 9ch; }
  .field-target { inset: 58% 12% 23% 57%; }
  .field-caption { margin-top: 100px !important; }
  .frame-states { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
  .direction-record { padding: 14px; }
  .direction-record-pieces { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .piece-photo, .piece-voice { grid-column: 1/-1; }
  .piece-photo img { block-size: 170px; }
  .piece-time, .piece-location, .piece-priority, .piece-category { grid-column: span 1; }
  .piece-owner { grid-column: 1/-1; }
  .direction-piece > span, .piece-photo figcaption { font-size: .8125rem; }
  .direction-piece strong, .piece-voice p { font-size: .9375rem; }
  .direction-route-stage { padding: 28px 20px; min-block-size: 360px; }
  .direction-route-stage h2 { font-size: clamp(58px,14vw,90px); }
  .direction-next .next-title { font-size: clamp(52px,12.5vw,78px); }
  .person-chapter-foot { gap: 12px; }
  .direction-debug { right: 10px; bottom: 10px; }
  .direction-footer { padding-bottom: 110px; }
  ::view-transition-new(root) { animation-duration: 380ms; }
  ::view-transition-old(root) { animation-duration: 170ms; }
}
.motion-reduced .context-cursor { display: none !important; }
.motion-reduced *, .motion-reduced *::before, .motion-reduced *::after { animation: none !important; transition: none !important; }
html:has(.direction-page.motion-reduced) { view-transition-name: none; }
@media (prefers-reduced-motion:reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
  .direction-page *, .direction-page *::before, .direction-page *::after { animation: none !important; transition: none !important; }
  .context-cursor { display: none !important; }
}

/* KORPPI SIGNAL NAV: scoped to the approval lab. */
html:has(.signal-nav) { scrollbar-gutter: stable; }
.direction-page { --nav-open:0; --nav-route:0; --nav-labels:1; --nav-preview:1; --destination-reveal:1; --destination-copy:1; --motion-menu:780ms; --motion-portal:760ms; }
.direction-header.signal-nav { display:grid; grid-template-columns:132px minmax(0,1fr) auto; gap:22px; padding-block:16px; min-block-size:88px; background:#f5f5f1; border-bottom-color:#77889822; }
.signal-nav .direction-brand { inline-size:132px; }
.signal-nav[data-nav-state="expanded"][data-nav-theme="light"] { background:#f5f5f1e8; }
.signal-nav[data-nav-theme="dark"], .signal-nav[data-nav-theme="photo"] { background:#171b1ef2; color:#f5f5f1; }
.signal-nav[data-nav-theme="dark"] .direction-brand img, .signal-nav[data-nav-theme="photo"] .direction-brand img { filter:invert(1); }
.signal-nav[data-nav-theme="light"] { color:#171b1e; }
.signal-nav[data-nav-theme="light"] .direction-brand img { filter:none; }
.signal-nav-center { min-inline-size:0; position:relative; overflow:clip; min-block-size:44px; display:grid; align-items:center; }
.signal-nav .signal-direct { display:flex; justify-content:center; align-items:center; gap:clamp(14px,1.55vw,24px); font-size:.8125rem; white-space:nowrap; transition:transform 400ms var(--ease-heavy),clip-path 400ms var(--ease-heavy); clip-path:inset(0); }
.signal-nav .signal-direct a { padding-block:10px; }
.signal-chapter { position:absolute; inset:0; pointer-events:none; overflow:clip; clip-path:inset(100% 0 0); transition:clip-path 400ms var(--ease-heavy); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.signal-chapter > span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; transition:transform 340ms var(--ease-heavy); transform:translateY(120%); }
.signal-chapter[data-chapter-slot="0"] [data-chapter-word="0"], .signal-chapter[data-chapter-slot="1"] [data-chapter-word="1"] { transform:translateY(0); }
.signal-nav:is([data-nav-state="chapter"],[data-nav-state="immersive"]) .signal-direct { transform:translateY(-100%); clip-path:inset(100% 0 0); pointer-events:none; }
.signal-nav:is([data-nav-state="chapter"],[data-nav-state="immersive"]) .signal-chapter { clip-path:inset(0); }
.signal-nav .signal-nav-actions { display:flex; align-items:center; gap:18px; font-size:.8125rem; }
.signal-menu-control { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; padding:10px 14px; border:1px solid #7c899577 !important; min-block-size:44px; text-transform:uppercase; font-size:.75rem !important; letter-spacing:.05em; border-radius:0; white-space:nowrap; }
.signal-menu-control > span:last-child { font-size:1.2rem; line-height:1; }
.signal-demo { display:inline-flex; align-items:center; gap:24px; border:1px solid #7c89955c; padding:12px 16px; font-size:.8125rem; white-space:nowrap; }
.signal-demo:hover,.signal-menu-control:hover { background:#d7e5f4; color:#171b1e; }
.signal-login { transition:clip-path 340ms,opacity 340ms; }
.signal-nav[data-nav-state="immersive"] .signal-login { clip-path:inset(0 100% 0 0); opacity:0; pointer-events:none; }
.signal-nav-ready .signal-nav-fallback { display:none; }
.signal-nav-fallback { padding:80px var(--gutter); background:#e4eaf0; }
.signal-menu-open { overflow:hidden; }
.signal-menu-open main { opacity:calc(1 - var(--nav-open) * .48); }
.signal-menu-open.signal-route-travelling main { opacity:1; }
.signal-map { --nav-open:0; --nav-cover:0; --nav-labels:0; --nav-preview:0; --nav-route:0; position:fixed; inset:0; margin:0; padding:18px var(--gutter) 12px; inline-size:100%; block-size:100svh; max-inline-size:none; max-block-size:none; border:0; background:transparent; color:#171b1e; overflow:hidden; }
.signal-map::backdrop { background:transparent; }
.signal-map[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto auto; gap:18px; }
.signal-map-surface { position:absolute; inset:0; background:#e6ebef; clip-path:inset(0 0 0 calc((1 - var(--nav-cover)) * 100%)); }
.signal-map-top { position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; z-index:3; min-block-size:52px; }
.signal-map-top .direction-brand { inline-size:132px; }
.signal-map-top h2 { margin-inline-end:auto; font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; opacity:var(--nav-labels); }
.signal-map-body { position:relative; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:4vw; min-block-size:0; overflow:auto; padding-block:14px; }
.signal-map-routes { display:flex; flex-direction:column; justify-content:space-between; min-inline-size:0; }
.signal-map-link { display:grid; grid-template-columns:26px minmax(0,1fr) auto 20px; align-items:center; gap:12px; padding:10px 0; border-top:1px solid #8796a844; }
.signal-map-link:last-child { border-bottom:1px solid #8796a844; }
.signal-map-index { font-size:.6875rem; color:#6b7a88; align-self:start; margin-top:8px; }
.signal-map-label { overflow:clip; min-inline-size:0; }
.signal-map-label > span { display:block; font-size:clamp(28px,3.05vw,48px); line-height:1; letter-spacing:-.04em; text-transform:uppercase; overflow-wrap:anywhere; }
.signal-map-label > small { display:block; font-size:.75rem; line-height:1.4; margin-top:6px; color:#566674; }
.signal-map-label > :is(span,small) { transform:translateY(calc((1 - var(--nav-labels,1)) * 135%)); }
.signal-map-link .signal-map-label { transition:transform 180ms var(--ease-out); }
.signal-map-link[data-preview-active="true"] .signal-map-label { transform:translateX(8px); }
.signal-map-link[data-preview-active="true"] .signal-map-index { color:var(--accent-ink); background:var(--accent); }
.signal-map-link[data-preview-active="false"] .signal-map-label > span { color:#53616c; }
.signal-current { display:none; font-size:.5625rem; letter-spacing:.05em; text-transform:uppercase; padding:3px 5px; border:1px solid #899aaa; }
.signal-map-link[aria-current] .signal-current { display:block; }
.signal-link-arrow { font-size:1.2rem; }
.signal-portal-home { min-inline-size:0; min-block-size:360px; opacity:var(--nav-preview); }
.signal-portal { --preview-progress:1; position:relative; display:grid; grid-template-rows:auto minmax(0,1fr) auto; inline-size:100%; block-size:100%; min-block-size:340px; border:1px solid #a2b0bb; background:#d6e0e8; color:#171b1e; overflow:clip; isolation:isolate; }
.signal-portal-top,.signal-portal-bottom { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px; font-size:.75rem; line-height:1.5; position:relative; z-index:2; }
.signal-portal-top { text-transform:uppercase; letter-spacing:.06em; }
.signal-portal-bottom { border-top:1px solid #95a7b75e; min-block-size:72px; }
.signal-portal-open { flex-shrink:0; }
.signal-portal-art { position:relative; min-block-size:0; display:grid; align-items:center; justify-items:center; padding:24px; transform:translate(calc(var(--portal-pointer-x,0) * 5px),calc(var(--portal-pointer-y,0) * 5px)); }
.portal-raven { inline-size:65%; max-block-size:360px; object-fit:contain; }
.portal-signal-point { position:absolute; right:25%; top:34%; width:7px; height:7px; border-radius:50%; background:#edf6ff; }
.portal-record { inline-size:100%; max-inline-size:380px; padding:16px; border:1px solid #adbac6; background:#f8fafb; border-radius:4px; }
.portal-record > span { display:flex; justify-content:space-between; font-size:.65rem; color:#647485; }
.portal-record i { font-style:normal; }
.portal-record h3 { margin:16px 0; font-size:clamp(18px,1.5vw,26px); }
.portal-record-pieces { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.portal-record-pieces > * { min-inline-size:0; transform:translateY(calc((1 - var(--preview-progress)) * 32px)); opacity:calc(.2 + var(--preview-progress) * .8); }
.portal-record-pieces img { inline-size:100%; block-size:100px; object-fit:cover; }
.portal-record-pieces > span { padding:10px; font-size:.6875rem; background:#e3ebf2; }
.portal-wave { display:flex; align-items:center; justify-content:center; gap:7px; background:#e3ebf2; }
.portal-wave i { width:2px; height:25%; background:#7f94a7; }
.portal-wave i:nth-child(2n) { height:50%; }
.portal-record > p { margin-top:16px; font-size:.75rem; }
.portal-next-action { border:1px solid #8fa4b8; inline-size:100%; padding:24px; background:#f1f5f7; transform:translateY(calc((1 - var(--preview-progress)) * 26px)); }
.portal-next-action > span { display:block; font-size:.6875rem; color:#647585; margin-top:12px; }
.portal-next-action > strong { display:block; font-size:1.6rem; font-weight:400; margin-top:5px; }
.portal-next-action > p { margin-top:8px; font-size:.9375rem; }
.portal-small-signal { position:absolute; top:6%; left:10%; font-size:.75rem; }
.signal-portal[data-preview="industries"] { background:#171b1e; color:#f5f5f1; }
.signal-portal-art[data-portal-art="industries"] { padding:0; }
.portal-environment { position:absolute; inset:0; inline-size:100%; block-size:100%; object-fit:cover; filter:saturate(.65); }
.portal-target { position:absolute; inset:25% 16% 25% 38%; border:1px solid white; transform:scale(calc(.7 + var(--preview-progress) * .3)); }
.portal-environment-label { position:absolute; bottom:24px; left:24px; padding:4px 7px; background:#171b1ecc; font-size:.75rem; }
.signal-portal[data-preview="team"] { background:#242d34; color:#e8edf1; }
.portal-person-index { position:absolute; top:8px; left:24px; font-size:.8125rem; letter-spacing:.06em; }
.portal-portrait-trio { display:grid; grid-template-columns:.5fr 1fr .5fr; grid-template-rows:minmax(0,1fr); gap:8px; width:100%; height:76%; min-block-size:0; }
.portal-portrait-trio i { min-block-size:0; overflow:clip; background:#566775; display:grid; place-items:center; transform:translateY(calc((1 - var(--preview-progress)) * 25px)); }
.portal-portrait-trio i:nth-child(2) { background:#a1b1be; transform:none; }
.portal-portrait-trio img { width:90%; height:auto; max-block-size:100%; object-fit:contain; opacity:.8; }
.portal-portrait-note { position:absolute; bottom:8px; left:24px; right:24px; font-size:.6875rem; }
.portal-archive { list-style:none; width:100%; padding:0; }
.portal-archive li { display:flex; gap:24px; padding:24px 0; border-block-end:1px solid #92a6b8; font-size:1.125rem; transform:translateY(calc((1 - var(--preview-progress)) * 12px)); }
.portal-archive span { font-size:.6875rem; }
.portal-pricing { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; min-block-size:240px; border-top:1px solid #829aaf; }
.portal-pricing article { min-inline-size:0; padding:18px 10px; border-right:1px solid #a0b1bf; }
.portal-pricing article:last-child { border:0; }
.portal-pricing article > span { font-size:.65rem; }
.portal-pricing h3 { font-size:clamp(16px,1.5vw,24px); margin-top:28px; overflow-wrap:anywhere; }
.portal-pricing p { margin-top:12px; font-size:.6875rem; line-height:1.5; }
.portal-pricing i { display:block; height:1px; background:#9cafbf; margin-top:18px; transform:scaleX(var(--preview-progress)); transform-origin:left; }
.signal-map-utilities { position:relative; display:flex; gap:24px; justify-content:space-between; align-items:center; opacity:var(--nav-labels); border-top:1px solid #93a5b74d; padding-top:16px; font-size:.75rem; }
.signal-map-utilities > div:first-child { display:flex; gap:24px; align-items:center; }
.signal-map-utilities .language-switcher nav { inset-block-start:auto; inset-block-end:100%; }
.signal-unconfirmed { display:flex; flex-wrap:wrap; gap:5px 18px; align-items:center; font-size:.625rem; color:#536574; max-inline-size:40%; }
.signal-unconfirmed a { display:block; overflow-wrap:anywhere; }
.signal-unconfirmed a > span { display:block; font-size:.5625rem; }
.signal-map-note { position:relative; font-size:.625rem; color:#697b8b; opacity:var(--nav-labels); }
.signal-destination > .direction-content { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:40px 6vw; align-items:center; min-block-size:100svh; }
.signal-destination-heading h2 { font-size:clamp(58px,7vw,112px); margin-block:24px; }
.signal-destination-heading > p:not(.direction-kicker) { max-inline-size:33ch; font-size:1.2rem; line-height:1.6; }
.signal-destination-heading .direction-pill { margin-top:32px; font-size:.8125rem; }
.signal-back-lab { display:block; font-size:.8125rem; margin-top:24px; }
.signal-destination-visual { block-size:560px; min-inline-size:0; }
.signal-destination-note { grid-column:1/-1; }
.signal-route-travelling .signal-destination-heading > :is(h2,.direction-kicker) { clip-path:inset(0 0 calc((1 - var(--destination-reveal)) * 100%) 0); transform:translateY(calc((1 - var(--destination-reveal)) * 18px)); }
.signal-route-travelling .signal-destination-heading > :is(p:not(.direction-kicker),a),.signal-route-travelling .signal-destination-note { opacity:var(--destination-copy); transform:translateY(calc((1 - var(--destination-copy)) * 8px)); }
.signal-flight-resume { position:fixed; z-index:10; bottom:30px; right:30px; background:#f5f5f1 !important; padding:16px 24px; box-shadow:0 3px 20px #0002; }
.home-portal-landing { position:absolute; right:-1%; bottom:-10%; width:29%; height:470px; pointer-events:none; }
.home-portal-landing .signal-portal { border:0; background:transparent; display:block; min-block-size:0; }
.home-portal-landing .signal-portal-art { height:100%; padding:0; }
.home-portal-landing .portal-raven { width:100%; height:100%; max-block-size:none; }
.home-portal-landing :is(.signal-portal-top,.signal-portal-bottom,.portal-signal-point) { display:none; }
.home-has-portal .direction-raven { visibility:hidden; }
.signal-lab-controls { display:grid; gap:12px; padding-top:16px; border-top:1px solid #92a4b8; }
.signal-lab-controls > p:first-child { font-weight:600; }
.signal-entry-replays { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.signal-entry-replays button { font-size:.6875rem !important; }
.direction-debug-content { max-block-size:calc(85svh - 70px); overflow:auto; }
@media (max-width:1099px) {
  .signal-nav .signal-direct { font-size:.75rem; gap:12px; }
  .signal-nav .signal-nav-actions { gap:10px; }
  .direction-header.signal-nav { grid-template-columns:115px minmax(0,1fr) auto; gap:16px; padding-inline:24px; }
  .signal-nav .direction-brand { inline-size:115px; }
  .signal-login { display:none; }
  .signal-map-body { gap:24px; }
  .signal-map-label > span { font-size:30px; }
  .signal-map-utilities { flex-wrap:wrap; gap:12px; }
  .signal-unconfirmed { max-inline-size:55%; }
  .signal-destination > .direction-content { grid-template-columns:1fr; }
  .signal-destination-visual { block-size:500px; }
}
@media (max-width:760px) {
  .direction-header.signal-nav { grid-template-columns:96px minmax(0,1fr); gap:10px; padding:14px 16px; min-block-size:80px; }
  .signal-nav .direction-brand { inline-size:96px; }
  .signal-nav-center { display:none; }
  .signal-nav .signal-nav-actions { justify-content:flex-end; gap:8px; }
  .signal-nav .signal-nav-actions > :is(.signal-menu-control,.signal-demo) { display:inline-flex; }
  .signal-menu-control { font-size:.625rem !important; gap:8px; padding:10px 8px; }
  .signal-nav .signal-demo { font-size:.625rem; padding:11px 8px; gap:6px; }
  .signal-nav .signal-demo > span { display:none; }
  .signal-map { padding:14px 20px 10px; }
  .signal-map[open] { gap:10px; }
  .signal-map-top { gap:12px; }
  .signal-map-top .direction-brand { inline-size:104px; }
  .signal-map-top h2 { font-size:.5625rem; letter-spacing:.05em; }
  .signal-map-body { display:block; padding-block:6px; }
  .signal-map-link { padding:9px 0; gap:9px; grid-template-columns:20px minmax(0,1fr) auto 24px; }
  .signal-map-link:hover > .signal-link-arrow { transform:none; }
  .signal-map-label > span { font-size:28px; }
  .signal-map-label > small { font-size:.6875rem; }
  .signal-map-index { margin-top:5px; }
  .signal-current { font-size:.5rem; padding:2px 3px; }
  .signal-portal-home { block-size:260px; min-block-size:0; margin-top:20px; }
  .signal-portal-home .signal-portal { min-block-size:0; }
  .signal-portal-top,.signal-portal-bottom { padding:12px; font-size:.6875rem; }
  .signal-portal-bottom { min-block-size:50px; }
  .signal-portal-art { padding:12px; }
  .signal-portal-home .portal-record { padding:10px; }
  .signal-portal-home .portal-record > p,.signal-portal-home .portal-record-pieces > span { display:none; }
  .signal-portal-home .portal-record h3 { margin:8px 0; font-size:17px; }
  .signal-portal-home .portal-record-pieces img { block-size:70px; }
  .signal-portal-home .portal-raven { block-size:130px; }
  .signal-map-utilities { align-items:start; gap:8px; padding-top:8px; }
  .signal-map-utilities > div:first-child { gap:16px; }
  .signal-unconfirmed { order:3; max-inline-size:100%; inline-size:100%; font-size:.5625rem; gap:4px 12px; }
  .signal-unconfirmed a > span { display:none; }
  .signal-map-utilities .signal-demo { font-size:.6875rem; padding:8px 10px; gap:8px; }
  .signal-map-note { font-size:.5625rem; }
  .signal-destination-visual { block-size:460px; }
  .home-portal-landing { width:36%; height:200px; bottom:-12px; right:0; opacity:.16; }
  .signal-flight-resume { right:20px; bottom:20px; padding:12px 16px; }
}
@media (max-width:380px) {
  .direction-header.signal-nav { grid-template-columns:82px minmax(0,1fr); gap:8px; }
  .signal-nav .direction-brand { inline-size:82px; }
  .signal-nav .signal-nav-actions { gap:6px; }
  .signal-map-label > span { font-size:24px; }
  .signal-map-top h2 { position:absolute; inline-size:1px; block-size:1px; overflow:hidden; clip-path:inset(50%); }
}
@media (prefers-reduced-motion:reduce) { .signal-menu-open main { transform:none; opacity:1; } .signal-portal-art { transform:none; } }
.motion-reduced.signal-menu-open main { transform:none; opacity:1; }
.motion-reduced .signal-portal-art { transform:none; }
@media (prefers-reduced-motion:reduce) { .signal-map-link .signal-map-label { transform:none; transition:none; } }
.motion-reduced .signal-map-link .signal-map-label { transform:none; transition:none; }

.direction-page { --entry-form:1; --entry-title-a:1; --entry-title-b:1; --entry-copy:1; --entry-cta:1; --first-scroll:0; }
.first-signal-layer { position:fixed; inset:0; z-index:90; pointer-events:none; overflow:clip; }
.first-signal-paper { position:absolute; inset:0; background:#f5f5f1; opacity:var(--entry-paper,1); }
.first-signal-point { position:absolute; top:50%; left:50%; width:8px; height:8px; border-radius:50%; background:#b8d3ee; opacity:var(--entry-signal,1); }
.first-signal-running .first-signal-layer > .first-signal-point { animation:signal-once 220ms ease-out 1; }
@keyframes signal-once { 0% { transform:scale(.7); } 55% { transform:scale(1.8); } 100% { transform:scale(1); } }
.first-signal-id { position:absolute; top:calc(50% + 28px); left:50%; transform:translateX(-50%); font-size:.6875rem; letter-spacing:.16em; opacity:var(--entry-signal); }
.first-signal-frame { position:absolute; left:50%; top:48%; width:min(48vw,620px); height:min(58vh,520px); transform:translate(-50%,-50%) scale(calc(.16 + var(--entry-frame) * .84)); opacity:calc(var(--entry-frame) * (1 - var(--entry-form))); }
.first-signal-frame > i { position:absolute; width:30px; height:30px; border-color:#6d8499; border-style:solid; opacity:var(--entry-frame); }
.first-signal-frame > i:nth-child(1) { top:0; left:0; border-width:1px 0 0 1px; }
.first-signal-frame > i:nth-child(2) { top:0; right:0; border-width:1px 1px 0 0; opacity:clamp(0,calc(var(--entry-frame) * 1.3 - .12),1); }
.first-signal-frame > i:nth-child(3) { bottom:0; right:0; border-width:0 1px 1px 0; opacity:clamp(0,calc(var(--entry-frame) * 1.3 - .2),1); }
.first-signal-frame > i:nth-child(4) { bottom:0; left:0; border-width:0 0 1px 1px; opacity:clamp(0,calc(var(--entry-frame) * 1.3 - .3),1); }
.first-signal-scan { position:absolute; inset:0 0 auto; height:1px; background:#9db6cc; transform:translateY(calc(var(--entry-scan) * min(58vh,520px))); opacity:clamp(0,calc((1 - var(--entry-scan)) * 5),1); }
.first-signal-words { position:absolute; bottom:-32px; left:0; right:0; text-align:center; font-size:.625rem; letter-spacing:.16em; text-transform:uppercase; opacity:var(--entry-words); }
.first-signal-raven { position:absolute; left:50%; top:48%; width:min(42vw,490px); height:min(54vh,500px); transform:translate(-50%,-50%) scale(calc(1 - var(--entry-form) * .06)); opacity:calc(1 - var(--entry-form)); }
.first-signal-raven img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.first-signal-raven img:nth-child(1) { clip-path:polygon(0 0,100% 0,100% 38%,0 38%); opacity:var(--entry-raven-a); transform:translateY(calc((1 - var(--entry-raven-a)) * 12px)); }
.first-signal-raven img:nth-child(2) { clip-path:polygon(0 37%,100% 37%,100% 69%,0 69%); opacity:var(--entry-raven-b); transform:translateY(calc((1 - var(--entry-raven-b)) * 16px)); }
.first-signal-raven img:nth-child(3) { clip-path:polygon(0 68%,100% 68%,100% 100%,0 100%); opacity:var(--entry-raven-c); transform:translateY(calc((1 - var(--entry-raven-c)) * 20px)); }
.first-signal-nav-rule { position:absolute; top:88px; left:0; width:100%; height:1px; background:#6e869b; transform:translateY(calc((1 - var(--entry-form)) * (50vh - 88px))) scaleX(calc(.24 + var(--entry-form) * .76)); opacity:calc(var(--entry-raven-c) * (1 - var(--entry-title-a))); }
.first-signal-menu-edge,.first-signal-demo-edge { position:absolute; border:1px solid #7891a6; opacity:calc(var(--entry-raven-c) * (1 - var(--entry-form))); }
.first-signal-menu-edge { left:calc(var(--entry-menu-x) * 100vw); top:calc(var(--entry-menu-y) * 100vh); width:calc(var(--entry-menu-w) * 100vw); height:calc(var(--entry-menu-h) * 100vh); transform:translate(calc((.5 - var(--entry-menu-x)) * 100vw * (1 - var(--entry-form))),calc((.5 - var(--entry-menu-y)) * 100vh * (1 - var(--entry-form)))) scale(calc(1 + (1 - var(--entry-form)) * 3)); }
.first-signal-demo-edge { left:calc(var(--entry-demo-x) * 100vw); top:calc(var(--entry-demo-y) * 100vh); width:calc(var(--entry-demo-w) * 100vw); height:calc(var(--entry-demo-h) * 100vh); transform:translateY(calc((1 - var(--entry-form)) * 40vh)); }
.first-signal-running .signal-nav { background:transparent; border-color:transparent; }
.first-signal-running .signal-nav .direction-brand { clip-path:inset(0 calc((1 - var(--entry-form)) * 100%) 0 0); transform:translateY(calc((1 - var(--entry-form)) * 10px)); }
.first-signal-running .signal-nav-center { clip-path:inset(0 calc((1 - var(--entry-form)) * 100%) 0 0); }
.first-signal-running .signal-nav-actions > * { clip-path:inset(calc((1 - var(--entry-form)) * 100%) 0 0); transform:translateY(calc((1 - var(--entry-form)) * 20px)); }
.first-signal-running .signal-nav .direction-progress { transform:scaleX(var(--entry-form)); }
.first-signal-ready #direction-title:not(.title-timed) .line-mask > span { transform:none; }
.first-signal-ready .direction-raven { transform:translate(calc(var(--hero-pointer-x,0) * 8px),calc(var(--hero-pointer-y,0) * 8px)); }
.first-signal-ready .direction-title { transform:translate(calc(var(--hero-pointer-x,0) * 2px),calc(var(--hero-pointer-y,0) * 2px)); }
.first-signal-running #direction-title .line-mask:first-child > span { transform:translateY(calc((1 - var(--entry-title-a)) * 105%)); }
.first-signal-running #direction-title .line-mask:nth-child(2) > span { transform:translateY(calc((1 - var(--entry-title-b)) * 105%)); }
.first-signal-running .first-hero-label { opacity:clamp(0,calc(var(--entry-form) * 5 - 4),1); }
.first-signal-running .direction-raven { opacity:var(--entry-form); }
.first-signal-running .direction-intro-foot > p { clip-path:inset(0 0 calc((1 - var(--entry-copy)) * 100%) 0); }
.first-signal-running :is(.first-hero-cta,.first-hero-scroll,.direction-compare) { opacity:var(--entry-cta); }
.first-scroll-field,.first-scroll-wing { display:none; position:absolute; inset:0; pointer-events:none; overflow:clip; }
.first-scroll-field { z-index:3; }
.first-scroll-field > img { width:100%; height:100%; object-fit:cover; filter:saturate(.7) brightness(.72); }
.first-scroll-field > p { position:absolute; bottom:8%; left:var(--gutter); right:var(--gutter); color:#f5f5f1; font-size:clamp(24px,3vw,44px); max-inline-size:24ch; }
.first-scroll-target { position:absolute; left:62%; top:42%; width:17%; height:26%; border:1px solid #e5f0fa; opacity:var(--first-lock); }
.first-scroll-target > .first-signal-point { opacity:1; top:50%; left:50%; }
.first-scroll-wing { z-index:2; }
.first-scroll-wing > img { position:absolute; width:29%; height:auto; right:4%; top:15%; transform:scale(calc(1 + var(--first-wing) * 14)); transform-origin:center; }
.first-scroll-wing::after { content:''; position:absolute; inset:0; background:#101719; opacity:clamp(0,calc(var(--first-wing) * 5 - 3.5),1); }
.first-signal-ready #direction-title.scene-active .first-scroll-wing { display:block; opacity:clamp(0,calc(var(--first-wing) * 3),1); }
.first-signal-ready #direction-title.scene-active .first-scroll-field { display:block; opacity:var(--first-field); clip-path:polygon(0 0,calc(var(--first-field) * 100%) 0,calc(var(--first-field) * 130%) 100%,0 100%); }
.first-signal-ready #direction-title.scene-active .direction-content { z-index:4; opacity:calc(1 - var(--first-wing)); }
.first-signal-running #direction-title.scene-active .direction-content { opacity:1; }
.first-signal-running[data-entry-mode="reduced"] .first-signal-layer > :not(.first-signal-paper) { display:none; }
.first-signal-running[data-entry-mode="reduced"] :is(.signal-nav .direction-brand,.signal-nav-actions > *,.direction-title,.direction-raven) { transform:none; }
@media (max-width:760px) {
  .first-signal-frame { width:72vw; height:44vh; }
  .first-signal-raven { width:65vw; height:42vh; }
  .first-signal-words { font-size:.5625rem; }
  .first-hero-cta { margin-top:4px; }
  .direction-intro-foot { gap:20px; }
}
.motion-reduced .first-scroll-wing,.motion-reduced .first-scroll-field { display:none !important; }
.motion-reduced.first-signal-ready .direction-content { opacity:1; }
.motion-reduced :is(.direction-raven,.direction-title) { transform:none !important; }
@media (prefers-reduced-motion:reduce) { .first-scroll-wing,.first-scroll-field { display:none !important; } .first-signal-ready :is(.direction-raven,.direction-title) { transform:none; } }

/* The content canvas grows with the viewport, including on large desktop displays. */
.direction-page { --gutter:clamp(20px,3vw,96px); --canvas-space:calc(100svh - var(--scene-header)); }
.direction-frame { min-block-size:var(--canvas-space); align-items:stretch; }
.direction-heading { grid-template-columns:minmax(0,.28fr) minmax(0,1fr); }
.direction-heading h2 { max-inline-size:none; font-size:clamp(42px,5.2vw,180px); }
.direction-assembly-stage .direction-record { inline-size:74%; }
.signature-frame { inline-size:60%; }
.direction-travelling-record .direction-record { inline-size:100%; }
.person-chapter-portrait { max-inline-size:none; }
.person-chapter-portrait img { inline-size:65%; block-size:auto; max-block-size:80%; object-fit:contain; }
.direction-route-stage { margin-inline:calc(-1 * var(--gutter)); padding-inline:var(--gutter); }
.signal-destination-visual .signal-portal { border:0; background:transparent; display:grid; grid-template-rows:minmax(0,1fr); }
.signal-destination-visual .signal-portal > :is(.signal-portal-top,.signal-portal-bottom) { display:none; }

@media (min-width:1100px) {
  .signal-map-body { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); overflow:auto; margin-inline-end:calc(-1 * var(--gutter)); padding-inline-end:var(--gutter); }
  .signal-portal-home { margin-inline-end:calc(-1 * var(--gutter)); }
  .signal-portal-home .signal-portal { border:0; background:var(--paper); display:block; }
  .signal-portal-home .signal-portal-art { position:absolute; inset:0; padding:24px; }
  .signal-portal-home .signal-portal-top { position:absolute; inset:0 0 auto; }
  .signal-portal-home .signal-portal-bottom { position:absolute; inset:auto 0 0; border:0; }
  .signal-portal-home .signal-portal-art { clip-path:inset(0 0 0 calc((1 - var(--preview-progress)) * 100%)); }
  .signal-map-label > span { font-size:clamp(28px,3.4vw,58px); }
  .direction-frame { align-items:stretch; }
  .direction-content { padding-block:32px; }
  .direction-scene.is-pinned .direction-content { padding-block:24px; }
  .direction-frame > .direction-content { min-block-size:var(--canvas-space); }
  .direction-intro:not(.is-pinned) > .direction-frame > .direction-content { min-block-size:100svh; padding-block-start:calc(var(--scene-header) + 24px); }
  :is(.direction-intro,.direction-morph,.direction-assembly,.direction-handoff,.direction-cut,.direction-next) .direction-content { display:flex; flex-direction:column; justify-content:space-between; gap:clamp(16px,2svh,32px); }
  .direction-heading { margin-bottom:0; }
  :is(.morph-stage,.direction-assembly-stage,.direction-device-stage) { flex:1; }
  .direction-scene-foot { margin-top:0; }
  .direction-title-composition { flex:1; display:flex; align-items:center; padding-block:32px; }
  .direction-title { font-size:clamp(88px,8vw,280px); max-inline-size:none; inline-size:77%; }
  .direction-raven,.home-portal-landing { inline-size:37%; block-size:100%; max-block-size:none; inset:auto -1% 0 auto; object-fit:contain; }
  .direction-compare { margin-top:0; }
  .direction-intro-foot > p { font-size:clamp(16px,1.2vw,30px); }
  .morph-stage { min-block-size:clamp(360px,55svh,880px); }
  .signature-frame > img { block-size:clamp(170px,26svh,420px); }
  .signature-detail { padding:clamp(18px,1.5vw,40px); }
  .signature-detail h3 { font-size:clamp(24px,2.2vw,64px); }
  .signature-detail :is(span,p),.signature-resolved { font-size:clamp(14px,1.1vw,28px); }
  .direction-assembly-stage { min-block-size:clamp(410px,60svh,960px); }
  .direction-assembly-stage .piece-photo { --fragment-x:-10vw; }
  .direction-assembly-stage .piece-voice,.direction-assembly-stage .piece-owner { --fragment-x:9vw; }
  .direction-assembly-stage .piece-time { --fragment-x:-11vw; }
  .direction-assembly-stage .piece-category { --fragment-x:11vw; }
  .direction-assembly-stage .piece-priority { --fragment-x:-6vw; }
  .direction-record { padding:clamp(16px,1.2vw,32px); }
  .direction-record > header,.direction-piece > span,.piece-photo figcaption { font-size:clamp(12px,.95vw,24px); }
  .direction-record > h3 { font-size:clamp(22px,1.8vw,48px); }
  .direction-piece { padding:clamp(10px,.8vw,22px); }
  .piece-photo { padding:0; }
  .piece-photo img { block-size:clamp(130px,17svh,280px); }
  .piece-voice p,.direction-piece strong { font-size:clamp(14px,1.1vw,28px); }
  .direction-wave { block-size:clamp(27px,4svh,64px); }
  .scene-active .direction-device-stage,.direction-device-stage { min-block-size:clamp(420px,60svh,960px); }
  .direction-dashboard { padding:clamp(18px,1.4vw,40px); }
  .direction-dashboard > header,.direction-responsibility dt,.direction-action { font-size:clamp(13px,1.05vw,26px); }
  .direction-responsibility dd { font-size:clamp(15px,1.2vw,30px); }
  .direction-responsibility dl > div { padding-block:clamp(16px,2svh,32px); }
  .direction-people > .direction-content { padding-block:32px; }
  .people-carousel { margin-top:32px; }
  .person-portrait { aspect-ratio:auto; min-block-size:65svh; }
  .person-copy h3 { font-size:clamp(48px,5.4vw,168px); }
  .person-role,.person-statement { font-size:clamp(18px,1.45vw,36px); }
  .person-chapter-content { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:24px 4vw; }
  .person-chapter-portrait { align-self:stretch; aspect-ratio:auto; min-block-size:65svh; }
  .person-chapter-copy h2 { font-size:clamp(56px,5.8vw,180px); }
  .person-chapter-copy > p:not(.direction-note,.direction-kicker),.direction-lead { font-size:clamp(18px,1.45vw,36px); }
  .person-chapter-foot { align-self:end; }
  .direction-cut h2 { font-size:clamp(80px,10vw,320px); max-inline-size:15ch; }
  .field-content h2 { font-size:clamp(64px,8vw,240px); }
  .field-caption { font-size:clamp(13px,1.1vw,28px); }
  .direction-cut .direction-lead { margin-top:0 !important; }
  .direction-route-stage { min-block-size:68svh; }
  .direction-route-stage h2 { font-size:clamp(100px,14vw,420px); }
  .direction-fallback > .direction-content { min-block-size:100svh; display:flex; flex-direction:column; justify-content:space-between; gap:32px; }
  .fallback-composition { flex:1; margin-top:0; }
  .fallback-composition h2 { font-size:clamp(64px,6.5vw,190px); }
  .fallback-composition .direction-record { inline-size:100%; }
  .direction-next .next-title { font-size:clamp(120px,17vw,520px); }
  .next-arrival { margin-top:0; }
  .signal-destination > .direction-content { min-block-size:var(--canvas-space); padding-block:24px; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:24px 4vw; }
  .signal-destination-visual { block-size:calc(100svh - var(--scene-header) - 100px); min-block-size:480px; }
  .signal-destination-heading h2 { font-size:clamp(72px,8vw,240px); }
  .signal-destination-heading > p:not(.direction-kicker) { font-size:clamp(20px,1.6vw,40px); }
  :is(.signal-portal-home,.signal-destination-visual) .portal-record { max-inline-size:100%; inline-size:38vw; padding:2vw; }
  :is(.signal-portal-home,.signal-destination-visual) .portal-record h3 { font-size:clamp(24px,2.1vw,58px); }
  :is(.signal-portal-home,.signal-destination-visual) .portal-record-pieces img { block-size:20svh; }
  :is(.signal-portal-home,.signal-destination-visual) .portal-record :is(p,span) { font-size:clamp(13px,1.05vw,26px); }
}

@media (min-width:601px) and (max-width:1099px) {
  .direction-heading { grid-template-columns:1fr; }
  .direction-content,.direction-scene > .direction-content { padding-block:40px; }
  .direction-intro .direction-content { padding-block-start:calc(var(--scene-header) + 24px); }
  :is(.direction-morph,.direction-assembly,.direction-handoff) .direction-content { display:flex; flex-direction:column; justify-content:space-between; gap:20px; }
  :is(.direction-morph,.direction-assembly,.direction-handoff) .direction-heading { margin-bottom:0; }
  .direction-assembly-stage .direction-record,.signature-frame { inline-size:92%; }
  .direction-record { max-inline-size:none; }
  .piece-photo img { block-size:24svh; }
  .direction-title { font-size:10vw; }
  .direction-title-composition { min-block-size:46svh; display:flex; align-items:center; }
  .direction-raven { inline-size:46%; block-size:100%; max-block-size:none; }
  .person-portrait,.person-chapter-portrait { aspect-ratio:4/3; max-inline-size:none; }
  .signal-destination-visual { block-size:65svh; }
}
@media (max-width:600px) {
  .direction-heading { grid-template-columns:1fr; }
  .direction-content,.direction-scene > .direction-content { padding-block:32px 40px; }
  .direction-intro .direction-content { padding-block-start:calc(var(--scene-header) + 20px); }
  .direction-assembly-stage .direction-record,.signature-frame { inline-size:100%; }
  .direction-assembly-stage { padding-block:0; }
  .direction-heading h2 { font-size:clamp(38px,10vw,60px); }
  .direction-title-composition { padding-block:32px; }
  .direction-raven { inline-size:48%; block-size:100%; max-block-size:none; }
  .person-portrait,.person-chapter-portrait { margin-inline:calc(-1 * var(--gutter)); inline-size:calc(100% + 2 * var(--gutter)); max-inline-size:none; }
}

/* Approved black/white art direction, applied only to the Motion Lab review. */
.direction-page {
  --paper:var(--korppi-mist); --ink:var(--korppi-charcoal); --blue:var(--korppi-gray-100);
  --accent:var(--korppi-ice); --accent-hover:var(--korppi-ice-deep); --accent-ink:var(--korppi-raven);
  --motion-menu:500ms; --motion-portal:700ms;
}
.direction-intro,.direction-assembly,.direction-route,.direction-fallback { background:var(--korppi-mist); }
.direction-header.signal-nav[data-nav-theme="light"] { background:var(--korppi-mist); }
.direction-header.signal-nav:is([data-nav-theme="dark"],[data-nav-theme="photo"]) { background:var(--korppi-graphite); }
.direction-morph,.direction-route-stage { background:var(--korppi-gray-100); }
.direction-handoff,.direction-cut,.direction-person-chapter { background:var(--korppi-graphite); color:var(--korppi-mist); }
.direction-people,.direction-next { background:var(--korppi-raven); color:var(--korppi-mist); }
.direction-people :is(.people-controls>span,.direction-note),.direction-people .person-role { color:var(--korppi-gray-300); }
.direction-people .person-portrait,.person-chapter-portrait { background:var(--korppi-charcoal); }
.direction-people .person-slide:nth-child(3) .person-portrait { background:var(--korppi-gray-200); }
.direction-cut-wash { background:var(--korppi-charcoal); }
.direction-dashboard { background:var(--korppi-charcoal); border-color:var(--korppi-border-dark); border-radius:var(--korppi-radius-panel); }
.direction-record,.portal-record,.signature-frame { background:var(--korppi-snow); border-color:var(--korppi-border-light); border-radius:var(--korppi-radius-card); box-shadow:var(--korppi-shadow); }
.direction-piece,.portal-record-pieces>span,.portal-wave { background:var(--korppi-gray-100); border-color:var(--korppi-gray-200); }
.direction-piece { border-radius:var(--korppi-radius-control); }
.direction-wave i,.portal-wave i { background:#66717b; }
.signature-resolved { background:var(--korppi-gray-100); border-inline-start:3px solid var(--accent); }
.direction-action,.next-arrival>span { color:var(--accent); }
.route-alternate { background:var(--korppi-gray-200); }
.direction-pill { border-radius:var(--korppi-radius-control); }
.direction-intro .signal-demo { background:var(--korppi-raven); color:var(--korppi-snow); border-radius:var(--korppi-radius-control); }
.direction-page :is(a,button,input,select):focus-visible { outline-color:var(--accent); }

/* The menu is a stationary black directory. Only its visible plane opens/closes. */
.signal-menu-open main { opacity:1; transform:none; }
.signal-map { color:var(--korppi-snow); clip-path:inset(0 0 calc((1 - var(--nav-cover)) * 100%) 0); }
.signal-map-surface { background:var(--korppi-raven); clip-path:none; }
.signal-map-top .direction-brand img { filter:invert(1); }
.signal-map .signal-menu-control:hover,.signal-map .signal-demo:hover { background:var(--korppi-snow); color:var(--korppi-raven); }
.signal-map-label>small,.signal-map-index,.signal-unconfirmed,.signal-map-note { color:var(--korppi-gray-300); }
.signal-map-link,.signal-map-link:last-child,.signal-map-utilities { border-color:var(--korppi-border-dark); }
.signal-map-link .signal-map-label { transform:none; transition:none; }
.signal-map-link[data-preview-active="false"] .signal-map-label>span { color:var(--korppi-gray-300); }
.signal-map-link[data-preview-active="true"] .signal-map-label>span { color:var(--korppi-snow); }
.signal-map-link[data-preview-active="true"] .signal-map-index { background:transparent; color:var(--accent); box-shadow:inset 2px 0 var(--accent); padding-inline-start:5px; }
.signal-portal-art { transform:none; }
.signal-portal-home .signal-portal { border:0; background:var(--korppi-graphite); color:var(--korppi-snow); }
.signal-portal-home .portal-raven { filter:invert(1); }
.portal-record,.portal-next-action { color:var(--korppi-charcoal); }
.portal-next-action { background:var(--korppi-snow); border-color:var(--korppi-gray-200); }
.signal-portal-home :is(.portal-record-pieces>*,.portal-next-action,.portal-portrait-trio i,.portal-archive li,.portal-target,.portal-pricing i) { transform:none; opacity:1; }
.signal-portal-home .signal-portal-art { clip-path:inset(0 0 calc((1 - var(--preview-progress)) * 100%) 0); }
.portal-portrait-trio i { background:var(--korppi-charcoal); }
.portal-portrait-trio i:nth-child(2) { background:var(--korppi-gray-300); }
.signal-map .signal-portal-bottom { border-color:var(--korppi-border-dark); }
.signal-map .language-switcher nav { color:var(--korppi-charcoal); }

/* Click: retain selection, lift the black plane, reveal the settled page below. */
.signal-map[data-travelling] { clip-path:inset(0 0 calc(var(--takeover-exit) * 100%) 0); }
.signal-map[data-travelling] .signal-map-link,
.signal-map[data-travelling] :is(.signal-map-utilities,.signal-map-note) { opacity:calc(1 - var(--takeover-lock)); }
.signal-map[data-travelling] .signal-map-link[aria-current] { opacity:calc(1 - var(--takeover-title)); }
.signal-map[data-travelling] .signal-portal-home { opacity:calc(1 - var(--takeover-title)); }
.signal-map[data-travelling] .signal-map-top h2 { opacity:calc(1 - var(--takeover-lock)); }
.signal-flight-resume { top:90px; bottom:auto; color:var(--korppi-raven); }
.signal-route-travelling .signal-destination-heading>:is(h2,.direction-kicker) { transform:none; }
.signal-route-travelling .signal-destination-heading>:is(p:not(.direction-kicker),a),.signal-route-travelling .signal-destination-note { transform:none; }
.direction-page[data-signal-route="team"] .signal-destination { background:var(--korppi-graphite); color:var(--korppi-mist); }
.direction-page[data-signal-route="team"] .signal-destination .direction-note { color:var(--korppi-gray-300); }
.signal-destination-visual .signal-portal-art { transform:none; }
@media (max-width:760px) { .signal-portal-home { display:none; } }
@media (prefers-reduced-motion:reduce) { .signal-map { clip-path:none; } }
.motion-reduced .signal-map { clip-path:none; }

/* Backgrounds support a scene; content never depends on their playback. */
.direction-page { --asset-reveal:1; --asset-confirm:1; --asset-focus:1; --ambient-x:0; --ambient-y:0; }
[data-atmosphere]>.direction-frame { isolation:isolate; }
[data-atmosphere] .direction-content { z-index:1; }
.atmosphere-layer,.atmosphere-landscape { position:absolute; inset:0; overflow:clip; pointer-events:none; z-index:0; }
.atmosphere-structure { position:absolute; width:100%; height:100%; inset:0; stroke:currentColor; stroke-width:.7; opacity:.13; transform:translate(calc(var(--ambient-x) * 3px),calc(var(--ambient-y) * 3px)); }
.atmosphere-points { fill:currentColor; stroke:none; }
.atmosphere-trace { stroke:var(--accent); stroke-width:1.5; clip-path:inset(0 calc((1 - var(--asset-reveal)) * 100%) 0 0); }
.atmosphere-light { position:absolute; inset:-10%; background:radial-gradient(ellipse at 72% 48%,#a8d7f209,transparent 58%); opacity:.4; }
.raven-framework { position:absolute; right:-2%; bottom:0; width:44%; height:100%; stroke:var(--ink); stroke-width:.65; opacity:.24; pointer-events:none; }
.raven-signal-path { stroke:var(--accent); stroke-width:2; opacity:.6; }
.raven-signal-point { stroke:none; fill:var(--accent); }
.direction-intro .atmosphere-layer { opacity:.45; }
.first-signal-running .raven-framework,.first-signal-running .direction-intro .atmosphere-layer { visibility:hidden; }
.field-image-drift { position:absolute; inset:-1%; }
.field-target { border-color:#ffffff88; }
.field-target::before { border-color:var(--accent); }
.field-target::after { border-color:var(--accent); }
.field-target span::before { content:''; display:inline-block; width:5px; height:5px; margin-inline-end:8px; border-radius:50%; background:var(--accent); }
.direction-assembly .direction-record { position:relative; }
.direction-assembly .direction-record::after { content:''; position:absolute; inset:-1px; border:1px solid var(--accent); border-radius:inherit; opacity:calc(var(--asset-confirm) * .7); pointer-events:none; }
.direction-assembly .piece-photo { overflow:clip; }
.direction-assembly .piece-photo img { transform:scale(calc(1.035 - var(--asset-focus) * .035)); }
.handoff-trace { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; }
.handoff-trace-base { stroke:#ffffff24; stroke-width:1; }
.handoff-trace-signal { stroke:var(--accent); stroke-width:1.5; clip-path:inset(0 calc((1 - var(--handoff-progress,1)) * 100%) 0 0); }
.handoff-trace-confirm { fill:var(--accent); opacity:var(--asset-confirm); }
.direction-device-stage>.direction-dashboard,.direction-device-stage>.direction-phone { z-index:1; }
.direction-device-stage>.direction-travelling-record { z-index:2; }
.direction-dashboard { box-shadow:0 0 0 1px rgb(168 215 242 / calc(var(--asset-confirm) * .22)); }
.atmosphere-landscape img { width:100%; height:100%; object-fit:cover; object-position:64% 60%; opacity:.82; }
.atmosphere-landscape::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0506088c,#05060818),linear-gradient(0deg,#050608aa,transparent 70%); }
.atmosphere-mist { position:absolute; inset:0; background:linear-gradient(176deg,transparent 53%,#e8eaed08 58%,transparent 65%); }
.direction-next .atmosphere-layer { opacity:.18; }
.direction-next .next-title { font-size:clamp(56px,7.6vw,190px); max-inline-size:13ch; text-wrap:balance; }
.direction-next .next-arrival { grid-template-columns:auto minmax(0,1fr) auto; }
.direction-next .next-arrival>p { max-inline-size:35ch; }
.direction-next .direction-content { padding-block-end:88px; }
.direction-scene-foot,.direction-compare { padding-inline-start:32px; }
.atmosphere-control { position:fixed; bottom:16px; left:16px; z-index:109; padding:10px 14px; min-block-size:44px; font-size:12px !important; background:#050608ed !important; color:#fafaf8 !important; border:1px solid #ffffff35 !important; border-radius:10px; }
.signal-menu-open .atmosphere-control { visibility:hidden; }
.atmosphere-control[aria-pressed="true"] { border-color:var(--accent) !important; }
.atmosphere-control { inline-size:44px; }
.atmosphere-control-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

/* Eight-second seamless loops. CSS pauses all of them unless the shared controller permits playback. */
.atmosphere-ready .atmosphere-light { animation:ambient-light 8s ease-in-out infinite paused; }
.atmosphere-ready .raven-signal-point { animation:raven-trace 8s ease-in-out infinite paused; }
.atmosphere-ready .field-image-drift { animation:field-breathe 8s ease-in-out infinite paused; }
.atmosphere-ready .direction-assembly .direction-wave i { animation:voice-breathe 8s ease-in-out infinite paused; transform-origin:center; }
.atmosphere-ready .direction-wave i:nth-child(2n) { animation-delay:-1s; }
.atmosphere-ready .atmosphere-mist { animation:ambient-mist 8s ease-in-out infinite paused; }
.atmosphere-ready .is-asset-live :is(.atmosphere-light,.raven-signal-point,.field-image-drift,.direction-wave i,.atmosphere-mist) { animation-play-state:running; }
@keyframes ambient-light { 0%,100% { opacity:.25; transform:translateX(-2%); } 50% { opacity:.65; transform:translateX(2%); } }
@keyframes raven-trace { 0%,12% { opacity:0; transform:translate(-230px,230px); } 22% { opacity:.8; } 68% { opacity:.8; } 82%,100% { opacity:0; transform:translate(230px,-230px); } }
@keyframes field-breathe { 0%,100% { transform:scale(1); } 50% { transform:scale(1.025); } }
@keyframes voice-breathe { 0%,38%,100% { transform:scaleY(1); } 45%,57% { transform:scaleY(.65); } 51% { transform:scaleY(1.12); } 64% { transform:scaleY(.85); } }
@keyframes ambient-mist { 0%,100% { opacity:.2; transform:translateX(-1.5%); } 50% { opacity:.65; transform:translateX(1.5%); } }
@media (max-width:1099px) { .raven-framework { right:0; width:54%; } .handoff-trace { display:none; } .atmosphere-structure { opacity:.08; } }
@media (max-width:600px) { .atmosphere-control { bottom:12px; left:12px; padding:9px; inline-size:44px; font-size:12px !important; } .atmosphere-control-label { display:none; } .direction-next .next-arrival { grid-template-columns:1fr; gap:20px; } .atmosphere-landscape img { object-position:72% 50%; } }
@media (prefers-reduced-motion:reduce) { .atmosphere-ready :is(.atmosphere-light,.raven-signal-point,.field-image-drift,.direction-wave i,.atmosphere-mist) { animation:none !important; transform:none; } .atmosphere-structure { transform:none; } }
.motion-reduced :is(.atmosphere-light,.raven-signal-point,.field-image-drift,.direction-wave i,.atmosphere-mist) { animation:none !important; transform:none; }
.motion-reduced .atmosphere-structure { transform:none; }

/* Reviewed narrative assets, shared by the homepage and the review lab. */
[data-home-assets] { --wing-cut-depth:.018; overflow-anchor:none; }
[data-home-assets] .signal-map[data-travelling] { clip-path:polygon(0 0,100% 0,100% calc((1 - var(--takeover-exit))*100%),78% calc((1 - var(--takeover-exit))*100% - var(--wing-cut-depth)*var(--takeover-exit)*100%),50% calc((1 - var(--takeover-exit))*100% - var(--wing-cut-depth)*var(--takeover-exit)*200%),22% calc((1 - var(--takeover-exit))*100% - var(--wing-cut-depth)*var(--takeover-exit)*100%),0 calc((1 - var(--takeover-exit))*100%)); }
.ambient-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; opacity:0; }
.ambient-media.media-playing { opacity:1; }
.field-media { z-index:1; object-position:73% 50%; }
[data-home-assets] .atmosphere-mist,[data-home-assets] .raven-trace-point { display:none; }
.signal-destination[hidden] { display:none!important; }
[data-home-assets] .portal-home-surface { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:1; }
[data-home-assets] .portal-raven { position:relative; }
.motion-reduced .ambient-media { opacity:0!important; }
.hero-surface,.handoff-stage-image { position:absolute; inset:0; inline-size:100%; block-size:100%; pointer-events:none; }
.hero-surface img { inline-size:100%; block-size:100%; object-fit:cover; }
.hero-surface { opacity:1; }
.hero-light-response { position:absolute; inset:0 0 0 48%; pointer-events:none; background:radial-gradient(ellipse at calc(65% + var(--ambient-x)*10%) calc(45% + var(--ambient-y)*10%),#ffffff35,transparent 55%); transition:opacity 500ms; }
[data-home-assets] .raven-framework { display:none; }
[data-home-assets] .direction-compare { display:none; }
[data-home-assets] .direction-intro .atmosphere-layer { display:none; }
[data-home-assets] .direction-raven,[data-home-assets] .direction-title { transform:none !important; }
[data-home-assets] .direction-title .line-mask:nth-child(2) { color:#55595b; }
[data-home-assets] .direction-title { inline-size:53%; font-size:clamp(58px,6.7vw,180px); }
[data-home-assets] .direction-raven { right:0; bottom:8%; inline-size:43%; block-size:92%; opacity:1; }
[data-home-assets] .direction-intro-foot { padding-block:20px 52px; padding-inline:var(--gutter); margin-inline:calc(-1 * var(--gutter)); background:var(--paper); }
[data-home-assets] .first-scroll-wing,[data-home-assets] .first-scroll-field { display:none !important; }
[data-home-assets].first-signal-ready #direction-title.scene-active .direction-content { opacity:1; }
[data-home-assets] .first-signal-layer>:not(.first-signal-point) { display:none; }
[data-home-assets] .first-signal-layer>.first-signal-point { left:72%; top:47%; }
[data-home-assets].first-signal-running .signal-nav { background:var(--paper); }
[data-home-assets].first-signal-running .signal-nav :is(.direction-brand,.signal-nav-center,.signal-nav-actions>*) { clip-path:none; transform:none; }
[data-home-assets].first-signal-running .direction-raven { opacity:1; clip-path:inset(calc((1 - var(--entry-form))*100%) 0 0); }
[data-home-assets].first-signal-running .first-hero-cta { opacity:1; }
[data-home-assets] .field-image-drift { inset:0; animation:none; }
[data-home-assets] .direction-field-image { object-position:73% 50%; filter:grayscale(1); transform:none; }
[data-home-assets] .field-content::after { background:linear-gradient(90deg,#050608bc,transparent 70%); }
[data-home-assets] .field-target { left:calc(var(--target-x,.49)*100%); top:calc(var(--target-y,.29)*100%); width:calc(var(--target-w,.46)*100%); height:calc(var(--target-h,.511)*100%); right:auto; bottom:auto; border:0; box-shadow:0 0 0 999px #0506080a; }
[data-home-assets] .field-target::before,[data-home-assets] .field-target::after { width:24px; height:24px; border-width:1px 0 0 1px; }
[data-home-assets] .field-target::after { border-width:0 1px 1px 0; }
[data-home-assets] .field-target span { top:100%; padding-top:12px; }
[data-home-assets] .field-content h2 { max-inline-size:9ch; }
[data-home-assets] .field-caption { max-inline-size:28ch; }
[data-home-assets] .direction-assembly-stage .direction-record { width:78%; }
[data-home-assets] .direction-wave i { animation:none !important; transform:none !important; }
[data-home-assets] .direction-assembly .atmosphere-layer { opacity:calc(var(--assembly-lines,0)*.4); }
[data-home-assets] .direction-assembly .atmosphere-light { display:none; }
[data-home-assets] .direction-assembly .piece-photo img { transform:none; aspect-ratio:1.6; height:auto; }
[data-home-assets] .direction-assembly-stage { min-block-size:0; }
[data-home-assets] .direction-record { border-radius:16px; }
[data-home-assets] .direction-record-pieces { gap:12px; }
[data-home-assets] .piece-voice { display:flex; flex-direction:column; justify-content:space-between; }
[data-home-assets] .piece-voice p { font-size:clamp(16px,1.45vw,36px); line-height:1.45; }
[data-home-assets] .direction-assembly .direction-record>h3 { font-size:clamp(24px,2vw,52px); }
.handoff-stage-image { object-fit:cover; opacity:.7; }
[data-home-assets] .direction-handoff .atmosphere-layer { display:none; }
[data-home-assets] .direction-device-stage { display:grid; grid-template-columns:minmax(0,.25fr) minmax(0,.75fr); gap:4%; align-items:center; padding:0; min-block-size:0; }
[data-home-assets] .direction-phone { position:relative; display:block; width:auto; inset:auto; transform:none; border:1px solid #777; border-radius:32px; padding:12px 10px 22px; background:linear-gradient(125deg,#35383b,#08090a 25%,#151719); box-shadow:inset 1px 0 #ffffff30,0 20px 40px #0005; min-width:0; }
.phone-app-label { display:block; font-size:12px; padding:6px 8px 12px; }
.phone-home { position:absolute; bottom:8px; left:40%; width:20%; height:3px; background:#fff6; border-radius:4px; }
.mobile-record { background:var(--korppi-snow); color:var(--ink); border-radius:20px; padding:16px; }
.mobile-record>header { display:flex; justify-content:space-between; font-size:12px; }
.mobile-record h3 { font-size:clamp(20px,1.4vw,36px); margin:16px 0; line-height:1.15; }
.mobile-quote { font-size:clamp(13px,.95vw,24px); margin-block:16px !important; line-height:1.45; }
.record-photo-slot { position:relative; aspect-ratio:1.6; overflow:clip; background:#e8eaed; border-radius:7px; }
.record-photo-slot img { display:block; width:100%; height:100%; object-fit:cover; }
.mobile-record dl,.management-record dl { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; font-size:clamp(12px,.9vw,22px); }
.mobile-record dl>div:last-child,.management-record dl>div:last-child { grid-column:1/-1; }
.mobile-record dt,.management-record dt { color:#66717b; }
.mobile-record dd,.management-record dd { margin:4px 0 0; line-height:1.4; }
[data-home-assets] .management-observation { position:relative; inset:auto; width:100%; padding:clamp(16px,1.5vw,36px); color:var(--ink); background:var(--korppi-snow); border:1px solid #666; border-radius:16px; transform:none; opacity:1; }
.management-grid { display:grid; grid-template-columns:minmax(0,.15fr) minmax(0,.46fr) minmax(0,.39fr); padding-block-start:20px; gap:clamp(16px,1.7vw,40px); }
.management-list { display:flex; flex-direction:column; gap:16px; padding-inline-end:12px; border-right:1px solid #d6dadf; font-size:clamp(11px,.8vw,20px); overflow-wrap:anywhere; }
.management-list strong { padding-block:8px; border-bottom:2px solid var(--accent); font-weight:500; }
.management-record { min-width:0; }
.record-eyebrow { font-size:clamp(11px,.85vw,20px); color:#66717b; margin-bottom:16px !important; }
.management-record h3 { font-size:clamp(21px,1.7vw,46px); line-height:1.1; margin-bottom:20px; }
.management-record>p:not(.record-eyebrow) { font-size:clamp(14px,1vw,27px); line-height:1.45; margin-block:20px; }
[data-home-assets] .direction-responsibility { margin:0; min-width:0; padding-inline-start:clamp(16px,1.5vw,36px); border-left:1px solid #d6dadf; transform:none; opacity:1; }
[data-home-assets] .direction-responsibility dt { color:#66717b; }
[data-home-assets] .direction-responsibility dd { font-size:clamp(16px,1.22vw,32px); }
[data-home-assets] .direction-responsibility dl>div { padding-block:16px; border-color:#d6dadf; }
[data-home-assets] .direction-action { color:#29485a; line-height:1.4; }
.record-receive { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:20px; border:1px dashed #89949a; opacity:0; }
.handoff-photo-flight,.field-photo-bridge { position:fixed; top:0; left:0; z-index:9; width:calc(var(--flight-w,0)*100vw); height:calc(var(--flight-h,0)*100vh); transform-origin:top left; transform:translate(calc((var(--flight-x,0) + var(--flight-dx,0)*var(--flight-p,1))*100vw),calc((var(--flight-y,0) + var(--flight-dy,0)*var(--flight-p,1) - var(--flight-arc,0))*100vh)) scale(calc(1 + (var(--flight-scale,1) - 1)*var(--flight-p,1))); opacity:var(--flight-visible,0); pointer-events:none; overflow:clip; border-radius:7px; }
.handoff-photo-flight img,.field-photo-bridge img { width:100%; height:100%; object-fit:cover; }
.handoff-photo-flight span { position:absolute; bottom:12px; left:12px; background:#fafaf8; color:#171b21; padding:6px 8px; font-size:12px; transform:scale(calc(1 / (1 + (var(--flight-scale,1) - 1)*var(--flight-p,1)))); transform-origin:bottom left; }
.handoff-connection { display:none; }
.photo-bridging .direction-assembly .piece-photo { opacity:0; }
.photo-bridging .direction-field .field-image-mask { opacity:calc(1 - var(--bridge-out)); }
.home-capabilities { background:var(--paper); }
.capabilities-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-block-start:clamp(40px,6vh,100px); }
.capability { min-width:0; outline-offset:6px; }
.capability-visual { position:relative; aspect-ratio:4/3; overflow:clip; perspective:1000px; }
.capability-sheet { position:absolute; width:64%; left:14%; top:24%; border-radius:8px; padding:12px; background:#fafaf8; color:#222; box-shadow:0 16px 24px #0003; transform:translate(0,0) rotate(-5deg); transition:transform 600ms var(--ease-out); font-size:clamp(11px,.9vw,22px); }
.sheet-photo { padding:0; }
.sheet-photo img { width:100%; height:auto; display:block; aspect-ratio:1.6; object-fit:cover; border-radius:8px 8px 0 0; }
.sheet-photo>span { display:block; padding:10px; }
.sheet-back { transform:translate(12%,-28%) rotate(6deg); min-height:44%; background:#c5c8ca; }
.sheet-middle { transform:translate(5%,-12%) rotate(1deg); min-height:44%; }
.sheet-middle svg { width:80%; margin-top:16px; }
[data-capability="capture"] :is(.sheet-back,.sheet-middle,.capability-owner) { display:none; }
.capability-corners { position:absolute; inset:19% 18%; border:1px solid var(--accent); clip-path:polygon(0 0,15% 0,15% 2%,2% 2%,2% 15%,0 15%,0 0,100% 0,100% 15%,98% 15%,98% 2%,85% 2%,85% 0,100% 0,100% 100%,85% 100%,85% 98%,98% 98%,98% 85%,100% 85%,100% 100%,0 100%,0 85%,2% 85%,2% 98%,15% 98%,15% 100%,0 100%); }
[data-capability="context"] :is(.capability-owner,.capability-corners) { display:none; }
.capability-owner { position:absolute; right:8%; bottom:9%; width:58%; background:#fafaf8; padding:14px; color:var(--ink); display:grid; gap:8px; border-left:2px solid var(--accent); font-size:clamp(12px,1vw,24px); box-shadow:0 12px 24px #0004; }
[data-capability="owner"] :is(.sheet-back,.sheet-middle,.capability-corners) { display:none; }
[data-capability="owner"] .sheet-photo { width:53%; left:8%; top:12%; }
.capability:focus .capability-sheet,.capability:hover .capability-sheet { transform:translate(0,-3%) rotate(0); }
.capabilities-entered .sheet-photo { animation:capability-align 3s var(--ease-out) both; }
@keyframes capability-align { 0%,12% { transform:translate(-5%,6%) rotate(-5deg); } 48%,100% { transform:translate(0,0) rotate(0); } }
.capability-copy { display:grid; grid-template-columns:auto 1fr; gap:16px; padding-top:24px; }
.capability-copy>span { font-size:12px; padding-top:7px; }
.capability-copy h3 { font-size:clamp(28px,2.5vw,64px); }
.capability-copy p { grid-column:2; max-width:30ch; line-height:1.6; font-size:clamp(16px,1.15vw,28px); }
.home-application { background:#090909; color:#fafaf8; }
.application-image { position:absolute; inset:0; }
.application-image img { width:100%; height:100%; object-fit:cover; }
.home-application .direction-frame::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#050608a0,transparent 55%,#050608cc); }
.home-application .direction-content { z-index:1; min-height:var(--canvas-space); display:flex; flex-direction:column; justify-content:flex-start; padding-top:48px; padding-bottom:72px; gap:28px; }
.home-application h2 { font-size:clamp(42px,5.2vw,140px); max-width:25ch; margin:0; }
.application-foot { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-top:auto; padding-top:clamp(240px,30svh,440px); }
.application-foot p { max-width:38ch; font-size:clamp(20px,1.6vw,36px); line-height:1.5; }
.application-foot span { font-size:12px; }
.home-team { background:var(--korppi-raven); color:var(--korppi-snow); }
.home-team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:48px; }
.home-person { min-width:0; }
.home-person-slot { aspect-ratio:4/3; padding:24px; background:#171b21; display:flex; flex-direction:column; justify-content:space-between; border:1px solid #ffffff22; }
.home-person:nth-child(2) .home-person-slot { background:#24272b; }
.home-person:nth-child(3) .home-person-slot { background:#33373b; }
.home-person-slot>span { font-size:clamp(64px,9vw,220px); color:#ffffff25; line-height:1; letter-spacing:-.07em; }
.home-person-slot p { font-size:12px; color:#c8cdd1; }
.home-person>.direction-kicker { margin-top:28px; color:var(--accent); }
.home-person h3 { font-size:clamp(28px,2.5vw,72px); margin:16px 0; }
.home-person>.direction-note { margin-top:16px; color:#b8c0c7; }
.home-team-connection { display:flex; gap:24px; flex-wrap:wrap; border-top:1px solid #ffffff33; padding-top:24px; margin-top:48px !important; font-size:clamp(18px,2vw,46px); }
.home-team-connection i { color:var(--accent); font-style:normal; }
.home-evidence { background:var(--paper); }
.evidence-case,.pricing-preview { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:8vw; }
.evidence-case { min-height:50svh; padding-bottom:64px; }
.evidence-case h2,.pricing-preview h2 { font-size:clamp(40px,4.8vw,120px); max-width:15ch; margin-top:24px; }
.evidence-slots { align-self:end; color:#626970; line-height:1.6; }
.evidence-slots dl>div { display:flex; justify-content:space-between; border-bottom:1px solid #ccd0d3; padding-block:12px; }
.pricing-preview { min-height:50svh; border-top:1px solid #aab0b5; padding-block:64px 24px; align-items:center; }
.pricing-preview p { line-height:1.8; margin-bottom:32px; }
.pricing-preview .direction-pill { background:var(--ink); color:var(--paper); }
.resolve-record { display:flex; align-items:center; gap:24px; position:relative; }
.resolve-record>span { font-size:13px; }
.resolve-record ul { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:16px; color:#c5cbd0; font-size:13px; }
.resolve-wing { width:120px; color:var(--accent); flex:none; }
.resolve-wing circle { fill:currentColor; }
.motion-enhanced:not(.motion-reduced) .resolve-wing path { stroke-dasharray:260; stroke-dashoffset:260; }
.motion-enhanced:not(.motion-reduced) .resolve-settled .resolve-wing path { animation:resolve-trace 900ms var(--ease-out) both; }
@keyframes resolve-trace { 0% { stroke-dashoffset:260; opacity:0; } 60% { stroke-dashoffset:0; opacity:1; } 100% { stroke-dashoffset:0; opacity:0; } }
[data-home-assets] .direction-next .direction-pill { background:#fafaf8; color:#171b21; border-color:#fafaf8; }
[data-home-assets] .direction-next .direction-pill:hover { box-shadow:inset 0 0 0 1px var(--accent); }
[data-home-assets] .next-title { transform:none !important; font-size:clamp(56px,7.6vw,190px); }
.home-lab-experiments { background:#f5f5f3; }
.home-lab-experiments>summary { padding:32px var(--gutter); cursor:pointer; }
[data-home-assets] .direction-footer { background:var(--korppi-raven); color:var(--korppi-snow); }
[data-home-assets] .direction-footer { padding-block-end:80px; }
[data-home-assets] .signal-flight-resume { color:var(--ink)!important; }
.media-failed { opacity:0; }
@media(min-width:1100px) and (min-height:760px) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  [data-home-assets] .direction-scene.narrative-pin.is-pinned { min-block-size:var(--narrative-track); }
  [data-home-assets] .direction-scene.narrative-pin.is-pinned > .direction-frame { top:var(--scene-header); }
  [data-home-assets] .scene-active .management-observation { clip-path:inset(0 calc((1 - var(--dashboard-enter))*100%) 0 0); }
  [data-home-assets] .scene-active .direction-responsibility { opacity:var(--responsibility); }
  [data-home-assets] .scene-active .record-receive { opacity:calc(1 - var(--target-photo,1)); }
  [data-home-assets] .scene-active [data-transfer-source] img { opacity:var(--source-photo,1); }
  [data-home-assets] .scene-active [data-transfer-target] img { opacity:var(--target-photo,1); }
}
@media(max-width:1099px) {
  [data-home-assets] .direction-title { width:100%; font-size:clamp(48px,7.7vw,84px); }
  [data-home-assets] .direction-raven { position:relative; bottom:auto; width:55%; height:auto; margin-left:auto; max-height:50svh; display:block; }
  .direction-title-composition { display:block; }
  [data-home-assets] .raven-framework { display:none; }
  [data-home-assets] .direction-assembly-stage .direction-record { width:100%; }
  [data-home-assets] .direction-device-stage { grid-template-columns:1fr; gap:32px; }
  [data-home-assets] .direction-phone { max-width:480px; width:100%; justify-self:center; }
  .handoff-connection { display:block; text-align:center; }
  .capabilities-grid,.home-team-grid { gap:16px; }
  .management-grid { grid-template-columns:minmax(0,.6fr) minmax(0,.4fr); }
  .management-list { display:none; }
  .resolve-record ul { gap:8px 16px; }
}
@media(max-width:600px) {
  .hero-surface { opacity:1; }
  [data-home-assets] .direction-title { font-size:clamp(44px,11.5vw,68px); }
  [data-home-assets] .direction-raven { width:76%; max-height:40svh; margin-block:24px; }
  .direction-intro-foot { flex-wrap:wrap; align-items:start; }
  [data-home-assets] .first-hero-scroll { margin-inline-start:56px; }
  [data-home-assets] .direction-intro-foot>p { width:100%; }
  [data-home-assets] .field-content { justify-content:start; padding-top:128px; }
  [data-home-assets] .field-content h2 { font-size:52px; max-width:10ch; }
  [data-home-assets] .field-caption { margin-top:auto !important; padding-top:240px; }
  [data-home-assets] .direction-field-image { object-fit:cover; }
  [data-home-assets] .direction-record-pieces { grid-template-columns:1fr 1fr; }
  [data-home-assets] .direction-record-pieces>* { grid-column:auto; }
  [data-home-assets] .direction-record-pieces>:is(.piece-photo,.piece-voice,.piece-category) { grid-column:1/-1; }
  [data-home-assets] .direction-phone { padding:0; border:0; background:none; box-shadow:none; }
  .phone-app-label { padding:0 0 20px; }
  .phone-home { display:none; }
  .mobile-record { padding:20px; }
  .mobile-quote,.mobile-record dl { font-size:15px; }
  .mobile-record h3 { font-size:28px; }
  .management-grid { grid-template-columns:1fr; }
  [data-home-assets] .direction-responsibility { border:0; padding:24px 0 0; }
  .management-record>p:not(.record-eyebrow),.management-record dl { font-size:15px; }
  .capabilities-grid,.home-team-grid { grid-template-columns:1fr; gap:48px; }
  .application-foot { display:block; }
  .application-foot span { display:block; margin-top:24px; }
  .evidence-case,.pricing-preview { grid-template-columns:1fr; gap:32px; }
  .resolve-record { flex-wrap:wrap; gap:12px; }
  .resolve-record ul { width:100%; display:grid; padding-left:8px; border-left:1px solid #ffffff44; }
  .resolve-wing { width:72px; }
  .atmosphere-landscape img { object-position:center; }
}
@media(prefers-reduced-motion:reduce) { .resolve-wing path { animation:none !important; opacity:1; stroke-dashoffset:0; } .capability-sheet { transition:none; } }
.motion-reduced .resolve-wing path { animation:none !important; opacity:1; stroke-dashoffset:0; }
.motion-reduced .capability-sheet { transition:none; }
.motion-reduced .capabilities-entered .sheet-photo { animation:none; }
@media(prefers-reduced-motion:reduce) { .ambient-media { opacity:0!important; } .capabilities-entered .sheet-photo { animation:none; } }

/* Resolve: one quiet, closed camera move. Playback follows Atmosphere's
   existing visibility, menu, preference and page lifecycle controls. */
[data-home-assets] #next-page .atmosphere-landscape picture {
  display:block; width:100%; height:100%;
}
[data-home-assets] #next-page .atmosphere-landscape .atmosphere-mist {
  display:block; inset:-12%; opacity:0;
  background:linear-gradient(145deg,transparent 38%,#b7ccd00d 48%,#d6e2e51c 52%,transparent 63%);
}
[data-home-assets].atmosphere-ready #next-page .atmosphere-landscape img {
  transform-origin:83% 40%;
  animation:resolve-material-breathe 16s ease-in-out infinite paused;
}
[data-home-assets].atmosphere-ready #next-page .atmosphere-mist {
  animation:resolve-material-light 16s ease-in-out infinite paused;
}
[data-home-assets].atmosphere-ready #next-page.is-asset-live .atmosphere-landscape :is(img,.atmosphere-mist) {
  animation-play-state:running;
}
@keyframes resolve-material-breathe {
  0%,100% { transform:scale(1.025) translate3d(0,0,0); opacity:.82; }
  50% { transform:scale(1.065) translate3d(-.6%,.4%,0); opacity:.94; }
}
@keyframes resolve-material-light {
  0%,100% { transform:translate3d(-9%,4%,0); opacity:.08; }
  50% { transform:translate3d(7%,-4%,0); opacity:.75; }
}
@media(prefers-reduced-motion:reduce) {
  [data-home-assets] #next-page .atmosphere-landscape :is(img,.atmosphere-mist) {
    animation:none!important; transform:none;
  }
  [data-home-assets] #next-page .atmosphere-mist { display:none; }
}
[data-home-assets].motion-reduced #next-page .atmosphere-landscape :is(img,.atmosphere-mist) {
  animation:none!important; transform:none;
}
[data-home-assets].motion-reduced #next-page .atmosphere-mist { display:none; }

/* Shared, readable document primitives. Scroll choreography lives in intelligence.css. */
.document-paper { padding:clamp(12px,1.3vw,24px); background:#fff; border:1px solid #171b1e35; min-block-size:clamp(250px,23vw,380px); box-shadow:0 12px 24px #171b1e08; display:flex; flex-direction:column; gap:14px; }
.document-paper-id,.document-paper-footer { font-size:10px; letter-spacing:.04em; color:var(--muted); }
.document-paper-id { display:flex; justify-content:space-between; padding-bottom:10px; border-bottom:1px solid #171b1e25; }
.document-paper-title { font-size:clamp(18px,1.6vw,29px); line-height:1.1; letter-spacing:-.035em; }
.document-paper-body { font-size:clamp(11px,.85vw,15px); line-height:1.4; display:flex; flex-direction:column; gap:8px; }
.document-paper-body strong { font-weight:500; }
.document-paper-footer { margin-top:auto; padding-top:14px; }
.document-mini-label { color:var(--muted); font-size:.9em; }
.document-log { display:grid; grid-template-columns:auto 1fr; gap:10px; padding-block:8px; border-bottom:1px solid #171b1e20; }
.document-log > span { color:var(--muted); }
.document-signature { inline-size:55%; border-bottom:1px solid #171b1e40; margin-top:22px; }
.document-status { padding:10px; border-left:2px solid var(--korppi-ice); background:#f1f3f3; }
.document-rule { border-top:1px solid #171b1e20; margin-block:5px; }
.document-evidence { inline-size:100%; block-size:auto; aspect-ratio:2.6; object-fit:cover; }
.document-quality-evidence { display:grid; grid-template-columns:42% 1fr; gap:10px; align-items:center; }
.document-quality-evidence img { inline-size:100%; block-size:auto; aspect-ratio:1; object-fit:cover; }
.document-trace { list-style:none; margin:0 0 0 4px; padding:0 0 0 12px; border-left:1px solid #82939b; }
.document-trace li { position:relative; padding:0 0 12px 0; }
.document-trace li::before { content:""; position:absolute; left:-16px; top:4px; inline-size:7px; block-size:7px; border-radius:50%; background:#82939b; }
.document-trace span { color:var(--muted); }
.document-detail { margin-top:20px; }
.document-detail summary { cursor:pointer; list-style:none; }
.document-detail summary::-webkit-details-marker { display:none; }
.document-detail summary:focus-visible { outline:2px solid #557db1; outline-offset:6px; }
.document-recipient { display:block; font-size:clamp(20px,1.6vw,30px); line-height:1.1; letter-spacing:-.035em; }
.document-summary { display:block; font-size:13px; line-height:1.5; color:var(--muted); margin-top:10px; }
.document-detail-action { display:flex; justify-content:space-between; border-bottom:1px solid #171b1e30; padding-block:12px 8px; font-size:12px; }
.document-detail-action i { font-style:normal; }
.document-detail[open] .document-detail-action { border-color:var(--korppi-ice); }
.document-detail[open] .document-detail-action i { transform:rotate(45deg); }
.document-detail > p { padding-top:12px; font-size:14px; line-height:1.55; }
.document-foot { margin-top:auto; display:flex; justify-content:space-between; align-items:baseline; gap:24px; padding-top:12px; border-top:1px solid #171b1e28; }
.document-foot > p { font-size:clamp(18px,1.7vw,30px); letter-spacing:-.035em; }
.document-foot small { max-inline-size:45ch; color:var(--muted); font-size:11px; }

/* One measured canvas, one scroll clock; natural document flow is the default. */
.intelligence-scene { --intel-gather:0; --intel-recognize:1; --intel-connect:1; --intel-black:1; --intel-shape:1; --intel-master:1; --intel-lift:1; --intel-output-title:1; --intel-resolve:1; --intel-exit:0; --intel-input-alpha:1; --intel-process-alpha:1; --intel-output-alpha:1; --intel-step-1:1; --intel-step-2:1; --intel-step-3:1; --intel-worker:1; --intel-management:1; --intel-client:1; --intel-quality:1; --intel-authority:1; background:var(--paper); }
.intel-content { padding:clamp(24px,3svh,44px) var(--gutter); }
.intel-act { min-inline-size:0; position:relative; }
.intel-heading,.intel-output-heading { display:grid; grid-template-columns:minmax(0,.27fr) minmax(0,1fr); gap:20px; align-items:start; }
.intel-heading h2 { font-size:clamp(42px,5.5vw,128px); max-inline-size:20ch; }
.intel-output-heading h2 { font-size:clamp(32px,3.4vw,76px); max-inline-size:28ch; }
.intel-clusters { display:grid; grid-template-columns:1.16fr .9fr .94fr; gap:clamp(24px,4vw,96px); margin-block:clamp(32px,6svh,100px); align-items:start; }
.intel-cluster h3 { font-size:clamp(26px,2.5vw,58px); margin-bottom:22px; }
.intel-cluster figure { margin:0; background:white; }
.intel-capture img { display:block; inline-size:100%; block-size:clamp(210px,26svh,440px); object-fit:cover; transform-origin:50% 70%; }
.intel-cluster figcaption { display:flex; justify-content:space-between; gap:12px; padding:14px; font-size:12px; }
.intel-cluster figcaption b { font-weight:500; }
.intel-cluster-note { margin-top:18px!important; max-inline-size:28ch; color:var(--muted); font-size:clamp(14px,1.2vw,22px); }
.intel-context { padding-top:clamp(20px,5svh,76px); }
.intel-ownership { padding-top:clamp(8px,2svh,32px); }
.intel-cluster-fields { padding:20px 0; border-block:1px solid #171b1e35; }
.intel-voice { margin-block:16px!important; font-size:clamp(18px,1.5vw,32px); }
.intel-cluster dl { margin:16px 0 0; }
.intel-cluster dl > div { display:grid; grid-template-columns:minmax(0,.4fr) minmax(0,1fr); gap:12px; padding-block:8px; border-top:1px solid #171b1e15; font-size:clamp(12px,1vw,20px); }
.intel-cluster dt { color:var(--muted); }
.intel-cluster dd { margin:0; }
.intel-owner { display:block; margin-top:12px; font-weight:400; font-size:clamp(22px,2vw,40px); }
.intel-input-resolve { border-top:1px solid #171b1e25; padding-top:18px; font-size:clamp(16px,1.5vw,28px); }
.intel-processing-act { isolation:isolate; display:grid; grid-template-columns:1fr .9fr 1fr; align-items:center; gap:clamp(20px,3vw,72px); min-block-size:650px; margin:48px calc(-1 * var(--gutter)); padding:48px var(--gutter); color:var(--paper); }
.intel-dark-plane { position:absolute; inset:0; background:var(--korppi-raven,#0d1012); z-index:-2; }
.intel-guides { position:absolute; inset:7% 4%; z-index:-1; background:linear-gradient(90deg,transparent calc(50% - .5px),#a8d7f226 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#a8d7f220 50%,transparent calc(50% + .5px)); border:1px solid #a8d7f212; }
.intel-ai-title h2 { font-size:clamp(40px,4.4vw,106px); max-inline-size:13ch; margin-block:22px; }
.intel-ai-title > p:last-child { color:#c5cbd0; max-inline-size:28ch; font-size:clamp(14px,1.1vw,22px); }
.intel-spine { display:grid; gap:20px; position:relative; padding:12px 0; }
.intel-spine::before { content:""; position:absolute; top:0; bottom:0; left:50%; inline-size:1px; background:#75828b66; }
.intel-spine-id { justify-self:center; z-index:1; background:var(--paper); color:var(--ink); padding:8px 14px; font-size:12px; }
.intel-node { position:relative; justify-self:center; inline-size:90%; padding:12px 18px; border-left:2px solid var(--korppi-ice); background:var(--paper); color:var(--ink); }
.intel-node strong { display:block; font-weight:400; font-size:clamp(18px,1.5vw,32px); }
.intel-node small { display:block; font-size:11px; color:var(--muted); margin-top:5px; }
.intel-raw { display:block; font-size:11px; color:var(--muted); margin-bottom:5px; }
.intel-node-links { position:absolute; inset:50px 0 0; inline-size:100%; block-size:calc(100% - 50px); fill:none; stroke:var(--korppi-ice); stroke-width:1; z-index:-1; }
.intel-process-steps { list-style:none; margin:0; padding:0; display:grid; gap:32px; }
.intel-process-steps li { display:flex; align-items:baseline; gap:14px; padding-top:16px; border-top:1px solid #ffffff38; }
.intel-process-steps span { color:var(--korppi-ice); font-size:12px; }
.intel-process-steps strong { font-size:clamp(18px,1.6vw,34px); line-height:1.25; font-weight:400; }
.intel-outputs-act { display:flex; flex-direction:column; gap:clamp(16px,2svh,28px); }
.intel-master { position:relative; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.8fr); gap:20px; padding:clamp(16px,1.5vw,26px); background:white; border:1px solid #171b1e45; border-left:3px solid var(--korppi-ice); }
.intel-master-identity { display:flex; align-items:center; gap:14px; min-inline-size:0; }
.intel-master-identity img { inline-size:clamp(68px,6vw,110px); block-size:clamp(72px,7svh,110px); object-fit:cover; }
.intel-master-identity .direction-kicker { font-size:10px; margin-bottom:10px; }
.intel-master-identity h3 { font-size:clamp(20px,1.8vw,38px); letter-spacing:-.04em; }
.intel-master-identity h3 span { display:block; font-size:.65em; color:var(--muted); margin-top:5px; }
.intel-master-identity a { display:inline-block; margin-top:8px; font-size:11px; text-decoration:underline; text-underline-offset:3px; }
.intel-master-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0; align-items:start; }
.intel-master-fields > div { padding:8px; border-left:1px solid #171b1e20; min-inline-size:0; }
.intel-master-fields dt { font-size:10px; color:var(--muted); margin-bottom:8px; }
.intel-master-fields dd { margin:0; font-size:clamp(11px,.95vw,19px); line-height:1.3; }
.intel-master-fields small { display:block; margin-top:7px; font-size:.85em; color:var(--muted); line-height:1.4; }
.intel-master [data-master-field] { transition:background-color var(--motion-fast),border-color var(--motion-fast); }
.intel-output-system { min-inline-size:0; --intel-output-gap:clamp(12px,1.4vw,28px); }
/* Extend half a grid gap on each side so 10/30/50/70/90% land on card centres. */
.intel-branches { display:block; inline-size:calc(100% + var(--intel-output-gap)); margin-inline:calc(-.5 * var(--intel-output-gap)); block-size:clamp(30px,4svh,60px); stroke:#82939b; stroke-width:1; fill:none; }
.intel-branches path { stroke-dasharray:1; }
.intelligence-scene .document-outputs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:var(--intel-output-gap); padding-top:0; }
.intelligence-scene .document-output { min-inline-size:0; position:relative; }
.intelligence-scene .document-paper { min-block-size:clamp(224px,27svh,385px); padding:clamp(12px,1.1vw,24px); gap:10px; }
.intelligence-scene .document-paper-title { font-size:clamp(18px,1.5vw,32px); }
.intelligence-scene .document-paper-body { font-size:clamp(11px,.85vw,17px); gap:6px; }
.intelligence-scene .document-paper-footer { font-size:9px; padding-top:10px; }
.intelligence-scene .document-detail { margin-top:12px; }
.intelligence-scene .document-recipient { font-size:clamp(18px,1.5vw,30px); }
.intelligence-scene .document-summary { font-size:clamp(11px,.82vw,16px); margin-top:6px; }
.intelligence-scene .document-detail-action { padding-block:8px 5px; font-size:11px; }
.intelligence-scene .document-foot { flex-wrap:wrap; gap:12px; padding-top:12px; margin-top:auto; }
.intelligence-scene .document-foot > p { font-size:clamp(19px,1.8vw,36px); }
.intelligence-scene .document-foot small { max-inline-size:36ch; font-size:10px; }
.intel-next { margin-left:auto; font-size:11px; }
.intel-record-flight { display:none; position:fixed; top:0; left:0; z-index:45; align-items:center; gap:12px; padding:8px; background:var(--paper); color:var(--ink); border:1px solid #171b1e40; font-size:12px; pointer-events:none; }
.intel-record-flight img { inline-size:48px; block-size:38px; object-fit:cover; }
.intel-application-record { display:flex; flex-wrap:wrap; gap:14px; align-items:center; align-self:flex-end; padding:12px 16px; background:#0d1012b0; border:1px solid #ffffff48; font-size:13px; }
.intel-application-record small { color:#c5cbd0; }
.intel-lab-controls { position:fixed; bottom:12px; left:var(--gutter); z-index:130; display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--paper); border:1px solid #171b1e55; padding:10px 14px; font-size:12px; max-inline-size:calc(100% - 2 * var(--gutter)); }
.intel-lab-controls input[type=range] { inline-size:170px; }
.intel-lab-controls input[type=number] { inline-size:65px; }
.intel-lab-controls label { display:flex; gap:8px; align-items:center; }
@media (min-width:1100px) and (min-height:760px) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .intel-lab-controls { top:12px; bottom:auto; left:220px; max-inline-size:calc(100% - 600px); }
  .intelligence-scene.is-pinned { min-block-size:410svh; }
  .intelligence-scene.is-pinned > .intel-frame { position:sticky; top:var(--scene-header); }
  .intelligence-scene.is-pinned .intel-content { display:grid; min-block-size:calc(100svh - var(--scene-header)); padding-block:clamp(16px,2svh,32px); }
  .intelligence-scene.is-pinned .intel-clusters { margin-block:clamp(28px,4.5svh,80px); }
  .intelligence-scene.is-pinned .intel-outputs-act { gap:12px; }
  .intelligence-scene.is-pinned .intel-act { grid-area:1/1; align-self:center; }
  .intelligence-scene.is-pinned .intel-processing-act { min-block-size:calc(100svh - var(--scene-header) - 2 * clamp(24px,3svh,44px)); margin:0 calc(-1 * var(--gutter)); padding-block:24px; }
  .intelligence-scene.is-pinned .intel-inputs-act { opacity:var(--intel-input-alpha); }
  .intelligence-scene.is-pinned .intel-processing-act { opacity:var(--intel-process-alpha); }
  .intelligence-scene.is-pinned .intel-outputs-act { opacity:var(--intel-output-alpha); }
  .intelligence-scene.is-pinned [data-intel-act][inert] { pointer-events:none; }
  .intelligence-scene.is-pinned .intel-heading { transform:translateY(calc(-24px * var(--intel-gather))); opacity:calc(1 - .8 * var(--intel-gather)); }
  .intelligence-scene.is-pinned .intel-cluster h3,.intelligence-scene.is-pinned .intel-cluster-note,.intelligence-scene.is-pinned .intel-input-resolve { opacity:calc(1 - .85 * var(--intel-gather)); }
  .intelligence-scene.is-pinned .intel-capture img { transform:translate(calc(16vw * var(--intel-gather)),calc(35px * var(--intel-gather))) scale(calc(1 - .5 * var(--intel-gather))); }
  .intelligence-scene.is-pinned .intel-capture figcaption { transform:translateX(calc(12vw * var(--intel-gather))); }
  .intelligence-scene.is-pinned .intel-context .intel-cluster-fields { transform:translateY(calc(30px * var(--intel-gather))); }
  .intelligence-scene.is-pinned .intel-ownership .intel-cluster-fields { transform:translateX(calc(-16vw * var(--intel-gather))); }
  .intelligence-scene.is-pinned .intel-dark-plane { clip-path:inset(0 calc((1 - var(--intel-black)) * 50%)); opacity:var(--intel-black); }
  .intelligence-scene.is-pinned .intel-guides { opacity:calc(var(--intel-recognize) * (1 - var(--intel-shape))); }
  .intelligence-scene.is-pinned .intel-ai-title { opacity:var(--intel-black); transform:translateX(calc(-20px * (1 - var(--intel-black)))); }
  .intelligence-scene.is-pinned .intel-spine { transform:translateY(calc(-24px * var(--intel-shape))); }
  .intelligence-scene.is-pinned .intel-node { opacity:calc(.35 + .65 * var(--intel-recognize)); transform:translateX(calc(var(--node-direction,1) * 30px * (1 - var(--intel-recognize)))); }
  .intel-node:nth-of-type(even) { --node-direction:-1; }
  .intelligence-scene.is-pinned .intel-node strong { clip-path:inset(0 calc((1 - var(--intel-recognize)) * 100%) 0 0); }
  .intelligence-scene.is-pinned .intel-raw { opacity:calc(1 - .6 * var(--intel-recognize)); }
  .intelligence-scene.is-pinned .intel-node-links { stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--intel-connect)); opacity:var(--intel-connect); }
  .intelligence-scene.is-pinned .intel-process-steps li:nth-child(1) { opacity:var(--intel-step-1); }
  .intelligence-scene.is-pinned .intel-process-steps li:nth-child(2) { opacity:var(--intel-step-2); }
  .intelligence-scene.is-pinned .intel-process-steps li:nth-child(3) { opacity:var(--intel-step-3); }
  .intelligence-scene.is-pinned .intel-master { opacity:var(--intel-master); transform:translateY(calc((1 - var(--intel-lift)) * min(18svh,220px))); }
  .intelligence-scene.is-pinned .intel-output-heading { opacity:var(--intel-output-title); transform:translateY(calc(14px * (1 - var(--intel-output-title)))); }
  .intelligence-scene.is-pinned [data-role-output],.intelligence-scene.is-pinned [data-intel-branch] { --branch:var(--intel-worker); }
  .intelligence-scene.is-pinned [data-role-output=management],.intelligence-scene.is-pinned [data-intel-branch=management] { --branch:var(--intel-management); }
  .intelligence-scene.is-pinned [data-role-output=client],.intelligence-scene.is-pinned [data-intel-branch=client] { --branch:var(--intel-client); }
  .intelligence-scene.is-pinned [data-role-output=quality],.intelligence-scene.is-pinned [data-intel-branch=quality] { --branch:var(--intel-quality); }
  .intelligence-scene.is-pinned [data-role-output=authority],.intelligence-scene.is-pinned [data-intel-branch=authority] { --branch:var(--intel-authority); }
  .intelligence-scene.is-pinned [data-intel-branch] { stroke-dashoffset:calc(1 - var(--branch)); opacity:calc(.3 + .7 * var(--branch) * (1 - var(--branch))); }
  .intelligence-scene.is-pinned [data-role-output] { opacity:var(--branch); transform:translate(calc(var(--document-offset) * 2vw * (1 - var(--branch))),calc(-30px * (1 - var(--branch)))); }
  .intelligence-scene.is-pinned [data-role-output] .document-paper { clip-path:inset(0 0 calc((1 - var(--branch)) * 100%) 0); }
  .intelligence-scene.is-pinned .document-foot { opacity:var(--intel-resolve); }
  .intelligence-scene.is-pinned .intel-output-system { transform:scale(calc(1 - .035 * var(--intel-exit))); opacity:calc(1 - .45 * var(--intel-exit)); }
  .intelligence-scene.is-pinned .intel-next { opacity:var(--intel-exit); }
  .intelligence-scene[data-intel-phase=inspect] .document-output { transition:filter var(--motion-fast); }
  .intelligence-scene[data-intel-phase=inspect] .document-paper { transition:transform var(--motion-ui) var(--ease-out); }
  .intelligence-scene[data-intel-phase=inspect] .document-output:is(:hover,:focus-within) .document-paper { transform:scale(1.045); }
  .intelligence-scene[data-intel-role] .document-output:not([data-intel-selected]) { filter:opacity(.6); }
}
.intelligence-scene [data-intel-highlight] { background:#a8d7f22e; border-color:var(--korppi-ice-deep)!important; }
.intelligence-scene path[data-intel-selected] { stroke:var(--korppi-ice-deep); stroke-width:2; opacity:1!important; }
.intelligence-scene.has-intel-transfer .intel-record-flight { display:flex; opacity:var(--intel-flight-visible,0); transform:translate(calc(var(--intel-flight-x) * 100vw),calc(var(--intel-flight-y) * 100vh)); }
.intel-application-record[data-intel-receiving] { opacity:var(--intel-target-visible,1); }
@media (max-width:1099px) {
  .intel-lab-controls { position:relative; inset:auto; margin:24px var(--gutter); }
  .intel-heading,.intel-output-heading { grid-template-columns:1fr; }
  .intel-clusters { gap:24px; }
  .intel-processing-act { grid-template-columns:1fr 1fr; }
  .intel-process-steps { grid-column:1/-1; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .intel-master { grid-template-columns:1fr; }
  .intelligence-scene .document-outputs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  .intel-branches { display:none; }
  .intelligence-scene .document-paper { min-block-size:270px; }
}
@media (max-width:600px) {
  .intel-clusters,.intel-processing-act,.intel-process-steps,.intelligence-scene .document-outputs { grid-template-columns:1fr; }
  .intel-context,.intel-ownership { padding-top:0; }
  .intel-master-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .intel-process-steps { grid-column:1; }
  .intel-processing-act { gap:36px; }
  .intel-master-identity { gap:12px; }
  .intelligence-scene .document-paper { min-block-size:300px; }
  .intelligence-scene .document-paper-body { font-size:14px; }
  .intelligence-scene .document-summary { font-size:13px; }
  .intel-application-record { align-self:flex-start; }
}

/* Public pages share the reviewed scenes; reading pages keep a quiet layout. */
.language-code{display:none}
.pane-belief{background:#111417;color:#f5f5f3;padding:8%;display:flex;flex-direction:column;justify-content:space-around}
.pane-belief img{width:60%;max-height:45%;object-fit:contain;filter:invert(1);opacity:.75}
.pane-belief strong{font-weight:400;font-size:clamp(24px,3vw,48px);line-height:1.1;max-width:18ch}
.language-globe,.header-menu-icon{display:none}
.direction-header .signal-nav-actions :is(summary,.signal-menu-control,.atmosphere-control):active{transform:none}
.direction-header .signal-nav-actions :is(button,a):hover>span[aria-hidden]{transform:none}
.motion-icon-play{display:none}
.atmosphere-control[aria-pressed="true"] .motion-icon-play{display:block}
.atmosphere-control[aria-pressed="true"] .motion-icon-pause{display:none}
.direction-header .signal-nav-actions .atmosphere-control{position:static;display:inline-flex;align-items:center;justify-content:center;gap:8px;inline-size:auto;min-block-size:44px;padding:10px 14px;border-radius:0;background:transparent!important;color:inherit!important;border:1px solid #7c899577!important;white-space:nowrap;font:inherit;line-height:1.2}
.direction-header .atmosphere-control[hidden]{display:none!important}
.direction-header .atmosphere-control .atmosphere-control-label{display:inline;position:static;width:auto;height:auto;overflow:visible;clip-path:none}
.direction-header .atmosphere-control:hover{background:#89919815!important}
.direction-header .atmosphere-control:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.direction-header .atmosphere-control[aria-pressed="true"]{border-color:#7c899577!important}
.direction-header .atmosphere-control[aria-disabled="true"]{opacity:.5}
@media(max-width:760px){.direction-header .signal-nav-actions .atmosphere-control{padding-inline:8px;gap:5px;font-size:10px!important}.direction-header .motion-state-icon{width:12px;flex:none}}
.signal-nav-actions .language-code{display:inline}
.signal-nav-actions .language-current{display:none}
.signal-nav-actions .language-switcher summary{min-width:54px;gap:8px;padding:10px 9px;border-radius:0;font-size:12px;min-height:44px}
.signal-nav-actions .language-switcher>nav{position:absolute;display:grid;inset-block-start:calc(100% + 12px);inset-block-end:auto;inset-inline-end:0;margin:0;inline-size:224px;box-shadow:0 14px 42px #0002}
.direction-header .signal-nav-actions .language-switcher>nav{gap:3px}
.direction-header .signal-nav-actions .language-switcher>nav>a{display:flex}
@media(max-width:760px){.signal-nav-actions .language-switcher summary{min-width:46px;padding-inline:6px;gap:5px}}
.direction-header .language-switcher{--language-surface:#f9faf8;--language-ink:#171b1e;--language-border:#c7cdd0;--language-hover:#171b1e09}
.direction-header:is([data-nav-theme="dark"],[data-nav-theme="photo"] ) .language-switcher{--language-surface:#171b1e;--language-ink:#f5f5f1;--language-border:#7c899555;--language-hover:#ffffff0b}
.direction-header .signal-nav-actions .language-switcher summary{min-width:78px;min-height:44px;padding:10px 14px;gap:12px;border:1px solid #7c899577;line-height:1.2}
.direction-header .language-chevron{flex:none;transition:transform 200ms var(--motion-ease)}
/* One interaction treatment for the three header controls. */
.direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control){min-block-size:44px;border-radius:0;border-color:#7c899577!important;font-size:12px!important;line-height:1.2;transition:background-color 180ms var(--motion-ease),border-color 180ms var(--motion-ease),color 180ms var(--motion-ease)}
.direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control):hover{background:#89919815!important;color:inherit!important;border-color:#899198!important}
.direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control):active{background:#89919830!important;border-color:var(--korppi-ice)!important}
.direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control):focus-visible{outline:2px solid currentColor;outline-offset:3px}
.direction-header .atmosphere-control{flex-direction:row-reverse;letter-spacing:.05em;text-transform:uppercase;gap:12px!important}
.direction-header .motion-state-icon{flex:none;transition:opacity 180ms var(--motion-ease)}
@media(max-width:760px){.direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control){font-size:10px!important}.direction-header .atmosphere-control{gap:6px!important}}
@media(prefers-reduced-motion:reduce){.direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control),.direction-header .motion-state-icon{transition:none}}
@media(max-width:760px){
  .direction-header .signal-nav-actions :is(.language-switcher summary,.signal-menu-control,.atmosphere-control){inline-size:44px;min-inline-size:44px;block-size:44px;padding:0;gap:0!important;justify-content:center}
  .direction-header .signal-nav-actions :is(.language-code,.language-current,.language-chevron,.signal-menu-word,.signal-menu-control>span[aria-hidden],.atmosphere-control-label){display:none!important}
  .direction-header .signal-nav-actions :is(.language-globe,.header-menu-icon){display:block;flex:none}
  .direction-header .signal-nav-actions .motion-state-icon{width:18px;height:18px}
}
.direction-header .signal-nav-actions .language-switcher>nav{inline-size:196px;padding:4px;gap:0;inset-block-start:calc(100% + 8px);background:var(--language-surface);color:var(--language-ink);border-color:var(--language-border);border-radius:2px;box-shadow:0 12px 40px #00000014;transform-origin:top right}
.direction-header .language-panel-title,.direction-header .language-switcher>nav>a small{display:none}
.direction-header .signal-nav-actions .language-switcher>nav>a{position:relative;min-height:48px;padding:12px 16px;font-size:16px;line-height:1.4;border-radius:0;background:transparent;box-shadow:none;transition:background 140ms}
.direction-header .language-switcher>nav>a[aria-current]{font-weight:600}
.direction-header .language-switcher>nav>a[aria-current]::before{content:'';position:absolute;left:4px;top:50%;width:2px;height:18px;transform:translateY(-50%);background:var(--korppi-ice)}
.direction-header .signal-nav-actions .language-switcher>nav>a:hover,.direction-header .signal-nav-actions .language-switcher>nav>a:active{background:var(--language-hover);color:var(--language-ink)}
.direction-header .language-switcher[open]>nav{animation:header-language-in 200ms var(--motion-ease)}
.direction-header .language-switcher[data-closing]>nav{animation:header-language-out 160ms var(--motion-ease) forwards;pointer-events:none}
.direction-header .language-switcher[data-closing] .language-chevron{transform:rotate(0deg)}
@keyframes header-language-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes header-language-out{to{opacity:0;transform:translateY(-4px)}}
@media(max-width:760px){.direction-header .signal-nav-actions .language-switcher summary{min-width:54px;padding-inline:8px;gap:8px}.direction-header .signal-nav-actions .language-switcher>nav{inset-inline-end:auto;inset-inline-start:0;inline-size:min(196px,calc(100vw - 32px))}}
@media(prefers-reduced-motion:reduce){.direction-header .language-switcher[open]>nav,.direction-header .language-switcher[data-closing]>nav{animation:none}.direction-header .language-chevron{transition:none}}
.marketing-footer.footer-v2{display:block;padding-block:64px 24px}
.footer-top{display:grid;grid-template-columns:1fr 1.25fr;gap:64px;padding-block-end:64px}
.footer-brand>p{max-inline-size:28ch;margin-top:24px;font-size:13px;line-height:1.6;color:#626c75}
.footer-brand .direction-brand{display:block;max-inline-size:240px}
.footer-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.marketing-footer .footer-group{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.footer-group h2{font-size:16px;font-weight:400;line-height:1.4;margin:0}
.footer-group.is-unavailable{color:#92979a}
.footer-group a{font-size:13px;display:flex;gap:24px;align-items:center;min-height:32px}
.footer-bottom{border-top:1px solid #171b1e26;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.marketing-footer .footer-legal{display:flex;gap:24px;font-size:12px}
.marketing-footer .language-switcher>nav{inset-block-start:auto;inset-block-end:calc(100% + 12px)}
@media(max-width:700px){.footer-top{grid-template-columns:1fr;gap:40px;padding-bottom:40px}.marketing-footer.footer-v2{padding-top:40px}.footer-groups{gap:16px}.footer-group h2{font-size:15px}.footer-group a{gap:8px;font-size:12px}.footer-bottom{gap:12px}.marketing-footer .footer-legal{gap:18px}}
.marketing-page { --paper:#f5f5f3; }
.marketing-page .anchor-alias { position:absolute; inset-block-start:0; scroll-margin-block-start:0; }
.marketing-page .skip-link { position:fixed; top:12px; left:24px; z-index:500; padding:12px 20px; background:white; color:#111; transform:translateY(-180%); }
.marketing-page .skip-link:focus { transform:none; }
.marketing-page h1 { font-size:clamp(52px,7.2vw,120px); }
.marketing-page main :is(h1,h2)[tabindex="-1"]:focus { outline:none; }
.marketing-lead { font-size:clamp(18px,1.55vw,24px); line-height:1.55; max-inline-size:48ch; margin-block-start:28px!important; }
.marketing-page-intro > .direction-content { padding-block-start:max(160px,calc(var(--scene-header) + 64px)); }
.marketing-page .direction-kicker + :is(h1,h2) { margin-block-start:28px; }
.marketing-footer { padding:64px var(--gutter) 32px; display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:48px; color:#171b1e; background:#f5f5f3; border-top:1px solid #171b1e26; }
.marketing-footer .direction-brand { inline-size:clamp(140px,15vw,240px); }
.marketing-footer nav, .marketing-footer-contact { display:flex; flex-wrap:wrap; gap:12px 24px; align-content:start; }
.marketing-footer-contact { flex-direction:column; overflow-wrap:anywhere; }
.marketing-footer a:hover { text-decoration:underline; text-underline-offset:5px; }
.marketing-footer > p { grid-column:2/-1; font-size:13px; color:#626c75; }
.marketing-company, .marketing-team-intro, .marketing-principle[data-scene-theme="dark"], .platform-step[data-scene-theme="dark"] { background:#111417; color:#f5f5f3; }
.marketing-company > .direction-content { min-block-size:100svh; display:flex; flex-direction:column; justify-content:space-between; gap:36px; }
.marketing-company h2 { font-size:clamp(48px,6.4vw,108px); max-inline-size:21ch; }
.company-belief { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:8vw; }
.company-belief img { width:70%; max-block-size:270px; object-fit:contain; filter:invert(1); opacity:.75; }
.company-belief p { font-size:clamp(20px,2vw,30px); line-height:1.45; max-inline-size:36ch; margin-bottom:28px; }
.company-directions { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; padding-block:28px; border-block:1px solid #8b929740; font-size:clamp(18px,2.6vw,42px); letter-spacing:-.04em; }
.company-directions i { font-size:24px; font-style:normal; color:#afc5d5; }
.marketing-team-intro > .direction-content { min-block-size:100svh; display:flex; flex-direction:column; justify-content:space-between; gap:32px; isolation:isolate; }
.marketing-team-intro h1 { max-inline-size:15ch; }
.marketing-team-intro img { position:absolute; right:var(--gutter); bottom:8%; width:43%; height:74%; object-fit:contain; z-index:-1; opacity:.26; }
.marketing-principle .direction-content { min-block-size:100svh; display:flex; flex-direction:column; justify-content:center; overflow:clip; isolation:isolate; }
.marketing-principle h2 { font-size:clamp(48px,7vw,112px); max-inline-size:18ch; }
.marketing-principle:nth-of-type(3) { background:#d8e0e3; }
.principle-number { position:absolute; right:3%; bottom:-.22em; z-index:-1; font-size:clamp(240px,44vw,750px); line-height:1; letter-spacing:-.1em; opacity:.055; }
.marketing-pricing h1,.marketing-pricing h2 { max-inline-size:18ch; }
.marketing-plans { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-block:48px 28px; border:1px solid #171b1e35; }
.marketing-plans article { display:flex; flex-direction:column; gap:28px; padding:clamp(24px,3vw,48px); min-inline-size:0; border-right:1px solid #171b1e35; }
.marketing-plans article:last-child { border-right:0; }
.marketing-plans article:nth-child(2) { background:#e6e9e8; }
.marketing-plans h3 { font-size:clamp(32px,3vw,48px); margin-block:16px; }
.plan-label { text-transform:uppercase; letter-spacing:.12em; font-size:12px; }
.plan-price { font-size:20px; }
.marketing-plans ul { padding-inline-start:20px; line-height:1.75; margin:0 0 16px; }
.marketing-plans .plan-link { margin-top:auto; display:block; padding-block:14px; border-top:1px solid #171b1e50; }
.plan-link:hover { text-decoration:underline; }
.pricing-method { font-size:15px; max-inline-size:64ch; }
.contact-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:8vw; align-items:start; }
.marketing-contact h1 { font-size:clamp(52px,6.5vw,102px); max-inline-size:13ch; }
.contact-emails { margin-top:40px; display:grid; gap:12px; overflow-wrap:anywhere; }
.demo-form { display:grid; gap:24px; width:100%; max-inline-size:600px; }
.demo-form > label { display:grid; gap:9px; font-size:14px; }
.demo-form :is(input:not([type=radio],[type=checkbox]),select) { width:100%; min-inline-size:0; min-block-size:52px; padding:12px 14px; border:1px solid #71787a; border-radius:0; background:transparent; font:inherit; color:#171b1e; }
.form-switch { display:flex; gap:20px; border:0; padding:0 0 20px; margin:0; border-bottom:1px solid #171b1e35; }
.form-switch label { display:flex; gap:9px; align-items:center; }
.demo-form input:is([type=radio],[type=checkbox]) { accent-color:#171b1e; width:18px; height:18px; flex-shrink:0; }
.demo-form .form-consent { display:flex; align-items:start; gap:12px; }
.form-consent a,.form-status a { text-decoration:underline; }
.demo-form .form-honeypot { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
.demo-form .button { padding:16px 24px; background:#171b1e; color:#fff; border:1px solid #171b1e; border-radius:0; font:inherit; cursor:pointer; }
.demo-form .button:disabled { opacity:.5; cursor:wait; }
.form-status { font-size:14px; min-block-size:42px; }
.form-status.is-error { color:#a52323; }
.platform-step-nav { padding:132px var(--gutter) 24px; display:flex; flex-wrap:wrap; gap:14px 32px; border-bottom:1px solid #171b1e30; }
.platform-step-nav a { font-size:14px; padding-block:8px; }
.platform-step-nav a:hover { text-decoration:underline; }
.platform-step-nav { position:absolute; inset:0 0 auto; z-index:2; }
.platform-step:first-of-type > .direction-content { padding-block-start:220px; }
.platform-step > .direction-content { min-block-size:100svh; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:5vw; align-items:center; }
.platform-step h1,.platform-step h2 { font-size:clamp(48px,5.4vw,88px); max-inline-size:16ch; }
.platform-step-heading .marketing-lead { max-inline-size:40ch; }
.platform-step-visual { min-inline-size:0; display:flex; align-items:center; justify-content:center; --phone-shift:1; --dashboard-enter:1; --handoff-progress:1; --responsibility:1; --action-ready:1; }
.platform-step-visual > * { max-inline-size:100%; }
.platform-step-visual .direction-phone { position:relative; inset:auto; transform:none; width:min(100%,320px); opacity:1; }
.platform-step-visual .direction-record { inline-size:100%; max-inline-size:600px; }
.platform-step-visual .direction-dashboard { position:relative; inset:auto; transform:none; inline-size:100%; opacity:1; }
.platform-step-visual .direction-responsibility { opacity:1; transform:none; }
.platform-step-visual .direction-responsibility dt { color:#606a72; }
.platform-step-visual .direction-responsibility dd { color:#171b1e; }
.platform-step-visual .mobile-record { width:min(100%,520px); border:1px solid #171b1e35; border-radius:12px; }
.platform-step-visual .record-photo-slot { max-block-size:260px; overflow:clip; }
.platform-step-visual .record-photo-slot img { width:100%; height:100%; max-height:260px; object-fit:cover; }
.platform-step-visual .management-observation { padding:24px; color:#171b1e; background:#fafaf7; border-radius:12px; }
.platform-step-visual .management-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
.platform-step-visual .management-list { display:none; }
.platform-step-visual .management-record h3 { margin-bottom:16px; }
.platform-step-visual .direction-responsibility dl { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.platform-step-visual .direction-responsibility dl>div:last-child { grid-column:1/-1; }
.platform-end { padding:48px var(--gutter); background:#111417; color:#f5f5f3; }
.platform-example { grid-column:1/-1; border-top:1px solid #8b929745; padding-top:16px; font-size:12px; }
.platform-message,.platform-trace { width:100%; padding:clamp(24px,4vw,56px); background:#f0f1ed; color:#171b1e; border:1px solid #8b929740; }
.platform-message > * + * { margin-top:24px; }
.platform-message h3 { font-size:clamp(28px,3vw,48px); }
.platform-message blockquote { margin:28px 0; font-size:24px; }
.platform-message p { line-height:1.6; }
.platform-trace img { display:block; width:100%; max-height:300px; object-fit:cover; margin-bottom:24px; }
.platform-trace ol { padding-left:20px; line-height:1.8; }
.portal-company { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#161a1c; color:white; overflow:clip; }
.portal-company img { width:80%; height:90%; object-fit:contain; opacity:.55; }
.portal-company p { position:absolute; bottom:8%; left:8%; right:8%; font-size:clamp(22px,3vw,46px); line-height:1.1; }
.marketing-page .portal-home-surface { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.marketing-page .portal-company img { filter:invert(1); }
html[data-route-arrival]::before { content:''; position:fixed; inset:0; z-index:300; background:#111416; pointer-events:none; clip-path:inset(0 0 calc(var(--takeover-exit,0)*100%) 0); }
html[data-route-arrival] .marketing-page main h1 { clip-path:inset(0 0 calc((1 - var(--destination-reveal,0))*100%) 0); }
@media(min-width:1001px) { .marketing-page .marketing-pricing h1 { font-size:clamp(60px,6.2vw,104px); } }
@media(min-width:1100px) and (min-height:760px) {
  .marketing-page[data-home-assets] .management-observation { padding:24px; }
  .marketing-page .direction-handoff .management-grid { padding-top:16px; }
  .marketing-page .direction-handoff .management-record h3 { margin-bottom:12px; }
  .marketing-page .direction-handoff .management-record>p:not(.record-eyebrow) { margin-block:12px; }
  .marketing-page .direction-handoff .management-record dl { gap:8px; }
}
@media(max-width:1000px) {
  .platform-step-nav { position:relative; }
  .marketing-page .platform-step:first-of-type > .direction-content { padding-block-start:64px; }
  .contact-grid { grid-template-columns:1fr; gap:56px; }
  .marketing-contact h1 { max-inline-size:18ch; }
  .marketing-plans { grid-template-columns:1fr; }
  .marketing-plans article { border-right:0; border-bottom:1px solid #171b1e35; }
  .marketing-plans article:last-child { border-bottom:0; }
  .platform-step > .direction-content { grid-template-columns:1fr; gap:40px; }
  .platform-step-visual { max-inline-size:700px; width:100%; }
  .platform-step h1,.platform-step h2 { max-inline-size:20ch; }
  .marketing-footer { grid-template-columns:1fr 1fr; }
  .marketing-footer > p { grid-column:1/-1; }
}
@media(max-width:600px) {
  .marketing-page h1 { font-size:clamp(44px,12vw,70px); }
  .marketing-page .direction-scene > .direction-content { padding-block:120px 64px; }
  .company-belief { grid-template-columns:1fr; gap:28px; }
  .company-belief img { width:52%; max-height:160px; }
  .company-directions { font-size:24px; justify-content:start; }
  .company-directions i { font-size:18px; }
  .marketing-footer { grid-template-columns:1fr; gap:32px; }
  .marketing-footer > p { grid-column:auto; }
  .marketing-team-intro img { position:relative; inset:auto; width:80%; height:300px; align-self:end; margin-block:-30px; opacity:.65; }
  .marketing-principle h2 { font-size:48px; }
  .platform-step-nav { gap:8px 24px; padding-block-start:112px; }
  .platform-step h1,.platform-step h2 { font-size:48px; }
  .form-switch { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
  html[data-route-arrival]::before { display:none; }
  html[data-route-arrival] .marketing-page main h1 { clip-path:none; }
}
@media(max-width:760px){.direction-header .signal-nav-actions .language-switcher summary{inline-size:44px;min-width:44px;min-inline-size:44px;padding:0}}

/* Shared entrance tokens. Every variant resolves to these same visible defaults. */
.logo-entrance-page { --entrance-duration:1750ms; --entrance-repeat:320ms; --entrance-piece-distance:80px; --paper:var(--korppi-mist); --ink:var(--korppi-raven); background:var(--paper); }
.logo-hero { --logo-progress:1; --raven-scale:1; --raven-shift:0; --vector:1; --reveal:1; --ghost:0; --wing-first:0; --trace:1; --trace-visible:0; --signal:0; --signal-handoff:1; --relief:0; --light:1; --curtain:0; --curtain-travel:1; --fragments:0; --head-align:1; --wing-align:1; --tail-align:1; --piece-black:1; --structure:0; --structure-expand:1; --title-one:1; --title-two:1; --copy:1; --navigation:1; --cue:1; position:relative; min-block-size:100svh; overflow:clip; isolation:isolate; display:flex; flex-direction:column; padding:0 var(--gutter); }
.logo-hero[data-variant="b"] { --entrance-duration:1800ms; --light-strength:0; --recognition:0; }
.entrance-paper { position:absolute; inset:0; z-index:-4; pointer-events:none; }
.entrance-paper img { display:block; width:100%; height:100%; object-fit:cover; opacity:.35; }
.entrance-paper::after { content:""; position:absolute; inset:-10%; background:linear-gradient(115deg,transparent 30%,#fff6 52%,transparent 75%); opacity:0; animation:entrance-surface-light 12s ease-in-out infinite alternate paused; }
.logo-hero[data-playback="settled"][data-in-view="true"][data-reduced="false"] .entrance-paper::after { opacity:.12; animation-play-state:running; }
@keyframes entrance-surface-light { from { transform:translateX(-6%); } to { transform:translateX(6%); } }
.entrance-definitions { position:absolute; pointer-events:none; }
.entrance-dark { position:absolute; inset:0; z-index:-2; background:#080a0c; pointer-events:none; clip-path:url(#entrance-curtain-clip); transform-origin:65% 40%; transform:translate(calc(var(--curtain-travel)*80%),calc(var(--curtain-travel)*95%)) scale(calc(1.2 + (1 - var(--curtain-travel)) * (1 - var(--curtain-travel)) * (1 - var(--curtain-travel))*8.8)); opacity:var(--curtain); }
.entrance-hero-header { display:flex; justify-content:space-between; align-items:center; gap:28px; padding-block:max(24px,env(safe-area-inset-top)) 20px; min-block-size:100px; border-bottom:1px solid #16191b15; position:relative; z-index:4; }
.entrance-hero-header .direction-brand { width:150px; opacity:var(--navigation); clip-path:inset(0 calc((1 - var(--navigation))*100%) 0 0); }
.entrance-hero-header nav { display:flex; align-items:center; gap:28px; font-size:14px; }
.entrance-hero-header nav a { opacity:var(--navigation); }
.entrance-hero-header nav .entrance-lab-back { opacity:1; color:color-mix(in srgb,#f5f5f3 calc(var(--curtain)*100%),#171b1e); }
.entrance-composition { flex:1; position:relative; display:flex; align-items:center; min-block-size:calc(100svh - 350px); }
.entrance-copy { position:relative; z-index:3; width:53%; padding-block:60px; }
.entrance-copy .direction-kicker { margin-bottom:32px; opacity:var(--title-one); }
.logo-hero h1 { font-size:clamp(58px,6.5vw,148px); line-height:.99; max-inline-size:13ch; letter-spacing:-.065em; }
.entrance-title-line { display:block; clip-path:inset(0 0 calc((1 - var(--title-one))*100%) 0); transform:translateY(calc((1 - var(--title-one))*20px)); }
.entrance-title-line + .entrance-title-line { margin-top:.12em; color:#565b5e; clip-path:inset(0 0 calc((1 - var(--title-two))*100%) 0); transform:translateY(calc((1 - var(--title-two))*20px)); }
.logo-hero[data-variant="b"] .entrance-title-line { opacity:var(--title-one); clip-path:inset(0 0 calc((1 - var(--title-one))*14px) 0); }
.logo-hero[data-variant="b"] .entrance-title-line + .entrance-title-line { opacity:var(--title-two); clip-path:inset(0 0 calc((1 - var(--title-two))*14px) 0); }
/* Tight editorial leading must not crop descenders once the reveal has landed. */
.logo-hero[data-variant][data-playback="settled"] .entrance-title-line { clip-path:none; }
.logo-hero[data-variant="b"] .entrance-hero-header .direction-brand { clip-path:none; transform:translateY(calc((1 - var(--navigation))*-6px)); }
.entrance-raven-anchor { position:absolute; right:1vw; top:50%; width:calc((100svh - 100px)*.67 * 1.0126); height:calc((100svh - 100px)*.67); max-width:48%; transform:translateY(-50%); pointer-events:none; }
.entrance-raven-position { width:100%; height:100%; transform:translateX(calc(var(--raven-shift)*-8vw)) scale(var(--raven-scale)); transform-origin:58% 45%; }
.entrance-raven-svg { width:100%; height:100%; overflow:visible; }
.entrance-ghost { opacity:var(--ghost); }
.entrance-vector { fill:#050608; opacity:var(--vector); clip-path:circle(calc(2% + var(--reveal)*138%) at 68% 46%); }
.entrance-wing-first { fill:#050608; opacity:var(--wing-first); clip-path:inset(calc((1 - var(--trace))*100%) 0 0); }
.entrance-relief { opacity:var(--relief); }
.entrance-recognition-light { opacity:calc(var(--recognition,0)*.2); }
.entrance-relief-edge { opacity:calc(var(--relief)*.3); fill:none; stroke:#859097; stroke-width:1.6; }
.entrance-light-sweep { opacity:var(--light-strength,0); transform:translateX(calc(var(--light)*2900px)) rotate(-18deg); transform-origin:50% 50%; }
.entrance-trace { stroke:#adc4d0; stroke-width:3; stroke-linecap:round; stroke-dasharray:.16 .84; stroke-dashoffset:calc(.16 - var(--trace)); opacity:var(--trace-visible); }
.entrance-construction-arc { stroke:#56636b; stroke-width:2; opacity:var(--structure); transform:scale(calc(1 + var(--structure-expand)*.3)); transform-origin:68% 46%; }
.logo-hero[data-variant="a"] .structural-tangent,.logo-hero[data-variant="a"] .structural-cross { display:none; }
.entrance-trace-point { fill:var(--korppi-ice); opacity:var(--signal); transform:translate(calc((var(--point-x,0)*(1 - var(--signal-handoff)) + var(--point-dest-x,0)*var(--signal-handoff))*1716px),calc((var(--point-y,0)*(1 - var(--signal-handoff)) + var(--point-dest-y,1)*var(--signal-handoff))*1694.667px)); }
.entrance-fragments { opacity:var(--fragments); fill:color-mix(in srgb,#53585b calc((1 - var(--piece-black))*100%),#050608); }
.entrance-head { transform:translate(calc((1 - var(--head-align))*-72px),calc((1 - var(--head-align))*40px)); }
.entrance-wing-part { transform:translate(calc((1 - var(--wing-align))*64px),calc((1 - var(--wing-align))*-52px)); }
.entrance-tail { transform:translate(calc((1 - var(--tail-align))*-48px),calc((1 - var(--tail-align))*80px)); }
.entrance-structure { position:absolute; inset:0; pointer-events:none; opacity:var(--structure); color:#56636b; }
.entrance-structure .structural-baseline { position:absolute; left:calc(68% - var(--structure-expand)*61%); right:4%; bottom:16%; border-top:1px solid currentColor; transform:translateY(calc((1 - var(--tail-align))*20px)); }
.entrance-structure .structural-tangent { position:absolute; left:calc(67% - var(--structure-expand)*60%); right:4%; top:18%; border-top:1px solid currentColor; transform:translateY(calc((1 - var(--head-align))*-16px)); }
.entrance-structure .structural-vertical { position:absolute; top:10%; bottom:8%; right:24%; border-left:1px solid currentColor; transform:translateX(calc((1 - var(--wing-align))*24px)); }
.entrance-structure .structural-cross { position:absolute; top:35%; right:24%; width:9px; height:9px; border:1px solid currentColor; transform:translate(50%,calc((1 - var(--head-align))*22px)); }
.entrance-hero-foot { position:relative; z-index:4; padding:24px 0 96px; min-block-size:250px; display:grid; grid-template-columns:55% minmax(0,1fr); align-items:start; gap:16px 40px; border-top:1px solid #171b1e25; }
.entrance-hero-foot p { grid-column:1; grid-row:1; }
.entrance-demo { grid-column:1; grid-row:2; justify-self:start; }
.entrance-scroll { grid-column:2; grid-row:2; }
.entrance-hero-foot p { max-width:40ch; line-height:1.55; color:#626a70; opacity:var(--copy); transform:translateY(calc((1 - var(--copy))*12px)); }
.entrance-demo { background:#050608; color:white!important; padding:14px 20px; border:1px solid #050608; display:flex; align-items:center; gap:36px; font-size:14px; opacity:var(--copy); }
.entrance-scroll { justify-self:end; display:flex; align-items:center; gap:18px; font-size:13px; padding-block:14px; opacity:var(--cue); }
.entrance-scroll-point { width:5px; height:5px; border-radius:50%; background:#95c1d9; flex-shrink:0; }
.logo-hero :is(a,button):focus-visible { opacity:1!important; clip-path:none!important; }
@media(max-width:1000px) {
 .entrance-composition { min-height:0; display:flex; flex-direction:column; align-items:stretch; padding:36px 0 22px; }
 .entrance-raven-anchor { position:relative; right:0; top:auto; transform:none; align-self:end; width:62%; max-width:none; height:auto; aspect-ratio:1716/1694.667; }
 .entrance-copy { width:100%; padding:0 0 24px; }
 .logo-hero h1 { max-width:18ch; }
 .logo-hero h1 { font-size:clamp(46px,6.7vw,74px); }
 .entrance-hero-header nav { gap:18px; }
 .entrance-hero-foot { gap:20px; grid-template-columns:1fr auto; }
 .entrance-hero-foot p,.entrance-demo,.entrance-scroll { grid-column:1/-1; grid-row:auto; }
 .entrance-scroll { justify-self:start; }
}
@media(max-width:600px) {
 .entrance-hero-header { min-height:86px; gap:16px; padding-block:18px; }
 .entrance-hero-header .direction-brand { width:112px; }
 .entrance-hero-header nav { gap:12px; font-size:12px; }
 .entrance-hero-header nav a:not(.entrance-lab-back) { display:none; }
 .entrance-composition { min-height:0; display:flex; flex-direction:column; align-items:stretch; padding:36px 0 22px; }
 .entrance-copy { width:100%; padding:0 0 22px; }
 .entrance-copy .direction-kicker { font-size:11px; margin-bottom:18px; }
 .logo-hero h1 { font-size:clamp(42px,10.7vw,64px); max-width:16ch; }
 .entrance-raven-anchor { position:relative; top:auto; transform:none; align-self:end; width:min(83%,340px); max-width:none; height:auto; aspect-ratio:1716/1694.667; }
 .entrance-hero-foot { grid-template-columns:1fr; padding-bottom:128px; gap:20px; }
 .entrance-hero-foot p { font-size:15px; }
 .entrance-demo { justify-self:start; }
 .entrance-scroll { justify-self:start; padding-top:0; }
 .entrance-structure .structural-tangent { top:48%; }
 .entrance-structure .structural-baseline { bottom:20%; }
}
@media(prefers-reduced-motion:reduce) {
 .entrance-paper::after { animation:none; }
 .logo-hero { --title-one:1!important; --title-two:1!important; --copy:1!important; --navigation:1!important; --cue:1!important; }
 .entrance-raven-position { transform:none!important; }
 .entrance-vector { opacity:1!important; clip-path:none!important; }
 .entrance-dark,.entrance-relief,.entrance-relief-edge,.entrance-fragments,.entrance-structure,.entrance-construction-arc,.entrance-trace,.entrance-trace-point { display:none!important; }
}

.logo-hero .direction-kicker + h1 { margin-block-start:0; }

/* B joins the existing public header, native document flow and ambient controls. */
.home-raven-hero { padding-block-start:max(100px,var(--scene-header,100px)); }
.home-raven-hero .entrance-hero-foot { padding-block-end:72px; }
.home-raven-hero .entrance-paper::after { animation-play-state:paused!important; }
.home-raven-hero.is-asset-live[data-playback="settled"][data-reduced="false"] .entrance-paper::after { animation-play-state:running!important; }
.raven-entry-running .signal-nav { background:transparent!important; border-color:transparent; box-shadow:none; }
.raven-entry-running .signal-nav :is(.direction-brand,.signal-nav-center,.signal-nav-actions) { opacity:var(--home-entry-navigation,1); }
.raven-entry-running .signal-nav .direction-progress { opacity:0; }
html[data-home-entry-pending] .home-raven-hero { --raven-scale:6.8; --raven-shift:.6; --vector:0; --relief:1; --curtain:1; --curtain-travel:0; --title-one:0; --title-two:0; --copy:0; --navigation:0; --cue:0; }
html[data-home-entry-pending] .signal-nav { background:transparent!important; border-color:transparent; }
html[data-home-entry-pending] .signal-nav > * { opacity:0; }
@media(max-width:1000px) { .home-raven-hero .entrance-scroll { justify-self:end; } }
@media(max-width:600px) { .home-raven-hero .entrance-hero-foot { padding-block-end:100px; } }
@media(prefers-reduced-motion:reduce) {
 html[data-home-entry-pending] .signal-nav > *, .raven-entry-running .signal-nav :is(.direction-brand,.signal-nav-center,.signal-nav-actions) { opacity:1; }
 .home-raven-hero .entrance-paper::after { animation:none!important; }
}

/* Same controller and tokens as the brand scenes. Static HTML is the baseline. */
.wf-entry .wf-content { min-height:100svh; display:flex; flex-direction:column; justify-content:center; }
.wf-entry h1 { font-size:clamp(64px,8vw,128px); max-width:12ch; margin-block:24px; }
.wf-entry-signal { margin-top:36px; margin-left:auto; width:min(100%,540px); border-top:1px solid #b7cbd566; padding-top:20px; }
.wf-entry-signal blockquote { margin-block:14px; font-size:clamp(20px,2vw,30px); }
.wf-entry-signal .wf-caption { color:#b9c9d0; margin-bottom:16px; }
.wf-notes { font-size:13px; line-height:1.5; margin-top:12px; }
.wf-notes summary { cursor:pointer; width:fit-content; padding:8px 0; text-decoration:underline; text-underline-offset:4px; }
.wf-notes[open] p { margin-block:12px; }
.wf-handoff-token { display:none; }
.wf-workspace { position:relative; }
.wf-roles.scene-active.is-pinned .wf-handoff-token { display:grid; gap:12px; position:absolute; left:24px; top:84px; width:190px; z-index:3; padding:18px 12px; border:6px solid #222b2e; border-radius:calc((1 - var(--wf-handoff))*26px); background:#f8f9f6; color:#152127; font-size:12px; pointer-events:none; transform:translateX(calc(var(--wf-handoff)*(100vw - 360px))) translateY(calc(var(--wf-handoff)*32px)); opacity:clamp(0,calc((1 - var(--wf-handoff))*3),1); }
.wf-handoff-token figcaption { display:none; }
.wf-handoff-token img { aspect-ratio:1; }
.wf-roles.scene-active.is-pinned .wf-handoff-token { height:236px; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr) auto; overflow:hidden; }
.wf-handoff-token :is(figure,picture,img) { min-width:0; width:100%; height:100%; }
.wf-roles.scene-active.is-pinned .wf-role-panel { opacity:clamp(0,calc((var(--wf-handoff) - .55)/.45),1); clip-path:inset(0 calc((1 - var(--wf-handoff))*100%) 0 0); }
.wf-roles[data-reviewed=true] .wf-result { background:#d8e5e8; padding:20px; transition:background var(--motion-ui,220ms); }
@media(max-width:700px){ .wf-entry h1{font-size:58px;} .wf-entry-signal{margin-top:24px;} }
@media(prefers-reduced-motion:reduce){ .wf-handoff-token{display:none!important;} .wf-role-panel{clip-path:none!important;} }
.wf-scene { position:relative; min-block-size:100svh; isolation:isolate; --wf-input:1; --wf-language:1; --wf-structure:1; --wf-record:1; --wf-handoff:1; }
.wf-content { width:100%; min-width:0; padding:max(116px,calc(var(--scene-header,96px) + 24px)) var(--gutter) 64px; }
.wf-frame { min-block-size:100svh; }
.wf-heading { display:grid; grid-template-columns:1fr 2fr; align-items:start; gap:32px; margin-bottom:28px; }
.wf-heading h2 { font-size:clamp(36px,4.2vw,66px); max-width:23ch; }
.wf-label,.wf-caption,.wf-ai-note { font-size:13px; line-height:1.5; color:#5c666c; }
.wf-label { letter-spacing:.04em; margin-bottom:10px!important; }
.wf-caption { margin-top:10px!important; }
.wf-foot { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px 32px; padding-top:20px; font-size:14px; }
.wf-foot p { max-width:68ch; }
.wf-foot a,.wf-link { text-decoration:underline!important; text-underline-offset:5px; }
.wf-button { display:inline-flex; gap:28px; align-items:center; justify-content:space-between; padding:14px 22px; border:1px solid currentColor; border-radius:0; background:#171b1e!important; color:#fff!important; min-height:48px; line-height:1.4; }
.wf-button:disabled { opacity:.5; cursor:default; }
.wf-lead { max-width:54ch; font-size:clamp(18px,1.8vw,27px); margin-top:28px!important; line-height:1.5; }
.wf-media { margin:0; position:relative; overflow:hidden; background:#303538; }
.wf-media img,.wf-media video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.wf-media video { position:absolute; inset:0; height:100%; opacity:0; }
.wf-media video.media-playing { opacity:1; }
.wf-media-replay { position:absolute; right:12px; top:12px; z-index:2; padding:8px 14px; min-height:44px; background:#f5f5f3!important; color:#172125!important; font-size:13px!important; }
.wf-media figcaption { position:absolute; inset:auto 0 0; padding:18px 16px 12px; color:white; background:linear-gradient(transparent,#000c); font-size:12px; }
.wf-field { color:#fff; background:#111517; }
.wf-field-image { position:absolute; inset:0; z-index:-2; }
.wf-field-image :is(figure,picture,img) { width:100%; height:100%; display:block; }
.wf-field-image img { object-position:60% 50%; opacity:.65; }
.wf-field-image:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#080b0deb 0%,#080b0d88 48%,transparent); }
.wf-field-image figcaption { inset:24px var(--gutter) auto auto; background:#101416bb; }
.wf-field h2 { font-size:clamp(52px,6.5vw,104px); max-width:12ch; margin-top:30px; }
.wf-field-body { font-size:20px; max-width:44ch; margin-top:24px!important; }
.wf-field-report { width:min(100%,700px); margin-top:40px; border-top:1px solid #81919e80; padding-top:20px; }
.wf-inputs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.wf-inputs span { padding:5px 12px; border:1px solid #9fb0bb66; font-size:13px; }
.wf-inputs span:first-child { background:#b7cbd5; color:#15212a; }
.wf-field .wf-label { color:#c7d0d6; }
.wf-field blockquote { margin:0; font-size:clamp(19px,2vw,28px); line-height:1.4; max-width:44ch; }
.wf-assembly { background:#111719; color:#f4f5f2; }
.wf-stages { display:flex; flex-wrap:wrap; gap:12px 28px; padding:0 0 18px; list-style:none; border-bottom:1px solid #7d909950; font-size:13px; color:#bdc9cf; }
.wf-stages li[aria-current] { color:white; box-shadow:0 2px #afc8d4; }
.wf-record { background:#f3f4f1; color:#171b1e; padding:24px; border:1px solid #87969d55; }
.wf-record-top,.wf-workspace-top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 20px; padding-bottom:16px; font-size:12px; }
.wf-status { color:#485f6a; }
.wf-record-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:28px; align-items:start; }
.wf-record-grid .wf-media img { max-height:270px; }
.wf-original blockquote { margin:0; font-size:15px; line-height:1.45; }
.wf-wave { color:#586c77; font-size:17px; margin-top:8px; letter-spacing:3px; }
.wf-description { margin-top:16px; padding-top:16px; border-top:1px solid #80909966; }
.wf-description h3 { font-size:clamp(26px,2.3vw,36px); margin-bottom:10px; }
.wf-description>p:last-child { font-size:16px; line-height:1.5; }
.wf-fields { display:grid; grid-template-columns:1fr .5fr 1.4fr; gap:20px; margin:20px 0 12px; border-top:1px solid #93a0a855; padding-top:14px; }
.wf-fields dt { font-size:12px; color:#5c666c; margin-bottom:5px; }
.wf-fields dd { margin:0; font-size:15px; }
.wf-ai-note { max-width:100ch; }
.wf-roles { background:#e5e9e8; }
.wf-role-toolbar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; margin-bottom:20px; }
.wf-role-tabs { display:flex; flex-wrap:wrap; gap:6px; }
.wf-role-tabs button { padding:10px 15px; border:1px solid #87939866; font-size:14px; min-height:44px; }
.wf-role-tabs button[aria-selected=true] { background:#182124; color:#fff; box-shadow:inset 0 -3px #b4cbd7; }
.wf-auto { font-size:12px!important; padding:8px 12px; }
.wf-workspace { border:1px solid #87939866; background:#f8f9f6; padding:24px 28px; }
.wf-workspace-top { border-bottom:1px solid #87939855; }
.wf-role-panel { padding:24px 0; display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:40px; border-bottom:1px solid #87939855; }
.wf-role-panel h3 { font-size:clamp(32px,3vw,46px); max-width:24ch; }
.wf-role-lead { font-size:19px; max-width:56ch; margin-block:24px!important; }
.wf-interactive .wf-workspace { display:grid; }
.wf-interactive .wf-workspace-top { grid-row:1; }
.wf-interactive .wf-role-panel { grid-row:2; grid-column:1; visibility:hidden; pointer-events:none; }
.wf-interactive .wf-role-panel[data-active=true] { visibility:visible; pointer-events:auto; }
.wf-interactive .wf-role-panel[data-active=true] > * { animation:wf-role-reveal var(--motion-ui,240ms) var(--ease-out) both; }
@keyframes wf-role-reveal { from { opacity:.3; transform:translateY(6px); } to { opacity:1; transform:none; } }
.motion-reduced .wf-role-panel > * { animation:none!important; }
.wf-interactive .wf-result { grid-row:3; }
.wf-instruction { border-inline-start:3px solid #9bb6c4; margin-block:22px; padding:4px 0 4px 20px; }
.wf-instruction>p { font-size:clamp(22px,2.2vw,34px); line-height:1.25; max-width:38ch; letter-spacing:-.02em; }
.wf-role-facts { display:flex; flex-wrap:wrap; gap:18px 36px; }
.wf-role-facts dt { color:#5c666c; font-size:12px; }
.wf-role-facts dd { margin:5px 0 0; }
.wf-role-aside { border-left:1px solid #87939855; padding-left:28px; font-size:15px; }
.wf-role-aside>.wf-label:not(:first-child) { margin-top:24px!important; }
.wf-source-thumb { display:flex; gap:16px; align-items:center; margin-top:24px; font-size:12px; }
.wf-source-thumb .wf-media { width:140px; flex-shrink:0; }.wf-source-thumb figcaption { display:none; }
.wf-role-aside .wf-media img { max-height:160px; }
.wf-role-aside .wf-media { margin-bottom:16px; }
.wf-evidence-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-block:24px; font-size:15px; }
.wf-evidence-pair>div { border-top:1px solid #8da1aa80; padding-top:12px; }
.wf-evidence-pair small { display:block; color:#606e74; margin-top:10px; }
.wf-result { padding-top:18px; display:grid; grid-template-columns:1fr 2fr; gap:8px 30px; }
.wf-result>p { font-size:17px; }.wf-result .wf-result-owner { grid-column:2; font-size:13px; color:#5c666c; }
.wf-roles[data-reviewed=true] .wf-result { border-top:2px solid #8daebd; }
.wf-interactive[data-feedback=false] [data-evidence-received],.wf-interactive[data-feedback=true] [data-evidence-pending] { display:none; }
.wf-events { padding:0; list-style:none; font-size:14px; }.wf-events li { margin-bottom:16px; }.wf-events time { display:block; color:#596870; font-size:12px; }
.wf-practice { background:#cdd8dd; }.wf-practice .wf-content,.wf-pilot .wf-content { min-height:100svh; display:flex; flex-direction:column; justify-content:center; }
.wf-practice h2,.wf-pilot h2,.wf-company h2 { font-size:clamp(48px,6.5vw,102px); max-width:18ch; margin-top:32px; }
.wf-practice-links { margin-top:48px; display:grid; }.wf-practice-links a { padding:24px 0; border-top:1px solid #697e8955; font-size:clamp(20px,2.4vw,36px); }
.wf-company { background:#151a1d; color:#f2f4f2; }.wf-company-grid { display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:center; margin-block:48px; }.wf-team-placeholder { padding:20px; border:1px solid #697e8955; }.wf-team-placeholder img { display:block; width:65%; max-height:240px; object-fit:contain; filter:invert(1); margin:auto; opacity:.5; }.wf-team-placeholder p { font-size:13px; margin-top:24px; color:#b3c0c6; }.wf-team-belief { font-size:clamp(22px,2.4vw,38px); line-height:1.35; margin-bottom:28px!important; }.wf-company .wf-label { color:#b3c0c6; }.wf-company .wf-button { margin-top:24px; background:#f1f3f0!important; color:#172125!important; }
.wf-pilot-plan { display:grid; grid-template-columns:1fr 1fr; margin-block:48px; gap:36px 6vw; }.wf-pilot-plan>div { border-top:1px solid #7e909766; padding-top:20px; }.wf-pilot-plan dt { font-size:13px; color:#5c666c; }.wf-pilot-plan dd { margin:16px 0 0; font-size:clamp(22px,2.5vw,36px); line-height:1.3; letter-spacing:-.02em; }
.wf-resolve { color:white; background:#0c1012; }.wf-resolve .atmosphere-landscape { z-index:-2; }.wf-resolve:before { content:''; position:absolute; inset:0; background:#0a10169c; z-index:-1; }.wf-resolve .wf-content { min-height:100svh; display:flex; flex-direction:column; justify-content:center; align-items:start; gap:28px; }.wf-resolve h2 { font-size:clamp(60px,8.8vw,140px); max-width:15ch; }.wf-resolve .wf-button { background:#f1f3f0!important; color:#172125!important; }.wf-resolve .wf-lead { margin:0!important; }
.wf-lab-controls { position:relative; background:#dae2e5; color:#172125; display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; padding:20px var(--gutter); }.wf-lab-controls label { display:flex; gap:12px; align-items:center; }.wf-lab-controls input[type=range] { width:min(40vw,300px); }
/* The only two long tracks. Content is measured with final text and all role panels. */
.wf-assembly.is-pinned { min-block-size:245svh; }.wf-roles.is-pinned { min-block-size:280svh; }
.wf-scene.is-pinned .wf-frame { position:sticky; top:var(--scene-header); min-block-size:calc(100svh - var(--scene-header)); }
.wf-scene.is-pinned .wf-content { padding-block:24px 28px; }
.wf-assembly.scene-active .wf-evidence { transform:translateY(calc((1 - var(--wf-input))*20px)); }
.wf-assembly.scene-active .wf-description { opacity:calc(.16 + .84*var(--wf-language)); transform:translateY(calc((1 - var(--wf-language))*12px)); clip-path:inset(0 0 calc((1 - var(--wf-language))*100%) 0); }
.wf-assembly.scene-active .wf-fields { opacity:var(--wf-structure); transform:translateY(calc((1 - var(--wf-structure))*12px)); }
.wf-assembly.scene-active .wf-status { opacity:var(--wf-record); }
.wf-assembly.scene-active .wf-record { border-color:color-mix(in srgb,#b5d0db calc(var(--wf-record)*100%),#87969d55); }
.wf-roles.scene-active .wf-workspace { transform:translateY(calc((1 - var(--wf-handoff))*18px)); }
@media(min-width:1100px) and (min-height:760px) {
 .wf-roles .wf-content { padding-block:20px 24px; }
 .wf-roles .wf-heading h2 { font-size:clamp(40px,3.6vw,56px); }
 .wf-roles .wf-heading { margin-bottom:20px; }
 .wf-roles .wf-workspace { padding:18px 24px; }
 .wf-roles .wf-role-panel { padding:18px 0; gap:28px; }
 .wf-roles .wf-role-panel h3 { font-size:36px; }
 .wf-roles .wf-instruction { margin-block:16px; }
 .wf-roles .wf-instruction>p { font-size:26px; }
 .wf-roles .wf-evidence-pair { margin-block:16px; }
 .wf-roles .wf-result { padding-top:14px; }
 .wf-roles .wf-role-aside .wf-media img { max-height:120px; }
}
/* Reserve control space in the header. Never cover evidence or the footer. */
.marketing-page .atmosphere-control { position:static; flex-shrink:0; width:auto; min-width:44px; height:40px; min-height:40px; padding:8px 10px; border-radius:0; background:transparent!important; color:inherit!important; border-color:#81919d66!important; }
.marketing-page .signal-nav-actions { gap:12px; }.marketing-page .signal-menu-open .atmosphere-control { visibility:visible; }
.marketing-page.signal-menu-open .signal-map .atmosphere-control { visibility:visible; }
.platform-step-visual .wf-record-grid { grid-template-columns:1fr; }
.platform-step-visual .wf-record-grid .wf-media img { max-height:180px; }
.platform-step-visual .wf-fields { grid-template-columns:1fr 1fr; }
.platform-step-visual .wf-fields>div:last-child { grid-column:1/-1; }
@media(max-width:1099px),(max-height:759px) {
 .wf-scene:not(.wf-field) .wf-content { padding-block-start:48px; }
 .wf-heading { grid-template-columns:1fr; gap:16px; }.wf-record-grid { gap:24px; }.wf-content { padding-block:max(116px,calc(var(--scene-header,96px) + 24px)) 56px; }
 .wf-interactive .wf-role-panel { display:none; }.wf-interactive .wf-role-panel[data-active=true] { display:grid; }
}
@media(max-width:700px) {
 .wf-heading h2 { font-size:40px; }.wf-content { padding-inline:var(--gutter); }.wf-field .wf-content { padding-top:144px; }.wf-field h2 { font-size:58px; }.wf-field-body { font-size:18px; }.wf-field-image img { object-position:65% 50%; }.wf-field-image figcaption { inset:100px var(--gutter) auto; font-size:10px; padding:6px; }
 .wf-record { padding:18px; }.wf-record-grid,.wf-role-panel,.wf-company-grid,.wf-pilot-plan { grid-template-columns:1fr; }.wf-record-grid .wf-media img { max-height:200px; }.wf-record-grid .wf-media figcaption { font-size:10px; }.wf-fields { grid-template-columns:1fr 1fr; }.wf-fields>div:last-child { grid-column:1/-1; }.wf-stages { gap:8px 18px; font-size:12px; }.wf-workspace { padding:18px; }.wf-role-panel { gap:20px; }.wf-role-panel h3 { font-size:34px; }.wf-role-aside { border-left:0; border-top:1px solid #87939855; padding:20px 0 0; }.wf-evidence-pair { grid-template-columns:1fr; }.wf-result { grid-template-columns:1fr; }.wf-result .wf-result-owner { grid-column:1; }.wf-role-tabs button { font-size:13px; padding:9px 11px; }.wf-source-thumb .wf-media { width:105px; }.wf-company-grid { gap:32px; }.wf-pilot-plan { margin-block:32px; gap:28px; }.wf-company h2,.wf-practice h2,.wf-pilot h2 { font-size:48px; }.wf-resolve h2 { font-size:60px; }
 .marketing-page .signal-nav { gap:12px; }.marketing-page .signal-nav-actions { gap:6px; }.marketing-page .atmosphere-control { padding:5px; min-width:36px; }.marketing-page .signal-demo { padding-inline:10px; }
}
@media(prefers-reduced-motion:reduce) { .wf-role-panel > * { animation:none!important; }.wf-scene { min-block-size:100svh!important; }.wf-scene :is(.wf-description,.wf-fields,.wf-status,.wf-evidence,.wf-workspace) { opacity:1!important; transform:none!important; clip-path:none!important; }.wf-media video { display:none; } }


/* Continuous responsibility space. Only the inner viewport clips the camera. */
.wf-scene { --stage-h:calc(100svh - var(--scene-header,96px) - 32px); }
.wf-entry .wf-content { display:grid; grid-template-columns: .8fr 1.2fr; align-content:center; gap:24px 7vw; }
.wf-entry h1 { font-size:clamp(54px,6.2vw,108px); grid-column:1; }
.wf-entry .wf-lead { grid-column:1; font-size:clamp(18px,1.6vw,24px); }
.wf-entry .wf-entry-signal { grid-column:2; grid-row:1/6; width:100%; margin:0; }
.wf-entry-signal .wf-media img { aspect-ratio:4/5; max-height:72svh; object-fit:cover; }
.wf-entry .wf-content>.direction-kicker { grid-column:1; }
.wf-viewport { position:relative; }
.wf-world { position:relative; }
.wf-interactive .wf-workspace { display:block; transform:none!important; }
.wf-interactive .wf-role-panel { position:relative; display:grid; visibility:visible; opacity:1!important; clip-path:none!important; pointer-events:auto; animation:none; grid-row:auto; grid-column:auto; }
.wf-role-panel > * { animation:none!important; }
.wf-role-panel { scroll-margin-top:calc(var(--scene-header,96px) + 28px); min-width:0; }
.wf-role-panel :is(h3,p,dd) { overflow-wrap:break-word; }
.wf-actor { display:none; pointer-events:none; }
.wf-full-record { padding:32px 0; border-block:1px solid #83929a55; }
.wf-full-record h3 { font-size:clamp(36px,4vw,64px); }
.wf-full-record .wf-media { max-width:520px; margin-block:24px; }
.wf-full-record .wf-events { display:flex; flex-wrap:wrap; gap:20px 48px; }
.wf-closing-record { border-block:1px solid #96a4ad66; padding:24px 0; width:100%; display:grid; grid-template-columns:1fr 1fr; gap:18px 8vw; font-size:16px; }
.wf-closing-record span { color:#b7cbd5; }
.wf-closing-record>p:last-child { grid-column:2; font-size:13px; max-width:54ch; }
.wf-roles[data-mode=flow] .wf-role-panel, .wf-roles[data-mode=reduced] .wf-role-panel { padding-block:64px; }
.wf-roles .wf-evidence-pair .wf-media { margin-block:14px; }
.wf-roles .wf-evidence-pair img { aspect-ratio:4/3; max-height:190px; }
.wf-role-panel[data-role-panel=client] { background:#ecefeb; padding:40px; grid-template-columns:1.25fr 1fr; }
.wf-role-panel[data-role-panel=authority] { background:#172024; color:#f4f5f2; padding:40px; grid-template-columns:1fr 1.5fr; }
.wf-role-panel[data-role-panel=authority] .wf-label, .wf-role-panel[data-role-panel=authority] time { color:#bccbd2; }
.wf-role-panel[data-role-panel=authority] .wf-events { border-left:1px solid #b7cbd5; padding-left:24px; }
.wf-roles .wf-role-tabs button:nth-child(4) { margin-inline-start:24px; }
.wf-roles .wf-role-tabs button:nth-child(-n+3):not(:last-child)::after { content:' ↘'; color:#779aaa; }
.wf-scene.is-pinned .wf-frame { min-block-size:var(--stage-h); }
.wf-assembly.is-pinned { min-block-size:calc(100svh + 2 * var(--stage-h)); }
.wf-roles.is-pinned { min-block-size:calc(100svh + 4.5 * var(--stage-h)); }
.wf-roles.is-pinned .wf-content { padding-block:20px 12px; }
.wf-roles.is-pinned .wf-heading { margin-bottom:16px; }
.wf-roles.is-pinned .wf-heading { grid-template-columns:.6fr 2fr; gap:24px; }
.marketing-page .wf-roles.is-pinned .wf-heading h2 { margin:0; text-wrap:initial; }
.wf-roles.is-pinned .wf-foot p { max-width:85ch; }
.wf-roles.is-pinned .wf-heading h2 { font-size:clamp(32px,2.6vw,42px); max-width:none; }
.wf-roles.is-pinned .wf-role-toolbar { margin-bottom:14px; }
.wf-roles.is-pinned .wf-workspace { padding:12px 20px; }
.wf-roles.is-pinned .wf-viewport { height:calc(100svh - var(--scene-header,96px) - 279px); overflow:clip; }
.wf-roles.is-pinned .wf-world { height:100%; width:100%; transform:translate(calc(var(--camera-x,0)*-115%),calc(var(--camera-y,0)*-115%)); }
.wf-roles.is-pinned .wf-role-panel { position:absolute; top:0; left:0; width:100%; min-height:100%; padding:26px 12px; border:0; grid-template-columns:1.2fr 1fr; align-content:center; gap:4vw; }
.wf-roles.is-pinned .wf-role-panel h3 { font-size:clamp(32px,3vw,46px); }
.wf-roles.is-pinned [data-role-panel=supervisor] .wf-source-thumb { display:block; }
.wf-roles.is-pinned [data-role-panel=supervisor] .wf-source-thumb .wf-media { width:100%; }
.wf-roles.is-pinned [data-role-panel=supervisor] .wf-source-thumb img { max-height:240px; aspect-ratio:4/3; }
.wf-roles.is-pinned [data-role-panel=supervisor] .wf-source-thumb>span { display:block; margin-top:12px; }
.wf-roles.is-pinned [data-role-panel=worker] .wf-role-aside .wf-media img { max-height:200px; }
.wf-roles.is-pinned .wf-role-panel[data-role-panel=worker] { left:115%; grid-template-columns:1fr .8fr; padding-inline:4vw; }
.wf-roles.is-pinned [data-role-panel=worker] .wf-role-aside { border:8px solid #202b30; border-radius:28px; padding:18px; background:#eef0ed; min-height:420px; width:100%; max-width:330px; justify-self:center; }
.wf-roles.is-pinned [data-role-panel=worker] .wf-role-aside .wf-instruction { margin-block:12px; padding-left:12px; }
.wf-roles.is-pinned [data-role-panel=worker] .wf-role-aside .wf-instruction>p { font-size:18px; }
.wf-roles.is-pinned [data-role-panel=worker] .wf-role-aside .wf-media img { max-height:150px; }
.wf-roles.is-pinned [data-role-panel=worker] .wf-role-aside figcaption { font-size:10px; padding:8px; }
.wf-roles.is-pinned[data-phase=instruction-handoff] .wf-role-panel .wf-instruction { opacity:0; }
.wf-roles.is-pinned .wf-role-panel[data-role-panel=quality] { left:115%; top:115%; grid-template-columns:1.65fr .7fr; padding-top:8px; }
.wf-roles.is-pinned [data-role-panel=quality] h3 { font-size:32px; }
.wf-roles.is-pinned [data-role-panel=quality] .wf-evidence-pair { margin-block:10px; }
.wf-roles.is-pinned [data-role-panel=quality] .wf-caption { font-size:12px; }
.wf-roles.is-pinned [data-role-panel=quality] .wf-evidence-pair img { max-height:150px; }
.wf-roles.is-pinned [data-role-panel=quality] .wf-evidence-pair .wf-media { margin-block:8px; }
.wf-roles.is-pinned [data-role-panel=quality] .wf-evidence-pair figcaption { font-size:10px; padding:8px; }
.wf-roles.is-pinned [data-role-panel=quality] [data-feedback] { font-size:12px; padding:8px; }
.wf-roles.is-pinned [data-role-panel=quality] .wf-evidence-pair p { font-size:14px; line-height:1.4; }
.wf-roles.is-pinned .wf-role-panel[data-role-panel=client],.wf-roles.is-pinned .wf-role-panel[data-role-panel=authority] { top:115%; left:0; display:none; }
.wf-roles.is-pinned[data-auxiliary] .wf-role-panel[data-active=true] { display:grid; }
.wf-roles.is-pinned[data-auxiliary] .wf-full-record { visibility:hidden; }
.wf-roles.is-pinned .wf-full-record { position:absolute; top:115%; left:0; width:100%; min-height:100%; display:grid; grid-template-columns:1fr 1.3fr; gap:18px 5vw; align-content:center; padding:28px; border:0; }
.wf-roles.is-pinned .wf-full-record .wf-media { grid-column:2; grid-row:1/5; width:100%; max-width:none; margin:0; }
.wf-roles.is-pinned .wf-full-record .wf-events { grid-column:1/-1; }
.wf-roles.is-pinned .wf-actor { display:block; position:absolute; z-index:3; left:0; top:0; width:calc(var(--actor-w,260)*1px); min-height:calc(var(--actor-h,120)*1px); transform:translate(calc(var(--actor-x,0)*1px),calc(var(--actor-y,0)*1px)); background:#eef1ee; border:1px solid #9bb6c4; padding:16px; }
.wf-instruction-actor { opacity:var(--instruction-flight,0); font-size:18px; }
.wf-instruction-actor>span { display:block; font-size:12px; color:#49606c; margin-bottom:10px; }
.wf-evidence-actor { opacity:var(--evidence-flight,0); }
.wf-roles.is-pinned .wf-evidence-actor img { height:calc(var(--actor-h,140)*1px); object-fit:cover; }
.wf-roles.is-pinned .wf-result { grid-template-columns:1fr 2fr; padding-top:10px; }
.wf-roles.is-pinned .wf-result-owner { display:none; }
.wf-roles.is-pinned .wf-foot { padding-top:10px; font-size:12px; }
.wf-roles[data-debug] [data-anchor] { outline:2px solid #7dabbf; outline-offset:4px; }
.wf-roles[data-debug] .wf-world:before { content:''; position:absolute; inset:50% -65% -65% 50%; border-top:1px dashed #7dabbf; border-right:1px dashed #7dabbf; pointer-events:none; }
.wf-lab-controls { z-index:50; position:sticky; top:var(--scene-header,96px); max-height:36svh; overflow:auto; border-bottom:1px solid #859aa5; }
.motion-capture *, .motion-capture *::before, .motion-capture *::after { animation-play-state:paused!important; transition:none!important; }
@media(max-width:1099px),(max-height:759px) {
 .wf-entry .wf-content { display:flex; }
 .wf-entry .wf-entry-signal { margin-top:28px; }
 .wf-entry-signal .wf-media img { aspect-ratio:16/9; max-height:none; }
 .wf-role-panel { margin-block:20px; }
}
@media(max-width:700px) {
 .wf-role-panel[data-role-panel=client],.wf-role-panel[data-role-panel=authority] { padding:24px 16px; grid-template-columns:1fr; }
 .wf-closing-record { grid-template-columns:1fr; }.wf-closing-record>p:last-child{grid-column:1;}
 .wf-roles .wf-role-tabs button:nth-child(4){margin-inline-start:0;}
 .wf-role-toolbar{display:none;}
}
@media(prefers-reduced-motion:reduce) {
 .wf-world { transform:none!important; }.wf-actor{display:none!important;}
 .wf-interactive .wf-role-panel{display:grid;visibility:visible;}
}
.wf-scene-bridge{position:fixed;z-index:20;pointer-events:none;left:0;top:0;width:calc(var(--bridge-w)*1px);height:calc(var(--bridge-h)*1px);transform:translate(calc(var(--bridge-x)*1px),calc(var(--bridge-y)*1px));overflow:clip}.wf-scene-bridge img{width:100%;height:100%;object-fit:cover}
.wf-role-environment{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.075;pointer-events:none;z-index:0}.wf-role-panel>div,.wf-role-panel>aside{position:relative;z-index:1}.contact-intent{padding:12px 16px;border-left:2px solid var(--korppi-ice);background:#e8eded;font-size:16px}.platform-capture>p,.platform-capture>blockquote,.platform-capture>a{display:block;margin-block:20px;line-height:1.5}.platform-capture .wf-media img{max-height:440px;object-fit:cover}
[data-wf-transferred]{opacity:0!important}

/* One upward reveal for every destination. Entrance context selects duration only. */
html { scrollbar-gutter:stable; }
@media(prefers-reduced-motion:no-preference) { @view-transition { navigation:auto; } }
::view-transition { pointer-events:none; background:var(--korppi-graphite,#0d1014); }
::view-transition-group(*) { animation-duration:var(--route-duration,640ms); animation-timing-function:cubic-bezier(.22,.7,.18,1); }
::view-transition-image-pair(*) { isolation:isolate; }
::view-transition-old(*),::view-transition-new(*) { mix-blend-mode:normal; object-fit:none; object-position:left top; }
/* The trailing reveal is slightly behind the departing cut: the exposed backing
   forms a short dark band, never a separate full-screen loading scene. */
[data-native-route]::view-transition-old(root) { animation:korppi-cut-away var(--route-duration) cubic-bezier(.76,0,.24,1) both; }
[data-native-route]::view-transition-new(root) { animation:korppi-cut-reveal var(--route-duration) cubic-bezier(.76,0,.24,1) both; }
::view-transition-group(korppi-route-chrome) { z-index:20; animation:none; }
::view-transition-old(korppi-route-chrome) { display:none; }
::view-transition-new(korppi-route-chrome) { animation:none; }
::view-transition-new(korppi-route-title) { animation:korppi-title-arrive var(--route-duration) cubic-bezier(.22,.7,.18,1) both; }
::view-transition-new(korppi-route-copy) { animation:korppi-copy-arrive var(--route-duration) both; }
::view-transition-new(korppi-route-actions) { animation:korppi-actions-arrive var(--route-duration) both; }
/* A real photograph can change crop. UI text is never stretched with its box. */
::view-transition-group(korppi-route-photo),::view-transition-group(korppi-route-frame),::view-transition-group(korppi-route-record-id) { animation-duration:calc(var(--route-duration)*.78); animation-delay:calc(var(--route-duration)*.08); z-index:3; }
::view-transition-image-pair(korppi-route-photo) { overflow:clip; }
::view-transition-old(korppi-route-photo),::view-transition-new(korppi-route-photo) { width:100%; height:100%; object-fit:cover; animation-duration:calc(var(--route-duration)*.55); }
::view-transition-old(korppi-route-frame),::view-transition-new(korppi-route-frame) { width:100%; height:100%; object-fit:fill; }
::view-transition-old(korppi-route-record-id),::view-transition-new(korppi-route-record-id) { object-fit:none; }
@keyframes korppi-cut-away { 0%,8% { clip-path:inset(0); } 61%,100% { clip-path:inset(0 0 100%); } }
@keyframes korppi-cut-reveal { 0%,11% { clip-path:inset(100% 0 0); } 64%,100% { clip-path:inset(0); } }
@keyframes korppi-title-arrive { 0%,28% { opacity:0; clip-path:inset(100% 0 0); transform:translateY(14px); } 80%,100% { opacity:1; clip-path:inset(0); transform:none; } }
@keyframes korppi-copy-arrive { 0%,58% { opacity:0; transform:translateY(10px); } 95%,100% { opacity:1; transform:none; } }
@keyframes korppi-actions-arrive { 0%,66% { opacity:0; transform:translateY(8px); } 100% { opacity:1; transform:none; } }
@keyframes korppi-identity-arrive { 0%,20% { opacity:0; clip-path:inset(0 0 40%); transform:translateY(18px); } 100% { opacity:1; clip-path:inset(0); transform:none; } }
.signal-direct a { position:relative; }
.signal-direct a::after { content:""; position:absolute; inset:auto 0 3px; height:2px; background:var(--korppi-ice); transform:scaleX(0); transform-origin:left; transition:transform 100ms; }
.signal-direct a:is([aria-current=page],[data-route-selected],:focus-visible)::after { transform:scaleX(1); }
.signal-direct:has([data-route-selected]) a:not([data-route-selected]) { opacity:.55; }
[data-route-selected]:is(.v2-journey-link,.direction-pill,.people-home-card,.v2-identity) { outline:1px solid var(--korppi-ice); outline-offset:6px; }
[data-route-pending] .signal-map-link:not([data-preview-active=true]),[data-route-pending] .signal-map-utilities { opacity:.22; transition:opacity 100ms; }
[data-route-pending] .signal-map-link[data-preview-active=true] .signal-map-index { background:var(--korppi-ice); }
[data-route-selected][data-nav-transition=home-to-workflow] { text-decoration:underline; text-decoration-color:var(--korppi-ice); text-underline-offset:8px; }
@media(prefers-reduced-motion:reduce) { ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none!important; } }
/* Existing menu opening and page layouts stay intact. */
.signal-map-body { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
.signal-menu-open main { transform:translateY(calc(var(--nav-menu,1)*16px)); }
.navigation-lab-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:40px; }
.navigation-lab-grid a { min-height:220px; padding:28px; border:1px solid #7a8f9b66; display:flex; flex-direction:column; justify-content:space-between; font-size:clamp(26px,3vw,46px); }
.navigation-lab-grid a small { font-size:14px; }
.navigation-lab-controls { display:flex; flex-wrap:wrap; gap:24px; align-items:center; margin-block:32px; }
.navigation-lab-group { margin-top:48px; }.navigation-lab-group h2{font-size:clamp(24px,2.5vw,40px);}.navigation-lab-group>p{font-size:16px;line-height:1.5;max-width:65ch;margin-top:16px;}
@media(max-width:700px){.navigation-lab-grid{grid-template-columns:1fr;} .signal-map-body{display:block;}}


.people-intro { background:#f5f5f3; color:#172024; }
.people-intro .direction-content { display:flex; min-height:100svh; flex-direction:column; justify-content:center; gap:40px; }
.people-intro h1 { font-size:clamp(64px,9vw,160px); max-width:12ch; }
.people-index { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; width:100%; margin-top:36px; }
.people-index a { display:flex; flex-direction:column; gap:8px; border-top:1px solid #8798a666; padding-top:20px; font-size:22px; }
.people-index span { font-size:14px; }
.people-chapter { min-block-size:100svh; display:grid; grid-template-columns:1.1fr 1fr; gap:6vw; align-items:center; padding:calc(var(--scene-header,96px) + 32px) var(--gutter) 64px; scroll-margin-top:0; color:#172024; background:#f5f5f3; }
.people-photo { grid-column:2; grid-row:1; align-self:stretch; min-height:68svh; position:relative; }
.people-copy { grid-column:1; grid-row:1; min-width:0; }
.people-copy .tv-identity h3,.people-copy .tv-identity h2 { font-size:clamp(52px,6vw,104px); letter-spacing:-.055em; line-height:1.04; overflow-wrap:break-word; font-weight:400; }
.people-copy .tv-identity p { font-size:clamp(20px,2vw,30px); margin-top:16px; }
.people-copy .direction-kicker { margin-bottom:28px; }
.people-story { max-width:52ch; margin-block:32px; line-height:1.55; }
.people-story dl { display:grid; gap:20px; }.people-story dt { font-size:12px; color:#637882; margin-bottom:8px; }.people-story dd{margin:0;}
.people-story .tv-story-copy { margin-block:24px; }
.people-chapter .tv-media { position:sticky; top:calc(var(--scene-header,96px) + 24px); height:70svh; min-height:450px; background:#dde0dc; }
.people-chapter .tv-media img { width:100%; height:100%; object-fit:cover; object-position:var(--portrait-focus,50% 40%); }
.tv-photo-pending { width:100%; height:100%; min-height:inherit; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:24px; text-align:center; background:linear-gradient(135deg,#e5e7e2,#cbd0cb); color:#485a62; }
.tv-photo-pending span { font-size:20px; }.tv-photo-pending small { font-size:12px; max-width:30ch; }
.people-operations { background:#dce1df; }.people-operations .people-photo{grid-column:1;}.people-operations .people-copy{grid-column:2;}
.people-engineering { background:#101719; color:#f4f5f2; }.people-engineering .tv-photo-pending{background:linear-gradient(135deg,#293236,#182023);color:#bac7ce;}
.people-engineering .people-story dt { color:#a1b5be; }
.people-judgement { grid-template-columns:1.3fr 1fr; }.people-judgement .people-photo{grid-column:1;}.people-judgement .people-copy{grid-column:2;}
.people-home-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-block:48px; }
.people-home-card { min-width:0; position:relative; }
.people-home-photo { height:clamp(320px,35vw,600px); }
.people-home-photo .tv-media{height:100%;}.people-home-photo img{width:100%;height:100%;object-fit:cover;}
.people-home-card .tv-identity { margin-top:24px; }
.people-home-card .tv-identity :is(h2,h3) { font-size:clamp(26px,2.6vw,46px); line-height:1.1; }
.people-home-card .tv-identity p { margin-top:10px; font-size:16px; }
.people-home-card>span { position:absolute; right:0; bottom:0; }
.people-home-contacts { margin-top:20px; font-size:clamp(13px,1.1vw,17px); line-height:1.6; }
.people-home-contacts a { display:inline-block; max-width:100%; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:5px; }
.people-home-contacts a:hover { color:var(--korppi-ice,#b7cbd5); }
.people-home-contacts a:focus-visible { outline:2px solid var(--korppi-ice,#b7cbd5); outline-offset:5px; }
.people-home .direction-content { padding-block:calc(var(--scene-header,96px) + 32px) 64px; }
.people-home h2 { font-size:clamp(52px,6vw,98px); max-width:16ch; }
.people-connections { display:flex; flex-wrap:wrap; gap:20px 36px; padding-block:40px; border-block:1px solid #82939c55; font-size:clamp(24px,3vw,48px); }
.tv-menu-people { display:grid; grid-template-columns:1fr 1fr; align-content:center; gap:40px 24px; }
.tv-menu-people div { display:flex; flex-direction:column; gap:12px; padding-top:20px; border-top:1px solid #8e9a9f66; }
.tv-menu-people strong { font-weight:400; font-size:clamp(24px,3vw,52px); }.tv-menu-people span{font-size:15px;}
@media(max-width:1099px){
 .people-home-grid,.people-index{grid-template-columns:1fr 1fr;}
 .people-chapter{gap:32px;grid-template-columns:1fr 1fr;}.people-copy .tv-identity :is(h2,h3){font-size:50px;}
}
@media(max-width:700px){
 .people-chapter{display:flex;flex-direction:column;padding-top:116px;gap:32px;align-items:stretch;}
 .people-chapter .tv-media{position:relative;top:auto;height:65svh;min-height:340px;}
 .people-photo{min-height:0;}.people-copy{width:100%;}
 .people-home-grid{gap:36px 16px;}.people-home-photo{height:300px;}.people-home-card .tv-identity :is(h2,h3){font-size:28px;}
 .people-home-photo .tv-photo-pending{padding:12px;}.people-home-photo .tv-photo-pending span{font-size:15px;}
 .people-intro h1{font-size:64px;}.people-index a{font-size:20px;}
}
@media(prefers-reduced-motion:reduce){.people-chapter .tv-media{position:static;}}

/* Journey v2: a record opens into structure, then into responsibility and people. */
:root { --journey-ink:var(--korppi-graphite); --journey-paper:var(--korppi-mist); --journey-line:var(--korppi-gray-300); --journey-focus:var(--korppi-ice); --journey-ease:cubic-bezier(.22,.7,.18,1); }
[data-journey-v2] :is(.v2-product-hero,.v2-capability,.v2-product-out,.v2-work-entry,.v2-team-hero,.v2-team-closing,.v2-human-bridge,.v2-connect) { position:relative; min-block-size:100svh; padding:calc(var(--scene-header,96px) + 48px) var(--gutter,4vw) 64px; color:var(--journey-ink); background:var(--journey-paper); }
[data-journey-v2] :is(.v2-product-hero,.v2-capability,.v2-product-out,.v2-work-entry,.v2-connect) { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); gap:5vw; align-items:center; }
.v2-hero-copy,.v2-capability-copy { min-width:0; }
[data-journey-v2] :is(.v2-hero-copy,.v2-capability-copy) :is(h1,h2) { font-size:clamp(48px,5.6vw,108px); font-weight:400; line-height:1.02; letter-spacing:-.055em; max-width:12ch; margin-block:24px 32px; }
[data-journey-v2] :is(.v2-hero-copy,.v2-capability-copy)>p:not(.direction-kicker) { max-width:42ch; font-size:clamp(17px,1.35vw,23px); line-height:1.55; }
.v2-journey-link { display:inline-flex; align-items:center; gap:20px; padding:20px 0 12px; border-bottom:1px solid currentColor; font-size:clamp(18px,1.6vw,27px); line-height:1.3; text-decoration:none; margin-top:24px; }
.v2-journey-link:hover,.v2-journey-link:focus-visible { border-color:var(--journey-focus); }
.v2-secondary { display:block; width:fit-content; margin-top:24px; font-size:14px; }
.v2-capability-nav,.v2-act-nav { display:flex; gap:24px; flex-wrap:wrap; }
.v2-capability-nav { grid-column:1/-1; align-self:end; border-top:1px solid var(--journey-line); padding-top:24px; justify-content:space-between; font-size:18px; }
.v2-act-nav { margin-top:40px; font-size:14px; }
.v2-capability-copy>a { display:inline-block; margin-top:36px; font-size:14px; border-bottom:1px solid var(--journey-line); padding-bottom:8px; }
.v2-anatomy { position:relative; min-width:0; padding:40px 32px; }
.v2-record { --inspect-progress:0; position:relative; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:0; background:#fff; color:var(--journey-ink); border:1px solid var(--journey-line); padding:24px; isolation:isolate; width:100%; }
.v2-record>header { grid-column:1/-1; display:flex; justify-content:space-between; gap:12px; font-size:11px; padding-bottom:20px; letter-spacing:.04em; }
.v2-record-photo { position:relative; min-width:0; grid-row:2/5; padding-right:24px; }
.v2-record-photo img { width:100%; height:100%; min-height:240px; object-fit:cover; display:block; }
.v2-record-photo small { position:absolute; bottom:10px; left:10px; right:34px; font-size:10px; color:#fff; text-shadow:0 1px 6px #000; }
.v2-record-part { position:relative; min-width:0; padding:16px; background:#fff; border-top:1px solid var(--journey-line); }
.v2-record-part small { font-size:10px; letter-spacing:.09em; text-transform:uppercase; display:block; margin-bottom:12px; color:#53616a; }
.v2-record-part p,.v2-record-part span { font-size:13px; line-height:1.5; margin:4px 0; }
.v2-record-part h3 { font-size:clamp(19px,1.5vw,28px); line-height:1.12; font-weight:400; letter-spacing:-.03em; margin:0 0 12px; }
.v2-record-part.v2-observation p { font-size:12px; }
.v2-status,.v2-trace { margin-top:24px; }
.v2-signal-frame { position:absolute; inset:0; pointer-events:none; border:1px solid currentColor; opacity:.32; z-index:3; }
.v2-signal-frame::before,.v2-signal-frame::after { content:""; position:absolute; width:14px; height:14px; border-color:var(--journey-focus); border-style:solid; }
.v2-signal-frame::before { top:-2px; left:-2px; border-width:2px 0 0 2px; }
.v2-signal-frame::after { bottom:-2px; right:-2px; border-width:0 2px 2px 0; }
.direction-record>.v2-signal-frame { color:var(--journey-ink); }
.v2-capability { --inspect-progress:1; }
.v2-capability:nth-child(odd) { background:#e5e7e6; }
.v2-capability .v2-record { --inspect-progress:inherit; background:transparent; border-color:transparent; }
.v2-capability .v2-record>.v2-signal-frame { opacity:.1; }
.v2-capability .v2-record-part { opacity:.35; transform:translateY(calc(var(--inspect-progress,1)*12px)); }
.v2-capability .v2-record-photo { opacity:.4; }
.v2-capability[data-focus=photo] .v2-record-photo { opacity:1; transform:translate(calc(var(--inspect-progress,1)*-24px),calc(var(--inspect-progress,1)*-20px)); }
.v2-capability[data-focus=observation] .v2-observation { opacity:1; transform:translate(calc(var(--inspect-progress,1)*-32px),calc(var(--inspect-progress,1)*-24px)); }
.v2-capability[data-focus=observation] .v2-context { opacity:1; transform:translateX(calc(var(--inspect-progress,1)*24px)); }
.v2-capability[data-focus=owner] :is(.v2-owner,.v2-status) { opacity:1; transform:translate(calc(var(--inspect-progress,1)*-24px),calc(var(--inspect-progress,1)*24px)); }
.v2-capability[data-focus=trace] .v2-trace { opacity:1; transform:translate(calc(var(--inspect-progress,1)*-24px),calc(var(--inspect-progress,1)*24px)); }
.v2-capability [data-shared-object] { transition:opacity 180ms; }
.v2-capability [data-shared-object]:hover { opacity:1; }
.v2-product-out .v2-record-part { transform:translateY(calc((1 - var(--recompose-progress,1))*24px)); }
.v2-product-out .v2-record-photo { transform:translateX(calc((1 - var(--recompose-progress,1))*-24px)); }
[data-journey-v2] .v2-work-entry { background:#e1e4e2; }
.v2-supervisor-arrival { position:relative; border-left:1px solid var(--journey-line); padding:32px; min-width:0; }
.v2-supervisor-arrival>.direction-kicker { margin:0 0 24px; }
.wf-entry h2 { font-size:clamp(54px,6.2vw,108px); grid-column:1; }
[data-journey-v2] .v2-human-bridge { background:var(--korppi-graphite); color:var(--journey-paper); display:grid; grid-template-columns:1fr 1.3fr; gap:40px 8vw; align-content:center; }
.v2-human-record { border:1px solid #ffffff36; padding:24px; max-width:380px; align-self:start; font-size:14px; transform:translateY(calc(var(--people-progress,1)*-12px)); }
.v2-human-record>span { font-size:11px; letter-spacing:.05em; }
.v2-human-record p { margin-top:20px; line-height:1.5; }
.v2-human-roles { grid-column:1; display:flex; flex-wrap:wrap; gap:16px; font-size:13px; opacity:calc(1 - var(--people-progress,1)*.45); }
.v2-human-roles span { border-top:1px solid #ffffff45; padding-top:14px; }
.v2-human-copy { grid-column:2; grid-row:1/3; }
.v2-human-copy h2 { font-size:clamp(44px,4.8vw,86px); font-weight:400; line-height:1.06; letter-spacing:-.05em; max-width:15ch; margin:24px 0; }
.v2-human-copy>p:not(.direction-kicker) { max-width:43ch; font-size:18px; line-height:1.55; }
.v2-human-bridge>.v2-signal-frame { inset:calc(var(--scene-header,96px) + 24px) var(--gutter,4vw) 32px; opacity:.12; }
.v2-identity-grid { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; width:100%; }
.v2-human-bridge>.v2-identity-grid { grid-column:1/-1; margin-top:48px; transform:translateY(calc((1 - var(--people-progress,1))*32px)); }
.v2-identity { min-width:0; display:flex; flex-direction:column; padding:24px 0; border-top:1px solid currentColor; text-decoration:none; position:relative; }
.v2-identity>.v2-person-index { font-size:11px; opacity:.55; margin:0 0 32px; }
.v2-identity strong { display:block; font-size:clamp(30px,3.6vw,68px); font-weight:400; letter-spacing:-.05em; line-height:1.08; overflow-wrap:break-word; }
.v2-identity>span { display:block; margin-top:14px; font-size:16px; line-height:1.4; }
.v2-identity>i { display:block; background:var(--journey-focus); width:24px; height:2px; margin-top:32px; transform-origin:left; transition:transform 240ms; }
.v2-identity:hover>i,.v2-identity:focus-visible>i { transform:scaleX(2); }
[data-journey-v2] .v2-team-hero { display:flex; flex-direction:column; justify-content:space-between; gap:48px; }
.v2-team-hero h1 { font-size:clamp(60px,8.2vw,154px); line-height:1.02; font-weight:400; letter-spacing:-.06em; max-width:12ch; }
.v2-team-intro { align-self:flex-end; max-width:42ch; line-height:1.6; font-size:18px; }
.v2-team-hero>.v2-signal-frame { inset:auto var(--gutter,4vw) 48px; height:1px; border-width:1px 0 0; opacity:.2; }
[data-journey-v2] .v2-team-closing { background:var(--korppi-graphite); color:var(--journey-paper); display:flex; flex-direction:column; justify-content:center; gap:28px; }
.v2-team-closing h2 { font-size:clamp(54px,7vw,128px); font-weight:400; line-height:1.03; letter-spacing:-.055em; max-width:13ch; }
.v2-team-closing>p:not(.direction-kicker) { max-width:48ch; font-size:20px; line-height:1.6; }
.v2-conversation-frame { position:relative; width:65%; align-self:flex-end; margin-top:48px; padding:36px; display:flex; flex-direction:column; }
.v2-conversation-frame>span { font-size:12px; opacity:.6; }
.v2-conversation-frame>.v2-signal-frame { transform:translateY(calc((1 - var(--conversation-progress,1))*18px)); }
.v2-conversation-frame .v2-journey-link { width:fit-content; }
.v2-connect-form { position:relative; padding:32px; min-width:0; background:white; }
.v2-connect-form .demo-form { width:100%; max-width:none; padding:20px 0 0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.v2-connect-form .demo-form :is(input,select) { border-radius:0; }
.v2-connect .contact-emails { display:flex; flex-direction:column; gap:12px; margin-top:40px; font-size:14px; overflow-wrap:anywhere; }
.people-chapter[data-journey-anchor] .tv-media.is-pending { background:transparent; min-height:0; border-block:1px solid currentColor; }
.people-chapter .v2-person-pending { display:flex; flex-direction:column; justify-content:space-between; gap:32px; height:100%; padding:40px 0; }
.v2-person-pending strong { font-size:clamp(80px,15vw,260px); line-height:.8; letter-spacing:-.08em; font-weight:400; opacity:.18; }
.v2-person-pending p { font-size:13px; max-width:30ch; line-height:1.5; opacity:.65; }
/* One persistent preview stage. Its frame/photo travel; the containing panel never scales. */
.signal-portal.v2-portal { background:var(--korppi-graphite); color:var(--journey-paper); border-color:#ffffff28; }
.v2-portal .signal-portal-bottom { border-color:#ffffff28; }
.v2-preview-stage { position:relative; min-height:360px; isolation:isolate; overflow:clip; }
.v2-preview-frame { position:absolute; inset:14% 9% 15%; border:1px solid #ffffff68; z-index:4; transition:inset 360ms var(--journey-ease),opacity 260ms; pointer-events:none; }
.v2-preview-frame::before { content:""; position:absolute; left:-2px; top:-2px; width:18px; height:18px; border:2px solid var(--journey-focus); border-width:2px 0 0 2px; }
.v2-preview-field { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.6; transition:opacity 360ms; }
.v2-preview-raven { position:absolute; width:34%; height:48%; object-fit:contain; right:4%; top:5%; opacity:.12; filter:invert(1); }
.v2-preview-record { position:absolute; left:18%; top:15%; width:64%; height:67%; z-index:2; transition:transform 360ms var(--journey-ease),opacity 220ms; }
.v2-preview-record>img { position:absolute; width:55%; height:57%; left:0; top:15%; object-fit:cover; transition:transform 360ms var(--journey-ease); }
.v2-preview-record>span { position:absolute; font-size:11px; background:var(--journey-paper); color:var(--journey-ink); padding:12px; width:44%; right:0; transition:transform 360ms var(--journey-ease); }
.v2-preview-record>small { font-size:10px; }
.v2-preview-record [data-shared-object=observation] { top:15%; }
.v2-preview-record [data-shared-object=context] { top:39%; }
.v2-preview-record [data-shared-object=owner] { top:65%; }
.v2-preview-record [data-shared-object=status] { bottom:0; left:0; width:55%; }
.v2-preview-record [data-shared-object=trace] { bottom:0; }
.v2-preview-scene { position:absolute; inset:0; padding:28px; z-index:3; }
.v2-preview-scene[hidden] { display:none; }
.v2-section-preview-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.v2-portal:is([data-preview=field],[data-preview=application],[data-preview=resolve]) :is(.v2-preview-record,.v2-preview-frame) { opacity:0; pointer-events:none; }

.v2-preview-scene[data-portal-art=home] { display:flex; flex-direction:column; justify-content:flex-end; font-size:12px; }
.v2-preview-scene[data-portal-art=home][hidden] { display:none; }
.v2-preview-roles { position:absolute; inset:8%; display:grid; grid-template-columns:1fr 1fr; gap:12px; align-content:space-between; font-size:12px; }
.v2-preview-roles>span { border-top:1px solid #ffffff50; padding-top:12px; }
.v2-preview-roles>span:last-child { grid-column:1/-1; text-align:center; }
.v2-preview-people { display:grid; grid-template-columns:1fr 1fr; gap:20px; height:100%; align-content:center; }
.v2-menu-identity { padding:16px 0; border-top:1px solid #ffffff44; transform:translateY(calc((1 - var(--preview-progress,1))*14px)); }
.v2-menu-identity strong { display:block; font-size:clamp(21px,2.4vw,44px); font-weight:400; line-height:1.07; letter-spacing:-.04em; }
.v2-menu-identity span { display:block; font-size:12px; margin-top:10px; }
.v2-preview-connect { position:absolute; inset:22% 13%; display:flex; flex-direction:column; justify-content:space-between; gap:20px; font-size:14px; }
.v2-preview-connect span { padding-bottom:15px; border-bottom:1px solid #ffffff35; }
.v2-preview-connect i { width:2px; height:22px; background:var(--journey-focus); transform:scaleY(var(--preview-progress,1)); transform-origin:bottom; }
.v2-portal:not([data-preview=home]) :is(.v2-preview-field,.v2-preview-raven) { opacity:0; }
.v2-portal[data-preview=home] .v2-preview-record,.v2-portal[data-preview=team] .v2-preview-record,.v2-portal[data-preview=connect] .v2-preview-record { opacity:0; transform:translateY(24px); pointer-events:none; }
.v2-portal[data-preview=home] .v2-preview-frame { inset:calc(14% + var(--preview-progress,1)*21%) calc(9% + var(--preview-progress,1)*8%) 19% calc(9% + var(--preview-progress,1)*39%); }
.v2-portal[data-preview=platform] .v2-preview-record>img { transform:translate(calc(var(--preview-progress,1)*-10px),0); }
.v2-portal[data-preview=platform] .v2-preview-record>span { transform:translateX(calc(var(--preview-progress,1)*10px)); }
.v2-portal[data-preview=platform] .v2-preview-frame { inset:14% 8% 15%; }
.v2-portal[data-preview=solutions] .v2-preview-record { left:32%; top:25%; width:36%; height:40%; transform:translate(calc(var(--preview-route-x,0)*1px),calc(var(--preview-route-y,0)*1px)); }
.v2-portal[data-preview=solutions] .v2-preview-record>span { opacity:0; }
.v2-portal[data-preview=solutions] .v2-preview-record>img { width:100%; height:100%; top:0; }
.v2-portal[data-preview=solutions] .v2-preview-record>small { position:absolute; z-index:1; bottom:8px; left:8px; }
.v2-portal[data-preview=solutions] .v2-preview-frame { inset:8%; }
.v2-portal[data-preview=team] .v2-preview-frame { inset:12% 4%; opacity:.45; }
.v2-portal[data-preview=connect] .v2-preview-frame { inset:16% 9%; }
@media(max-width:1000px) {
 [data-journey-v2] :is(.v2-product-hero,.v2-capability,.v2-product-out,.v2-work-entry,.v2-connect) { grid-template-columns:1fr; gap:36px; }
 .v2-anatomy { padding:24px; }.v2-supervisor-arrival{padding:24px 0;border-left:0;}
 .v2-identity-grid { grid-template-columns:1fr 1fr; }.v2-conversation-frame{width:100%;}
}
@media(max-width:600px) {
 [data-journey-v2] :is(.v2-product-hero,.v2-capability,.v2-product-out,.v2-work-entry,.v2-team-hero,.v2-team-closing,.v2-human-bridge,.v2-connect){padding-top:calc(var(--scene-header,80px) + 32px);}
 .v2-record{padding:14px;grid-template-columns:1fr;}.v2-record-photo{grid-row:auto;padding:0;}.v2-record-photo img{height:260px;min-height:0;}.v2-record-photo small{right:10px;}
 .v2-record-part{padding:16px 0;}.v2-status,.v2-trace{margin-top:0;}.v2-record-part p{font-size:14px;}
 .v2-anatomy{padding:0;}.v2-capability .v2-record [data-shared-object],.v2-capability .v2-record-photo{transform:none;opacity:1;}
 [data-journey-v2] .v2-human-bridge{display:flex;flex-direction:column;align-items:stretch;}.v2-human-record{max-width:none;}.v2-human-bridge>.v2-identity-grid{margin-top:16px;}
 .v2-identity strong{font-size:30px;}.v2-connect-form{padding:20px;}.v2-preview-stage{min-height:280px;}
}
@media(prefers-reduced-motion:reduce) {
 .v2-preview-stage *,.v2-capability *,.v2-product-out *,.v2-human-bridge * { transition:none!important; }
 .v2-capability .v2-record [data-shared-object],.v2-capability .v2-record-photo,.v2-product-out .v2-record-part,.v2-human-record,.v2-human-bridge>.v2-identity-grid { transform:none; }
}

.v2-portal[data-preview=field] .v2-preview-field { opacity:.75; }

/* The existing home team, with one shared portrait stage and no pinned track. */
.people-home[data-team-stage] { --team-exit:0; --team-spot:.5; background:#101214; color:#f5f5f3; isolation:isolate; overflow:clip; }
.people-home[data-team-stage]::before { content:""; position:absolute; inset:15% 0 8%; z-index:-1; background:radial-gradient(ellipse at 50% 50%,#ffffff09,transparent 66%); transform:translateX(calc((var(--team-spot) - .5) * 30%)); opacity:calc(1 - var(--team-exit)); transition:transform var(--motion-recompose) var(--motion-ease); pointer-events:none; }
.people-home[data-team-stage] > .direction-content { min-block-size:100svh; padding-block:clamp(28px,4svh,56px) 40px; display:flex; flex-direction:column; justify-content:center; gap:clamp(24px,3svh,42px); }
.people-stage-heading { display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,1fr); gap:24px; align-items:start; }
.people-stage-heading .direction-kicker { padding-block-start:8px; max-inline-size:24ch; }
.people-home[data-team-stage] .people-stage-heading h2 { max-inline-size:820px; font-size:clamp(42px,3.9vw,78px); line-height:1.01; letter-spacing:-.055em; }
.people-stage-hint { max-inline-size:48ch; margin-block-start:14px!important; font-size:clamp(12px,1vw,17px); color:#a3a9ad; line-height:1.5; }
.people-home[data-team-stage] .people-home-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0; align-items:start; transition:grid-template-columns var(--motion-reveal) var(--motion-ease); }
.people-home[data-team-stage] .people-home-card { display:flex; flex-direction:column; min-inline-size:0; }
.people-home[data-team-stage] .people-home-photo { position:relative; height:auto; block-size:clamp(340px,46svh,700px); overflow:hidden; background:linear-gradient(135deg,#242729,#181b1d); border:1px solid #ffffff0f; isolation:isolate; }
.people-home[data-team-stage] .people-home-photo > img { display:block; inline-size:100%; block-size:100%; object-fit:cover; object-position:var(--portrait-focus); filter:grayscale(1) brightness(.94); transition:filter var(--motion-reveal) var(--motion-ease); }
.people-home-watermark { position:absolute; inset:auto 8% 8%; font-size:clamp(80px,12vw,260px); font-weight:400; line-height:.8; letter-spacing:-.085em; color:#c5c9cc; opacity:.07; pointer-events:none; z-index:1; white-space:nowrap; }
.people-home-photo:has(>img) .people-home-watermark { opacity:.035; }
.people-home-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:20px; gap:10px; text-align:center; color:#9a9fa3; }
.people-home-placeholder > span { font-size:13px; }
.people-home-placeholder > small { font-size:11px; max-inline-size:24ch; line-height:1.5; color:#797f84; }
.people-home-select { position:absolute; inset:0; inline-size:100%; block-size:100%; border:0; background:transparent; padding:0; z-index:3; border-radius:0; cursor:pointer; }
.people-home-select:focus-visible { outline:2px solid var(--korppi-ice); outline-offset:-5px; }
.people-focus-marker { position:absolute; top:18px; left:18px; inline-size:20px; block-size:2px; background:var(--korppi-ice); z-index:2; opacity:0; transform:scaleX(.3); transform-origin:left; transition:transform var(--motion-duration-fast),opacity var(--motion-duration-fast); }
.people-home-identity { margin-top:16px; padding-inline:4px; }
.people-home[data-team-stage] .people-home-identity h3 { font-size:clamp(27px,2.45vw,40px); line-height:1.08; letter-spacing:-.045em; font-weight:400; overflow-wrap:normal; }
.people-home-identity p { font-size:clamp(12px,1vw,16px); margin-top:8px; line-height:1.4; color:#abb0b4; }
.people-home[data-team-stage] .people-home-contacts { padding-inline:4px; margin-top:12px; font-size:clamp(11px,.82vw,14px); line-height:1.5; color:#9a9fa3; }
.people-home[data-team-stage] .people-home-contacts a { text-decoration:none; text-underline-offset:4px; }
.people-home[data-team-stage] .people-home-contacts a:hover { text-decoration:underline; }
.people-home-detail { max-inline-size:34ch; padding-inline:4px; margin-top:12px!important; font-size:14px; line-height:1.5; color:#c7cbce; }
.people-home-card[data-team-active] .people-home-photo { border-color:#a8d7f260; }
.people-home-card[data-team-active] .people-focus-marker { opacity:1; transform:scaleX(1); }
.people-home-card[data-team-active] .people-home-contacts { color:#e4e6e7!important; }
.people-home-card[data-team-active] .people-home-identity p { color:#e0e3e5; }
.people-home-card[data-team-active] .people-home-photo > img { filter:grayscale(1) brightness(1.02) contrast(1.03); }
.people-stage-separator { position:absolute; bottom:0; left:var(--gutter); right:var(--gutter); block-size:1px; background:#a8d7f236; }
@media(min-width:1100px) and (hover:hover) and (pointer:fine) {
  .people-home[data-team-ready]:not([data-team-reduced]) .people-home-grid { grid-template-columns:minmax(0,var(--team-col-0,1fr)) minmax(0,var(--team-col-1,1fr)) minmax(0,var(--team-col-2,1fr)) minmax(0,var(--team-col-3,1fr)); }
  .people-home[data-active-member]:not([data-team-reduced]) .people-home-card:not([data-team-active]) .people-home-photo > img { filter:grayscale(1) brightness(.86) contrast(.92); }
  .people-home[data-team-ready]:not([data-team-reduced]) .people-home-grid { transform:translateY(calc(-16px * var(--team-exit))); }
  .people-home[data-team-ready]:not([data-team-reduced]) .people-home-photo { filter:brightness(calc(1 - .12 * var(--team-exit))); }
  .people-home[data-team-ready]:not([data-team-reduced]) .people-home-detail { clip-path:inset(0 0 100%); opacity:0; transform:translateY(8px); transition:clip-path var(--motion-duration-base) var(--motion-ease),transform var(--motion-duration-base) var(--motion-ease),opacity var(--motion-duration-base); }
  .people-home[data-team-ready]:not([data-team-reduced]) [data-team-active] .people-home-detail { clip-path:inset(0); opacity:1; transform:none; }
}
@media(prefers-reduced-motion:no-preference) {
  [data-team-ready]:not([data-team-reduced])[data-team-intro=waiting] :is(.people-stage-heading h2,.people-home-photo,.people-home-identity) { clip-path:inset(100% 0 0); }
  [data-team-ready]:not([data-team-reduced])[data-team-intro=enter] .people-stage-heading h2 { animation:team-title-reveal 480ms var(--motion-ease) both; }
  [data-team-ready]:not([data-team-reduced])[data-team-intro=enter] .people-home-photo { animation:team-portrait-reveal 520ms var(--motion-ease) calc(100ms + var(--team-order) * 65ms) both; }
  [data-team-ready]:not([data-team-reduced])[data-team-intro=enter] .people-home-identity { animation:team-identity-reveal 340ms var(--motion-ease) calc(260ms + var(--team-order) * 65ms) both; }
}
@keyframes team-title-reveal { from { clip-path:inset(100% 0 0); transform:translateY(10px); } to { clip-path:inset(0); transform:none; } }
@keyframes team-portrait-reveal { from { clip-path:inset(14% 0 0); opacity:0; transform:translateY(14px); } to { clip-path:inset(0); opacity:1; transform:none; } }
@keyframes team-identity-reveal { from { clip-path:inset(0 0 100%); opacity:0; } to { clip-path:inset(0); opacity:1; } }
@media(max-width:1099px),(hover:none),(pointer:coarse) {
  .people-home[data-team-stage] > .direction-content { gap:28px; padding-block:36px 48px; }
  .people-stage-heading { grid-template-columns:1fr; gap:16px; }
  .people-home[data-team-stage] .people-stage-heading h2 { font-size:clamp(34px,5.5vw,60px); max-inline-size:22ch; }
  .people-home[data-team-stage] .people-home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 12px; }
  .people-home[data-team-stage] .people-home-photo { block-size:clamp(200px,31svh,390px); }
  .people-home[data-team-stage] .people-home-identity h3 { font-size:clamp(24px,3.2vw,36px); }
  .people-home-card[data-team-active] .people-home-photo { outline:2px solid var(--korppi-ice); outline-offset:-3px; }
  .people-home-watermark { font-size:clamp(90px,22vw,220px); }
}
@media(max-width:600px) {
  .people-home[data-team-stage] .people-stage-heading h2 { font-size:34px; }
  .people-home[data-team-stage] .people-home-photo { block-size:clamp(170px,25svh,250px); }
  .people-home[data-team-stage] .people-home-grid { gap:26px 10px; }
  .people-home-placeholder { padding:12px; gap:8px; }
  .people-home-placeholder > span { font-size:11px; }
  .people-home-placeholder > small { font-size:10px; }
  .people-home[data-team-stage] .people-home-identity h3 { font-size:25px; }
  .people-home-identity { margin-top:12px; padding-inline:0; }
  .people-home-identity p { font-size:12px; }
  .people-home[data-team-stage] .people-home-contacts { padding-inline:0; font-size:11px; margin-top:10px; }
}
[data-team-reduced]::before { transform:none!important; transition:none!important; }
[data-team-reduced] :is(.people-home-grid,.people-home-photo,.people-home-photo>img,.people-home-detail,.people-focus-marker) { transition:none!important; transform:none!important; }
@media(prefers-reduced-motion:reduce) {
  .people-home[data-team-stage]::before,.people-home[data-team-stage] * { animation:none!important; transition:none!important; }
  .people-home[data-team-stage] .people-home-grid { transform:none!important; }
}

/* Head scale follows stage height, never the expanding card width. */
.people-home[data-team-stage] .people-home-photo:has(>img){background:var(--portrait-background,#191919)}
.people-home[data-team-stage] .people-home-photo>img{position:absolute;block-size:var(--portrait-height,100%);inline-size:auto;max-inline-size:none;max-width:none;left:50%;top:var(--portrait-top,0%);translate:-50% 0;object-fit:contain}

/* Chapter previews use the same source assets as their destinations. */
.signal-portal-home .section-portal{display:grid;grid-template-rows:auto minmax(360px,1fr) auto}
.signal-portal-home .section-portal :is(.signal-portal-top,.signal-portal-bottom){position:relative;inset:auto}
.section-preview-stage{position:relative;min-block-size:360px;block-size:auto;overflow:clip;background:#131618}
.section-preview{position:absolute;inset:0;overflow:hidden;clip-path:inset(calc((1 - var(--preview-progress,1))*100%) 0 0)}
.section-preview[hidden]{display:none}
.section-preview-image{inline-size:100%;block-size:100%;object-fit:cover;filter:grayscale(1)}
.pane-home{background:#f5f5f3;color:#101214}
.pane-home>.menu-lens-background{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;filter:grayscale(1) blur(9px);opacity:.25;transform:scale(1.06)}
.pane-home>.menu-lens-photo{position:absolute;inset:8% 8% auto auto;inline-size:64%;block-size:78%;object-fit:cover;object-position:57% 50%;border-radius:50%;border:3px solid #d5dcde;box-shadow:inset 0 0 0 2px #fff,5px 8px 0 #68737955,12px 22px 24px #151a202e;filter:grayscale(.9)}
.pane-home>span{position:absolute;bottom:7%;left:6%;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.pane-field>img{filter:grayscale(1) brightness(.7)}
.pane-field>small{position:absolute;bottom:12%;left:9%;font-size:12px}
.menu-field-marker{position:absolute;inset:20% 20% 22% 42%;border:1px solid #a8d7f27a;border-inline-end:0}
.menu-record{position:absolute;inset:12% 23%;padding:14px;background:#f5f5f3;color:#131618;display:flex;flex-direction:column;gap:10px}
.menu-record img{width:100%;height:55%;object-fit:cover}
.menu-record small,.menu-record span{font-size:11px}.menu-record strong{font-size:15px;line-height:1.2}
.menu-context{position:absolute;padding:12px;background:#dbe2e5;color:#131618;font-size:12px;right:5%;top:20%;transform:translateX(calc((1 - var(--preview-progress,1))*20px))}
.menu-context:last-child{top:auto;bottom:17%;right:auto;left:6%}
.menu-phone{position:absolute;left:7%;top:21%;width:23%;height:62%;border:3px solid #68737a;border-radius:16px;padding:13px 8px;display:flex;flex-direction:column;gap:12px;background:#eff0ee;color:#101214;z-index:2}
.menu-phone img{width:100%;height:65%;object-fit:cover}.menu-phone :is(small,span){font-size:10px}
.menu-workspace{position:absolute;right:6%;top:14%;width:51%;height:68%;padding:18px;display:grid;grid-template-columns:40% 1fr;gap:14px;background:#f5f5f3;color:#101214;border-top:10px solid #333b40}
.menu-workspace small{grid-column:1/-1;font-size:12px}.menu-workspace img{width:100%;height:110px;object-fit:cover;grid-row:2/4}.menu-workspace strong{font-size:12px}.menu-workspace span{font-size:11px;line-height:1.4}
.menu-handoff-line{position:absolute;left:29%;right:55%;top:54%;height:1px;background:var(--korppi-ice);transform:scaleX(var(--preview-progress,1));transform-origin:left}
.menu-ai-source{position:absolute;left:8%;top:10%;width:24%;color:#101214;background:#f5f5f3;padding:7px;display:grid;gap:6px}.menu-ai-source img{width:100%;height:65px;object-fit:cover}.menu-ai-source small{font-size:10px}
.menu-ai-label{position:absolute;left:43%;right:7%;top:16%;font-weight:400;font-size:clamp(20px,2vw,38px);border-bottom:1px solid var(--korppi-ice);padding-bottom:14px}
.menu-documents{position:absolute;inset:48% 7% 9%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.menu-documents>span{background:#eef0ef;color:#161a1d;padding:14px 8px;font-size:11px;line-height:1.4;border-top:2px solid #a8d7f280;transform:translateY(calc((1 - var(--preview-progress,1))*18px))}
.menu-documents>span:nth-child(even){margin-top:14px}
.pane-team{padding:6% 4%;background:#101214}.menu-people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;height:100%;align-content:center}.menu-person{min-width:0;display:flex;flex-direction:column;gap:8px}.menu-person-media{position:relative;height:clamp(130px,23svh,300px);overflow:hidden;background:#23272a}.menu-person-media>img{width:100%;height:100%;object-fit:cover;object-position:var(--portrait-focus);filter:grayscale(1)}.menu-person-media>.people-home-placeholder{display:none}.menu-person-media>span{position:absolute;left:5%;bottom:10%;font-size:clamp(30px,4vw,80px);opacity:.08;line-height:1}.menu-person>strong{font-size:14px;font-weight:400;line-height:1.2}.menu-person>small{font-size:10px;color:#aab0b4;line-height:1.4}
.pane-resolve>img{filter:grayscale(1) brightness(.55)}.pane-resolve>strong{position:absolute;left:7%;right:8%;bottom:13%;max-width:10ch;font-size:clamp(32px,4vw,70px);font-weight:400;line-height:1;letter-spacing:-.045em}
@media(prefers-reduced-motion:reduce){.section-preview{clip-path:none}.section-preview :is(.menu-context,.menu-handoff-line,.menu-documents>span){transform:none!important}}
.motion-reduced .section-preview{clip-path:none}

.menu-documents>span::after{content:"";display:block;margin-top:24px;height:48%;background:repeating-linear-gradient(to bottom,#26343e20 0 1px,transparent 1px 15px)}
.menu-record{inset:auto;left:23%;top:50%;width:54%;height:auto;aspect-ratio:4/5;transform:translateY(-50%)}
.menu-phone{top:50%;height:auto;aspect-ratio:1/2;transform:translateY(-50%)}
.menu-workspace{top:50%;height:auto;aspect-ratio:4/3;transform:translateY(-50%);grid-template-rows:auto 1fr auto}
.menu-workspace img{height:100%;min-height:0}.menu-workspace span{align-self:end}
.menu-handoff-line{top:50%}
.menu-documents{inset:auto 7% 17%}.menu-documents>span{aspect-ratio:.65;font-size:clamp(11px,.9vw,15px)}
