/* Cross-platform controls and responsive corrections from the phone audit. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.ui-icon{display:inline-block;width:22px;height:22px;flex:0 0 auto;vertical-align:middle;pointer-events:none}
.text-link,.quiet,.skip-intro{align-items:center}
.text-link{min-height:44px;gap:22px}
.header-cta .ui-icon,.submit .ui-icon{width:20px;height:20px}
.menu-toggle .ui-icon{width:24px;height:24px}
.little-mark .ui-icon{width:38px;height:38px}
.intro-tools{display:contents}
.portrait-slot{display:none}
.quiet,.skip-intro{display:inline-flex;gap:7px;min-height:44px}
.quiet .ui-icon,.skip-intro .ui-icon{width:15px;height:15px}
.intro-bottom .quiet{margin-block:-10px}
.dialog-close{min-width:44px;min-height:44px;display:grid;place-items:center}
.footer-bottom a{display:inline-flex;gap:12px;align-items:center;min-height:44px}
#projects .portfolio-note p>a{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px}
#projects .portfolio-note .ui-icon{width:19px;height:19px;color:#708762}
#solutions .energy-flow b{display:flex;align-items:center;justify-content:center}
#solutions .energy-flow b:after{content:none}
#solutions .energy-flow b .ui-icon{width:20px;height:20px}
#solutions .delivery-journey li:not(:last-child):after{content:'';width:18px;height:10px;background:currentColor;clip-path:polygon(0 42%,68% 42%,48% 0,65% 0,100% 50%,65% 100%,48% 100%,68% 58%,0 58%)}
#experience .energy-icon{display:grid;place-items:center}
#experience .energy-icon .ui-icon{width:50px;height:50px;stroke-width:1.2}
#solutions .solutions-sticky{--study-height:max(100svh,720px);height:var(--study-height);min-height:720px;top:min(0px,calc(100svh - var(--study-height)));overflow:clip}
html.menu-open,html.menu-open body{overflow:hidden}
@media(max-width:1000px){
 .mobile-menu{height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(28px,env(safe-area-inset-bottom));gap:10px}
 .mobile-menu a{display:flex;align-items:center;min-height:48px;flex-shrink:0}
 .header.menu-active{background:#152010}
}
@media(max-width:767px), (min-width:768px) and (max-width:1000px) and (orientation:portrait), (max-width:1000px) and (max-height:500px){
 html{scrollbar-gutter:auto}
 .intro{--mobile-intro-height:max(100svh,740px);height:calc(var(--mobile-intro-height)*4)}
 .intro .intro-sticky{height:var(--mobile-intro-height);top:min(0px,calc(100svh - var(--mobile-intro-height)));display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(140px,1fr) auto 44px 44px;gap:8px;padding:92px 7% max(8px,env(safe-area-inset-bottom));align-content:stretch}
 .intro .intro-top{position:relative;inset:auto;grid-row:1;font-size:12px;line-height:1.35;gap:4px;z-index:2;max-width:100%;display:flex;flex-direction:column;align-items:start}
 .intro .intro-coordinate{display:block;font-size:12px;line-height:1.35;letter-spacing:.02em}
 .intro .hero-copy{position:relative;inset:auto;grid-row:2;margin-top:8px;z-index:2}
 .intro .hero-copy>.eyebrow{font-size:13px;margin-bottom:14px;line-height:1.5;letter-spacing:.06em}
 .intro .hero-copy h1{font-size:clamp(50px,16.4vw,68px);line-height:.92}
 .intro .hero-copy>p:last-child{font-size:12px;line-height:1.5;margin-top:14px;max-width:210px}
 .intro .portrait-slot{display:block;grid-row:3;min-height:140px;pointer-events:none}
 .intro .leader-copy{position:relative;inset:auto;grid-row:4;width:100%;max-width:none;z-index:2;align-self:end}
 .intro .leader-copy .eyebrow{font-size:12px;line-height:1.45;letter-spacing:.025em;color:#c1cbb5}
 .intro .leader-copy p{font-size:24px;line-height:1.15;margin:9px 0}
 .intro .leader-copy>span:last-child{font-size:14px;line-height:1.5;max-width:none;color:#c1cbb5}
 .intro .intro-tools{grid-row:5;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:3}
 .intro .opening-replay,.intro .skip-intro{position:static;inset:auto;font:12px/1.4 'Courier New',monospace;letter-spacing:0;padding:0;min-height:44px}
 .intro .intro-bottom{position:relative;inset:auto;grid-row:6;min-width:0;gap:12px;z-index:3}
 .intro .intro-bottom .quiet{font:11px/1.4 'Courier New',monospace;min-height:44px;margin:0;letter-spacing:0;gap:4px;white-space:nowrap}
 .intro .scroll-prompt{font:10px/1.4 'Courier New',monospace;letter-spacing:.02em;gap:8px;min-height:44px}
 .intro .intro-progress{font-size:10px;gap:7px;flex-shrink:0}
 .intro .intro-progress div{width:32px}
 .intro .intro-grid{inset:84px 6% 55px}
 .intro .intro-sticky:after{inset:0;z-index:1;background:linear-gradient(to bottom,transparent max(0px,calc(var(--portrait-floor,500px) - 30px)),#0e120ce6 calc(var(--portrait-floor,500px) + 20px),#0e120c 100%)}
 #about .about-heading p.muted{font-size:14px;line-height:1.65}
 #about .text-link{font-size:14px}
 #projects .section-top{flex-wrap:wrap;row-gap:8px}
 #projects .section-top .text-link{margin-left:auto;min-height:44px;gap:12px}
 #projects .section-top .eyebrow{padding-top:5px;flex:1 1 130px}
 .section-top>*,.contact-grid>*,.project-meta>*,.delivery-title>*{min-width:0}
 #solutions .delivery-journey li:not(:last-child):after{left:16px;top:49px;right:auto;transform:rotate(90deg)}
 #solutions .energy-flow b .ui-icon{transform:rotate(90deg)}
 #experience .energy-icon .ui-icon{width:40px;height:40px}
 .asset-control input{font-size:16px}
 dialog{max-height:calc(100dvh - 32px);overscroll-behavior:contain}
}
@media(max-width:767px){
 #solutions .solutions-sticky{--study-height:max(100svh,850px);min-height:850px;gap:12px;padding:22px 6% 18px}
 #solutions .solution-visual{height:auto;min-height:0;flex:1}
 #solutions .model-view{min-height:240px}
 #solutions .solution-description{min-height:0}
 #solutions .solution-tabs button{flex:1;flex-direction:column;justify-content:center;gap:2px;text-align:center;font-size:14px;min-height:54px;padding:8px 2px}
 #solutions .solution-tabs span{font-size:11px}
 #solutions .solution-technical{margin-top:12px}
 #solutions .delivery-journey li>span:last-child{min-width:0}
 #projects .campus-annotations{min-height:78px;gap:14px}
 #projects .campus-callout>span{min-height:48px}
 #presence .presence-copy>p{max-width:100%}
 #contact .contact-copy>p{max-width:100%}
 #contact input,#contact textarea,#contact select{min-height:48px}
}
@media(max-width:359px){
 .intro .intro-progress{display:none}
 .intro .intro-top,.intro .intro-coordinate{font-size:11px}
 .intro .hero-copy>.eyebrow{font-size:12px;letter-spacing:.025em}
 #projects .section-top .text-link{margin-left:0}
 #projects .section-top .eyebrow{flex-basis:100%}
 #projects .campus-study-header{padding-inline:12px;gap:8px}
 #projects .project-type,#projects .campus-study-id{font-size:11px}
 #solutions .solution-heading h2{font-size:36px}
 #solutions .solution-technical{font:12px/1.4 'Courier New',monospace}
}
@media(min-width:768px) and (max-width:1000px) and (orientation:portrait){
 .intro .intro-sticky{padding-top:110px;padding-inline:7%;grid-template-rows:auto auto minmax(220px,1fr) auto 44px 44px}
 .intro .hero-copy h1{font-size:84px}
 .intro .hero-copy>p:last-child{font-size:14px}
 .intro .leader-copy{max-width:600px}
}
@media(min-width:768px) and (max-width:1000px) and (max-height:500px){
 .intro{--mobile-intro-height:max(100svh,540px)}
 .intro .intro-sticky{padding-top:90px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto minmax(180px,1fr) auto 44px;column-gap:30px}
 .intro .intro-top{grid-column:1/-1;flex-direction:row;justify-content:space-between}
 .intro .hero-copy{grid-column:1;grid-row:2;align-self:center}
 .intro .hero-copy h1{font-size:54px}
 .intro .portrait-slot{grid-column:2;grid-row:2}
 .intro .leader-copy{grid-column:2;grid-row:3}
 .intro .intro-tools{grid-column:1;grid-row:3;flex-wrap:wrap}
 .intro .intro-bottom{grid-column:1/-1;grid-row:4}
 #solutions .solutions-sticky{--study-height:max(100svh,650px);min-height:650px}
 #solutions .solution-visual{flex:1;height:auto;min-height:230px}
}
@media(prefers-reduced-motion:reduce){
 .intro .intro-sticky{position:relative;top:0}
 #solutions .solutions-sticky{height:auto;min-height:850px;top:0;overflow:visible}
 #solutions .solution-visual{min-height:400px}
}
.desktop-nav a{display:inline-flex;align-items:center;min-height:44px}
.scroll-prompt{min-height:44px}

/* Phone correction: one viewport per portrait/model, with headings in page flow. */
.leadership-scroll{display:contents}
.mobile-intro-heading,.mobile-solution-heading,.mobile-solution-note{display:none}
.mobile-menu-tools:empty{display:none}
@media(max-width:767px), (min-width:768px) and (max-width:1000px) and (orientation:portrait), (max-width:1000px) and (max-height:500px){
 .intro{height:auto}
 .intro .leadership-scroll{display:block;position:relative;height:calc(var(--qtg-viewport-height,100svh)*4)}
 .intro .mobile-intro-heading{display:block;position:relative;padding:96px 7% 30px;background:#0e120c}
 .intro .mobile-intro-heading .intro-top{position:static;display:flex;gap:4px}
 .intro .mobile-intro-heading .hero-copy{position:static;margin-top:24px}
 .intro .mobile-intro-heading .hero-copy>.eyebrow{font-size:12px;margin-bottom:14px}
 .intro .mobile-intro-heading .hero-copy h1{font-size:clamp(50px,16.4vw,68px)}
 .intro .mobile-intro-heading .hero-copy>p:last-child{font-size:14px;line-height:1.5;margin-top:16px;max-width:none}
 .intro .intro-sticky{height:var(--qtg-viewport-height,100svh);min-height:0;top:0;padding:16px 7% max(10px,env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto 44px;gap:10px}
 .intro .portrait-slot{grid-row:1;grid-column:1;min-height:0}
 .intro .leader-copy{grid-row:2;grid-column:1;min-height:106px;align-self:end}
 .intro .intro-bottom{grid-row:3;grid-column:1;min-height:44px}
 .intro .intro-grid{inset:12px 6% 55px}
 .intro .intro-sticky:after{background:linear-gradient(to bottom,transparent calc(var(--portrait-floor,400px) - 8px),#0e120cbf calc(var(--portrait-floor,400px) + 40px),#0e120c 100%)}
 .mobile-menu-tools{display:grid;gap:6px;margin-top:18px;padding-top:14px;border-top:1px solid #82966c55}
 .mobile-menu-tools .intro-tools{display:contents}
 .mobile-menu-tools :is(.opening-replay,.skip-intro,.quiet){position:static;inset:auto;min-height:44px;font:14px/1.4 Arial,Helvetica,sans-serif;color:#c1cbb5;justify-content:space-between}
 #solutions .mobile-solution-heading{display:block;padding:32px 6% 24px}
 #solutions .mobile-solution-heading .solution-heading{padding:0;margin-top:28px;width:100%}
 #solutions .mobile-solution-heading .solution-heading h2{font-size:clamp(38px,10.5vw,58px)}
 #solutions .mobile-solution-heading .solution-heading p{font-size:14px;line-height:1.5;margin-top:14px}
 #solutions .mobile-solution-heading .solution-heading p br{display:none}
 #solutions .solutions-scroll{height:calc(var(--qtg-viewport-height,100svh)*4.8)}
 #solutions .solutions-sticky{height:var(--qtg-viewport-height,100svh);min-height:0;top:0;padding:12px 6% 16px;gap:8px;overflow:clip}
 #solutions .solution-visual{display:flex;flex-direction:column;flex:1;min-height:0;height:auto;gap:0}
 #solutions .model-view{flex:1;min-height:0;width:100%}
 #solutions .model-view canvas{height:calc(100% - 48px);bottom:48px}
 #solutions .model-callouts{bottom:48px}
 #solutions .model-spec{font-size:12px;line-height:1.4;min-height:42px;align-items:start}
 #solutions .solution-bottom{flex:0 0 auto;min-height:0}
 #solutions .solution-tabs{margin-bottom:8px;gap:0}
 #solutions .solution-tabs button{font-size:14px;flex:1;flex-direction:column;justify-content:center;gap:2px;min-height:48px;padding:6px 2px;white-space:nowrap}
 #solutions .solution-tabs span{font-size:11px}
 #solutions .solution-description{display:block;min-height:0}
 #solutions .solution-description .eyebrow{font-size:12px;line-height:1.4}
 #solutions .solution-description h3{font-size:25px;line-height:1.08;margin-top:6px;max-width:none}
 #solutions .solution-description h3 br{display:none}
 #solutions .solution-description p{font-size:14px;line-height:1.5;margin-top:8px;max-width:none}
 #solutions .mobile-solution-note{display:block;padding:16px 6% 24px}
 #solutions .mobile-solution-note .solution-technical{margin:0;padding-top:12px;font-size:12px;line-height:1.4;display:block}
 #solutions .mobile-solution-note .solution-technical span{display:block;text-align:left}
 #solutions .mobile-solution-note .solution-technical span+span{margin-top:4px}
}
@media(min-width:768px) and (max-width:1000px) and (orientation:portrait){
 .intro .mobile-intro-heading .hero-copy h1{font-size:84px}
 .intro .mobile-intro-heading{padding-top:110px}
}
@media(min-width:768px) and (max-width:1000px) and (max-height:500px){
 .intro .intro-sticky{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) 44px;column-gap:28px}
 .intro .portrait-slot{grid-column:1;grid-row:1/-1}
 .intro .leader-copy{grid-column:2;grid-row:1;align-self:center;min-height:0}
 .intro .intro-bottom{grid-column:2;grid-row:2}
 .intro .intro-progress{display:none}
 #solutions .solution-description{display:grid;grid-template-columns:1fr 1fr;gap:22px}
 #solutions .solution-description h3{font-size:23px}
}
@media(prefers-reduced-motion:reduce){
 #solutions .solutions-scroll{height:auto}
}
html.opening-pending .mobile-intro-heading{visibility:hidden}
