/* Mattis Elmering — a quiet, content-led visual system. */
:root{--paper:#f7f6f2;--ink:#20322f;--muted:#586660;--line:#ccd2cc;--dark:#152322;--dark-text:#f5f5ed;--dark-muted:#b9c7c0;--accent:#b6d4b8;--green:#365d4b;--shell:1200px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
::selection{background:#c4d5b8;color:#152322}
a{color:inherit;text-decoration:none;text-underline-offset:5px}
button,summary{font:inherit}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-weight:500;line-height:1.12;letter-spacing:-.045em;text-wrap:balance;overflow-wrap:break-word}
h1{font-size:clamp(2.6rem,4.8vw,4.8rem)}
h2{font-size:clamp(2.05rem,3.4vw,3.25rem)}
h3{font-size:clamp(1.45rem,2.3vw,2rem)}
em{font-style:normal}
p{max-width:72ch}
img{display:block;max-width:100%;height:auto}
svg{max-width:100%}
a:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:6px}
main:focus{outline:none}
.container{width:min(calc(100% - 96px),var(--shell));margin-inline:auto}
.container>*{min-width:0}
.skip{position:fixed;z-index:1000;left:20px;top:12px;padding:12px 20px;background:var(--paper);color:var(--ink);transform:translateY(-160%)}
.skip:focus{transform:translateY(0)}
.eyebrow,.small-kicker,.overline,.topic-label{display:block;font-size:12px;line-height:1.5;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.eyebrow{margin-bottom:26px}
.eyebrow>span:empty{display:none}
.topic-label{color:var(--green);margin-bottom:16px}
.section{padding:100px 0}
.section-alt{background:#eaece5}
.text-link,.inline-link{display:inline-flex;align-items:baseline;gap:16px;font-size:15px;font-weight:600;line-height:1.6;text-decoration:underline;text-decoration-color:#879b8b;text-decoration-thickness:1px}
.text-link:hover,.inline-link:hover{text-decoration-thickness:2px}
.text-link span,.inline-link span{flex-shrink:0}
.actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px}
.btn{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;min-height:52px;padding:14px 20px;font-size:15px;line-height:1.5;font-weight:600;border:1px solid transparent;transition:background .15s}
.btn-primary{background:var(--accent);color:var(--dark)}
.btn-primary:hover{background:#d2e4ca}
.btn-outline{border-color:currentColor}
.btn-outline:hover{background:#e5e9e0}
/* Header */
.topbar{position:sticky;top:0;z-index:50;background:var(--dark);color:var(--dark-text);border-bottom:1px solid #3b4943}
.nav-shell{height:88px;display:flex;align-items:center;gap:34px}
.wordmark{display:flex;align-items:center;gap:17px;white-space:nowrap}
.wordmark-icon{font-size:30px;line-height:1;font-weight:750;letter-spacing:-.09em;color:var(--accent)}
.wordmark-name{font-size:15px;font-weight:600;letter-spacing:-.01em}
.navlinks{margin-left:auto;display:flex;align-items:center;gap:28px;height:100%}
.navlinks a{font-size:14px;color:#d1d9d3;position:relative;display:flex;align-items:center;height:100%;white-space:nowrap}
.navlinks a:hover{color:white}
.navlinks a[aria-current]:after{content:"";position:absolute;bottom:19px;height:1px;background:var(--accent);width:100%}
.nav-contact{border-left:1px solid #526159;padding-left:26px;font-size:14px;font-weight:600;display:flex;gap:19px}
.mobile-menu{display:none}
/* Home */
.home-hero{background:var(--dark);color:var(--dark-text)}
.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:75px;align-items:center;padding-top:70px;padding-bottom:60px}
.hero-copy .eyebrow{color:var(--accent);max-width:430px}
.hero-copy h1{font-size:clamp(2.7rem,4.8vw,4.65rem);max-width:690px;line-height:1.07;letter-spacing:-.055em}
.hero-lead{font-size:18px;line-height:1.75;max-width:550px;color:var(--dark-muted);margin-top:28px}
.hero-copy .actions{gap:25px;margin-top:34px}
.hero-copy .text-link{color:var(--dark-text);font-size:14px}
.hero-portrait{align-self:start;max-width:420px;width:100%;margin-left:auto}
.hero-portrait img{width:100%;height:auto;aspect-ratio:4/4.7;object-fit:cover;object-position:50% 28%}
.hero-portrait figcaption{display:flex;flex-direction:column;gap:3px;margin-top:14px;font-size:12px;line-height:1.5;color:var(--dark-muted)}
.hero-portrait figcaption span:first-child{font-size:14px;color:var(--dark-text)}
.hero-index{display:flex;justify-content:space-between;gap:24px;align-items:baseline;padding:22px 0;border-top:1px solid #46534b;font-size:13px;color:var(--dark-muted)}
.hero-index>span{color:var(--accent)}
.hero-index p{display:flex;gap:20px;flex-wrap:wrap}
.hero-index p span{color:#6f8376}
.editorial-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:110px}
.section-label p{font-size:16px;color:var(--muted);margin-top:26px}
.section-label .text-link{margin-top:27px}
.expertise-list article{padding:30px 0;border-top:1px solid var(--line)}
.expertise-list article:first-child{padding-top:0;border:0}
.expertise-list article:last-child{padding-bottom:0}
.expertise-list .topic-label{margin-bottom:10px}
.expertise-list p{font-size:16px;color:var(--muted);margin:15px 0 17px}
.expertise-list h3{font-size:26px;letter-spacing:-.035em}
.work-section{background:#e9ece5}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:45px}
.section-heading>.text-link{flex-shrink:0;margin-bottom:5px}
.featured-work{display:grid;grid-template-columns:1.15fr .85fr;border:1px solid #aab8aa;background:var(--paper)}
.featured-copy{padding:44px}
.featured-copy h3{font-size:clamp(1.8rem,2.7vw,2.8rem);max-width:540px}
.featured-copy p{font-size:16px;color:var(--muted);margin-top:23px}
.featured-link{display:flex;gap:35px;font-size:15px;font-weight:600;margin-top:32px;text-decoration:underline;text-underline-offset:5px}
.featured-work:hover .featured-link{text-decoration-thickness:2px}
.project-diagram{background:#d8e0d1;padding:35px 38px;display:flex;flex-direction:column;justify-content:center}
.diagram-label,.diagram-caption{font-size:12px;line-height:1.5;color:#47604a}
.diagram-label{letter-spacing:.09em;text-transform:uppercase}
.project-diagram ol{list-style:none;padding:0;margin:24px 0}
.project-diagram li{border-top:1px solid #9bae97;padding:17px 0;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.project-diagram li:last-child{border-bottom:1px solid #9bae97}
.project-diagram li>span{font-size:21px;letter-spacing:-.025em}
.project-diagram li small{font-size:12px;text-align:right}
.project-list{border-top:1px solid var(--line)}
.home-work-list{margin-top:33px;border-color:#b8c3b5}
.work-row{display:grid;grid-template-columns:.42fr 1fr 28px;gap:34px;align-items:center;padding:33px 0;border-bottom:1px solid #b8c3b5;transition:background .15s}
.work-row>*{min-width:0}
.work-row h2,.work-row h3,.next-case a{hyphens:auto;overflow-wrap:anywhere}
.work-row:hover{background:#dfe5da}
.work-type{font-size:12px;line-height:1.6;color:#53665b}
.work-row h2,.work-row h3{font-size:clamp(1.45rem,2.2vw,2rem);letter-spacing:-.035em}
.work-row p{font-size:15px;line-height:1.65;color:var(--muted);margin-top:11px;max-width:650px}
.work-arrow{font-size:25px;justify-self:end}
.context-note{font-size:13px;line-height:1.7;color:var(--muted);max-width:780px;margin-top:26px}
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:95px}
.about-copy p{color:var(--muted);margin-top:22px;font-size:17px}
.about-copy .large-copy{font-size:26px;line-height:1.5;letter-spacing:-.025em;margin-top:0;color:var(--ink)}
/* Interior pages */
.page-hero,.detail-hero,.legal-hero{padding:78px 0 74px;border-bottom:1px solid var(--line)}
.page-hero h1{max-width:970px}
.page-lead{font-size:20px;line-height:1.7;color:var(--muted);max-width:790px;margin-top:28px}
.page-hero-grid{display:grid;grid-template-columns:1.5fr .6fr;gap:100px;align-items:center}
.profile-mini{max-width:300px;margin-left:auto}
.profile-mini img{aspect-ratio:4/4.6;object-fit:cover;object-position:50% 28%}
.body-copy{max-width:750px}
.body-copy h2{margin-bottom:29px}
.body-copy p{font-size:18px;line-height:1.85;color:var(--muted);margin-bottom:23px}
.body-copy p:last-child{margin-bottom:0}
.body-copy blockquote{border-left:2px solid var(--green);padding-left:25px;margin:35px 0;font-size:26px;line-height:1.5}
.sticky-label{align-self:start}
.sticky-label>span{display:block;max-width:290px;color:var(--muted);font-size:15px}
.section-top{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:40px}
.section-top>p{font-size:16px;color:var(--muted);max-width:420px}
.principle-grid,.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}
.principle,.premium-card{padding-top:25px;border-top:1px solid #99aa98}
.principle>span,.premium-card>span{font-size:13px;color:var(--green)}
.principle h3,.premium-card h3{margin-top:20px}
.principle p,.premium-card p{font-size:16px;color:var(--muted);margin-top:18px}
.split-card{display:grid;grid-template-columns:1.4fr 1fr;gap:80px}
.split-card p{margin:25px 0;color:var(--muted)}
.small-panel{border-top:1px solid var(--line)}
.small-panel>span{font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.small-panel p{margin:0;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px}
.career-collection{border-top:1px solid var(--line)}
.career-card{display:grid;grid-template-columns:.4fr 1fr;gap:60px;padding:40px 0;border-bottom:1px solid var(--line)}
.career-date{font-size:14px;color:var(--green);font-weight:600;line-height:1.6}
.career-body h2{font-size:clamp(1.6rem,2.4vw,2.5rem);max-width:740px}
.career-body h3{font-size:17px;font-weight:600;letter-spacing:0;line-height:1.5;margin:14px 0}
.career-body p{font-size:16px;color:var(--muted);max-width:750px}
.career-body .text-link{margin-top:20px}
.skills-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.skills-row>div{padding:22px 0;border-top:1px solid var(--line);font-size:16px}
/* Work detail — navigable long-form text */
.detail-hero{background:#e9ece5}
.back-link{display:inline-block;font-size:14px;text-decoration:underline;margin-bottom:42px}
.detail-hero h1{max-width:1010px}
.detail-stamps{display:flex;gap:10px 25px;flex-wrap:wrap;margin-top:27px;font-size:13px;color:var(--muted)}
.detail-stamps span+span{border-left:1px solid #a8b5a4;padding-left:25px}
.detail-layout{display:grid;grid-template-columns:240px 1fr;gap:90px;align-items:start}
.detail-sidebar{position:sticky;top:125px;display:flex;flex-direction:column;gap:10px}
.detail-sidebar .overline{margin-bottom:15px}
.detail-sidebar>span:not(.overline){font-size:14px;color:var(--muted)}
.detail-sidebar nav{display:flex;flex-direction:column;gap:0;margin-top:20px}
.detail-sidebar nav a{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;text-decoration:underline;text-decoration-color:#9bac9a}
.sidebar-note{font-size:13px;color:var(--muted);line-height:1.7;margin-top:25px}
.detail-content{max-width:780px;min-width:0}
.detail-content article{border-bottom:1px solid var(--line);padding-bottom:40px;margin-bottom:40px;scroll-margin-top:15px}
.detail-content h2{font-size:clamp(1.9rem,3vw,2.75rem);margin-bottom:23px}
.detail-content p{font-size:18px;line-height:1.85;color:var(--muted);margin-top:20px}
.detail-nr{font-size:12px;color:var(--green);display:block;margin-bottom:18px}
.detail-content ul{padding-left:22px;color:var(--muted);line-height:1.85}
.disclosure{border-left:2px solid #82977c;padding:0 0 0 24px}
.disclosure strong{font-size:14px;font-weight:600}
.disclosure p{font-size:14px;line-height:1.75;margin-top:10px}
.next-case{background:#e9ece5;padding:48px 0}
.next-case a{display:flex;gap:40px;justify-content:space-between;align-items:baseline;font-size:clamp(1.6rem,2.7vw,2.7rem);line-height:1.3;letter-spacing:-.035em;margin-top:14px}
.next-case a:hover{text-decoration:underline}
.next-case a>span{flex-shrink:0}
/* Collaboration */
.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px 60px}
.service-card{border-top:1px solid #aab8a6;padding-top:24px}
.service-card>span{font-size:12px;color:var(--green);text-transform:uppercase;letter-spacing:.07em}
.service-card h3{margin-top:18px;font-size:29px}
.service-card p{font-size:17px;color:var(--muted);margin-top:18px}
.service-card a{margin-top:20px}
.service-card .text-link{display:flex;width:fit-content}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.steps article{padding-top:25px;border-top:1px solid #a7b4a1}
.steps article>span{font-size:13px;color:var(--green)}
.steps h3{margin-top:20px}
.steps p{margin-top:18px;font-size:16px;color:var(--muted)}
/* One clear contact section */
.footer{background:var(--dark);color:var(--dark-text)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:95px;padding-top:80px;padding-bottom:76px}
.contact-grid .eyebrow{color:var(--accent)}
.contact-copy>p{font-size:17px;color:var(--dark-muted);max-width:590px}
.contact-mail{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #8a9d87;padding-bottom:14px;font-size:clamp(1.25rem,2.3vw,1.9rem);line-height:1.5;letter-spacing:-.025em;margin-top:27px;overflow-wrap:anywhere}
.contact-mail:hover{color:var(--accent)}
.contact-copy .contact-hint{font-size:13px;margin-top:18px;color:#a4b5a8}
.footer-bottom{display:flex;align-items:center;gap:28px;border-top:1px solid #45564b;padding-top:28px;padding-bottom:28px;font-size:12px}
.footer-brand{font-size:24px;font-weight:700;letter-spacing:-.08em;display:flex;align-items:center;gap:17px;color:var(--accent)}
.footer-brand span{font-size:13px;letter-spacing:0;font-weight:500;color:var(--dark-text)}
.footer-copyright{color:var(--dark-muted)}
.footer-bottom nav{margin-left:auto;display:flex;gap:24px}
.footer-bottom nav a,.back-top{padding:8px 0}
.footer-bottom a:hover{text-decoration:underline}
.back-top{margin-left:28px}
/* Legal text retains its full existing content. */
.legal-hero h1{margin-bottom:22px}
.legal-hero p{font-size:18px;color:var(--muted)}
.legal-section{padding:65px 0 90px}
.legal-wrap{max-width:900px}
.legal-card h2{font-size:26px;letter-spacing:-.025em;margin:40px 0 16px;line-height:1.3}
.legal-card h2:first-child{margin-top:0}
.legal-card p,.legal-card address{font-size:17px;color:var(--muted);line-height:1.85;font-style:normal;margin:0 0 20px;overflow-wrap:anywhere}
.legal-card a{text-decoration:underline}
.legal-footnote{font-size:13px;color:var(--muted);margin-top:30px}
@media(min-width:1500px){.hero-grid{padding-top:85px;padding-bottom:75px}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}.nav-shell{gap:24px}.navlinks{gap:19px}.wordmark-name{display:none}.hero-grid{gap:45px}.editorial-grid{gap:60px}.about-grid,.contact-grid{gap:65px}.detail-layout{gap:50px;grid-template-columns:200px 1fr}.page-hero-grid{gap:60px}.featured-copy{padding:33px}.project-diagram{padding:30px}.project-diagram li{display:block}.project-diagram li small{display:block;text-align:left;margin-top:5px}}
@media(max-width:820px){.container{width:calc(100% - 48px)}.nav-shell{height:74px}.navlinks,.nav-contact{display:none}.wordmark-name{display:inline}.mobile-menu{display:block;margin-left:auto;position:relative}.mobile-menu summary{cursor:pointer;display:flex;align-items:center;gap:18px;padding:12px 0 12px 16px;list-style:none;font-size:14px}.mobile-menu summary::-webkit-details-marker{display:none}.menu-icon{width:19px;height:9px;border-block:1px solid currentColor}.mobile-menu[open] .menu-icon{height:1px;border-bottom:0}.mobile-menu nav{position:absolute;right:0;top:calc(100% + 14px);display:flex;flex-direction:column;background:var(--dark);border:1px solid #5d6d60;padding:13px 24px;width:min(330px,calc(100vw - 48px));box-shadow:0 15px 30px #13252026}.mobile-menu nav a{font-size:17px;padding:12px 0;border-bottom:1px solid #45584c}.mobile-menu nav a:last-child{border-bottom:0}.mobile-menu nav a[aria-current]{color:var(--accent);text-decoration:underline}.hero-grid{gap:35px;grid-template-columns:1.3fr .85fr;padding-top:50px}.hero-copy h1{font-size:46px}.hero-copy .eyebrow{font-size:11px}.hero-lead{font-size:16px}.hero-copy .actions{gap:20px}.hero-portrait figcaption span:last-child{font-size:11px}.hero-index{display:block}.hero-index p{margin-top:8px;gap:12px}.section{padding:75px 0}.editorial-grid{gap:40px}.section-label h2{font-size:35px}.expertise-list h3{font-size:24px}.section-heading{gap:25px}.featured-work{grid-template-columns:1.1fr .9fr}.featured-copy{padding:28px}.project-diagram{padding:25px}.work-row{grid-template-columns:150px 1fr 22px;gap:24px}.about-grid,.contact-grid{gap:45px}.page-hero,.detail-hero,.legal-hero{padding:60px 0}.page-hero-grid{gap:40px;grid-template-columns:1.3fr .6fr}.page-hero h1{font-size:46px}.page-lead{font-size:18px}.detail-layout{grid-template-columns:1fr;gap:40px}.detail-sidebar{position:static;border-bottom:1px solid var(--line);padding-bottom:30px}.detail-sidebar nav{flex-direction:row;flex-wrap:wrap;gap:20px;margin-top:10px}.detail-sidebar>span:not(.overline){display:none}.detail-sidebar .overline{margin-bottom:0}.detail-sidebar .sidebar-note{margin-top:15px}.career-card{grid-template-columns:150px 1fr;gap:30px}.service-grid{gap:35px}.steps{gap:26px}.footer-bottom{gap:20px;flex-wrap:wrap}.back-top{margin-left:0}.footer-brand span{display:none}}
@media(max-width:600px){.container{width:calc(100% - 40px)}.nav-shell{height:70px}.wordmark-icon{font-size:27px}.wordmark-name{font-size:14px}.hero-grid{grid-template-columns:1fr;padding-top:42px;padding-bottom:32px;gap:35px}.hero-copy h1{font-size:clamp(2.55rem,9.8vw,3.65rem);max-width:530px}.hero-copy .eyebrow{font-size:11px;max-width:310px;margin-bottom:24px}.hero-lead{font-size:17px;margin-top:23px;line-height:1.7}.hero-copy .actions{margin-top:27px;gap:21px}.hero-copy .btn{font-size:14px}.hero-portrait{margin:0;max-width:100%;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end}.hero-portrait img{aspect-ratio:4/4.3;object-position:50% 25%}.hero-portrait figcaption{margin:0 0 3px;gap:8px;max-width:175px}.hero-portrait figcaption span:last-child{font-size:12px;line-height:1.65}.hero-index{font-size:12px;padding:18px 0 22px}.hero-index p{display:block;line-height:1.9}.hero-index p span{padding:0 6px}.section{padding:60px 0}.eyebrow{font-size:11px;margin-bottom:22px}h2{font-size:35px}h3{font-size:26px}.editorial-grid,.about-grid,.contact-grid,.split-card{grid-template-columns:1fr;gap:34px}.section-label h2{max-width:390px}.section-label p{margin-top:22px}.section-label .text-link{margin-top:20px}.expertise-list article:first-child{padding-top:28px;border-top:1px solid var(--line)}.expertise-list h3{font-size:25px}.expertise-list .topic-label{font-size:11px}.inline-link{font-size:14px}.section-heading,.section-top{display:block;margin-bottom:30px}.section-heading>.text-link{margin-top:23px}.section-heading h2 br{display:none}.section-top>p{margin-top:22px}.featured-work{grid-template-columns:1fr}.featured-copy{padding:28px 24px}.featured-copy h3{font-size:30px}.featured-copy p{font-size:16px}.project-diagram{padding:26px 24px}.project-diagram li{display:flex;padding:13px 0}.project-diagram li>span{font-size:19px}.project-diagram li small{font-size:11px;text-align:right}.project-diagram ol{margin:18px 0}.work-row{grid-template-columns:1fr 25px;gap:13px 20px;padding:27px 0}.work-type{grid-column:1/-1;font-size:12px}.work-row h2,.work-row h3{font-size:25px}.work-row p{font-size:15px}.work-arrow{align-self:start}.home-work-list{margin-top:8px}.context-note{font-size:12px;margin-top:22px}.about-copy .large-copy{font-size:23px}.about-copy p{font-size:16px}.about-copy .actions{gap:27px}.page-hero,.detail-hero,.legal-hero{padding:43px 0 45px}.page-hero h1,.detail-hero h1,.legal-hero h1{font-size:clamp(2.3rem,9vw,3.4rem);hyphens:auto}.page-lead{font-size:18px;margin-top:23px}.page-hero-grid{grid-template-columns:1fr;gap:30px}.profile-mini{margin:0;max-width:190px}.profile-mini img{aspect-ratio:1/1}.body-copy p{font-size:17px;line-height:1.8}.principle-grid,.three-col,.steps,.service-grid,.skills-row{grid-template-columns:1fr;gap:28px}.principle h3{margin-top:12px}.career-card{grid-template-columns:1fr;gap:14px;padding:30px 0}.career-body h2{font-size:28px;hyphens:auto}.career-body h3{font-size:16px}.career-date{font-size:13px}.detail-stamps{font-size:12px;gap:10px 15px}.detail-stamps span+span{padding-left:15px}.back-link{margin-bottom:31px}.detail-sidebar nav{gap:12px 22px}.detail-sidebar nav a{font-size:13px}.detail-content h2{font-size:30px}.detail-content p{font-size:17px;line-height:1.8}.detail-content article{padding-bottom:30px;margin-bottom:30px}.disclosure{padding-left:18px}.disclosure p{font-size:14px}.next-case{padding:35px 0}.next-case a{font-size:26px;gap:22px}.service-card h3{font-size:27px}.service-card p{font-size:16px}.contact-grid{padding-top:54px;padding-bottom:45px;gap:27px}.contact-grid h2 br{display:none}.contact-copy>p{font-size:16px}.contact-mail{font-size:clamp(1.12rem,5.2vw,1.65rem);margin-top:23px}.contact-copy .contact-hint{font-size:12px}.footer-bottom{padding:22px 0;gap:10px 25px}.footer-brand span{display:inline}.footer-copyright{margin-left:auto}.footer-bottom nav{margin:0;gap:23px}.back-top{margin-left:auto}.legal-section{padding:40px 0 60px}.legal-card h2{font-size:23px}.legal-card p,.legal-card address{font-size:16px}}
@media(max-width:360px){.container{width:calc(100% - 32px)}.wordmark{gap:12px}.wordmark-name{font-size:13px}.hero-copy h1{font-size:38px}.hero-copy .btn{gap:20px;padding:13px 15px}.hero-portrait{gap:15px}.project-diagram li{display:block}.project-diagram li small{text-align:left}.detail-stamps span+span{border:0;padding:0}.footer-brand span{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Guided topics: one subject, one visual, one next step. */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
button:focus-visible,[role=tabpanel]:focus-visible{outline:3px solid var(--green);outline-offset:5px}
.focus-section,.needs-section{padding:88px 0 76px}
.focus-intro{margin-bottom:38px;max-width:850px}
.focus-intro .eyebrow{margin-bottom:17px;color:var(--green)}
.focus-intro h2{font-size:clamp(2.2rem,4vw,3.6rem)}
.focus-intro>p:last-child{font-size:18px;color:var(--muted);margin-top:18px}
.guide{--guide-progress:33.33%;scroll-margin-top:110px}
.guide-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-bottom:0;background:#eeefe9}
.guide-tab{display:flex;gap:17px;align-items:center;padding:25px 24px;min-height:102px;position:relative;transition:background .18s,color .18s;font-size:20px;font-weight:500;letter-spacing:-.025em;line-height:1.35}
.guide-tab+.guide-tab{border-left:1px solid var(--line)}
.guide-tab small{display:block;font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0;margin-top:7px}
.tab-number{font-size:12px;font-weight:400;color:var(--muted);align-self:flex-start;padding-top:4px;letter-spacing:0}
.tab-cue{margin-left:auto;font-size:20px;color:var(--green)}
.guide-tab:hover{background:#dfe6da}
.guide-tab[aria-selected=true]{background:var(--dark);color:var(--dark-text)}
.guide-tab[aria-selected=true] small,.guide-tab[aria-selected=true] .tab-number,.guide-tab[aria-selected=true] .tab-cue{color:var(--accent)}
.guide-tab[aria-selected=true]:after{content:"";position:absolute;bottom:0;height:3px;left:24px;right:24px;background:var(--accent)}
.guide-tab:focus-visible{outline-offset:-6px;z-index:1}
.guide-stage{border:1px solid var(--line);background:#fbfbf7;touch-action:pan-y}
.guide-panel{scroll-margin-top:115px}
.guide-panel+.guide-panel{border-top:1px solid var(--line)}
.guide[data-enhanced] .guide-panel{border-top:0}
.focus-slide{display:grid;grid-template-columns:1.1fr 1fr;min-height:480px}
.focus-copy{display:flex;flex-direction:column;align-items:flex-start;padding:44px 46px}
.focus-copy h3{font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.16;max-width:470px}
.focus-copy>p{font-size:17px;line-height:1.75;color:var(--muted);margin-top:24px;max-width:450px}
.evidence-link{display:flex;align-items:center;gap:24px;width:100%;margin-top:auto;padding-top:34px;font-size:12px;color:var(--muted)}
.evidence-link strong{display:block;color:var(--ink);font-size:16px;line-height:1.5;font-weight:600;margin-top:7px;text-decoration:underline;text-decoration-color:#9baa99;text-underline-offset:5px}
.evidence-link>span:last-child{color:var(--green);font-size:26px;margin-left:auto}
.evidence-link:hover strong{text-decoration-thickness:2px}
.guide-visual{display:flex;flex-direction:column;padding:36px 38px;background:var(--dark);color:var(--dark-text);margin:15px 15px 15px 0;overflow:hidden;min-width:0}
.visual-caption{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);line-height:1.6}
.visual-footnote{font-size:12px;line-height:1.6;color:var(--dark-muted);margin-top:auto;padding-top:24px}
.measure-path{list-style:none;margin:28px 0 0;padding:0}
.measure-path li{display:grid;grid-template-columns:25px 1fr;position:relative;padding:0 0 19px;gap:0 12px}
.measure-path li:last-child{padding-bottom:0}
.measure-path strong{font-size:21px;font-weight:500;line-height:1.3;letter-spacing:-.025em}
.measure-path li>span:last-child{grid-column:2;font-size:13px;color:var(--dark-muted);margin-top:3px}
.path-dot{width:9px;height:9px;border:1px solid var(--accent);border-radius:50%;margin-top:9px;position:relative;z-index:1;background:var(--dark)}
.measure-path li:not(:last-child):after{content:"";position:absolute;width:1px;left:4px;top:18px;bottom:-9px;background:#52695e}
.measure-path li:last-child .path-dot{background:var(--accent)}
.risk-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:45px}
.risk-inputs>div{border-top:1px solid #637d6d;padding-top:13px}
.risk-inputs span{font-size:10px;color:var(--dark-muted);display:block;line-height:1.5}
.risk-inputs strong{font-size:14px;font-weight:500;line-height:1.4;display:block;margin-top:7px}
.decision-line{display:grid;grid-template-columns:repeat(3,1fr);height:40px;margin:18px 16% 0;border-bottom:1px solid #617b6c}
.decision-line span{border-left:1px solid #617b6c}
.decision-line span:nth-child(2){border-left:0;border-right:1px solid #617b6c;width:50%}
.decision-line span:last-child{border-left:0;border-right:1px solid #617b6c}
.risk-result{text-align:center;display:flex;flex-direction:column;align-items:center}
.result-mark{font-size:21px;color:var(--accent);line-height:1.5}
.risk-result strong{font-size:25px;letter-spacing:-.035em;font-weight:500;margin-top:4px}
.risk-result>span:last-child{font-size:12px;color:var(--dark-muted);margin-top:7px}
.monitor-sources,.monitor-output{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:center}
.monitor-sources{margin-top:28px}
.monitor-sources span,.monitor-output span{padding:10px 6px;border:1px solid #526b5e;font-size:12px;line-height:1.4}
.signal-line{height:24px;width:1px;background:#657f6e;margin:0 auto}
.monitor-core{display:flex;flex-direction:column;align-items:center;border:1px solid #9bb79d;padding:12px 8px 17px;background:#20362e}
.monitor-core svg{width:40px;height:40px;color:var(--accent)}
.monitor-core strong{font-size:27px;font-weight:500;letter-spacing:.02em}
.monitor-core>span{font-size:12px;color:var(--dark-muted);text-align:center}
.guide-controls{display:flex;align-items:center;gap:28px;padding:20px 0 0}
.guide-counter{display:flex;gap:10px;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.guide-counter b{font-weight:600}.guide-counter>span{color:var(--muted)}
.guide-progress{height:2px;background:#d7ddd3;flex:1;max-width:220px;overflow:hidden}
.guide-progress>span{display:block;height:100%;width:var(--guide-progress);background:var(--green);transition:width .25s ease}
.guide-arrows{display:flex;gap:10px;margin-left:auto}
.guide-arrows button{display:flex;align-items:center;justify-content:center;gap:30px;min-width:48px;min-height:48px;padding:9px 15px;border:1px solid #a9b7a7;background:transparent;color:var(--ink);font-size:14px;cursor:pointer;transition:background .18s}
.guide-arrows button:hover{background:#e0e8d9}
.guide-arrows button>span:last-child{font-size:22px;line-height:1}
.focus-outro{margin-top:30px;padding-top:25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;align-items:baseline}
.focus-outro p,.scope-note{font-size:13px;color:var(--muted)}
.background-section{padding:76px 0 82px;background:#e7ece2}
.background-section .container{max-width:1000px}
.background-section .eyebrow{color:var(--green)}
.background-section h2{max-width:850px}
.background-path{display:flex;gap:23px;align-items:center;flex-wrap:wrap;margin:36px 0 25px;font-size:17px;font-weight:500}
.path-arrow{color:#688468}
.background-section p:not(.eyebrow){font-size:17px;max-width:630px;color:var(--muted)}
.background-section .text-link{margin-top:25px}
/* Choose an assignment, then expand the first steps. */
.collaboration-hero{background:#e7ece2;padding:65px 0}
.collaboration-hero .page-lead{max-width:660px}
.collaboration-hero .text-link{margin-top:24px}
.needs-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.needs-tabs .guide-tab{font-size:18px;padding:22px 20px;gap:10px}
.needs-tabs .guide-tab small{font-size:12px}
.scope-slide{display:grid;grid-template-columns:1.12fr 1fr;min-height:460px}
.scope-copy{padding:40px 44px;display:flex;align-items:flex-start;flex-direction:column}
.scope-copy h3{font-size:clamp(1.9rem,3vw,2.6rem);max-width:480px}
.scope-copy>p{font-size:17px;line-height:1.75;color:var(--muted);margin-top:23px;margin-bottom:26px}
.scope-copy .text-link{margin-top:auto;font-size:14px}
.scope-copy .text-link+.text-link{margin-top:12px}
.scope-plan{padding:38px;margin:15px 15px 15px 0;background:#e7ece2;display:flex;flex-direction:column;align-items:flex-start}
.scope-plan ul{list-style:none;counter-reset:scope;padding:0;margin:7px 0 30px;width:100%}
.scope-plan li{counter-increment:scope;border-bottom:1px solid #bfccba;padding:17px 0 17px 31px;position:relative;font-size:17px;line-height:1.55}
.scope-plan li:before{content:"0" counter(scope);position:absolute;left:0;top:21px;font-size:10px;color:var(--green)}
.btn-dark{background:var(--dark);color:var(--dark-text);font-size:14px;margin-top:auto}
.btn-dark:hover{background:#31483b}
.scope-note{margin-top:27px}
.start-section{padding:70px 0 85px;background:#e7ece2}
.start-container{max-width:1000px}
.start-steps{margin-top:35px;border-top:1px solid #aebca6}
.start-steps details{border-bottom:1px solid #aebca6}
.start-steps summary{list-style:none;display:flex;gap:28px;align-items:baseline;padding:25px 0;cursor:pointer;font-size:23px;font-weight:500;letter-spacing:-.025em;line-height:1.4}
.start-steps summary::-webkit-details-marker{display:none}
.step-number{font-size:12px;letter-spacing:0;color:var(--green)}
.detail-toggle{margin-left:auto;font-size:26px;font-weight:300;line-height:1;transition:transform .2s}
.start-steps details[open] .detail-toggle{transform:rotate(45deg)}
.start-steps details>div{padding:0 48px 28px;max-width:750px;font-size:16px;color:var(--muted)}
/* Research is available on demand, alongside the personal contribution. */
.technical-detail{border-top:1px solid var(--line)}
.technical-detail:last-of-type{border-bottom:1px solid var(--line)}
.technical-detail summary{list-style:none;position:relative;padding:21px 32px 21px 0;cursor:pointer;font-size:18px;font-weight:600;line-height:1.5;letter-spacing:-.015em}
.technical-detail summary::-webkit-details-marker{display:none}
.technical-detail summary:after{content:"+";position:absolute;right:3px;font-size:23px;font-weight:400;top:17px}
.technical-detail[open] summary:after{content:"−"}
.detail-content .technical-detail p{font-size:16px;line-height:1.85;margin:0 0 22px}
.detail-content .technical-detail ul{font-size:16px}
.detail-content p,.technical-flow li{overflow-wrap:anywhere;hyphens:auto}
.technical-flow{list-style:none;counter-reset:flow;padding:0;margin:25px 0}
.technical-flow li{counter-increment:flow;position:relative;border-left:1px solid #b4c2ad;padding:0 0 23px 28px;margin-left:9px;line-height:1.65;color:var(--muted);font-size:15px}
.technical-flow li:last-child{padding-bottom:0;border-color:transparent}
.technical-flow li:before{content:counter(flow);position:absolute;left:-10px;top:2px;width:19px;height:19px;border:1px solid #8a9f84;background:var(--paper);color:var(--green);text-align:center;font-size:10px;line-height:17px;border-radius:50%}
.technical-flow strong{display:block;color:var(--ink);font-size:17px;font-weight:600}
.technical-flow span{display:block;margin-top:5px}
.source-note{padding:27px 30px;background:#e9ece5;margin-top:36px;scroll-margin-top:115px}
.detail-content .source-note h2{font-size:23px;margin-bottom:13px;letter-spacing:-.025em}
.detail-content .source-note p{font-size:13px;line-height:1.8;margin-top:10px}
.source-note ul{margin:14px 0 0;padding-left:17px;font-size:13px}
.source-note a{text-decoration:underline;overflow-wrap:anywhere}
@media(max-width:1100px){.guide-tab{padding:23px 18px;font-size:18px;gap:13px}.focus-copy,.scope-copy{padding:36px}.guide-visual{padding:32px 28px}.needs-tabs .guide-tab{font-size:16px;padding:20px 15px}.scope-plan{padding:30px}.focus-slide{min-height:495px}}
@media(max-width:820px){.focus-section,.needs-section{padding:65px 0 60px}.guide-tab{padding:20px 16px;font-size:16px;gap:10px}.guide-tab small{font-size:11px}.tab-cue{display:none}.focus-slide{grid-template-columns:1fr 1fr;min-height:520px}.focus-copy,.scope-copy{padding:30px 25px}.focus-copy h3,.scope-copy h3{font-size:31px}.focus-copy>p,.scope-copy>p{font-size:16px}.guide-visual{padding:28px 23px}.risk-inputs{grid-template-columns:1fr;gap:10px;margin-top:25px}.risk-inputs>div{display:flex;align-items:baseline;gap:15px;padding-top:10px}.risk-inputs span{flex:1}.risk-inputs strong{flex:1;font-size:13px;margin:0}.decision-line{display:none}.risk-result{margin-top:10px}.risk-result strong{font-size:22px}.monitor-sources,.monitor-output{gap:8px}.monitor-sources span,.monitor-output span{font-size:11px}.needs-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.needs-tabs .guide-tab{font-size:17px;min-height:80px;padding:18px 22px}.needs-tabs .guide-tab:nth-child(3){border-left:0;border-top:1px solid var(--line)}.needs-tabs .guide-tab:nth-child(4){border-top:1px solid var(--line)}.scope-slide{min-height:475px}.scope-plan{padding:25px}.scope-plan li{font-size:16px}.scope-plan .btn{gap:16px;padding:12px;font-size:13px}.background-section{padding:60px 0}.background-path{gap:15px;font-size:16px}.start-section{padding:60px 0}.focus-outro{align-items:flex-start}.focus-outro p{max-width:310px}.focus-outro .text-link{font-size:14px}}
@media(max-width:600px){.focus-section,.needs-section{padding:52px 0}.focus-intro{margin-bottom:27px}.focus-intro h2{font-size:36px}.focus-intro>p:last-child{font-size:16px;max-width:310px;margin-top:15px}.focus-intro .eyebrow{margin-bottom:14px}.focus-guide .guide-tab{flex-direction:column;gap:8px;align-items:flex-start;justify-content:center;min-height:80px;padding:13px 10px;font-size:14px}.focus-guide .guide-tab small{display:none}.tab-number{padding:0;font-size:10px}.guide-tab[aria-selected=true]:after{left:10px;right:10px}.focus-slide,.scope-slide{grid-template-columns:1fr;min-height:0}.focus-copy,.scope-copy{padding:27px 24px 29px;min-height:365px}.focus-copy h3,.scope-copy h3{font-size:31px;max-width:440px}.focus-copy .topic-label,.scope-copy .topic-label{font-size:10px;margin-bottom:15px}.focus-copy>p,.scope-copy>p{font-size:16px;line-height:1.75;margin-top:18px}.evidence-link{padding-top:27px;font-size:11px;gap:16px}.evidence-link strong{font-size:15px}.guide-visual{margin:0 12px 12px;padding:25px 24px;min-height:315px}.measure-path{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:21px 14px}.measure-path li{grid-template-columns:12px 1fr;gap:0 5px;padding:0}.measure-path li:after{display:none}.measure-path strong{font-size:19px}.measure-path li>span:last-child{font-size:11px}.path-dot{width:6px;height:6px;margin-top:8px}.visual-caption{font-size:10px}.visual-footnote{font-size:11px;padding-top:22px}.risk-inputs{margin-top:20px;gap:8px}.risk-inputs>div{padding-top:8px}.risk-result{margin-top:4px}.risk-result strong{font-size:22px}.risk-result>span:last-child{font-size:11px;margin-top:2px}.result-mark{font-size:17px}.risk-visual .visual-footnote{padding-top:16px}.monitor-sources{margin-top:22px}.monitor-sources span,.monitor-output span{font-size:12px;padding:8px}.monitor-core{padding:8px 7px 12px}.monitor-core svg{width:28px;height:28px}.monitor-core strong{font-size:24px}.monitor-core>span{font-size:11px}.signal-line{height:15px}.guide-controls{gap:18px;padding-top:16px}.guide-progress{max-width:100px}.guide-arrows{gap:8px}.guide-arrows button{min-width:44px;min-height:44px;padding:8px 13px;gap:18px;font-size:13px}.guide-counter{font-size:12px;gap:7px}.focus-outro{display:block;margin-top:25px;padding-top:20px}.focus-outro p{max-width:100%}.focus-outro .text-link{margin-top:14px}.background-section{padding:52px 0}.background-section h2{font-size:34px}.background-section h2 br{display:none}.background-path{display:grid;grid-template-columns:1fr;gap:5px;margin:25px 0;font-size:17px}.background-path .path-arrow{line-height:1;font-size:18px;transform:rotate(90deg);justify-self:start;margin-left:4px}.background-section p:not(.eyebrow){font-size:16px}.collaboration-hero{padding:43px 0}.needs-tabs .guide-tab{font-size:15px;min-height:80px;padding:15px 13px}.needs-tabs .guide-tab small{font-size:11px}.scope-copy{min-height:370px}.scope-plan{margin:0 12px 12px;padding:26px 23px;min-height:325px}.scope-plan li{padding:15px 0 15px 29px;font-size:16px}.scope-plan li:before{top:19px}.scope-plan .btn{padding:13px 17px;font-size:13px;gap:20px}.scope-plan ul{margin-bottom:24px}.scope-note{font-size:12px;margin-top:22px}.start-section{padding:50px 0 60px}.start-section h2{font-size:34px}.start-steps{margin-top:28px}.start-steps summary{font-size:19px;gap:17px;padding:23px 0}.start-steps details>div{padding:0 0 25px 32px;font-size:15px}.step-number{font-size:10px}.detail-toggle{font-size:22px}.technical-detail summary{font-size:17px;padding-top:18px;padding-bottom:18px}.detail-content .technical-detail p{font-size:16px}.source-note{padding:22px 20px}.detail-content .source-note h2{font-size:22px}}
@media(max-width:360px){.focus-guide .guide-tab{font-size:12px;padding:12px 8px}.focus-copy,.scope-copy{padding:25px 20px;min-height:390px}.focus-copy h3,.scope-copy h3{font-size:29px}.guide-visual{padding:23px 18px}.guide-controls{gap:13px}.guide-progress{max-width:65px}.guide-arrows button{padding:8px 12px;gap:15px}.needs-tabs .guide-tab{font-size:14px}.needs-tabs .guide-tab small{font-size:10px}.scope-plan{padding:23px 19px}.scope-plan .btn{font-size:12px;padding:12px;gap:13px}}
@media(prefers-reduced-motion:reduce){.guide-progress>span,.guide-tab,.guide-arrows button,.detail-toggle{transition:none}}
/* Portfolio: a selected case with its own technical scene. */
.work-hero{padding:66px 0 42px;background:#e7ece2}
.work-hero .eyebrow{color:var(--green);margin-bottom:20px}
.work-hero h1{font-size:clamp(3rem,5.5vw,5.2rem);line-height:1.02}
.work-hero h1>span{color:#597259}
.work-hero .page-lead{max-width:620px;font-size:18px;margin-top:27px}
.case-section{padding:38px 0 65px;background:linear-gradient(#e7ece2 80px,var(--paper) 80px)}
.case-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.case-tabs .guide-tab{min-height:83px;padding:20px 23px;font-size:18px}
.case-tabs .guide-tab small{font-size:12px;margin-top:4px}
.case-tabs .guide-tab:nth-child(4){border-left:0}
.case-tabs .guide-tab:nth-child(n+4){border-top:1px solid var(--line)}
.case-scene{display:grid;grid-template-columns:1fr 1fr;min-height:565px}
.case-copy{display:flex;flex-direction:column;align-items:flex-start;padding:45px 42px}
.case-context{font-size:12px;color:var(--muted);line-height:1.65;min-height:40px;margin-bottom:18px;max-width:360px}
.case-copy h2{font-size:clamp(2rem,3.3vw,3rem);line-height:1.12}
.case-description{font-size:17px;line-height:1.75;color:var(--muted);margin-top:24px}
.case-tags{display:flex;gap:7px 15px;flex-wrap:wrap;list-style:none;margin:25px 0 32px;padding:0;font-size:11px;color:var(--green)}
.case-tags li{border-bottom:1px solid #c0ccba;padding-bottom:5px}
.case-copy .btn{margin-top:auto;font-size:14px;gap:24px;max-width:100%}
.case-board{margin:15px 15px 15px 0;padding:32px 34px;background:var(--dark);color:var(--dark-text);display:flex;flex-direction:column;min-width:0}
.case-board .visual-caption{font-size:10px}
.case-diagram{flex:1;display:flex;flex-direction:column;justify-content:center;padding-top:25px}
.case-input{font-size:14px;border:1px solid #597461;text-align:center;padding:13px 10px;line-height:1.6}
.case-connector{width:1px;height:25px;background:#789780;align-self:center;flex-shrink:0}
.architecture-stack{display:flex;flex-direction:column;border:1px solid #739177}
.architecture-stack>div{display:grid;grid-template-columns:26px 1fr 1fr;gap:12px;align-items:center;padding:18px 20px}
.architecture-stack>div+div{border-top:1px solid #4b6355}
.architecture-stack>div>span{font-size:10px;color:var(--accent)}
.architecture-stack strong{font-size:22px;letter-spacing:-.025em;font-weight:500}
.architecture-stack small{color:var(--dark-muted);text-align:right;font-size:11px;line-height:1.5}
.case-result{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #4e6858;margin-top:25px;padding-top:16px}
.case-result>span{max-width:150px;font-size:12px;color:var(--dark-muted)}
.case-result strong{font-size:55px;font-weight:400;letter-spacing:-.06em;color:var(--accent);line-height:1}
.case-triad,.report-sources{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;text-align:center}
.case-triad>span,.report-sources>span{border:1px solid #536e5c;padding:15px 4px;font-size:12px}
.case-focus{padding:22px 12px;border:1px solid #86a58a;background:#20362e;text-align:center;display:flex;flex-direction:column;align-items:center;gap:11px}
.case-focus>span{font-size:11px;color:var(--accent)}
.case-focus>strong{font-size:30px;font-weight:500;line-height:1.2;letter-spacing:-.035em}
.case-focus>small{font-size:12px;color:var(--dark-muted)}
.case-board-note{font-size:12px;color:var(--dark-muted);line-height:1.6;margin-top:23px;max-width:370px}
.case-process{list-style:none;margin:0;padding:0}
.case-process li{display:flex;gap:22px;padding:22px 0;border-bottom:1px solid #496451}
.case-process li:first-child{padding-top:0}
.case-process li:last-child{border:0;padding-bottom:0}
.case-process li>span{font-size:11px;color:var(--accent);padding-top:4px}
.case-process strong{display:block;font-size:24px;font-weight:500;letter-spacing:-.025em;line-height:1.2}
.case-process small{display:block;font-size:12px;color:var(--dark-muted);margin-top:7px}
.report-output{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;border-block:1px solid #536e5c;padding:22px 12px}
.report-output strong{color:var(--accent);font-size:19px;font-weight:500}
.lifecycle-core{width:220px;height:220px;border:1px solid #8dad8d;border-radius:50%;align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;position:relative}
.lifecycle-core:after{content:"";position:absolute;inset:10px;border:1px solid #3e5948;border-radius:50%}
.lifecycle-core>span{text-align:center;font-size:12px;line-height:1.5;color:var(--dark-muted)}
.lifecycle-core>strong{font-size:42px;letter-spacing:-.04em;font-weight:400;color:var(--accent)}
.lifecycle-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:33px;border-top:1px solid #6a866e}
.lifecycle-stages>div{padding-top:15px;position:relative}
.lifecycle-stages>div:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);position:absolute;top:-3px;left:0}
.lifecycle-stages span{display:block;font-size:10px;color:var(--dark-muted)}
.lifecycle-stages strong{font-size:13px;font-weight:500;display:block;margin-top:5px}
.portfolio-note{font-size:13px;color:var(--muted);margin-top:28px;max-width:750px}
.next-step-band{padding:63px 0;background:#e7ece2}
.next-step-band>.container{display:flex;align-items:center;justify-content:space-between;gap:50px}
.next-step-band h2{font-size:38px;line-height:1.16}
.next-step-band .eyebrow{margin-bottom:19px;color:var(--green)}
.next-step-band .text-link{flex-shrink:0}
/* Portrait and three expandable perspectives. */
.portrait-hero{background:var(--dark);color:var(--dark-text);padding:62px 0 65px}
.portrait-grid{display:grid;grid-template-columns:.83fr 1.17fr;gap:100px;align-items:center}
.portrait-frame{position:relative;padding-left:18px;padding-bottom:18px;border-left:1px solid #667b68;border-bottom:1px solid #667b68}
.portrait-frame img{width:100%;aspect-ratio:4/4.65;object-fit:cover;object-position:50% 28%}
.portrait-frame figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:17px;font-size:12px;color:var(--dark-muted)}
.portrait-frame figcaption>span:first-child{color:var(--dark-text)}
.portrait-intro .eyebrow{color:var(--accent)}
.portrait-intro h1{font-size:clamp(2.8rem,5vw,4.8rem);line-height:1.04;letter-spacing:-.055em}
.portrait-intro>p:not(.eyebrow){font-size:19px;color:var(--dark-muted);line-height:1.85;max-width:520px;margin-top:29px}
.portrait-intro>.text-link{margin-top:27px}
.portrait-credentials{display:flex;flex-direction:column;gap:10px;border-top:1px solid #526452;padding-top:23px;margin-top:36px;font-size:13px;color:var(--accent)}
.portrait-credentials>span:before{content:"↳";margin-right:13px;color:#88a58b}
.perspectives-section{padding:88px 0 80px}
.perspectives-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;align-items:start}
.perspectives-intro{position:sticky;top:130px}
.perspectives-intro .eyebrow{color:var(--green)}
.perspectives-intro h2{font-size:43px;max-width:450px}
.perspectives-intro>p:not(.eyebrow){font-size:18px;color:var(--muted);line-height:1.8;max-width:350px;margin-top:27px}
.perspectives-hint{display:flex;justify-content:space-between;gap:25px;font-size:12px;color:var(--green);margin-top:30px;max-width:310px;border-top:1px solid var(--line);padding-top:17px}
.perspectives-hint>span{font-size:20px}
.perspective-list{border-top:1px solid #aabb9f}
.perspective-list details{border-bottom:1px solid #aabb9f}
.perspective-list summary{display:flex;align-items:baseline;gap:20px;list-style:none;cursor:pointer;padding:27px 0;font-size:22px;line-height:1.35;letter-spacing:-.025em;font-weight:500}
.perspective-list summary::-webkit-details-marker{display:none}
.perspective-number{font-size:11px;color:var(--green);letter-spacing:0}
.perspective-list summary small{display:block;font-size:13px;letter-spacing:0;color:var(--muted);font-weight:400;margin-top:7px}
.perspective-list details[open] summary{color:var(--green)}
.perspective-list details[open] .detail-toggle{transform:rotate(45deg)}
.perspective-body{padding:0 0 30px 34px}
.perspective-body h3{font-size:28px;line-height:1.2;max-width:530px}
.perspective-body>p{font-size:16px;line-height:1.85;color:var(--muted);margin-top:20px}
.perspective-evidence{border-left:2px solid #8da485;padding:0 0 0 23px;margin-top:27px}
.perspective-evidence>span{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--green)}
.perspective-evidence p{font-size:15px;color:var(--muted);line-height:1.8;margin-top:9px}
.perspective-evidence .text-link{font-size:14px;margin-top:15px}
/* A chronological route that opens at the present day. */
.journey-hero{background:#e7ece2;padding:64px 0 54px}
.journey-hero h1{font-size:clamp(2.6rem,4.8vw,4.5rem);max-width:1000px}
.journey-hero .page-lead{max-width:680px;font-size:18px}
.journey-section{padding:50px 0 70px}
.journey-intro{display:flex;align-items:baseline;justify-content:space-between;gap:35px;margin-bottom:31px}
.journey-intro .eyebrow{margin:0;color:var(--green)}
.journey-intro>p:last-child{font-size:15px;color:var(--muted)}
.journey-tabs{grid-template-columns:repeat(5,minmax(0,1fr));border:0;background:transparent;gap:0;padding-bottom:0}
.journey-tabs .guide-tab{display:flex;align-items:flex-start;flex-direction:column;gap:16px;min-height:135px;padding:17px 19px 27px;border:0;position:relative;font-size:18px;background:transparent}
.journey-tabs .guide-tab:before{content:"";height:1px;position:absolute;left:0;right:0;bottom:10px;background:#b7c6b0}
.journey-tabs .guide-tab:after{content:"";position:absolute;left:19px;bottom:6px;width:9px;height:9px;border-radius:50%;border:1px solid #849c7c;background:var(--paper)}
.journey-tabs .guide-tab[aria-selected=true]{background:#e7ece2;color:var(--ink)}
.journey-tabs .guide-tab[aria-selected=true]:after{background:var(--green);height:9px;right:auto;box-shadow:0 0 0 5px #e7ece2}
.journey-tabs .guide-tab[aria-selected=true] small{color:var(--green)}
.journey-tabs .guide-tab small{font-size:11px;margin-top:5px}
.journey-tabs .tab-cue{display:none}
.journey-tab-year{font-size:12px;color:var(--green);font-variant-numeric:tabular-nums;letter-spacing:0}
.journey-tabs .guide-tab:hover{background:#edf0e7}
.journey-scene{display:grid;grid-template-columns:.76fr 1.24fr;min-height:565px}
.journey-context{margin:15px 0 15px 15px;background:var(--dark);color:var(--dark-text);padding:35px 38px;display:flex;flex-direction:column}
.journey-context .topic-label{color:var(--accent);font-size:10px}
.journey-year{font-size:105px;line-height:.95;letter-spacing:-.075em;font-weight:400;color:var(--accent);margin-top:36px;font-variant-numeric:tabular-nums}
.journey-year>span{display:block;font-size:39px;line-height:1.25;margin-top:8px;letter-spacing:-.04em;color:var(--dark-text)}
.journey-period{font-size:12px;line-height:1.7;margin-top:23px;color:var(--dark-muted)}
.journey-context-copy{margin-top:auto;padding-top:40px;font-size:23px;line-height:1.35;letter-spacing:-.025em}
.journey-copy{display:flex;flex-direction:column;align-items:flex-start;padding:42px 45px}
.journey-copy h2{font-size:37px;line-height:1.14;max-width:620px}
.journey-copy h3{font-size:17px;font-weight:500;letter-spacing:0;line-height:1.5;margin-top:16px;color:var(--green)}
.journey-copy>p{font-size:16px;line-height:1.8;color:var(--muted);margin-top:23px}
.journey-takeaway{margin-top:26px;border-top:1px solid var(--line);padding-top:20px}
.journey-takeaway>span{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--green)}
.journey-takeaway p{font-size:15px;line-height:1.75;margin-top:9px;color:var(--muted)}
.journey-copy .text-link{font-size:14px;margin-top:auto;padding-top:26px}
.parallel-note{font-size:13px;line-height:1.75;color:var(--muted);margin-top:28px;max-width:780px;display:flex;gap:20px}
.parallel-note>span{color:var(--green);font-size:22px}
@media(max-width:1100px){.portrait-grid{gap:65px}.case-copy{padding:37px 30px}.case-board{padding:30px 26px}.case-scene{min-height:585px}.architecture-stack>div{padding:16px 13px;gap:8px}.architecture-stack strong{font-size:20px}.journey-copy{padding:36px}.journey-context{padding:32px}.journey-year{font-size:90px}.journey-copy h2{font-size:34px}.journey-scene{min-height:590px}.perspectives-grid{gap:45px}.perspectives-intro h2{font-size:37px}}
@media(max-width:820px){.work-hero{padding:50px 0 35px}.work-hero h1{font-size:58px}.case-tabs .guide-tab{font-size:16px;padding:17px 16px;gap:12px}.case-tabs .guide-tab small{font-size:10px}.case-scene{min-height:610px}.case-copy{padding:30px 25px}.case-copy h2{font-size:34px}.case-description{font-size:16px}.case-board{padding:27px 22px}.case-copy .btn{font-size:12px;padding:12px 14px;gap:14px}.case-context{font-size:11px}.architecture-stack>div{grid-template-columns:20px 1fr}.architecture-stack small{grid-column:2;text-align:left}.architecture-stack strong{font-size:23px}.case-triad,.report-sources{gap:7px}.case-triad>span,.report-sources>span{font-size:10px;padding:13px 2px}.case-focus>strong{font-size:25px}.case-process strong{font-size:22px}.case-process li{gap:15px}.report-output{font-size:11px;padding:18px 5px;gap:5px}.report-output strong{font-size:15px}.lifecycle-core{width:185px;height:185px}.lifecycle-stages strong{font-size:10px}.portrait-hero{padding:50px 0}.portrait-grid{gap:40px;grid-template-columns:.9fr 1.1fr}.portrait-intro h1{font-size:47px}.portrait-intro>p:not(.eyebrow){font-size:17px;line-height:1.8}.portrait-credentials{font-size:11px;margin-top:27px}.portrait-frame{padding-left:12px;padding-bottom:12px}.portrait-frame figcaption{flex-direction:column;gap:3px;font-size:11px}.perspectives-section{padding:65px 0}.perspectives-grid{grid-template-columns:1fr;gap:35px}.perspectives-intro{position:static}.perspectives-intro h2{max-width:650px}.perspectives-intro h2 br{display:none}.perspectives-intro>p:not(.eyebrow){max-width:560px;font-size:17px;margin-top:20px}.perspectives-hint{margin-top:20px;max-width:none}.perspective-body{max-width:650px}.next-step-band>.container{gap:30px}.next-step-band h2{font-size:32px}.next-step-band .text-link{font-size:13px;flex-shrink:1}.journey-hero{padding:50px 0}.journey-section{padding:40px 0 55px}.journey-intro{display:block;margin-bottom:24px}.journey-intro>p:last-child{margin-top:10px}.journey-tabs .guide-tab{font-size:15px;padding:15px 12px 25px;gap:12px;min-height:125px}.journey-tabs .guide-tab small{font-size:10px}.journey-tab-year{font-size:10px}.journey-tabs .guide-tab:after{left:12px}.journey-scene{grid-template-columns:.8fr 1.2fr;min-height:650px}.journey-context{padding:27px 24px}.journey-year{font-size:76px}.journey-year>span{font-size:31px}.journey-copy{padding:30px 27px}.journey-copy h2{font-size:30px}.journey-copy h3{font-size:15px}.journey-copy>p{font-size:15px}.journey-context-copy{font-size:21px}.journey-takeaway p{font-size:14px}.journey-copy .text-link{font-size:13px}}
@media(max-width:600px){.work-hero{padding:42px 0 32px}.work-hero h1{font-size:clamp(2.8rem,13vw,3.8rem)}.work-hero .page-lead{font-size:17px;margin-top:23px}.case-section{padding:24px 0 45px}.case-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.case-tabs .guide-tab{padding:13px 10px;font-size:13px;min-height:79px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;justify-content:center}.case-tabs .guide-tab small{display:none}.case-tabs .tab-number{font-size:9px}.case-scene{grid-template-columns:1fr;min-height:0}.case-copy{padding:26px 24px 29px;min-height:400px}.case-copy h2{font-size:33px;line-height:1.14}.case-context{font-size:11px;min-height:0;margin-bottom:20px}.case-description{font-size:16px;margin-top:20px}.case-tags{margin:20px 0 25px;font-size:10px;gap:6px 12px}.case-copy .btn{font-size:13px;padding:13px 15px}.case-board{margin:0 12px 12px;padding:25px 24px;min-height:395px}.case-board .visual-caption{font-size:9px}.case-diagram{padding-top:22px}.case-input{font-size:12px;padding:11px 8px}.architecture-stack>div{grid-template-columns:20px 1fr 1fr;padding:14px 13px}.architecture-stack strong{font-size:20px}.architecture-stack small{grid-column:auto;text-align:right;font-size:10px}.case-result strong{font-size:47px}.case-result>span{font-size:11px}.case-result{margin-top:22px;padding-top:15px}.case-triad>span,.report-sources>span{font-size:10px}.case-focus>strong{font-size:26px}.case-focus{padding:20px 10px}.case-process li{padding:19px 0}.case-process strong{font-size:22px}.case-process small{font-size:11px}.case-board-note{font-size:11px}.lifecycle-core{width:190px;height:190px}.lifecycle-stages strong{font-size:11px}.report-output{font-size:12px}.report-output strong{font-size:17px}.portfolio-note{font-size:12px;margin-top:24px}.next-step-band{padding:45px 0}.next-step-band>.container{display:block}.next-step-band h2{font-size:32px}.next-step-band .text-link{margin-top:26px;font-size:14px}.next-step-band .eyebrow{font-size:10px}.portrait-hero{padding:40px 0 44px}.portrait-grid{display:flex;flex-direction:column;gap:32px;align-items:stretch}.portrait-intro{order:-1}.portrait-intro h1{font-size:clamp(2.6rem,11.5vw,3.8rem)}.portrait-intro>p:not(.eyebrow){font-size:17px;margin-top:23px}.portrait-intro>.text-link{margin-top:22px;font-size:14px}.portrait-credentials{font-size:12px;margin-top:25px;padding-top:19px;gap:8px}.portrait-frame{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:end;padding:0 0 0 12px;border-bottom:0}.portrait-frame img{aspect-ratio:4/4.7}.portrait-frame figcaption{margin:0 0 4px;font-size:12px;gap:6px}.portrait-frame figcaption span:first-child{font-size:14px}.perspectives-section{padding:50px 0}.perspectives-grid{gap:27px}.perspectives-intro h2{font-size:34px}.perspectives-intro>p:not(.eyebrow){font-size:16px}.perspectives-hint{font-size:11px}.perspective-list summary{font-size:19px;gap:13px;padding:23px 0;letter-spacing:-.025em}.perspective-list summary small{font-size:11px;line-height:1.6}.perspective-number{font-size:10px}.perspective-body{padding:0 0 25px 26px}.perspective-body h3{font-size:25px}.perspective-body>p{font-size:16px;line-height:1.8;margin-top:18px;hyphens:auto}.perspective-evidence{padding-left:17px;margin-top:23px}.perspective-evidence p{font-size:14px}.perspective-evidence .text-link{font-size:13px}.journey-hero{padding:43px 0}.journey-hero h1{font-size:clamp(2.2rem,9.8vw,3.4rem)}.journey-hero .page-lead{font-size:17px}.journey-section{padding:35px 0 45px}.journey-intro>p:last-child{font-size:14px}.journey-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.journey-tabs .guide-tab{padding:11px 3px 22px;min-height:95px;gap:10px;text-align:center;align-items:center;font-size:10px;letter-spacing:-.025em}.journey-tabs .guide-tab small{display:none}.journey-tab-year{font-size:8px;letter-spacing:-.025em;white-space:nowrap}.journey-tabs .guide-tab:after{left:calc(50% - 4px)}.journey-scene{grid-template-columns:1fr;min-height:0}.journey-context{margin:12px 12px 0;padding:24px 25px;display:grid;grid-template-columns:1fr 1.05fr;column-gap:22px;min-height:225px}.journey-context .topic-label{grid-column:1/-1;font-size:9px;margin-bottom:17px}.journey-year{font-size:66px;margin:0}.journey-year>span{font-size:25px;margin-top:7px}.journey-period{font-size:10px;margin:4px 0 0;align-self:center;line-height:1.8}.journey-context-copy{grid-column:1/-1;font-size:17px;line-height:1.4;margin-top:20px;padding:0}.journey-context-copy br{display:none}.journey-copy{padding:28px 26px 32px;min-height:480px}.journey-copy h2{font-size:30px}.journey-copy h3{font-size:15px;margin-top:15px}.journey-copy>p{font-size:16px;line-height:1.8;hyphens:auto;margin-top:21px}.journey-takeaway{margin-top:23px;padding-top:19px}.journey-takeaway p{font-size:14px}.journey-copy .text-link{font-size:13px;padding-top:25px}.parallel-note{font-size:12px;gap:14px;margin-top:24px}}
@media(max-width:360px){.case-tabs .guide-tab{font-size:11px;padding:12px 8px}.case-copy{padding:25px 20px}.case-copy h2{font-size:29px}.case-copy .btn{font-size:12px;padding:12px;gap:14px}.case-board{padding:24px 18px}.architecture-stack>div{padding:13px 10px;gap:5px}.architecture-stack strong{font-size:18px}.architecture-stack small{font-size:9px}.case-triad>span{font-size:9px}.case-process strong{font-size:20px}.case-process li{gap:12px}.lifecycle-stages strong{font-size:10px}.portrait-frame{gap:18px}.portrait-frame figcaption{font-size:11px}.perspective-list summary{font-size:18px;gap:10px}.perspective-body{padding-left:20px}.journey-tabs .guide-tab{font-size:8px;padding-inline:2px}.journey-tab-year{font-size:7px}.journey-context{padding:22px 20px;gap:0 16px}.journey-year{font-size:59px}.journey-year>span{font-size:23px}.journey-period{font-size:9px}.journey-copy{padding:27px 22px}.journey-copy h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.perspective-list .detail-toggle{transition:none}}
@media(max-width:600px){.journey-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}.journey-tabs .guide-tab{grid-column:span 2;font-size:14px;padding:13px 8px 24px;min-height:90px;gap:9px}.journey-tabs .guide-tab:nth-child(4),.journey-tabs .guide-tab:nth-child(5){grid-column:span 3}.journey-tab-year{font-size:10px;letter-spacing:0}}
.case-scene>*,.journey-scene>*{min-width:0}
@media(max-width:600px){.case-copy h2{hyphens:auto}.journey-context-copy{overflow-wrap:anywhere}}
