/* Opening boxes meet the top edge in both themes and at every breakpoint. */
.hero.shell{margin-top:0}
@media(max-width:720px){
 .lab-panel{min-height:0}
 .lab-panel .lab-copy{padding:32px 24px}
 .lab-panel .lab-copy .eyebrow{margin-bottom:18px}
 .lab-panel .lab-copy h2{font-size:clamp(2rem,8vw,2.8rem);margin-bottom:20px;line-height:1.12}
 .lab-panel .lab-copy>p:not(.eyebrow){margin-bottom:0;max-width:none;line-height:1.65}
 .lab-panel .lab-copy .button{margin:24px 0 0;min-height:48px}
}
.history-timeline .timeline-year{align-self:start;display:inline-flex;justify-content:center;align-items:center;width:68px;min-height:36px;padding:6px 10px;margin-top:20px;border:1px solid var(--border);border-radius:999px;background:var(--glass);color:var(--text);font-size:.75rem;font-weight:600;letter-spacing:.04em;transition:background .25s,color .25s}
.history-timeline li{grid-template-columns:68px minmax(0,1fr)}
.history-timeline li:has(.history-card[open]) .timeline-year{background:#245bff;color:#fff;border-color:#245bff;box-shadow:0 4px 16px #245bff30}
.history-timeline li:before{width:12px;height:12px;left:-7px;top:32px;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--border);background:var(--muted)}
.history-timeline li:has(.history-card[open]):before{background:#245bff;box-shadow:0 0 0 4px #245bff26}
.history-timeline li{padding-bottom:24px;gap:20px;grid-template-columns:60px minmax(0,1fr)}
.history-timeline li:before{top:28px}
.history-timeline .timeline-year{padding-top:22px}
.history-card{border:1px solid var(--border);border-radius:20px;background:var(--glass);transition:border-color .25s,box-shadow .25s;overflow:hidden}
.history-card summary{display:flex;align-items:center;gap:16px;padding:20px;list-style:none;cursor:pointer}
.history-card summary::-webkit-details-marker{display:none}
.history-card summary h3{margin:0;font-size:1.25rem;line-height:1.3;flex:1}
.history-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:#245bff20;color:var(--cyan);transition:transform .25s}
.history-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.history-toggle{font-size:24px;color:var(--muted);transition:transform .25s}
.history-card[open]{border-color:var(--cyan);box-shadow:0 8px 24px #245bff12}
.history-card[open] .history-toggle{transform:rotate(45deg)}
.history-detail{padding:0 24px 24px}
.history-card[open] .history-detail{animation:history-expand .3s ease both}
@keyframes history-expand{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(hover:hover){.history-card:hover{border-color:var(--cyan)}.history-card summary:hover .history-icon{transform:translateY(-3px) rotate(-5deg)}}
@media(max-width:720px){.history-timeline li{grid-template-columns:minmax(0,1fr);gap:12px;padding-left:20px}.history-timeline .timeline-year{padding-top:0}.history-timeline li:before{top:9px}.history-card summary{padding:18px 14px;gap:12px}.history-card summary h3{font-size:1.1rem}.history-detail{padding:0 18px 20px}}
@media(prefers-reduced-motion:reduce){.history-card,.history-icon,.history-toggle{transition:none}.history-card[open] .history-detail{animation:none}}
.cart-summary .button.primary:disabled{opacity:1;background:#293d50;border-color:#526b82;color:#dce6ee;box-shadow:none;transform:none;cursor:not-allowed;font-weight:600}
html[data-theme=light] .cart-summary .button.primary:disabled{background:#dbe5ed;border-color:#a3b7c8;color:#44586a}
.quote-portrait img{object-position:50% 25%;transform:scale(1.22);transform-origin:50% 60%}
.quote-section.shell{grid-template-columns:180px minmax(0,1fr);gap:clamp(32px,4vw,56px);padding:clamp(32px,4vw,56px);align-items:center}
.quote-section .quote-portrait{width:180px;height:180px;margin:0}
.quote-content blockquote{margin:0;line-height:1.4}
.quote-content .eyebrow{margin-bottom:20px}
.quote-content .quote-author{margin-top:24px;line-height:1.6}
@media(max-width:720px){
 .quote-section.shell{grid-template-columns:minmax(0,1fr);padding:32px 24px;gap:28px}
 .quote-section .quote-portrait{width:112px;height:112px}
 .quote-content .eyebrow{margin-bottom:16px}
 .quote-content .quote-author{margin-top:20px}
}
.hero .hero-bottom a .down-arrow{transition:transform .25s ease,background .25s ease,box-shadow .25s ease,border-color .25s ease}
.hero .hero-bottom a:focus-visible .down-arrow{border-color:currentColor;box-shadow:0 0 0 5px #84d6dc26}
@media(hover:hover) and (pointer:fine){
 .hero .hero-bottom a:hover .down-arrow{transform:translateY(4px);border-color:currentColor;background:#ffffff26;box-shadow:0 0 0 5px #84d6dc26}
 html[data-theme=light] .hero .hero-bottom a:hover .down-arrow{background:#ffffffa6;box-shadow:0 0 0 5px #245bff1a}
}
.hero .hero-bottom a:active .down-arrow{transform:scale(.94)}
@media(prefers-reduced-motion:reduce){.hero .hero-bottom a .down-arrow{transition:none}.hero .hero-bottom a:is(:hover,:active) .down-arrow{transform:none}}
/* One floating media card for all internal narrative pages. */
.hero .subpage-visual{position:relative;isolation:isolate;width:100%;height:auto;margin:0;aspect-ratio:1.1;border:1px solid #a9bed447;border-radius:24px;overflow:hidden;background:#122235;box-shadow:0 24px 60px #0003}
.hero .subpage-visual::after{display:none}
.hero .subpage-visual>.about-slide-frame{position:absolute;inset:0;aspect-ratio:auto}
.hero .subpage-visual>.about-slide-frame .about-slide,.hero .subpage-visual>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
.hero .subpage-visual figcaption.hero-notification{position:absolute;display:flex;align-items:center;gap:16px;left:20px;right:20px;bottom:20px;z-index:3;width:auto;max-width:440px;min-height:84px;margin:0;padding:18px 20px;border:1px solid #a9bed447;border-radius:18px;background:linear-gradient(135deg,#172738ee,#0c1728e8);box-shadow:0 12px 30px #0003,inset 0 1px 0 #ffffff20;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);font-family:Manrope,sans-serif;font-size:1rem;line-height:1.5;letter-spacing:-.02em;text-transform:none;color:#c6d2e0;transform-origin:right bottom}
.hero .subpage-visual .hero-notification img{position:static;width:40px;height:34px;object-fit:contain;flex-shrink:0}
html[data-theme=light] .hero .subpage-visual{border-color:#ffffffb3;box-shadow:0 24px 60px #21548826,0 0 0 1px #85a6c326}
html[data-theme=light] .hero .subpage-visual figcaption.hero-notification{color:#405874;background:linear-gradient(135deg,#fffffff0,#e3effbe8);border-color:#fff;box-shadow:0 12px 34px #10345b26,inset 0 1px 0 #fff}
html[data-theme=light] .hero:not(.home-immersive){background:radial-gradient(ellipse at 0% 100%,#51d3dd90,transparent 58%),radial-gradient(ellipse at 100% 100%,#6f95ff8c,transparent 58%),#edf5ff}

/* Home: the existing photo sequence now fills the entire rounded opening. */
.home-immersive{touch-action:pan-y pinch-zoom;cursor:grab}
.home-immersive.is-dragging{cursor:grabbing;user-select:none}
.home-immersive .home-slide-frame{translate:var(--swipe-offset,0) 0;transition:translate 240ms ease}
.home-immersive.is-dragging .home-slide-frame{transition:none}
.home-slide-controls{position:absolute;z-index:4;right:28px;bottom:24px;display:flex;align-items:center;gap:10px;color:#fff;cursor:default}
.home-slide-controls>span{font-size:.75rem;font-weight:600;min-width:62px;text-align:center}
.home-slide-controls button{display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff66;border-radius:50%;background:#0a23364d;color:inherit;font:400 24px/1 Manrope,sans-serif;backdrop-filter:blur(12px);cursor:pointer}
.home-slide-controls button:hover{background:#ffffff33}
.home-slide-controls button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
html[data-theme=light] .home-slide-controls{color:#09253f}
html[data-theme=light] .home-slide-controls button{border-color:#254e7a66;background:#ffffff59}
@media(max-width:720px){.home-slide-controls{right:20px;bottom:92px;gap:8px}.home-slide-controls button{width:44px;height:44px}.home-slide-controls>span{font-size:.6875rem;min-width:56px}}
@media(prefers-reduced-motion:reduce){.home-immersive .home-slide-frame{transition:none;translate:none}}
.hero.shell.home-immersive{isolation:isolate;display:flex;flex-direction:column;justify-content:center;overflow:clip;min-height:780px;min-height:min(900px,100svh);padding:164px clamp(28px,6vw,104px) 0;background:#091b31}
.home-immersive .home-backdrop{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:hidden;margin:0;border:0;border-radius:inherit;pointer-events:none}
.home-immersive .home-slide-frame{position:absolute;inset:0;aspect-ratio:auto}
.home-immersive .home-slide-frame>.hero-slide{width:100%;height:100%;object-fit:cover;object-position:65% center;filter:saturate(.95);transform:scale(1.035);transition:opacity 1200ms ease,transform 6500ms ease}
.home-immersive .home-slide-frame>.hero-slide.is-current{transform:scale(1)}
.home-immersive .home-backdrop::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#061329f0 0%,#071c35d9 32%,#09203959 72%,#0a23364d),linear-gradient(0deg,#0c294dd9,transparent 60%);z-index:1}
.hero.shell.home-immersive::before{z-index:1;inset:-30%;background:radial-gradient(ellipse at 13% 90%,#36c5d791,transparent 40%),radial-gradient(ellipse at 90% 80%,#3865ff99,transparent 43%);opacity:.65;pointer-events:none}
.home-immersive .hero-grid{position:relative;z-index:2;display:block;flex-shrink:0;width:100%;max-width:1328px;margin:auto;padding:48px 0 80px}
.home-immersive .hero-copy{max-width:760px;text-align:left}
.hero.home-immersive .hero-copy h1{margin:0;max-width:760px;font-size:clamp(2.8rem,4.5vw,4.8rem);line-height:1.1;color:#f4f8ff}
.home-immersive .hero-buttons{justify-content:flex-start;margin-top:36px}
.home-immersive .hero-bottom{flex-shrink:0;width:100%;padding:24px 0 28px;border-top:1px solid #b0dcf447;color:#fff}
.home-immersive .hero-bottom>a{font-weight:600;color:inherit}
.home-immersive .visual-corner{top:auto;bottom:32px;right:32px;z-index:2;color:#fff;font-weight:600}
html[data-theme=light] .hero.shell.home-immersive{background:#d4e9f6}
html[data-theme=light] .home-immersive .home-backdrop::after{background:linear-gradient(90deg,#edf7fff7 0%,#eaf6ffec 28%,#dff3fc9c 55%,#bfe7f338 82%),linear-gradient(0deg,#a3c8ebbf,transparent 58%)}
html[data-theme=light] .hero.shell.home-immersive::before{background:radial-gradient(ellipse at 15% 85%,#1fc7d7b3,transparent 42%),radial-gradient(ellipse at 87% 83%,#5b7fffb3,transparent 43%);opacity:.65}
html[data-theme=light] .hero.home-immersive .hero-copy h1{color:#102a43}
html[data-theme=light] .hero.home-immersive h1 .text-gradient{background:linear-gradient(110deg,#10495d,#077a88 60%,#175caf);background-clip:text;-webkit-text-fill-color:transparent}
html[data-theme=light] .home-immersive .hero-bottom{color:#09253f;border-color:#3f6d9447}
html[data-theme=light] .home-immersive .hero-bottom .down-arrow{color:#092e60;border-color:#254e7a70;background:#ffffff40}
html[data-theme=light] .home-immersive .visual-corner{color:#09253f}
@media(max-width:900px){
 .hero .subpage-visual{max-width:680px;aspect-ratio:16/10;margin-inline:auto}
 .hero.shell.home-immersive{min-height:820px;padding-top:150px}
 .home-immersive .hero-copy{max-width:620px}
 .hero.home-immersive .hero-copy h1{font-size:clamp(2.6rem,6vw,4rem)}
}
@media(min-width:901px){
 .hero.shell.home-immersive{height:min(960px,calc(100svh - 32px));min-height:0;padding-top:clamp(110px,16svh,144px)}
 .home-immersive .hero-grid{flex:1 1 auto;min-height:0;display:flex;flex-direction:row;align-items:center;margin:0 auto;padding:16px 0 28px}
 .hero.home-immersive .hero-copy h1{font-size:clamp(2rem,min(4.4vw,6.6svh),4.5rem);line-height:1.08;max-width:760px}
 .home-immersive .hero-buttons{margin-top:clamp(20px,3svh,32px)}
 .home-immersive .hero-bottom{margin-top:0;padding:18px 0 22px}
 .home-slide-controls{bottom:20px}
}
@media(min-width:901px) and (max-height:600px){
 .hero.shell.home-immersive{padding-top:102px}
 .hero.home-immersive .hero-copy h1{font-size:clamp(1.75rem,6.6svh,2.75rem);max-width:660px}
 .home-immersive .hero-grid{padding-block:10px 16px}
 .home-immersive .hero-buttons{margin-top:16px}
 .home-immersive .hero-bottom{padding-block:12px}
 .home-slide-controls{bottom:12px}
}
@media(max-width:720px){
 .hero .subpage-visual{aspect-ratio:4/3;border-radius:24px}
 .hero .subpage-visual figcaption.hero-notification{left:12px;right:12px;bottom:12px;padding:12px 14px;min-height:70px;gap:12px;font-size:.875rem;border-radius:14px}
 .hero .subpage-visual .hero-notification img{width:32px;height:28px}
 .hero.shell.home-immersive{min-height:700px;min-height:min(760px,100svh);padding:128px 24px 0}
 .home-immersive .hero-grid{padding:34px 0 100px}
 .home-immersive .hero-copy{text-align:center;max-width:560px;margin-inline:auto}
 .hero.home-immersive .hero-copy h1{font-size:clamp(1.65rem,8vw,3.8rem);line-height:1.12;overflow-wrap:break-word}
 .home-immersive .hero-buttons{justify-content:center;margin-top:30px}
 .home-immersive .home-slide-frame>.hero-slide{object-position:60% center}
 .home-immersive .home-backdrop::after{background:linear-gradient(180deg,#07172ddd 0%,#081b33e0 38%,#09263c66 74%,#0a264bbb 100%)}
 html[data-theme=light] .home-immersive .home-backdrop::after{background:linear-gradient(180deg,#eff8fff0 0%,#e6f5fff0 37%,#ccebf88c 64%,#98c4ecb3 100%)}
 .home-immersive .hero-bottom{justify-content:center;padding-block:20px 24px;text-align:center}
 .home-immersive .hero-bottom>a{max-width:none}
 .home-immersive .visual-corner{bottom:105px;right:24px;font-size:.75rem}
}
@media(prefers-reduced-motion:reduce){.home-immersive .home-slide-frame>.hero-slide{transition:none;transform:none}}
/* A compact, centered glass notification lets the photo remain visible. */
.hero .subpage-visual figcaption.hero-notification{left:16px;right:16px;bottom:16px;max-width:360px;min-height:70px;margin-inline:auto;padding:12px 16px;gap:12px;justify-content:center;text-align:center;font-size:.9375rem;line-height:1.45;background:linear-gradient(135deg,#1e344b99,#10223880);border-color:#e0f5ff70;box-shadow:inset 0 1px 1px #ffffff45,inset 0 -1px 1px #b4dbff20,0 8px 24px #04101e26;backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);color:#e4eef8}
.hero .subpage-visual .hero-notification img{width:32px;height:28px}
html[data-theme=light] .hero .subpage-visual figcaption.hero-notification{background:linear-gradient(135deg,#ffffffb8,#d9ebfa80);border-color:#ffffffe6;color:#243e59;box-shadow:inset 0 1px 2px #fff,inset 0 -1px 1px #ffffff70,0 8px 24px #123b6226}
@media(max-width:720px){.hero .subpage-visual figcaption.hero-notification{left:12px;right:12px;bottom:12px;min-height:64px;max-width:320px;padding:10px 12px;gap:10px;font-size:.8125rem}.hero .subpage-visual .hero-notification img{width:28px;height:24px}}

/* Shared image captions: centered copy with balanced space, without a brand icon. */
.hero .subpage-visual figcaption.hero-notification{min-height:0;padding:14px 20px;gap:0;line-height:1.4;transform-origin:center bottom}
.hero .subpage-visual .hero-notification>span{display:grid;gap:4px;min-width:0;max-width:100%;text-wrap:balance}
.hero .subpage-visual .hero-notification br{display:none}
@media(max-width:720px){.hero .subpage-visual figcaption.hero-notification{padding:12px 16px;font-size:.875rem}.hero .subpage-visual .hero-notification>span{gap:3px}}
@media(max-width:360px){
 .hero.shell.home-immersive{padding-inline:16px}
 .header-inner.shell{padding-inline:8px;gap:2px}
 .header .brand img{width:68px}
 .header .nav-shortcuts .button{padding-inline:6px;min-height:38px;font-size:.7rem}
 .header .menu-toggle{width:27px;min-width:27px;padding-inline:3px}
 .header .menu-toggle svg{width:18px}
 .award-logos{gap:20px 12px;padding-inline:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .award-logos .brand-swap,.award-logos .gsvc-wordmark{max-width:100%;min-width:0}
 .award-logos .brand-swap img{max-width:100%}
 .awards h2{font-size:1.65rem;overflow-wrap:anywhere}
 .header nav{padding:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
 .header nav>a{min-width:0;padding-inline:8px;overflow-wrap:anywhere}
}

/* All desktop openings fit the viewport; mobile keeps natural document flow. */
@media(max-width:720px){
 .award-grid{gap:24px}
 .award-grid .award-card{grid-template-columns:1fr;min-height:0;overflow:hidden}
 .award-grid .award-photo{height:auto;min-height:0;aspect-ratio:1;overflow:hidden}
 .award-grid .award-photo img.award-photo-updated{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%;background:none}
 .award-grid .award-body{padding:22px 24px}
 .award-grid .award-body h3{font-size:1.5rem}
}
@media(min-width:901px){
 .hero.shell:is(.about-hero,.lab-hero){display:flex;flex-direction:column;height:min(960px,calc(100svh - 32px));min-height:0;padding-top:clamp(110px,16svh,144px);overflow:clip}
 .hero:is(.about-hero,.lab-hero) .hero-grid{flex:1;min-height:0;width:100%;padding:12px 0 24px;gap:clamp(28px,3vw,44px);grid-template-columns:.9fr 1.1fr;align-items:center}
 .hero:is(.about-hero,.lab-hero) .hero-copy h1{font-size:clamp(2rem,min(3.8vw,6svh),4rem);line-height:1.1}
 .hero:is(.about-hero,.lab-hero) .hero-copy>.eyebrow{margin-bottom:16px}
 .hero:is(.about-hero,.lab-hero) :is(.about-lead,.lab-lead){font-size:1rem;line-height:1.65;margin-top:18px}
 .hero:is(.about-hero,.lab-hero) .hero-buttons{margin-top:22px}
 .hero:is(.about-hero,.lab-hero) .subpage-visual{height:min(100%,calc(100svh - 240px));max-height:560px;aspect-ratio:auto;width:100%;max-width:100%;justify-self:stretch}
 .hero:is(.about-hero,.lab-hero) :is(.hero-bottom,.lab-expertise){flex-shrink:0;width:100%;margin:0 auto;padding:18px 0 22px}
 .hero:is(.about-hero,.lab-hero) .case-back{margin-bottom:16px}
 .shop-hero.hero.shell{padding-top:clamp(110px,16svh,140px)}
 .shop-hero .hero-grid{padding-bottom:32px}
 .commerce-main{padding-top:clamp(110px,16svh,140px);padding-bottom:36px}
 .commerce-heading{margin-bottom:24px}
 .commerce-heading h1,.account-intro h1{font-size:clamp(2.25rem,5.7svh,3.75rem)}
 .commerce-heading .eyebrow{margin-bottom:12px}
 .commerce-heading .text-link{margin-top:16px}
 .cart-empty{padding:clamp(24px,4svh,48px)}
 .cart-empty>svg{width:44px;height:44px;margin-bottom:16px}
 .cart-empty p{margin:12px 0 22px}
 .account-main{align-items:center;gap:48px}
 .account-intro{padding-top:0}
 .account-panel{padding:22px;max-width:540px;width:100%;justify-self:end}
 .account-tabs{margin-bottom:18px}
 .account-tabs button{padding:9px}
 .account-panel h2{margin-bottom:16px}
 .account-form{gap:12px}
 .account-form label{gap:5px}
 .account-form input{height:44px;padding-block:9px}
 .password-toggle{top:5px}
 .account-notice{margin-top:16px;padding-top:14px;line-height:1.5}
 .account-notice a{margin-top:8px}
}
@media(min-width:901px) and (max-height:650px){
 .hero:is(.about-hero,.lab-hero) :is(.about-lead,.lab-lead){margin-top:12px;line-height:1.45}
 .hero:is(.about-hero,.lab-hero) .hero-copy>.eyebrow{margin-bottom:10px}
 .hero:is(.about-hero,.lab-hero) .hero-buttons{margin-top:14px}
 .hero:is(.about-hero,.lab-hero) .case-back{margin-bottom:10px}
 .hero:is(.about-hero,.lab-hero) :is(.hero-bottom,.lab-expertise){padding-block:12px}
 .account-main{padding-top:110px;gap:32px}
 .account-panel{padding:14px}
 .account-tabs{margin-bottom:12px}
 .account-panel h2{font-size:1.25rem;margin-bottom:12px}
 .account-form{gap:6px}
 .account-notice{margin-top:12px;padding-top:10px}
}
@media(min-width:901px) and (max-height:520px){
 .hero.shell:is(.home-immersive,.about-hero,.lab-hero){height:auto;min-height:calc(100svh - 32px)}
 .hero:is(.about-hero,.lab-hero) .subpage-visual{height:300px}
}
/* Year badges stay aligned with each expandable card. */
.history-timeline li{grid-template-columns:68px minmax(0,1fr)}
.history-timeline .timeline-year{padding:6px 10px;margin-top:20px}
.history-timeline li:before{top:32px}
@media(max-width:720px){.history-timeline li{grid-template-columns:minmax(0,1fr)}.history-timeline .timeline-year{margin-top:0}.history-timeline li:before{top:12px}}

/* Compact photo captions on phones. */
@media(max-width:720px){.hero .subpage-visual figcaption.hero-notification{left:14px;right:14px;bottom:12px;max-width:270px;padding:9px 12px;border-radius:14px;font-size:.75rem;line-height:1.4}.hero .subpage-visual .hero-notification>span{gap:2px}}
