/* Public component system. All native pages, including the homepage, share it. */
:root { --ui-ink:#171423; --ui-muted:#625c70; --ui-purple:#7544bf; --ui-line:#e2dfe9; --ui-surface:#f6f5f9; --ui-radius:22px; }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-padding-top:90px; }
body { color:var(--ui-ink); background:var(--ui-surface); }
img { max-width:100%; }
[hidden] { display:none !important; }
.container { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.section-pad { padding-block:72px; }
h1,h2,h3,p { min-width:0; }
h2 { font-size:40px; line-height:1.12; }
.eyebrow,.laboratory-eyebrow { margin:0 0 16px; color:var(--ui-purple); font-size:12px; line-height:1.5; font-weight:650; letter-spacing:.07em; text-transform:uppercase; }
.section-heading-row { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.section-heading-row h2 { margin:0; }
.section-heading-row > a { flex-shrink:0; }
.text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:inherit; font-weight:550; text-underline-offset:6px; }
.action-row { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:28px; }
.button { min-height:48px; padding:14px 24px; border-radius:13px; font-size:16px; line-height:1.3; text-align:center; white-space:normal; }
.button--accent { background:#c8472e; color:white; box-shadow:none; }
button { font:inherit; cursor:pointer; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #8958df; outline-offset:4px; }
.site-header { height:72px; background:#151419; }
.site-header__inner,.site-header__inner.container { width:min(1200px,calc(100% - 64px)); padding:0; gap:28px; }
.site-logo,.site-logo img { width:122px; }
.site-nav { gap:24px; }
.site-nav a,.site-nav a:nth-child(n) { width:auto; height:48px; margin:0; padding:0; font-size:13px; }
.site-nav a[aria-current=page]:not(.site-nav__contact) { color:#d2b3ff; }
.site-nav .site-nav__contact { width:auto !important; min-width:120px; padding:0 20px !important; height:44px !important; border-radius:12px !important; }
.site-footer { padding:56px 0 24px; font-size:14px; text-transform:none; }
.site-footer__grid { display:grid; grid-template-columns:130px 140px 1fr 1.3fr; gap:32px; }
.site-footer__brand { align-self:start; }
.site-footer__brand img { width:125px; height:auto; }
.site-footer__links,.site-footer__column { display:flex; flex-direction:column; gap:10px; min-width:0; }
.site-footer__column strong { margin-bottom:6px; font-size:14px; }
.site-footer a { position:relative; z-index:1; line-height:1.5; overflow-wrap:anywhere; }
.site-footer__links a,.site-footer__column > a { display:flex; align-items:center; min-height:32px; }
.socials { display:flex; gap:8px; margin-top:8px; }
.socials a { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; }
.review-link { width:auto; height:auto; min-height:44px; justify-self:start; grid-column:1/3; border:0; border-radius:0; font-size:14px; }
.site-footer__legal { grid-column:3/-1; display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px 24px; align-items:center; font-size:12px; }
.home-page h2,.home-page h3 { text-transform:none; letter-spacing:-.02em; }
.home-promo { padding:28px 0 40px; }
.home-promo__viewport { position:relative; overflow:hidden; border:1px solid #9acbff40; border-radius:26px; background:#07182e; color:#fff; box-shadow:0 26px 64px #04142e29; }
.home-promo__slide { position:relative; min-height:600px; isolation:isolate; }
.home-promo__art { position:absolute; inset:0; z-index:-3; }
.home-promo__art img,.home-promo__art picture { display:block; width:100%; height:100%; object-fit:cover; }
.home-promo__slide::after { content:''; position:absolute; inset:0; z-index:-2; background:radial-gradient(circle at 78% 16%,#603dd488,transparent 32%),linear-gradient(102deg,#05152afa 4%,#071c36e8 47%,#071a5055); }
.home-promo__slide::before { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(#accfff18 1px,transparent 1px),linear-gradient(90deg,#accfff18 1px,transparent 1px); background-size:47px 47px; mask-image:linear-gradient(90deg,#000,transparent 90%); }
.home-promo__content { width:100%; padding:30px 46px 56px; container-type:inline-size; }
.home-promo__system-bar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 24px; max-width:840px; padding-bottom:16px; margin-bottom:42px; border-bottom:1px solid #ffffff33; color:#c5d4ec; font-size:10px; font-weight:600; line-height:1.5; letter-spacing:.1em; text-transform:uppercase; }
.home-promo .eyebrow { color:#c8b4f0; }
.home-page .home-promo h2 { margin:0; font-size:clamp(36px,6.5cqi,72px); font-weight:720; line-height:.98; letter-spacing:-.045em; max-width:840px; text-transform:uppercase; }
.home-promo ul { display:grid; gap:8px; max-width:660px; margin:28px 0 32px; padding-left:20px; color:#d4e0f3; font-size:17px; line-height:1.5; }
.home-promo__controls { position:absolute; bottom:24px; right:24px; display:flex; gap:14px; align-items:center; }
.home-promo__controls button,.gallery-controls button { width:46px; height:46px; border:1px solid #ffffff60; border-radius:50%; background:#ffffff15; color:inherit; }
.home-about__grid { display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:center; }
.home-about h2 { margin:0 0 24px; }
.home-about__text { margin:0; color:var(--ui-muted); font-size:19px; line-height:1.6; }
.home-about__image { border-radius:var(--ui-radius); overflow:hidden; background:#e7e4ed; }
.home-about__image img { display:block; width:100%; height:auto; }
.home-directions,.home-news,.home-partners { background:#fff; }
.home-directions__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.home-directions__card { display:flex; flex-direction:column; padding:28px; border:1px solid var(--ui-line); border-radius:var(--ui-radius); background:var(--ui-surface); }
.card-number { color:var(--ui-purple); font-size:12px; margin-bottom:28px; }
.home-directions h3 { font-size:23px; line-height:1.2; margin:0 0 14px; }
.home-directions p { font-size:16px; line-height:1.5; color:var(--ui-muted); margin:0 0 18px; }
.home-directions .text-link { margin-top:auto; }
.home-labs { background:#14162b; color:#fff; }
.home-labs .eyebrow { color:#c8a2ff; }
.home-labs__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-lab { display:flex; flex-direction:column; padding:28px; border:1px solid #ffffff25; border-radius:var(--ui-radius); background:#17344e; min-width:0; }
.home-lab--ai { background:linear-gradient(145deg,#39205d,#23123e); }
.home-lab--robotics { background:linear-gradient(145deg,#104556,#0a2939); }
.home-lab__top { display:flex; justify-content:space-between; gap:12px; align-items:start; margin-bottom:32px; }
.home-lab__top img { width:60px; height:60px; filter:brightness(0) invert(1); opacity:.8; }
.home-lab h3 { margin:0 0 18px; font-size:27px; line-height:1.15; }
.home-lab p { font-size:16px; color:#e0dceb; line-height:1.55; margin:0 0 26px; }
.home-lab .text-link,.home-lab__action { margin-top:auto; min-height:44px; }
.home-lab__action { display:flex; align-items:center; color:#c7c1d2; font-size:14px; }
.home-heritage__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.home-heritage__card { display:flex; min-width:0; flex-direction:column; gap:16px; padding:24px; border-radius:var(--ui-radius); border:1px solid #dae1ee; background:#fff; color:var(--ui-ink); text-decoration:none; }
.home-heritage__card img { width:100%; height:82px; object-fit:contain; }
.home-heritage__card h3 { margin:4px 0 0; font-size:21px; line-height:1.2; }
.home-heritage__card p { margin:0; color:var(--ui-muted); font-size:14px; line-height:1.5; }
.home-heritage__card .text-link { margin-top:auto; color:#1258a8; font-size:14px; }
.home-leaders__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.home-leaders__card { background:#fff; overflow:hidden; border:1px solid var(--ui-line); border-radius:var(--ui-radius); }
.home-leaders__image { background:#e4e2e7; aspect-ratio:4/5; overflow:hidden; }
.home-leaders__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:top; }
.home-leaders__info { padding:22px; }
.home-leaders h3 { font-size:21px; line-height:1.25; margin:0 0 10px; }
.home-leaders p { font-size:15px; color:var(--ui-muted); margin:0; }
.gallery-controls { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.gallery-controls p { margin:0; color:var(--ui-muted); }
.gallery-controls > div { display:flex; gap:8px; flex-shrink:0; }
.gallery-controls button { background:#fff; border-color:var(--ui-line); }
.home-gallery__track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:18px; padding-bottom:16px; }
.gallery-thumb { display:block; padding:0; flex:0 0 65%; aspect-ratio:1.5; overflow:hidden; border:0; border-radius:var(--ui-radius); scroll-snap-align:start; background:#dfdce5; }
.gallery-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.home-partners__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.home-partners__item { min-width:0; padding:20px; background:#fff; border:1px solid var(--ui-line); border-radius:16px; }
.home-partners__item a { display:grid; place-items:center; height:100%; }
.home-partners__item img { display:block; width:100%; height:100px; object-fit:contain; }
.news__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.news-card { display:flex; flex-direction:column; border:1px solid var(--ui-line); border-radius:var(--ui-radius); box-shadow:none; background:#fff; overflow:hidden; min-width:0; }
.news-card__image { display:block; width:100%; height:auto; aspect-ratio:1.5; flex-shrink:0; overflow:hidden; }
.news-card__image img { width:100%; height:100%; object-fit:cover; }
.news-card__copy { display:flex; flex:1; flex-direction:column; padding:24px; min-height:0; }
.news-card time { order:0; color:var(--ui-purple); font-size:12px; margin:0 0 16px; }
.news-card h3 { font-size:23px; line-height:1.25; margin:0 0 14px; text-transform:none; }
.news-card p { font-size:15px; line-height:1.6; color:var(--ui-muted); margin:0 0 18px; }
.news-card .text-link { margin-top:auto; }
.article__inner { width:min(860px,calc(100% - 64px)); }
.article h1 { font-size:46px; line-height:1.13; text-transform:none; overflow-wrap:normal; hyphens:none; }
.article__intro { font-size:20px; line-height:1.6; font-weight:400; color:var(--ui-muted); }
.article__body { font-size:18px; line-height:1.75; }
.article__body img { max-width:100%; height:auto; }
.native-hero__copy,.laboratory-hero__copy { container-type:inline-size; }
.native-hero h1,.laboratory-hero h1 { width:100%; max-width:100%; font-size:clamp(24px,8cqi,54px); line-height:1.1; letter-spacing:-.025em; text-transform:none; overflow-wrap:normal; hyphens:none; }
.native-hero__copy { min-height:0; padding:44px; justify-content:center; }
.native-hero__summary { margin:24px 0 0; font-size:18px; line-height:1.6; }
.native-hero__subtitle { text-transform:none; font-size:22px; margin:0; }
.native-hero__grid { min-height:420px; }
.native-hero__visual > img { opacity:1; mix-blend-mode:normal; }
.native-hero__visual::before,.native-hero__visual::after { display:none; }
.native-hero__tags,.native-hero__telemetry { display:none; }
.native-section__heading { max-width:800px; }
.native-card { border:1px solid var(--ui-line); box-shadow:none; }
.native-card__copy { padding:28px; min-height:0; }
.native-card__copy h3 { font-size:24px; line-height:1.25; }
.native-card__copy p { font-size:17px; line-height:1.6; }
.native-card__copy a { display:inline-flex; align-items:center; min-height:44px; margin-top:20px; }
.native-card__meta { color:var(--ui-purple); font-size:12px; line-height:1.5; }
.native-section--dark .native-card__meta,.native-section--accent .native-card__meta { color:#d4b4ff; }
.native-cta__inner,.laboratory-cta__inner { gap:32px; }
.contacts-hero { padding:52px 0; background:#211132; color:#fff; }
.contacts-hero h1 { font-size:48px; line-height:1.1; margin:0 0 28px; }
.contacts-hero .eyebrow { color:#d4b4ff; }
.contact-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px 36px; }
.contact-actions a { font-size:24px; min-height:44px; overflow-wrap:anywhere; }
.contact-actions small { font-size:15px; }
.map-fallback { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:16px; background:#f0edf6; }
.map-fallback a { min-height:44px; display:inline-flex; align-items:center; }
.laboratory-index-card--ai { background:linear-gradient(145deg,#39205d,#23123e); color:white; }
.laboratory-index-card--industrial { background:#17344e; color:white; }
.laboratory-index-card { container-type:inline-size; }
.laboratory-index-card h2 { font-size:clamp(24px,8cqi,36px); line-height:1.15; text-transform:none; }
.laboratory-project-grid { align-items:start; }
.laboratory-project-card__gallery { position:relative; }
.project-gallery-open { position:absolute; inset:0; width:100%; border:0; background:transparent; color:inherit; z-index:2; }
.project-gallery-open > span { position:absolute; right:14px; bottom:14px; padding:7px 12px; border-radius:10px; background:#171423dd; color:white; font-size:13px; }
.laboratory-project-card__more { min-height:44px; }
.project-dialog__close { width:44px; height:44px; }
.project-dialog { scroll-padding-top:20px; }
.project-dialog h2 { text-transform:none; line-height:1.15; }
.media-dialog { width:min(1100px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:54px 16px 16px; border:1px solid #ffffff30; border-radius:20px; background:#171423; color:white; }
.media-dialog::backdrop { background:#090613dd; }
.media-dialog__close { position:absolute; right:12px; top:8px; background:transparent; border:0; color:white; width:44px; height:44px; font-size:28px; }
.media-dialog__image { display:block; width:100%; height:min(65dvh,700px); object-fit:contain; }
.media-dialog__bar { display:flex; align-items:center; gap:16px; justify-content:space-between; margin-top:12px; }
.media-dialog__bar button { flex-shrink:0; min-width:48px; min-height:44px; background:#ffffff15; border:1px solid #ffffff50; border-radius:10px; color:white; }
.media-dialog__caption { margin:0; text-align:center; font-size:14px; }
.learning-cases-hero h1,.learning-case-hero h1 { text-transform:none; line-height:1.1; }
.learning-cases-hero__code span { font-size:12px; }
.learning-case-card__copy h3 { line-height:1.2; }
.learning-case-route__grid { align-items:stretch; }
.stage-card h3 { overflow-wrap:normal; font-size:22px; }
.project-page__heading { max-width:900px; margin:32px 0; }
.project-page h1 { font-size:clamp(28px,4vw,48px); line-height:1.12; margin:0; overflow-wrap:normal; }
.project-page__description { max-width:800px; font-size:18px; line-height:1.75; margin-bottom:36px; }
.project-page__gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:32px 0; }
.project-page__gallery figure { margin:0; min-width:0; }
.project-page__gallery button { display:block; width:100%; border:0; padding:0; border-radius:18px; background:#e7e4ed; overflow:hidden; }
.project-page__gallery img { width:100%; height:auto; display:block; }
.project-page__gallery figcaption { padding-top:12px; color:var(--ui-muted); }
body:has(dialog[open]) { overflow:hidden; }
@media(min-width:1120px) and (max-width:1279px) { .site-nav { gap:16px; } }
@media(max-width:1119px) {
 .site-nav { gap:0; }
 .site-nav a,.site-nav a:nth-child(n) { width:100%; min-height:48px; justify-content:flex-start; }
 .site-header,.site-header__inner,.site-header__inner.container { height:64px; }
 .site-nav .site-nav__contact { width:min(220px,100%) !important; margin-top:12px !important; }
 .site-footer__grid { grid-template-columns:1fr 1fr; }
 .site-footer__legal { grid-column:1/-1; justify-content:flex-start; }
 .review-link { grid-column:1/-1; }
 .home-promo__content { width:100%; padding:30px 34px 56px; }
 .home-labs__grid,.home-directions__grid,.home-heritage__grid,.home-leaders__grid,.news__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .home-lab h3 { font-size:26px; }
 .home-promo__slide { min-height:530px; }
 .home-about__grid { gap:32px; }
 .home-partners__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .native-hero__grid { grid-template-columns:minmax(0,1fr) minmax(0,.85fr); }
 .native-hero__copy { padding:32px; }
}
@media(max-width:767px) {
 .project-page__gallery { grid-template-columns:1fr; gap:20px; }
 .container,.site-header__inner,.site-header__inner.container { width:calc(100% - 40px); }
 .section-pad { padding-block:48px; }
 h2,.section-title,.native-section h2,.laboratory-section h2 { font-size:30px; line-height:1.15; }
 .section-heading-row { align-items:start; flex-direction:column; gap:10px; margin-bottom:24px; }
 .home-promo { padding:20px 0 24px; }
 .home-promo__slide { min-height:0; }
 .home-promo__content { width:100%; padding:26px 22px 72px; }
 .home-page .home-promo h2 { font-size:clamp(22px,8.6cqi,42px); line-height:1.04; }
 .home-promo__system-bar { margin-bottom:30px; font-size:10px; }
 .home-promo ul { font-size:16px; line-height:1.5; }
 .home-promo__slide::after { background:radial-gradient(circle at 95% 5%,#603dd466,transparent 45%),linear-gradient(100deg,#05152af5,#071c36d9); }
 .home-promo__controls { bottom:18px; }
 .home-about__grid { grid-template-columns:1fr; }
 .home-about__text { font-size:17px; }
 .home-labs__grid,.news__grid { grid-template-columns:1fr; }
 .home-lab h3 { font-size:26px; }
 .home-lab__top { margin-bottom:22px; }
 .home-heritage__grid { grid-template-columns:1fr; }
 .home-heritage__card { display:grid; grid-template-columns:1fr; }
 .home-heritage__card img { object-position:left; height:70px; }
 .gallery-thumb { flex-basis:88%; aspect-ratio:1.2; }
 .gallery-controls { align-items:start; }
 .gallery-controls p { font-size:14px; }
 .home-leaders__info { padding:18px; }
 .home-leaders h3 { font-size:18px; }
 .article__inner { width:calc(100% - 40px); }
 .article h1 { font-size:32px; }
 .article__intro { font-size:18px; }
 .native-hero__grid { grid-template-columns:1fr; min-height:0; }
 .native-hero__copy { padding:32px 24px; min-height:0; }
 .native-hero h1,.native-page--digitaldesign .native-hero h1,.laboratory-hero h1 { font-size:clamp(24px,8.6cqi,38px); }
 .native-hero__visual { min-height:0; height:240px; }
 .native-hero__summary { font-size:17px; margin-top:22px; }
 .native-hero__subtitle { font-size:19px; }
 .contacts-hero h1 { font-size:34px; }
 .contact-actions { flex-direction:column; align-items:start; gap:16px; }
 .contact-actions a { font-size:21px; }
 .native-card__copy { padding:24px; }
 .news-card__copy { padding:24px; }
 .news-card h3 { font-size:23px; }
 .laboratory-about h2 { font-size:28px; text-transform:none; }
 .learning-case-hero h1,.learning-cases-hero h1 { font-size:34px; }
}
@media(max-width:479px) {
 .home-directions__grid { grid-template-columns:1fr; }
 .home-leaders__grid { grid-template-columns:1fr; }
 .home-leaders__card { display:grid; grid-template-columns:42% minmax(0,1fr); }
 .home-leaders__image { aspect-ratio:auto; min-height:190px; }
 .home-leaders__info { align-self:center; }
 .home-partners__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .home-partners__item { padding:16px; }
 .home-partners__item img { height:88px; }
 .home-promo__content { padding:30px 22px 76px; }
 .home-promo .eyebrow { font-size:11px; }
 .site-footer__grid { gap:30px 20px; }
 .site-footer__column { grid-column:1/-1; }
 .site-footer__legal { display:grid; gap:12px; }
 .home-lab { padding:24px; }
 .article h1 { font-size:28px; }
 .article__body { font-size:17px; }
 .learning-case-hero h1,.learning-cases-hero h1 { font-size:30px; }
 .gallery-controls { flex-direction:column; }
 .project-dialog h2 { font-size:23px; }
}
@media(max-width:359px) {
 .home-leaders__card { display:block; }
 .home-leaders__image { aspect-ratio:1.15; min-height:0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } }
