/* Shared finishing across the portfolio and six systems exhibits. */
:root{--ease:cubic-bezier(.2,.8,.15,1)}
html{scrollbar-gutter:stable}
body{font-kerning:normal;text-rendering:optimizeLegibility}
:is(h1,h2,h3){text-wrap:balance}
p{overflow-wrap:break-word}
button,a,summary{outline-offset:6px}
.portfolio-subpage:not(.live-solution-page){color-scheme:light}
.portfolio-subpage .site-header{height:94px}
.portfolio-subpage:not(.live-solution-page) .header-cta{background:transparent;color:#191b18;border-bottom:1px solid #5e655b;padding:11px 0;border-radius:0}
.portfolio-subpage:not(.live-solution-page) .header-cta:hover{background:transparent;color:#496044}
.portfolio-subpage .wordmark{font-size:1.625rem;letter-spacing:-.065em}
.portfolio-subpage .project-return{font-size:.875rem}
.portfolio-subpage :is(.client-title-row,.finance-divider,.love-intro,.solution-intro,.scope-intro) h1{letter-spacing:-.055em}
.portfolio-subpage .solution-intro{padding-top:58px;padding-bottom:64px}
.portfolio-subpage .solution-intro h1{font-weight:500;line-height:1.16}
.portfolio-subpage :is(.solution-start,.case-continuation a,.portfolio-contact>button,.solution-delivery button,.market-link){transition:color .25s,border-color .25s;min-height:44px}
.portfolio-subpage .portfolio-contact{padding-top:60px;padding-bottom:60px}
.portfolio-subpage .portfolio-contact>p{font-size:clamp(31px,4.4vw,66px);letter-spacing:-.05em}
.site-header .language-switch button{min-width:32px;min-height:44px}
.motion-toggle{min-height:44px}
.menu-toggle{min-height:44px;min-width:44px;justify-content:center;align-items:center}
:is(.solution-journey,.live-cinema,.flow-exhibit){color-scheme:dark}
:is(.journey-result dd,.gallery-counter,.flow-position,.journey-controls){font-variant-numeric:tabular-nums}
@media(min-width:1101px){.portfolio-home .home-scope-heading{position:sticky;top:50px;align-self:start}}
@media(max-width:760px){.portfolio-subpage .site-header{height:80px}.portfolio-subpage .solution-intro{padding-top:36px;padding-bottom:38px}.portfolio-subpage .portfolio-contact{padding-top:38px;padding-bottom:40px}.portfolio-subpage .portfolio-contact>p{font-size:32px}}
@media(forced-colors:active){.gallery-card-surface{border:1px solid CanvasText}.gallery-project-index button[aria-pressed=true]{outline:2px solid Highlight}.wonder-hero-shade{background:Canvas;opacity:.8}}
/* Native navigation keeps browser history, links and keyboard behavior intact. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:craft-page-out .2s ease both}
::view-transition-new(root){animation:craft-page-in .32s cubic-bezier(.2,.8,.15,1) both}
@keyframes craft-page-out{to{opacity:0}}
@keyframes craft-page-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.motion-paused::view-transition-old(root),.motion-paused::view-transition-new(root){animation:none}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
/* Company information is kept legible in both language editions. */
.company-details{display:flex;flex-wrap:wrap;gap:22px 54px;margin:0;padding:26px 0;color:#e2e4dc}
.company-details>div{display:flex;align-items:baseline;gap:15px;min-width:0}
.company-details dt{font-size:.875rem;line-height:1.7;color:#a2a89b}
.company-details dd{margin:0;font-size:.9375rem;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}
.studio-company-details{display:grid;gap:14px;border-top:1px solid #b7bdb2;margin-top:28px;padding:24px 0 0;color:#20281c}
.studio-company-details dt{color:#5f6858;min-width:100px}
.site-footer .footer-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}
/* Mobile layouts use the available width instead of shrinking the controls. */
@media(max-width:760px){
 :root{--pad:clamp(20px,5.3vw,32px)}
 .site-header{gap:12px}
 .portfolio-home .site-header{left:var(--pad);right:var(--pad)}
 .portfolio-subpage .site-header{margin-left:var(--pad);margin-right:var(--pad)}
 .site-header .header-actions{gap:10px;flex-shrink:0}
 .site-header .wordmark{font-size:clamp(1.375rem,4.6vw,1.625rem);flex-shrink:0}
 .site-header .language-switch{gap:3px}
 .site-header .language-switch button{min-width:32px;min-height:44px}
 .mobile-menu{padding-left:var(--pad);padding-right:var(--pad);max-height:calc(100dvh - 80px);overflow-y:auto;overscroll-behavior:contain}
 .mobile-menu>a,.mobile-menu>button{font-size:clamp(1.4rem,6.2vw,2rem);min-height:52px}
 .mobile-menu>button{font-size:1rem}
 .company-details{gap:12px 28px;padding:24px 0}
 .company-details>div{flex-wrap:wrap;gap:7px 12px}
 .company-details dt{font-size:.875rem}
 .company-details dd{font-size:.9375rem}
 .studio-company-details{padding-top:21px;padding-bottom:0;gap:14px}
 .studio-company-details>div{display:grid;grid-template-columns:minmax(85px,auto) minmax(0,1fr);gap:12px}
 .studio-company-details dt{min-width:0}
 .site-footer .footer-bottom{gap:9px 20px;align-items:center}
 .site-footer .footer-bottom>a{min-height:44px;display:inline-flex;align-items:center}
 .commissioning-dialog,.film-dialog{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding-top:72px}
 .commissioning-dialog .brief-header{position:sticky;top:-23px;background:#f4f4f2;z-index:3;padding-top:12px;min-height:62px;gap:15px}
 .close-dialog,.film-close{min-width:44px;min-height:44px;flex-shrink:0}
 .brief-layout,.brief-context,.brief-two,.brief-actions{min-width:0}
 .brief-field :is(input,select,textarea){font-size:1rem;scroll-margin-top:85px}
 .brief-options label{min-height:44px}
 .brief-options input{flex-shrink:0}
 .brief-primary,#copy-brief{min-height:48px}
 .film-dialog-header{align-items:start}
 .film-dialog-header>div{min-width:0}
 .film-dialog-header h2{overflow-wrap:anywhere}
 .film-dialog-footer>a{min-height:44px;align-items:center}
 .journey-discipline-picker select{font-size:1rem;min-height:48px}
 .journey-discipline-picker button{min-height:48px}
 .solution-journey .journey-controls{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px}
 .journey-transport{min-width:0}
 .journey-speed{font-size:1rem;min-height:44px}
 .journey-scrub{min-width:0}
 .journey-scrub input{height:44px;min-width:0;cursor:pointer}
 .journey-time{white-space:nowrap;flex-shrink:0}
 .journey-play,.journey-replay,.journey-approval,.journey-scenario-options button{min-height:44px}
 .journey-route button,.journey-build-steps button{min-width:0}
 .journey-route b,.journey-build-steps b{min-width:0;overflow-wrap:anywhere}
 .journey-console-bar{flex-wrap:wrap;gap:7px 18px}
 .journey-input :is(dt,dd){margin-left:0;min-width:0;overflow-wrap:anywhere}
 .journey-workbench>*{min-width:0}
 .journey-plane-flow>span{white-space:normal;overflow-wrap:anywhere;min-width:0;flex:1;line-height:1.5;text-align:center}
 .journey-plane-flow i{flex:0 0 14px}
 .journey-plane-top{flex-wrap:wrap;gap:4px 10px}
 .journey-plane strong{line-height:1.4;overflow-wrap:anywhere}
 .live-readout .flow-artifact dl>div{min-width:0}
 .live-readout .flow-artifact dd{overflow-wrap:anywhere}
}
@media(max-width:520px){
 .portfolio-home .gallery-card{aspect-ratio:4/3}
 .portfolio-home .gallery-stage{height:clamp(280px,88vw,445px)}
 .portfolio-home .gallery-card-surface>img{object-fit:contain;background:#0e0e11}
 .portfolio-home .gallery-actions{display:flex;flex-wrap:wrap;align-items:center;gap:17px 24px}
 .portfolio-home .gallery-actions>a{flex:1 1 190px;min-height:48px}
 .portfolio-home .gallery-navigation{flex:1 1 190px;justify-content:space-between;margin-left:0}
 .portfolio-home .gallery-project-index button{min-height:52px}
 .portfolio-home .home-discipline-groups{grid-template-columns:minmax(0,1fr);gap:25px}
 .portfolio-home .home-discipline-group-header{display:flex;gap:15px;align-items:baseline}
 .portfolio-home .home-discipline-group-header>.mono{margin-bottom:0}
 .portfolio-home .home-discipline-group-header h3{font-size:1.0625rem}
 .portfolio-home .home-discipline-group nav a{font-size:1rem;min-height:52px}
 .company-details{display:grid;gap:12px}
 .company-details>div{display:grid;grid-template-columns:minmax(90px,auto) minmax(0,1fr);gap:12px}
 .journey-architecture{height:330px}
 .journey-stack{width:88%;height:215px;transform:rotateX(32deg) rotateZ(-8deg)}
 .journey-plane{padding:14px;transform:translateZ(calc(var(--layer)*26px))}
 .journey-plane strong{font-size:1.0625rem}
 .journey-plane-flow{gap:5px}
 .journey-plane-flow>span{padding:5px}
}
@media(max-width:430px){
 .solution-journey .journey-controls{grid-template-columns:minmax(0,1fr) auto}
 .journey-transport{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-column:1/-1;gap:10px}
 .journey-play,.journey-replay{min-width:0;width:100%;padding:0 12px}
 .journey-speed{grid-row:2;grid-column:2;gap:7px}
 .journey-scrub{grid-row:2;grid-column:1;gap:8px}
 .journey-modes{gap:18px;flex-wrap:wrap}
 .journey-modes button{font-size:.9375rem}
 .journey-input dl{grid-template-columns:minmax(0,1fr)}
 .journey-record{grid-template-columns:minmax(0,1fr)}
 .journey-result dl{grid-template-columns:minmax(0,1fr)}
 .journey-discipline-picker{flex-wrap:wrap}
 .journey-discipline-picker select{flex-basis:100%;width:100%}
 .journey-discipline-picker button{width:100%;font-size:.875rem}
 .film-close{gap:5px}
 .film-dialog-header h2{font-size:1.5rem}
}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape){
 .solution-journey .journey-controls{position:static;box-shadow:none}
 .mobile-menu{max-height:calc(100dvh - 80px)}
 .commissioning-dialog .brief-header{position:static;padding-top:0}
 .wonder-hero{min-height:680px;height:auto}
 .signal-viewport,.live-cinema{max-height:360px}
 .film-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 16px)}
 .film-dialog .cinema-stage video{min-height:120px;max-height:65dvh}
}
