:root{--paper:#f4f2ea;--ink:#20251f;--muted:#5d6258;--line:#d2d4c8;--olive:#4e5d3a;--lime:#d8ef7a;--white:#fffef9;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--olive);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.06;letter-spacing:-.045em;font-weight:500}h1{font-size:clamp(3.1rem,5.8vw,5.45rem)}h2{font-size:clamp(2.3rem,4vw,3.7rem)}h3{font-size:1.55rem}p{margin-top:20px;color:var(--muted);max-width:65ch}em{font-family:Georgia,'Times New Roman',serif;font-weight:400}small{font-size:.75rem}.wrap{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.eyebrow{font-family:monospace;font-size:.71rem;line-height:1.6;letter-spacing:.1em;text-transform:uppercase;color:var(--olive);margin:0 0 28px}.header{height:112px;display:flex;align-items:center;gap:48px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:.77rem;line-height:1.12;letter-spacing:.07em;font-weight:800}.brand:hover{text-decoration:none}.brand-symbol{display:flex;font-size:2.5rem;letter-spacing:-.2em;align-items:center;position:relative;line-height:1;margin-right:8px}.brand-symbol span{color:var(--olive);transform:translateY(6px)}.brand-dot{color:var(--olive);font-size:1rem}.desktop-nav{display:flex;gap:34px;margin-left:auto;font-size:.85rem}.desktop-nav [aria-current]{text-decoration:underline;text-underline-offset:8px}.header-cta{background:var(--lime);padding:11px 20px;font-size:.85rem;display:flex;gap:25px;align-items:center;min-height:44px}.mobile-menu{display:none}.hero{display:grid;grid-template-columns:1.32fr 1fr;gap:65px;padding-block:78px 76px;align-items:center}.signal{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--olive);margin-right:8px}.hero h1{font-size:clamp(3.3rem,5.5vw,5.2rem);letter-spacing:-.06em;line-height:1.04}.dot{color:var(--olive)}.hero .lead{font-size:1rem;max-width:490px;margin-top:27px}.actions{display:flex;align-items:center;gap:30px;margin-top:33px;flex-wrap:wrap}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;min-height:52px;padding:13px 23px;font-size:.86rem;border:1px solid transparent;cursor:pointer;border-radius:2px;transition:background .18s,transform .18s}.button:hover{text-decoration:none;transform:translateY(-2px)}.dark{background:var(--ink);color:var(--white)}.dark:hover{background:var(--olive)}.light{background:var(--lime);color:var(--ink)}.text-link{font-size:.86rem;display:inline-flex;align-items:center;gap:20px;min-height:44px}.engineering-art{position:relative;padding:24px 28px 20px;background:#e8e9dc;border:1px solid #ced2bf;transform:rotate(2deg)}.art-top,.art-bottom{font-family:monospace;font-size:.58rem;display:flex;justify-content:space-between;align-items:center;color:var(--olive)}.art-top{margin-bottom:30px}.art-bottom{margin-top:30px;gap:12px}.art-bottom span:last-child{font-size:2rem}.diagram-layer{position:relative;border:1px solid #5e694d;padding:18px 22px;background:var(--paper);box-shadow:6px 6px 0 #b6bea4}.diagram-layer span{display:block;font: .6rem monospace;letter-spacing:.1em;margin-bottom:8px}.diagram-layer b{font-size:1.15rem;font-weight:500;letter-spacing:-.035em}.diagram-layer i{position:absolute;right:20px;bottom:15px;font-size:1.6rem;font-style:normal}.layer-two{background:var(--olive);color:var(--white);margin-left:16px;margin-right:-8px}.layer-three{background:var(--lime);margin-left:-8px;margin-right:12px}.connector{height:24px;width:1px;background:var(--olive);margin-left:50%}.aside-note{font-size:.72rem;margin:25px 0 0 25px;line-height:1.6}.capability-strip{border-block:1px solid var(--line)}.capability-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:20px;font: .68rem monospace;letter-spacing:.02em}.capability-strip span:first-child{color:var(--olive)}.section{padding-block:96px}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:45px}.section-heading>p{font-size:.9rem;max-width:270px}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:60px 1fr 40px;align-items:center;gap:20px;padding:25px 0;border-bottom:1px solid var(--line);transition:padding .2s,background .2s}.service-row:hover{padding-left:15px;background:#eceee2;text-decoration:none}.index{font: .7rem monospace;color:var(--olive);align-self:start;margin-top:5px}.service-row p{font-size:.85rem;margin-top:7px}.row-arrow{font-size:1.7rem}.work-section{padding-top:20px}.project-feature{background:var(--ink);color:var(--white);display:grid;grid-template-columns:1fr 1fr;min-height:430px;overflow:hidden}.project-copy{padding:48px}.project-copy .eyebrow{color:var(--lime)}.project-copy h2{font-size:4rem;letter-spacing:-.06em}.project-copy .dot{color:var(--lime)}.project-copy>p:not(.eyebrow){color:var(--white);font-size:1.2rem;line-height:1.4}.project-copy .muted-light{color:#b9bfb2!important;font-size:.88rem!important;margin-block:24px}.project-copy small{display:block;margin-top:16px;color:#b9bfb2;font-family:monospace;font-size:.6rem}.project-art{position:relative;display:flex;align-items:center;justify-content:center;background:#313c2c;isolation:isolate;min-height:330px}.project-monogram{font:italic 220px Georgia,serif;line-height:1;color:var(--lime);z-index:1}.orbit{position:absolute;border:1px solid #66775b;width:340px;height:340px;border-radius:50%;transform:rotate(-35deg) scaleX(.65)}.orbit-two{transform:rotate(35deg) scaleX(.65)}.art-label{position:absolute;bottom:35px;font: .58rem monospace;color:#d4ddc9}.process-section{background:#e9ebdf;padding-block:85px}.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px}.process-layout>div>p:last-child{max-width:320px;font-size:.9rem}.process-list{list-style:none;counter-reset:process;padding:0;margin:0}.process-list li{position:relative;padding:22px 0 24px 57px;border-top:1px solid #c8ceba;counter-increment:process}.process-list li:before{content:'0' counter(process);position:absolute;left:0;top:25px;font:.7rem monospace;color:var(--olive)}.process-list h3{font-size:1.4rem}.process-list p{margin-top:10px;font-size:.88rem}.founder{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:center}.founder-mark{min-height:330px;background:#e3e4d8;display:flex;align-items:center;justify-content:center;position:relative;font:italic 210px Georgia,serif;line-height:1}.founder-mark>span{color:var(--olive)}.founder-mark small{font: .56rem monospace;letter-spacing:.13em;position:absolute;bottom:30px;left:20px;right:20px;text-align:center}.founder h2{font-size:2.8rem}.founder .text-link{margin-top:20px}.faq-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;padding-top:0}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;min-height:64px;padding:20px 22px 20px 0;line-height:1.5;font-size:.95rem}details p{margin:0 0 24px;font-size:.9rem}.closing{border-top:1px solid var(--line);padding-block:65px 80px;display:grid;grid-template-columns:1fr 1fr;gap:0 80px}.closing>.eyebrow{grid-column:1/-1}.closing h2{font-size:clamp(3rem,5vw,4.6rem)}.closing>div{align-self:end}.closing p{margin-top:0;margin-bottom:25px;max-width:370px}.footer{background:var(--ink);color:var(--paper)}.footer-top{padding-block:60px;display:grid;grid-template-columns:1.4fr .7fr 1fr;gap:40px}.footer-brand{font-size:1.5rem;letter-spacing:-.04em}.footer-brand .dot{color:var(--lime)}.footer p{font-size:.82rem;color:#b9bfb2}.footer .eyebrow{color:#b9bfb2;font-size:.6rem;margin-bottom:15px}.footer-top>div>a:not(.footer-brand){display:block;font-size:.82rem;min-height:36px;overflow-wrap:anywhere}.footer-bottom{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #454b40;padding-block:22px;color:#b9bfb2;font-size:.67rem}.footer-bottom>div{display:flex;gap:25px}.skip{position:fixed;z-index:10;top:-100px;background:var(--lime);color:var(--ink);padding:15px}.skip:focus{top:10px;left:10px}.page-intro{padding-block:85px 60px;border-bottom:1px solid var(--line)}.page-intro .lead{font-size:1.1rem;max-width:680px;margin-top:30px}.compact{padding-top:35px}.detail-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:100px;padding-block:70px 100px}.detail-layout h2{font-size:2rem;margin-bottom:25px}.detail-layout p{margin-bottom:25px}.detail-layout .button{margin-top:18px}.detail-layout>div>h2:not(:first-child){margin-top:40px}.deliverables{list-style:none;padding:0;margin:0 0 40px}.deliverables li{padding:15px 0;border-bottom:1px solid var(--line);color:var(--muted)}.deliverables li:before{content:'↗';color:var(--olive);margin-right:15px}.note-panel{background:#e8ebdd;padding:50px;margin-top:50px;margin-bottom:70px}.note-panel h2{font-size:2.7rem}.note-panel p{max-width:680px;margin-bottom:20px}.project-context{max-width:740px;margin-block:45px 0}.project-context h2{font-size:2rem}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;padding-block:70px 100px}.contact-layout aside p{font-size:.9rem}.contact-layout h2{font-size:2.4rem;margin-bottom:25px}.email-link{font-size:.95rem;text-decoration:underline;overflow-wrap:anywhere}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{margin-bottom:20px}.field label{display:block;font-size:.85rem;margin-bottom:8px}.field label span{color:var(--muted);font-size:.75rem}.field input,.field select,.field textarea{border:1px solid #9fa590;border-radius:0;width:100%;padding:12px;background:var(--white);color:var(--ink);min-height:48px}.field textarea{resize:vertical}.hint{font-size:.73rem;margin-top:7px;margin-bottom:10px}.field-error{display:block;font-size:.78rem;color:#962d1d;margin-top:6px}.field [aria-invalid=true]{border:2px solid #962d1d}.consent{display:flex;gap:12px;align-items:flex-start;font-size:.8rem;margin-block:10px}.consent input{min-width:20px;min-height:20px;margin:3px 0}.consent a{text-decoration:underline}.contact-layout button{margin-top:20px}.button:disabled{opacity:.6;cursor:not-allowed}#form-status{font-size:.86rem;margin-block:20px}#draft-link{margin-bottom:20px}.prose{max-width:800px;padding-block:50px 90px}.prose h2{font-size:1.7rem;margin-block:30px 12px}.prose p{margin-top:12px}.prose a{text-decoration:underline}[hidden]{display:none!important}::selection{background:var(--lime);color:var(--ink)}
@media(min-width:1500px){.hero{padding-block:100px}.hero h1{font-size:5.5rem}}
@media(max-width:960px){.wrap{width:calc(100% - 56px)}.header{gap:25px}.desktop-nav{gap:22px}.hero{gap:30px}.hero h1{font-size:clamp(3rem,6vw,4.2rem)}.hero .eyebrow{font-size:.58rem}.engineering-art{padding:20px}.diagram-layer{padding:17px 14px}.diagram-layer b{font-size:.95rem}.diagram-layer i{right:12px}.actions{gap:15px}.section{padding-block:65px}.process-layout,.founder,.detail-layout,.contact-layout{gap:45px}.founder h2{font-size:2.3rem}.project-copy{padding:32px}.capability-strip .wrap{flex-wrap:wrap;justify-content:flex-start}.capability-strip span:first-child{width:100%}.footer-top{grid-template-columns:1fr .6fr 1fr;gap:22px}.faq-layout{gap:40px}.section-heading h2{font-size:2.7rem}.founder-mark{min-height:300px}.project-context{margin-bottom:20px}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.header{height:86px;gap:20px}.brand{font-size:.67rem;gap:10px}.brand-symbol{font-size:2.1rem}.desktop-nav,.header-cta{display:none}.mobile-menu{display:block;margin-left:auto;border:0;position:relative}.mobile-menu summary{min-height:44px;padding:10px 0;font-size:.8rem;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{margin-left:14px}.mobile-menu nav{position:absolute;right:0;top:50px;z-index:5;background:var(--paper);border:1px solid var(--line);min-width:210px;padding:12px;box-shadow:0 8px 20px #20251f18}.mobile-menu nav a{display:block;padding:12px;min-height:44px}.hero{grid-template-columns:1fr;padding-block:45px;gap:45px}.hero h1{font-size:clamp(2.95rem,10vw,4rem)}.hero .eyebrow{font-size:.6rem;letter-spacing:.05em;margin-bottom:24px}.hero .lead{font-size:.94rem}.hero-aside{max-width:410px;width:100%;justify-self:center;padding-inline:10px}.engineering-art{transform:rotate(1deg);padding:22px}.diagram-layer b{font-size:1.15rem}.aside-note{margin-left:0}.capability-strip .wrap{gap:12px 22px;font-size:.62rem;padding-block:18px}.section{padding-block:55px}.section-heading{display:block;margin-bottom:30px}.section-heading>p,.section-heading>.text-link{margin-top:20px}.section-heading h2,h2{font-size:2.45rem}.service-row{grid-template-columns:26px 1fr 25px;gap:12px;padding-block:22px}.service-row h2,.service-row h3{font-size:1.2rem;letter-spacing:-.03em}.service-row p{font-size:.78rem}.project-feature{grid-template-columns:1fr}.project-copy{padding:30px 25px}.project-art{min-height:280px}.orbit{width:260px;height:260px}.project-monogram{font-size:180px}.art-label{bottom:22px}.work-section{padding-top:10px}.process-section{padding-block:55px}.process-layout,.founder,.faq-layout,.detail-layout,.contact-layout{grid-template-columns:1fr;gap:36px}.process-list{margin-top:10px}.founder-mark{min-height:280px}.founder h2{font-size:2.4rem}.faq-layout{padding-top:10px}.closing{padding-block:45px 55px;grid-template-columns:1fr;gap:25px}.closing>.eyebrow{margin-bottom:0}.closing h2{font-size:3.5rem}.closing>div{margin-top:0}.footer-top{grid-template-columns:1fr 1fr;padding-block:40px;gap:32px}.footer-top>div:first-child{grid-column:1/-1}.footer-top>div:last-child{grid-column:1/-1}.footer-bottom{flex-wrap:wrap;gap:18px}.footer-bottom>span:last-child{width:100%}.page-intro{padding-block:45px}.page-intro h1{font-size:2.9rem}.page-intro .lead{font-size:1rem}.detail-layout,.contact-layout{padding-block:40px 60px}.detail-layout h2{font-size:1.8rem}.note-panel{padding:28px;margin-top:30px;margin-bottom:45px}.note-panel h2{font-size:2.1rem}.project-context h2{font-size:1.8rem}.form-fields{grid-template-columns:1fr;gap:0}.prose{padding-block:25px 55px}.eyebrow{margin-bottom:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.button:hover{transform:none}}
/* Portfolio archive: editorial rows and original workflow diagrams. */
.portfolio-section{padding-bottom:75px}.portfolio-editor-note{display:grid;grid-template-columns:1.4fr 1fr;gap:65px;padding-block:30px 35px;border-bottom:1px solid var(--line)}.portfolio-editor-note p{font-size:.85rem;margin:0}.portfolio-filter{padding-block:28px 30px;border-bottom:1px solid var(--line)}.portfolio-filter fieldset{border:0;padding:0;margin:0}.portfolio-filter legend{font: .65rem monospace;text-transform:uppercase;letter-spacing:.08em;margin-bottom:15px;color:var(--olive)}.portfolio-filter fieldset>div{display:flex;flex-wrap:wrap;gap:9px}.portfolio-filter button{min-height:44px;padding:9px 16px;background:transparent;border:1px solid #9fa590;border-radius:2px;color:var(--ink);font-size:.78rem;cursor:pointer}.portfolio-filter button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.portfolio-filter button:hover{background:var(--lime);color:var(--ink)}#portfolio-status{font-size:.73rem;margin-top:16px}.portfolio-entry{display:grid;grid-template-columns:40px 1.35fr 1fr;gap:28px;padding-block:50px;border-bottom:1px solid var(--line);align-items:start}.portfolio-number{font: .7rem monospace;color:var(--olive);padding-top:6px}.project-context-label{font: .64rem monospace;line-height:1.6;color:var(--olive);margin:0 0 16px}.portfolio-entry h2{font-size:2.6rem}.portfolio-summary{font-size:.96rem;margin-top:17px}.project-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.project-tags span{font: .57rem monospace;letter-spacing:.02em;border:1px solid #c8ceba;padding:6px 8px;color:var(--olive)}.project-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:26px}.project-actions .text-link{font-size:.77rem}.project-actions .button{font-size:.78rem;min-height:46px;padding:11px 17px;gap:16px}.project-facts{margin-top:20px}.project-facts summary{font-size:.79rem;min-height:48px;padding-block:13px}.project-facts h3{font-size:.9rem;letter-spacing:0;line-height:1.4;margin-top:20px}.project-facts p,.project-facts li{font-size:.81rem;color:var(--muted)}.project-facts p{margin:9px 0 18px}.project-facts ul{padding-left:20px;margin-top:9px;margin-bottom:20px}.project-facts>div{padding-bottom:10px}.portfolio-aside{margin-left:18px}.project-status{font: .64rem monospace;line-height:1.65;color:var(--olive);margin:0 0 14px}.project-stage{font-size:.71rem;margin:0 0 14px}.workflow-art{margin:0;background:#e5e8d9;padding:25px;overflow:hidden;border:1px solid #d1d6c4}.workflow-monogram{font:italic 5.2rem Georgia,serif;letter-spacing:-.09em;line-height:1.1;margin:0 0 30px;color:var(--olive)}.workflow-art ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0}.workflow-art li{font: .57rem monospace;background:var(--paper);border:1px solid #a9b49a;padding:9px 11px;min-width:0}.workflow-art li+li:before{content:'→';margin-right:8px;color:var(--olive)}.workflow-art figcaption{font: .53rem monospace;line-height:1.7;color:#4e5d3a;margin-top:22px}.portfolio-empty{padding-block:35px}.selected-work{margin-top:36px}.selected-work-row{display:grid;grid-template-columns:55px 1fr 24px;gap:22px;align-items:center;border-top:1px solid var(--line);padding-block:23px}.selected-work-row:last-child{border-bottom:1px solid var(--line)}.selected-work-row:hover{background:#eceee2;text-decoration:none}.selected-work-mark{font:italic 1.8rem Georgia,serif;color:var(--olive)}.selected-work-row h3{font-size:1.25rem}.selected-work-row p{font-size:.8rem;margin-top:8px}.selected-work-row small{display:block;font: .59rem monospace;margin-top:10px;color:var(--olive)}.case-cover{display:grid;grid-template-columns:1.3fr 1fr;gap:75px;padding-block:70px;border-bottom:1px solid var(--line);align-items:center}.case-cover h1{font-size:clamp(3rem,5vw,4.8rem)}.case-cover .lead{font-size:1.3rem;line-height:1.45;margin-top:24px;color:var(--ink)}.case-cover .project-status{margin-block:24px 20px}.case-cover .workflow-art{padding:40px}.case-cover .workflow-monogram{font-size:8rem}.case-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:95px;padding-block:65px 85px}.case-layout h2{font-size:2rem}.case-layout p{font-size:.95rem}.case-layout dl{margin:0}.case-layout dt{font: .64rem monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--olive);margin:24px 0 8px}.case-layout dd{font-size:.81rem;line-height:1.75;margin:0;color:var(--muted)}.case-layout .eyebrow+dl dt:first-child{margin-top:0}.case-chapter{margin-block:38px}.case-chapter h2{font-size:1.6rem}.case-chapter p{margin-top:16px}
@media(max-width:960px){.portfolio-entry{grid-template-columns:25px 1.3fr 1fr;gap:18px}.portfolio-entry h2{font-size:2.1rem}.portfolio-aside{margin-left:0}.workflow-art{padding:20px}.workflow-art ol{gap:5px}.workflow-art li{padding:7px}.portfolio-editor-note{gap:35px}.case-cover,.case-layout{gap:40px}.case-cover .workflow-art{padding:25px}.project-actions{gap:10px}.case-cover .workflow-monogram{font-size:6rem}}
@media(max-width:640px){.portfolio-editor-note{grid-template-columns:1fr;gap:15px;padding-block:25px}.portfolio-filter{padding-block:25px}.portfolio-filter button{font-size:.7rem;padding-inline:11px}.portfolio-entry{grid-template-columns:22px 1fr;gap:14px;padding-block:35px}.portfolio-entry h2{font-size:2rem}.portfolio-aside{grid-column:2}.portfolio-main{min-width:0}.portfolio-summary{font-size:.88rem}.project-status{margin-top:12px;font-size:.61rem}.workflow-art{padding:22px}.workflow-monogram{font-size:4.1rem;margin-bottom:22px}.workflow-art ol{gap:0}.workflow-art li{padding:8px;font-size:.55rem}.project-facts summary{min-height:48px}.selected-work-row{grid-template-columns:35px 1fr 16px;gap:12px}.selected-work-row h3{font-size:1.15rem}.selected-work-row p{font-size:.77rem}.case-cover,.case-layout{grid-template-columns:1fr;gap:30px;padding-block:40px}.case-cover h1{font-size:3rem}.case-cover .lead{font-size:1.15rem}.case-cover .workflow-monogram{font-size:5rem}.case-layout>aside{border-bottom:1px solid var(--line);padding-bottom:30px}.case-layout h2{font-size:1.8rem}.case-chapter h2{font-size:1.5rem}.portfolio-section{padding-bottom:45px}}

.service-row h2{font-size:1.55rem}
.workflow-art li{font-size:.7rem}.workflow-art figcaption{font-size:.68rem}.project-status{font-size:.7rem}
@media(max-width:640px){.service-row h2{font-size:1.2rem}.workflow-art li{font-size:.65rem}.workflow-art figcaption{font-size:.65rem}}
/* The two archives have distinct navigation and no unnecessary search/filter UI. */
.header{gap:24px}.desktop-nav{gap:17px;font-size:.75rem}.header-cta{gap:15px;padding-inline:14px;font-size:.78rem}.portfolio-entry h2{font-size:2.15rem;line-height:1.15}.case-cover h1{line-height:1.08}
@media(max-width:1120px){.desktop-nav,.header-cta{display:none}.mobile-menu{display:block;margin-left:auto;border:0;position:relative}.mobile-menu summary{min-height:44px;padding:10px 0;font-size:.8rem;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;right:0;top:50px;z-index:5;background:var(--paper);border:1px solid var(--line);min-width:250px;padding:12px;box-shadow:0 8px 20px #20251f18}.mobile-menu nav a{display:block;padding:12px;min-height:44px}}
@media(max-width:640px){.portfolio-entry h2{font-size:1.8rem}.case-cover h1{font-size:2.6rem}}
/* Portfolio quality pass: compact evidence-led rows and source-based diagrams. */
body:has(.portfolio-section) .page-intro{padding-block:52px 40px}body:has(.portfolio-section) .page-intro h1{font-size:clamp(2.8rem,4.7vw,4.2rem)}.portfolio-editor-note{padding-block:23px;gap:35px}.portfolio-entry{grid-template-columns:30px minmax(0,1.2fr) minmax(0,1fr);gap:25px;padding-block:36px}.portfolio-entry h2{font-size:clamp(1.7rem,2.7vw,2.25rem)}.portfolio-aside{margin-left:0}.portfolio-summary{margin-top:15px;font-size:.95rem}.project-metadata{display:flex;flex-wrap:wrap;gap:18px 28px;margin:22px 0;padding-block:13px;border-block:1px solid var(--line)}.project-metadata dt{font: .65rem monospace;letter-spacing:.035em;color:var(--muted);margin:0 0 4px;text-transform:uppercase}.project-metadata dd{margin:0;color:var(--ink);font-size:.8rem;line-height:1.5}.contribution-summary h3{font-size:.85rem;line-height:1.5;letter-spacing:0;font-weight:600}.contribution-summary p{margin-top:7px;font-size:.88rem;line-height:1.65}.project-tags{margin-top:18px}.project-tags span{font-size:.65rem;padding:6px 8px}.project-actions{margin-top:22px;gap:20px}.project-actions .text-link{font-size:.8rem}.project-reference{display:inline-block;margin-top:16px;font-size:.8rem;text-decoration:underline;text-underline-offset:4px;min-height:32px}.technical-diagram{margin:0;border:1px solid #b7c1a9;background:#e7eadf;padding:22px;color:var(--ink)}.diagram-heading{display:flex;gap:8px;align-items:center;padding-bottom:17px;border-bottom:1px solid #c5ceba;flex-wrap:wrap}.diagram-heading p{font: .75rem monospace;margin:0;color:var(--ink)}.diagram-indicator{height:6px;width:6px;background:var(--olive);border-radius:50%}.diagram-language{font: .56rem monospace;letter-spacing:.04em;color:var(--olive);margin-left:auto}.diagram-flow{list-style:none;padding:22px 0 0;margin:0}.diagram-flow>li{display:flex;position:relative;gap:13px;padding:13px;background:var(--paper);border:1px solid #bdc6b1;min-width:0}.diagram-flow>li+li{margin-top:22px}.diagram-flow>li+li:before{content:'↓';position:absolute;top:-24px;left:22px;font-size:16px;color:var(--olive)}.diagram-node-index{font:.65rem monospace;color:var(--olive);padding-top:4px}.diagram-flow strong{font-size:.85rem;font-weight:600;line-height:1.4}.diagram-flow p{font-size:.75rem;line-height:1.5;margin-top:4px}.diagram-outputs{border-top:1px dashed #a8b59a;margin-top:20px;padding-top:15px}.diagram-output-label{font:.65rem monospace;color:var(--olive);margin:0 0 10px;text-transform:uppercase;letter-spacing:.03em}.diagram-outputs ul{list-style:none;padding:0;margin:0}.diagram-outputs li{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;padding-block:8px;border-bottom:1px solid #ccd3c3;font-size:.73rem;line-height:1.5}.diagram-outputs strong{font-weight:600}.diagram-outputs span{color:var(--muted)}.technical-diagram figcaption{font-size:.68rem;line-height:1.6;margin-top:18px;color:var(--muted)}.case-cover{gap:48px;padding-block:48px;align-items:start}.case-cover h1{font-size:clamp(2.5rem,4.4vw,4.2rem)}.case-cover .lead{font-size:1.15rem}.case-cover .project-metadata{margin-block:22px 0}.case-cover .button{margin-top:20px}.case-layout{gap:65px;padding-block:40px 65px}.case-chapter:first-child{margin-top:0}.case-layout dd{font-size:.85rem}.case-chapter h2{font-size:1.6rem;line-height:1.2}.scope-boundary{border-left:2px solid #a0ac8e;padding-left:16px;font-size:.85rem!important}#my-contribution{scroll-margin-top:28px}#my-contribution:focus{outline:2px solid var(--olive);outline-offset:6px}.project-actions a:active{transform:translateY(1px)}
@media(max-width:960px){.portfolio-entry{grid-template-columns:22px minmax(0,1.2fr) minmax(0,1fr);gap:17px}.technical-diagram{padding:17px}.diagram-language{margin-left:0}.case-cover,.case-layout{gap:30px}.project-metadata{gap:15px}}
@media(max-width:640px){body:has(.portfolio-section) .page-intro{padding-block:33px}.portfolio-editor-note{padding-block:20px;gap:12px}.portfolio-entry{grid-template-columns:20px minmax(0,1fr);gap:12px;padding-block:28px}.portfolio-entry h2{font-size:1.75rem}.portfolio-aside{grid-column:2}.project-metadata{gap:16px 22px;margin-block:18px}.project-metadata dt{font-size:.64rem}.project-metadata dd{font-size:.8rem}.project-tags span{font-size:.66rem}.project-actions{gap:12px}.project-actions .button{font-size:.8rem}.technical-diagram{padding:18px}.diagram-heading p{font-size:.74rem}.diagram-flow strong{font-size:.83rem}.diagram-flow p{font-size:.75rem}.diagram-outputs li{grid-template-columns:1fr;gap:2px}.technical-diagram figcaption{font-size:.7rem}.case-cover{padding-block:34px;gap:28px}.case-cover h1{font-size:2.5rem}.case-layout{padding-block:32px 45px}.case-layout dd{font-size:.86rem}.case-chapter h2{font-size:1.5rem}}

.project-tags span{font-size:.75rem}.technical-diagram figcaption{font-size:.75rem}.project-metadata dt{font-size:.7rem}.diagram-outputs li{font-size:.75rem}

.product-components{margin:2rem 0;border-top:1px solid var(--line,#ccc)}.product-components>div{padding:1.25rem 0;border-bottom:1px solid var(--line,#ccc)}.product-components h2{font-size:1.15rem;margin:0 0 .5rem}.product-components p{font-size:1rem}.venture-highlights .portfolio-entry:first-child{padding-top:1rem}
