/* NOVA Data Centers — design tokens derived from NOVA_Corporate_Deck_v5_Eng.pptx.
   Sampled from the deck's slide XML / renders: navy #0F3869, blue #0070C0 (headings), #2070BE (label bars),
   green #009848 (cover accent rule), ink #212529, greys #5A636B #6B747C #8A939B #C4CBD4 #D8DEE3 #E9ECEF.
   The NOVA logo itself is pure black (#000000) and is used unmodified. */
:root {
	--nova-primary: #0F3869;
	--nova-background: #ffffff;
	--nova-surface: #F4F6F8;           /* tint of deck grey E9ECEF */
	--nova-surface-2: #E9ECEF;
	--nova-text: #212529;
	--nova-muted: #5A636B;
	--nova-border: #D8DEE3;
	--nova-accent: #0070C0;
	--nova-accent-2: #2070BE;
	--nova-green: #009848;
	--nova-logo: #000000;
	--nova-link: #0070C0;
	--nova-focus: #0F3869;
	--nova-on-dark-muted: #B9CCE3;
	--nova-gradient-navy: linear-gradient(135deg, #0F3869 0%, #0A2850 100%);
	--nova-gradient-hero: linear-gradient(180deg, #ffffff 0%, #F4F6F8 100%);
	/* data visualization */
	--viz-dev: #0F3869; --viz-talks: #2070BE; --viz-pipe: #009848; --viz-hist: #0070C0; --viz-land: #B7CFE6; --viz-land-hover: #A4C2E0; --viz-sea: #E9F2FA;
	--container: 1240px;
	--gutter: clamp(1rem, 4vw, 2.25rem);
	--font: "Jost", Futura, "Century Gothic", "Avenir Next", "Trebuchet MS", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ease: cubic-bezier(.2, .7, .2, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body { margin: 0; font-family: var(--font); color: var(--nova-text); background: var(--nova-background); line-height: 1.6; font-size: 1.0625rem; overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--nova-link); text-underline-offset: .2em; }
a:hover { color: var(--nova-primary); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--nova-focus); outline-offset: 3px; }
.section--navy :focus-visible, .btn--light:focus-visible { outline-color: #fff; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--nova-primary); color: #fff; padding: .75rem 1rem; z-index: 100; }
.skip-link:focus { left: 0; }
.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
h1, h2, h3 { line-height: 1.08; letter-spacing: -.025em; margin: 0 0 1rem; font-weight: 600; text-wrap: balance; }
h1 { font-size: clamp(2.3rem, 5.6vw, 4.4rem); letter-spacing: -.03em; }
h2 { font-size: clamp(1.55rem, 2.8vw, 2.25rem); letter-spacing: -.02em; }
h3 { font-size: 1.2rem; letter-spacing: -.01em; }
.subhead { margin-top: 3rem; }
p { margin: 0 0 1rem; }
.lead { font-size: clamp(1.05rem, 1.5vw, 1.2rem); color: var(--nova-muted); max-width: 46rem; line-height: 1.5; }
.muted { color: var(--nova-muted); }
.fineprint { font-size: .875rem; color: var(--nova-muted); max-width: 56rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; font-weight: 600; color: var(--nova-accent-2); margin: 0 0 .75rem; }
.quote { font-size: clamp(1.2rem, 1.8vw, 1.45rem); font-weight: 500; line-height: 1.25; color: var(--nova-primary); }
.prose { max-width: 46rem; } .prose ul { padding-left: 1.2rem; }
.arrow-link { font-weight: 600; text-decoration: none; display: inline-flex; gap: .5rem; align-items: center; }
.arrow-link::after { content: "→"; transition: transform .25s var(--ease); }
.arrow-link:hover::after { transform: translateX(5px); }

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--nova-border); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 76px; }
.brand img, .custom-logo { width: clamp(104px, 11vw, 132px); height: auto; }
.primary-nav { display: flex; align-items: center; gap: 1.5rem; }
.primary-nav .menu { list-style: none; display: flex; gap: 1.4rem; margin: 0; padding: 0; align-items: center; }
.primary-nav .menu a { text-decoration: none; font-size: .95rem; font-weight: 500; padding: .5rem 0; display: inline-block; color: var(--nova-text); background: linear-gradient(var(--nova-accent-2), var(--nova-accent-2)) 0 100% / 0 2px no-repeat; transition: background-size .3s var(--ease); }
.primary-nav .menu a:hover, .primary-nav .current-menu-item > a { background-size: 100% 2px; }
.menu-item-has-children { position: relative; display: flex; align-items: center; }
.submenu-toggle { background: none; border: 0; cursor: pointer; padding: .4rem .3rem; font-size: .8rem; color: var(--nova-text); }
.sub-menu { list-style: none; margin: 0; padding: .5rem 0; position: absolute; top: 100%; left: -1rem; min-width: 15rem; background: #fff; border: 1px solid var(--nova-border); box-shadow: 0 18px 40px rgba(15,56,105,.12); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .25s var(--ease), visibility .2s; }
.menu-item-has-children.is-open > .sub-menu, .menu-item-has-children:hover > .sub-menu, .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.sub-menu a { display: block; padding: .5rem 1.25rem !important; }
.nav-toggle { display: none; background: none; border: 1px solid var(--nova-border); width: 46px; height: 46px; cursor: pointer; }
.nav-toggle__bars, .nav-toggle__bars::before, .nav-toggle__bars::after { display: block; width: 20px; height: 2px; background: var(--nova-primary); margin: auto; position: relative; content: ""; transition: transform .3s var(--ease), background .2s; }
.nav-toggle__bars::before { position: absolute; top: -6px; } .nav-toggle__bars::after { position: absolute; top: 6px; }
.nav-toggle[aria-expanded=true] .nav-toggle__bars { background: transparent; }
.nav-toggle[aria-expanded=true] .nav-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded=true] .nav-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 1100px) {
	.nav-toggle { display: block; }
	.primary-nav { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--nova-border); flex-direction: column; align-items: stretch; padding: 0 var(--gutter); max-height: 0; overflow: hidden; visibility: hidden; transition: max-height .45s var(--ease), padding .3s, visibility .45s; }
	.primary-nav.is-open { max-height: calc(100vh - 76px); overflow: auto; visibility: visible; padding-block: 1rem 1.75rem; }
	.primary-nav .menu { flex-direction: column; align-items: stretch; gap: 0; }
	.primary-nav .menu a { padding: .8rem 0; font-size: 1.05rem; }
	.menu-item-has-children { flex-wrap: wrap; }
	.menu-item-has-children > a { flex: 1; }
	.sub-menu { position: static; display: none; width: 100%; border: 0; box-shadow: none; padding: 0 0 0 1rem; opacity: 1; visibility: visible; transform: none; }
	.menu-item-has-children:hover > .sub-menu, .menu-item-has-children:focus-within > .sub-menu { display: none; }
	.menu-item-has-children.is-open > .sub-menu { display: block; }
}

/* Buttons */
.btn { display: inline-block; background: var(--nova-primary); color: #fff; border: 2px solid var(--nova-primary); padding: .85rem 1.5rem; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, transform .25s var(--ease), box-shadow .25s; }
.btn:hover { background: var(--nova-accent); border-color: var(--nova-accent); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,112,192,.25); }
.btn--ghost { background: transparent; color: var(--nova-primary); }
.btn--ghost:hover { background: var(--nova-primary); border-color: var(--nova-primary); }
.btn--light { background: #fff; color: var(--nova-primary); border-color: #fff; }
.btn--light:hover { background: transparent; color: #fff; border-color: #fff; box-shadow: none; }
.btn--small { padding: .55rem 1.1rem; font-size: .92rem; }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

/* Sections */
.section { padding-block: clamp(3rem, 7vw, 5.5rem); }
.section--surface { background: var(--nova-surface); }
.section--navy { background: var(--nova-gradient-navy); color: #fff; position: relative; overflow: hidden; }
.section--navy::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 120px); pointer-events: none; }
.section--navy > .container { position: relative; }
.section--navy .eyebrow { color: #8FBCE8; } .section--navy .lead, .section--navy .muted { color: var(--nova-on-dark-muted); }
.section--navy a:not(.btn) { color: #fff; }
.hero { padding-block: clamp(3rem, 8vw, 6.5rem); background: var(--nova-gradient-hero); border-bottom: 1px solid var(--nova-border); position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(15,56,105,.05) 0 1px, transparent 1px 96px), repeating-linear-gradient(0deg, rgba(15,56,105,.05) 0 1px, transparent 1px 96px); mask-image: linear-gradient(90deg, #000, transparent 85%); pointer-events: none; }
.hero__inner { display: grid; gap: 3rem; align-items: center; position: relative; }
.hero--image .hero__inner { grid-template-columns: 1.15fr .85fr; }
.hero__visual { overflow: hidden; border: 1px solid var(--nova-border); background: #fff; box-shadow: 0 30px 60px rgba(15,56,105,.12); }
.hero__visual img { width: 100%; max-height: 560px; object-fit: cover; transform: scale(1.08); will-change: transform; }
.hero h1 { max-width: 14ch; color: var(--nova-primary); }
.hero:not(.hero--image) { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.hero:not(.hero--image) h1 { max-width: 26ch; font-size: clamp(1.9rem, 3.8vw, 3rem); letter-spacing: -.025em; }
@media (max-width: 860px) { .hero--image .hero__inner { grid-template-columns: 1fr; } .hero__visual { order: -1; } .hero__visual img { max-height: 240px; } }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.rise { animation: rise .9s var(--ease) both; } .hero .eyebrow.rise { animation-delay: .05s; } .hero h1.rise { animation-delay: .15s; } .hero .lead.rise { animation-delay: .3s; } .hero .actions { animation: rise .9s .45s var(--ease) both; }

/* Reveal (only hides content when JS is running) */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* Grids and cards */
.grid { display: grid; gap: clamp(1rem, 3vw, 2rem); margin-top: 1.5rem; }
.grid--2 { grid-template-columns: repeat(2, 1fr); } .grid--3 { grid-template-columns: repeat(3, 1fr); } .grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--split { grid-template-columns: 1fr 1.4fr; gap: clamp(1.5rem, 6vw, 5rem); margin-top: 0; }
@media (max-width: 1000px) { .grid--4, .grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .grid--2, .grid--3, .grid--4, .grid--split { grid-template-columns: 1fr; } }
.card { background: #fff; border: 1px solid var(--nova-border); padding: 1.6rem; transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .2s; }
.card:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(15,56,105,.10); border-color: var(--nova-accent-2); }
.project:target, .project.is-flash { border-color: var(--nova-accent); box-shadow: 0 0 0 3px rgba(0,112,192,.25); }
.project__cap { font-size: 2.2rem; font-weight: 600; letter-spacing: -.03em; margin: .6rem 0 0; color: var(--nova-primary); }
.chip { display: inline-block; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .09em; padding: .28rem .65rem; border: 1.5px solid currentColor; }
.chip--dev { color: var(--viz-dev); } .chip--talks { color: #1A5A9A; } .chip--pipe { color: #00703A; }
.chip--in-contract-negotiations { background: #E8F1FA; }
.chip--dev::before { content: "● "; } .chip--talks::before { content: "◯ "; } .chip--pipe::before { content: "◆ "; }
.person { display: flex; flex-direction: column; border-top: 3px solid var(--nova-accent-2); padding: 1.5rem 1.4rem 1.3rem; }
.person__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.person__head h3 { margin: 0; font-size: 1.15rem; line-height: 1.2; }
.person__role { margin: .2rem 0 0; font-size: .82rem; font-weight: 500; color: var(--nova-accent); line-height: 1.35; }
.person__avatar { flex: none; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--nova-gradient-navy); color: #fff; font-weight: 600; font-size: 1.05rem; letter-spacing: .06em; box-shadow: 0 0 0 4px #E8F1FA; overflow: hidden; }
.person__avatar--photo img { width: 100%; height: 100%; object-fit: cover; }
.person__lead { font-size: .95rem; color: var(--nova-muted); margin-bottom: .75rem; line-height: 1.5; }
.person--compact { padding-block: 1.25rem; }
.bio { margin-top: auto; border-top: 1px solid var(--nova-border); padding-top: .6rem; }
.bio summary { cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--nova-primary); list-style: none; display: flex; justify-content: space-between; align-items: center; }
.bio summary::-webkit-details-marker { display: none; } .bio summary::after { content: "+"; font-size: 1.2rem; font-weight: 400; transition: transform .25s var(--ease); } .bio[open] summary::after { transform: rotate(45deg); }
.bio ul { padding-left: 1.1rem; margin: .75rem 0 0; font-size: .88rem; color: var(--nova-muted); }
.bio li { margin-bottom: .35rem; }

/* Partners */
.partner__logo { height: 84px; display: flex; align-items: center; margin-bottom: 1.25rem; }
.logo-img { max-height: 58px; width: auto; max-width: 100%; object-fit: contain; }
.partner__wordmark { font-weight: 700; font-size: 1.7rem; letter-spacing: .04em; color: var(--nova-text); }
.partner h3 { font-size: 1.05rem; color: var(--nova-accent-2); margin-bottom: .25rem; }
.partner__name { font-weight: 600; margin-bottom: .5rem; }
.logo-strip { list-style: none; padding: 0; margin: 2rem 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--nova-border); border: 1px solid var(--nova-border); }
.logo-strip li { background: #fff; display: grid; place-items: center; min-height: 110px; padding: 1.25rem; }
.logo-strip .logo-img { max-height: 44px; }

/* Metrics, stages, lists */
.metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-bottom: 1.5rem; border-top: 2px solid var(--nova-primary); }
.metric { padding: 1.5rem 1.75rem 1.25rem; border-left: 1px solid var(--nova-border); }
.metric:first-child { padding-left: 0; border-left: 0; }
.metric__num { display: flex; align-items: baseline; gap: .45rem; font-size: clamp(2.2rem, 4vw, 3.2rem); font-weight: 600; letter-spacing: -.03em; line-height: 1; margin: 0 0 .9rem; color: var(--nova-primary); font-variant-numeric: tabular-nums; }
.metric__unit { font-size: .45em; font-weight: 500; letter-spacing: 0; color: var(--nova-accent); }
.metric__num small { font-size: .3em; letter-spacing: 0; color: var(--nova-muted); font-weight: 400; margin-left: .35rem; }
.metric__label { font-weight: 600; font-size: 1rem; margin: 0 0 .2rem; }
.metric__label sup { font-size: .65em; margin-left: 2px; }
.metric__sub { margin: 0; font-size: .92rem; color: var(--nova-muted); }
@media (max-width: 700px) { .metrics { grid-template-columns: 1fr; } .metric, .metric:first-child { padding: 1.25rem 0; border-left: 0; border-top: 1px solid var(--nova-border); } .metric:first-child { border-top: 0; } }
.stages { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; padding: 0; margin: 2.5rem 0; position: relative; }
.stages::before { content: ""; position: absolute; left: 0; right: 0; top: 1.55rem; height: 2px; background: rgba(143,188,232,.35); }
.section:not(.section--navy) .stages::before { background: var(--nova-border); }
@media (max-width: 800px) { .stages { grid-template-columns: 1fr; } .stages::before { left: 1.5rem; right: auto; top: 0; bottom: 0; width: 2px; height: auto; } .stage { padding-left: 4.2rem; } .stage__num { position: absolute; left: 0; top: 0; } }
.stage { position: relative; padding-top: 4rem; }
.stage__num { position: absolute; top: 0; left: 0; width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border-radius: 50%; background: var(--nova-accent-2); color: #fff; font-weight: 600; font-size: 1.2rem; box-shadow: 0 0 0 6px rgba(32,112,190,.18); }
.stage__sub { font-weight: 600; color: #8FBCE8; }
.section:not(.section--navy) .stage__sub { color: var(--nova-accent-2); }
.status-list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; border-top: 1px solid var(--nova-border); }
.status-list li { display: flex; justify-content: space-between; gap: 1.5rem; padding: .9rem 0; border-bottom: 1px solid var(--nova-border); }
.status-list strong { text-align: right; }
@media (max-width: 600px) { .status-list li { flex-direction: column; gap: .2rem; } .status-list strong { text-align: left; } }
.people { list-style: none; padding: 0; margin: 0 0 2rem; } .people li { margin-bottom: 1rem; }
.arrow-link { margin-top: .25rem; }

/* Interactive maps */
.geomap { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; align-items: start; margin: 1.5rem 0 2rem; }
.geomap--compact { grid-template-columns: 1fr; }
@media (max-width: 960px) { .geomap { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .geomap__controls button { width: 36px; height: 36px; } .geomap__stage { margin-inline: calc(var(--gutter) * -1); border-inline: 0; } }
.geomap__stage { position: relative; align-self: start; background: radial-gradient(120% 90% at 50% 40%, #F5FAFE 0%, var(--viz-sea) 55%, #DCEAF7 100%); border: 1px solid var(--nova-border); overflow: hidden; }
.geomap__svg { width: 100%; height: auto; cursor: grab; touch-action: pan-y; user-select: none; }
.geomap__svg.is-drag { cursor: grabbing; }
.geomap--compact .geomap__svg { cursor: default; }
.geomap__svg:focus-visible { outline-offset: -3px; }
.gm-grid line { stroke: #fff; stroke-opacity: .85; stroke-width: 1; vector-effect: non-scaling-stroke; }
.gm-land { fill: var(--viz-land); stroke: #fff; stroke-width: .7; vector-effect: non-scaling-stroke; filter: drop-shadow(0 2px 3px rgba(15,56,105,.18)); }
.gm-country { fill: var(--viz-hist); fill-opacity: .92; stroke: #fff; stroke-width: .9; vector-effect: non-scaling-stroke; transition: fill-opacity .35s; }
.geomap--track[data-op] .gm-country:not(.is-on), .geomap--track[data-op] .gm-country-marker:not(.is-on) { fill-opacity: .18; opacity: .25; }
.gm-hist { fill: var(--viz-hist); stroke: #fff; stroke-width: 2; }
.gm-ms { transform: scale(var(--ms, 1)); transition: transform .35s var(--ease); }
.gm-marker { cursor: pointer; outline: none; }
.gm-shape { stroke: #fff; stroke-width: 2.2; filter: drop-shadow(0 1px 2px rgba(15,56,105,.55)); transition: transform .25s var(--ease), fill .2s; transform-box: fill-box; transform-origin: center; }
.gm-marker--dev .gm-shape { fill: var(--viz-dev); }
.gm-marker--talks .gm-shape { fill: #fff; stroke: var(--viz-talks); stroke-width: 4; }
.gm-marker--pipe .gm-shape { fill: var(--viz-pipe); }
.gm-marker .gm-pulse { fill: var(--viz-talks); }
.gm-marker:hover .gm-shape, .gm-marker:focus-visible .gm-shape, .gm-marker.is-selected .gm-shape { transform: scale(1.35); }
.gm-pulse { fill: var(--viz-talks); fill-opacity: 0; transform-box: fill-box; transform-origin: center; pointer-events: all; }
.gm-marker:focus-visible .gm-pulse { fill-opacity: .25; stroke: var(--nova-focus); stroke-width: 2; }
.gm-marker.is-selected .gm-pulse, .gm-country-marker .gm-pulse { animation: pulse 2s ease-out infinite; }
@keyframes pulse { 0% { transform: scale(.7); fill-opacity: .45; } 100% { transform: scale(2.6); fill-opacity: 0; } }
.gm-label { font-size: 13px; font-weight: 700; fill: var(--nova-primary); paint-order: stroke; stroke: #fff; stroke-width: 5px; stroke-linejoin: round; opacity: 0; transition: opacity .2s; pointer-events: none; }
.gm-marker:hover .gm-label, .gm-marker:focus-visible .gm-label, .gm-marker.is-selected .gm-label, .geomap[data-zoomed] .gm-label { opacity: 1; }
.geomap[data-far] .gm-marker--pipe, .geomap--compact .gm-marker--pipe { display: none; }
.geomap__controls { position: absolute; top: .75rem; right: .75rem; display: flex; flex-direction: column; gap: 2px; }
.geomap__controls button { width: 40px; height: 40px; border: 1px solid var(--nova-border); background: #fff; font-size: 1.2rem; cursor: pointer; color: var(--nova-primary); transition: background .2s, color .2s; }
.geomap__controls button:hover { background: var(--nova-primary); color: #fff; }
.geomap__hint { margin: .5rem 0 0; }
.geomap__side { display: flex; flex-direction: column; gap: 1rem; }
.geomap__presets { display: flex; flex-wrap: wrap; gap: .5rem; }
.pill { border: 1.5px solid var(--nova-border); background: #fff; padding: .45rem .9rem; font: inherit; font-size: .9rem; font-weight: 500; cursor: pointer; color: var(--nova-text); transition: background .2s, border-color .2s, color .2s; }
.pill:hover { border-color: var(--nova-accent-2); } .pill[aria-pressed=true] { background: var(--nova-primary); border-color: var(--nova-primary); color: #fff; }
.geomap__panel { background: #fff; border: 1px solid var(--nova-border); border-left: 4px solid var(--nova-accent-2); padding: 1.25rem; min-height: 11rem; }
.geomap__panel .project__cap { font-size: 1.9rem; } .geomap__panel h3 { margin-bottom: .25rem; }
.legend { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; list-style: none; padding: 0; margin: 0; font-size: .9rem; }
.legend li { display: flex; align-items: center; gap: .5rem; }
.lg-dev { fill: var(--viz-dev); } .lg-talks { fill: #fff; stroke: var(--viz-talks); stroke-width: 3; } .lg-pipe { fill: var(--viz-pipe); } .lg-hist { fill: var(--viz-hist); }
.geomap > .fineprint { grid-column: 1 / -1; margin: 0; }

/* Table */
.table-wrap { overflow-x: auto; margin: 1.5rem 0; }
table.data { width: 100%; border-collapse: collapse; min-width: 560px; }
table.data th, table.data td { padding: .95rem 1rem; border-bottom: 1px solid var(--nova-border); text-align: left; }
table.data thead th { background: var(--nova-surface-2); border-bottom: 2px solid var(--nova-primary); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--nova-primary); }
table.data tbody tr { transition: background .2s; } table.data tbody tr:hover { background: var(--nova-surface); }
table.data td.num { font-weight: 600; color: var(--nova-accent); }
table.data .num { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
	table.data { min-width: 0; } table.data thead { position: absolute; left: -999px; }
	table.data tr { display: block; border-bottom: 2px solid var(--nova-primary); padding: .5rem 0; }
	table.data th, table.data td { display: block; border: 0; padding: .25rem 0; text-align: left !important; }
	table.data td::before { content: attr(data-label) ": "; font-weight: 600; color: var(--nova-text); }
	.table-wrap { overflow: visible; }
}

/* Timeline */
.timeline { margin: 2rem 0 1rem; }
.timeline__head, .timeline__row { display: grid; grid-template-columns: 220px 1fr; gap: 1.5rem; align-items: center; }
.timeline__years { display: grid; grid-template-columns: repeat(6, 1fr); font-size: .8rem; letter-spacing: .1em; color: var(--nova-muted); font-weight: 600; padding-bottom: .5rem; }
.timeline__row { padding: 1.25rem 0; border-top: 1px solid var(--nova-border); }
.timeline__track { display: grid; grid-template-columns: repeat(var(--n), 1fr); background: repeating-linear-gradient(90deg, var(--nova-border) 0 1px, transparent 1px calc(100% / var(--n))); height: 44px; }
.timeline__bar { background: #DCEAF7 repeating-linear-gradient(45deg, transparent 0 7px, rgba(32,112,190,.22) 7px 14px); border: 2px solid var(--nova-accent-2); color: var(--nova-primary); font-size: .82rem; font-weight: 600; display: flex; align-items: center; padding-inline: .6rem; white-space: nowrap; overflow: hidden; transform-origin: left; }
.js .reveal .timeline__bar { transform: scaleX(0); transition: transform 1.1s .2s var(--ease); } .js .reveal.is-in .timeline__bar { transform: none; }
.timeline__detail { grid-column: 2; margin: .5rem 0 0; color: var(--nova-muted); font-size: .95rem; }
@media (max-width: 820px) { .timeline__head { display: none; } .timeline__row { grid-template-columns: 1fr; gap: .5rem; } .timeline__detail { grid-column: 1; } .timeline__bar { font-size: .72rem; } }

/* CTA, forms */
.form p { margin-bottom: 1.1rem; }
.form label { display: block; font-weight: 500; margin-bottom: .35rem; }
.form input[type=text], .form input[type=email], .form select, .form textarea { width: 100%; padding: .8rem; font: inherit; border: 1.5px solid #6B747C; border-radius: 0; background: #fff; color: var(--nova-text); }
.form [aria-invalid=true] { border-color: #B00020; border-width: 2px; }
.form .check { display: flex; gap: .75rem; align-items: flex-start; } .form .check label { font-weight: 400; margin: 0; } .form .check input { margin-top: .35rem; width: 1.2rem; height: 1.2rem; }
.hp { position: absolute; left: -9999px; }
.field-error { color: #B00020; font-weight: 600; margin: .35rem 0 0; } .field-error::before { content: "⚠ "; }
.alert { padding: 1rem 1.25rem; margin-bottom: 1.5rem; border: 2px solid var(--nova-primary); font-weight: 600; }
.alert--err { border-color: #B00020; color: #B00020; } .alert--ok::before { content: "✓ "; }
.notice-bar { background: #FFF6D6; border-bottom: 2px solid var(--nova-primary); padding: .75rem var(--gutter); font-size: .9rem; }
.offices { list-style: none; padding: 0; margin: 0; } .offices li { margin-bottom: 1rem; } address { font-style: normal; }

/* Footer */
.site-footer { border-top: 1px solid var(--nova-border); padding-top: 3.5rem; background: var(--nova-surface); }
.site-footer__grid { display: grid; grid-template-columns: 1.2fr 1fr 1.4fr; gap: 2rem; }
@media (max-width: 800px) { .site-footer__grid { grid-template-columns: 1fr; } }
.footer-menu { list-style: none; padding: 0; margin: 0; } .footer-menu li { margin-bottom: .4rem; }
.site-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-block: 2rem; margin-top: 2rem; border-top: 1px solid var(--nova-border); font-size: .875rem; color: var(--nova-muted); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.js .reveal { opacity: 1; transform: none; } .js .reveal .timeline__bar { transform: none; } .hero__visual img { transform: none; }
}
@media print { .site-header, .nav-toggle, .cta, .geomap__controls { display: none; } }

.site-footer ul { list-style: none; padding: 0; margin: 0; } .site-footer ul li { margin-bottom: .4rem; } .site-footer .offices li { margin-bottom: 1rem; }
.partner-grid + .fineprint { margin-top: 2rem; }

.geomap__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--nova-border); max-height: 15rem; overflow: auto; }
.geomap__list li { border-bottom: 1px solid var(--nova-border); }
.geomap__list button { width: 100%; display: flex; justify-content: space-between; gap: 1rem; text-align: left; background: none; border: 0; padding: .6rem .25rem; font: inherit; font-size: .92rem; cursor: pointer; color: var(--nova-text); transition: background .2s, padding .25s var(--ease); }
.geomap__list button:hover { background: var(--nova-surface); padding-left: .6rem; }
.geomap__list button[aria-pressed=true] { background: #E8F1FA; font-weight: 600; padding-left: .6rem; box-shadow: inset 3px 0 0 var(--nova-accent-2); }
.js .geomap-data { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.geomap__panel .project-detail { animation: rise .5s var(--ease) both; }
.geomap__panel .project-detail .project__cap { font-size: 1.7rem; }

/* Full footprint map: map spans the width; list + detail panel sit in a row below it. */
.geomap--full { grid-template-columns: 1fr; }
.geomap--full .geomap__side { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); grid-template-areas: "hint panel" "presets panel" "list panel"; column-gap: clamp(1.25rem, 3vw, 2.5rem); row-gap: 1rem; align-items: start; }
.geomap--full .geomap__hint { grid-area: hint; margin: 0; }
.geomap--full .geomap__presets { grid-area: presets; }
.geomap--full .geomap__list { grid-area: list; max-height: none; overflow: visible; }
.geomap--full .geomap__panel { grid-area: panel; min-height: 100%; position: sticky; top: 96px; }
@media (max-width: 800px) { .geomap--full .geomap__side { grid-template-columns: 1fr; grid-template-areas: "hint" "presets" "panel" "list"; } .geomap--full .geomap__panel { position: static; min-height: 9rem; } }

/* Closing banner: light, with soft glow and slow orbit rings */
.cta-banner { position: relative; overflow: hidden; border-top: 1px solid var(--nova-border); padding-block: clamp(3.5rem, 8vw, 6rem); background: radial-gradient(55% 140% at 88% 30%, rgba(0,112,192,.20), transparent 62%), radial-gradient(40% 90% at 8% 100%, rgba(32,112,190,.10), transparent 70%), linear-gradient(135deg, #F8FBFE 0%, #E6F0FA 100%); }
.cta-banner__orbits { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.cta-banner__orbits ellipse { fill: none; stroke: var(--nova-accent-2); stroke-opacity: .28; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.cta-banner__dot { fill: var(--nova-accent); stroke: #fff; stroke-width: 3; offset-rotate: 0deg; animation: orbit 26s linear infinite; filter: drop-shadow(0 0 6px rgba(0,112,192,.6)); }
.cta-banner__dot--b { fill: var(--nova-primary); animation-duration: 38s; animation-direction: reverse; }
@keyframes orbit { to { offset-distance: 100%; } }
.cta-banner__dot { offset-distance: 0%; }
.cta-banner__inner { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem; }
.cta-banner h2 { max-width: 24ch; margin: 0; color: var(--nova-primary); font-size: clamp(1.7rem, 3.2vw, 2.6rem); }
.cta-banner .actions { margin: 0; }
@media (max-width: 700px) { .cta-banner__orbits { opacity: .55; } }

/* NOVA Orbital (Symphony Space page) */
.orbital { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 5rem); }
@media (max-width: 860px) { .orbital { grid-template-columns: 1fr; } }
.orbital__label { text-transform: uppercase; letter-spacing: .2em; font-size: .78rem; font-weight: 600; color: var(--nova-accent-2); margin: 0 0 1.5rem; }
.orbital__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.6rem; }
.orbital__item { display: flex; gap: 1.1rem; align-items: center; }
.orbital__item h3 { margin: 0 0 .15rem; font-size: 1.15rem; }
.orbital__item p { margin: 0; color: var(--nova-muted); font-size: .95rem; }
.badge { flex: none; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #EAF2FC; border: 1px solid #C9DDF3; color: var(--nova-accent-2); transition: transform .3s var(--ease), background .2s; }
.orbital__item:hover .badge, .orbital__card:hover .badge { transform: scale(1.08); background: #DCEAF9; }
.orbital__cards { display: grid; gap: 1rem; }
.orbital__card { display: flex; gap: 1.1rem; align-items: center; padding: 1.2rem 1.4rem; }
.orbital__card h3 { margin: 0 0 .15rem; font-size: 1.1rem; } .orbital__card p { margin: 0; color: var(--nova-muted); font-size: .95rem; }
.status-banner { margin-top: clamp(2rem, 5vw, 3.5rem); border: 1.5px solid var(--nova-accent-2); background: #EAF2FC; padding: 1.25rem 1.6rem; display: flex; flex-wrap: wrap; gap: .6rem 2.5rem; align-items: baseline; }
.status-banner dt { display: inline; text-transform: uppercase; letter-spacing: .18em; font-size: .75rem; font-weight: 600; color: var(--nova-accent-2); margin-right: .6rem; }
.status-banner dd { display: inline; margin: 0; font-weight: 600; font-size: 1.1rem; color: var(--nova-primary); }
.hero__accent { color: var(--nova-accent); }

/* NOVA Orbital page only: outer-space scene (space-based product). All land-based pages stay white. */
.orbital-page { position: relative; overflow: hidden; color: #fff; background: radial-gradient(70% 55% at 85% 0%, #2468C0 0%, rgba(36,104,192,0) 70%), radial-gradient(60% 50% at 5% 55%, rgba(32,112,190,.55) 0%, rgba(32,112,190,0) 70%), linear-gradient(180deg, #06193A 0%, #0A2A5C 40%, #0F3869 75%, #123F7A 100%); }
.orbital-page::before, .orbital-page::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-repeat: repeat; }
.orbital-page::before { background-image: radial-gradient(1.2px 1.2px at 20px 30px, #fff, transparent 100%), radial-gradient(1px 1px at 90px 120px, rgba(255,255,255,.85), transparent 100%), radial-gradient(1.4px 1.4px at 160px 70px, #cfe6ff, transparent 100%), radial-gradient(1px 1px at 230px 190px, rgba(255,255,255,.8), transparent 100%); background-size: 260px 230px; opacity: .8; animation: twinkle 7s ease-in-out infinite alternate; }
.orbital-page::after { background-image: radial-gradient(1px 1px at 60px 50px, rgba(255,255,255,.7), transparent 100%), radial-gradient(1.6px 1.6px at 180px 160px, #fff, transparent 100%), radial-gradient(1px 1px at 300px 90px, #bcd9ff, transparent 100%); background-size: 380px 270px; opacity: .55; animation: twinkle 11s ease-in-out -4s infinite alternate; }
@keyframes twinkle { from { opacity: .35; } to { opacity: .9; } }
.orbital-page > * { position: relative; z-index: 1; }
.orbital-page__rings { position: absolute !important; inset: 0 0 auto 0; width: 100%; height: 760px; z-index: 0 !important; pointer-events: none; }
.orbital-page__rings ellipse { fill: none; stroke: #8FBCE8; stroke-opacity: .32; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.orbit-dot { fill: #fff; offset-distance: 0%; offset-rotate: 0deg; animation: orbit 30s linear infinite; filter: drop-shadow(0 0 7px #8FD0FF); }
.orbit-dot--b { animation-duration: 22s; animation-direction: reverse; fill: #BFE0FF; } .orbit-dot--c { animation-duration: 15s; fill: #8FD0FF; }
.orbit-earth { fill: #2F7FD6; fill-opacity: .55; filter: drop-shadow(0 0 28px rgba(110,180,255,.75)); }
.orbital-page .hero { background: transparent; border-bottom: 0; }
.orbital-page .hero::before { display: none; }
.orbital-page .hero h1 { color: #fff; }
.orbital-page .hero__accent { background: linear-gradient(90deg, #7CC4FF, #8FEBFF); -webkit-background-clip: text; background-clip: text; color: transparent; }
.orbital-page .eyebrow, .orbital-page .orbital__label { color: #8FD0FF; }
.orbital-page .lead { color: #C9DCF2; }
.orbital-page .orbital__item h3, .orbital-page .orbital__card h3 { color: #fff; }
.orbital-page .orbital__item p, .orbital-page .orbital__card p { color: #B9CCE3; }
.orbital-page .badge { background: rgba(143,208,255,.10); border-color: rgba(143,208,255,.45); color: #8FD0FF; box-shadow: 0 0 22px rgba(95,170,255,.25); }
.orbital-page .orbital__item:hover .badge, .orbital-page .orbital__card:hover .badge { background: rgba(143,208,255,.2); }
.orbital-page .card { background: rgba(255,255,255,.05); border-color: rgba(143,188,232,.28); }
.orbital-page .card:hover { border-color: #8FD0FF; box-shadow: 0 18px 40px rgba(0,0,0,.35), 0 0 0 1px rgba(143,208,255,.4); transform: translateY(-3px); }
.orbital-page .status-banner { background: rgba(32,112,190,.22); border-color: #5BA6E8; }
.orbital-page .status-banner dt { color: #8FD0FF; } .orbital-page .status-banner dd { color: #fff; }
.orbital-page .fineprint { color: #A9C0DD; }
.orbital-page :focus-visible { outline-color: #fff; }
.orbital-page .prose a, .orbital-page a:not(.btn) { color: #B9E0FF; }

/* Orbital page background variants (selected in NOVA Settings). Layers live in .ob; text/cards are above (z-index 1). */
.orbital-page > .ob { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.orbital-page--mesh::before, .orbital-page--mesh::after, .orbital-page--constellation::before, .orbital-page--constellation::after { display: none; }
.orbital-page .section:last-child, .orbital-page main > .section { padding-bottom: clamp(4rem, 10vw, 8rem); }

/* 1) Earth-limb horizon: planet curve with atmospheric glow rising from the bottom */
.orbital-page--horizon { background: linear-gradient(180deg, #030D22 0%, #06183A 50%, #0A2858 100%); }
.ob--horizon .ob__aurora { position: absolute; inset: 0; background: radial-gradient(50% 40% at 82% 8%, rgba(36,120,220,.38), transparent 70%), radial-gradient(45% 40% at 8% 40%, rgba(0,112,192,.22), transparent 70%); }
.ob--horizon .ob__limb { position: absolute; left: 50%; top: 84%; width: 3400px; height: 3400px; margin-left: -1700px; border-radius: 50%; background: radial-gradient(circle at 50% 0%, #0D3470 0%, #051431 18%, #020A1C 55%); box-shadow: 0 0 0 1px rgba(170,222,255,.75), 0 -6px 30px 2px rgba(110,190,255,.7), 0 -34px 110px 26px rgba(40,120,220,.42), inset 0 14px 46px rgba(130,200,255,.5); }
.ob--horizon .ob__glow { position: absolute; left: 0; right: 0; bottom: 0; height: 420px; background: radial-gradient(70% 100% at 50% 100%, rgba(90,175,255,.28), transparent 72%); }

/* 2) Aurora gradient mesh: slow-drifting blurred colour fields over a fine dot grid */
.orbital-page--mesh { background: #040E26; }
.ob--mesh .ob__blob { position: absolute; border-radius: 50%; filter: blur(95px); opacity: .6; animation: drift 20s ease-in-out infinite alternate; }
.ob--mesh .ob__blob--1 { width: 640px; height: 640px; left: -140px; top: -120px; background: #2070BE; }
.ob--mesh .ob__blob--2 { width: 720px; height: 720px; right: -180px; top: 18%; background: #0F4FA8; animation-duration: 26s; animation-delay: -6s; }
.ob--mesh .ob__blob--3 { width: 520px; height: 520px; left: 32%; bottom: -160px; background: #0AA37F; opacity: .32; animation-duration: 23s; animation-delay: -12s; }
.ob--mesh .ob__dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.22) 1px, transparent 1.2px); background-size: 30px 30px; mask-image: radial-gradient(80% 70% at 50% 35%, #000, transparent 85%); -webkit-mask-image: radial-gradient(80% 70% at 50% 35%, #000, transparent 85%); }
@keyframes drift { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(90px,-60px,0) scale(1.18); } }

/* 3) Satellite constellation: connected nodes with travelling signals */
.orbital-page--constellation { background: radial-gradient(60% 50% at 85% 0%, rgba(36,120,220,.4), transparent 70%), linear-gradient(180deg, #030D22 0%, #07204A 60%, #0C2F63 100%); }
.ob--constellation svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ob__edge { stroke: #8FD0FF; stroke-opacity: .22; stroke-width: 1; vector-effect: non-scaling-stroke; }
.ob__edge--sig { stroke: #BFE6FF; stroke-opacity: .9; stroke-width: 1.4; stroke-dasharray: 18 260; animation: signal 7s linear infinite; }
@keyframes signal { from { stroke-dashoffset: 280; } to { stroke-dashoffset: 0; } }
.ob__node { fill: #D6EDFF; animation: twinkle 5s ease-in-out infinite alternate; filter: drop-shadow(0 0 5px rgba(140,210,255,.9)); }
@media (prefers-reduced-motion: reduce) { .ob *, .ob { animation: none !important; } }
.orbital-page--horizon main > .section { padding-bottom: clamp(10rem, 18vw, 15rem); }
.ob--horizon .ob__limb { top: 88%; }

/* 4) Space-station artwork — animated: drifting station, orbit-ring comets, twinkling stars, mouse parallax */
.orbital-page--image { background: linear-gradient(180deg, #1B4F94 0%, #14407E 55%, #0F3669 100%); --sh: calc(max(100vw, 1400px) / 2); }
.orbital-page--image::before, .orbital-page--image::after { display: none; }
.ob--image .ob__scene { --w: max(100%, 1400px); position: absolute; top: 0; width: var(--w); aspect-ratio: 2 / 1; left: min(0px, max(calc(100% - var(--w)), calc(100% * .62 - var(--w) * .67))); -webkit-mask-image: linear-gradient(180deg, #000 62%, transparent 100%); mask-image: linear-gradient(180deg, #000 62%, transparent 100%); transform: translate3d(calc(var(--px, 0) * -9px), calc(var(--py, 0) * -6px), 0) scale(1.03); transition: transform .5s ease-out; }
.ob--image .ob__bgimg { display: block; width: 100%; height: 100%; filter: brightness(1.1) saturate(1.05); }
.ob--image .ob__twinkle { position: absolute; inset: 0; background-image: radial-gradient(1.4px 1.4px at 40px 60px, #fff, transparent 100%), radial-gradient(1.1px 1.1px at 150px 180px, #e4f2ff, transparent 100%), radial-gradient(1.6px 1.6px at 260px 90px, #fff, transparent 100%), radial-gradient(1px 1px at 330px 230px, #cfe6ff, transparent 100%); background-size: 380px 300px; mix-blend-mode: screen; animation: twinkle 6s ease-in-out infinite alternate; }
.ob--image .ob__flow { position: absolute; inset: 0; width: 100%; height: 100%; }
.ob__comet { fill: none; stroke: #CFEBFF; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 22 978; stroke-opacity: .95; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 6px #8FD0FF) drop-shadow(0 0 14px rgba(80,170,255,.8)); animation: comet 16s linear infinite; }
.ob__comet--b { animation-direction: reverse; stroke-width: 2.4; stroke-dasharray: 16 984; }
.ob__comet--c { stroke-width: 2; stroke-dasharray: 12 988; stroke-opacity: .7; }
@keyframes comet { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -1000; } }
.ob--image .ob__st { position: absolute; display: block; transform: translate3d(calc(var(--px, 0) * 16px), calc(var(--py, 0) * 10px), 0); transition: transform .45s ease-out; }
.ob--image .ob__stfloat { position: relative; display: block; animation: stfloat 15s ease-in-out infinite; transform-origin: 45% 55%; will-change: transform; filter: drop-shadow(0 18px 24px rgba(5,20,50,.45)); }
.ob--image .ob__stfloat img { display: block; width: 100%; height: auto; }
@keyframes stfloat { 0%, 100% { transform: translate(-7px, 5px) rotate(-.55deg); } 50% { transform: translate(8px, -8px) rotate(.5deg); } }
.ob__glint { position: absolute; width: 22px; height: 22px; margin: -11px 0 0 -11px; border-radius: 50%; background: radial-gradient(circle, #fff 0%, rgba(190,230,255,.85) 30%, rgba(120,190,255,0) 70%); mix-blend-mode: screen; animation: glint 3.2s ease-in-out infinite; }
@keyframes glint { 0%, 100% { opacity: .15; transform: scale(.6); } 50% { opacity: 1; transform: scale(1.25); } }
.ob--image .ob__tint { position: absolute; inset: 0 0 auto 0; height: var(--sh); background: linear-gradient(90deg, rgba(12,46,100,.82) 0%, rgba(16,60,125,.5) 38%, rgba(26,86,160,.1) 70%, rgba(26,86,160,0) 100%), linear-gradient(180deg, rgba(20,64,126,.35) 0%, rgba(20,64,126,0) 30%); }
.ob--image .ob__fade { position: absolute; left: 0; right: 0; top: calc(var(--sh) - 300px); height: 302px; background: linear-gradient(180deg, rgba(20,64,126,0) 0%, #14407E 85%); }
.orbital-page--image .hero { min-height: 520px; display: flex; align-items: center; }
.orbital-page--image .hero h1 { text-shadow: 0 2px 24px rgba(8,30,70,.55); }
.orbital-page--image .card { background: rgba(10,38,84,.58); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-color: rgba(160,210,255,.35); }
.orbital-page--image .status-banner { background: rgba(10,38,84,.6); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
@media (max-width: 760px) { .orbital-page--image .hero { min-height: 0; } .orbital-page--image { --sh: 700px; } .ob__comet { stroke-width: 4; } }
@media (prefers-reduced-motion: reduce) { .ob--image .ob__scene, .ob--image .ob__st { transform: none !important; transition: none !important; } .ob--image .ob__stfloat, .ob__comet, .ob__glint, .ob--image .ob__twinkle { animation: none !important; } .ob__comet { stroke-dasharray: none; stroke-opacity: .0; } .ob__glint { opacity: .6; } }
