:root{--paper:#f5f2eb;--ink:#262923;--muted:#686c63;--line:#d7d8ce;--rust:#ad452b;--blue:#075a79;--serif:Georgia,'Times New Roman',serif;--sans:'Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:34px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}figure{margin:0}p{line-height:1.65}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--rust);outline-offset:6px}::selection{background:#e5b8a6}.wrap{width:min(1280px,calc(100% - 112px));margin:auto}.header{display:flex;justify-content:space-between;align-items:center;min-height:102px;border-bottom:1px solid var(--line);gap:30px}.brand{font-weight:650;font-size:21px;letter-spacing:-.7px}.brand i{display:inline-block;width:8px;height:8px;background:var(--rust);border-radius:50%;margin-left:5px}.nav{display:flex;align-items:center;gap:34px;font-size:13px}.nav a:hover,.text-link:hover{color:var(--rust)}.eyebrow{font:11px/1.6 var(--sans);letter-spacing:1.9px;text-transform:uppercase}.accent{color:var(--rust)}.muted{color:var(--muted)}.hero{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:64px 0 50px;align-items:center}.hero h1{font:clamp(75px,7.7vw,118px)/1.05 var(--serif);letter-spacing:-6px;margin:24px 0}.hero .intro{font-size:25px;line-height:1.35;max-width:430px;letter-spacing:-.6px}.hero .desc{font-size:15px;max-width:380px;color:var(--muted);margin:23px 0 30px}.hero-photo{position:relative}.hero-photo>img{width:100%;height:510px;object-fit:cover;object-position:center 51%}.photo-label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-top:14px;gap:15px}.text-link{display:inline-flex;gap:20px;align-items:center;font-size:13px;padding:10px 0 8px;border-bottom:1px solid currentColor}.arrow{font-size:21px;font-weight:300}.section-head{display:flex;justify-content:space-between;gap:25px;align-items:baseline;border-top:1px solid var(--line);padding:27px 0 34px}.section-head h2{font:40px/1.2 var(--serif);letter-spacing:-1px;margin:0}.project{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;margin-bottom:70px}.project-visual{height:450px;background:#e8e8df;overflow:hidden}.project-visual.cad{background:#e8e9e0}.project-visual img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.project-visual.cad img{object-fit:contain;padding:30px;mix-blend-mode:multiply}.project-visual:hover img{transform:scale(1.025)}.project h3{font:49px/1.1 var(--serif);letter-spacing:-1.6px;margin:15px 0 17px}.project .sub{font-size:19px;line-height:1.45;max-width:400px}.project .body{color:var(--muted);font-size:14px;max-width:395px}.project-number{display:flex;align-items:center;gap:12px}.project-number:before{content:'';width:25px;height:1px;background:var(--rust)}.project.reverse{grid-template-columns:1fr 1.1fr}.project.reverse .project-visual{order:2}.project.reverse .project-copy{padding-left:35px}.project details{margin-top:20px;max-width:420px;font-size:14px;line-height:1.7}.project summary{cursor:pointer;list-style:none;width:max-content;border-bottom:1px solid var(--ink);padding:8px 0}.project summary::-webkit-details-marker{display:none}.project summary:after{content:' +';margin-left:25px}.project details[open] summary:after{content:' −'}.project details p{color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1.5fr;gap:90px;border-top:1px solid var(--line);padding:55px 0 75px}.about h2{font:44px/1.2 var(--serif);letter-spacing:-1px;margin:12px 0}.about .statement{font-size:23px;line-height:1.5;max-width:650px;margin:0}.about .small{font-size:14px;color:var(--muted);max-width:570px}.footer{background:var(--ink);color:var(--paper);padding:60px 0 30px}.footer h2{font:clamp(34px,4.4vw,62px)/1.15 var(--serif);letter-spacing:-1px;margin:20px 0 30px}.footer .contact{color:#d7ad98;font-size:16px;border-bottom:1px solid #846f60;padding-bottom:6px;display:inline-block}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #53564e;margin-top:55px;padding-top:25px;font-size:11px;letter-spacing:.6px;color:#c0c3b8}.footer-bottom nav{display:flex;gap:25px}.skip{position:absolute;left:-9999px}.skip:focus{left:20px;top:15px;z-index:10;background:white;padding:10px}
/* Case study */
.case-top{padding:35px 0 50px}.back{font-size:12px;color:var(--muted)}.case-title{display:grid;grid-template-columns:1.5fr 1fr;gap:70px;margin:52px 0 40px;align-items:end}.case-title h1{font:clamp(58px,7vw,98px)/1.03 var(--serif);letter-spacing:-4px;margin:20px 0 0}.case-title .lead{font-size:19px;line-height:1.55;max-width:370px;margin:0 0 5px}.case-meta{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--line);padding-top:22px;gap:30px}.case-meta p{font-size:13px;line-height:1.6;margin:7px 0 0}.case-hero{position:relative;background:#075a79}.case-hero img{width:100%;height:520px;object-fit:cover;object-position:center 50%}.image-caption{font-size:11px;color:var(--muted);line-height:1.6;padding:14px 0;display:flex;justify-content:space-between;gap:25px}.case-section{padding:75px 0;border-bottom:1px solid var(--line)}.case-section h2{font:clamp(34px,3.8vw,51px)/1.15 var(--serif);letter-spacing:-1.5px;margin:17px 0 22px}.case-section .body{font-size:16px;color:var(--muted);line-height:1.8}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:start}.case-section .narrow{max-width:510px}.quote{font:32px/1.35 var(--serif);letter-spacing:-.4px;margin:30px 0;color:var(--ink)}.ownership{border-left:2px solid var(--rust);padding-left:25px}.ownership h3{font-size:15px;font-weight:500;margin:0 0 10px}.ownership p{font-size:14px;color:var(--muted);line-height:1.85}.feature-pair{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-top:45px}.feature-photo img{height:450px;width:100%;object-fit:cover}.feature-photo.portrait img{object-fit:contain;background:#075a79}.feature-pair h3{font:32px/1.2 var(--serif);letter-spacing:-.6px;margin:15px 0}.feature-pair p{font-size:15px;line-height:1.8;color:var(--muted)}.detail-label{display:flex;justify-content:space-between;gap:20px;font-size:10px;text-transform:uppercase;letter-spacing:1.3px;padding-top:13px}.wide-photo{margin-top:40px}.wide-photo img{width:100%;height:auto;max-height:580px;object-fit:cover}.findings{background:#e5e8df;margin-top:75px;padding:65px 0}.findings-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.findings h2{font:44px/1.15 var(--serif);letter-spacing:-1px;margin:16px 0}.findings .big{font:67px/1.1 var(--serif);letter-spacing:-3px;margin:24px 0 10px}.findings .body{font-size:14px;color:var(--muted)}.result-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:15px}.result-table th{text-align:left;font-weight:400;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.result-table th,.result-table td{padding:18px 10px 18px 0;border-bottom:1px solid #c4c9bd}.result-table td:last-child,.result-table th:last-child{text-align:right}.result-table tr:last-child td{font-weight:600}.research{display:flex;justify-content:space-between;gap:50px;align-items:center;padding:70px 0}.research h2{font:38px/1.15 var(--serif);margin:15px 0}.research p{font-size:14px;color:var(--muted);max-width:550px}.button{border:1px solid var(--ink);padding:18px 25px;display:inline-flex;gap:35px;align-items:center;font-size:13px;white-space:nowrap;transition:background .2s,color .2s}.button:hover{background:var(--ink);color:var(--paper)}.enlarge{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in;text-align:left}.lightbox{border:0;padding:48px;background:var(--paper);max-width:94vw;max-height:94vh}.lightbox::backdrop{background:#15211bdc}.lightbox img{max-width:85vw;max-height:78vh;object-fit:contain}.lightbox button{position:absolute;right:12px;top:8px;border:0;background:transparent;cursor:pointer;font-size:25px;padding:8px}.draft-note{font-size:10px;letter-spacing:1px;color:var(--muted);padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}
@media(min-width:1500px){.hero{padding-top:85px;padding-bottom:75px}.hero-photo>img{height:560px}}
@media(max-width:900px){.wrap{width:calc(100% - 56px)}.hero{gap:30px}.hero h1{font-size:76px;letter-spacing:-4px}.hero .intro{font-size:21px}.hero-photo>img{height:440px}.project,.project.reverse{gap:35px}.project.reverse .project-copy{padding-left:0}.project h3{font-size:39px}.project-visual{height:370px}.case-title{gap:35px}.two-col,.findings-grid{gap:40px}.feature-pair{gap:30px}.about{gap:40px}}
@media(max-width:620px){.wrap{width:calc(100% - 40px)}.header{min-height:80px;gap:12px}.brand{font-size:19px}.nav{gap:17px;font-size:11px}.nav .optional{display:none}.hero{grid-template-columns:1fr;gap:35px;padding:40px 0}.hero h1{font-size:clamp(56px,17vw,78px);letter-spacing:-4px;margin:18px 0}.hero .intro{font-size:24px;max-width:360px}.hero .desc{max-width:340px}.hero-photo>img{height:400px;object-position:50% 45%}.photo-label{font-size:9px}.section-head{padding:25px 0}.section-head h2{font-size:34px}.section-head .eyebrow{font-size:9px}.project,.project.reverse{grid-template-columns:1fr;gap:25px;margin-bottom:55px}.project.reverse .project-visual{order:0}.project-visual{height:360px}.project h3{font-size:42px;margin:12px 0}.project .sub{font-size:19px}.project .body{font-size:14px}.about{grid-template-columns:1fr;gap:20px;padding:40px 0 55px}.about h2{font-size:38px}.about .statement{font-size:20px}.footer{padding:45px 0 25px}.footer h2{font-size:40px}.footer .contact{font-size:14px}.footer-bottom{align-items:flex-start;flex-direction:column;margin-top:40px}.case-top{padding:25px 0 35px}.case-title{grid-template-columns:1fr;gap:25px;margin-top:35px}.case-title h1{font-size:65px;letter-spacing:-3px}.case-title .lead{font-size:17px}.case-meta{grid-template-columns:1fr 1fr;gap:24px}.case-meta>div:last-child{grid-column:1/-1}.case-hero img{height:330px}.image-caption{font-size:10px}.image-caption .optional{display:none}.case-section{padding:50px 0}.case-section h2{font-size:37px}.two-col,.feature-pair,.findings-grid{grid-template-columns:1fr;gap:30px}.feature-pair{margin-top:25px}.feature-photo img{height:350px}.feature-photo.portrait img{height:450px}.feature-pair h3{font-size:31px}.quote{font-size:28px}.findings{margin-top:50px;padding:45px 0}.findings h2{font-size:38px}.findings .big{font-size:58px}.research{flex-direction:column;align-items:flex-start;gap:20px;padding:50px 0}.research h2{font-size:34px}.lightbox{padding:35px 10px}.lightbox img{max-width:85vw}.draft-note{font-size:9px}.draft-note span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Portfolio content hierarchy */
.cad-hero>a{display:block;background:#e8e9e0}.cad-hero>a>img{width:100%;height:510px;object-fit:contain;padding:32px;mix-blend-mode:multiply}.hero-note{font-size:11px;color:var(--muted);margin:10px 0 0}.supplemental{display:grid;grid-template-columns:190px 1fr;gap:38px;align-items:center;border-top:1px solid var(--line);padding:34px 0 45px}.supplemental img{width:190px;height:155px;object-fit:cover}.supplemental h2{font:30px/1.2 var(--serif);letter-spacing:-.6px;margin:12px 0}.supplemental p{font-size:14px;color:var(--muted);max-width:680px;margin:10px 0}.ownership{margin-top:22px}.about h2{font-size:38px}.case-title h1{font-size:clamp(58px,6.6vw,90px)}
@media(max-width:900px){.cad-hero>a>img{height:440px;padding:20px}}
@media(max-width:620px){.cad-hero>a>img{height:400px;padding:22px}.supplemental{grid-template-columns:1fr;gap:22px}.supplemental img{width:100%;height:200px}.supplemental h2{font-size:30px}.case-title h1{font-size:58px}.about h2{font-size:35px}}

/* Completed project pages */
.project-nav{display:flex;gap:30px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);font-size:12px}.project-nav .eyebrow{margin-right:auto}.project-nav a[aria-current]{color:var(--rust);text-decoration:underline;text-underline-offset:6px}.project-nav a:hover,.section-index a:hover,.footer-projects nav a:hover{color:var(--rust)}.section-index{display:flex;gap:30px;flex-wrap:wrap;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.technical-figure{min-width:0}.technical-figure img{width:100%;height:390px;object-fit:cover}.technical-figure.cad img{object-fit:contain;padding:26px;background:#e8e9e0;mix-blend-mode:multiply}.technical-figure.analysis img{object-fit:contain;padding:18px;background:#e9ece7}.technical-figure figcaption{font-size:11px;line-height:1.65;color:var(--muted);padding-top:13px}.assembly-hero{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:#e8e9e0;padding:20px 30px}.assembly-hero .technical-figure img{height:450px;padding:24px 40px}.assembly-hero figcaption{padding:0 8px 14px}.fabrication-hero{display:grid;grid-template-columns:1fr 1fr;gap:24px}.fabrication-hero .technical-figure img{height:500px;object-fit:cover;object-position:50% 50%}.evidence-note{font-size:12px;line-height:1.8;color:var(--muted);margin:18px 0 26px;max-width:950px}.plain-list{padding:0 0 0 17px;margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.85}.plain-list li{padding-bottom:12px}.figure-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:40px}.compact-figures .technical-figure img{height:300px}.spec-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6;margin:25px 0 0}.spec-table caption{text-align:left;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.spec-table th,.spec-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:13px 8px 13px 0}.spec-table th{font-weight:500;width:48%}.spec-table td{color:var(--muted)}.results-band{margin-top:45px;padding:36px;background:#e5e8df}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:25px 0}.metric-row dt{font-size:11px;color:var(--muted);margin-bottom:12px;line-height:1.5}.metric-row dd{font:58px/1.1 var(--serif);letter-spacing:-2px;margin:0}.metric-row dd span{font:20px var(--sans);letter-spacing:0}.results-band>p{font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:0}.project-status{padding:35px 0 55px}.project-status p{font-size:14px;color:var(--muted);max-width:820px;line-height:1.8}.footer-projects{display:grid;grid-template-columns:1.5fr 1fr;gap:60px;align-items:center}.footer-projects h2{font-size:45px}.footer-projects nav{display:flex;gap:35px;font-size:15px}.footer-contact .eyebrow{margin-bottom:20px}.project-visual>a{display:block;height:100%}.project h3 a:hover{color:var(--rust)}.about h2{max-width:340px}
@media(max-width:900px){.assembly-hero{padding:10px}.assembly-hero .technical-figure img{height:350px;padding:15px}.fabrication-hero .technical-figure img{height:420px}.technical-figure img{height:340px}.metric-row dd{font-size:46px}.metric-row{gap:20px}.results-band{padding:28px}.project-nav,.section-index{gap:20px}.footer-projects{gap:30px}.footer-contact .contact{font-size:13px}}
@media(max-width:620px){.project-nav{gap:18px;font-size:11px;padding:19px 0}.project-nav .eyebrow{display:none}.case-title h1{font-size:56px;letter-spacing:-2.5px}.assembly-hero{gap:8px;padding:8px}.assembly-hero .technical-figure img{height:265px;padding:8px}.assembly-hero figcaption{font-size:9px;padding:5px 3px 10px}.fabrication-hero{gap:14px}.fabrication-hero .technical-figure img{height:280px}.fabrication-hero figcaption{font-size:10px}.section-index{gap:15px 22px;padding:19px 0;font-size:11px}.technical-figure img{height:330px}.technical-figure.cad img{padding:18px}.figure-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}.compact-figures .technical-figure img{height:300px}.metric-row{grid-template-columns:1fr;gap:25px;margin:25px 0}.metric-row>div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;border-bottom:1px solid #c4c9bd;padding-bottom:15px}.metric-row dt{max-width:130px;font-size:12px}.metric-row dd{font-size:43px;white-space:nowrap}.metric-row dd span{font-size:17px}.results-band{padding:25px 20px}.footer-projects{grid-template-columns:1fr;gap:40px}.footer-projects h2{font-size:38px}.footer-projects nav{flex-wrap:wrap;gap:25px}.footer-contact .contact{font-size:14px}.project-status{padding:28px 0 45px}.spec-table th{width:47%}.spec-table{font-size:12px}.about h2{max-width:100%}}
/* Keep CAD backgrounds flat when compositing source images. */
.technical-figure.cad img{background:transparent}
