/* Canonical Drift AI system. Loaded last on every page. Page CSS owns only internal layouts. */
:root{--ink:#111210;--paper:#f0f0eb;--lime:#c2ff41;--violet:#b79aff;--muted:#b4b6ad;--line:#393c34;--surface:#1c2019;--gutter:clamp(22px,4vw,76px);--pad:var(--gutter);--section-space:clamp(56px,7vw,104px)}
body{max-width:none;margin:0;background:var(--ink);color:var(--paper)}body>main{max-width:none;margin-inline:0}*,*::before,*::after{box-sizing:border-box}img,video{max-width:100%}main h1,main h2,main h3{overflow-wrap:break-word}main :is(section,article,div){min-width:0}
body>main.information-page{max-width:none;padding-inline:var(--pad)}
main>:is(.section,.law-section,.story-section,.team-section,.experience-section,.impact-sdgs,.story-visit,.story-next,.profile-next,.more-work,.studio-services,.studio-selected,.people-manifesto){padding-block:var(--section-space)}
main .local-section{margin-inline:0;padding-inline:var(--pad)}
main .manifesto-bridge{margin-inline:0;padding-inline:var(--pad)}
main>:is(.audience-problem,.story-section,.information-section){border-top:1px solid var(--line)}
/* Preserve the existing dark visual language; section rhythm is shared. */
main .contact{margin-inline:0;padding-inline:var(--pad)}
main>.audience-problem{margin-inline:0;padding-inline:var(--pad)}
/* Shared chrome is deliberately independent of legacy header/footer selectors. */
body>.ds-header{height:88px;max-width:none;margin:0;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:50;border-bottom:1px solid var(--line);background:var(--ink);flex-wrap:nowrap}
.ds-brand{display:inline-flex;align-items:center;background:var(--lime);color:var(--ink)!important;padding:10px 12px;flex:none;font-family:Inter,Arial,sans-serif;font-weight:600;font-size:30px;line-height:1;letter-spacing:-.045em}
.ds-header nav#navigation{display:flex;position:static;align-items:center;flex-direction:row;gap:24px;margin:0 0 0 auto;padding:0;width:auto;background:none;border:0;font-size:13px;overflow:visible;white-space:normal;max-height:none}
.ds-header nav#navigation>a,.ds-header .ds-group>summary{font-size:13px;padding:12px 0;white-space:nowrap;color:var(--paper);line-height:1.4}
.ds-header .ds-group{position:relative;margin:0;font:inherit;border:0;padding:0}
.ds-header .ds-group>summary{display:flex;gap:10px;align-items:center;cursor:pointer;list-style:none;border:0;max-width:none;margin:0}
.ds-group>summary::-webkit-details-marker{display:none}.ds-group>summary>span{font-size:15px}.ds-group[open]>summary>span{transform:rotate(45deg)}
.ds-header .ds-dropdown{position:absolute;top:100%;left:-20px;min-width:250px;padding:12px 20px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 32px #0004;z-index:55}
.ds-dropdown a{display:block;padding:12px 0;font-size:14px;line-height:1.4}
.ds-actions{display:flex;gap:20px;align-items:center;flex:none;font-size:13px}.ds-language{color:var(--muted)}.ds-contact{display:flex;gap:20px;align-items:center;white-space:nowrap;border-bottom:1px solid var(--muted);padding:10px 0}.ds-header .ds-menu{display:none;margin:0;background:transparent;border:0;color:var(--paper);font-size:14px;padding:10px 0;align-items:center;gap:10px}.ds-menu span{font-size:22px}
.ds-header a:hover,.ds-group>summary:hover,.ds-header a[aria-current=page]{color:var(--lime)}
body>.ds-footer{display:block;max-width:none;margin:0;padding:64px var(--pad) 24px;background:var(--ink);border-top:1px solid var(--line);font-size:14px;color:var(--paper)}
.ds-footer-top{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:40px;align-items:start}.ds-footer .ds-brand{justify-self:start}.ds-footer-column{display:flex;flex-direction:column;gap:14px}.ds-footer a{margin:0;font-size:14px;line-height:1.5}.ds-footer .ds-brand{font-size:30px}.ds-footer a:hover{color:var(--lime)}.ds-footer-notes{margin-top:36px;color:var(--muted);font-size:11px}.ds-footer-notes p,.ds-footer-notes a{font-size:11px;line-height:1.6;max-width:none}.ds-footer-bottom{display:flex;gap:24px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px;margin-top:28px}.ds-footer-bottom a,.ds-footer-bottom button{font-size:12px;color:var(--muted)}.ds-footer-bottom button{border:0;background:none;padding:0;cursor:pointer}
@media(max-width:1200px){body>.ds-header{height:80px}.ds-header .ds-menu{display:flex}.ds-header nav#navigation{display:none;position:absolute;top:79px;left:0;right:0;width:100%;margin:0;padding:24px var(--pad);background:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:8px!important;max-height:calc(100dvh - 80px);overflow:auto}.ds-header nav#navigation.open{display:flex}.ds-header nav#navigation>a,.ds-header .ds-group>summary{font-size:18px;padding:14px 0;justify-content:space-between;white-space:normal}.ds-header .ds-dropdown{position:static;border:0;border-left:1px solid var(--line);box-shadow:none;min-width:0;margin:0 0 12px;padding:0 18px;background:none}.ds-dropdown a{font-size:15px}.ds-actions{margin-left:auto}}
@media(max-width:700px){:root{--section-space:56px}.ds-contact{display:none}.ds-footer-top{grid-template-columns:1fr 1fr;gap:36px 24px}.ds-footer-top>.ds-brand{grid-column:1/-1}.ds-footer-column:last-child{grid-column:1/-1}.ds-footer a{font-size:13px}.ds-footer .ds-brand{font-size:30px}.ds-footer-notes a{font-size:11px}.ds-footer-bottom a{font-size:12px}main .entry-grid,main .shared-offer-grid{grid-template-columns:1fr;gap:30px}main .journey-content{margin-inline:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Content is always readable, including before scroll and with script failure. */
body.motion-ready .reveal{opacity:1;transform:none}
body main .contact-card{display:none}
/* New sections use these public primitives; page-specific CSS must not redefine them. */
.ds-section{padding:var(--section-space) var(--pad)}
.ds-section--soft{background:var(--surface)}
.ds-section--studio{background:#1f1b25;--accent:var(--violet)}
.ds-reading{max-width:68ch}.ds-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(20px,3vw,40px)}

/* Keep every outer edge on the same fluid gutter, including wide monitors. */
body>.ds-header,body>.ds-footer,body>main{width:100%;max-width:none}
main>:is(.section,.law-section,.story-section,.team-section,.experience-section,.impact-sdgs,.story-visit,.story-next,.profile-next,.more-work,.studio-services,.studio-selected,.people-manifesto,.local-section,.profile-affiliations){padding-block:var(--section-space)}
main>:is(.section,.law-section,.story-section,.team-section,.experience-section,.impact-sdgs,.story-visit,.story-next,.profile-next,.more-work,.studio-services,.studio-selected,.people-manifesto,.profile-affiliations){padding-inline:var(--pad)}
/* Heroes keep their existing composition and spacing. */
main>.section.service-hero{padding-top:64px;padding-bottom:85px}
@media(max-width:520px){main>.section.service-hero{padding-top:35px;padding-bottom:50px}}

/* Shared navigation identity stays identical, including on Studio pages. */
body>.ds-header,body>.ds-footer{--lime:#c2ff41;--line:#393c34;--muted:#b4b6ad}

/* Shared contact widget, restored 5 October 2026. */
.contact-card{position:fixed;right:24px;bottom:24px;z-index:35;width:360px;max-width:calc(100vw - 32px);background:#1b1e18;border:1px solid #505745;color:var(--paper);box-shadow:0 14px 55px #0005;font:500 14px/1.4 Inter,Arial,sans-serif}.contact-card-toggle{display:flex;align-items:center;gap:13px;width:100%;padding:14px 18px;border:0;background:transparent;color:inherit;text-align:left}.contact-card-faces{display:flex;padding-left:0}.contact-card-faces img{width:36px;height:36px;object-fit:cover;object-position:center 15%;border-radius:50%;background:#676e5b;border:2px solid #1b1e18}.contact-card-faces img+img{margin-left:-10px}.contact-card-symbol{margin-left:auto;font-size:24px;font-weight:500;color:var(--lime)}.contact-card-intro{padding:17px 20px 20px;border-top:1px solid var(--line)}.contact-card-label{font-size:9px;letter-spacing:.08em;color:var(--lime)}.contact-card h2{font-size:26px;letter-spacing:-.045em;line-height:1.12;font-weight:500;margin:12px 0 10px}.contact-card-intro p{font-size:13px;color:#c4c7bd;margin:0;max-width:280px}.contact-card-people{padding:0 20px 8px}.contact-card-person{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding:14px 0}.contact-card-person>img{flex-shrink:0;width:60px;height:68px;object-fit:cover;object-position:center 12%;background:#343b2c}.contact-card-person strong{display:block;font-size:14px;font-weight:600}.contact-card-person div>span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.contact-card-person a{display:inline-block;font-size:12px;margin-top:9px;text-decoration:underline;text-underline-offset:4px;min-height:24px}.contact-card-person a:hover{color:var(--lime)}.contact-card-person .contact-card-pending{margin-top:9px;color:#b5b9ad}.contact-card [hidden]{display:none}.contact-card button:focus-visible,.contact-card a:focus-visible{outline:2px solid var(--lime);outline-offset:3px}#contact-card-body{max-height:calc(100dvh - 160px);overflow:auto}@media(max-width:899px){.contact-card{right:16px;bottom:max(16px,env(safe-area-inset-bottom));width:330px}.contact-card:not(.is-open){width:260px}.contact-card-toggle{padding:10px 15px}.contact-card h2{font-size:25px}}@media print{.contact-card{display:none}}

.contact-card{--lime:#c2ff41;--paper:#f0f0eb;--muted:#b4b6ad;--line:#393c34}.contact-card-email{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:8px 20px 22px;padding:14px 0;border-top:1px solid var(--line);color:var(--lime);font-size:18px}.contact-card-email:hover{text-decoration:underline;text-underline-offset:4px}
