/* Homepage only: the supplied brand waves replace its decorative globe. */
.brand-hero { position: relative; isolation: isolate; }
.brand-hero::before,html[data-theme="light"] .brand-hero::before { content:"";position:absolute;inset:0 auto 0 50%;width:100vw;transform:translateX(-50%);z-index:-1;pointer-events:none;background:url('../brand/newverse/hero-waves-flow.svg') center bottom / 100% 100% no-repeat; }
html[data-theme="light"] .brand-hero::before { background-image:url('../brand/newverse/hero-waves-flow-light.svg'); }
.brand-hero-layout { display:block;min-height:520px;align-content:center; }
.brand-hero h1 { max-width:17ch;font-weight:300 !important;font-size:clamp(56px,6.8vw,104px) !important; }
.brand-hero-copy { max-width:950px; }
#overview { padding-bottom:32px !important; }
/* Only the story becomes a long section. Native page scrolling is never captured. */
.asset-story { --story-panel: #10232fe8; --story-line:#345166; --story-muted:#b3c5d2; position:relative;background:var(--bg-default); }
html[data-theme="light"] .asset-story { --story-panel:#fffffff0;--story-line:#bccbd5;--story-muted:#4b6273; }
.asset-story.story-enhanced { height:340svh; }
.story-sticky { height:calc(100svh - 100px);min-height:600px;max-height:1100px;position:relative;isolation:isolate; }
.story-enhanced .story-sticky { position:sticky;top:100px; }
.story-topline { position:absolute;z-index:5;top:16px;left:clamp(24px,4vw,64px);right:clamp(24px,4vw,64px);display:flex;justify-content:space-between;align-items:center;gap:16px; }
.story-nav { display:flex;gap:20px; }
.story-nav button,.story-skip { border:0;padding:8px 0;background:none;color:var(--story-muted);font-size:12px;text-decoration:none; }
.story-nav button[aria-current="step"] { color:var(--text-primary);box-shadow:0 1px var(--action-primary); }
.story-orbit { position:absolute;left:50%;top:50%;width:min(760px,64vw,80svh);aspect-ratio:1;transform:translate(-50%,-50%) scale(var(--story-scale,.68));z-index:0; }
.story-orbit > .story-map { position:absolute;inset:0;width:100%;height:100%;background:transparent; }
.story-map .maplibregl-canvas { outline:none; }
.story-map .maplibregl-canvas-container { touch-action:pan-y; }
.story-map .maplibregl-ctrl-bottom-right { right:12%;bottom:6%;font-size:10px; }
.story-map .maplibregl-ctrl-attrib { opacity:.7;background:transparent !important; }
.story-halo { position:absolute;left:50%;top:50%;width:76%;height:76%;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 0 35px 12px #67b6ee25,inset 0 0 15px #7dc6fa40;pointer-events:none; }
html[data-theme="light"] .story-halo { box-shadow:0 6px 42px #294b681a; }
.story-fallback { width:100%;height:100%;object-fit:contain;position:absolute;inset:0;pointer-events:none; }
.story-ready .story-fallback { display:none; }
.story-chapter { position:absolute;inset:0;pointer-events:none;opacity:0;visibility:hidden; }
.story-chapter[data-chapter="0"] { opacity:1;visibility:visible; }
.story-copy { position:absolute;top:50%;left:clamp(24px,4vw,64px);width:clamp(220px,21vw,290px);transform:translateY(-50%); }
.story-copy h2 { font-size:clamp(25px,2.45vw,36px) !important;font-weight:400 !important;line-height:1.16 !important;letter-spacing:-.025em;max-width:18ch; }
.story-copy p { font-size:16px;line-height:1.5;margin-top:20px;color:var(--text-secondary); }
.story-copy .story-eyebrow { font-size:12px;color:var(--story-muted);margin:0 0 20px; }
.story-copy .story-secondary { font-size:13px;color:var(--story-muted); }
.story-copy--intro { top:68%; }
.story-key { position:absolute;right:clamp(24px,4vw,64px);top:50%;transform:translateY(-50%);width:210px;padding:18px;border:1px solid var(--story-line);border-radius:12px;background:var(--story-panel);backdrop-filter:blur(12px);pointer-events:auto; }
.story-key h3 { margin:0 0 16px;font-size:14px;line-height:1.35;font-weight:500; }
.story-key p { margin:14px 0 0;font-size:12px;line-height:1.5;color:var(--story-muted); }
.story-key .story-key-range { display:flex;justify-content:space-between;margin-top:8px; }
.story-density-ramp { height:7px;border-radius:6px;background:linear-gradient(90deg,#276b8b,#66cbcb,#bcffde); }
.story-company { width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--story-line);border-radius:8px;background:var(--bg-surface);padding:12px 10px;color:var(--text-primary);text-align:left;font-size:14px;margin-top:8px; }
.story-company small { display:block;font-size:11px;color:var(--story-muted);margin-top:5px; }
.story-company i,.story-key li i { background:var(--swatch);height:8px;width:8px;border-radius:50%;flex:none; }
.story-check { margin-left:auto; }
.story-company[aria-pressed="false"] { background:transparent; }
.story-company[aria-pressed="false"] .story-check { visibility:hidden; }
.story-company[aria-pressed="false"] i { background:transparent;border:1px solid var(--story-muted); }
.story-key ul { list-style:none;padding:0;margin:0;display:grid;gap:10px; }
.story-key li { display:flex;gap:9px;align-items:center;font-size:12px;line-height:1.3;color:var(--text-secondary); }
.story-contact { display:block;font-size:12px;margin-top:18px;color:var(--link-color); }
.story-bottom { position:absolute;left:clamp(24px,4vw,64px);right:clamp(24px,4vw,64px);bottom:45px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;opacity:var(--story-controls-opacity,0);pointer-events:none; }
.story-tools { display:flex;gap:6px;pointer-events:auto; }
.story-tools button { min-width:36px;min-height:36px;border:1px solid var(--story-line);border-radius:7px;background:var(--story-panel);color:var(--text-primary);font-size:16px; }
.story-tools button[data-globe-reset] { font-size:12px;padding:0 12px; }
.story-tools button:disabled { opacity:.35;cursor:default; }
.story-interaction { font-size:11px;color:var(--story-muted);margin:10px 0 0; }
.story-scroll { color:var(--story-muted);font-size:12px;margin:0 0 3px; }
.story-scroll span { display:inline-block;margin-left:10px;font-size:20px; }
.story-sample-note { position:absolute;left:0;right:0;bottom:13px;text-align:center;font-size:10px;color:var(--story-muted);margin:0; }
.story-status { position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);max-width:280px;text-align:center;font-size:14px;background:var(--story-panel);border-radius:10px;padding:16px; }
.story-status:empty { display:none; }
.story-noscript { max-width:680px;margin:0 auto;padding:24px; }
.story-failed,.story-reduced { height:auto !important; }
.story-failed .story-sticky,.story-reduced .story-sticky { position:relative;top:0; }
.story-failed .story-scroll,.story-reduced .story-scroll { display:none; }
.story-failed .story-tools { visibility:hidden; }
.story-failed .story-interaction { max-width:300px; }
@media (max-width:1100px) and (min-width:851px) {
 .story-copy { width:210px;left:24px; }.story-copy h2 { font-size:27px !important; }.story-copy p { font-size:14px; }.story-key { right:24px;width:180px;padding:14px; }.story-orbit { width:min(68vw,78svh); }
}
@media (max-width:850px) {
 .brand-hero-layout { min-height:440px; }.brand-hero h1 { font-size:clamp(46px,10.5vw,68px) !important; }
 .asset-story.story-enhanced { height:340svh; }
 .story-sticky { height:calc(100svh - 88px);min-height:500px; }.story-enhanced .story-sticky { top:88px; }
 .story-topline { top:6px;left:20px;right:20px;gap:10px; }.story-nav { gap:14px; }.story-nav button,.story-skip { font-size:10px; }.story-skip { white-space:nowrap; }
 .story-orbit { width:min(96vw,47svh);top:51%; }
 .story-copy,.story-copy--intro { top:56px;left:24px;width:calc(100% - 48px);transform:none; }
 .story-copy h2 { font-size:26px !important;max-width:24ch; }.story-copy p { margin-top:12px;font-size:13px;line-height:1.45; }.story-copy .story-eyebrow { font-size:10px;margin:0 0 9px; }.story-copy .story-secondary { font-size:11px; }
 .story-key { top:auto;bottom:97px;left:24px;right:24px;transform:none;width:auto;padding:12px 14px; }
 .story-key h3 { font-size:12px;margin-bottom:10px; }.story-key p { font-size:10px;margin-top:8px; }
 .story-key ul { grid-template-columns:1fr 1fr;gap:6px; }.story-key li { font-size:10px; }
 .story-company { display:inline-flex;width:calc(50% - 4px);margin:0;min-height:50px;padding:8px;font-size:12px; }.story-company small { font-size:9px; }.story-company+.story-company { margin-left:4px; }
 .story-bottom { left:24px;right:24px;bottom:32px; }.story-tools button { min-width:40px;min-height:40px; }.story-tools button[data-globe-zoom] { display:none; }.story-interaction { margin:6px 0 0;font-size:10px; }.story-desktop-hint { display:none; }.story-scroll { font-size:10px; }.story-scroll span { margin-left:5px;font-size:16px; }
 .story-sample-note { font-size:9px;bottom:7px; }.story-contact { margin-top:8px;font-size:11px; }
}
@media (max-height:740px) and (min-width:851px) { .story-sticky { min-height:500px; }.story-copy h2 { font-size:25px !important; }.story-copy p { font-size:13px;margin-top:12px; }.story-orbit { width:min(56vw,76svh); } }
@media (prefers-reduced-motion:reduce) { .asset-story.story-enhanced { height:auto; }.story-enhanced .story-sticky { position:relative;top:0; }.story-scroll { display:none; } }

/* Quiet navigation: a progress rail, with labels on hover and keyboard focus. */
.story-topline { top:50%;left:auto;right:20px;transform:translateY(-50%); }
.story-nav { flex-direction:column;gap:0; }
.story-nav button { width:36px;height:40px;padding:0;position:relative;display:grid;place-items:center; }
.story-nav button::after { content:"";width:16px;height:1px;background:var(--text-primary);opacity:.22;transition:width .2s,opacity .2s; }
.story-nav button[aria-current="step"] { box-shadow:none; }
.story-nav button[aria-current="step"]::after { width:28px;opacity:.65; }
.story-nav button span { position:absolute;right:44px;white-space:nowrap;font-size:11px;padding:7px 10px;border-radius:5px;background:var(--story-panel);color:var(--text-primary);opacity:0;pointer-events:none; }
.story-nav button:hover span,.story-nav button:focus-visible span { opacity:1; }
.story-nav button:hover::after { opacity:1; }
.story-key { right:clamp(70px,5.5vw,90px); }
.story-bottom { bottom:28px;align-items:center; }
.story-skip { pointer-events:auto;font-size:11px;opacity:.6; }
.story-skip:hover,.story-skip:focus-visible { opacity:1; }
.story-globe-controls { position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:max-content;text-align:center;opacity:0;transition:opacity .2s; }
.story-orbit:hover .story-globe-controls,.story-orbit:focus-within .story-globe-controls { opacity:.75; }
.story-tools { justify-content:center;gap:8px; }
.story-tools button,.story-tools button[data-globe-reset] { min-width:30px;min-height:30px;border:0;background:transparent;font-size:18px;padding:0; }
.story-tools button:hover { background:var(--bg-elevated); }
.story-map:focus-visible { outline:1px solid var(--story-line);outline-offset:4px;border-radius:50%; }
.story-interaction { margin-top:4px;font-size:10px; }
.story-sample-note { bottom:9px;font-size:9px;opacity:.7; }
.story-failed .story-globe-controls { opacity:1; }
@media (max-width:850px) {
 .story-topline { right:4px;top:50%; }.story-nav button { width:27px;height:35px; }.story-nav button::after { width:10px; }.story-nav button[aria-current="step"]::after { width:19px; }.story-nav button span { right:30px; }
 .story-copy,.story-copy--intro { top:26px; }.story-key { right:24px;bottom:55px; }
 .story-orbit { top:49%; }.story-globe-controls { display:none; }.story-bottom { bottom:25px; }.story-sample-note { font-size:8px;bottom:6px; }
}
@media (max-width:850px) and (max-height:740px) {
 .story-copy,.story-copy--intro { top:20px; }.story-copy h2 { font-size:22px !important; }.story-copy p { font-size:12px;line-height:1.4;margin-top:8px; }.story-copy .story-eyebrow { margin-bottom:6px; }.story-copy .story-secondary { font-size:10px; }
 .story-orbit { width:min(86vw,44svh);top:49.5%; }.story-key { padding:10px 12px;bottom:51px; }.story-key h3 { margin-bottom:7px; }.story-key p { font-size:9px; }.story-key li { font-size:9px; }
}
@media (max-height:540px) { .story-sticky { min-height:650px; } }
/* Legends belong to the editorial layout, without card or button chrome. */
.story-key { background:transparent;border:0;border-radius:0;backdrop-filter:none;padding:0; }
.story-key h3 { font-size:12px;font-weight:400;color:var(--story-muted); }
.story-company { background:transparent;border:0;border-radius:0;padding:10px 0;margin-top:0; }
.story-company:hover { color:var(--link-color); }
.story-company[aria-pressed="false"] { opacity:.45; }
.story-company:focus-visible { outline:1px solid var(--story-line);outline-offset:4px; }
.story-company small { margin-top:4px;font-size:10px; }
.story-company .story-check { font-size:11px;color:var(--story-muted); }
.story-key p { font-size:11px; }
@media (max-width:850px) {
 .story-key { padding:0 8px; }.story-company { padding:7px 0; }.story-key h3 { font-size:11px; }.story-key p { font-size:9px; }
}

.story-fallback-light { display:none; }
html[data-theme="light"] .story-fallback-dark { display:none; }
html[data-theme="light"] .story-fallback-light { display:block; }
html[data-theme="light"] .story-ready .story-fallback { display:none; }

.asset-story:not(.story-enhanced) .story-topline { display:none; }

/* The entry frame overlaps only the empty area above its small visible globe. */
#overview { position:relative;z-index:1; }
.asset-story { background:transparent; }
.asset-story.story-enhanced { margin-top:calc(-1 * var(--story-entry-offset,0px)); }
.story-reduced,.story-failed { margin-top:0 !important; }
.story-fallback { inset:13%;width:74%;height:74%; }
.asset-story[data-stage="0"] .story-tools { visibility:hidden; }
.asset-story[data-stage="0"] .story-topline { opacity:0;pointer-events:none; }
.story-topline:focus-within,.story-bottom:focus-within { opacity:1 !important; }
@media (max-width:850px) {
 .story-company { width:calc(33.333% - 5px);vertical-align:top;font-size:11px;gap:6px; }.story-company small { font-size:8px; }.story-company+.story-company { margin-left:4px; }.story-company .story-check { display:none; }
 .asset-story[data-stage="0"] .story-copy { top:74%; }
}

/* The SVG ends on its lower wave contour, not on its rectangular viewBox. */
.brand-hero::before,html[data-theme="light"] .brand-hero::before { bottom:-110px; }
.brand-hero + #overview { background:transparent !important; }
