:root{--white:#fff;--black:#0a0a0a;--grey:#777;--gutter:clamp(16px,2vw,34px);--header:54px;--serif:"Newsreader",Georgia,"Times New Roman",serif;--text-meta:.72rem;--text-small:.8rem;--text-nav:.9rem;--text-body:1rem;--list-title-size:clamp(1.4rem,2.2vw,2rem)}
*{box-sizing:border-box}
html{font-size:18px;scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--black);font:400 16px/1.4 "DM Sans",Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}
.eyebrow{margin:0;font-size:var(--text-meta);line-height:1.2;text-transform:uppercase;letter-spacing:.03em}

@media (pointer:fine){
  html,body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8.5' fill='%23fff' fill-opacity='.72' stroke='%230a0a0a' stroke-width='1.25'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%230a0a0a'/%3E%3C/svg%3E") 12 12,auto}
  a,a *,button,button *,[role="button"],[role="button"] *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='%230a0a0a'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%23fff'/%3E%3C/svg%3E") 12 12,auto!important}
}

.site-header{position:sticky;z-index:30;top:0;height:var(--header);display:grid;grid-template-columns:1fr auto;align-items:center;padding:0 var(--gutter);background:rgba(255,255,255,.97)}
.wordmark{display:inline-flex;gap:.24em;align-items:baseline;font-family:"DM Sans",Arial,sans-serif;font-size:1.05rem;font-weight:500;letter-spacing:-.045em}
.site-header nav{display:flex;gap:clamp(18px,2vw,34px);align-items:center;font-size:var(--text-nav)}
.site-header nav a:hover,.site-header nav a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.menu-toggle{display:none;padding:0;border:0;background:none;font-size:.85rem}

.project-stage{min-height:calc(100svh - var(--header));display:grid;grid-template-columns:1fr minmax(0,4fr) 1fr;grid-template-rows:1fr auto;gap:var(--gutter);padding:clamp(24px,4vw,64px) var(--gutter) var(--gutter)}
.stage-note{display:none}
.stage-image{grid-column:2;align-self:center;display:flex;justify-content:center;min-width:0}
.stage-image img{width:auto;max-width:100%;max-height:calc(100svh - 160px);object-fit:contain}
.stage-caption{grid-column:1/-1;display:grid;grid-template-columns:70px 2fr 1fr 1fr auto;gap:var(--gutter);align-items:baseline;font-size:var(--text-meta)}
.stage-caption h1{margin:0;font-size:var(--text-small);font-weight:400}
.stage-caption span{text-transform:uppercase;letter-spacing:.02em}

.archive{padding:clamp(110px,16vw,260px) var(--gutter) clamp(130px,18vw,300px)}
.archive-header{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:clamp(100px,14vw,220px)}
.archive-header h2{margin:4px 0 0;font-size:1rem;font-weight:400}
.view-switch{display:flex;gap:16px}
.view-switch button{padding:2px 0;border:0;background:none;font-size:var(--text-small);cursor:pointer}
.view-switch button.active{text-decoration:underline;text-underline-offset:3px}

.archive-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(130px,18vw,300px) var(--gutter);align-items:start}
.archive-item{grid-column:span 5;min-width:0}
.archive-item.item-large{grid-column:span 7}
.archive-item.item-small{grid-column:span 4}
.archive-item:nth-child(4n+2){margin-top:clamp(80px,11vw,170px)}
.archive-item:nth-child(4n+3){grid-column-start:2}
.archive-item figure{margin:0;background:transparent}
.archive-item img{width:100%;height:auto;object-fit:contain;transition:opacity .18s}
.archive-item:hover img{opacity:.7}
.archive-item>div:last-child{display:grid;grid-template-columns:55px 1.6fr 1fr 1fr;gap:10px;padding-top:7px;font-size:var(--text-meta)}
.archive-item h3{margin:0;font-size:var(--text-small);font-weight:400;line-height:1.25}
.archive-item span{text-transform:uppercase;letter-spacing:.015em}
.type-field{aspect-ratio:16/10;display:flex!important;flex-direction:column!important;justify-content:space-between;padding:12px!important;background:var(--black);color:var(--white)}
.type-field span,.type-field small{font-size:var(--text-meta)}
.type-field strong{align-self:center;margin:auto 0;font-size:clamp(4rem,10vw,10rem);font-weight:400;line-height:.7;letter-spacing:-.09em}

.archive-index{border-top:1px solid var(--black)}
.archive-index[hidden]{display:none}
.archive-index>.index-head,.archive-index>a,.archive-index>div:not(.index-head){display:grid;grid-template-columns:.5fr 2.1fr 1fr 1.3fr .35fr;gap:var(--gutter);align-items:baseline;padding:8px 0;border-bottom:1px solid #ddd;font-size:var(--text-small)}
.archive-index>.index-head{font-size:var(--text-meta);text-transform:uppercase}
.archive-index strong{font-size:.9rem;font-weight:400}
.archive-index>a:hover strong{text-decoration:underline;text-underline-offset:3px}
.archive-index>a span:first-child,.archive-index>div span:first-child,.archive-index span:last-child{font-size:var(--text-meta);text-transform:uppercase}

.practice{padding:clamp(140px,18vw,300px) var(--gutter)}
.practice-lead{display:grid;grid-template-columns:1fr 2fr 2fr;gap:var(--gutter)}
.practice-lead h2{grid-column:2/4;max-width:900px;margin:0;font-size:clamp(1.55rem,2.8vw,3rem);font-weight:400;line-height:1.1;letter-spacing:-.035em}
.practice-body{display:grid;grid-template-columns:1fr 2fr 2fr;gap:var(--gutter);margin-top:clamp(90px,12vw,180px)}
.profile-copy{grid-column:2;max-width:520px}
.profile-copy p{margin:0 0 1em;font-size:var(--text-body)}
.practice-facts{grid-column:3;margin:0;border-top:1px solid var(--black)}
.practice-facts div{display:grid;grid-template-columns:1fr 2fr;gap:15px;padding:8px 0;border-bottom:1px solid #ddd}
.practice-facts dt{font-size:var(--text-meta);text-transform:uppercase}
.practice-facts dd{margin:0;font-size:var(--text-small)}

.contact{min-height:70svh;display:grid;grid-template-columns:1fr 2fr 2fr;grid-template-rows:auto 1fr auto;gap:var(--gutter);padding:clamp(80px,10vw,150px) var(--gutter) var(--gutter);background:var(--white);color:var(--black)}
.contact h2{grid-column:2/4;align-self:center;margin:0;font-size:clamp(1.8rem,4vw,4.8rem);font-weight:400;line-height:1;letter-spacing:-.045em;overflow-wrap:anywhere}
.contact h2 a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.contact form{grid-column:2/3;align-self:end;display:grid;grid-template-columns:1fr 1fr;gap:18px var(--gutter);margin-bottom:clamp(50px,7vw,100px)}
.contact label{display:grid;gap:4px;font-size:var(--text-meta);text-transform:uppercase}
.contact label:last-of-type{grid-column:1/-1}
.contact input,.contact textarea{width:100%;padding:7px 0;border:0;border-bottom:1px solid var(--black);border-radius:0;outline:0;background:transparent;font-size:.9rem}
.contact textarea{resize:vertical}
.contact button{justify-self:start;padding:5px 0;border:0;background:transparent;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.contact footer{grid-column:1/-1;display:grid;grid-template-columns:1fr 3fr 1fr;gap:var(--gutter);font-size:var(--text-meta);text-transform:uppercase}
.contact footer span:last-child{text-align:right}

.project-page{padding:clamp(70px,9vw,140px) var(--gutter) 30px}
.detail-header .wordmark{white-space:nowrap}
.project-hero{display:grid;grid-template-columns:1fr 2fr 2fr;gap:var(--gutter);margin-bottom:clamp(100px,14vw,220px)}
.project-kicker{margin:0;font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.03em}
.project-title{grid-column:2/4}
.project-title h1{margin:0;font-family:var(--serif);font-size:clamp(2.55rem,5.35vw,5.9rem);font-weight:500;line-height:.92;letter-spacing:-.035em}
.project-title p{max-width:620px;margin:30px 0 0;font-size:var(--text-body)}
.project-view-switch{grid-column:1;grid-row:2;display:flex;gap:18px;align-self:end}
.project-view-switch button{padding:2px 0;border:0;background:none;font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.03em;cursor:pointer}
.project-view-switch button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:4px}
.project-page[data-project-view="images"] .project-hero{margin-bottom:clamp(55px,7vw,105px)}
.project-page[data-project-view="images"] .project-kicker,
.project-page[data-project-view="images"] .project-title p,
.project-page[data-project-view="images"] .project-information,
.project-page[data-project-view="images"]>.project-narrative,
.project-page[data-project-view="images"] .state-test,
.project-page[data-project-view="images"] .state-parts{display:none}
.project-page[data-project-view="information"] .gallery,
.project-page[data-project-view="information"] .state-banner{display:none}
.project-detail-open{height:100svh;overflow:hidden}
.project-page.has-project-stage{height:calc(100svh - var(--header));overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:12px var(--gutter)}
.project-page.has-project-stage .project-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--gutter);min-height:46px;margin:0}
.project-page.has-project-stage .project-kicker,.project-page.has-project-stage .project-title p{display:none}
.project-page.has-project-stage .project-title{min-width:0}
.project-page.has-project-stage .project-title h1{font-size:clamp(1.35rem,2.15vw,2.25rem);line-height:1;letter-spacing:-.025em}
.project-page.has-project-stage .project-title h1 br{display:none}
.project-page.has-project-stage .project-view-switch{flex:0 0 auto;grid-column:auto;grid-row:auto;margin:0}
.project-page.has-project-stage[data-project-view="images"] .gallery[data-carousel-ready="true"],
.project-page.has-project-stage[data-project-view="images"] .state-banner{height:100%;min-height:0}
.project-page.has-project-stage .project-footer{display:none}
.project-page.has-project-stage[data-project-view="information"]>.state-test,
.project-page.has-project-stage[data-project-view="information"]>.state-parts,
.project-page.has-project-stage[data-project-view="information"]>.state-housing{display:none}
.project-information{display:grid;grid-template-columns:1fr 2fr 2fr;gap:var(--gutter);margin-bottom:clamp(120px,16vw,240px);padding-top:8px;border-top:1px solid var(--black)}
.project-page.has-project-stage .project-information{height:100%;min-height:0;grid-template-columns:minmax(220px,.8fr) minmax(0,2.2fr);grid-template-rows:minmax(0,1fr);gap:var(--gutter);margin:0;padding-top:clamp(18px,2.5vh,30px);overflow:hidden}
.project-information .project-facts{grid-column:1;display:block;margin:0;padding:0;border:0}
.project-information .project-facts div{display:grid;grid-template-columns:minmax(68px,.75fr) 1.25fr;gap:12px;padding:8px 0;border-bottom:1px solid #ddd}
.project-information .project-narrative{grid-column:2/4;display:grid;grid-template-columns:1fr 2fr;gap:var(--gutter);margin:0}
.project-page.has-project-stage .project-information .project-narrative{grid-column:2;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);align-content:start;height:100%;min-height:0}
.project-page.has-project-stage .project-information .project-narrative h2{font-size:clamp(1.8rem,3vw,3.4rem)}
.project-page.has-project-stage .project-information .project-narrative>div{max-width:640px}
.project-page.has-project-stage .project-information .project-narrative p{font-size:clamp(.86rem,1.05vw,1rem);line-height:1.42}
.project-information .project-narrative h2{grid-column:1}
.project-information .project-narrative>div{grid-column:2}
.project-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);margin:0 0 clamp(80px,10vw,160px) 20%;padding-top:8px;border-top:1px solid var(--black)}
.project-facts div{display:grid;gap:3px}
.project-facts dt{font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.03em}
.project-facts dd{margin:0;font-size:var(--text-small)}
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(100px,14vw,220px) var(--gutter);align-items:start}
.gallery figure{grid-column:span 5;margin:0}
.gallery figure:nth-child(even){grid-column:8 / span 5}
.gallery .full{grid-column:2/12}
.gallery img{width:100%;height:auto;object-fit:contain}
.gallery[data-carousel-ready="true"]{position:relative;display:block;width:100%;height:clamp(440px,72svh,920px);min-height:0}
.gallery[data-carousel-ready="true"] figure,
.gallery[data-carousel-ready="true"] figure:nth-child(even),
.gallery[data-carousel-ready="true"] .full{width:100%;height:calc(100% - 42px);margin:0}
.gallery[data-carousel-ready="true"] figure[hidden]{display:none}
.gallery[data-carousel-ready="true"] img{width:100%;height:100%;max-width:none;object-fit:contain;object-position:center}
.gallery-click-zone{position:absolute;z-index:2;top:0;bottom:42px;width:50%;padding:0;border:0;background:transparent}
.gallery-click-zone--previous{left:0}
.gallery-click-zone--next{right:0}
.gallery-navigation{position:absolute;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;height:42px;padding-top:10px;border-top:1px solid var(--black);font-size:var(--text-meta);letter-spacing:.03em}
.gallery-navigation button{width:max-content;padding:0;border:0;background:none;font-size:1rem;line-height:1}
.gallery-navigation button:last-child{justify-self:end}
.gallery-counter{font-variant-numeric:tabular-nums}
.project-narrative{display:grid;grid-template-columns:1fr 1fr 2fr;gap:var(--gutter);margin:clamp(140px,18vw,280px) 0}
.project-narrative h2{grid-column:2;margin:0;font-family:var(--serif);font-size:clamp(2.05rem,3.55vw,4rem);font-weight:500;line-height:1;letter-spacing:-.025em}
.project-narrative>div{grid-column:3;max-width:600px}
.project-narrative p{margin:0 0 1em;font-size:var(--text-body)}
.project-narrative a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.project-footer{display:flex;justify-content:space-between;padding-top:8px;border-top:1px solid var(--black);font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.03em}
.project-footer a:hover{text-decoration:underline;text-underline-offset:3px}

.state-banner{min-height:60svh;padding:var(--gutter);display:flex;flex-direction:column;justify-content:space-between;background:var(--black);color:var(--white)}
.state-banner span,.state-banner small{font-size:var(--text-meta);text-transform:uppercase}
.state-banner strong{align-self:center;font-family:var(--serif);font-size:clamp(7rem,22vw,24rem);font-weight:500;line-height:.72;letter-spacing:-.065em}
.state-test{display:grid;grid-template-columns:1fr 2fr 2fr;gap:var(--gutter);padding:clamp(140px,18vw,280px) 0}
.state-test>div{grid-column:2/4}
.state-test h2{margin:0 0 35px;font-family:var(--serif);font-size:clamp(2.2rem,4vw,4.5rem);font-weight:500;line-height:1;letter-spacing:-.03em}
.state-test p:not(.project-kicker){max-width:620px;font-size:var(--text-body)}
.state-parts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--black)}
.state-parts article{min-height:18rem;padding:8px 12px 8px 0;border-right:1px solid #ddd}
.state-parts article:last-child{border-right:0;padding-left:12px}
.state-parts span{font-size:var(--text-meta)}
.state-parts h3{margin:55px 0 15px;font-family:var(--serif);font-size:1.45rem;font-weight:500}
.state-parts p{font-size:var(--text-small)}
.state-housing{margin-bottom:clamp(140px,18vw,280px)}

/* Minimal single-screen home */
.home-page{height:100svh;overflow:hidden}
.home-header{position:fixed;right:0;left:0;background:transparent}
.home-header nav{display:flex;gap:clamp(18px,2vw,34px)}
.home-header nav button,.panel-header button{padding:0;border:0;background:none;font-size:var(--text-meta);font-weight:500;text-transform:uppercase;letter-spacing:.055em;cursor:pointer}
.home-header nav button:hover,.home-header nav button:focus-visible,.panel-header button:hover,.panel-header button:focus-visible{text-decoration:underline;text-underline-offset:3px}
.home-shell{height:100svh;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:calc(var(--header) + 3vh) var(--gutter) var(--gutter)}
.home-work{min-height:0;display:flex;align-items:center;justify-content:center;padding:2vh 8vw 4vh}
.home-work img{width:auto;max-width:100%;max-height:calc(100svh - 150px);object-fit:contain;transition:opacity .18s}
.home-work:hover img{opacity:.76}
.home-caption{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:var(--gutter);font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.02em}

.info-panel{position:fixed;z-index:50;inset:0;overflow:auto;padding:0 var(--gutter) var(--gutter);background:var(--white)}
.info-panel[hidden]{display:none}
.panel-header{position:sticky;z-index:2;top:0;height:var(--header);display:flex;align-items:center;justify-content:space-between;background:var(--white)}
.panel-header h1{margin:0;font-size:var(--text-meta);font-weight:500;text-transform:uppercase;letter-spacing:.055em}
.project-filters{display:flex;flex-wrap:wrap;gap:8px clamp(16px,2.2vw,34px);padding-top:clamp(70px,12vh,150px);border-bottom:1px solid var(--black)}
.project-filters button{padding:0 0 8px;border:0;background:none;font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.03em;cursor:pointer}
.project-filters button[aria-pressed="true"]{text-decoration:underline;text-underline-offset:4px}
.project-filter-status{margin:10px 0 0;font-size:var(--text-meta);text-transform:uppercase;letter-spacing:.03em;color:var(--grey)}
.project-list{padding-top:clamp(32px,5vh,60px)}
.project-list-head,.project-list>a,.project-list>div:not(.project-list-head){display:grid;grid-template-columns:2.2fr 1fr 1.5fr .35fr;gap:var(--gutter);align-items:baseline;padding:10px 0;border-bottom:1px solid #ddd;font-size:var(--text-small)}
.project-list>a[hidden]{display:none}
.project-list-head{border-bottom:1px solid var(--black);font-size:var(--text-meta);text-transform:uppercase}
.project-list strong{display:inline-block;font-family:var(--serif);font-size:var(--list-title-size);font-weight:500;line-height:1.05;letter-spacing:-.018em;transition:transform .18s ease}
.project-list>a:hover strong{text-decoration:underline;text-underline-offset:4px}
.project-list>a:hover strong{transform:translateX(5px)}
.project-list span:last-child{font-size:var(--text-meta);text-transform:uppercase}
.panel-copy{display:grid;grid-template-columns:2fr 1fr 1fr;gap:clamp(50px,8vw,150px) var(--gutter);padding-top:clamp(90px,15vh,180px)}
.panel-copy p{margin:0 0 1em}
.panel-lead{font-family:var(--serif);font-size:clamp(2.3rem,5.2vw,5.7rem);font-weight:500;line-height:.95;letter-spacing:-.03em}
.panel-copy>div{font-size:var(--text-body)}
.panel-copy dl{margin:0}
.panel-copy dl div{padding:7px 0;border-top:1px solid #ddd}
.panel-copy dt{font-size:var(--text-meta);text-transform:uppercase}
.panel-copy dd{margin:6px 0 0;font-size:var(--text-small)}
.contact-simple{min-height:calc(100svh - var(--header) - var(--gutter));display:grid;grid-template-rows:1fr auto auto;gap:clamp(40px,8vh,100px);padding-top:clamp(90px,15vh,180px)}
.email-link{align-self:start;font-family:var(--serif);font-size:clamp(1.9rem,4.7vw,5.4rem);font-weight:500;line-height:.98;letter-spacing:-.03em;overflow-wrap:anywhere}
.email-link:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
.contact-links{display:flex;gap:clamp(20px,4vw,60px);font-size:.85rem}
.contact-links a:hover{text-decoration:underline;text-underline-offset:3px}
.contact-footer{display:flex;justify-content:space-between;font-size:var(--text-meta);text-transform:uppercase}
.notes-list{padding-top:clamp(90px,15vh,180px)}
.notes-list a{display:grid;grid-template-columns:.35fr .55fr 3fr;gap:var(--gutter);align-items:baseline;padding:16px 0;border-bottom:1px solid #ddd}
.notes-list a:first-child{border-top:1px solid var(--black)}
.notes-list time,.notes-list span{font-size:var(--text-meta);text-transform:uppercase}
.notes-list strong{display:inline-block;font-family:var(--serif);font-size:var(--list-title-size);font-weight:500;line-height:1.05;letter-spacing:-.018em;transition:transform .18s ease}
.notes-list a:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.notes-list a:hover strong{transform:translateX(5px)}

@media(max-width:760px){
  html{font-size:17px}
  :root{--header:50px;--gutter:14px}
  .menu-toggle{display:block}
  .site-header nav{position:absolute;top:100%;right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:0 var(--gutter);background:var(--white)}
  .site-header.open nav{display:flex}
  .site-header nav a{padding:10px 0}
  .project-stage{min-height:auto;grid-template-columns:1fr;padding-top:36px}
  .stage-image{grid-column:1}
  .stage-image img{max-height:none}
  .stage-caption{grid-column:1;grid-template-columns:48px 1fr;gap:4px 10px;margin-top:30px}
  .stage-caption span:nth-of-type(n+2){grid-column:2}
  .archive{padding-top:120px}
  .archive-header{margin-bottom:100px}
  .archive-gallery{grid-template-columns:1fr;gap:130px}
  .archive-item,.archive-item.item-large,.archive-item.item-small,.archive-item:nth-child(4n+3){grid-column:1;margin-top:0}
  .archive-item>div:last-child{grid-template-columns:48px 1fr;gap:4px 10px}
  .archive-item>div:last-child span:nth-of-type(n+2){grid-column:2}
  .type-field{min-height:260px}
  .archive-index>.index-head,.archive-index>a,.archive-index>div:not(.index-head){grid-template-columns:45px 1fr auto;gap:8px}
  .archive-index .index-head span:nth-child(3),.archive-index .index-head span:nth-child(4),.archive-index>a span:nth-child(3),.archive-index>a span:nth-child(4),.archive-index>div span:nth-child(3),.archive-index>div span:nth-child(4){display:none}
  .practice-lead,.practice-body{grid-template-columns:1fr}
  .practice-lead h2,.profile-copy,.practice-facts{grid-column:1}
  .practice-lead h2{margin-top:35px;font-size:1.75rem}
  .practice-body{margin-top:85px}
  .contact{grid-template-columns:1fr;padding-top:100px}
  .contact h2,.contact form,.contact footer{grid-column:1}
  .contact form{grid-template-columns:1fr}
  .contact label:last-of-type{grid-column:1}
  .contact footer{grid-template-columns:1fr;gap:6px}
  .contact footer span:last-child{text-align:left}
  .detail-header{height:78px;grid-template-columns:1fr;align-content:center;gap:4px}
  .detail-header nav{position:static;display:flex;flex-direction:row;gap:16px;padding:0;background:none}
  .detail-header .wordmark{white-space:normal;line-height:1}
  .detail-header .wordmark span{display:inline}
  .project-hero{grid-template-columns:1fr}
  .project-title{grid-column:1;margin-top:35px}
  .project-view-switch{grid-column:1;grid-row:auto;margin-top:26px}
  .project-page[data-project-view="images"] .project-title{margin-top:0}
  .project-title h1{font-size:3.35rem}
  .project-facts{margin-left:0;grid-template-columns:repeat(2,1fr)}
  .project-page[data-project-view="information"] .project-hero{margin-bottom:70px}
  .project-information{grid-template-columns:1fr;margin-bottom:130px}
  .project-information .project-facts,.project-information .project-narrative{grid-column:1}
  .project-information .project-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gutter);margin-bottom:80px}
  .project-information .project-facts div{display:block;padding:8px 0}
  .project-information .project-facts dd{margin-top:4px}
  .project-information .project-narrative{grid-template-columns:1fr;margin:0}
  .project-information .project-narrative h2,.project-information .project-narrative>div{grid-column:1}
  .project-information .project-narrative h2{margin-bottom:38px}
  .gallery{grid-template-columns:1fr;gap:100px}
  .gallery figure,.gallery figure:nth-child(even),.gallery .full{grid-column:1}
  .gallery[data-carousel-ready="true"]{height:clamp(390px,64svh,720px)}
  .project-page.has-project-stage{height:calc(100svh - 78px);gap:8px;padding:8px var(--gutter) 10px}
  .project-page.has-project-stage .project-hero,.project-page.has-project-stage[data-project-view="information"] .project-hero{min-height:42px;gap:12px;margin:0}
  .project-page.has-project-stage .project-title{max-width:58%;margin-top:0}
  .project-page.has-project-stage .project-title h1{font-size:clamp(1.08rem,5vw,1.35rem);line-height:.98}
  .project-page.has-project-stage .project-view-switch{gap:12px;margin-top:0}
  .project-page.has-project-stage[data-project-view="images"] .gallery[data-carousel-ready="true"]{height:100%}
  .project-page.has-project-stage .project-information{height:100%;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:12px;margin:0;padding-top:10px}
  .project-page.has-project-stage .project-information .project-facts{grid-column:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--gutter);margin:0}
  .project-page.has-project-stage .project-information .project-facts div{display:block;padding:5px 0}
  .project-page.has-project-stage .project-information .project-facts dd{margin-top:2px}
  .project-page.has-project-stage .project-information .project-narrative{grid-column:1;grid-template-columns:1fr;gap:10px;height:auto;min-height:0;margin:0}
  .project-page.has-project-stage .project-information .project-narrative h2,.project-page.has-project-stage .project-information .project-narrative>div{grid-column:1}
  .project-page.has-project-stage .project-information .project-narrative h2{margin:0;font-size:clamp(1.45rem,7vw,2rem);line-height:.95}
  .project-page.has-project-stage .project-information .project-narrative p{margin:0 0 .65em;font-size:clamp(.82rem,1.85vh,.94rem);line-height:1.3}
  .project-narrative{grid-template-columns:1fr;margin:140px 0}
  .project-narrative h2,.project-narrative>div{grid-column:1}
  .project-narrative h2{margin-bottom:40px}
  .project-footer{flex-direction:column;gap:10px}
  .state-banner{min-height:450px}
  .state-test{grid-template-columns:1fr}
  .state-test>div{grid-column:1;margin-top:40px}
  .state-parts{grid-template-columns:1fr}
  .state-parts article{min-height:auto;padding:20px 0;border-right:0;border-bottom:1px solid #ddd}
  .state-parts article:last-child{padding-left:0}
  .state-parts h3{margin:35px 0 10px}
  .home-header{height:78px;grid-template-columns:1fr;align-content:center;gap:4px}
  .home-header nav{position:static;display:flex;flex-direction:row;gap:16px;padding:0;background:transparent}
  .home-header nav button{font-size:.78rem}
  .home-shell{padding-top:calc(78px + 2vh)}
  .home-work{padding:2vh 0 3vh}
  .home-work img{max-height:calc(100svh - 170px)}
  .home-caption{grid-template-columns:1fr auto;gap:3px 14px}
  .home-caption span:nth-child(2),.home-caption span:nth-child(3){grid-column:1}
  .home-caption span:last-child{grid-column:2;grid-row:1}
  .project-filters{flex-wrap:nowrap;overflow-x:auto;padding-top:55px;scrollbar-width:none}
  .project-filters::-webkit-scrollbar{display:none}
  .project-filters button{flex:0 0 auto}
  .project-filter-status{margin-top:8px}
  .project-list{padding-top:28px}
  .project-list-head,.project-list>a,.project-list>div:not(.project-list-head){grid-template-columns:1fr auto;gap:3px 14px;padding:12px 0}
  .project-list-head span:nth-child(2),.project-list-head span:nth-child(3),.project-list>a span:nth-child(2),.project-list>a span:nth-child(3),.project-list>div span:nth-child(2),.project-list>div span:nth-child(3){display:none}
  .panel-copy{grid-template-columns:1fr;padding-top:65px}
  .panel-lead{font-size:2.35rem}
  .contact-simple{padding-top:70px}
  .email-link{font-size:1.72rem}
  .contact-links{flex-direction:column;gap:8px}
  .notes-list{padding-top:65px}
  .notes-list a{grid-template-columns:46px 1fr;gap:4px 12px;padding:14px 0}
  .notes-list strong{grid-column:1/-1;margin-top:8px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.archive-item img,.project-list strong,.notes-list strong{transition:none}}
