@font-face{font-family:Cabinet;src:url('/static/8d5d1213c3913508/concourse/cabinet-grotesk.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Manrope;src:url('/static/a30ddcd349703aff/fonts/manrope-latin.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{--paper:#f6f7f2;--forest:#13241b;--lime:#d7ff44;--sage:#e9ede2;--ink:#171d19;--muted:#596259;--line:#d8ddd3;--ease:cubic-bezier(.16,1,.3,1);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px;scrollbar-color:#8c9a87 var(--paper)}body{margin:0;background:var(--paper);color:var(--forest);font-family:Manrope,sans-serif;font-size:16px;line-height:1.65}::selection{background:var(--lime);color:var(--forest)}a{color:inherit;text-underline-offset:.22em}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--forest);outline-offset:5px}input,textarea{caret-color:var(--forest)}[hidden]{display:none!important}svg{display:block}button svg,.button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wrap{width:91%;max-width:1440px;margin-inline:auto}h1,h2,h3{font-family:Cabinet,Manrope,sans-serif;letter-spacing:-.035em;line-height:1.04;text-wrap:balance;margin:0;font-weight:800}p{margin:0 0 20px;max-width:72ch}h2{font-size:clamp(36px,3.8vw,58px)}h3{font-size:clamp(28px,3vw,42px)}.skip{position:absolute;top:-100px;left:20px;z-index:100;padding:10px;background:var(--lime)}.skip:focus{top:10px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:48px;padding:12px 27px;text-decoration:none;font-size:16px;font-weight:700;border:0;border-radius:999px;transition:background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease)}.dark{background:var(--forest);color:var(--paper)}.lime{background:var(--lime);color:var(--forest)}.button:active{transform:scale(.97)}
.header{height:83px;display:flex;align-items:center;gap:32px;position:absolute;left:4.5%;top:0;z-index:20;margin:0;max-width:none}.brand-lockup{flex-shrink:0;display:flex;flex-direction:column;gap:1px}.brand img{width:212px;height:auto;display:block}.brand-tagline{margin:0 0 0 35px;font-size:11px;line-height:1.4;letter-spacing:0;color:var(--forest)}.header nav{display:flex;align-items:center;gap:30px;margin-left:auto}.header nav a{font-size:14px;line-height:1.3;padding:10px 8px;text-decoration:none;border-radius:5px;transition:background .18s var(--ease),color .18s var(--ease)}.header-cta{min-height:46px;font-size:14px;padding:10px 25px;white-space:nowrap}.menu-toggle{display:none}
.concourse-hero{height:57.143vw;max-height:1000px;min-height:690px;position:relative;isolation:isolate;overflow:hidden}.concourse-backdrop{position:absolute;inset:0;z-index:-2}.concourse-backdrop img{width:100%;height:100%;display:block;object-fit:cover;object-position:top center}.concourse-copy{position:absolute;left:4.52%;top:15.8%;width:55%;z-index:2}.concourse-copy h1{font-size:clamp(72px,7.12vw,112px);font-weight:900;line-height:.98;letter-spacing:-.038em;text-wrap:nowrap}.concourse-lead{font-size:clamp(21px,2.04vw,33px);line-height:1.25;font-weight:700;margin:40px 0 15px;letter-spacing:-.04em;white-space:nowrap}.concourse-description{font-size:clamp(17px,1.57vw,24px);line-height:1.32;margin:0 0 27px}.concourse-cta{min-height:53px;gap:27px;padding-inline:29px;font-size:18px}.concourse-sculpture{position:absolute;left:49.37%;top:11.5%;width:46.05%;height:76%;z-index:1;contain:layout paint;pointer-events:none}.mark-canvas{width:100%;height:100%;display:block;opacity:0}.webgl-ready .mark-canvas{opacity:1}.mark-fallback{position:absolute;inset:0;width:100%;height:100%;fill:#bdd292;filter:drop-shadow(18px 24px 12px #13241b33)}.webgl-ready .mark-fallback{visibility:hidden}.concourse-routes{position:absolute;left:13.82%;top:66%;width:32.43%;height:14%;z-index:3}.concourse-routes svg{width:100%;height:100%;overflow:visible}.concourse-routes path{stroke:#afc58b;stroke-width:.7}.concourse-routes circle{fill:var(--forest)}.route-city{position:absolute;transform:translateX(-50%);font-size:14px;line-height:1.3;text-align:center;white-space:nowrap}.route-city bdi{display:block}.route-city small{font-size:12px;display:block}.city-a{left:7%;top:79%}.city-b{left:71.2%;top:72%}.city-c{left:93%;top:53%}.concourse-pause{position:absolute;right:3.8%;bottom:3%;display:flex;align-items:center;gap:8px;font-size:11px;background:transparent;border:0;min-height:44px;padding:6px 9px;color:var(--forest);border-radius:6px}.concourse-pause svg{width:28px;height:28px;stroke-width:1.2}.concourse-pause[aria-pressed=true]{background:var(--sage)}
.expertise{padding:36px 0 80px;background:var(--paper);color:var(--forest)}.section-heading{display:flex;align-items:start;justify-content:space-between;gap:40px;margin-bottom:32px}.section-heading h2{font-size:clamp(36px,3.2vw,49px)}.expertise>.wrap>.section-heading{display:block;margin-bottom:24px}.expertise>.wrap>.section-heading>p{display:none}.service-layout{display:block}.service-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:35px;border-bottom:1px solid #a3aea0;gap:0}.service-tabs button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:68px;padding:15px 20px;color:var(--forest);background:transparent;border:0;border-radius:0;font-size:16px;text-align:left;transition:background .18s var(--ease)}.service-tabs button+button{border-left:1px solid var(--line)}.service-tabs button[aria-selected=true]{background:var(--sage)}.service-tabs button:focus-visible{outline-offset:-5px}.service-panels{background:var(--sage);padding:40px;border-radius:0;min-height:305px}.service-panels [role=tabpanel]{display:grid;grid-template-columns:1.1fr 1fr;gap:12px 55px;align-items:start}.service-panels h3{grid-column:1;max-width:500px}.service-panels p{grid-column:1;line-height:1.6}.service-panels ul{grid-column:2;grid-row:1 / span 2;padding:0;margin:0;list-style:none}.service-panels li{padding:12px 0;border-bottom:1px solid #cbd2c2}.panel-label{display:none}.formats{display:flex;gap:30px;padding:28px 0 10px;border-bottom:1px solid var(--line);font-size:14px}.formats>span{display:none}.formats p{margin:0}.formats i{font-style:normal;padding:0 10px;color:#78846e}.service-links{display:flex;gap:30px;margin-top:22px;font-size:14px}.service-links a{text-decoration:none}
.industry-strip{padding-block:80px;border-top:1px solid var(--line)}.industry-strip .section-heading p{max-width:37ch}.industry-links{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;gap:0;border-top:1px solid #a4ad9e;margin-top:40px}.industry-links a{padding:24px 19px;border:0;border-bottom:1px solid #a4ad9e;display:flex;justify-content:space-between;align-items:center;gap:16px;text-decoration:none;background:transparent;min-height:94px;border-radius:0;transition:background .18s var(--ease)}.industry-links a span{flex-shrink:0}.text-link{display:inline-block;font-size:14px;margin-top:28px}
.global-reach{margin-block:45px 0;padding:70px 5%;width:100%;max-width:none;background:var(--forest);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:70px}.global-reach h2{font-size:clamp(44px,5.7vw,84px)}.global-copy{font-size:18px;color:#d8e0d3;padding-top:6px;max-width:65ch}.compact-founders{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-block:85px;border-bottom:1px solid var(--line)}.compact-founders>div:last-child{max-width:72ch}.compact-insights{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-block:85px}.compact-insights>div:last-child{display:flex;flex-direction:column;gap:0}.compact-insights a{display:block;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none}.contact{padding:75px 0;background:var(--sage)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact h2{margin-bottom:20px}.contact p{max-width:48ch}.planner-disclosure{border-top:1px solid #a4ad9e}.planner-disclosure summary{padding:22px 5px;font-size:20px;font-weight:700;cursor:pointer}.brief-form{display:grid;gap:20px;padding:20px 5px}.brief-form h3{font-size:30px}.brief-form label{display:grid;gap:7px;font-size:14px;font-weight:600}.brief-form input,.brief-form select,.brief-form textarea{border:1px solid #a4ad9e;border-radius:6px;background:var(--paper);color:var(--forest);padding:12px 15px;min-height:46px;width:100%}.brief-form .button{justify-self:start}.footer{padding-block:42px 24px}.footer-top{display:flex;align-items:start;justify-content:space-between;margin-bottom:35px}.footer-top>a{font-size:14px}.footer-bottom{display:flex;justify-content:space-between;gap:30px;padding-top:25px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.footer-bottom>div{display:flex;gap:18px;flex-wrap:wrap}
.route-canvas{width:100%;height:100%;display:block}.service-tabs button[aria-selected=true]{background:transparent;font-weight:700}.service-tabs button svg,.industry-links a svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.service-tabs button+button{border-left:0;position:relative}.service-tabs button+button:before{content:'';position:absolute;left:0;top:25%;height:50%;width:1px;background:#a3aea0}.service-tabs button{font-size:17px}.city-marquee{grid-column:1 / -1;margin-top:30px;overflow:hidden;width:100%;border-top:1px solid #62705e;padding-top:28px}.city-track{display:flex;width:max-content;gap:55px;animation:city-track 160s linear infinite;will-change:transform}.city-track bdi{white-space:nowrap;font-family:Cabinet,Manrope,sans-serif;font-size:38px;font-weight:500;line-height:1.3;color:#d5e1bf}.city-marquee.paused .city-track{animation-play-state:paused}@keyframes city-track{to{transform:translateX(-50%)}}
.city-marquee.offscreen .city-track{animation-play-state:paused}.insight-deck{min-height:180px;background:var(--sage);padding:25px 30px}.compact-insights a.insight-slide{font-family:Cabinet,Manrope,sans-serif;font-size:32px;line-height:1.2;font-weight:600;border:0;max-width:24ch}.carousel-controls{display:flex;align-items:center;gap:12px;margin:20px 0 0}.carousel-controls span{font-size:13px;margin-right:auto;font-variant-numeric:tabular-nums}.carousel-controls button{border:1px solid var(--line);border-radius:999px;background:transparent;min-width:48px;min-height:48px;display:grid;place-items:center}.carousel-controls .previous svg{transform:rotate(180deg)}.carousel-controls button:active{transform:scale(.96)}body:not(.home-page) .header{position:relative;left:auto;top:auto;margin:auto}body:not(.home-page) h1{font-size:clamp(38px,5.7vw,86px);line-height:1.04}body:not(.home-page) .eyebrow{display:none}body:not(.home-page) .article-body h2{letter-spacing:-.035em}.service-tabs button:focus-visible{background:var(--lime)}
@media(hover:hover) and (pointer:fine){.button:hover{background:var(--lime);color:var(--forest)}.header nav a:hover,.service-tabs button:hover,.industry-links a:hover,.compact-insights a:hover,.service-links a:hover,.concourse-pause:hover{background:var(--lime);color:var(--forest)}.service-tabs:has(button:hover) button[aria-selected=true]:not(:hover){background:transparent}.industry-links a:hover svg{transform:translateX(3px)}.industry-links a svg{transition:transform .18s var(--ease)}}
@media(min-width:1600px){.concourse-hero{height:915px}.concourse-copy{top:145px}.concourse-copy h1{font-size:112px}.concourse-sculpture{height:78%}}
@media(max-width:1100px){.header{gap:20px}.header nav{gap:12px}.header-cta{padding:12px 18px;font-size:12px}.brand img{width:175px}.brand-tagline{margin-left:29px;font-size:9px}.concourse-hero{min-height:650px}.concourse-copy{top:22%;width:59%}.concourse-copy h1{font-size:7.4vw}.concourse-lead{font-size:2.04vw;margin-top:28px}.concourse-description{font-size:17px;max-width:45ch}.desktop-break{display:none}.concourse-sculpture{top:22%;height:70%}.concourse-routes{top:77%;left:8%}.service-tabs button{font-size:14px;padding-inline:12px}.industry-links{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){html{scroll-padding-top:30px}.wrap{width:89%}.header{left:5.5%;width:89%;height:82px;gap:15px}.brand img{width:174px}.brand-tagline{font-size:9px;margin-left:29px}.header-cta{display:none}.menu-toggle{display:block;margin-left:auto;background:var(--forest);color:var(--paper);border:0;border-radius:999px;padding:10px 17px;min-height:44px;font-size:13px}.header nav{position:absolute;top:77px;left:0;right:0;background:var(--paper);display:none;box-shadow:0 16px 25px #13241b18;padding:15px;border-radius:10px}.header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}.header nav a{padding:13px}.concourse-hero{height:900px;min-height:0;max-height:none}.concourse-backdrop{inset:380px -170px 0 -100px}.concourse-backdrop img{object-fit:cover;object-position:right bottom}.concourse-copy{left:5.5%;top:119px;width:89%}.concourse-copy h1{font-size:clamp(42px,8.85vw,67px);line-height:1.02;letter-spacing:-.03em}.concourse-lead{font-size:18px;line-height:1.3;white-space:normal;letter-spacing:-.025em;margin:22px 0 14px;max-width:32ch}.concourse-description{font-size:15px;max-width:38ch;line-height:1.5;margin-bottom:22px}.concourse-cta{font-size:15px;min-height:48px;padding-inline:22px}.concourse-sculpture{left:8%;top:435px;width:86%;height:360px}.concourse-routes{left:7%;top:786px;width:78%;height:73px}.route-city{font-size:11px}.route-city small{font-size:10px}.concourse-pause{bottom:12px;right:4.5%;font-size:10px}.concourse-pause svg{width:24px}.expertise{padding:35px 0 45px}.section-heading{display:block}.section-heading h2{font-size:34px}.section-heading p{margin-top:22px;font-size:15px}.service-tabs{grid-template-columns:1fr 1fr;margin:25px 0}.service-tabs button{min-height:61px;padding:12px 10px;font-size:13px;border-bottom:1px solid var(--line)}.service-tabs button+button{border-left:0}.service-tabs button:nth-child(even){border-left:1px solid var(--line)}.service-panels{padding:27px 22px;min-height:0}.service-panels [role=tabpanel]{display:block}.service-panels h3{font-size:30px;margin-bottom:18px}.service-panels p,.service-panels li{font-size:14px}.service-panels ul{margin-top:20px}.formats{padding-top:20px}.formats p{font-size:12px}.formats i{padding:0 3px}.service-links{display:block;font-size:13px}.service-links a{display:block;padding:8px 0}.industry-strip{padding-block:45px}.industry-links{grid-template-columns:1fr 1fr;margin-top:28px}.industry-links a{padding:17px 10px;font-size:13px;min-height:85px}.global-reach{margin-top:25px;padding:45px 5.5%;display:block}.global-reach h2{font-size:46px;margin-bottom:28px}.global-copy{font-size:15px}.compact-founders,.compact-insights,.contact-grid{display:block}.compact-founders,.compact-insights{padding-block:45px}.compact-founders h2,.compact-insights h2{margin-bottom:25px}.compact-founders p{font-size:15px}.compact-insights a{font-size:15px}.contact{padding-block:45px}.contact h2{font-size:40px}.contact p{font-size:14px}.planner-disclosure{margin-top:30px}.footer-bottom{display:block}.footer-bottom>div{margin-top:16px}.footer-top .brand img{width:170px}.footer-top .brand-tagline{margin-left:28px;font-size:9px}.footer-top>a{font-size:11px}.footer-top{gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.concourse-pause{display:none}}
.formats i{color:var(--muted)}.brand-tagline,.footer-top .brand-tagline{font-size:11px}.concourse-pause{font-size:11px}.route-city{width:145px;max-width:145px;white-space:normal;overflow-wrap:normal}.header .brand-lockup{min-width:225px}
@media(max-width:1100px){.header .brand-lockup{min-width:210px}}
@media(max-width:760px){.brand img,.footer-top .brand img{width:190px}.brand-tagline,.footer-top .brand-tagline{margin-left:31px;font-size:11px}.header .brand-lockup{min-width:225px}.menu-toggle{padding-inline:15px;white-space:nowrap}.route-city{width:100px;max-width:100px}.concourse-pause{font-size:11px}.compact-insights a.insight-slide{font-size:27px}}
@media(max-width:360px){.header .brand-lockup{min-width:200px}.brand img,.footer-top .brand img{width:170px}.brand-tagline,.footer-top .brand-tagline{margin-left:28px;font-size:11px}.menu-toggle{padding-inline:12px}.header{gap:8px}}
.service-links a,.text-link,.compact-insights>div>a{display:flex;align-items:center;gap:15px}.service-links a svg,.text-link svg,.insight-slide svg,.compact-insights>div>a svg{display:inline-block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.insight-slide svg{vertical-align:baseline}
/* Independent review correction: local controls and responsive fitting. */
.menu-toggle{align-items:center;gap:6px}.menu-toggle svg,.footer-top>a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;vertical-align:middle}.footer-top>a{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.global-pause{grid-column:1 / -1;justify-self:end;display:inline-flex;align-items:center;gap:9px;color:var(--paper);background:transparent;border:1px solid #62705e;border-radius:6px;padding:9px 14px;min-height:44px;font-size:13px;margin-top:0}.global-pause svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.2}.global-pause:focus-visible{color:var(--forest);background:var(--lime)}.global-pause[aria-pressed=true]{border-color:var(--lime)}
@media(min-width:761px) and (max-width:1050px){.header-cta{display:none}.menu-toggle{display:inline-flex;margin-left:auto;background:var(--forest);color:var(--paper);border:0;border-radius:999px;padding:10px 17px;min-height:44px;font-size:13px}.header nav{position:absolute;top:77px;left:0;right:0;background:var(--paper);display:none;box-shadow:0 16px 25px #13241b18;padding:15px;border-radius:10px}.header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}.header nav a{padding:13px;white-space:nowrap}}
@media(max-width:760px){.menu-toggle{display:inline-flex}.global-pause{margin-top:20px}.city-marquee{margin-top:25px}.footer-top>a{white-space:normal}.concourse-copy h1{font-size:clamp(36px,10.7vw,67px)}}
@media(max-width:360px){.concourse-copy h1{font-size:11.5vw;letter-spacing:-.03em}.header .brand-lockup{min-width:0}.brand-tagline{font-size:11px}.concourse-sculpture{left:7%;width:86%}.footer-top{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.global-pause{display:none}}
.brief-preview{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;font-family:Manrope,sans-serif;font-size:13px;line-height:1.5;padding:15px;margin-top:16px;background:var(--paper);color:var(--forest);border-radius:6px}
@media(max-width:760px){.industry-links{grid-template-columns:repeat(2,minmax(0,1fr))}.industry-links a{min-width:0}}@media(max-width:360px){.industry-links{grid-template-columns:1fr}}
@media(max-width:360px){.menu-toggle{padding-inline:8px;gap:4px}}

/* Keep selected navigation distinct from transient lime hover. */
.header nav a[aria-current],.region-links a[aria-current=true]{font-weight:700;text-decoration:underline;text-underline-offset:5px}
.region-links{display:flex;gap:16px;flex-wrap:wrap;padding-block:20px;font-size:13px}.region-links a{padding:8px}

@media(min-width:1101px){.concourse-routes{top:70%}}

/* Same authored sculpture, decoded natively rather than shaded per frame. */
.concourse-sculpture .mark-fallback{visibility:hidden}
.sculpture-poster,.sculpture-video,.sculpture-animation{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.sculpture-video,.sculpture-animation{opacity:0}
.sculpture-playing .sculpture-video,.sculpture-fallback-playing .sculpture-animation{opacity:1}
@media(min-width:1000px){.compact-founders h2{position:sticky;top:130px;align-self:start}}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.global-copy p{animation:concourse-text-clarity linear both;animation-timeline:view();animation-range:entry 0% entry 100%}@keyframes concourse-text-clarity{from{opacity:.75}to{opacity:1}}}}

/* Keep unsupported video decoders moving without a second media payload. */
.sculpture-fallback-ready .sculpture-poster{animation:sculpture-safe-sway 12s cubic-bezier(.4,0,.6,1) infinite;animation-play-state:paused;transform-origin:52% 78%}
.sculpture-fallback-playing .sculpture-poster{animation-play-state:running;will-change:transform}
@keyframes sculpture-safe-sway{0%,100%{transform:perspective(900px) rotateY(0deg) translate(0,0)}25%{transform:perspective(900px) rotateY(5deg) translate(-2px,-1px)}75%{transform:perspective(900px) rotateY(-5deg) translate(2px,1px)}}
@media(prefers-reduced-motion:reduce){.sculpture-fallback-ready .sculpture-poster{animation:none;transform:none}}
/* 13 Oct 2026 route-graphic legibility: labels sit on a marble floor image, so give them a paper halo. */
.route-city{color:var(--forest);font-weight:600;text-shadow:0 0 3px #f6f7f2,0 0 7px #f6f7f2,0 0 12px #f6f7f2cc}.route-city small{font-weight:500;color:#2e3a32}
/* 13 Oct 2026 tablet: the supporting paragraph ran under the sculpture between 761 and 1100px. Wrap only; wording unchanged. */
@media(min-width:761px) and (max-width:1100px){.concourse-description{max-width:min(45ch,calc(49.4vw - 5.5vw - 12px))}}
/* 15 Oct 2026 site review fixes. */
/* Selected service tab keeps a forest underline, so a lime hover can never read as the selection. */
.service-tabs button[aria-selected=true]{box-shadow:inset 0 -3px 0 var(--forest)}
/* Pause control was 11px; 13px keeps it readable without competing with the routes. */
.concourse-pause{font-size:13px}
/* Arrow on internal links (replaces the external-link glyph). */
.link-arrow{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.6;vertical-align:-.14em;flex-shrink:0}
/* Phone: keep the menu reachable after scrolling. The band behind the header spans the viewport. */
@media(max-width:760px){html{scroll-padding-top:96px}.home-page .header{position:fixed}body:not(.home-page) .header{position:sticky;top:0}.header{z-index:30}.header:before{content:'';position:absolute;inset:0 calc((100% - 100vw)/2);background:var(--paper);z-index:-1}.concourse-pause{font-size:12px}}
@supports(animation-timeline:scroll()){@media(max-width:760px) and (prefers-reduced-motion:no-preference){.header:after{content:'';position:absolute;left:calc((100% - 100vw)/2);right:calc((100% - 100vw)/2);bottom:-18px;height:18px;background:linear-gradient(#13241b17,#13241b00);pointer-events:none;opacity:0;animation:header-fade linear both;animation-timeline:scroll();animation-range:0 120px}}}@keyframes header-fade{to{opacity:1}}
/* Emil Kowalski design-engineering pass: hover only on fine pointers, press feedback on every control, a quick origin-aware menu entrance. */
@media(hover:hover) and (pointer:fine){.carousel-controls button:hover{background:var(--lime)}.global-pause:hover{color:var(--forest);background:var(--lime)}.region-links a:hover{background:var(--lime);color:var(--forest)}}
.menu-toggle,.concourse-pause,.global-pause,.carousel-controls button{transition:background .18s var(--ease),color .18s var(--ease),transform .16s var(--ease)}
.menu-toggle:active,.concourse-pause:active,.global-pause:active{transform:scale(.97)}
@media(max-width:1050px) and (prefers-reduced-motion:no-preference){.header nav.open{transform-origin:top right;transition:opacity .18s var(--ease),transform .18s var(--ease)}@starting-style{.header nav.open{opacity:0;transform:translateY(-6px) scale(.98)}}}
/* The approved render is cropped at its left and right feet and ends in a hard reflection strip. Feather those edges into the floor instead of showing the box. */
.concourse-sculpture{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 3%,#000 97%,transparent 100%),linear-gradient(to bottom,#000 92%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 3%,#000 97%,transparent 100%),linear-gradient(to bottom,#000 92%,transparent 100%);mask-composite:intersect}
/* Tablet menu range: the header sits on the photo, so pin it only where the band can fade in with scroll (opacity only, no repaint). */
@supports(animation-timeline:scroll()){@media(min-width:761px) and (max-width:1050px) and (prefers-reduced-motion:no-preference){html{scroll-padding-top:96px}.home-page .header{position:fixed;z-index:30}body:not(.home-page) .header{position:sticky;top:0;z-index:30}.header:before{content:'';position:absolute;inset:0 calc((100% - 100vw)/2);z-index:-1;background:var(--paper);box-shadow:0 6px 18px #13241b1f;opacity:0;animation:header-fade linear both;animation-timeline:scroll();animation-range:0 160px}}}
/* Independent review fixes, 15 Oct 2026. */
@media(max-width:760px){.concourse-backdrop{-webkit-mask-image:linear-gradient(#0000,#000 90px);mask-image:linear-gradient(#0000,#000 90px)}}
.button,.button.small{border-radius:999px;transition:background .18s var(--ease),color .18s var(--ease),transform .16s var(--ease)}
.nav-cta{display:none}@media(max-width:1050px){.header nav a.nav-cta{display:flex;justify-content:center;margin-top:8px;background:var(--forest);color:var(--paper);border-radius:999px;font-weight:700}}
.menu-toggle svg{transition:transform .16s var(--ease)}.menu-toggle[aria-expanded=true] svg{transform:rotate(45deg)}
.city-marquee{-webkit-mask-image:linear-gradient(90deg,#0000,#000 6%,#000 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6%,#000 94%,#0000)}
.legal h1{margin-bottom:24px}
.sculpture-video,.sculpture-animation{transition:opacity .3s ease-out}
/* Code review fixes, 15 Oct 2026: arrows stay on the text line (global svg is block); the full-bleed header band must not create sideways scroll where 100vw includes a scrollbar; reduced-motion tablet users keep a reachable menu with a static band. */
.link-arrow{display:inline-block}
@media(max-width:1050px){html{overflow-x:clip}}
@media(min-width:761px) and (max-width:1050px) and (prefers-reduced-motion:reduce){html{scroll-padding-top:96px}.home-page .header{position:fixed;z-index:30}body:not(.home-page) .header{position:sticky;top:0;z-index:30}.header:before{content:'';position:absolute;inset:0 calc((100% - 100vw)/2);z-index:-1;background:var(--paper)}}
/* Article CTA label stays on one line on phones; tighter spacing instead of an orphaned word. */
.article-cta .button{white-space:nowrap;gap:14px;padding-inline:22px;max-width:100%}@media(max-width:360px){.article-cta .button{white-space:normal}}
/* 29 Oct 2026: footer links tall enough to tap on phones (24px minimum). */
.footer .footer-bottom a,.footer .footer-bottom button,.footer .footer-top>a{display:inline-flex;align-items:center;min-height:24px}

.footer-bottom .copy-ai{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-align:left}.footer-bottom .copy-ai:hover,.footer-bottom .copy-ai:focus-visible{text-decoration:underline}
