/* SSK 1.7: the scroll scene enhances semantic, server-rendered service content. */
.ssk-story-track { --ssk-top: 94px; position: relative; background: #071a31; margin: 0 !important; }
.ssk-story-track .home-hero {
  grid-template-columns: minmax(0,.94fr) minmax(0,1.06fr); gap: clamp(24px,4vw,70px);
  min-height: min(820px, calc(100svh - 94px)); max-height: none;
  padding: 44px max(28px, calc((100vw - 1380px)/2)); align-items: center;
  overflow: clip; margin: 0; width: 100%; box-sizing: border-box;
}
.ssk-story-track .hero-copy { min-width: 0; padding: 0; max-width: 610px; }
.ssk-story-track .hero-copy h1 { font-size: clamp(46px,5.65vw,88px); line-height: 1.04; }
.ssk-story-track .hero-lead { font-size: clamp(16px,1.2vw,18px); max-width: 500px; }
.ssk-story-track .hero-actions { gap: 22px; }
.ssk-story-track .hero-grid { opacity: .045; }
.ssk-constellation { position: relative; min-width: 0; width: 100%; max-width: 700px; margin: 0 !important; color: #f4f2ee; z-index: 1; font-family: Arial, Helvetica, sans-serif; }
.ssk-scene-top, .ssk-scene-bottom { display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #b9c7d7; font-size: 10px; line-height: 1.5; letter-spacing: .1em; }
.ssk-scene-top { text-transform: uppercase; border-top: 1px solid #ffffff26; padding-top: 17px; }
.ssk-scene-top > :last-child { white-space: nowrap; color: #ef9a65; }
.ssk-scene-art { position: relative; width: 100%; height: clamp(240px,31vw,360px); background: radial-gradient(ellipse at center, #20374f60, transparent 65%); }
.ssk-scene-canvas, .ssk-scene-fallback { position: absolute; display: block; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.ssk-scene-canvas { visibility: hidden; }
.ssk-constellation.has-canvas .ssk-scene-canvas { visibility: visible; }
.ssk-constellation.has-canvas .ssk-scene-fallback { visibility: hidden; }
.ssk-scene-caption { position: relative; min-height: 50px; margin: 0 0 14px; display: flex; align-items: center; }
.ssk-scene-caption p { font-family: Georgia, serif; font-size: clamp(19px,2vw,25px); line-height: 1.2; margin: 0; max-width: 100%; color: #f4f2ee; }
.ssk-scene-outro { display: none; }
.ssk-scene-services { position: relative; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 0 !important; padding: 0 !important; }
.ssk-scene-services li { display: grid; grid-template-columns: 24px 1fr; gap: 6px 10px; align-content: center; position: relative; padding: 12px 0; border-top: 1px solid #ffffff26; min-width: 0; font-size: 13px; line-height: 1.45; }
.ssk-service-number { color: #ef9a65; font-size: 10px; padding-top: 2px; font-variant-numeric: tabular-nums; }
.ssk-service-name { color: #d3dce6; }
.ssk-scene-services .ssk-service-description { grid-column: 2; color: #b9c7d7; font-size: 13px; line-height: 1.5; margin: 0; }
.ssk-scene-bottom { margin-top: 17px; font-size: 10px; letter-spacing: .025em; }
.ssk-scroll-hint { display: none; }
.ssk-scene-progress { height: 1px; background: #ffffff26; margin-top: 14px; overflow: hidden; }
.ssk-scene-progress > span { display: block; height: 100%; width: 100%; background: #ef9a65; transform: scaleX(1); transform-origin: left; }
/* Descriptions remain in the accessibility tree even when visually collapsed. */
.ssk-constellation.is-animated .ssk-service-description { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ssk-constellation.is-animated .ssk-scene-services li.is-active .ssk-service-description { grid-column: auto; grid-row: auto; width: auto; height: auto; margin: 0; padding: 0; overflow: visible; clip-path: none; white-space: normal; position: absolute; top: -65px; left: 0; right: 0; color: #f4f2ee; font-size: 16px; line-height: 1.45; }
.ssk-constellation.is-animated .ssk-scene-services li { position: static; }
.ssk-constellation.is-animated .ssk-scene-services li.is-active { border-color: #ef9a65; }
.ssk-constellation.is-animated .ssk-scene-services li.is-active .ssk-service-name { color: #fff; }
.ssk-constellation.is-animated .ssk-scene-services li.is-active .ssk-service-number { color: #fff; }
.ssk-constellation.is-animated[data-stage="service"] .ssk-scene-intro { visibility: hidden; }
.ssk-constellation.is-animated[data-stage="complete"] .ssk-scene-intro { display: none; }
.ssk-constellation.is-animated[data-stage="complete"] .ssk-scene-outro { display: block; }
.ssk-constellation.is-animated[data-stage="complete"] .ssk-service-name { color: #fff; }
.ssk-constellation.is-animated .ssk-scroll-hint { display: inline; }
.ssk-constellation.is-animated .ssk-static-hint { display: none; }
.ssk-constellation.is-animated .ssk-scene-services { margin-top: 0 !important; }
.ssk-story-track.is-scroll-ready { height: calc(var(--ssk-view-height) + var(--ssk-travel)); }
.ssk-story-track.is-scroll-ready .home-hero { position: sticky; top: var(--ssk-top); height: var(--ssk-view-height); min-height: var(--ssk-view-height); }
.ssk-analyst-signature { align-self: stretch; display: flex; flex-direction: column; justify-content: center; min-height: 380px; padding: clamp(32px,5vw,68px); background: #f4f2ee; position: relative; overflow: hidden; }
.ssk-analyst-signature p { margin: 0; color: #526070; font-size: 11px; line-height: 1.6; letter-spacing: .06em; }
.ssk-analyst-signature .ssk-signature-index { color: #915021; margin-bottom: 45px; font-size: 11px; }
.ssk-analyst-signature .ssk-signature-statement { font: 400 clamp(28px,3vw,47px)/1.2 Georgia,serif; letter-spacing: -.035em; color: #071a31; }
.ssk-analyst-signature em { color: #9e4618; }
.ssk-signature-line { width: 68px; height: 1px; background: #b05627; margin: 32px 0; }
@media(min-width:961px) and (max-height:820px) {
  .ssk-story-track .home-hero { padding-block: 22px; }
  .ssk-scene-art { height: clamp(195px,31vh,280px); }
  .ssk-scene-services li { padding-block: 9px; }
  .ssk-scene-caption { min-height: 48px; margin-bottom: 12px; }
  .ssk-story-track .hero-copy h1 { font-size: clamp(46px,5.1vw,78px); }
}
@media(max-width:960px) {
  .ssk-story-track .home-hero { grid-template-columns: minmax(0,1fr); padding: 48px 28px; gap: 42px; min-height: auto; }
  .ssk-story-track .hero-copy { max-width: 680px; }
  .ssk-story-track .hero-copy h1 { font-size: clamp(44px,8vw,72px); }
  .ssk-constellation { justify-self: center; max-width: 670px; }
  .ssk-scene-art { height: clamp(260px,55vw,390px); }
  .ssk-scene-caption p { font-size: 23px; }
}
@media(max-width:520px) {
  .ssk-story-track .home-hero { padding: 38px 20px 30px; gap: 36px; }
  .ssk-story-track .hero-copy h1 { font-size: clamp(38px,10.5vw,54px); }
  .ssk-story-track .hero-copy .eyebrow { font-size: 10px; letter-spacing: .1em; }
  .ssk-story-track .hero-actions { gap: 20px; align-items: flex-start; }
  .ssk-scene-art { height: 255px; }
  .ssk-scene-services { grid-template-columns: 1fr; }
  .ssk-scene-services li { padding: 9px 0; font-size: 13px; }
  .ssk-scene-top { font-size: 9px; letter-spacing: .065em; }
  .ssk-scene-caption { min-height: 58px; }
  .ssk-scene-caption p { font-size: 21px; }
  .ssk-constellation.is-animated .ssk-scene-services li.is-active .ssk-service-description { top: -68px; font-size: 15px; }
  .ssk-analyst-signature { min-height: 280px; }
}
@media(prefers-reduced-motion:reduce) {
  .ssk-story-track.is-scroll-ready { height: auto; }
  .ssk-story-track.is-scroll-ready .home-hero { position: relative; top: auto; height: auto; min-height: auto; }
}

/* 1.7.1: a separate scroll runway keeps the whole scene visible on small screens. */
.ssk-scene-track { position: relative; align-self: start; justify-self: center; width: 100%; max-width: 700px; min-width: 0; overflow-anchor: none; }
.ssk-scene-track.is-scene-ready { height: calc(var(--ssk-scene-height) + var(--ssk-travel)); }
.ssk-scene-track.is-scene-ready > .ssk-constellation { position: sticky; top: var(--ssk-top); }
.ssk-story-track .home-hero.has-scene-pin { overflow: visible; align-items: start; background: #071a31; }
.ssk-story-track .home-hero.has-scene-pin > .hero-grid { pointer-events: none; }
.ssk-constellation.is-compact-scene { background: #071a31; }
.ssk-constellation.is-compact-scene .ssk-scene-art { height: var(--ssk-art-height, 255px); }
@media(max-width:960px), (max-height:699px) {
  .ssk-story-track .home-hero { background: #071a31; }
}
@media(min-width:600px) and (max-width:960px) and (max-height:699px) and (orientation:landscape) {
  /* Narrow landscape screens use the full width; desktop keeps the scene on the right. */
  .ssk-story-track .home-hero.has-scene-pin { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .ssk-story-track .home-hero.has-scene-pin .hero-copy { max-width: 760px; }
  .ssk-scene-track { max-width: 1000px; }
  .ssk-constellation.is-compact-scene {
    max-width: none; display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
    grid-template-rows: auto auto auto auto auto; column-gap: 24px; align-items: start;
  }
  .is-compact-scene .ssk-scene-top { grid-column: 1/-1; grid-row: 1; padding-top: 7px; padding-bottom: 5px; font-size: 9px; }
  .is-compact-scene .ssk-scene-art { grid-column: 1; grid-row: 2/4; align-self: center; }
  .is-compact-scene .ssk-scene-caption { grid-column: 2; grid-row: 2; height: 58px; min-height: 58px; margin-bottom: 4px; }
  .is-compact-scene .ssk-scene-caption p { font-size: 18px; line-height: 1.25; }
  .is-compact-scene .ssk-scene-services { grid-column: 2; grid-row: 3; grid-template-columns: minmax(0,1fr); }
  .is-compact-scene .ssk-scene-services li { font-size: 12px; line-height: 1.35; padding: 5px 0; gap: 0 8px; }
  .ssk-constellation.is-compact-scene.is-animated .ssk-scene-services li.is-active .ssk-service-description { top: -62px; font-size: 13px; line-height: 1.4; }
  .is-compact-scene .ssk-scene-bottom { grid-column: 1/-1; grid-row: 4; margin-top: 8px; font-size: 9px; }
  .is-compact-scene .ssk-scene-progress { grid-column: 1/-1; grid-row: 5; margin-top: 7px; width: 100%; }
}
@media(prefers-reduced-motion:reduce) {
  .ssk-scene-track.is-scene-ready { height: auto; }
  .ssk-scene-track.is-scene-ready > .ssk-constellation { position: relative; top: auto; }
}
/* Leave the fixed back-to-top control clear of the progress counter. */
.is-compact-scene .ssk-scene-bottom { padding-right: 64px; }
@media(min-width:600px) and (max-width:960px) and (max-height:380px) and (orientation:landscape) {
  .is-compact-scene .ssk-scene-top { padding-top: 5px; padding-bottom: 3px; }
  .is-compact-scene .ssk-scene-caption { height: 48px; min-height: 48px; }
  .is-compact-scene .ssk-scene-services li { padding-block: 4px; line-height: 1.25; }
  .ssk-constellation.is-compact-scene.is-animated .ssk-scene-services li.is-active .ssk-service-description { top: -52px; }
  .is-compact-scene .ssk-scene-bottom { margin-top: 6px; }
}

/* 1.7.3: one clearly navy mobile surface, including the sticky scroll runway. */
@media(max-width:960px) {
  .ssk-story-track { --ssk-mobile-hero-background: #0d2848; }
  .ssk-story-track,
  .ssk-story-track .home-hero,
  .ssk-story-track .home-hero.has-scene-pin,
  .ssk-story-track .ssk-scene-track,
  .ssk-story-track .ssk-constellation {
    background-color: var(--ssk-mobile-hero-background);
    background-image: none;
  }
}
