@import url('/assets/fonts.css');
:root{--bg:#f5f2e9;--paper:#ece7db;--ink:#183047;--muted:#53616b;--line:#c6c8bf;--accent:#ffc440;--display:'halyard-display-variable',Arial,sans-serif;color-scheme:light}html[data-theme=dark]{--bg:#132434;--paper:#1c3344;--ink:#f5f2e9;--muted:#b9c4c8;--line:#415462;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.6 'IBM Plex Sans',sans-serif}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.045em;line-height:1.03}h1{font-size:clamp(54px,7.5vw,108px)}h2{font-size:clamp(40px,4.8vw,68px)}h3{font-size:30px}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}img{display:block;width:100%;height:auto}button,summary{cursor:pointer;font:inherit}button{color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #eaa300;outline-offset:6px}.wrap{width:min(1280px,calc(100% - 112px));margin:auto}.eyebrow{font:11px/1.6 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;margin-bottom:24px}.lead{font-size:22px;line-height:1.5;max-width:600px}.muted{color:var(--muted)}.skip{position:fixed;top:-100px;left:16px;background:var(--accent);padding:12px;z-index:100}.skip:focus{top:12px}.header{position:fixed;inset:0 0 auto;z-index:20;transition:background .2s;color:var(--ink)}.header-inner{height:94px;display:flex;align-items:center;justify-content:space-between;gap:30px}.logo{width:146px;flex-shrink:0}.logo .night{display:none}html[data-theme=dark] .logo .day,.on-hero .logo .day{display:none}html[data-theme=dark] .logo .night,.on-hero .logo .night{display:block}.on-hero .header{color:#fff}.header.scrolled{color:var(--ink);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.scrolled .header-inner{height:74px}.on-hero .scrolled .logo .day{display:block}.on-hero .scrolled .logo .night{display:none}html[data-theme=dark] .scrolled .logo .day{display:none}html[data-theme=dark] .scrolled .logo .night{display:block}.nav{display:flex;gap:32px;align-items:center;font:13px Inter,sans-serif}.nav .nav-cta{border-bottom:1px solid;padding:12px 0}.mobile{display:none}.theme{position:fixed;right:10px;top:44%;z-index:30;display:grid;background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:4px;gap:3px}.theme button{width:32px;height:32px;border:0;border-radius:50%;background:transparent;font:10px Inter,sans-serif}.theme button[aria-pressed=true]{background:var(--accent);color:#14253a}.theme svg{width:16px;height:16px;vertical-align:middle}.hero{position:relative;min-height:850px;min-height:min(930px,100svh);display:flex;align-items:center;color:#fff;background:#142539;isolation:isolate}.hero>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:64% center;z-index:-2}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,24,38,.95),rgba(10,24,38,.66) 43%,rgba(10,24,38,.08) 80%),linear-gradient(0deg,rgba(10,24,38,.6),transparent 40%)}.hero .wrap{padding-top:100px;padding-bottom:65px}.hero h1{max-width:860px}.hero h1 em{font-style:normal;color:var(--accent)}.hero .lead{margin-top:28px;max-width:480px;font-size:19px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 24px;background:var(--accent);color:#152b40;font:13px Inter,sans-serif;border-radius:3px}.textlink{display:inline-block;border-bottom:1px solid;padding:10px 0;font:13px Inter,sans-serif}.hero-bottom{margin-top:70px;display:flex;justify-content:space-between;border-top:1px solid #ffffff4d;padding-top:18px;font:11px Inter,sans-serif;letter-spacing:.08em}.section{padding:110px 0}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:100px;align-items:start}.split .lead{padding-top:8px}.statement{font-size:clamp(30px,3.4vw,48px);max-width:1010px;line-height:1.23}.intro-note{max-width:570px;margin:30px 0 0 auto}.rule{border-top:1px solid var(--line)}.section-title{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:48px}.project-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:58px}.project:nth-child(2){padding-top:140px}.project .art{background:var(--paper);overflow:hidden;aspect-ratio:1.25;padding:24px;border-radius:2px 90px 2px 2px}.project .art img{height:100%;object-fit:contain;object-position:top}.project:nth-child(2) .art{aspect-ratio:1.1;border-radius:2px 2px 70px 2px}.project h3{margin:22px 0 8px}.project p{font-size:15px;max-width:480px}.project small{display:block;font:10px Inter,sans-serif;letter-spacing:.12em;margin:22px 0 10px;text-transform:uppercase}.section-tone{background:var(--paper)}.service-list{margin-top:40px}.service-row{border-top:1px solid var(--line);display:grid;grid-template-columns:50px 1.1fr 1fr 25px;gap:25px;padding:26px 0;align-items:center}.service-row small{font:11px Inter,sans-serif}.service-row p{font-size:16px}.service-row span:last-child{font-size:28px}.audiences{display:grid;grid-template-columns:repeat(2,1fr);gap:0 64px;margin-top:50px}.audiences a{display:block;border-top:1px solid var(--line);padding:28px 0}.audiences h3{font-size:32px;margin-bottom:12px}.audiences p{font-size:16px;max-width:420px}.portrait{background:var(--paper);border-radius:50% 50% 3px 3px;max-width:440px;padding:28px 30px 0}.portrait img{max-height:480px;object-fit:contain;object-position:bottom}.bio{padding-top:50px}.bio p{margin-top:24px}.bio .eyebrow{margin-top:0}.closing{background:#213b50;color:#fff;border-radius:160px 0 0 0;padding:100px 0}.closing p{max-width:530px;margin-top:25px}.footer{padding:45px 0}.footer-row{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.footer small{display:block;font:11px/1.8 Inter,sans-serif;color:var(--muted);margin-top:34px}.page-head{padding:165px 0 65px}.category-top{display:grid;grid-template-columns:1.3fr 1fr;gap:65px;align-items:center}.category-top h1{font-size:clamp(50px,6vw,88px)}.category-top .lead{margin-top:30px}.architecture{height:520px;border-radius:220px 220px 8px 8px;background:#ded9c7;position:relative;overflow:hidden}.architecture svg{width:100%;height:100%}.category-intro{padding-top:45px}.numbers{display:grid;gap:28px}.numbers article{padding:24px 0;border-top:1px solid var(--line)}.numbers h3{font-size:28px;margin-bottom:15px}.numbers p{font-size:17px}.numbers small{font:11px Inter,sans-serif;display:block;margin-bottom:16px}.plan{background:var(--paper);padding:50px;border-radius:2px 80px 2px 2px}.plan .price{font-family:var(--display);font-size:65px;letter-spacing:-.04em;line-height:1.1;margin:25px 0 10px}.plan .price small{font:16px 'IBM Plex Sans',sans-serif}.plan p{font-size:16px}.plan h3{font-size:38px}.plan .actions{gap:15px}.faq{max-width:860px}.faq details{padding:24px 0;border-top:1px solid var(--line)}.faq summary{font-size:22px}.faq details p{margin-top:20px;font-size:17px;max-width:700px}.case-title h1{max-width:1000px}.case-title .lead{margin-top:28px}.case-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:50px;gap:30px;padding-top:23px;font-size:15px}.case-meta small{display:block;font:10px Inter,sans-serif;letter-spacing:.1em;margin-bottom:10px}.case-cover{padding:45px;background:#e1e3cf;border-radius:2px 130px 2px 2px}.case-cover img{width:100%;height:auto}.caption{font-size:12px;color:var(--muted);margin-top:16px}.sketches{display:grid;grid-template-columns:1fr 1fr 1fr;gap:25px;margin-top:55px;align-items:start}.sketches figure{background:var(--paper);padding:18px}.sketches img{height:360px;object-fit:contain}.sketches figcaption{font-size:13px;padding-top:14px}.body-copy p+p{margin-top:20px}.case-outcome{max-width:850px}.case-outcome p{margin-top:25px}.review{padding-top:80px}.review h1{font-size:60px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0}.review-grid a{padding:30px;background:var(--paper);border:1px solid var(--line);font-size:24px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}td,th{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:16px 12px}th{font-size:11px;text-transform:uppercase}td ul{margin:0;padding-left:18px}.review h2{font-size:38px;margin:60px 0 25px}.review p{max-width:1000px}.review li{margin-bottom:12px}.review code{font-size:12px;overflow-wrap:anywhere}.diagram{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.diagram article{border-top:2px solid var(--ink);padding:25px 0}.diagram h3{margin-bottom:15px}.diagram p{font-size:16px}.device-views{display:flex;gap:20px;align-items:flex-start;overflow:auto}.device-views iframe{border:1px solid var(--line);flex:none;background:white}.device-views iframe:first-child{width:960px;height:720px}.device-views iframe:last-child{width:390px;height:720px}
@media(min-width:1600px){.hero{min-height:900px}}@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.nav{gap:19px}.split{gap:45px}.category-top{gap:35px}.architecture{height:410px}.hero h1{font-size:80px}.service-row{grid-template-columns:30px 1fr 1fr 20px}.project-grid{gap:32px}.theme{right:3px}.sketches img{height:260px}}
@media(max-width:720px){body{font-size:17px}.wrap{width:calc(100% - 48px)}.header-inner{height:76px}.logo{width:122px}.nav{display:none}.mobile{display:block;font:13px Inter,sans-serif}.mobile summary{padding:14px 6px}.mobile nav{position:absolute;left:0;right:0;top:75px;background:var(--bg);color:var(--ink);padding:22px 26px;box-shadow:0 12px 30px #0002}.mobile nav a{display:block;padding:13px}.theme{top:auto;bottom:14px;right:10px;display:flex;border-radius:30px;box-shadow:0 4px 15px #0002}.theme button{width:36px;height:36px}.hero{min-height:820px;min-height:100svh;align-items:flex-end}.hero>img{object-position:68% center}.hero:after{background:linear-gradient(0deg,rgba(10,24,38,.98),rgba(10,24,38,.77) 46%,rgba(10,24,38,.1) 100%)}.hero .wrap{padding-top:240px;padding-bottom:36px}.hero h1{font-size:clamp(47px,10.6vw,72px)}.hero .eyebrow{font-size:9px;margin-bottom:20px;letter-spacing:.12em}.hero .lead{font-size:17px;margin-top:22px}.hero .actions{gap:18px}.hero-bottom{margin-top:32px;font-size:9px}.hero-bottom span:last-child{display:none}.section{padding:70px 0}.split,.category-top{grid-template-columns:1fr;gap:35px}.intro-note{margin-top:25px}.lead{font-size:20px}.section-title{align-items:start;flex-direction:column;gap:20px;margin-bottom:32px}.project-grid{grid-template-columns:1fr;gap:44px}.project:nth-child(2){padding-top:0}.project .art{aspect-ratio:1.25;padding:15px;border-radius:2px 55px 2px 2px}.project:nth-child(2) .art{aspect-ratio:1.25}.service-row{grid-template-columns:26px 1fr 18px;gap:15px}.service-row h3{font-size:28px}.service-row p{grid-column:2;grid-row:2}.service-row span:last-child{grid-column:3;grid-row:1}.audiences{grid-template-columns:1fr;margin-top:30px}.portrait{max-width:350px;margin:auto}.portrait img{max-height:360px}.bio{padding-top:0}.closing{border-radius:70px 0 0 0;padding:70px 0}.footer{padding-bottom:90px}.footer-row{font-size:14px}.page-head{padding:125px 0 45px}.category-top h1{font-size:52px}.architecture{height:320px;max-width:400px;width:100%;margin:auto}.plan{padding:28px;border-radius:2px 55px 2px 2px}.case-meta{grid-template-columns:1fr;gap:18px;margin-top:30px}.case-title h1{font-size:53px}.case-cover{padding:17px;border-radius:2px 65px 2px 2px}.sketches{grid-template-columns:1fr;gap:25px;margin-top:30px}.sketches img{height:auto;max-height:500px}.case-cover+.caption{font-size:11px}.review h1{font-size:44px}.review-grid,.diagram{grid-template-columns:1fr}.review-grid a{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.ui-icon{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}html{scroll-padding-top:100px}

.case-title h1{font-size:clamp(50px,6.1vw,88px)}@media(max-width:720px){.case-title h1{font-size:44px}.case-title .lead{font-size:18px}.case-title{padding-bottom:30px}}

.project .art{display:block}

/* Editorial interactions: colour is the cue, never underlining a whole card. */
:root{--hover-ink:#89621c}html[data-theme=dark]{--hover-ink:#ffd36c}
a{transition:color .2s ease,border-color .2s ease,background-color .2s ease}
:where(.audiences a,.service-row,.contact-choices>a,.editorial-list>a,.service-directory a,.reading-paths a){transition:color .2s ease,border-color .2s ease}
:where(.audiences a,.service-row,.contact-choices>a,.editorial-list>a,.service-directory a,.reading-paths a):is(:hover,:focus-visible){color:var(--hover-ink);border-color:var(--hover-ink);text-decoration:none}
:where(.audiences a,.service-row,.contact-choices>a,.editorial-list>a):is(:hover,:focus-visible) :is(h2,h3,p,small,span){color:inherit}
:where(.project h2 a,.project h3 a,.footer-nav a,.textlink,.case-inline):is(:hover,:focus-visible){color:var(--hover-ink);text-decoration:none}
.theme .theme-toggle{display:none}.theme-options{display:grid;gap:3px}
@media(max-width:720px){
 .theme{bottom:calc(16px + env(safe-area-inset-bottom));right:12px;top:auto;display:flex;flex-direction:column-reverse;padding:5px;gap:0;border-radius:30px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 28px #0002;max-height:54px;overflow:hidden;transition:max-height .22s ease}
 .theme.is-expanded{max-height:216px}
 .theme .theme-toggle{display:block;flex:none;background:var(--accent);color:#14253a}
 .theme button{width:42px;height:42px!important;min-height:42px!important}
 .theme-options{gap:3px;padding-bottom:5px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .18s ease,transform .22s ease,visibility .18s}
 .theme.is-expanded .theme-options{opacity:1;visibility:visible;pointer-events:auto;transform:none}
 .theme svg{width:18px;height:18px}
}
@media(prefers-reduced-motion:reduce){.theme,.theme-options{transition:none}}

.theme-close{display:none}@media(max-width:720px){.theme.is-expanded .theme-toggle svg:not(.theme-close){display:none}.theme.is-expanded .theme-toggle .theme-close{display:block}}

.inline-icon{display:inline-block;width:1em;height:1em;vertical-align:-.13em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.full-site .project-card img{object-fit:contain}.menu-arrow .inline-icon{width:1em;height:1em}
