/* September 20: one orbit, calm reading rhythm and a shared editorial strip. */
:root{--image-sequence-gap:2px}
@media (orientation:portrait), (max-width:900px){
 body.page-project-detail .project-story .story-slide .story-composition:is(.story-composition--statement,.story-composition--statement_image)>.story-copy{align-items:center;text-align:center;width:100%;max-width:52ch;margin-inline:auto;padding-inline:clamp(12px,3vw,32px);box-sizing:border-box}
 body.page-project-detail .project-story .story-slide .story-composition:is(.story-composition--statement,.story-composition--statement_image)>.story-copy h2{width:100%;max-width:26ch!important;margin-inline:auto!important;text-align:center;text-wrap:balance}
 body.page-project-detail .project-story .story-slide .story-composition:is(.story-composition--statement,.story-composition--statement_image)>.story-copy .story-copy__body{max-width:44ch;margin-inline:auto;text-align:center}
}
/* Captions now sit inside the image: no extra vertical offset is needed.
   The stage already fills the space between the toolbar and viewport bottom. */
.page-projects [data-view=rotunda] :is(.rotunda-card,.rotunda-copy){top:50%;max-height:calc(100% - 100px)}
.page-projects [data-view=rotunda] .rotunda-card-link{position:relative;overflow:hidden}
.page-projects [data-view=rotunda] .rotunda-card-caption,
.page-projects [data-view=rotunda] :is(.rotunda-card,.rotunda-copy).is-current .rotunda-card-caption{position:absolute;left:0;right:0;bottom:0;padding:54px clamp(14px,2vw,28px) clamp(16px,2vw,28px);overflow:hidden;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 12px;text-align:left;background:linear-gradient(transparent,rgba(0,0,0,.56) 65%,rgba(0,0,0,.7));text-shadow:0 1px 12px #0003}
html[data-theme] body.page-projects [data-view=rotunda] .rotunda-card-caption,
html[data-theme] body.page-projects [data-view=rotunda] .rotunda-card-caption p{color:#fff!important}
.page-projects [data-view=rotunda] .rotunda-card-caption h2{width:100%;font:300 clamp(20px,2.2vw,36px)/1.06 var(--font-display)!important;letter-spacing:-.035em;margin:0;text-wrap:balance}
.page-projects [data-view=rotunda] .rotunda-card-caption img{position:static;transform:none!important;width:22px;height:22px;margin:0}
.page-projects [data-view=rotunda] .rotunda-card-caption p{margin:0;font:300 11px/1.4 var(--font-support)}
.rotunda-loading>div{align-items:baseline;justify-content:center;gap:5px;color:#000!important}
.rotunda-loading strong{min-width:3ch;font:300 clamp(32px,4vw,52px)/1 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.04em;text-align:right}
.rotunda-loading>div>span{font:300 clamp(14px,1.5vw,18px)/1 'Space Grotesk',sans-serif}
html[data-theme] .page-projects .rotunda-loading>div{color:#000!important}
html[data-theme="dark"] body.page-projects .rotunda-loading>div{color:#fff!important}
html.rotunda-boot .page-projects .rotunda-loading,.page-projects .is-media-loading .rotunda-loading{opacity:1}
.story-neighbour{display:none!important}
.story-next-slide.is-last svg{transform:none}
.story-next-slide.is-last:hover svg{transform:translateY(4px)}
.latest-strip{grid-column:1/-1;width:100%;max-width:100%;margin:24px 0 28px;overflow:hidden;border-block:1px solid currentColor;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.latest-strip__track{display:flex;width:max-content}
.latest-strip__track.is-ready{animation:latest-travel var(--latest-duration,34s) linear infinite}
.latest-strip__run{display:flex;flex:none;align-items:center}
.latest-strip a{display:flex;flex:none;align-items:center;gap:24px;padding:18px clamp(24px,4vw,64px);font:300 clamp(15px,1.4vw,20px)/1.3 var(--font-support);color:inherit;text-decoration:none;white-space:nowrap}
.latest-strip a span{font-size:11px;opacity:.55}.latest-strip a:hover{text-decoration:underline;text-underline-offset:5px}
.latest-strip:is(:hover,:focus-within) .latest-strip__track{animation-play-state:paused}
@keyframes latest-travel{to{transform:translateX(var(--latest-shift,-50%))}}
.home-sections .story-copy :is(h1,h2),.home-sections .story-title{font-weight:300!important}
.office-map__traveller{fill:#171916;stroke:#ededE7;stroke-width:1.2;offset-path:path('M118 80Q250 22 402 135');offset-distance:0%;animation:office-journey 4s cubic-bezier(.45,0,.3,1) infinite alternate}
@keyframes office-journey{to{offset-distance:100%}}
.research-cycle__graphic{touch-action:pan-y;cursor:grab;user-select:none}
.research-cycle__graphic.is-grabbing{cursor:grabbing}
.research-cycle__graphic [data-diagram-stage]{transform:none}
.team-humanizing{font:300 clamp(18px,2vw,25px)/1.4 var(--font-support);font-style:italic;letter-spacing:-.025em;margin:22px 0}
.page-about #teamSlider.team-orbit{position:relative;display:flex!important;justify-content:flex-start;gap:var(--image-sequence-gap,2px);overflow-x:auto;overflow-y:hidden;touch-action:pan-x pan-y;scroll-behavior:auto;scroll-snap-type:none;overscroll-behavior-x:contain;padding:12px var(--team-gutter,25vw) 28px!important;scrollbar-width:none;cursor:grab;max-width:100%;box-sizing:border-box}
.page-about #teamSlider.team-orbit.is-grabbing{cursor:grabbing;scroll-snap-type:none;user-select:none}
.page-about .team-orbit .team-member{flex:0 0 clamp(187.5px,24vw,330px)!important;width:clamp(187.5px,24vw,330px)!important;max-width:none!important;scroll-snap-align:center;transform:none!important;opacity:1!important}
.page-about #teamSlider.team-orbit.is-auto-moving{scroll-snap-type:none}
.page-about .team-orbit .photo{width:100%;height:auto!important;aspect-ratio:4/5!important;max-height:none!important;overflow:hidden;border-radius:0!important}
.page-about .team-orbit .photo img{width:100%;height:100%;object-fit:cover}
.page-about .team-orbit .team-member :is(strong,p,small){opacity:1;transform:none}
.page-about .team-orbit .team-member.is-current :is(strong,p,small){opacity:1;transform:none}
.page-about .team-orbit .team-member p{font:400 clamp(21px,2vw,30px)/1.15 var(--font-display);margin:8px 0}
.page-about .team-orbit .team-member strong{font:300 12px/1.4 var(--font-support);display:block;margin-top:0;min-height:0}
.page-about .team-orbit .is-found .photo{outline:2px solid currentColor;outline-offset:6px}
.axon-grabbed{z-index:20!important;cursor:grabbing!important}.axon-dragging :is(.icon-tooltip,.icon-info){visibility:hidden!important;opacity:0!important}
.ledger-glyph{position:relative;animation:ledger-glyph .3s var(--glyph-delay) ease-out both}
.ledger-glyph::before{content:'';position:absolute;width:.11em;height:.11em;border-radius:50%;background:var(--ledger-ink,currentColor);left:-.1em;top:.46em;opacity:0;animation:ledger-dot .24s var(--glyph-delay) ease-out both;pointer-events:none}
.text-trail-dot{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;z-index:2300;will-change:transform}
@keyframes ledger-glyph{from{color:transparent}to{color:var(--ledger-ink,currentColor)}}
@keyframes ledger-dot{0%{opacity:0;transform:translateY(-.18em)}35%{opacity:.7}100%{opacity:0;transform:translateY(.12em)}}
@media(prefers-reduced-motion:reduce){.ledger-glyph,.ledger-glyph::before{animation:none}.ledger-glyph::before{display:none}}
/* Portrait layouts keep a clear reading group; only long copy scrolls within it. */
@media(max-width:700px),(max-width:1024px) and (orientation:portrait){
 .page-about .team-orbit .team-member{flex-basis:52.5vw!important;width:52.5vw!important}
 body.page-project-detail .project-story .story-slide{justify-content:safe center!important;padding:126px 28px 76px!important;gap:16px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 body.page-project-detail .project-story .story-composition{flex:0 0 auto!important;width:100%;height:auto!important;min-height:0!important;max-height:none!important;align-content:start!important;justify-content:start!important;gap:18px!important;overflow:visible!important}
 body.page-project-detail .project-story .story-composition:is(.story-composition--text_image,.story-composition--statement,.story-composition--statement_image,.story-composition--image_text_image){display:flex!important;flex-direction:column!important}
 body.page-project-detail .project-story .story-slide--mirrored .story-composition:is(.story-composition--text_image,.story-composition--statement,.story-composition--statement_image,.story-composition--image_text_image){flex-direction:column-reverse!important}
 body.page-project-detail .project-story .story-copy{flex:none!important;max-height:none!important;min-height:0;overflow:visible!important;align-self:stretch!important;text-align:left!important;display:block!important;max-width:none!important}
 body.page-project-detail .project-story .story-copy h2{font-size:clamp(25px,7vw,36px)!important;line-height:1.12;margin:0 0 12px;max-width:none}
 body.page-project-detail .project-story .story-copy__body{font-size:14px!important;line-height:1.5!important;max-height:24dvh!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:currentColor transparent;padding-right:7px}
 body.page-project-detail .story-read-more{display:none!important}
 body.page-project-detail .project-story .story-copy__body p{margin:0 0 12px}
 body.page-project-detail .project-story .story-composition--text .story-copy__body{max-height:55dvh!important}
 body.page-project-detail .project-story :is(.story-editorial-aside,.story-editorial-primary){display:flex;flex-direction:column;gap:14px;width:100%;min-height:0}
 body.page-project-detail .project-story .story-editorial-aside>.story-media__item{display:none}
 body.page-project-detail .project-story .story-composition--image_text_image .story-editorial-aside>.story-media__item{display:flex;max-height:20dvh!important}
 body.page-project-detail .project-story .story-composition--image_text_image .story-copy__body{max-height:18dvh!important}
 body.page-project-detail .project-story .story-media{min-height:0!important;flex:none;height:auto!important}
 body.page-project-detail .project-story :is(.story-editorial-primary>.story-media__item,.story-composition--text_image .story-media__item,.story-composition--statement .story-media__item){aspect-ratio:auto!important;height:auto!important;max-height:42dvh!important}
 body.page-project-detail .project-story :is(.story-media__item img,.story-media__item video){width:100%;height:auto!important;max-height:42dvh;object-fit:contain!important}
 body.page-project-detail .project-story .story-composition--image .story-media__item :is(img,video){max-height:calc(100dvh - 170px)!important}
 body.page-project-detail .project-story .story-composition--pair .story-media{display:grid;grid-template-columns:1fr!important;gap:14px}
 body.page-project-detail .project-story .story-composition--pair .story-media__item :is(img,video){max-height:30dvh!important}
 body.page-project-detail .project-story .story-media--grid .story-media__item :is(img,video){max-height:27dvh!important}
 body.page-project-detail .project-story .story-editorial-sequence{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
 body.page-project-detail .project-story .story-composition--triptych .story-editorial-sequence{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.page-project-detail .project-story .story-composition--triptych .story-media__item:last-child{grid-column:1/-1;width:70%;justify-self:center}
 body.page-project-detail .project-story .story-editorial-sequence .story-media__item :is(img,video){max-height:25dvh!important}
 body.page-project-detail .project-story .story-editorial-sequence figcaption{font-size:14px;line-height:1.35}
 body.page-project-detail .project-story .story-composition--triptych .story-copy__body{max-height:17dvh!important}
 /* Media-only slides must not inherit the desktop 16:9 frame. A pair/grid
    takes its height from its rows; portrait originals use the available height. */
 body.page-project-detail .project-story>.story-panel.story-slide:is(.story-slide--image,.story-slide--pair,.story-slide--grid):not(:has(.story-copy)){padding:126px 28px 76px!important}
 body.page-project-detail .project-story .story-panel .story-composition{aspect-ratio:auto!important;width:100%!important;max-width:100%!important}
 body.page-project-detail .project-story .story-panel .story-media{height:auto!important;max-height:none!important}
 body.page-project-detail .project-story .story-panel .story-media .story-media__item{height:auto!important;max-height:none!important;aspect-ratio:auto!important}
 body.page-project-detail .project-story .story-panel .story-media .story-media__item :is(img,video){height:auto!important;max-height:calc(100dvh - 202px)!important}
 body.page-project-detail .project-story .story-slide--pair .story-media .story-media__item :is(img,video){max-height:calc((100dvh - 216px)/2)!important}
 body.page-project-detail .project-story .story-slide--grid .story-media .story-media__item :is(img,video){max-height:calc((100dvh - 216px)/2)!important}
 body.page-project-detail .project-story :is(.story-slide--text_image,.story-slide--statement) .story-media .story-media__item :is(img,video){max-height:38dvh!important}
 .story-sequence-arrow{display:none}body.page-project-detail .project-story .story-slide__caption{font-size:11px;margin:0}
 .latest-strip a{padding:15px 22px;gap:16px}
}
@media(prefers-reduced-motion:reduce){.latest-strip__track.is-ready{animation:none;flex-wrap:wrap;width:100%}.latest-strip__run{flex-wrap:wrap}.latest-strip__run[aria-hidden]{display:none}.latest-strip a{white-space:normal}.office-map__traveller,.rotunda-loading>div::before{animation:none}.research-cycle__graphic [data-diagram-stage]{transition:none;transform:none}}
.audience-preference{position:fixed;left:16px;bottom:12px;z-index:60;border:0;border-radius:20px;padding:6px 10px;background:#191b18;color:#ddd;font:300 10px/1.3 var(--font-support);cursor:pointer}.audience-choice{position:fixed;left:20px;bottom:45px;z-index:999;width:min(420px,calc(100vw - 40px));padding:22px;border:1px solid #7775;border-radius:18px;background:#191b18;color:#f2f2ed;box-shadow:0 10px 70px #0004;font:300 14px/1.5 var(--font-support)}.audience-choice[hidden]{display:none}.audience-choice p:first-child{font-size:20px}.audience-choice button{background:transparent;border:1px solid #aaa;color:inherit;padding:10px 15px;border-radius:30px;font:inherit;cursor:pointer}.audience-choice>div{display:flex;gap:10px;flex-wrap:wrap}
