/* Webflow: undo webflow.css element defaults, then the repo base type at element specificity (see build.py) */
:where(.sp-navigation,.sp-footer) h1,:where(.sp-navigation,.sp-footer) h2,:where(.sp-navigation,.sp-footer) h3,:where(.sp-navigation,.sp-footer) h4,:where(.sp-navigation,.sp-footer) h5,:where(.sp-navigation,.sp-footer) h6{margin-top:revert;margin-bottom:revert;font-weight:revert;font-size:revert;line-height:revert}:where(.sp-navigation,.sp-footer) p{margin-top:revert;margin-bottom:revert}:where(.sp-navigation,.sp-footer) figure{margin:revert}:where(.sp-navigation,.sp-footer) figcaption{text-align:revert;margin-top:revert}:where(.sp-navigation,.sp-footer) ul,:where(.sp-navigation,.sp-footer) ol{margin-top:revert;margin-bottom:revert;padding-left:revert}:where(.sp-navigation,.sp-footer) img{vertical-align:revert;max-width:revert;display:revert}:where(.sp-navigation,.sp-footer) blockquote{border-left:revert;margin:revert;padding:revert;font-size:revert;line-height:revert}:where(.sp-navigation,.sp-footer) label{margin-bottom:revert;font-weight:revert;display:revert}

/* footer.css */
/* Generated from design-system/patterns/footer.css. Edit that source, then run node design-system/build.cjs. */
.sp-footer {--sp-footer-ink: #080527;--sp-footer-white: #f7f7fb;--sp-footer-muted: #a9a8c1;--sp-footer-line: rgba(241, 242, 255, .22);position: relative;isolation: isolate;width: 100%;overflow: hidden;background: var(--sp-footer-ink);color: var(--sp-footer-white);font-family: var(--sp-font-family,Inter,Arial,sans-serif);font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0}

.sp-footer *, .sp-footer *::before, .sp-footer *::after { box-sizing: border-box; }
.sp-footer a { color: inherit; text-decoration: none; }
.sp-footer a:focus-visible { outline: 2px solid #a5b8ff; outline-offset: 5px; }
/* The page width. Page content on every page lines up with the footer's content edges: pages use
   var(--sp-page-width) for a centred wrapper, or var(--sp-page-gutter) as side padding on a full-width section. */
:root { --sp-page-width: min(100% - 8vw, 1740px); --sp-page-gutter: max(4vw, calc((100% - 1740px) / 2)); }
@media (max-width: 640px) { :root { --sp-page-width: calc(100% - 40px); --sp-page-gutter: 20px; } }
@media (max-width: 360px) { :root { --sp-page-width: calc(100% - 32px); --sp-page-gutter: 16px; } }
.sp-footer__inner { position: relative; z-index: 1; width: var(--sp-page-width); margin-inline:auto; }
/* background lines in the shape of the mark and their travelling comets (built by footer.js) */
.sp-footer__lines { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.sp-footer__line { fill: none; stroke: rgba(169,168,193,.26); stroke-width: 1; }
.sp-footer__line.is-drawing { transition: stroke-dashoffset 1.8s cubic-bezier(.65,0,.35,1); }
.sp-footer__comet { fill: none; stroke: #f1f2ff; stroke-width: 2; stroke-linecap: round; opacity: 0; filter: drop-shadow(0 0 3px #a9b1ff) drop-shadow(0 0 8px #6f78ff); }
.sp-footer__trail { fill: none; stroke: #9aa3ff; stroke-linecap: round; opacity: 0; }
.sp-footer__trail--0 { stroke-width: 1.75; stroke-opacity: .7; }
.sp-footer__trail--1 { stroke-width: 1.25; stroke-opacity: .28; }
.sp-footer__glow { opacity: 0; mix-blend-mode: screen; }
/* mark variant: the Spacial mark outline, lit only around the pointer (footer.js); the two treatments swap on data-footer-style */
.sp-footer__mark { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; display: none; }
.sp-footer__mark-path { fill: none; stroke: #8C9BFF; stroke-width: 3px; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.sp-footer[data-footer-style="mark"] .sp-footer__mark { display: block; }
.sp-footer[data-footer-style="mark"] .sp-footer__lines { display: none; }
/* the "See Spacial" block sits in a frosted navy panel; the lit mark blurs behind it. Negative margins keep
   the text aligned with the other columns while the panel extends into the gutters. */
.sp-footer[data-footer-style="mark"] .sp-footer__column--access { align-self: start; margin: -28px; padding: 28px; border: 1px solid rgba(241,242,255,.1); border-radius: 6px; background: rgba(28,24,96,.16); -webkit-backdrop-filter: blur(9px) saturate(150%); backdrop-filter: blur(9px) saturate(150%); box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
@media (max-width: 640px) { .sp-footer[data-footer-style="mark"] .sp-footer__column--access { margin: -16px; padding: 16px; } }
/* word variant: the full logo as a blueprint (footer.js draws it from the logo file). At rest a faint sheet of outlines,
   guides and dimensions; inside the lens that follows the pointer, the same drawing bright on blueprint paper. */
.sp-footer__word { display: none; position: relative; width: 100%; aspect-ratio: 598 / 154; margin: clamp(28px, 3.5vw, 56px) 0 clamp(20px, 2.5vw, 40px); pointer-events: none; }
.sp-footer__word svg { display: block; width: 100%; height: 100%; overflow: visible; }
.sp-footer__word line, .sp-footer__word path { vector-effect: non-scaling-stroke; }
.bpw-ghost { fill: rgba(169, 168, 193, .06); }
.bpw-grid { stroke: #fff; stroke-width: 1; stroke-opacity: .025; }
.bpw-grid--major { stroke-opacity: .05; }
.bpw-guide { stroke: #c9d2ff; stroke-width: 1; stroke-opacity: .12; }
.bpw-guide--dash { stroke-dasharray: 6 5; }
.bpw-side { stroke: #c9d2ff; stroke-width: 1; stroke-opacity: .08; stroke-dasharray: 3 5; }
.bpw-dim { fill: none; stroke: #c9d2ff; stroke-width: 1; stroke-opacity: .2; }
.bpw-outline { fill: none; stroke: #c9d2ff; stroke-width: 1; stroke-opacity: .22; stroke-linejoin: round; }
.bpw-label { font-family: var(--sp-font-family, Inter, Arial, sans-serif); font-size: 5.2px; font-weight: 500; letter-spacing: .06em; fill: #c9d2ff; fill-opacity: .28; }
.bpw-label--mid { text-anchor: middle; letter-spacing: 0; }
/* inside the lens: blueprint paper and the drawing at full strength */
.bpw-paper { fill: #0d0b6e; }
.bpw-lit .bpw-grid { stroke-opacity: .07; }
.bpw-lit .bpw-grid--major { stroke-opacity: .14; }
.bpw-lit .bpw-guide { stroke-opacity: .6; }
.bpw-lit .bpw-side { stroke-opacity: .4; }
.bpw-lit .bpw-dim { stroke-opacity: .85; }
.bpw-lit .bpw-outline { stroke: #e6eaff; stroke-opacity: 1; stroke-width: 1.4; fill: rgba(201, 210, 255, .08); }
.bpw-lit .bpw-label { fill-opacity: .9; }
.bpw-ring { fill: none; stroke: #c9d2ff; stroke-width: 1.2; stroke-dasharray: 5 5; vector-effect: non-scaling-stroke; }
.bpw-cross { fill: none; stroke: #fff; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.sp-footer[data-footer-style="word"] .sp-footer__word { display: block; }
.sp-footer[data-footer-style="word"] :is(.sp-footer__lines, .sp-footer__mark) { display: none; }
/* orbit variant: Orbit in points, standing in a stage under the legal row (drawn by footer.js on a canvas) */
.sp-footer__orbit { display: none; position: relative; width: 100%; height: clamp(260px, 30vw, 460px); margin: clamp(20px, 3vw, 48px) 0 0; pointer-events: none; }
.sp-footer__orbit canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.sp-footer[data-footer-style="orbit"] .sp-footer__orbit { display: block; }
.sp-footer[data-footer-style="orbit"] :is(.sp-footer__lines, .sp-footer__mark) { display: none; }
.sp-footer__top {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.45fr;
  gap:clamp(22px, 3.1vw, 62px);
  padding-block:clamp(72px, 7vw, 126px) clamp(48px, 5vw, 96px);
}
.sp-footer__column { min-width: 0; display: flex; align-items: flex-start; flex-direction: column; }
.sp-footer__label {margin:0 0 clamp(31px, 3.1vw, 54px);color: var(--sp-footer-muted);font-family: inherit;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0.06em;text-transform:uppercase;font-feature-settings:"tnum" 1,"ss01" 1}
.sp-footer__link {display: inline-flex;align-items: baseline;gap:.6em;max-width: 100%;margin-bottom:clamp(11px, 1vw, 17px);font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;transition: color .25s ease}
.sp-footer__link span:first-child { min-width: 0; overflow-wrap: anywhere; }
.sp-footer__link span:last-child {
  color: #7c80ff;
  opacity: 0;
  transform: translate(-4px, 4px);
  transition: transform .25s ease, opacity .25s ease;
}
.sp-footer__link:hover { color: #aeb5ff; }
.sp-footer__link:hover span:last-child,
.sp-footer__link:focus-visible span:last-child { opacity: 1; transform: translate(0, 0); }
.sp-footer__intro {max-width: 330px;margin:-4px 0 27px;color: #e9e8f1;font-size:18px;font-weight:400;line-height:1.45;letter-spacing:0}
.sp-footer__waitlist {display: inline-flex;align-items: center;justify-content: space-between;gap:var(--sp-space-6,24px);min-width: min(100%, 235px);min-height: 44px;border-bottom: 1px solid rgba(255,255,255,.72);font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0;transition: color .25s ease, border-color .25s ease}
.sp-footer__waitlist span:last-child { transition: transform .25s ease; }
.sp-footer__waitlist:hover { color: #abb5ff; border-color: #abb5ff; }
.sp-footer__waitlist:hover span:last-child { transform: translate(3px, -3px); }
.sp-footer__social { display: flex; align-items: center; justify-content: flex-end; gap: 4px; margin-right: -12px; }
.sp-footer__social-link { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--sp-footer-muted); transition: color .2s ease, transform .2s ease; }
.sp-footer__social-link:hover { color: var(--sp-footer-white); transform: translateY(-2px); }
.sp-footer__social-link svg { display: block; }
.sp-footer__bottom {display: grid;grid-template-columns: 1fr auto 1fr;gap:var(--sp-space-6,24px);align-items: center;min-height: 88px;margin-top:8px;border-top: 1px solid var(--sp-footer-line);color: var(--sp-footer-muted);font-family: inherit;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:0}
.sp-footer__legal { display: flex; flex-wrap: wrap; gap:clamp(var(--sp-space-4,16px), 2vw, 34px); }
.sp-footer__bottom a { display: inline-flex; align-items: center; min-height: 44px; padding-block:6px; transition: color .2s ease; }
.sp-footer__bottom a:hover { color: var(--sp-color-surface,#fff); }
.sp-footer__back { justify-self: end; white-space: nowrap; }
.sp-footer__back span { display: inline-block; margin-left:var(--sp-space-2,8px); transition: transform .2s ease; }
.sp-footer__back:hover span { transform: translateY(-3px); }

@media (min-width: 769px) and (prefers-reduced-motion: no-preference) {
  .sp-footer.sp-footer--motion .sp-footer__column {
    opacity: 1;
    transform: translateY(28px);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  }
  .sp-footer.sp-footer--motion.sp-footer--in-view .sp-footer__column { opacity: 1; transform: translateY(0); }
  .sp-footer.sp-footer--motion .sp-footer__column:nth-child(2) { transition-delay: .09s; }
  .sp-footer.sp-footer--motion .sp-footer__column:nth-child(3) { transition-delay: .18s; }
  .sp-footer.sp-footer--motion .sp-footer__column:nth-child(4) { transition-delay: .27s; }
}

@media (max-width: 1050px) {
  .sp-footer__top { grid-template-columns: 1fr 1fr; column-gap:8vw; row-gap:58px; padding-bottom:56px; }
  .sp-footer__column--access { grid-column: 1 / -1; }
  .sp-footer__label { margin-bottom:25px; }
}
@media (max-width: 640px) {
  .sp-footer__top { grid-template-columns: 1fr 1fr; column-gap:18px; row-gap:42px; padding-block:68px 40px; }
  .sp-footer__label {font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0.06em;text-transform:uppercase;font-feature-settings:"tnum" 1,"ss01" 1;margin-bottom:21px}
  .sp-footer__link {font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;margin-bottom:11px}
  .sp-footer__intro {font-size:18px;font-weight:400;line-height:1.45;letter-spacing:0;margin-bottom:14px}
  .sp-footer__waitlist {min-width: 0;width: 100%;gap:var(--sp-space-2,8px);font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0}
  .sp-footer__social { justify-content: flex-start; margin: 0 0 0 -12px; }
  .sp-footer__bottom { grid-template-columns: 1fr auto; gap:var(--sp-space-3,12px) var(--sp-space-2,8px); align-items: center; padding-block:23px var(--sp-space-8,32px); min-height: 0; margin-top:8px; }
  .sp-footer__legal { grid-column: 1 / -1; grid-row: 2; gap:19px; }
  .sp-footer__back { grid-column: 2; grid-row: 1; }
}
@media (max-width: 360px) {
  .sp-footer__top { gap:34px 14px; }
  .sp-footer__link {font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0}
  .sp-footer__intro {font-size:18px;font-weight:400;line-height:1.45;letter-spacing:0}
  .sp-footer__waitlist {font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0}
}
@media (prefers-reduced-motion: reduce) {
  .sp-footer *, .sp-footer *::before, .sp-footer *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; }
}

/* Keep footer typography identical regardless of a page's headline rules. */
.sp-footer h2.sp-footer__label{font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;margin:0 0 clamp(31px,3.1vw,54px)}
/* word variant: the lens's paper reaches up behind the footer's last rows, so their text stays on top of it */
.sp-footer[data-footer-style="word"] .sp-footer__word { z-index: 0; }
.sp-footer[data-footer-style="word"] :is(.sp-footer__top, .sp-footer__social, .sp-footer__bottom) { position: relative; z-index: 1; }
/* toys variant (footer.js): objects in a box. The canvas covers the footer behind its text; an empty stage under the
   legal row gives the pile somewhere to land. */
.sp-footer__toy-canvas { position: absolute; inset: 0; z-index: 0; display: none; width: 100%; height: 100%; pointer-events: none; }
.sp-footer__toys { display: none; height: clamp(200px, 20vw, 300px); pointer-events: none; }
.sp-footer[data-footer-style="toys"] :is(.sp-footer__toy-canvas, .sp-footer__toys) { display: block; }
.sp-footer[data-footer-style="toys"] :is(.sp-footer__lines, .sp-footer__mark) { display: none; }
.sp-footer[data-footer-style="toys"] :is(.sp-footer__top, .sp-footer__social, .sp-footer__bottom) { position: relative; z-index: 1; }
.sp-footer[data-footer-style="toys"].is-over-toy { cursor: grab; }
.sp-footer[data-footer-style="toys"].is-grabbing { cursor: grabbing; user-select: none; -webkit-user-select: none; }
/* dynamic wordmark variant: the full logo in points (footer.js), edge to edge between the link columns and the social
   and legal rows, which close the footer beneath it */
.sp-footer__dword { display: none; position: relative; width: 100%; aspect-ratio: 1482 / 387; margin: calc(-1 * clamp(16px, 2vw, 40px)) 0 clamp(16px, 2vw, 32px); pointer-events: none; }
.sp-footer__dword canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.sp-footer[data-footer-style="dword"] .sp-footer__dword { display: block; }
.sp-footer[data-footer-style="dword"] :is(.sp-footer__lines, .sp-footer__mark) { display: none; }
/* every concept's stage now sits between the link columns and the social and legal rows (footer.js placeStage):
   a little less room above, and a gap before the rows that close the footer */
.sp-footer__word { margin: calc(-1 * clamp(8px, 1.5vw, 24px)) 0 clamp(20px, 2.5vw, 40px); }
.sp-footer__orbit { margin: 0 0 clamp(16px, 2vw, 32px); }
.sp-footer__toys { margin: 0 0 clamp(20px, 2.5vw, 36px); }

/* the play control (footer.js): a dice button that moves to the next concept and a dot for each, at the start of the
   social row. Fills only; names appear in a small tip on hover or focus. */
.sp-footer__play { position: relative; z-index: 2; display: flex; align-items: center; gap: 8px; margin-right: auto; }
.sp-footer__dice { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 6px; background: rgba(241, 242, 255, .07); color: var(--sp-footer-muted); cursor: pointer; transition: background-color .2s, color .2s; }
.sp-footer__dice:hover { background: rgba(241, 242, 255, .14); color: var(--sp-footer-white); }
.sp-footer__dice.is-rolling svg { animation: sp-footer-roll .5s cubic-bezier(.2, .7, .2, 1); }
@keyframes sp-footer-roll { from { transform: rotate(-180deg) scale(.8); } to { transform: none; } }
.sp-footer__dots { display: flex; align-items: center; }
.sp-footer__dot { position: relative; width: 20px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; }
.sp-footer__dot::before { content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: rgba(169, 168, 193, .4); transform: translate(-50%, -50%); transition: background-color .2s, transform .2s; }
.sp-footer__dot:hover::before { background: var(--sp-footer-muted); transform: translate(-50%, -50%) scale(1.3); }
.sp-footer__dot[aria-pressed="true"]::before { background: var(--sp-footer-white); transform: translate(-50%, -50%) scale(1.3); }
.sp-footer__play [data-tip]:not([data-tip=""]):is(:hover, :focus-visible)::after { content: attr(data-tip); position: absolute; left: 50%; bottom: calc(100% + 6px); padding: 4px 8px; border-radius: 4px; background: var(--sp-footer-white); color: var(--sp-footer-ink); font-size: 14px; font-weight: 500; line-height: 1.3; white-space: nowrap; transform: translateX(-50%); pointer-events: none; }
.sp-footer__dice { position: relative; }
.sp-footer__play button:focus-visible { outline: 2px solid #a5b8ff; outline-offset: 2px; }
@media (max-width: 640px) { .sp-footer__social { align-items: center; margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .sp-footer__dice.is-rolling svg { animation: none; } }
/* the dice wobbles a little on hover, so it reads as something to press */
.sp-footer__dice:hover svg { animation: sp-footer-wobble .6s ease-in-out; }
@keyframes sp-footer-wobble { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-14deg); } 60% { transform: rotate(10deg); } 85% { transform: rotate(-4deg); } }
@media (prefers-reduced-motion: reduce) { .sp-footer__dice:hover svg { animation: none; } }
/* the dice sits at the left edge, so its tip starts at the button rather than centring over it */
.sp-footer__play .sp-footer__dice:is(:hover, :focus-visible)::after { left: 0; transform: none; }
/* the change between concepts (footer.js changeTo): the artwork fades out, the next concept is set, and it fades back in */
.sp-footer :is(.sp-footer__lines, .sp-footer__mark, .sp-footer__word, .sp-footer__dword, .sp-footer__orbit, .sp-footer__toys, .sp-footer__more) { transition: opacity .7s ease; }
.sp-footer.is-switching :is(.sp-footer__lines, .sp-footer__mark, .sp-footer__word, .sp-footer__dword, .sp-footer__orbit, .sp-footer__toys, .sp-footer__more) { opacity: 0; transition-duration: .3s; }

/* the five concepts in footer-more.js: one canvas stage each, between the columns and the social row */
.sp-footer__more { position: relative; width: 100%; height: clamp(260px, 24vw, 380px); margin: 0 0 clamp(20px, 2.5vw, 36px); pointer-events: none; }
.sp-footer__more[hidden] { display: none; }
.sp-footer__more canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.sp-footer:is([data-footer-style="fold"], [data-footer-style="load"], [data-footer-style="systems"], [data-footer-style="sheets"], [data-footer-style="crew"]) :is(.sp-footer__lines, .sp-footer__mark) { display: none; }
.sp-footer:is([data-footer-style="load"], [data-footer-style="systems"], [data-footer-style="sheets"], [data-footer-style="crew"]) .sp-footer__more:not([hidden]) ~ * { position: relative; z-index: 1; }
@media (max-width: 480px) { .sp-footer__play { gap: 4px; } .sp-footer__dot { width: 14px; } }

/* navigation.css */
/* Generated from design-system/patterns/navigation.css. Edit that source, then run node design-system/build.cjs. */
/* Shared navigation: white surfaces, navy typography and electric-blue states. */
:root{--sp-nav-height:4.5rem;--app-height:var(--sp-nav-height);--header-height:0rem}
html{scroll-padding-top:calc(var(--sp-nav-height) + 1.5rem)}
html:focus-within{scroll-behavior:auto}
.sp-subpage{padding-top:var(--sp-nav-height)}
.sp-navigation,.site-header.sp-navigation,.past-hero .site-header.sp-navigation{position:fixed;inset:0 0 auto;z-index:80;height:var(--sp-nav-height);padding:0 clamp(1rem,2.5vw,3.5rem);display:flex;align-items:center;gap:clamp(.8rem,2vw,2rem);background:var(--sp-color-surface,#fff);color:var(--sp-color-navy,#06004a);border:0;border-bottom:1px solid #e8edf4;box-shadow:none;backdrop-filter:none;transition:none;font-family:var(--sp-font-family,Inter,Arial,sans-serif)}
.sp-nav-brand{display:flex;align-items:center;flex:none}
.sp-nav-brand img{display:block;width:9rem;height:auto;max-width:none}
.sp-navigation .sp-nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(.75rem,2vw,2.4rem);margin:auto;font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;text-transform:none}
.sp-navigation .sp-nav-links a{text-decoration:none}
.sp-navigation .sp-nav-links>a,.sp-navigation .sp-nav-links .sp-resources-menu>summary{position:relative;display:flex;align-items:center;min-height:2.75rem;padding:.6rem .55rem;border:0;border-radius:0;background:transparent;color:#48455e;line-height:1.3;transition:color .15s}
.sp-navigation .sp-nav-links>a::after,.sp-navigation .sp-nav-links .sp-resources-menu>summary::after{content:"";position:absolute;left:.55rem;right:.55rem;bottom:.3rem;height:1.5px;background:var(--sp-color-brand-blue,#1705e5);transform:scaleX(0);transform-origin:left;transition:transform .15s}
.sp-navigation .sp-nav-links>a:hover,.sp-navigation .sp-nav-links>a:focus-visible,.sp-navigation .sp-nav-links>a.active,.sp-navigation .sp-nav-links>a[aria-current],.sp-navigation .sp-nav-links .sp-resources-menu>summary:hover,.sp-navigation .sp-nav-links .sp-resources-menu>summary:focus-visible,.sp-navigation .sp-nav-links .sp-resources-menu>summary.active,.sp-navigation .sp-nav-links .sp-resources-menu[open]>summary{color:var(--sp-color-brand-blue,#1705e5);background:transparent}
.sp-navigation .sp-nav-links>a:is(:hover,:focus-visible,.active,[aria-current])::after,.sp-navigation .sp-nav-links .sp-resources-menu>summary:is(:hover,:focus-visible,.active)::after,.sp-navigation .sp-nav-links .sp-resources-menu[open]>summary::after{transform:scaleX(1)}
.sp-navigation .sp-waitlist{display:flex;align-items:center;flex:none;gap:.7rem;min-height:2.9rem;padding:.3rem .9rem .3rem .35rem;margin:0;background:var(--sp-color-brand-blue,#1705e5);color:var(--sp-color-surface,#fff);border-radius:6px;font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0;white-space:nowrap;box-shadow:none;text-decoration:none}
.sp-navigation .sp-waitlist:hover{background:var(--sp-color-navy,#06004a)}
.sp-person{display:grid;place-items:center;width:2.2rem;height:2.2rem;flex:none;background:#ffffff20;border:1px solid #ffffff20;border-radius:50%}
.sp-person svg{width:1.3rem;height:1.3rem}
.sp-join-arrow{margin-left:.5rem;font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0}
.sp-menu-toggle{display:none;border:1px solid #dce3ed;background:var(--sp-color-surface,#fff);color:var(--sp-color-navy,#06004a);align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;border-radius:6px;padding:.5rem;cursor:pointer}
.sp-menu-toggle svg{width:1.25rem;height:1.25rem}
.sp-navigation a:focus-visible,.sp-navigation button:focus-visible,.sp-navigation summary:focus-visible{outline:2px solid var(--sp-color-brand-blue,#1705e5);outline-offset:3px}
.sp-nav-tools{display:flex;gap:.35rem;align-items:center;margin-left:0}
.sp-nav-tools a,.sp-nav-tools button{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:0;border-radius:0;background:transparent;color:#6a6f80;padding:.5rem;cursor:pointer}
.sp-nav-tools svg{width:1.2rem;height:1.2rem}
.sp-nav-tools a:hover,.sp-nav-tools button:hover{background:transparent;color:var(--sp-color-brand-blue,#1705e5)}
.sp-navigation .sp-nav-links .sp-mobile-extra{display:none}
.sp-share-status{position:absolute;right:2.5%;top:calc(100% + .5rem);padding:0;border-radius:6px;background:var(--sp-color-navy,#06004a);color:var(--sp-color-surface,#fff);font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;box-shadow:none}
.sp-share-status:not(:empty){padding:.6rem 1rem}
.tool-rail{top:var(--sp-nav-height)}
body.reduced-motion.has-scrolled .drawing-toolbar,body.reduced-motion.has-scrolled .settings-toolbar{opacity:0}

/* One overview and one aligned reading column; native details behavior is retained. */
.sp-resources-menu{position:relative;flex:none}
.sp-navigation .sp-nav-links .sp-resources-menu>summary{gap:.55rem;cursor:pointer;list-style:none;user-select:none}
.sp-resources-menu>summary::-webkit-details-marker{display:none}
.sp-resources-chevron{width:.45rem;height:.45rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-.12rem) rotate(45deg);transition:transform .15s}
.sp-resources-menu[open] .sp-resources-chevron{transform:translateY(.1rem) rotate(225deg)}
.sp-resources-panel{position:absolute;top:calc(100% + .65rem);left:50%;z-index:90;width:20rem;max-width:calc(100vw - 2rem);padding:1.35rem 1.5rem .65rem;background:var(--sp-color-surface,#fff);border:1px solid #dce3ed;border-radius:6px;box-shadow:none;transform:translateX(-50%);color:var(--sp-color-navy,#06004a)}
.sp-resources-panel__head{display:grid;gap:.3rem;padding:0 0 .85rem;border-bottom:1px solid #dce3ed}
.sp-resources-panel__head>span{color:#738096;font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0.06em;text-transform:uppercase;font-feature-settings:"tnum" 1,"ss01" 1}
.sp-resources-panel__grid{display:block;padding-top:.3rem}
.sp-resources-panel__grid>div{display:contents}
.sp-navigation .sp-nav-links .sp-resources-panel a{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.75rem;padding:.7rem 0;border:0;border-bottom:1px solid #edf1f6;border-radius:0;background:transparent;color:var(--sp-color-navy,#06004a);font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;transition:color .15s,border-color .15s}
.sp-navigation .sp-nav-links .sp-resources-panel__head>a{padding:.4rem 0;border-bottom:0;color:var(--sp-color-navy,#06004a);font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0}
.sp-navigation .sp-nav-links .sp-resources-panel__grid>div:last-child>a:last-child{border-bottom:0}
.sp-navigation .sp-nav-links .sp-resources-panel a span:last-child{color:#7b8aa0;font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;transition:color .15s,transform .15s}
.sp-navigation .sp-nav-links .sp-resources-panel__head>a span{color:var(--sp-color-brand-blue,#1705e5)}
.sp-navigation .sp-nav-links .sp-resources-panel a:hover,.sp-navigation .sp-nav-links .sp-resources-panel a:focus-visible,.sp-navigation .sp-nav-links .sp-resources-panel a[aria-current]{color:var(--sp-color-brand-blue,#1705e5);background:transparent;border-bottom-color:#b8c5da}
.sp-navigation .sp-nav-links .sp-resources-panel a:is(:hover,:focus-visible,[aria-current]) span:last-child{color:var(--sp-color-brand-blue,#1705e5);transform:translateX(2px)}
.sp-navigation .sp-nav-links .sp-resources-panel a[aria-current]::before{content:"";position:absolute;left:-.7rem;top:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--sp-color-brand-blue,#1705e5)}

@media(max-width:75rem){
  :root{--sp-nav-height:4rem}
  .sp-navigation,.site-header.sp-navigation,.past-hero .site-header.sp-navigation{padding-inline:1rem;gap:.65rem}
  .sp-nav-brand img{width:7.25rem}
  .sp-navigation .sp-waitlist{margin-left:auto;font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0;gap:.45rem;min-height:2.75rem;padding:.25rem .8rem .25rem .3rem}
  .sp-person{width:1.95rem;height:1.95rem}
  .sp-join-arrow{display:none}
  .nav-ready .sp-menu-toggle{display:flex}
  .sp-nav-tools{display:none}
  .sp-subpage section[id]{scroll-margin-top:5.5rem}
  html.nav-menu-open,html.nav-menu-open body{overflow:hidden}
  .sp-navigation .sp-nav-links{position:fixed;top:var(--sp-nav-height);left:0;right:0;bottom:0;height:calc(100dvh - var(--sp-nav-height));max-height:calc(100dvh - var(--sp-nav-height));margin:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:.5rem clamp(1rem,4vw,2rem) calc(2rem + env(safe-area-inset-bottom));border:0;box-shadow:none;background:var(--sp-color-surface,#fff);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .nav-ready .sp-navigation .sp-nav-links{display:none}
  .nav-ready .sp-navigation.menu-open .sp-nav-links{display:flex}
  .sp-navigation .sp-nav-links>a,.sp-navigation .sp-nav-links .sp-mobile-extra,.sp-navigation .sp-nav-links .sp-resources-menu>summary{width:100%;min-height:3.5rem;margin:0;padding:.8rem 1rem;border:0;border-bottom:1px solid #e8edf4;border-radius:0;background:transparent;color:var(--sp-color-navy,#06004a);font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0}
  .sp-navigation .sp-nav-links>a::after,.sp-navigation .sp-nav-links .sp-resources-menu>summary::after{display:none}
  .sp-navigation .sp-nav-links>a:is(:hover,:focus-visible,.active,[aria-current]),.sp-navigation .sp-nav-links .sp-resources-menu>summary:is(:hover,:focus-visible,.active),.sp-navigation .sp-nav-links .sp-resources-menu[open]>summary{background:transparent;color:var(--sp-color-brand-blue,#1705e5)}
  .sp-navigation .sp-nav-links .sp-mobile-extra{display:flex;font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;color:#667084}
  .sp-navigation .sp-nav-links .sp-resources-menu>summary{justify-content:space-between}
  .sp-resources-menu{width:100%}
  .sp-resources-chevron{margin-left:auto}
  .sp-resources-panel{position:static;width:auto;max-width:none;margin:.3rem 0 .7rem .5rem;padding:0 0 0 1.25rem;border:0;border-left:1px solid #dce3ed;border-radius:0;box-shadow:none;background:var(--sp-color-surface,#fff);transform:none}
  .sp-resources-panel__head{display:block;margin:0;padding:0;border:0}
  .sp-resources-panel__head>span{display:none}
  .sp-resources-panel__grid{display:block;padding:0}
  .sp-navigation .sp-nav-links .sp-resources-panel a,.sp-navigation .sp-nav-links .sp-resources-panel__head>a{min-height:2.75rem;padding:.6rem .1rem;border:0;border-bottom:1px solid #edf1f6;border-radius:0;background:transparent;color:#535e72;font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0}
  .sp-navigation .sp-nav-links .sp-resources-panel__head>a{color:var(--sp-color-navy,#06004a);font-weight:500}
  .sp-navigation .sp-nav-links .sp-resources-panel a:is(:hover,:focus-visible,[aria-current]){background:transparent;color:var(--sp-color-brand-blue,#1705e5);border-bottom-color:#b8c5da}
  .sp-navigation .sp-nav-links .sp-resources-panel a span:last-child{display:none}
  .sp-navigation.menu-open .sp-menu-toggle{position:relative;border-color:#c4d0df;background:var(--sp-color-surface,#fff);color:var(--sp-color-brand-blue,#1705e5)}
  .sp-navigation.menu-open .sp-menu-toggle svg{visibility:hidden}
  .sp-navigation.menu-open .sp-menu-toggle::before,.sp-navigation.menu-open .sp-menu-toggle::after{content:"";position:absolute;left:50%;top:50%;width:1.05rem;height:1.5px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
  .sp-navigation.menu-open .sp-menu-toggle::after{transform:translate(-50%,-50%) rotate(-45deg)}
}
@media(max-width:23rem){.sp-navigation,.site-header.sp-navigation,.past-hero .site-header.sp-navigation{padding-inline:.7rem;gap:.45rem}.sp-nav-brand img{width:6.3rem}.sp-navigation .sp-waitlist{font-size:16px;font-weight:500;line-height:1.2;letter-spacing:0;padding-right:.65rem;gap:.35rem}.sp-person{width:1.75rem;height:1.75rem}}
@media(prefers-reduced-motion:reduce){.sp-navigation *{transition:none!important}}

/* type system: top-level nav links use the .label style (14px / 500 / +0.06em / uppercase) at every width */
.sp-navigation .sp-nav-links>a,.sp-navigation .sp-nav-links .sp-resources-menu>summary{font-size:14px;font-weight:500;line-height:1.5;letter-spacing:0.06em;text-transform:uppercase;font-feature-settings:"tnum" 1,"ss01" 1}
/* in the inline bar (744px and up) the links sit a step under the label size; the phone menu keeps 14px */
@media (min-width:46.5rem){.sp-navigation .sp-nav-links>a,.sp-navigation .sp-nav-links .sp-resources-menu>summary{font-size:13px}}
/* Without navigation JavaScript, keep every route available in document flow. */
@media (max-width:75rem){
 html:not(.nav-ready) .sp-navigation.site-header{
  position:relative;top:auto;left:auto;right:auto;height:auto;min-height:var(--sp-nav-height);
  flex-wrap:wrap;padding-bottom:.5rem
 }
 html:not(.nav-ready) .sp-navigation .sp-nav-links{
  position:static;flex:1 0 100%;height:auto;max-height:none;overflow:visible;
  padding:0;background:var(--sp-color-surface,#fff)
 }
 html:not(.nav-ready) .sp-navigation .sp-nav-links>a,
 html:not(.nav-ready) .sp-navigation .sp-nav-links .sp-resources-menu>summary{min-height:2.75rem}
}

/* Page transition: six Spacial-blue columns rise from the bottom, left first, to cover the page; on the next page they
   carry on upward and off the top. navigation.js runs it; the nav component covers an arriving page before it paints. */
.sp-curtain{position:fixed;inset:0;z-index:2147483000;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));pointer-events:none}
.sp-curtain span{margin-right:-1px;background:var(--sp-color-brand-blue,#1705E5);transform:scaleY(0);transform-origin:50% 100%;
  transition:transform .34s cubic-bezier(.7,0,.25,1) calc(var(--i,0) * 45ms)}
.sp-curtain.is-covering,.sp-curtain.is-covered{pointer-events:auto}
.sp-curtain.is-covering span,.sp-curtain.is-covered span{transform:scaleY(1)}
.sp-curtain.is-covered span{transition:none}
.sp-curtain.is-lifting span{transform:scaleY(0);transform-origin:50% 0}

/* site-nav.css */
/* Site navigation, shared by every page: a floating inset card (12px from the edges, 6px corners) with label-style links,
   the Resources mega menu (resources-menu.css), full wordmark that compacts to the mark on scroll, and a floating phone menu. */
.sp-navigation{transition:background-color .3s,border-color .3s}
.site-header.sp-navigation{border-bottom:0}
/* floating nav: the same white inset card with 6px corners and a hairline on every page. The one exception is the
   homepage film, where it turns transparent with light text (.sh-onfilm, set by home-hero.js); with a menu open,
   the panel attaches below as one card. */
:root{--sh-nav-inset:12px}
.site-header.sp-navigation{top:var(--sh-nav-inset);left:var(--sh-nav-inset);right:var(--sh-nav-inset);border-radius:6px;transition:background-color .3s,box-shadow .3s,border-radius .2s}
/* flat: a hairline ring instead of a shadow */
.site-header.sp-navigation:not(.sh-onfilm):not(.sh-mega-open):not(.menu-open){background:#fff;box-shadow:none}
/* homepage: no card behind the nav until the scroll trigger */
.site-header.sp-navigation.sh-home:not(.sh-compact):not(.sh-mega-open):not(.menu-open){background:transparent}
.site-header.sp-navigation:is(.sh-mega-open,.menu-open){border-radius:6px 6px 0 0;box-shadow:inset 1px 0 0 #E6E6EA,inset -1px 0 0 #E6E6EA,inset 0 1px 0 #E6E6EA}
@media (max-width:46.49rem){
  .sp-navigation .sp-nav-links,.nav-ready .sp-navigation.menu-open .sp-nav-links{top:calc(var(--sh-nav-inset) + var(--sp-nav-height));left:var(--sh-nav-inset);right:var(--sh-nav-inset);bottom:var(--sh-nav-inset);height:auto;max-height:none;border-radius:0 0 6px 6px;box-shadow:inset 1px 0 0 #E6E6EA,inset -1px 0 0 #E6E6EA,inset 0 -1px 0 #E6E6EA}
}
.sp-navigation .sp-waitlist{padding:.3rem 1.1rem}
@media (min-width:75.01rem){.sp-navigation .sp-nav-links{gap:calc(32px - 1.1rem)}}

/* 744px (smallest tablet) to 1200px: keep the full nav visible, scaled down; the hamburger appears only below 744px.
   These undo navigation.css's max-width:75rem mobile-menu rules for this range. */
@media (min-width:46.5rem) and (max-width:75rem){
  .nav-ready .sp-menu-toggle{display:none}
  .sp-navigation .sp-nav-links,.nav-ready .sp-navigation .sp-nav-links,.nav-ready .sp-navigation.menu-open .sp-nav-links{position:static;display:flex;flex-direction:row;align-items:center;justify-content:center;height:auto;max-height:none;margin:auto;padding:0;gap:clamp(0rem,2.4vw - 1.1rem,1rem);border:0;background:transparent;overflow:visible}
  .sp-navigation .sp-nav-links>a,.sp-navigation .sp-nav-links .sp-resources-menu>summary{width:auto;min-height:2.75rem;margin:0;padding:.6rem clamp(.3rem,1vw - .25rem,.55rem);border:0;color:#48455e;justify-content:flex-start}
  .sp-navigation .sp-nav-links>a::after,.sp-navigation .sp-nav-links .sp-resources-menu>summary::after{display:block;left:clamp(.3rem,1vw - .25rem,.55rem);right:clamp(.3rem,1vw - .25rem,.55rem)}
  .sp-navigation .sp-nav-links .sp-mobile-extra{display:none}
  .sp-navigation .sp-resources-menu{width:auto}
  .sp-navigation .sp-resources-chevron{margin-left:0}
  .sp-navigation .sp-nav-brand,.sp-navigation .sp-nav-brand img{height:clamp(20px,1.1rem + .45vw,26px)}
  .sp-navigation .sp-waitlist{margin-left:0;padding:.3rem clamp(.75rem,1.4vw,1.1rem)}
}
/* small tablets: the uppercase links need the room, so the brand shows the mark only */
@media (min-width:46.5rem) and (max-width:64rem){
  .sp-navigation .sp-nav-brand .sh-logo-full,.sp-navigation .sp-nav-brand .sh-logo-lt{opacity:0!important;visibility:hidden!important}
  .sp-navigation .sp-nav-brand .sh-logo-mark{opacity:1!important;visibility:visible!important;transform:none}
  .sp-navigation .sp-nav-brand{width:26px}
}

/* hamburger: icon only, no box */
.sp-navigation .sp-menu-toggle,.sp-navigation.menu-open .sp-menu-toggle{border:0;background:transparent;border-radius:0;margin-left:-.5rem}
.sp-navigation .sp-nav-brand{position:relative;height:26px}
.sp-navigation .sp-nav-brand img{width:auto;height:26px;max-width:none;transition:opacity .35s ease,transform .35s ease,visibility 0s}
.sp-navigation .sp-nav-brand .sh-logo-lt,.sp-navigation .sp-nav-brand .sh-logo-mark{position:absolute;left:0;top:0;opacity:0;visibility:hidden}
.sp-navigation .sp-nav-brand .sh-logo-mark{transform:translateY(4px)}
.sp-navigation .sp-nav-brand:hover img{opacity:.55}
.sp-navigation .sp-nav-links>a,.sp-navigation .sp-nav-links .sp-resources-menu>summary,.sp-navigation .sp-nav-tools a,.sp-navigation .sp-nav-tools button{transition:color .25s}
.sp-navigation .sp-waitlist,.sp-navigation .sp-menu-toggle{transition:background-color .25s,border-color .25s,color .25s}

/* compact: mark only (homepage: past mid-hero; other pages: after scrolling) */
.sp-navigation.sh-compact .sh-logo-full,.sp-navigation.sh-compact .sh-logo-lt{opacity:0!important;visibility:hidden!important;transform:translateY(-4px)}
.sp-navigation.sh-compact .sh-logo-mark{opacity:1;visibility:visible;transform:none}
.sp-navigation.sh-compact .sp-nav-brand:hover .sh-logo-mark{opacity:.55}

/* inner pages: content starts below the floating nav */
.sp-subpage{padding-top:calc(var(--sp-nav-height) + 2 * var(--sh-nav-inset))}

/* homepage only: over the full-bleed film the card turns transparent with light text (.sh-onfilm is set by home-hero.js) */
/* on the full-bleed film */
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open){background:transparent;border-bottom-color:transparent}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sh-logo-full{opacity:0;visibility:hidden}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sh-logo-lt{opacity:1;visibility:visible}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-brand:hover .sh-logo-lt{opacity:.55}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-links>a,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-links .sp-resources-menu>summary,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-tools a,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-tools button{color:#fff}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-links>a:hover,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-links .sp-resources-menu>summary:hover,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-tools a:hover,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-tools button:hover{color:#3E68FF}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-links>a::after,.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-nav-links .sp-resources-menu>summary::after{background:#3E68FF}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-waitlist{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;box-shadow:none}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-waitlist:hover{background:rgba(255,255,255,.12)}
.sp-navigation.sh-onfilm:not(.menu-open):not(.sh-mega-open) .sp-menu-toggle{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}

/* resources-menu.css */
/* Resources mega menu. 744px and up: full-width panel under the nav. Below 744px: stacked list inside the mobile menu. */
.sp-mega__heading{margin:0;font-size:14px;line-height:1.5;font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-feature-settings:"tnum" 1,"ss01" 1;color:var(--sp-color-navy,#06004a)}
.sp-navigation .sp-nav-links .sp-mega a{display:block;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:#626077;font-size:16px;line-height:1.4;font-weight:400;letter-spacing:0;transition:color .15s}
.sp-navigation .sp-nav-links .sp-mega a:is(:hover,:focus-visible){color:var(--sp-color-brand-blue,#1705e5);border:0}
/* span:last-child selectors match the specificity of the legacy dropdown rules in navigation.css */
.sp-navigation .sp-nav-links .sp-mega a span,.sp-navigation .sp-nav-links .sp-mega a span:last-child,.sp-navigation .sp-nav-links .sp-mega a:is(:hover,:focus-visible) span:last-child{display:block;color:inherit;font-size:inherit;transform:none}
.sp-navigation .sp-nav-links .sp-mega a span[aria-hidden],.sp-navigation .sp-nav-links .sp-mega a span[aria-hidden]:last-child{display:inline}
.sp-navigation .sp-nav-links .sp-mega a span.sp-mega__meta{font-size:16px;line-height:1.4;font-weight:400;color:#6B6881}
.sp-navigation .sp-nav-links .sp-mega a span.sp-mega__title:last-child{font-size:22px;line-height:1.3;font-weight:500;letter-spacing:-.01em;color:var(--sp-color-navy,#06004a);text-wrap:pretty}
.sp-navigation .sp-nav-links .sp-mega a span.sp-mega__news-title:last-child{font-size:22px;line-height:1.3;font-weight:500;letter-spacing:-.01em;color:var(--sp-color-navy,#06004a)}
.sp-navigation .sp-nav-links .sp-mega a:is(:hover,:focus-visible) span:is(.sp-mega__title,.sp-mega__news-title):last-child{color:var(--sp-color-brand-blue,#1705e5)}
.sp-mega__feature img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#F7F7F5}

@media (min-width:46.5rem){
  .sp-navigation .sp-resources-menu.sp-mega-menu{position:static}
  /* the panel hangs from the floating nav as one card: same inset, square top, 6px bottom corners, a hairline down the sides and along the bottom (no shadow).
     It tucks 1px under the nav so the two white surfaces overlap and no compositing seam can show between them. */
  .sp-navigation .sp-resources-panel.sp-mega{position:fixed;top:calc(var(--sh-nav-inset,0px) + var(--sp-nav-height) - 1px);left:var(--sh-nav-inset,0px);right:var(--sh-nav-inset,0px);width:auto;max-width:none;max-height:calc(100vh - var(--sp-nav-height) - 2 * var(--sh-nav-inset,0px));overflow-y:auto;margin:0;padding:0;border:0;border-radius:0 0 6px 6px;transform:none;background:#fff;
    box-shadow:inset 1px 0 0 #E6E6EA,inset -1px 0 0 #E6E6EA,inset 0 -1px 0 #E6E6EA;animation:sp-mega-in .2s ease-out}
  .sp-mega__inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.4fr);gap:48px;padding:32px clamp(1rem,2.5vw,3.5rem) 40px}
  .sp-mega__primary{display:flex;flex-direction:column;gap:12px}
  .sp-navigation .sp-nav-links .sp-mega .sp-mega__primary a{font-size:22px;line-height:1.3;font-weight:400;letter-spacing:-.01em;color:var(--sp-color-navy,#06004a)}
  .sp-navigation .sp-nav-links .sp-mega .sp-mega__primary a:is(:hover,:focus-visible){color:var(--sp-color-brand-blue,#1705e5)}
  .sp-mega__col{display:flex;flex-direction:column;gap:12px}
  .sp-mega__col .sp-mega__heading,.sp-mega__latest .sp-mega__heading{margin-bottom:4px}
  .sp-navigation .sp-nav-links .sp-mega .sp-mega__all{margin-top:4px;color:var(--sp-color-navy,#06004a);font-weight:400}
  .sp-mega__latest{display:flex;flex-direction:column;gap:12px;max-width:440px;justify-self:end;width:100%}
  .sp-mega__feature img{margin-bottom:12px}
  .sp-mega__feature .sp-mega__meta{margin-bottom:4px}
  .sp-mega__heading--news{margin-top:12px;padding-top:16px;border-top:1px solid #EDEDF2}
  .sp-mega__news .sp-mega__meta{margin-bottom:2px}
}
@media (min-width:46.5rem) and (max-width:68.75rem){
  .sp-mega__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 40px}
  .sp-mega__latest{justify-self:stretch;max-width:none}
}
/* Orbit peeks up from the panel's bottom-left corner while "Meet Orbit" is hovered or focused */
.sp-mega__orbit{display:none}
@media (min-width:46.5rem){
  .sp-mega__orbit{display:block;position:absolute;left:clamp(1rem,2.5vw,3.5rem);bottom:0;width:320px;height:255px;overflow:hidden;pointer-events:none}
  .sp-mega__orbit img{position:absolute;left:0;bottom:0;width:290px;height:auto;transform-origin:30% 100%;transform:translate(-40%,105%) rotate(-24deg);transition:transform .38s cubic-bezier(.4,0,.6,1)}
  .sp-mega:has(.sp-mega__primary a[href$="orbit.html"]:is(:hover,:focus-visible)) .sp-mega__orbit img{transform:translate(6px,16%) rotate(11deg);transition:transform .6s cubic-bezier(.34,1.5,.5,1)}
}
@media (prefers-reduced-motion:reduce){.sp-mega__orbit img{transition:none!important}}
@keyframes sp-mega-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes sp-mega-dim{from{opacity:0}to{opacity:1}}
/* page dimming lives outside the nav (added by resources-menu.js) so it covers the whole viewport, including around the floating card */
.sp-mega-dim{position:fixed;inset:0;z-index:79;background:rgba(4,0,46,.28);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}
.sp-mega-dim.is-on{opacity:1;visibility:visible;transition:opacity .2s ease}
@media (prefers-reduced-motion:reduce){.sp-mega-dim,.sp-mega-dim.is-on{transition:none}}

@media (max-width:46.49rem){
  .sp-mega__inner{display:flex;flex-direction:column;gap:0;padding-bottom:12px}
  .sp-mega__heading{margin:18px 0 4px;font-size:14px;line-height:1.5;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#738096}
  .sp-navigation .sp-nav-links .sp-mega a{min-height:2.75rem;padding:.6rem .1rem;border-bottom:1px solid #edf1f6;font-size:16px;line-height:1.4;color:#535e72}
  .sp-navigation .sp-nav-links .sp-mega .sp-mega__primary a{color:var(--sp-color-navy,#06004a);font-size:16px;line-height:1.4;font-weight:400;letter-spacing:0}
  .sp-navigation .sp-nav-links .sp-mega .sp-mega__feature{display:grid;grid-template-columns:96px 1fr;grid-template-rows:auto 1fr;column-gap:12px;row-gap:2px;align-items:start;padding:.75rem .1rem}
  .sp-mega__feature img{grid-row:1 / span 2;aspect-ratio:4/3}
  .sp-navigation .sp-nav-links .sp-mega a span.sp-mega__meta{font-size:16px;line-height:1.4}
  .sp-navigation .sp-nav-links .sp-mega a span.sp-mega__title:last-child{font-size:16px;line-height:1.4;font-weight:400;letter-spacing:0}
  .sp-navigation .sp-nav-links .sp-mega .sp-mega__news{padding:.75rem .1rem}
}
@media (prefers-reduced-motion:reduce){.sp-navigation .sp-resources-panel.sp-mega{animation:none}}

/* Webflow: every page except the homepage starts below the fixed nav. The repo does this with body.sp-subpage; the Webflow
   pages replaced the old navbar rule body:has(>#top.navbar.w-nav){padding-top:4.5rem} that only matched the old nav. */
body:not(:has(#sh-film)):has(.sp-navigation){padding-top:var(--sp-nav-height)}
