/* Motion is additive: normal content is never hidden before JavaScript runs. */
:root{--motion-ease:cubic-bezier(.22,.61,.36,1)}
.portal-site [hidden]{display:none!important}
.portal-site a,.portal-site button{transition:color .2s ease,background-color .2s ease,border-color .2s ease}
.portal-site a :is(.line-arrow,.feature-arrow,.focus-arrow),.portal-site :is(.portal-more,.text-link,.hero-outline,.button)>span,.portal-site :is(.expertise-links>a,.portal-access a,.portal-quick-links a)>b,.portal-site .research-read>b{display:inline-block;transition:transform .25s var(--motion-ease)}
.portal-site a:hover :is(.line-arrow,.feature-arrow,.focus-arrow),.portal-site :is(.portal-more,.text-link,.hero-outline,.button):hover>span,.portal-site :is(.expertise-links>a,.portal-access a,.portal-quick-links a):hover>b,.portal-site .research-card:hover .research-read>b{transform:translate(3px,-2px)}
.portal-site :is(.office-mosaic a,.expertise-cover,.research-card,.gallery-open){overflow:hidden}
.portal-site :is(.office-mosaic a,.expertise-cover,.research-card,.gallery-open)>img{transition:transform .6s var(--motion-ease)}
.portal-site :is(.office-mosaic a,.expertise-cover,.research-card,.gallery-open):hover>img{transform:scale(1.035)}
.portal-site :is(.image-card,.honor-card){transition:box-shadow .25s ease,border-color .25s ease}
.portal-site :is(.image-card,.honor-card):hover{border-color:#a4c0d2;box-shadow:0 14px 32px #092f5010}

/* Slides share a grid cell; the tallest copy keeps the stage safe from overflow. */
.portal-hero[data-hero]{background:#082f4e;isolation:isolate}
.portal-hero:not(.hero-ready) [data-hero-controls]{display:none}
.hero-stage{position:relative;display:grid}
.hero-slide{grid-area:1/1;position:relative;min-width:0}
.hero-slide-media{position:absolute;inset:0;overflow:hidden;z-index:-1}
.hero-slide-media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#042a48d9 0%,#062e497b 52%,#05253f28 100%)}
.hero-slide-media :is(picture,img){display:block;width:100%;height:100%}
.hero-slide-media img{object-fit:cover;transform:scale(1)}
.hero-slide-content{position:relative;z-index:1}
.hero-ready .hero-slide{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s}
.hero-ready .hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:2;transition-delay:0s}
.hero-ready .hero-slide.is-exiting{opacity:1;visibility:visible;z-index:1}
.hero-ready .hero-slide:not(.is-active) .hero-slide-content{opacity:0;transition:opacity .18s ease}
.hero-ready .hero-slide.is-active .hero-slide-content{opacity:1}
.hero-ready .hero-slide.is-active .hero-slide-media{animation:hero-image-unveil 1.05s cubic-bezier(.7,0,.2,1) both}
.hero-ready .hero-slide:is(.is-active,.is-exiting) .hero-slide-media img{animation:hero-drift 5.5s linear forwards;animation-play-state:paused;transform-origin:65% 50%}
.hero-ready[data-playing="true"] .hero-slide.is-active .hero-slide-media img{animation-play-state:running}
.hero-ready .hero-slide.is-active .hero-slide-content>:is(.eyebrow,.kicker,p,.hero-actions){animation:hero-copy-in .85s var(--motion-ease) both}
.hero-ready .hero-slide.is-active .hero-slide-content>:is(.eyebrow,.kicker){animation-delay:.12s}
.hero-ready .hero-slide.is-active .hero-slide-content>p{animation-delay:.55s}
.hero-ready .hero-slide.is-active .hero-slide-content>.hero-actions{animation-delay:.72s}
.hero-title-line{display:block;overflow:hidden}
.hero-title-line-inner{display:block}
.hero-ready .hero-slide.is-active .hero-title-line-inner{animation:hero-title-unveil .95s cubic-bezier(.22,.72,.25,1) both;animation-delay:calc(.24s + var(--line-index,0)*.18s)}
.hero-ready .hero-bottom{z-index:4}
[data-hero-progress]{display:block;transform:scaleX(0);transform-origin:left center}
[data-hero-toggle]{white-space:nowrap}
[data-hero-toggle]:disabled{cursor:default;opacity:.7}
@keyframes hero-image-unveil{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes hero-drift{from{transform:scale(1.025) translateX(-.6%)}to{transform:scale(1.075) translateX(.6%)}}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-title-unveil{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:translateY(0)}}

/* Section lines unfold only once the heading enters the reading area. */
.portal-heading .kicker{position:relative;padding-bottom:12px}
.portal-heading .kicker::after{content:'';position:absolute;bottom:0;left:0;width:64px;height:1px;background:linear-gradient(90deg,#7da6bf,#a8b8a5);transform-origin:left center}
.portal-heading.has-entered .kicker::after{animation:section-line-unfold 1.1s var(--motion-ease) .16s both}
@keyframes section-line-unfold{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero-scroll-cue{position:absolute;right:max(40px,calc((100% - 1240px)/2));bottom:118px;z-index:5;display:flex;align-items:center;gap:17px;color:#d7e6ef;font:9px Arial,sans-serif;letter-spacing:2px;writing-mode:vertical-rl}
.hero-scroll-cue i{display:block;height:63px;width:1px;background:#ffffff30;position:relative;overflow:hidden}
.hero-scroll-cue i::after{content:'';position:absolute;top:0;left:0;width:1px;height:24px;background:#d7e6ef;animation:scroll-cue-travel 1.7s ease-in-out infinite}
@keyframes scroll-cue-travel{0%{transform:translateY(-26px)}75%,100%{transform:translateY(66px)}}

/* Pointer and keyboard navigation share the same accessible open state. */
.nav-submenu-toggle{border:0;padding:8px 2px 8px 7px;color:var(--blue);background:transparent;line-height:1;font-size:12px}
.nav-submenu-toggle::after{content:'';display:block;width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .2s ease}
.nav-submenu-toggle[aria-expanded="true"]::after{transform:rotate(225deg)}
.navigation-ready .nav-dropdown{display:block;opacity:0;visibility:hidden;transform:translateY(7px);pointer-events:none;transition:opacity .2s ease,transform .2s var(--motion-ease),visibility 0s linear .2s}
.navigation-ready .submenu-open .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition-delay:0s}
.navigation-ready .nav-item>a::before{content:'';height:2px;background:var(--blue);position:absolute;bottom:19px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--motion-ease)}
.navigation-ready .nav-item:is(:hover,:focus-within,.active)>a::before{transform:scaleX(1)}
.navigation-ready .nav-item.active>a::after{display:none}
[data-news-stage]{position:relative}
[data-news-stage].news-transitioning{overflow:hidden}
.heading-tabs button{transition:color .2s ease,border-color .25s ease}
.career-row[data-expanding="false"] summary>b{transform:rotate(0)}
.career-row summary:focus-visible{outline:3px solid #35a4de;outline-offset:3px}

.gallery-viewer{min-width:min(560px,90vw);min-height:180px;padding-bottom:42px;overflow:auto}
.gallery-viewer[open]{animation:gallery-enter .2s var(--motion-ease)}
.gallery-viewer[open]::backdrop{animation:gallery-backdrop .2s ease}
.gallery-viewer.is-closing{animation:gallery-exit .2s ease forwards;pointer-events:none}
.gallery-viewer.is-closing::backdrop{animation:gallery-backdrop .2s ease reverse forwards}
.gallery-viewer[data-loading="true"]>img{opacity:.3}
.gallery-viewer>img{margin:0 auto}
.gallery-viewer .gallery-close{z-index:3}
.gallery-step{position:absolute;top:45%;width:40px;height:44px;border:1px solid #ffffff59;background:#051b30c9;color:#fff;font-size:21px;line-height:1;z-index:2}
.gallery-step:hover,.gallery-close:hover{background:#075e98}
.gallery-prev{left:23px}.gallery-next{right:23px}
.gallery-count{position:absolute;left:18px;bottom:11px;color:#a7c0d1;font:12px Arial,sans-serif;letter-spacing:2px}
.gallery-original{position:absolute;right:18px;bottom:9px;color:#a7c0d1;font-size:12px}
.gallery-status{display:block;color:#b8cddd;text-align:center;font-size:13px}
.gallery-status:not(:empty){padding:25px 50px}
@keyframes gallery-enter{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
@keyframes gallery-exit{from{opacity:1;transform:none}to{opacity:0;transform:translateY(6px) scale(.985)}}
@keyframes gallery-backdrop{from{background:#03152200}to{background:#031522dd}}

@media(max-width:1040px){
 .portal-site .site-header nav.navigation-ready{display:flex;opacity:0;visibility:hidden;transform:translateY(-8px);pointer-events:none;transition:opacity .2s ease,transform .25s var(--motion-ease),visibility 0s linear .25s}
 .portal-site .site-header nav.navigation-ready.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
 .navigation-ready .has-submenu{display:grid;grid-template-columns:1fr 35px}
 .navigation-ready .has-submenu>a{grid-column:1}
 .navigation-ready .nav-submenu-toggle{position:static;grid-column:2;justify-self:end;align-self:center;padding:14px}
 .navigation-ready .nav-item>a::before{display:none}
 #primary-nav.navigation-ready .nav-dropdown{display:flex!important;grid-column:1/-1;opacity:0;max-height:0;padding:0;overflow:hidden;transform:translateY(-4px);transition:max-height .25s var(--motion-ease),padding .25s var(--motion-ease),opacity .2s ease,transform .2s ease,visibility 0s linear .25s}
 #primary-nav.navigation-ready .submenu-open .nav-dropdown{max-height:180px;padding:0 0 15px;opacity:1;transform:none;visibility:visible;transition-delay:0s}
 .menu-toggle>span{transition:transform .2s ease}
 .menu-toggle[aria-expanded="true"]>span:first-child{transform:translateY(4.5px) rotate(45deg)}
 .menu-toggle[aria-expanded="true"]>span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
}
@media(max-width:800px){
 .hero-ready .hero-slide.is-active .hero-slide-content>:is(.eyebrow,.kicker,p,.hero-actions){animation-duration:.6s}
 .hero-ready .hero-slide.is-active .hero-slide-content>p{animation-delay:.38s}
 .hero-ready .hero-slide.is-active .hero-slide-content>.hero-actions{animation-delay:.5s}
 .hero-ready .hero-slide.is-active .hero-title-line-inner{animation-duration:.7s;animation-delay:calc(.16s + var(--line-index,0)*.12s)}
 .hero-scroll-cue{right:22px;bottom:107px}.hero-scroll-cue>span{display:none}.hero-scroll-cue i{height:42px}
 .gallery-step{top:42%;width:35px;height:39px}.gallery-prev{left:14px}.gallery-next{right:14px}
 .gallery-viewer{padding-bottom:38px}.gallery-viewer .gallery-count{left:13px}.gallery-original{right:13px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .portal-site *,.portal-site *::before,.portal-site *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .hero-slide-media img{transform:none!important}
 .hero-scroll-cue i::after{height:100%}
 .portal-site :is(.office-mosaic a,.expertise-cover,.research-card,.gallery-open):hover>img,
 .portal-site a:hover :is(.line-arrow,.feature-arrow,.focus-arrow),
 .portal-site :is(.portal-more,.text-link,.hero-outline,.button):hover>span{transform:none}
}
