:root{--ink:#171a18;--paper:#f1f2ed;--orange:#ff633c;--line:#c9cec4;--muted:#616b60;--display:'Barlow Condensed','Arial Narrow',sans-serif;--body:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{border-radius:0}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.02}h2{font-family:var(--display);font-weight:500;letter-spacing:-.025em}::selection{background:var(--orange);color:var(--ink)}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.contact :focus-visible{outline-color:var(--ink)}.skip{position:fixed;z-index:100;left:15px;top:-90px;padding:12px 18px;background:var(--paper);color:var(--ink)}.skip:focus{top:12px}.section-pad{padding:100px 6vw}.eyebrow,.section-kicker{font-size:12px;font-weight:600;letter-spacing:.09em}.section-kicker{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px;gap:20px}.cross{font-size:25px;color:var(--orange);font-weight:400;line-height:1}.text-link{font-size:14px;display:inline-flex;align-items:center;gap:40px;padding:9px 0;border-bottom:1px solid currentColor;font-weight:600}.text-link span{font-size:22px;transition:transform .25s}.text-link:hover span{transform:translate(3px,-3px)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ink);color:var(--paper);padding:18px 24px;font-size:14px;font-weight:600;transition:background .25s,transform .25s}.button span{font-size:24px;line-height:1}.button:hover{background:#303a30;transform:translateY(-2px)}
/* The first impression: a construction photograph, treated as an architectural plate. */
.header{height:96px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;gap:30px;border-bottom:1px solid #ffffff24;position:relative;z-index:20}.brand{display:flex;flex-direction:column;line-height:1;flex-shrink:0}.brand-main{font-family:var(--display);font-size:38px;font-weight:700;letter-spacing:.025em}.brand-dot{color:var(--orange)}.brand-sub{font-size:10px;letter-spacing:.11em;font-weight:700;margin-top:6px}.nav{display:flex;gap:34px}.nav a{font-size:14px;font-weight:600;position:relative;padding:12px 0}.nav a:after{content:'';position:absolute;bottom:7px;left:0;width:0;height:1px;background:var(--orange);transition:width .25s}.nav a:hover:after{width:100%}.header-cta{font-size:14px;font-weight:600;display:flex;align-items:center;gap:32px;padding:10px 0;border-bottom:1px solid #7b8374}.header-cta span{font-size:24px}.menu-toggle,.nav .mobile-contact{display:none}.hero{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1.02fr 1fr;padding:46px 4vw 0;position:relative;isolation:isolate;overflow:hidden}.hero-grid{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,transparent calc(25% - 1px),#ffffff05 25%,transparent calc(25% + 1px),transparent calc(75% - 1px),#ffffff05 75%,transparent calc(75% + 1px))}.hero-copy{position:relative;z-index:3;padding:7px 0 40px}.hero .eyebrow{display:flex;align-items:center;gap:15px;font-size:12px}.hero h1{font-family:var(--display);font-weight:600;letter-spacing:-.018em;font-size:clamp(76px,8.95vw,157px);line-height:.88;margin:32px -65px 31px 0}.hero h1>span{display:block}.hero-last{color:var(--orange)}.hero .accent{color:var(--paper)}.hero-description{display:flex;gap:25px;align-items:start}.hero-index{font-size:12px;letter-spacing:.06em;color:#acb6a6;padding-top:4px}.hero-description p{font-size:16px;color:#c5cdbf;line-height:1.55}.hero-link{margin:24px 0 0 69px;display:inline-flex;gap:36px;align-items:center;font-size:14px;padding:0 0 9px;border-bottom:1px solid #677060}.hero-link span{color:var(--orange);font-size:25px}.hero-craft{position:relative;min-width:0;padding-bottom:28px;align-self:start}.hero-photo{height:clamp(510px,43vw,705px);position:relative;overflow:hidden;clip-path:polygon(9% 0,100% 0,100% 91%,91% 100%,0 100%,0 9%)}.hero-photo img{height:100%;object-position:50% 45%;filter:saturate(.65);transform:scale(1.04);transition:transform 1s cubic-bezier(.2,.7,.2,1)}.hero-craft:hover .hero-photo img{transform:scale(1.09)}.hero-craft figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:16px;color:#b9c1b4;font-size:10px;letter-spacing:.07em}.round-link{position:absolute;bottom:66px;left:-57px;width:116px;height:116px;border-radius:50%;background:var(--orange);color:var(--ink);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:800;line-height:1.25;text-align:center;transition:transform .35s}.round-link>span:last-child{font-size:26px;font-weight:400}.round-link:hover{transform:rotate(-10deg)}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid #ffffff26;font-size:10px;letter-spacing:.11em;color:#b0b8aa;margin-top:35px}.hero-scroll{color:var(--paper)}
/* The story moves from the whole space to its individual layers. */
.statement{display:grid;grid-template-columns:1fr 3fr;gap:45px;padding-top:110px;padding-bottom:120px}.statement .section-kicker{align-self:start;display:block;padding-top:16px}.statement .cross{display:block;margin-top:100px}.statement h2{font-size:clamp(60px,7vw,115px);line-height:.94}.statement h2 span{color:#757f6e}.statement-bottom{display:grid;grid-template-columns:1fr 1.25fr;gap:55px;margin-top:50px}.statement-lead{font-size:22px;line-height:1.45;letter-spacing:-.035em}.statement-bottom>div{max-width:480px}.statement-bottom>div p{margin-bottom:18px;font-size:16px;color:#50594c}.inside{background:#dfe4d9;padding-top:50px;padding-bottom:64px}.inside .section-kicker{border-color:#aeb8a6}.inside-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:45px 0 15px}.inside h2{font-size:clamp(65px,7.5vw,116px);line-height:.94}.inside h2 span{color:#64775c}.inside-heading>p{font-size:16px;max-width:370px;padding-bottom:6px;color:#46533e}.assembly-layout{display:grid;grid-template-columns:1.9fr 1fr;align-items:center;gap:4vw}.assembly-visual{min-width:0;position:relative;margin-left:-3vw;padding-top:25px}.drawing-label{position:absolute;top:30px;left:4vw;font-size:10px;letter-spacing:.1em;color:#4c5c43}.assembly-svg{display:block;width:100%;height:auto;overflow:visible}.drawing-foot{border-top:1px solid #b0bda6;margin:10px 0 0 3vw;padding-top:14px;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.1em;color:#4c5c43}.drawing-foot span:nth-child(2){font-size:20px}.layer{transition:opacity .6s,transform .65s cubic-bezier(.2,.7,.2,1)}.assembly-visual[data-stage="1"] .layer-board,.assembly-visual[data-stage="1"] .layer-finish{opacity:.08;transform:translateX(26px)}.assembly-visual[data-stage="2"] .layer-frame,.assembly-visual[data-stage="2"] .layer-finish{opacity:.1}.assembly-visual[data-stage="2"] .layer-board{transform:translateX(-20px)}.assembly-visual[data-stage="3"] .layer-frame,.assembly-visual[data-stage="3"] .layer-board{opacity:.08}.assembly-visual[data-stage="3"] .layer-finish{transform:translateX(-70px)}.assembly-visual:not([data-stage="0"]) .diagram-callouts{opacity:.6}.assembly-controls{padding-top:25px}.stage-tabs{display:flex;gap:0;border-bottom:1px solid #adbaa2}.stage-tabs button{border:0;background:none;padding:12px 16px;font-size:13px;border-bottom:3px solid transparent;margin-bottom:-2px}.stage-tabs button:first-child{padding-left:0;padding-right:21px}.stage-tabs button[aria-selected="true"]{border-color:var(--ink);font-weight:800}.stage-tabs button:hover{background:#cad3c1}.stage-index{font-family:var(--display);font-size:50px;font-weight:500;color:#798b6e;line-height:1;display:block;margin:25px 0 15px}#stage-panel{min-height:320px}#stage-title{font-family:var(--display);font-weight:500;font-size:clamp(34px,3.15vw,49px);letter-spacing:-.02em;line-height:1.04}#stage-copy{font-size:15px;color:#414f39;margin-top:20px;max-width:370px}.assembly-controls .text-link{margin-top:20px}.diagram-note{font-size:12px;line-height:1.6;color:#4f5f44;border-top:1px solid #adbaa2;margin-top:24px;padding-top:18px;max-width:380px}
/* Selected projects have room to breathe, with an intentionally uneven rhythm. */
.work{padding-bottom:100px}.work-heading{display:flex;justify-content:space-between;align-items:end;margin:50px 0 55px;gap:30px}.work-heading h2{font-size:clamp(70px,8.3vw,135px);line-height:.87}.work-heading h2 span{color:#757f6e}.work-heading p{font-size:20px;line-height:1.5;margin-bottom:5px;max-width:350px}.project-feature,.project-card,.project-strip{border:0;background:none;padding:0;text-align:left;width:100%;display:block}.project-picture{position:relative;overflow:hidden;background:#d7ddd2}.project-feature .project-picture{aspect-ratio:1.96}.project-picture img{height:100%;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s;filter:saturate(.8)}.project-feature:hover img,.project-card:hover img{transform:scale(1.035);filter:saturate(1)}.photo-corner{position:absolute;left:22px;top:20px;color:white;background:#172019d6;font-size:11px;letter-spacing:.08em;padding:7px 11px}.view-project{position:absolute;bottom:24px;right:24px;background:var(--paper);color:var(--ink);padding:13px 19px;font-size:13px;display:flex;gap:35px;align-items:center;transition:background .25s}.view-project>span{font-size:22px}.project-feature:hover .view-project,.project-card:hover .view-project{background:var(--orange)}.project-title{display:grid;grid-template-columns:1fr auto 28px;gap:28px;align-items:baseline;border-bottom:1px solid var(--line);padding:21px 0}.project-title h3{font-weight:500;font-size:clamp(22px,2.3vw,35px);letter-spacing:-.045em}.project-title>span{font-size:12px;color:#5a6454}.project-title .project-icon{font-size:25px;color:var(--ink);justify-self:end}.project-pair{display:grid;grid-template-columns:1.06fr 1fr;gap:5vw;margin-top:70px;align-items:start}.project-card .project-picture{aspect-ratio:1.32}.project-card .project-title{grid-template-columns:1fr auto;gap:12px}.project-card .project-title h3{grid-column:1;grid-row:1}.project-card .project-title>span:not(.project-icon){grid-column:1;grid-row:2}.project-card .project-title .project-icon{grid-column:2;grid-row:1/3}.offset-project{padding-top:135px}.offset-project .project-picture{aspect-ratio:1.07}.project-strip{display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:45px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:75px}.project-strip img{aspect-ratio:1.72;filter:saturate(.6);transition:filter .3s}.project-strip:hover img{filter:saturate(1)}.project-strip .eyebrow{font-size:11px;color:#596851}.project-strip h3{font-size:36px;font-weight:500;letter-spacing:-.04em;margin:13px 0 9px}.project-strip p{font-size:14px;color:#55614e}.strip-arrow{font-size:46px;transition:transform .3s}.project-strip:hover .strip-arrow{transform:translate(5px,-5px)}
.field{display:grid;grid-template-columns:1.07fr 1fr;min-height:620px;background:var(--ink);color:var(--paper)}.field-image{overflow:hidden;position:relative}.field-image img{height:100%;max-height:730px;object-position:50% 48%;filter:saturate(.7)}.field-caption{padding:80px 6vw 75px 5vw;display:flex;flex-direction:column;justify-content:center;align-items:start}.field-caption .eyebrow{font-size:11px;color:#bac5b1}.field-caption h2{font-size:clamp(44px,4.6vw,78px);line-height:.99;margin:35px 0 30px}.field-caption h2 span{color:var(--orange)}.field-caption p{font-size:16px;color:#c3cebb;line-height:1.7}.field-caption .text-link{margin-top:25px}
.capabilities{padding-bottom:125px}.capability-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:8vw;margin-top:55px}.capability-intro{align-self:start;position:sticky;top:40px}.capability-intro h2{font-size:clamp(47px,4.8vw,75px);line-height:.98}.capability-intro h2 span{color:#717e68}.capability-intro p{color:#52604a;max-width:300px;margin-top:25px}.capability-intro .text-link{margin-top:25px}.service-list details{border-bottom:1px solid var(--line)}.service-list details:first-child{border-top:1px solid var(--line)}.service-list summary{list-style:none;display:flex;align-items:center;gap:28px;padding:28px 0;cursor:pointer}.service-list summary::-webkit-details-marker{display:none}.service-list summary>span:first-child{font-size:12px;color:#66725d;align-self:start;padding-top:3px}.service-list summary h3{font-family:var(--display);font-weight:500;font-size:33px;line-height:1.1;flex:1;letter-spacing:-.015em}.plus{width:16px;height:16px;position:relative;flex-shrink:0}.plus:before,.plus:after{content:'';position:absolute;background:currentColor;transition:transform .25s}.plus:before{width:16px;height:1px;top:7px}.plus:after{width:1px;height:16px;left:7px}.service-list details[open] .plus:after{transform:rotate(90deg)}.service-list details[open] summary h3{color:#9d351d}.service-description{padding:0 38px 27px 43px}.service-description p{font-size:15px;color:#53614b;max-width:530px}.service-description>span{display:block;font-size:10px;letter-spacing:.07em;color:#4a5b40;margin-top:17px}
/* A clear handoff from portfolio to conversation. */
.contact{background:var(--orange);padding-top:46px;padding-bottom:85px}.contact .section-kicker{border-color:#873b2760}.contact-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin:45px 0 50px}.contact-heading h2{font-size:clamp(90px,10.5vw,172px);line-height:.86;letter-spacing:-.02em}.contact-heading h2>span{color:#171a18}.contact-round{width:130px;height:130px;border:1px solid #171a1890;border-radius:50%;display:grid;place-items:center;font-size:74px;line-height:1;transition:background .3s,color .3s;flex-shrink:0;margin-bottom:8px}.contact-round:hover{color:var(--orange);background:var(--ink)}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:10vw;border-top:1px solid #873b2760;padding-top:45px}.contact-lead{font-size:27px;font-weight:500;letter-spacing:-.04em;line-height:1.35;margin-bottom:20px}.contact-start>p:not(.contact-lead){font-size:15px}.contact-start .button{margin-top:26px}.contact-note{font-size:12px;display:block;margin-top:12px}.contact-details>.eyebrow{display:block;margin-bottom:15px;font-size:11px}.email-address{font-size:clamp(19px,2.5vw,38px);font-weight:500;letter-spacing:-.045em;line-height:1.2;display:block;overflow-wrap:anywhere}.copy-email{background:none;border:0;border-bottom:1px solid #171a1860;padding:10px 0 6px;font-size:12px;display:flex;gap:25px;margin-top:12px}.copy-status{font-size:12px;display:block;min-height:24px;margin-top:5px}.contact-location{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:25px}.contact-location .eyebrow{font-size:10px;display:block;margin-bottom:12px}.phone{font-size:25px;letter-spacing:-.04em}.contact-location p{font-size:14px;line-height:1.7}.footer{background:var(--ink);color:var(--paper);padding:45px 4vw 20px;overflow:hidden}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:0 1vw}.footer-top p{font-size:11px;letter-spacing:.08em;color:#bac3b2;line-height:1.7}.back-top{display:flex;gap:35px;font-size:12px;align-items:center}.back-top span{font-size:25px}.footer-word{font-family:var(--display);font-weight:600;font-size:23.6vw;line-height:.89;letter-spacing:-.027em;display:block;padding-top:30px;white-space:nowrap}.footer-word span{color:var(--orange)}.footer-bottom{border-top:1px solid #ffffff26;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 1vw 0;margin-top:40px;font-size:10px;color:#b3bdab;letter-spacing:.04em}
/* Project views preserve native focus trapping and keyboard behavior. */
.project-dialog{border:0;background:var(--paper);color:var(--ink);padding:0;max-width:1200px;width:92vw;max-height:92svh;overflow:auto;box-shadow:0 25px 100px #0007}.project-dialog::backdrop{background:#0c140ef0;backdrop-filter:blur(8px)}.dialog-close{position:sticky;float:right;z-index:5;top:18px;margin:18px 18px -62px 0;border:0;display:flex;align-items:center;gap:25px;font-size:13px;background:var(--paper);padding:8px 18px;height:44px}.dialog-close span{font-size:27px}.dialog-image{background:var(--ink)}.dialog-image img{height:48svh;object-fit:cover}.dialog-body{padding:37px 40px;display:grid;grid-template-columns:1.2fr 1fr;gap:45px}.dialog-heading h2{font-size:50px;margin:12px 0;line-height:.99}.dialog-heading>p{font-size:14px;color:#54634a}.dialog-story>p{margin-top:15px;font-size:15px;max-width:420px;color:#4f5d46}.dialog-story .text-link{margin-top:12px}.dialog-navigation{border-top:1px solid var(--line);padding:16px 40px;display:flex;align-items:center;justify-content:space-between}.dialog-navigation button{display:flex;align-items:center;gap:18px;border:0;background:none;padding:10px 0;font-size:23px}.dialog-navigation button>span{font-size:13px}#dialog-counter{font-size:12px;color:#55644a}
@keyframes enter-up{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes image-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:no-preference){.hero h1>span{animation:enter-up .85s both}.hero h1>span:nth-child(2){animation-delay:.1s}.hero h1>span:nth-child(3){animation-delay:.2s}.revealed{animation:enter-up .75s both}.stage-changed{animation:enter-up .35s both}}
@media(min-width:1700px){.section-pad{padding-left:max(6vw,calc((100vw - 1550px)/2));padding-right:max(6vw,calc((100vw - 1550px)/2))}.hero{padding-left:max(4vw,calc((100vw - 1750px)/2));padding-right:max(4vw,calc((100vw - 1750px)/2));padding-top:55px}.hero h1{font-size:170px}.hero-photo{height:710px}}
@media(max-width:1050px){.header{gap:20px}.nav{gap:24px}.header-cta{gap:15px}.hero h1{font-size:9.8vw}.hero-photo{height:560px}.hero-craft figcaption>span:last-child{display:none}.hero-description{gap:15px}.hero-index{display:none}.hero-link{margin-left:0}.round-link{width:94px;height:94px;left:-35px;font-size:10px}.hero-foot{font-size:9px}.statement{grid-template-columns:1fr 3.5fr;gap:30px}.statement h2{font-size:8vw}.statement-bottom{gap:30px;grid-template-columns:1fr 1.25fr}.assembly-layout{grid-template-columns:1.65fr 1fr;gap:2vw}.stage-tabs button{padding:12px}.stage-tabs button:first-child{padding-right:12px}.assembly-controls{padding-top:30px}.drawing-label{top:45px;font-size:9px}.project-title{gap:18px}.field{min-height:540px}.field-caption{padding:55px 5vw}.field-caption h2{font-size:5vw}.capability-layout{gap:5vw}.contact-grid{gap:6vw}.contact-round{width:100px;height:100px;font-size:55px}.contact-lead{font-size:24px}.contact-location{gap:15px}.phone{font-size:22px}}
@media(max-width:780px){.header-cta{display:none}.hero{padding-top:35px}.hero h1{font-size:10.1vw;margin-top:28px}.hero .eyebrow{font-size:10px;gap:8px}.hero-description p{font-size:14px}.hero-photo{height:455px}.hero-foot>span:first-child{display:none}.hero-craft figcaption{font-size:9px}.section-pad{padding:70px 6vw}.statement{display:block}.statement .section-kicker{display:flex;margin-bottom:40px}.statement .cross{margin:0}.statement h2{font-size:11vw}.statement-bottom{grid-template-columns:1fr 1.35fr;margin-top:35px}.statement-lead{font-size:20px}.inside-heading{margin-top:35px}.inside h2{font-size:10vw}.inside-heading>p{font-size:14px}.assembly-layout{display:block}.assembly-visual{width:90%;margin:0 auto}.assembly-controls{display:grid;grid-template-columns:1.4fr 1fr;gap:0 35px;align-items:start;padding-top:25px}.stage-tabs{grid-column:1/-1}.stage-tabs button{flex:1;padding:14px}#stage-panel{min-height:0;padding-bottom:0}#stage-title{font-size:39px}#stage-copy{font-size:15px}.diagram-note{margin-top:34px}.drawing-label{left:0;top:25px}.work-heading h2{font-size:12vw}.work-heading p{font-size:16px}.project-feature .project-picture{aspect-ratio:1.5}.project-pair{gap:30px;margin-top:40px}.offset-project{padding-top:80px}.project-title h3{font-size:25px}.project-card .project-title h3{font-size:23px}.view-project{font-size:12px;padding:10px 14px;right:15px;bottom:15px}.project-card .view-project{display:none}.photo-corner{font-size:10px;top:15px;left:15px}.project-strip{grid-template-columns:180px 1fr auto;gap:25px;margin-top:50px}.project-strip h3{font-size:30px}.field{grid-template-columns:1fr 1fr;min-height:470px}.field-caption{padding:45px 5vw}.field-caption h2{font-size:5.6vw;margin:25px 0}.field-caption .eyebrow{font-size:10px}.field-caption p{font-size:14px}.capability-layout{grid-template-columns:1fr;gap:45px;margin-top:40px}.capability-intro{position:static;display:grid;grid-template-columns:1fr 1fr;gap:15px 40px}.capability-intro h2{grid-row:1/3;font-size:8vw}.capability-intro p{margin:0;font-size:15px}.capability-intro .text-link{margin-top:5px;justify-self:start}.service-list summary h3{font-size:33px}.contact-heading h2{font-size:12.2vw}.contact-round{width:78px;height:78px;font-size:43px}.contact-grid{gap:45px;grid-template-columns:1fr}.contact-start{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.contact-lead{grid-row:1/3;margin:0}.contact-start .button{margin-top:20px;justify-self:start;grid-column:2}.contact-note{grid-column:2}.email-address{font-size:31px}.contact-location{max-width:600px}.contact-details{border-top:1px solid #873b2760;padding-top:30px}.dialog-body{padding:28px;gap:25px}.dialog-heading h2{font-size:38px}.dialog-story>p{font-size:14px}}
@media(max-width:600px){html{scroll-padding-top:15px}.header{height:82px;padding:0 6vw}.brand-main{font-size:33px}.brand-sub{font-size:9px}.menu-toggle{display:flex;flex-direction:column;gap:7px;width:44px;height:44px;padding:12px 7px;align-items:center;justify-content:center;border:0;background:none}.menu-toggle span{width:27px;height:1px;background:var(--paper);transition:transform .25s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}.nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--ink);padding:28px 6vw 35px;flex-direction:column;gap:12px;border-bottom:1px solid #59654c}.nav.open{display:flex}.nav a{font-size:22px;line-height:1.3}.nav .mobile-contact{display:block;color:var(--orange);font-size:16px;margin-top:10px}.hero{display:block;padding:32px 6vw 0}.hero-copy{padding:0 0 22px}.hero .eyebrow{font-size:10px;gap:12px;letter-spacing:.075em}.hero h1{font-size:19vw;line-height:.87;margin:24px 0 22px;letter-spacing:-.015em}.hero-description p{font-size:15px}.hero-link{margin-top:19px;font-size:13px;padding-bottom:5px}.hero-craft{margin:8px 0 25px 21%;padding-bottom:28px}.hero-photo{height:340px;clip-path:polygon(12% 0,100% 0,100% 89%,88% 100%,0 100%,0 11%)}.hero-photo img{object-position:50% 50%}.round-link{width:96px;height:96px;left:-43px;bottom:50px;font-size:10px}.hero-foot{margin-top:0;padding:19px 0;font-size:8px;gap:10px;letter-spacing:.065em}.hero-scroll{white-space:nowrap}.section-pad{padding:55px 6vw}.section-kicker{font-size:10px;letter-spacing:.045em;padding-top:14px}.section-kicker>span:last-child:not(.cross){font-size:9px}.statement .section-kicker{margin-bottom:32px}.statement h2{font-size:13.5vw;line-height:.94}.statement-bottom{display:block;margin-top:26px}.statement-lead{font-size:21px;margin-bottom:25px}.statement-bottom>div p{font-size:15px;margin-bottom:15px}.inside-heading{display:block;margin:30px 0 0}.inside h2{font-size:16vw;line-height:.94}.inside-heading>p{font-size:15px;margin-top:20px}.assembly-visual{width:112%;margin-left:-6%;padding-top:38px}.drawing-label{left:6%;top:25px;font-size:8px}.assembly-svg{width:100%}.drawing-foot{margin:0 5%;font-size:8px}.assembly-controls{display:block;padding-top:20px}.stage-tabs button{font-size:13px;padding:14px 10px}.stage-index{font-size:43px;margin:24px 0 12px}#stage-title{font-size:37px}#stage-copy{font-size:15px;margin-top:15px;max-width:none}.diagram-note{font-size:11px;margin-top:25px;padding-top:16px;max-width:none}.work-heading{display:block;margin:30px 0 30px}.work-heading h2{font-size:14.6vw;line-height:.89}.work-heading p{font-size:16px;margin:22px 0 0}.project-feature .project-picture{aspect-ratio:1.13}.project-title{grid-template-columns:1fr auto;gap:11px;padding:18px 0}.project-title h3{grid-column:1;grid-row:1;font-size:26px}.project-title>span:not(.project-icon){grid-column:1;grid-row:2;font-size:12px}.project-title .project-icon{grid-column:2;grid-row:1/3}.photo-corner{font-size:9px;top:12px;left:12px;letter-spacing:.03em}.view-project{font-size:12px;padding:9px 13px;right:12px;bottom:12px;gap:20px}.project-pair{display:block;margin-top:32px}.project-card{margin-top:32px;padding-top:0}.project-card .project-picture{aspect-ratio:1.22}.project-card .project-title h3{font-size:26px}.project-card .view-project{display:flex}.project-strip{margin-top:34px;grid-template-columns:95px 1fr auto;gap:16px;padding:22px 0}.project-strip img{height:105px;aspect-ratio:auto;object-position:42% 50%}.project-strip .eyebrow{font-size:9px}.project-strip h3{font-size:24px;margin:8px 0}.project-strip p{font-size:11px}.strip-arrow{font-size:28px}.field{display:flex;flex-direction:column;min-height:0}.field-image img{height:380px;object-position:50% 50%}.field-caption{padding:44px 6vw 50px}.field-caption h2{font-size:12.3vw;line-height:1;margin:25px 0}.field-caption p{font-size:15px}.capability-layout{margin-top:33px;gap:32px}.capability-intro{display:block}.capability-intro h2{font-size:12vw}.capability-intro p{margin-top:21px}.capability-intro .text-link{margin-top:14px}.service-list summary{padding:23px 0;gap:20px}.service-list summary h3{font-size:29px}.service-list summary>span:first-child{font-size:11px}.service-description{padding:0 0 24px 34px}.service-description p{font-size:14px}.service-description>span{font-size:9px;letter-spacing:.035em}.contact .section-kicker>span:last-child{display:none}.contact-heading{gap:13px;margin:32px 0 30px}.contact-heading h2{font-size:14.1vw;line-height:.89}.contact-round{width:48px;height:48px;font-size:28px;margin-bottom:2px}.contact-grid{padding-top:28px;gap:30px}.contact-start{display:block}.contact-lead{font-size:25px;margin-bottom:18px}.contact-start>p:not(.contact-lead){font-size:14px}.contact-start .button{margin-top:23px;padding:15px 18px;font-size:13px;gap:25px}.contact-note{font-size:11px;margin-top:11px}.contact-details>.eyebrow{font-size:10px}.email-address{font-size:25px}.contact-location{gap:18px;margin-top:20px}.contact-location .eyebrow{font-size:9px;letter-spacing:.04em}.phone{font-size:22px}.contact-location p{font-size:12px}.footer{padding:32px 6vw 20px}.footer-top{padding:0}.footer-top p{font-size:9px;letter-spacing:.04em}.back-top{font-size:10px;gap:15px}.footer-word{font-size:22.7vw;padding-top:30px}.footer-bottom{font-size:9px;display:block;padding-top:18px;margin-top:24px}.footer-bottom>span{display:block;margin-top:6px}.project-dialog{width:96vw;max-height:94svh}.dialog-image img{height:34svh;object-fit:cover}.dialog-close{top:12px;margin:12px 12px -56px 0;height:40px;font-size:12px;padding:7px 14px}.dialog-body{display:block;padding:24px}.dialog-heading h2{font-size:38px}.dialog-story{border-top:1px solid var(--line);padding-top:22px;margin-top:23px}.dialog-story>p{font-size:14px}.dialog-navigation{padding:12px 24px}.dialog-navigation button{font-size:22px}.dialog-navigation button>span{font-size:12px}.dialog-body .eyebrow{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-photo img{transform:none}.layer{transform:none!important}}

/* Refinements from desktop and keyboard review. */
.skip:not(:focus){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.stage-tabs button{font-size:14px;min-height:48px}
.stage-index{color:#677b5b}.statement .cross{color:#ad351a}
.project-strip img{height:auto}
@media(max-width:600px){.project-strip img{height:105px}}
.copy-email{font-size:14px;min-height:44px}
.view-project{font-size:14px}
@media(max-width:600px){.stage-tabs button{font-size:14px}.view-project{font-size:13px}.hero-scroll{font-size:9px}.hero-foot{font-size:9px}}

/* Readable supporting copy at every breakpoint. */
.hero .eyebrow,.hero-index,.hero-foot,.hero-craft figcaption,.section-kicker,.section-kicker>span:last-child:not(.cross),.drawing-label,.drawing-foot,.diagram-note,.photo-corner,.project-strip .eyebrow,.field-caption .eyebrow,.service-description>span,.contact-details>.eyebrow,.contact-location .eyebrow,.contact-note,.footer-top p,.footer-bottom,.dialog-body .eyebrow{font-size:12px}
.hero-description p,.statement-bottom>div p,.inside-heading>p,#stage-copy,.field-caption p,.capability-intro p,.service-description p,.contact-start>p:not(.contact-lead),.dialog-story>p{font-size:16px}
.hero-foot{letter-spacing:.035em}.hero-craft figcaption{letter-spacing:.015em}.stage-tabs button{padding-left:14px;padding-right:14px}.stage-tabs button:first-child{padding-right:16px}
.project-title>span:not(.project-icon),.project-strip p,.contact-location p{font-size:14px}
.footer-top p{letter-spacing:.03em}.footer-bottom{letter-spacing:0}
@media(max-width:1050px){.hero-foot>span:first-child{display:none}.stage-tabs button{padding-left:9px;padding-right:9px}.stage-tabs button:first-child{padding-right:10px}}
@media(max-width:600px){.hero .eyebrow{letter-spacing:.015em}.hero-foot{display:block;padding:17px 0}.hero-foot>span{display:block}.hero-foot>span:first-child{display:none}.hero-scroll{font-size:12px;margin-top:5px}.hero-craft figcaption{font-size:11px}.section-kicker{gap:15px}.section-kicker>span:last-child:not(.cross){text-align:right}.diagram-callouts{display:none}.drawing-foot{font-size:10px}.drawing-label{font-size:10px}.photo-corner{font-size:11px}.service-description>span{letter-spacing:0}.contact-location .eyebrow{font-size:11px}.footer-top p{font-size:10px}.footer-bottom{font-size:11px}.project-strip{grid-template-columns:88px 1fr 25px;gap:13px}.project-strip p{font-size:12px}.project-strip .eyebrow{font-size:11px}.project-strip h3{font-size:24px}}
@media(max-width:600px){.hero-craft figcaption,.drawing-label,.drawing-foot,.photo-corner,.contact-location .eyebrow,.footer-top p,.footer-bottom,.project-strip .eyebrow{font-size:12px}}
