/* Short, wide viewports: a separate composition, not a scaled portrait page.
   Keep this last in both public shells and the editor's slide frames.
   The height/width boundary excludes tablets and ordinary desktop layouts. */
@media screen and (orientation:landscape) and (max-height:550px) and (max-width:1100px){
 html body{--landscape-left:max(24px,env(safe-area-inset-left,0px));--landscape-right:max(24px,env(safe-area-inset-right,0px))}
 html.mobile-menu-enabled body{--header-height:56px;--mobile-header-safe-top:0px;--mobile-page-start:76px;--section-top:76px;--section-inset:var(--landscape-left);--mobile-intro-gap:24px}
 html.mobile-menu-enabled body .site-header{height:56px!important;min-height:0!important}
 html.mobile-menu-enabled body .site-header .brand{top:18px!important;left:var(--landscape-left)!important;width:140px!important;right:auto!important;transform:none!important}
 html.mobile-menu-enabled body .mobile-menu-toggle{display:grid!important;top:6px!important;right:var(--landscape-right)!important}
 html body .mobile-menu-header{padding:6px var(--landscape-right) 0 var(--landscape-left)}
 html body .mobile-menu-scroll{padding:4px var(--landscape-right) 4px var(--landscape-left)}
 html body .mobile-menu #site-navigation{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px!important}
 html body .mobile-menu #site-navigation>a{font-size:clamp(24px,7.2svh,34px)!important;min-height:44px;padding:2px 0!important}
 html body .mobile-menu-footer{padding:4px var(--landscape-right) max(6px,env(safe-area-inset-bottom)) var(--landscape-left);gap:0}
 html body .mobile-menu-footer :is(.site-search-toggle,.theme-toggle,.editor-shortcut,.mobile-header-socials a){width:44px!important;height:44px!important}
 html body .mobile-menu-footer svg{max-width:24px;max-height:24px}
 /* Searching can use the whole scroll region, without stranding the close row. */
 html body .mobile-menu .site-search-panel{max-height:none!important;overflow:visible!important}
 html body .mobile-menu .site-search-results{max-height:none!important;overflow:visible!important}
 html body #main-content [data-page-intro]>h1{font-size:clamp(38px,10svh,54px)!important;margin:8px 0 18px!important}
 html body:is(.page-news,.page-careers,.page-press) [data-page-intro]>p:not(.eyebrow){font-size:17px;line-height:1.45}
 html body .news-page.news-story{padding-top:76px!important}
 html body .news-story .news-intro>h1{font-size:clamp(32px,8svh,46px)!important}
 html body .news-story .news-intro{margin-top:20px}
 html body :is(.contact-form,.press-download-dialog) :is(input,textarea,select){font-size:16px!important;min-width:0;max-width:100%;box-sizing:border-box}
 html body .contact-introduction{gap:24px;margin-bottom:32px}
 html body .contact-primary>a{font-size:clamp(26px,4vw,40px)}
 html body .press-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 html body .press-basket{bottom:max(6px,env(safe-area-inset-bottom));width:auto;max-width:calc(100% - 48px);flex-wrap:nowrap;padding:6px 14px;gap:14px}
 html body .press-basket span{flex-basis:auto}
 html body :is(.press-dialog,.editorial-dialog,.news-modal,.story-text-dialog){max-height:calc(100dvh - 24px);max-width:calc(100vw - var(--landscape-left) - var(--landscape-right));padding:20px 24px;scroll-padding-block:48px}
 html body :is(.press-dialog,.editorial-dialog,.news-modal) h2{font-size:28px}
 html body .press-assets{grid-template-columns:repeat(3,minmax(0,1fr))}
 html body .press-asset :is(img,video){height:130px}
 html body .audience-choice{bottom:12px;max-height:calc(100dvh - 24px);padding:16px}
 /* A shorter first composition leaves the axonometries in the opening view.
    Their transforms, silhouettes, text occlusion and scrolling are unchanged. */
 html.mobile-menu-enabled body.page-home .home-sections>.story-block:first-child{padding-top:76px!important}
 html body.page-home .home-sections .story-copy h1{font-size:clamp(30px,8.6svh,44px)!important;line-height:1.04!important;margin-bottom:12px!important}
 html body.page-home .home-sections .story-copy h4{font-size:clamp(14px,4svh,17px)!important;line-height:1.4!important;max-width:58ch;margin-top:0}
 html body.page-home .home-chapter{padding:76px var(--landscape-right) 24px var(--landscape-left);gap:20px}
 html body.page-home .chapter-disciplines .confluence-vector{height:52svh;min-height:0}
 html body.page-home .chapter-disciplines #disciplines-heading{font-size:clamp(24px,7svh,36px)}
 html body.page-home .home-chapter h2{font-size:36px}
 html body.page-about .about-section-selector{display:flex;flex-wrap:nowrap;gap:6px;padding-block:4px}
 html body.page-about .about-section-selector a{min-height:36px;padding:8px 14px;white-space:nowrap;font-size:12px}
 html body.page-about .about-section-selector.is-pinned{top:56px}
 html body.page-about .about-company-opening{padding-bottom:24px}
 html body.page-about .expertise-composition{padding:68px var(--landscape-right) max(16px,env(safe-area-inset-bottom)) var(--landscape-left);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:end;gap:24px}
 html body.page-about #main-content h3.expertise-heading{font-size:clamp(30px,9svh,44px)!important;line-height:1.04!important}
 html body.page-about .expertise-copy{width:100%;max-height:100%;min-height:0;padding:16px;overflow-y:auto;overscroll-behavior-y:auto;touch-action:pan-y pinch-zoom}
 html body.page-about .expertise-copy p{font-size:14px;line-height:1.45}
 html body.page-about .expertise-index{margin-bottom:8px}
 html body.page-about .expertise-details{margin-top:8px;padding-top:6px}
 html body.page-about .expertise-project-thumbnail{width:64px;height:48px;flex-basis:64px}
 /* Orbit portraits previously used 53vw, becoming taller than the phone. */
 html body.page-about .team-slider.team-orbit .team-member{flex:0 0 clamp(132px,35.2svh,184px)!important;width:clamp(132px,35.2svh,184px)!important}
 html body.page-about .team-slider.team-orbit .team-member .photo{height:44svh!important;max-height:230px!important;aspect-ratio:4/5!important}
 html body.page-about .team-slider.team-orbit .team-member p{font-size:17px!important;margin:6px 0 2px!important}
 html body.page-about .team-slider.team-orbit .team-member strong{font-size:11px!important}
 html body.page-about .team-slider.team-orbit{padding-block:12px!important}
 /* Keep the phone's compact action row even on 932/1024px-wide phones. */
 body.page-project-detail{--project-control-top:6px;--project-control-edge:var(--landscape-right);--story-gutter:var(--landscape-left)}
 html.mobile-menu-enabled body.page-project-detail .site-header .brand{top:6px!important;height:44px!important;display:flex!important;align-items:center}
 html.mobile-menu-enabled body.page-project-detail .mobile-menu-toggle{display:none!important}
 html body.page-project-detail .project-micro-actions{top:6px;right:calc(var(--landscape-right) + 44px);gap:0;opacity:1;visibility:visible}
 html body.page-project-detail .project-micro-actions button{width:44px;height:44px}
 html body.page-project-detail .story-reader__index{top:6px!important;right:var(--landscape-right)!important}
 html body.page-project-detail:not(.project-on-hero) .story-previous-slide{top:6px!important}
 html body.page-project-detail.project-on-hero .story-previous-slide{display:none!important}
 html body.page-project-detail .project-cover__number{top:6px;left:auto;right:calc(var(--landscape-right) + 144px);height:44px;font-size:11px}
 html body.page-project-detail .project-cover{--cover-inset:var(--landscape-left);--cover-bottom:max(42px,env(safe-area-inset-bottom))}
 html body.page-project-detail .project-cover .project-cover__identity h1{font-size:clamp(28px,8.5svh,40px)!important;max-width:28ch}
 html body.page-project-detail .project-cover .story-eyebrow{margin-bottom:6px}
 html body.page-project-detail .project-cover.cover--manual-data .project-cover__data-inner{max-height:calc(100svh - 210px);overflow-y:auto!important;overscroll-behavior-y:auto}
 html body.page-project-detail .project-cover.cover--manual-data .project-cover__data .project-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px}
 /* Stock templates retain their authored wide-screen order, mirror, crops and
    captions. Custom layout grids are deliberately not rewritten. */
 :is(html,#story-layout-defaults) body.page-project-detail #project-story>.story-slide:has(.story-layout){padding:60px max(40px,env(safe-area-inset-right)) 44px max(40px,env(safe-area-inset-left))!important}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout{gap:var(--layout-frame-gap,20px)!important}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout--diagram_image_pair{grid-template-columns:minmax(0,var(--layout-frame-aside,30fr)) minmax(0,var(--layout-frame-media,70fr))!important;grid-template-rows:minmax(0,1fr)!important}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout__aside{gap:var(--layout-frame-gap,12px)}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout__diagram{height:100%!important;min-height:0;max-height:100%}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout .story-copy h2{font-size:clamp(20px,6svh,28px)!important;margin-bottom:8px!important}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout .story-copy__body{font-size:14px!important;line-height:1.45!important;overscroll-behavior-y:auto;touch-action:pan-y pinch-zoom}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout--text-only{max-width:760px}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story>.story-slide:has(.story-layout--bleed){padding:0!important}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout--bleed{gap:0!important}
 :is(html,#story-layout-defaults) body.page-project-detail #project-story .story-layout--bleed>.story-layout__aside{padding:60px 24px 44px}
 html body.page-project-detail #project-story .story-bleed-layout>.story-media--double_bleed{flex-direction:row}
 /* Fixed-height collection surfaces must give their remaining height to the
    images, not enforce the old 310px minimum beneath a tall toolbar. */
 html body.page-projects .project-browser{--header-height:56px;--toolbar:44px;--caption:0px;padding-top:56px}
 html body.page-projects .browser-toolbar{top:0;min-height:44px;padding:0 var(--landscape-right) 4px var(--landscape-left);gap:0}
 html body.page-projects .browser-topline{min-height:40px}
 html body.page-projects [data-view=rotunda] .rotunda-stage{min-height:0}
 html body.page-projects .rotunda-card-caption h2{font-size:clamp(16px,5svh,23px)!important}
 html body.page-projects .filter-options{max-height:calc(100svh - 140px);overflow-y:auto;overscroll-behavior:contain}
 html body.page-projects .project-list-row{grid-template-columns:minmax(140px,26%) minmax(0,1fr) 36px}
 html body.page-projects .project-list-row h2{font-size:22px}
 html body.page-projects .project-list-facts{flex-wrap:wrap}
 html body.page-projects [data-view=globe] .project-globe{grid-template-rows:minmax(0,1fr);padding:0 var(--landscape-right) 12px var(--landscape-left)}
 html body.page-projects .globe-hover-menu{max-height:calc(100% - 12px);top:6px!important;bottom:auto!important}
 html body.page-projects .globe-country-picker{top:6px}
 html body.page-projects .globe-country-picker select{max-width:180px}
 html body.page-projects .globe-experience{top:52px;left:12px;width:150px}
 html body.page-projects .globe-experience p{font-size:14px}
 html body .brochure-page{padding-top:76px}
 html body .brochure-intro h1{font-size:44px;margin-block:18px}
 html body .brochure-hero>img{height:75svh;min-height:0}
 html body .brochure-toolbar{flex-wrap:wrap;gap:12px}
 html body .brochure-preview-note{bottom:6px;padding:8px 14px}
 /* The legacy research archive has its own shell. Keep every link usable. */
 html body.page-research .site-header{height:96px!important;min-height:0!important;padding:0!important;box-sizing:border-box}
 html body.page-research .site-header .brand{position:absolute!important;top:16px!important;left:var(--landscape-left)!important;width:140px!important;transform:none!important}
 html body.page-research .site-header .brand svg{width:100%!important;height:auto!important}
 html body.page-research .site-header .main-nav{position:absolute!important;top:46px!important;left:var(--landscape-left)!important;right:var(--landscape-right)!important;width:auto!important;max-width:none;display:flex;justify-content:space-between;gap:4px;transform:none!important}
 html body.page-research .site-header .main-nav a{font-size:13px!important;padding:12px 8px!important}
 html body.page-research .research-page{display:block;margin-top:100px}
 html body.page-research .research-article{width:100%;box-sizing:border-box;padding:16px 24px 40px}
 html body.page-research .research-entry h1{font-size:36px}
}
