/* Shared local site styles. Font faces and baseline styles load from the site root. */
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{--bg:#faf8f3;--ink:#2d3532;--muted:#646a64;--accent:#9e4d35;--wash:#eee9df;--line:#dcded4;margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}p,h1,h2,h3,h4{margin:0}p{color:var(--muted)}.page{max-width:1280px;margin:auto;padding:0 64px}.skip{position:absolute;top:-100px;left:16px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:12px}header{display:flex;align-items:center;justify-content:space-between;padding:32px 0;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:600;line-height:1.05;letter-spacing:-.7px}.brand-small{display:block;font-size:12px;letter-spacing:2.5px;font-weight:400;margin-top:6px}.brand-mark{font-family:Georgia,serif;font-size:46px;font-weight:400;letter-spacing:-10px;margin-right:12px}.brand-mark span{color:var(--accent)}header nav{display:flex;gap:34px;align-items:center;font-size:13px}.nav-contact{border-bottom:1px solid var(--ink);padding:7px 0}.nav-contact span{margin-left:18px}.intro{display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:50px;padding:83px 0 85px}.eyebrow{text-transform:uppercase;letter-spacing:1.9px;font-size:10px;font-weight:600;color:var(--accent);display:block}.dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:10px;vertical-align:1px}h1{font-family:var(--display);font-size:clamp(44px,5.4vw,74px);font-weight:400;line-height:1.04;letter-spacing:-2.5px;margin:28px 0}h1 em{font-weight:400;color:var(--accent)}.lead{max-width:450px;font-size:16px;line-height:1.8}.btn.primary{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--ink);color:var(--bg);border:1px solid var(--ink);padding:0 23px;min-height:47px;height:auto;border-radius:3px;box-shadow:none;font-size:12px;font-weight:500;text-transform:none;margin-top:28px}.btn.primary:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.art{height:360px;position:relative;overflow:hidden;background:var(--wash);border-radius:3px}.art-note{position:absolute;bottom:21px;left:24px;font-size:9px;letter-spacing:2px;color:var(--ink)}.orb{position:absolute;width:230px;height:230px;border-radius:50%;top:45px}.orb-one{left:30px;background:repeating-linear-gradient(90deg,transparent 0 4px,#536c604d 4px 5px);border:1px solid #536c6066}.orb-two{right:25px;top:90px;background:#b3624140;mix-blend-mode:multiply;border:1px solid #b3624170}.art-axis{position:absolute;width:1px;height:80%;left:50%;top:10%;background:#8a8b7044;transform:rotate(35deg)}.news{display:grid;grid-template-columns:170px 1fr auto;gap:40px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:32px 0}.jkl{font-size:43px;font-weight:600;letter-spacing:-3px;line-height:1.3;display:block}.jkl span{font-size:15px;letter-spacing:-.5px;font-weight:400;margin-left:7px}.jkl sup{font-size:16px;margin-left:15px;vertical-align:top;line-height:2}.news h2{font-size:20px;font-weight:500;letter-spacing:-.5px;margin-bottom:8px}.news p{font-size:13px;max-width:560px}.news-copy p a{text-decoration:underline;text-underline-offset:3px}.text-link{white-space:nowrap;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:7px}.text-link span{margin-left:18px}.services{padding:70px 0}.section-heading{display:grid;grid-template-columns:170px 1fr 1fr;gap:40px;align-items:start;margin-bottom:40px}.section-heading .eyebrow{padding-top:9px}h2{font-family:var(--display);font-size:35px;line-height:1.2;letter-spacing:-.8px;font-weight:400}.section-heading>p:last-child{font-size:14px;max-width:300px;justify-self:end}.optional-break{display:none}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.service{border-top:1px solid var(--line);padding:24px 0 0}.number{color:var(--accent);font-size:11px;letter-spacing:1px}.service h3{font-size:23px;letter-spacing:-.6px;font-weight:500;margin:18px 0 17px}.service h4{font-size:13px;font-weight:500;margin-bottom:7px}.service p{font-size:13px;max-width:305px}.conversation{background:var(--wash);padding:35px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px}.conversation h2{font-size:32px;margin-top:12px}.conversation .btn{margin:0;flex-shrink:0}footer{display:grid;grid-template-columns:1.2fr 1fr auto;gap:25px;padding:40px 0 110px;font-size:11px;color:var(--muted)}footer strong{font-weight:500;color:var(--ink)}footer p{margin-top:6px}address{font-style:normal}.legal a{display:block;margin-top:6px}.direction-bar{position:fixed;bottom:0;left:0;right:0;z-index:5;border-top:1px solid var(--line);background:var(--bg);padding:12px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 -4px 24px #00000004;font-size:10px}.direction-bar b{display:block;font-weight:500}.palette{color:var(--muted);font-size:9px}.direction-bar nav{display:flex;gap:5px}.direction-bar nav a{padding:8px 12px;border:1px solid transparent;border-radius:3px}.direction-bar nav a[aria-current]{background:var(--ink);color:var(--bg)}.direction-bar nav a:hover{border-color:var(--ink)}
.blue{--bg:#fbfcfe;--ink:#172d48;--muted:#58697e;--accent:#295bc8;--wash:#edf2fc;--line:#dce3ed}.blue h1{font-weight:600;font-size:clamp(44px,5.3vw,70px);letter-spacing:-3px}.blue h1 em{font-style:normal}.blue .art{border-radius:16px;background:linear-gradient(135deg,#edf3ff,#e0eaff)}.signal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;width:240px;position:absolute;left:50%;top:45%;transform:translate(-50%,-50%) rotate(-12deg)}.signal-grid i{height:26px;border-radius:6px;background:#bdd0f3}.signal-grid i:nth-child(3n){background:#3669d1}.signal-grid i:nth-child(5n){background:#fff}.blue .service{background:white;border:1px solid var(--line);border-radius:12px;padding:25px}.blue .btn.primary{background:var(--accent);border-color:var(--accent);border-radius:8px}.blue h2{font-size:30px;font-weight:500}.blue .news{background:var(--wash);border:0;border-radius:12px;padding:28px}.blue .conversation{border-radius:12px}
.sage{--bg:#f7f9f4;--ink:#294c3d;--muted:#5b6e62;--accent:#47684e;--wash:#e6eddf;--line:#d6dfd0}.sage .intro{grid-template-columns:1fr 1fr;gap:65px}.sage h1{font-size:clamp(42px,4.8vw,63px);line-height:1.14}.sage .art{border-radius:180px 180px 4px 4px;height:395px}.rings{position:absolute;inset:32px 45px 55px}.rings i{position:absolute;inset:0;border:1px solid #6b8a65;border-radius:50% 50% 5% 5%;transform:rotate(20deg)}.rings i:nth-child(2){inset:25px;transform:rotate(40deg)}.rings i:nth-child(3){inset:50px;transform:rotate(60deg)}.rings i:nth-child(4){inset:75px;background:#c1d0af;transform:rotate(80deg)}.sage .btn.primary{border-radius:30px}.sage .service-grid{gap:0}.sage .service{padding:25px 28px;border-left:1px solid var(--line)}.sage .service:first-child{padding-left:0;border-left:0}.sage .conversation{background:transparent;padding:36px 0;border-block:1px solid var(--line)}.sage .section-heading h2{font-size:30px}
.lilac{--bg:#fbf9ff;--ink:#3d3155;--muted:#6b617b;--accent:#765192;--wash:#eee7f6;--line:#e2dbe9}.lilac .intro{grid-template-columns:1.4fr 1fr;gap:25px}.lilac h1{font-size:clamp(43px,5vw,68px);font-weight:500;line-height:1.13;letter-spacing:-3px}.lilac h1 em{font-style:normal;color:var(--accent)}.lilac .art{background:transparent;overflow:visible}.tile{width:190px;height:145px;position:absolute;border:1px solid #73618620;border-radius:15px;font-size:29px;padding:24px;font-weight:500;letter-spacing:-1px;box-shadow:0 12px 35px #503b6910}.tile span{display:block;text-align:right;font-size:39px;line-height:1}.tile-one{background:#e7def4;left:20px;top:14px;transform:rotate(-9deg)}.tile-two{background:#f4e3d5;right:0;top:108px;transform:rotate(9deg);z-index:1}.tile-three{background:#f2eff9;left:25px;top:202px;transform:rotate(-4deg);z-index:2}.lilac .news{border:0;background:var(--wash);padding:32px;border-radius:18px}.lilac .service{border:0;border-radius:16px;padding:28px;background:#f0ebf5}.lilac .service:nth-child(2){background:#f7eee5}.lilac .service:nth-child(3){background:#eaf0ec}.lilac h2{font-size:28px;font-weight:500}.lilac .btn.primary{border-radius:28px}.lilac .conversation{background:transparent;border-top:1px solid var(--line);padding:35px 0}
.minimal{--bg:#fdfcf8;--ink:#30312b;--muted:#717166;--accent:#806735;--wash:#f0eee4;--line:#dddcd2}.minimal .page{max-width:1120px}.minimal .intro{grid-template-columns:1.5fr 1fr;padding:95px 0;gap:20px}.minimal h1{font-size:clamp(46px,6vw,80px)}.minimal h1 em{color:var(--ink)}.minimal .art{background:none;height:300px}.linework{position:absolute;inset:25px 30px 55px}.linework i{position:absolute;inset:calc(var(--i)*5px);border:1px solid #a6926470;transform:rotate(calc(var(--i)*6deg));border-radius:1px}.minimal .news{grid-template-columns:140px 1fr auto}.minimal .section-heading{grid-template-columns:1fr 1fr}.minimal .section-heading .eyebrow{grid-column:1/-1}.minimal .service-grid{display:block}.minimal .service{display:grid;grid-template-columns:50px 160px 1fr 1.2fr;gap:15px;align-items:baseline;padding:24px 0}.minimal .service h3{margin:0}.minimal .conversation{background:none;border-block:1px solid var(--line);padding:35px 0}.minimal .btn.primary{background:transparent;color:var(--ink)}.minimal .btn.primary:hover{background:var(--wash)}
@media(min-width:1500px){.intro{padding-block:100px}}@media(max-width:1000px){.page{padding-inline:35px}.intro{gap:25px}.art{height:320px}.news,.minimal .news{grid-template-columns:130px 1fr;gap:25px}.news>.text-link{grid-column:2;justify-self:start}.section-heading{grid-template-columns:1fr 2fr;gap:15px}.section-heading>p:last-child{grid-column:2;justify-self:start;max-width:400px}.service-grid{gap:20px}.direction-bar nav a{padding:7px 9px}.palette{display:none}.tile{width:155px;height:130px}.minimal .service{grid-template-columns:30px 130px 1fr}.minimal .service p{grid-column:3}.orb{width:200px;height:200px}.sage .intro{gap:30px}.sage .art{height:350px}footer{grid-template-columns:1fr 1fr}.legal{grid-column:1/-1}}
@media(max-width:640px){.page{padding-inline:23px}header{padding:23px 0;gap:12px}.brand{font-size:16px}.brand-small{font-size:10px}.brand-mark{font-size:38px}header nav{gap:15px;font-size:11px}header nav a:nth-child(2){display:none}.nav-contact span{margin-left:4px}.intro,.sage .intro,.lilac .intro,.minimal .intro{grid-template-columns:1fr;padding:48px 0 36px;gap:35px}h1,.blue h1,.sage h1,.lilac h1,.minimal h1{font-size:clamp(40px,10.7vw,62px);letter-spacing:-1.8px}.lead{font-size:15px}.eyebrow{font-size:9px;letter-spacing:1.4px}.art,.sage .art,.minimal .art{height:260px}.orb{width:180px;height:180px;top:20px}.orb-one{left:18%}.orb-two{right:16%;top:55px}.signal-grid{width:190px;gap:9px}.signal-grid i{height:21px}.sage .art{border-radius:140px 140px 3px 3px}.rings{inset:20px 70px 50px}.lilac .art{height:280px;max-width:350px;width:100%;margin:auto;overflow:hidden}.tile-one{top:5px}.tile-two{top:65px;right:5px}.tile-three{top:144px}.news,.minimal .news{grid-template-columns:1fr;gap:17px;padding:27px 0}.blue .news,.lilac .news{padding:25px}.news>.text-link{grid-column:1}.news-label{display:flex;align-items:center;justify-content:space-between}.jkl{font-size:36px}.section-heading,.minimal .section-heading{display:block;margin-bottom:28px}.section-heading h2{margin:14px 0}.section-heading>p:last-child{max-width:none}.services{padding:44px 0}.service-grid{grid-template-columns:1fr;gap:24px}.service p{max-width:none}.service h3{margin:12px 0}.sage .service-grid{display:grid;gap:24px}.sage .service,.sage .service:first-child{padding:20px 0 0;border-left:0}.minimal .service{grid-template-columns:30px 1fr;gap:6px 15px}.minimal .service h4,.minimal .service p{grid-column:2}.minimal .service h4{margin-top:9px}.conversation{padding:26px;align-items:start;flex-direction:column}.conversation h2{font-size:29px}footer{grid-template-columns:1fr;padding-bottom:130px;gap:18px}.legal{grid-column:auto}.direction-bar{padding:10px 12px;gap:6px;flex-direction:column}.direction-bar>div{font-size:9px}.direction-bar nav{width:100%;justify-content:center;gap:3px}.direction-bar nav a{font-size:10px;padding:7px 8px}.direction-bar nav a span{font-size:9px}}@media(max-width:370px){.direction-bar nav a span{display:none}.direction-bar nav a{padding-inline:18px}header nav{gap:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Refined Fieldwork direction and manually selected illustration studies. */
.sage{--highlight:#cf5735}
.sage .intro .dot{background:var(--highlight);width:7px;height:7px}
.sage .jkl sup{color:var(--highlight)}
.sage .brand{padding-block:5px}
/* Connections is a decorative force-directed graph with a static SVG fallback. */
.connections-art .force-graph{display:block;width:100%;height:100%}
.focus-areas{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:48px 0;border-bottom:1px solid var(--line)}
.focus-area :is(h2,h3){font-size:28px;line-height:1.3;margin:16px 0;max-width:430px}
.focus-area>p:not(.eyebrow){font-size:14px;max-width:440px}
.focus-area .text-link{display:inline-block;margin-top:22px}
@media(max-width:640px){.focus-areas{grid-template-columns:1fr;gap:36px;padding:36px 0}.focus-area :is(h2,h3){font-size:26px}}

/* Keep the introduction and engagement format secondary to the actual services. */
.sage .intro{grid-template-columns:1.5fr 1fr;gap:48px;padding:36px 0}
.sage h1{font-size:clamp(36px,4vw,50px);letter-spacing:-1.8px;margin:18px 0;line-height:1.15}
.sage .intro .lead{font-size:15px;max-width:470px;line-height:1.7}
.sage .intro .btn{margin-top:20px;min-height:40px;padding-inline:19px}
.sage .connections-art{height:250px;border-radius:125px 125px 4px 4px}
.working-strip{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:28px 0;border-bottom:1px solid var(--line)}
.working-strip h2{font-size:23px;letter-spacing:-.4px;margin-bottom:7px}
.working-strip p{font-size:13px}
.working-strip>.text-link{flex-shrink:0}
.sage footer{padding-top:28px}
@media(max-width:640px){
 .sage .intro{grid-template-columns:1fr;gap:22px;padding:28px 0}
 .sage h1{font-size:36px;margin:14px 0}
 .sage .connections-art{height:160px;border-radius:80px 80px 4px 4px}
 .working-strip{align-items:flex-start;flex-direction:column;gap:16px;padding:24px 0}
 .working-strip h2{font-size:21px}
}

/* IBM Plex and restrained technical-report details. */
.sage.report{--bg:#f8f7f0;--wash:#e9eddf;--line:#cdd3c4;--muted:#586654}
.report .eyebrow,.report .brand-small,.report .direction-bar,.report .legal{font-family:'IBM Plex Mono',monospace}
.report .eyebrow{letter-spacing:1.1px;font-size:10px;font-weight:400}
.report .brand{font-weight:500;letter-spacing:-.6px;font-size:21px}
.report .brand-small{font-size:11px;letter-spacing:1.6px}
.report header{border-bottom-color:var(--ink)}
.report h1{font-weight:400;letter-spacing:-1.6px}
.report h1 em{font-family:'IBM Plex Serif',serif}
.sage.report .report-art{height:250px;border-radius:0;background:var(--wash);border-block:1px solid var(--line)}
.report-art svg{width:100%;height:100%;display:block}
.report .btn.primary{border-radius:2px;font-family:'IBM Plex Mono',monospace;font-size:11px}
.report .focus-areas{gap:34px 64px;padding-top:34px;padding-bottom:34px}
.report .focus-area{border-top:1px solid var(--line);padding-top:14px}
.report .section-index{display:inline-block;margin-right:12px;color:var(--accent)}
.report .focus-area :is(h2,h3){font-size:26px;font-weight:400;letter-spacing:-.5px;margin:12px 0}
.report .focus-area .text-link{margin-top:16px}
.report .working-strip h2{font-size:22px}
@media(max-width:640px){
 .sage.report .report-art{height:170px}
 .report .eyebrow{font-size:9px;letter-spacing:.65px}
 .report .brand{font-size:17px}
 .report .focus-area :is(h2,h3){font-size:24px}
 .report .focus-areas{gap:28px}
}

/* The name is the introduction: one masthead, without a separate navigation row. */
.sage.report .intro{padding-top:48px;padding-bottom:36px}
.sage.report .hero-brand{font-size:clamp(44px,5.4vw,68px);font-weight:400;letter-spacing:-2.6px;line-height:1.02;margin:21px 0}
.hero-brand span{display:block;color:var(--accent)}
@media(max-width:640px){
 .sage.report .intro{padding-top:30px;padding-bottom:28px}
 .sage.report .hero-brand{font-size:clamp(42px,10.8vw,58px);letter-spacing:-1.8px;margin:18px 0}
}

/* Let the geometric figure share the page's paper rather than sit in a panel. */
.sage.report .report-art{background:transparent;border:0}

/* Expansive geometric studies: a background to the whole introduction. */
.sage.report .background-hero{display:block;position:relative;isolation:isolate;padding:48px 0 36px;min-height:380px}
.background-hero .intro-copy{position:relative;z-index:1;max-width:620px}
.hero-geometries{position:absolute;inset:0 -64px;z-index:0;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,transparent 0%,#00000014 28%,#00000070 60%,#000 100%)}
.hero-geometry{position:absolute;inset:0;width:100%;height:100%;opacity:.45}
.hero-geometry[hidden]{display:none}
.geometry-chooser{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:10px 0 14px;font-family:'IBM Plex Mono',monospace;font-size:10px}
.geometry-label{color:var(--muted)}
.geometry-chooser>div{display:flex;flex-wrap:wrap;gap:4px}
.geometry-chooser button{background:transparent;border:1px solid transparent;color:var(--muted);padding:7px 10px;font:inherit;cursor:pointer;min-height:32px}
.geometry-chooser button[aria-pressed="true"]{border-color:var(--line);color:var(--ink);background:var(--wash)}
.geometry-chooser button:hover{border-color:var(--line)}
.geometry-chooser button:focus-visible{outline:2px solid var(--highlight);outline-offset:3px}
@media(max-width:1000px){.hero-geometries{inset-inline:-35px}}
@media(max-width:640px){
 .sage.report .background-hero{padding:32px 0 26px;min-height:0}
 .hero-geometries{inset-inline:-23px;mask-image:linear-gradient(90deg,#00000008,#00000030 55%,#00000090)}
 .hero-geometry{width:160%;left:-20%;opacity:.35}
 .geometry-chooser{align-items:flex-start;flex-direction:column;gap:4px;padding:8px 0 16px}
 .geometry-chooser button{padding:8px 10px}
}

.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}
.sage.report .hero-actions .btn{margin-top:0}
.sage.report .hero-actions .contact-button{background:transparent;color:var(--ink);border-color:var(--line)}
.sage.report .hero-actions .contact-button:hover{background:var(--wash);border-color:var(--ink)}
.working-strip.about-intro{padding:28px 0 36px;border-bottom:1px solid var(--line)}
.about-intro .about-summary{max-width:760px;font-size:15px;line-height:1.7;margin-top:10px}
.about-intro .text-link{display:inline-block;margin-top:22px}
.report #services .focus-areas{padding-top:24px}

/* Keep the project name left-aligned when the news section stacks. */
@media(max-width:640px){
 .news-label{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px}
}
