/* These two storytelling sections are independent of the existing site styles. */
.aurora-story { --story-navy:#00163a; --story-blue:#1b3765; --story-white:#f6f8fb; --story-soft:#c4d0df; position:relative; isolation:isolate; background:var(--story-navy); color:var(--story-white); }
.story-challenges,.story-vision { position:relative; isolation:isolate; overflow:hidden; scroll-margin-top:105px; }
.story-challenges { padding:88px 5% 64px; background:var(--story-navy); }
.challenge-stage { position:relative; max-width:1600px; min-height:880px; margin:0 auto; }
.challenge-photo,.challenge-shade,.vision-photo,.vision-shade { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.challenge-photo { z-index:-3; object-fit:cover; object-position:center; transform:rotate(180deg); filter:saturate(.67) brightness(.85); }
/* The rightmost fifth remains navy, fading seamlessly into the photograph. */
.challenge-shade { z-index:-2; background:linear-gradient(90deg,#00163a05 0%,#00163a45 32%,#00163ace 56%,#00163af5 78%,#00163a 82%),linear-gradient(0deg,#00163ada,transparent 56%); }
.story-challenges::after { content:""; position:absolute; z-index:-1; inset:auto 0 0; height:145px; pointer-events:none; background:linear-gradient(0deg,var(--story-navy),#00163a00); }
.story-eyebrow { display:block; color:#cfdfef; font-size:8px; font-weight:400; letter-spacing:1.8px; line-height:1.6; }
.challenge-copy { position:relative; width:54%; margin-left:auto; padding:67px 5% 57px 2%; }
.challenge-copy h2 { margin:22px 0 20px; font-size:clamp(34px,3.9vw,62px); font-weight:300; line-height:1.08; letter-spacing:-.055em; color:#fafcff; }
.challenge-copy h2 > span { color:#c8d9ec; }
.challenge-intro { max-width:530px; margin:0; color:#bccbdf; font-size:12px; font-weight:300; line-height:1.9; }
.challenge-list { list-style:none; margin:28px 0 0; padding:0; }
.challenge-list > li { position:relative; display:flex; align-items:baseline; gap:19px; padding:16px 10px 16px 0; border-top:1px solid #c1d8f025; transition:transform 320ms ease,border-color 320ms ease,background-color 320ms ease; }
.challenge-list > li:last-child { border-bottom:1px solid #c1d8f025; }
.challenge-number { flex-shrink:0; width:16px; color:#9ebbdc; font-size:8px; font-weight:400; letter-spacing:.7px; transition:color 320ms ease; }
.challenge-list p { margin:0; font-size:13px; font-weight:300; line-height:1.65; color:#e2eaf4; }
.challenge-list > li:hover { transform:translateX(4px); border-top-color:#b5d7fc80; background-color:#1b376542; }
.challenge-list > li:hover .challenge-number { color:#fff; }
.challenge-next { display:inline-flex; align-items:center; gap:32px; margin-top:28px; padding-bottom:8px; border-bottom:1px solid #b6cee74d; font-size:10px; font-weight:400; color:#e5eff9; transition:gap 280ms ease,border-color 280ms ease; }
.challenge-next:hover { gap:40px; border-color:#e3f0ff; }
.challenge-next > span { font-size:17px; }
.challenge-caption { position:absolute; left:5%; bottom:67px; width:32%; max-width:330px; text-shadow:0 2px 16px #00102f; }
.challenge-caption .story-eyebrow { font-size:6px; letter-spacing:1.3px; }
.challenge-caption > p { margin:17px 0 24px; font-size:clamp(26px,3vw,43px); font-weight:300; letter-spacing:-.035em; line-height:1.12; color:#f7fbff; }
.story-rule { display:block; width:95px; height:1px; background:linear-gradient(90deg,#dcecffb3,#93b9e126); transform-origin:left; }
.challenge-caption-note { display:block; margin-top:17px; max-width:210px; font-size:9px; line-height:1.8; letter-spacing:.1px; font-weight:300; color:#c8d6e7; }
.challenge-projections { position:absolute; left:0; top:0; width:44%; height:100%; pointer-events:none; }
.data-projection { position:absolute; border:1px solid #cee6ff33; background:linear-gradient(140deg,#d6e9ff0d,#1b37650a); border-radius:8px; padding:16px; color:#cbe4ff; box-shadow:inset 0 1px 0 #eff8ff0d,0 12px 45px #00143521; backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); animation:aurora-data-drift 13s ease-in-out infinite alternate; animation-play-state:paused; }
.story-challenges.is-in-view .data-projection { animation-play-state:running; }
.projection-forecasts { width:228px; left:26%; top:21%; transform:rotate(-7deg); --projection-tilt:-7deg; }
.projection-label { display:block; font-size:5px; font-weight:400; letter-spacing:1px; color:#deeeff; }
.projection-forecasts svg { display:block; width:100%; height:auto; margin:14px 0 9px; }
.projection-grid { stroke:#d7ebff24; stroke-width:.65; }
.projection-trace { stroke:#f1f8ffb3; stroke-width:1.35; }
.projection-trace-secondary { stroke:#8fbbe4a8; stroke-dasharray:3 4; }
.projection-forecasts circle { fill:#e9f5ff; }
.projection-legend { display:flex; gap:17px; font-size:4px; letter-spacing:.7px; }
.projection-legend > span { display:flex; align-items:center; gap:4px; }
.projection-legend i { width:3px; height:3px; border-radius:50%; background:#eaf5ff; }
.projection-legend > span:last-child i { background:#8fbbe4; }
.projection-systems { left:12%; top:47%; width:205px; transform:rotate(5deg); --projection-tilt:5deg; animation-delay:-6s; }
.projection-systems .projection-label { font-size:4px; letter-spacing:.8px; margin-bottom:16px; }
.projection-system { display:flex; align-items:center; gap:5px; padding:9px 0; border-top:1px solid #d9ecff22; }
.projection-system > span { flex:1; font-size:5px; letter-spacing:.6px; }
.projection-system > i { width:16px; height:3px; background:#d4eaff65; }
.projection-system > i:nth-last-child(2) { opacity:.5; }
.projection-system > i:last-child { opacity:.25; }
@keyframes aurora-data-drift { from { transform:translate3d(0,-4px,0) rotate(var(--projection-tilt)); } to { transform:translate3d(4px,5px,0) rotate(var(--projection-tilt)); } }

.story-vision { padding:0 7%; background:var(--story-navy); scroll-margin-top:0; }
.story-vision::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,#00163a 0%,#00163a00 15%,#00163a00 81%,#00163aaa 100%); pointer-events:none; }
.vision-frame { position:relative; width:100%; max-width:1600px; min-height:100svh; margin:0 auto; }
.vision-photo { z-index:-3; object-fit:cover; object-position:center 60%; filter:saturate(.85) brightness(.9); }
.vision-shade { z-index:-2; background:radial-gradient(ellipse 46% 33% at 15% 91%,#00132dd9,transparent 85%),linear-gradient(180deg,#00132d59,transparent 45%,#00152e0a 60%,#00132d99 100%),linear-gradient(90deg,#00153633,transparent 75%); }
.vision-content { position:relative; display:flex; flex-direction:column; min-height:inherit; gap:80px; padding:132px 0 64px; }
.vision-content h2 { margin:0; font-size:clamp(50px,7.2vw,108px); font-weight:300; line-height:1.025; letter-spacing:-.06em; color:#f7faff; text-shadow:0 5px 28px #00153159; }
.vision-line { --line-delay:0ms; display:block; overflow:hidden; padding:0 .05em .13em 0; }
.vision-line > span { display:inline-block; }
.vision-line:first-child > span { font-weight:250; }
.vision-line:nth-child(2) { --line-delay:140ms; text-align:center; }
.vision-line:nth-child(3) { --line-delay:280ms; text-align:right; }
.vision-line:nth-child(3) > span { font-weight:400; color:#f8faff; background:linear-gradient(125deg,#fff 15%,#f3f1ff 65%,#d7dff8); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.vision-support { width:34%; min-width:290px; max-width:420px; margin-top:auto; text-shadow:0 2px 18px #000d2fcc; }
.vision-support .story-rule { width:100%; max-width:140px; margin-bottom:25px; background:linear-gradient(90deg,#f4f8ffcc,#bdcfff20); }
.vision-support > p { font-size:clamp(14px,1.05vw,17px); font-weight:300; line-height:1.8; color:#dbe6f5; margin:0; }
.vision-lead { display:block; margin-bottom:9px; font-weight:400; color:#fff; }
.story-vision.has-story-motion .vision-content { opacity:var(--story-opacity,1); transform:translate3d(0,var(--story-offset,0px),0); }
.story-vision.has-story-motion .vision-line > span { opacity:0; transform:translate3d(0,110%,0); transition:transform 1000ms cubic-bezier(.2,.65,.25,1) var(--line-delay),opacity 800ms ease var(--line-delay) !important; }
.story-vision.has-story-motion.is-in-view .vision-line > span { opacity:1; transform:translate3d(0,0,0); }
.story-vision.has-story-motion .vision-support .story-rule { opacity:0; transform:scaleX(0); transition:transform 900ms cubic-bezier(.2,.65,.25,1) 420ms,opacity 600ms ease 420ms !important; }
.story-vision.has-story-motion.is-in-view .vision-support .story-rule { opacity:1; transform:scaleX(1); }
.story-vision.has-story-motion .vision-support > p { opacity:0; transform:translateY(8px); transition:opacity 800ms ease 520ms,transform 900ms cubic-bezier(.2,.65,.25,1) 520ms !important; }
.story-vision.has-story-motion.is-in-view .vision-support > p { opacity:1; transform:translateY(0); }

@media (min-width:1800px) {
  .challenge-copy { padding-top:78px; padding-bottom:72px; }
  .challenge-list p { font-size:15px; }
  .challenge-list > li { padding-top:18px; padding-bottom:18px; }
  .challenge-intro { font-size:14px; }
  .challenge-stage { min-height:960px; }
  .vision-support { max-width:420px; }
  .vision-support > p { font-size:17px; }
}
@media (max-width:1100px) {
  .challenge-stage { min-height:850px; }
  .challenge-copy { width:56%; padding:55px 4% 48px 2%; }
  .challenge-copy h2 { font-size:clamp(34px,3.8vw,45px); }
  .challenge-list > li { gap:14px; padding-top:15px; padding-bottom:15px; }
  .challenge-list p { font-size:12px; }
  .challenge-intro { font-size:11px; }
  .projection-forecasts { width:190px; left:20%; top:23%; }
  .projection-systems { width:175px; left:9%; top:48%; }
  .challenge-caption { bottom:55px; }
  .vision-content { padding-top:128px; padding-bottom:55px; }
  .vision-support > p { font-size:14px; }
}
@media (max-width:800px) {
  .story-challenges { padding:65px 26px 42px; }
  .challenge-stage { min-height:0; }
  .challenge-photo { object-position:78% center; }
  .challenge-shade { background:linear-gradient(180deg,#00163a70,#00163a9e 27%,#00163acf 50%,#00163ae8),linear-gradient(90deg,#00163a10,transparent 45%,#00163acc 82%,#00163a); }
  .challenge-copy { width:100%; padding:325px 34px 40px; }
  .challenge-copy h2 { font-size:clamp(38px,6.3vw,49px); }
  .challenge-intro { max-width:540px; font-size:12px; }
  .challenge-list p { font-size:13px; }
  .challenge-list > li { padding-top:18px; padding-bottom:18px; }
  .challenge-caption { left:34px; top:39px; bottom:auto; width:50%; }
  .challenge-caption > p { font-size:34px; margin:14px 0; }
  .challenge-caption .story-rule,.challenge-caption-note { display:none; }
  .challenge-projections { width:100%; height:300px; }
  .projection-forecasts { width:190px; left:auto; right:10%; top:85px; opacity:.8; }
  .projection-systems { display:none; }
  .story-vision { padding:0 34px; }
  .vision-frame { min-height:max(900px,100svh); }
  .vision-photo { object-position:53% center; }
  .vision-content { gap:0; padding:128px 0 50px; }
  .vision-content h2 { font-size:clamp(44px,7.6vw,62px); }
  .vision-line:nth-child(2) { text-align:left; padding-left:9%; }
  .vision-line:nth-child(3) { text-align:right; }
  .vision-support { width:100%; min-width:0; max-width:360px; padding-top:310px; }
  .vision-support > p { font-size:14px; }
}
@media (max-width:540px) {
  .story-challenges { padding:50px 22px 34px; }
  .challenge-copy { padding:278px 23px 32px; }
  .challenge-copy .story-eyebrow { font-size:7px; letter-spacing:1.3px; }
  .challenge-copy h2 { font-size:36px; line-height:1.1; letter-spacing:-.045em; margin-top:18px; }
  .challenge-intro { font-size:11px; line-height:1.9; }
  .challenge-list { margin-top:25px; }
  .challenge-list > li { gap:13px; padding-top:16px; padding-bottom:16px; }
  .challenge-list p { font-size:12px; line-height:1.7; }
  .challenge-number { font-size:7px; width:13px; }
  .challenge-next { gap:22px; font-size:9px; margin-top:25px; }
  .challenge-caption { left:23px; top:30px; width:58%; }
  .challenge-caption .story-eyebrow { font-size:5px; letter-spacing:.8px; }
  .challenge-caption > p { font-size:28px; margin-top:12px; }
  .projection-forecasts { right:8%; top:145px; width:145px; padding:11px; opacity:.72; }
  .projection-label { font-size:3.5px; letter-spacing:.6px; }
  .projection-forecasts svg { margin-top:10px; }
  .projection-legend { font-size:3px; gap:12px; }
  .story-vision { padding:0 26px; }
  .vision-frame { min-height:max(920px,100svh); }
  .vision-photo { object-position:51% center; }
  .vision-shade { background:linear-gradient(180deg,#00132d70,transparent 34%,#00132d0d 48%,#00132de8 100%),linear-gradient(90deg,#00153633,transparent 75%); }
  .vision-content { padding:126px 0 42px; }
  .vision-content h2 { font-size:44px; letter-spacing:-.055em; line-height:1.05; }
  .vision-line { padding-bottom:.12em; }
  .vision-line:nth-child(2) { padding-left:0; text-align:right; }
  .vision-line:nth-child(3) { text-align:left; }
  .vision-support { padding-top:315px; max-width:100%; }
  .vision-support .story-rule { max-width:105px; margin-bottom:20px; }
  .vision-support > p { font-size:14px; line-height:1.8; }
}
@media (max-width:360px) {
  .challenge-copy h2 { font-size:32px; }
  .challenge-copy { padding-left:20px; padding-right:20px; }
  .challenge-next { font-size:8px; gap:16px; }
  .vision-content h2 { font-size:36px; }
}
@media (prefers-reduced-motion:reduce) {
  .aurora-story .data-projection { animation:none; }
  .story-vision.has-story-motion .vision-content { transform:none; }
  .story-vision.has-story-motion .vision-line > span { transform:none; transition:opacity 650ms ease var(--line-delay) !important; }
  .story-vision.has-story-motion .vision-support .story-rule { transform:none; transition:opacity 650ms ease 420ms !important; }
  .story-vision.has-story-motion .vision-support > p { transform:none; transition:opacity 700ms ease 520ms !important; }
  .aurora-story .challenge-list > li:hover { transform:none; }
}
