@font-face { font-family: "Fraunces"; src: url("/assets/fonts/fraunces-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
/* Redesign preview: "Obsidian & Aurora". Loaded after align.css; overrides tokens and surfaces only. */
:root {
  --navy-deep: #05070c; --navy-mid: #0c1119; --purple-glow: #3b3a7a; --purple-bright: #9d8cff;
  --teal: #5cf2cf; --teal-dim: #19b99f; --silver: #c9ced9; --white: #fbfcff;
  --amber: #b9adff; --line: rgba(255,255,255,0.09); --glass: rgba(255,255,255,0.035);
  --display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --ease: cubic-bezier(.2,.7,.2,1);
}
html { background: var(--navy-deep); }
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: var(--navy-deep); letter-spacing: 0.005em; }
/* living aurora backdrop */
body::before { content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(60vmax 40vmax at 12% -8%, rgba(92,242,207,0.16), transparent 60%),
    radial-gradient(55vmax 45vmax at 95% 8%, rgba(157,140,255,0.20), transparent 60%),
    radial-gradient(50vmax 40vmax at 60% 105%, rgba(157,140,255,0.10), transparent 60%),
    var(--navy-deep); }
body::after { content: ""; position: fixed; inset: -50%; z-index: -1; pointer-events: none; opacity: .5;
  background: conic-gradient(from 0deg at 50% 50%, rgba(92,242,207,0.07), transparent 25%, rgba(157,140,255,0.08), transparent 60%, rgba(157,140,255,0.06), transparent 85%, rgba(92,242,207,0.07));
  filter: blur(60px); animation: spin 60s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* type */
h1, h2, .ex-h1, .hub-h1 { font-family: var(--display); font-weight: 500; letter-spacing: -0.02em; }
h1, .hub-h1, .ex-h1 { text-transform: none; }
.hub-h1 { font-size: clamp(2.6rem, 6.4vw, 5.2rem); line-height: 1.04; max-width: 17ch; margin-left: auto; margin-right: auto; background: linear-gradient(180deg, #fff 30%, #aab4ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ex-h1 { font-size: clamp(2.2rem, 5.2vw, 4rem); line-height: 1.06; }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.7rem); line-height: 1.12; }
.eyebrow { display: inline-flex; align-items: center; gap: 12px; color: var(--teal); font-size: 0.74rem; letter-spacing: 0.28em; }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: linear-gradient(90deg, transparent, var(--teal)); }
.section-lead { color: #a9b1c4; font-size: clamp(1.02rem, 1.3vw, 1.2rem); line-height: 1.7; }
[style*="text-align:center"] .eyebrow, .ex-section .container > .eyebrow:only-of-type { }

/* header */
.site-header { background: rgba(5,7,12,0.62); backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4); border-bottom: 1px solid var(--line); }
.main-nav > ul > li > a { position: relative; color: #d4d9e6; }
.main-nav > ul > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: linear-gradient(90deg, transparent, var(--teal), transparent); transform: scaleX(0); transition: transform .35s var(--ease); }
.main-nav > ul > li > a:hover::after, .main-nav > ul > li > a.active::after { transform: scaleX(1); }
.main-nav .dropdown { background: rgba(10,14,22,0.92); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 30px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(92,242,207,0.06); backdrop-filter: blur(20px); }

/* buttons */
.cta-btn, .secondary-nav .cta-btn { background: linear-gradient(120deg, var(--teal), #8ff7e0 45%, #b8a9ff); color: #04100d; border-radius: 999px; font-weight: 700; padding: 12px 26px; box-shadow: 0 10px 30px -8px rgba(92,242,207,0.55), inset 0 1px 0 rgba(255,255,255,0.5); transition: transform .3s var(--ease), box-shadow .3s var(--ease), filter .3s; }
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -8px rgba(92,242,207,0.7), inset 0 1px 0 rgba(255,255,255,0.6); filter: saturate(1.15); }
.hub-ghost-btn { border-radius: 999px; border: 1px solid rgba(255,255,255,0.22); background: var(--glass); color: var(--white); backdrop-filter: blur(8px); transition: border-color .3s, background .3s, transform .3s var(--ease); }
.hub-ghost-btn:hover { border-color: var(--teal); background: rgba(92,242,207,0.08); transform: translateY(-3px); }

/* heroes */
.hub-hero { position: relative; min-height: min(92vh, 860px); display: flex; align-items: center; overflow: hidden; background: none; }
.hub-hero::before { content: ""; position: absolute; left: 50%; top: 42%; width: 90vmax; height: 70vmax; margin: -35vmax 0 0 -45vmax; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(157,140,255,0.34), rgba(92,242,207,0.12) 55%, transparent 80%); filter: blur(20px); animation: float 16s ease-in-out infinite alternate; pointer-events: none; }
.hub-hero::after { content: ""; position: absolute; left: 50%; top: 46%; width: 120vmin; height: 120vmin; margin: -60vmin 0 0 -60vmin; border-radius: 50%; pointer-events: none;
  background: repeating-radial-gradient(circle, transparent 0 62px, rgba(255,255,255,0.07) 62px 63px); mask-image: radial-gradient(circle, #000 20%, transparent 68%); -webkit-mask-image: radial-gradient(circle, #000 20%, transparent 68%); animation: breathe 9s ease-in-out infinite alternate; }
@keyframes breathe { from { transform: scale(.94); opacity: .6; } to { transform: scale(1.06); opacity: 1; } }
@keyframes float { to { transform: translate(-3vmax, 3vmax) scale(1.1); } }
.hub-hero-inner { position: relative; text-align: center; display: flex; flex-direction: column; align-items: center; z-index: 2; padding-top: 80px; padding-bottom: 80px; }
.hub-hero-actions { justify-content: center; display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.ex-hero[style*="--hero-img"] .ex-hero-overlay { background: linear-gradient(180deg, rgba(5,7,12,0.55), rgba(5,7,12,0.9)), radial-gradient(60% 80% at 80% 0%, rgba(157,140,255,0.25), transparent); }
.ex-hero-overlay { background: radial-gradient(60% 90% at 85% 0%, rgba(157,140,255,0.22), transparent 70%), linear-gradient(180deg, transparent, rgba(5,7,12,0.7)); }

/* sections */
.ex-section, .ex-section-alt { background: none !important; position: relative; }
.ex-section-alt { background: linear-gradient(180deg, transparent, rgba(255,255,255,0.025) 20%, rgba(255,255,255,0.025) 80%, transparent) !important; }
.ex-section, .ex-section-alt { padding-top: clamp(64px, 9vw, 120px); padding-bottom: clamp(64px, 9vw, 120px); }

/* glass cards with spotlight */
.hub-tech-card, .app-card, .flow-step, .scene-card, .partner-card, .value-card, .model-card, .info-card {
  background: linear-gradient(160deg, rgba(255,255,255,0.06), rgba(255,255,255,0.015)); border: 1px solid var(--line); border-radius: 22px;
  box-shadow: 0 1px 0 rgba(255,255,255,0.06) inset, 0 24px 60px -30px rgba(0,0,0,0.8); backdrop-filter: blur(10px);
  transition: transform .5s var(--ease), border-color .4s, box-shadow .5s var(--ease); position: relative; overflow: hidden; }
.hub-tech-card::before, .app-card::before, .flow-step::before, .scene-card::before, .partner-card::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(92,242,207,0.14), transparent 60%); }
.hub-tech-card:hover::before, .app-card:hover::before, .flow-step:hover::before, .scene-card:hover::before { opacity: 1; }
.hub-tech-card:hover, .scene-card:hover { transform: translateY(-8px); border-color: rgba(92,242,207,0.45); box-shadow: 0 40px 80px -30px rgba(92,242,207,0.25), 0 1px 0 rgba(255,255,255,0.1) inset; }
.app-card:hover, .flow-step:hover { border-color: rgba(92,242,207,0.35); transform: translateY(-4px); }
.hub-tech-visual { background: radial-gradient(80% 90% at 50% 100%, rgba(157,140,255,0.28), rgba(92,242,207,0.06) 60%, transparent); }
.hub-tech-visual img { transition: transform .8s var(--ease); }
.hub-tech-card:hover .hub-tech-visual img, .scene-card:hover img { transform: scale(1.05); }
.scene-card img { transition: transform .8s var(--ease); }
.hub-tech-tag, .sol-cols h4 { color: var(--amber); }
.flow-step .flow-num { background: linear-gradient(135deg, var(--teal), var(--purple-bright)); box-shadow: 0 0 24px rgba(92,242,207,0.4); }
.app-card h3, .flow-step h3, .scene-card h3, .sol-text h3 { font-family: var(--display); font-weight: 500; font-size: 1.35rem; letter-spacing: -0.01em; }
.sol-img img, .proj-wrap img { border-radius: 22px; border-color: var(--line); box-shadow: 0 40px 90px -40px rgba(0,0,0,0.9), 0 0 60px -20px rgba(157,140,255,0.3); }
.chip { background: var(--glass); border-color: var(--line); border-radius: 999px; transition: all .3s var(--ease); }
.chip:hover { border-color: var(--teal); color: var(--teal); transform: translateY(-2px); background: rgba(92,242,207,0.07); }

/* footer */
.site-footer { background: linear-gradient(180deg, transparent, rgba(12,17,25,0.9)); border-top: 1px solid var(--line); }
.site-footer .footer-section h4 { color: var(--white); letter-spacing: .04em; }
.site-footer .footer-section a { color: #9aa3b8; transition: color .25s, transform .25s var(--ease); }
.site-footer .footer-section a:hover { color: var(--teal); transform: translateX(3px); }

/* scroll reveal (only when JS runs) */
.js .rv { opacity: 0; transform: translateY(28px); filter: blur(6px); transition: opacity .9s var(--ease), transform .9s var(--ease), filter .9s var(--ease); transition-delay: var(--d, 0s); }
.js .rv.in { opacity: 1; transform: none; filter: none; }
.scroll-bar { position: fixed; top: 0; left: 0; height: 2px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); z-index: 300; background: linear-gradient(90deg, var(--teal), var(--purple-bright)); pointer-events: none; }
::selection { background: rgba(92,242,207,0.3); color: #fff; }
@media (prefers-reduced-motion: reduce) { body::after, .hub-hero::before { animation: none; } .js .rv { opacity: 1; transform: none; filter: none; transition: none; } }
@media (max-width: 700px) { .hub-hero { min-height: auto; } .hub-h1 { max-width: none; } }
/* dark comparison block (was light gray) */
.ex-compare { background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)) !important; color: var(--silver); border-block: 1px solid var(--line); }
.ex-compare h2 { color: var(--white); } .ex-compare h3 { color: var(--teal); }
.ex-compare-lead { color: #a9b1c4; }
.ex-compare-row { border-bottom-color: var(--line); }
.ex-compare-old { color: #7e869b; } .ex-compare-new { color: var(--teal); }
.ex-compare li, .ex-compare p { color: inherit; }
.ex-compare-cols > div { padding: 28px 32px; border: 1px solid var(--line); border-radius: 22px; background: var(--glass); }
.ex-compare-cols > div:first-child h3 { color: #aab2c6 !important; } .ex-compare-cols > div:first-child ul { color: #8d96ab !important; }
.ex-compare-cols > div:last-child h3 { color: var(--teal) !important; } .ex-compare-cols > div:last-child ul, .ex-compare-cols > div:last-child li { color: var(--teal) !important; }
@media (max-width: 700px) { .ex-compare-cols { grid-template-columns: 1fr !important; gap: 18px !important; } }

/* ---- side panel ---- */
.side-panel-overlay { background: rgba(2,4,8,0.62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); transition: opacity .4s var(--ease); }
.side-panel { left: -440px; width: min(380px, 88vw); padding: 26px 34px 34px; overflow-y: auto; overscroll-behavior: contain;
  background: radial-gradient(120% 60% at 0% 0%, rgba(92,242,207,0.14), transparent 55%), radial-gradient(100% 50% at 100% 100%, rgba(157,140,255,0.18), transparent 60%), rgba(8,11,18,0.94);
  backdrop-filter: blur(24px) saturate(1.3); -webkit-backdrop-filter: blur(24px) saturate(1.3);
  border-right: 1px solid var(--line); box-shadow: 40px 0 120px rgba(0,0,0,0.6); transition: left .5s var(--ease); }
.side-panel.open { left: 0; }
.side-panel-top { justify-content: space-between; flex-direction: row-reverse; margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.side-panel-logo img { width: 128px; border-radius: 8px; }
#sidePanelHamburger { position: relative; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: var(--glass); display: grid; place-items: center; gap: 0; transition: border-color .3s, transform .5s var(--ease); }
#sidePanelHamburger span { position: absolute; width: 16px; }
#sidePanelHamburger span:nth-child(1) { transform: rotate(45deg); } #sidePanelHamburger span:nth-child(2) { opacity: 0; } #sidePanelHamburger span:nth-child(3) { transform: rotate(-45deg); }
#sidePanelHamburger:hover { border-color: var(--teal); transform: rotate(90deg); }
.side-panel-nav { gap: 0; }
.side-panel-nav > a, .side-panel-accordion-toggle { font-family: var(--display); font-weight: 500; font-size: 1.45rem; letter-spacing: -0.01em; padding: 14px 0; color: var(--white); border-bottom: 1px solid var(--line); transition: color .25s, padding-left .35s var(--ease); }
.side-panel-nav > a:hover, .side-panel-accordion-toggle:hover, .side-panel-accordion-toggle.open { color: var(--teal); padding-left: 8px; }
.side-panel-accordion { border-bottom: 0; }
.side-panel-accordion-toggle { border-bottom: 1px solid var(--line); text-align: left; }
.side-panel-accordion-toggle .chevron { font-size: 0; width: 9px; height: 9px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin-right: 6px; transition: transform .4s var(--ease); opacity: .7; }
.side-panel-accordion-toggle.open .chevron { transform: rotate(-135deg); }
.side-panel-submenu { padding: 6px 0 14px 4px; border-left: 1px solid rgba(92,242,207,0.3); margin: 8px 0 8px 2px; }
.side-panel-submenu.open { animation: dropIn .45s var(--ease); }
@keyframes dropIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.side-panel-submenu a { font-size: 0.98rem; color: #aab2c6; padding: 8px 0 8px 18px; position: relative; transition: color .2s, padding-left .3s var(--ease); }
.side-panel-submenu a::before { content: ""; position: absolute; left: 0; top: 50%; width: 8px; height: 1px; background: var(--teal); opacity: 0; transition: opacity .2s, width .3s var(--ease); }
.side-panel-submenu a:hover { color: var(--teal); padding-left: 26px; } .side-panel-submenu a:hover::before { opacity: 1; width: 16px; }
.side-panel-nav > a:last-child { margin-top: 26px; border: 0; text-align: center; font-family: inherit; font-size: 1rem; font-weight: 700; padding: 14px 24px; border-radius: 999px; color: #04100d;
  background: linear-gradient(120deg, var(--teal), #8ff7e0 45%, #b8a9ff); box-shadow: 0 12px 30px -10px rgba(92,242,207,0.6); }
.side-panel-nav > a:last-child:hover { color: #04100d; padding-left: 24px; transform: translateY(-2px); }
.side-panel .side-panel-nav > * { opacity: 0; transform: translateX(-16px); transition: opacity .5s var(--ease), transform .5s var(--ease), color .25s, padding-left .35s var(--ease); }
.side-panel.open .side-panel-nav > * { opacity: 1; transform: none; }
.side-panel.open .side-panel-nav > :nth-child(1) { transition-delay: .12s; } .side-panel.open .side-panel-nav > :nth-child(2) { transition-delay: .17s; }
.side-panel.open .side-panel-nav > :nth-child(3) { transition-delay: .22s; } .side-panel.open .side-panel-nav > :nth-child(4) { transition-delay: .27s; }
.side-panel.open .side-panel-nav > :nth-child(5) { transition-delay: .32s; } .side-panel.open .side-panel-nav > :nth-child(6) { transition-delay: .37s; }
.side-panel.open .side-panel-nav > :nth-child(7) { transition-delay: .42s; } .side-panel.open .side-panel-nav > :nth-child(8) { transition-delay: .47s; }
@media (prefers-reduced-motion: reduce) { .side-panel .side-panel-nav > * { opacity: 1; transform: none; transition: none; } }

/* ---- fixes from page audit ---- */
.ex-section [style*="text-align:center"] .eyebrow::after, .cross-strip .eyebrow::after, .ex-stat-bar .eyebrow::after { content: ""; width: 28px; height: 1px; background: linear-gradient(270deg, transparent, var(--teal)); }
.ex-section, .ex-section-alt { padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 88px); }
.ex-stat-bar { background: linear-gradient(180deg, rgba(92,242,207,0.05), rgba(157,140,255,0.07)) !important; border-block: 1px solid var(--line) !important; }
section[style*="background:linear-gradient(rgba(19,26,61"] { background: none !important; }
main a:not([class]):not([style*="color"]) { color: var(--teal); text-decoration: underline; text-decoration-color: rgba(92,242,207,0.4); text-underline-offset: 3px; transition: text-decoration-color .2s; }
main a:not([class]):hover { text-decoration-color: var(--teal); }
.air-figure img, .air-product img { border-radius: 22px; box-shadow: 0 40px 90px -40px rgba(0,0,0,0.9), 0 0 0 1px var(--line), 0 0 70px -25px rgba(157,140,255,0.35); background: #fff; }
.ex-hero:not(:has(.ex-hero-video)) { min-height: clamp(280px, 38vh, 420px); }
.js .rv { filter: blur(3px); }
.air-hero, .air-hero-text { background: none; }
html { color-scheme: dark; scrollbar-color: #2b3246 #05070c; scrollbar-width: thin; }
.side-panel { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.18) transparent; }

/* neutral glass instead of navy-blue boxes */
.cookie-banner { background: rgba(10,13,20,0.82) !important; backdrop-filter: blur(22px) saturate(1.3); -webkit-backdrop-filter: blur(22px) saturate(1.3); border: 1px solid var(--line) !important; border-radius: 22px !important; box-shadow: 0 30px 90px rgba(0,0,0,0.7), 0 0 0 1px rgba(92,242,207,0.05) !important; }
.cookie-banner h2, .cookie-banner h3 { font-family: var(--display); font-weight: 500; }
.lang-menu { background: rgba(10,13,20,0.94) !important; border: 1px solid var(--line) !important; border-radius: 14px !important; backdrop-filter: blur(18px); box-shadow: 0 24px 60px rgba(0,0,0,0.7); }
.lang-toggle { border-color: var(--line); background: var(--glass); }
.lang-toggle:hover, .lang-switch[open] .lang-toggle { border-color: var(--teal); background: rgba(92,242,207,0.08); }
.vid-frame { background: radial-gradient(90% 90% at 50% 100%, rgba(157,140,255,0.28), rgba(92,242,207,0.05) 60%, #0a0d14) !important; border-color: var(--line) !important; border-radius: 18px; }
select, input, textarea { background-color: rgba(255,255,255,0.04); }

/* mega menu: neutral glass, no stray bridge bar */
.main-nav li.has-dropdown.mega:hover > .dropdown, .main-nav li.has-dropdown.mega:focus-within > .dropdown {
  background: rgba(9,12,19,0.9); border: 1px solid var(--line); border-radius: 20px; padding: 24px 22px 18px; gap: 0 28px;
  backdrop-filter: blur(22px) saturate(1.3); -webkit-backdrop-filter: blur(22px) saturate(1.3);
  box-shadow: 0 40px 100px -20px rgba(0,0,0,0.85), 0 0 0 1px rgba(92,242,207,0.05), inset 0 1px 0 rgba(255,255,255,0.06); animation: dropIn .35s var(--ease); }
.main-nav .dropdown::before, .main-nav li.has-dropdown.mega > .dropdown::before { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.main-nav a.mega-head { color: var(--amber); border-bottom-color: var(--line); letter-spacing: .22em; }
.main-nav .mega-col > ul a { color: #b3bbcd; border-radius: 8px; padding: 7px 10px; margin-left: -10px; transition: color .2s, background .2s, padding-left .3s var(--ease); }
.main-nav .mega-col > ul a:hover { color: var(--teal); background: rgba(92,242,207,0.07); padding-left: 14px; }
.main-nav li.has-dropdown.mega:hover > .dropdown, .main-nav li.has-dropdown.mega:focus-within > .dropdown { margin-top: 14px; }
.main-nav li.has-dropdown.mega > .dropdown::before { top: -16px !important; height: 16px !important; }

/* hero refinements */
.hub-h1, .ex-h1, h1 { font-weight: 400; letter-spacing: -0.025em; }
h2, .side-panel-nav > a, .side-panel-accordion-toggle { font-weight: 400; }
.hub-hero .section-lead, .ex-hero .section-lead { color: #cdd3e2; font-weight: 450; text-shadow: 0 1px 24px rgba(5,7,12,0.8); }
.hub-hero-actions .hub-ghost-btn { border-color: rgba(255,255,255,0.28); color: #fff; background: rgba(255,255,255,0.05); }
.hub-hero-actions .hub-ghost-btn:hover { border-color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.1); }
.hub-hero::after { background: repeating-radial-gradient(circle, transparent 0 62px, rgba(255,255,255,0.12) 62px 63px); }

/* header CTA: gradient-outline pill */
.nav-cta, .secondary-nav a.nav-cta { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px 10px 22px; border-radius: 999px; font-weight: 600; font-size: 0.92rem; letter-spacing: .01em; color: #fff !important; border: 1px solid transparent;
  background: linear-gradient(rgba(8,11,17,0.92), rgba(8,11,17,0.92)) padding-box, linear-gradient(120deg, var(--teal), var(--purple-bright)) border-box;
  box-shadow: 0 0 0 0 rgba(92,242,207,0), 0 8px 24px -12px rgba(92,242,207,0.5); transition: box-shadow .35s var(--ease), transform .35s var(--ease), background .35s, color .25s; }
.nav-cta::after { content: "→"; transition: transform .35s var(--ease); }
.nav-cta:hover, .secondary-nav a.nav-cta:hover { color: #04100d !important; transform: translateY(-2px); box-shadow: 0 0 0 4px rgba(92,242,207,0.12), 0 14px 32px -10px rgba(92,242,207,0.7);
  background: linear-gradient(120deg, var(--teal), #8ff7e0 45%, #b8a9ff) padding-box, linear-gradient(120deg, var(--teal), var(--purple-bright)) border-box; }
.nav-cta:hover::after { transform: translateX(4px); }
