/* IGWENAGU ARCHITECTS — architectural folio system
   Deliberate layout, restrained typography, progressive enhancement, zero scroll hijacking.
   Type roles: DM Sans / navigation and headings; IBM Plex Mono / metadata; Source Serif 4 / narrative.
*/
:root{--paper:#f8f7f4;--ink:#181918;--secondary:#595b58;--quiet:#deded8;--header:58px;--sans:'DM Sans',Arial,Helvetica,sans-serif;--mono:'IBM Plex Mono',monospace;--serif:'Source Serif 4',Georgia,serif;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}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;color:inherit;cursor:pointer}img{max-width:100%;display:block}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid #154c59;outline-offset:3px}::selection{background:#c8d5cb;color:#151515}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:15px;background:var(--ink);color:white;z-index:1000;padding:13px 18px}.skip-link:focus{top:10px}
.eyebrow{font:500 11px/1.5 var(--mono);color:var(--secondary);text-transform:uppercase;letter-spacing:.015em}.page-shell{max-width:1590px;margin-inline:auto;padding-inline:clamp(22px,5.2vw,86px)}
/* Header / identity. A thin, always available navigation shelf. */
.site-header{height:var(--header);position:sticky;top:0;z-index:50;background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,2.7vw,43px);border-bottom:1px solid var(--quiet)}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap;font-size:clamp(12px,1.3vw,17px);font-weight:700;letter-spacing:-.065em}.brand img{width:32px;height:32px;object-fit:contain}.brand-light{font-weight:500}.desktop-nav{display:flex;align-items:center;gap:clamp(25px,3.8vw,65px);height:100%;font:500 12px var(--mono)}.desktop-nav a{display:flex;align-items:center;height:100%;border-bottom:2px solid transparent;padding-top:2px}.desktop-nav a:hover,.desktop-nav a[aria-current]{border-color:var(--ink)}.mobile-menu-button{display:none;border:0;background:none;height:44px;min-width:44px;font-size:23px}.mobile-nav{background:var(--paper);border-bottom:1px solid var(--quiet);position:fixed;top:var(--header);left:0;right:0;z-index:49;padding:18px 24px 30px}.mobile-nav:not([hidden]){display:block}.mobile-nav a{display:flex;justify-content:space-between;border-bottom:1px solid var(--quiet);padding:18px 3px;font-size:24px}
/* The folio is one continuous document stream. Two photographs literally share a boundary. */
.desktop-folio{display:flex;width:100%;align-items:stretch;gap:0}.folio-stream{flex:1;min-width:0}.folio-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;height:calc(100svh - var(--header));min-height:420px;scroll-margin-top:var(--header)}.folio-plate{display:block;position:relative;min-width:0;width:100%;height:100%;background:#e1e0d9;overflow:hidden;margin:0;padding:0;border:0}.folio-plate img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.35,1);transform:scale(1.001)}.folio-plate:hover>img{transform:scale(1.025)}.folio-matted{background:#e7e3db;display:flex;align-items:center;justify-content:center;padding:clamp(18px,3vw,45px)}.folio-matted>img{width:100%;height:auto;max-height:100%;max-width:720px;object-fit:contain;transform:none!important;box-shadow:0 9px 35px #1414141a}.plate-hover{position:absolute;bottom:17px;right:17px;background:var(--paper);color:var(--ink);padding:10px 13px;font:500 11px var(--mono);opacity:0;transform:translateY(5px);transition:opacity .18s,transform .18s}.folio-plate:hover .plate-hover,.folio-plate:focus-visible .plate-hover{opacity:1;transform:none}
.folio-rail{position:sticky;top:var(--header);height:calc(100svh - var(--header));align-self:flex-start;display:flex;flex:0 0 64px;background:var(--paper);overflow:hidden;z-index:2}.folio-thumbnails{display:flex;flex:0 0 32px;width:32px;flex-direction:column;justify-content:center;gap:7px;padding:9px 3px;min-height:0;overflow:hidden}.thumb-button{padding:0;flex:0 1 39px;min-height:15px;height:39px;width:26px;border:0;background:transparent;opacity:.38;transition:opacity .18s,filter .18s;overflow:hidden}.thumb-button img{width:100%;height:100%;object-fit:cover}.thumb-button:hover,.thumb-button:focus-visible,.thumb-button.is-active{opacity:1}.folio-title{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.folio-title a{font:500 clamp(10px,.8vw,13px)/1.1 var(--mono);writing-mode:vertical-rl;white-space:nowrap;max-height:95%;overflow:hidden;text-overflow:ellipsis}.left-rail .folio-title a{transform:rotate(180deg)}.right-rail .folio-thumbnails{align-items:flex-end}.mobile-folio{display:none}.home-outro{padding-block:75px 95px;display:flex;justify-content:space-between;align-items:flex-end;gap:35px;border-top:1px solid var(--quiet)}.home-outro p{font-size:clamp(24px,3vw,42px);letter-spacing:-.045em;line-height:1.27;max-width:720px;margin:20px 0 0}.underline-link{font:500 12px var(--mono);display:flex;gap:12px;border-bottom:1px solid var(--ink);padding-bottom:8px;white-space:nowrap}
/* Work: a precise portfolio index; no fake scale or fake complexity. */
.page-heading{padding:clamp(62px,7vw,115px) 0 clamp(42px,6vw,80px)}.page-heading h1{font:400 clamp(62px,8vw,126px)/.96 var(--sans);letter-spacing:-.07em;margin:14px 0 0}.page-heading>p:not(.eyebrow){font:400 17px/1.7 var(--serif);max-width:600px;color:var(--secondary);margin:25px 0 0}.work-page{padding-bottom:110px}.work-controls{border-top:1px solid var(--ink);border-bottom:1px solid var(--quiet);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0}.work-filters,.view-switch{display:flex;gap:clamp(13px,2vw,28px);flex-wrap:wrap;align-items:center}.work-controls button{background:none;border:0;color:var(--secondary);padding:7px 0;font:500 11px var(--mono)}.work-controls button[aria-pressed="true"]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}.work-controls button:hover{color:var(--ink)}.work-item{padding:26px 0 43px;border-bottom:1px solid var(--quiet)}.work-item[hidden]{display:none}.work-item-heading{display:grid;grid-template-columns:55px minmax(170px,2.1fr) minmax(120px,1fr) minmax(150px,1.1fr) 20px;align-items:baseline;gap:16px;margin-bottom:25px}.work-item-heading h2{font:400 clamp(22px,2.3vw,34px)/1.18 var(--sans);letter-spacing:-.048em;margin:0}.work-item-heading:hover h2{text-decoration:underline;text-underline-offset:5px}.work-item-heading>span:not(.eyebrow){font:400 11px/1.55 var(--mono);color:var(--secondary)}.work-item-heading>span:last-child{text-align:right}.work-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:clamp(210px,26vw,420px);overflow:hidden}.work-image{background:#e1e0d9;overflow:hidden}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.work-triptych:hover img{transform:scale(1.015)}.work-image.is-contained{background:#e7e3db;padding:30px;display:flex;align-items:center;justify-content:center}.work-image.is-contained img{max-width:720px;height:auto;object-fit:contain;transform:none}.work-register.is-index .work-item{padding:0}.work-register.is-index .work-item-heading{margin:0;padding:22px 0}.work-register.is-index .work-triptych{display:none}
/* Architectural case studies. Factual specifications and editorial images. */
.case-hero{height:min(78svh,850px);background:#dedcd7;overflow:hidden}.case-hero img{width:100%;height:100%;object-fit:cover}.case-hero.is-contained{background:#e7e3db;display:flex;align-items:center;justify-content:center;padding:clamp(25px,5vw,65px)}.case-hero.is-contained img{height:auto;max-width:720px;max-height:100%;object-fit:contain;box-shadow:0 10px 35px #14141420}.case-content{padding-bottom:100px}.back-link{display:inline-block;font:500 11px var(--mono);padding:24px 0;color:var(--secondary)}.back-link:hover{color:var(--ink)}.case-heading{padding:35px 0 55px}.case-heading h1{max-width:1180px;margin:15px 0 0;font-size:clamp(44px,7vw,102px);letter-spacing:-.07em;line-height:1.06;font-weight:400}.case-heading>p:not(.eyebrow){font-size:clamp(22px,3vw,39px);letter-spacing:-.035em;color:#696a65;margin:17px 0 0}.case-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:0;padding:25px 0 31px;border-top:1px solid var(--ink);border-bottom:1px solid var(--quiet)}.case-facts dt{font:500 11px var(--mono);color:var(--secondary);text-transform:uppercase}.case-facts dd{font-size:14px;line-height:1.5;margin:10px 0 0}.case-story{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;padding:clamp(70px,9vw,145px) 0}.case-story>.eyebrow{grid-column:1/span 3}.case-story>div{grid-column:6/span 7;font:400 19px/1.8 var(--serif);color:#373935}.case-story h2{font:400 clamp(25px,2.6vw,38px)/1.38 var(--sans);letter-spacing:-.04em;margin:0 0 38px}.case-story p{margin:0 0 22px}.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:clamp(24px,4vw,60px)}.project-figure{margin:0;min-width:0}.project-figure.wide{grid-column:1/-1}.gallery-button{width:100%;border:0;padding:0;display:block;position:relative;height:clamp(260px,38vw,620px);background:#e1e0d9;overflow:hidden}.project-figure.wide .gallery-button{height:clamp(320px,58vw,800px)}.gallery-button img{height:100%;width:100%;object-fit:cover;transition:transform .45s}.gallery-button:hover img{transform:scale(1.014)}.gallery-button.is-contained{background:#e7e3db;display:flex;align-items:center;justify-content:center;padding:25px}.gallery-button.is-contained img{width:100%;height:auto;max-width:720px;max-height:100%;object-fit:contain;transform:none}.image-expand{position:absolute;right:12px;bottom:12px;background:var(--paper);padding:8px 10px;font:500 10px var(--mono);opacity:0}.gallery-button:hover .image-expand,.gallery-button:focus-visible .image-expand{opacity:1}.project-figure figcaption{display:flex;justify-content:space-between;border-left:1px solid var(--ink);padding-left:12px;gap:12px;margin-top:12px;font:400 11px/1.45 var(--mono);color:var(--secondary)}.case-disclaimer{max-width:700px;font:400 14px/1.65 var(--serif);color:var(--secondary);margin-top:50px}.next-project{border-top:1px solid var(--ink);margin-top:110px;padding-top:27px;display:grid;grid-template-columns:1.4fr .6fr;gap:25px}.next-project>.eyebrow{grid-column:1/-1}.next-project>a:not(.next-project-image){font:400 clamp(31px,4vw,56px)/1.17 var(--sans);letter-spacing:-.055em;display:flex;justify-content:space-between;gap:20px}.next-project-image{height:210px;overflow:hidden}.next-project-image img{width:100%;height:100%;object-fit:cover}
/* Practice, contact, and not-found pages. */
.practice-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);margin-bottom:110px}.practice-intro h2{font-size:clamp(32px,4vw,62px);line-height:1.2;letter-spacing:-.05em;font-weight:400;margin:0}.practice-intro>div{font:400 19px/1.8 var(--serif)}.practice-intro p{margin:0 0 23px}.practice-image{height:clamp(350px,59vw,850px);overflow:hidden}.practice-image img{width:100%;height:100%;object-fit:cover}.practice-register{display:grid;grid-template-columns:1fr 1fr;gap:clamp(45px,8vw,135px);padding:110px 0}.practice-register h2{font:400 clamp(29px,3.1vw,45px)/1.22 var(--sans);letter-spacing:-.045em;margin:22px 0}.practice-row{border-top:1px solid var(--quiet);padding:22px 0;display:grid;grid-template-columns:1fr 1.2fr;gap:18px}.practice-row h3{font:400 22px var(--sans);letter-spacing:-.04em;margin:0}.practice-row p{font:400 15px/1.55 var(--serif);margin:0;color:var(--secondary)}.practice-inquiry{border-top:1px solid var(--ink);padding:28px 0 90px;display:flex;justify-content:space-between;gap:25px}.practice-inquiry>a{font:400 clamp(29px,3.5vw,48px) var(--sans);letter-spacing:-.05em;display:flex;gap:20px}.contact-page{padding-bottom:145px}.contact-lead{font-size:clamp(26px,3.9vw,54px);line-height:1.36;letter-spacing:-.048em;max-width:950px;margin:0 0 105px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;border-top:1px solid var(--ink)}.contact-grid>section{padding-top:25px}.contact-grid h2{font:400 clamp(25px,3vw,43px)/1.25 var(--sans);letter-spacing:-.04em;margin:35px 0 25px}.contact-grid section p{font:400 16px/1.6 var(--serif);color:var(--secondary)}.contact-grid a:hover{text-decoration:underline;text-underline-offset:6px}.contact-footnote{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:115px}.contact-footnote p{font:400 23px/1.55 var(--serif);margin:0}.not-found{padding-top:140px;padding-bottom:140px;min-height:65vh}.not-found h1{font-size:clamp(48px,8vw,105px);letter-spacing:-.06em;font-weight:400;margin:20px 0}.not-found p{font:400 19px/1.7 var(--serif)}.not-found p a{text-decoration:underline}
/* Accessible lightbox: keyboard support, meaningful focus order, readable labels. */
.lightbox{position:fixed;inset:0;background:#0d100ff2;z-index:100;color:#f8f7f4;display:grid;grid-template-rows:64px minmax(0,1fr) 70px;padding:0 clamp(15px,3vw,48px)}.lightbox[hidden]{display:none}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;font:400 12px var(--mono)}.lightbox-stage{display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-button{width:45px;height:45px;border:1px solid #aeb2b0;background:transparent;color:inherit}.lightbox-actions{display:flex;gap:12px}
.site-footer{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.35fr;gap:30px;background:#ebeae5;border-top:1px solid var(--quiet);padding:60px clamp(22px,5vw,86px)}.site-footer>div{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.site-footer .eyebrow{margin-bottom:12px}.site-footer p{font-size:clamp(19px,2.3vw,31px);line-height:1.3;letter-spacing:-.05em;margin:0}.site-footer a,.site-footer span:not(.eyebrow){font:400 12px/1.55 var(--mono)}.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}.site-footer div:last-child{color:var(--secondary)}
@media(min-width:700px) and (max-width:1150px){.folio-rail{flex-basis:52px}.folio-thumbnails{flex-basis:26px;width:26px;gap:5px}.thumb-button{width:20px;height:29px;flex-basis:29px}.folio-title a{font-size:10px}.work-item-heading{grid-template-columns:38px 2fr 1fr 20px}.work-item-heading>span:nth-last-child(2){display:none}}
@media(min-width:700px) and (max-width:880px){.folio-row{min-height:350px;height:70svh}.work-triptych{height:250px}.case-story>.eyebrow{grid-column:1/span 4}.case-story>div{grid-column:5/span 8}.site-footer{grid-template-columns:1.5fr 1fr 1fr}}
@media(max-width:850px){.site-footer{grid-template-columns:repeat(2,minmax(0,1fr))}.work-item-heading{grid-template-columns:35px 1fr 20px}.work-item-heading>span:not(.eyebrow){display:none}.case-story>.eyebrow{grid-column:1/span 4}.case-story>div{grid-column:5/span 8}.practice-register{gap:40px}}
@media(max-width:699px){.site-header{padding-inline:16px}.brand{font-size:12px}.brand img{width:29px;height:29px}.desktop-nav{display:none}.mobile-menu-button{display:block}.desktop-folio{display:none}.mobile-folio{display:flex;align-items:stretch}.mobile-rail{flex:0 0 48px}.mobile-rail .folio-thumbnails{width:24px;flex-basis:24px;gap:3px;padding:5px 2px}.mobile-rail .thumb-button{width:20px;height:26px;flex:0 1 26px;min-height:9px}.mobile-rail .folio-title a{font-size:10px}.mobile-stream{width:calc(100% - 48px);min-width:0}.mobile-folio-row{width:100%;aspect-ratio:4/5;scroll-margin-top:var(--header)}.mobile-folio-row .folio-plate{height:100%}.mobile-folio-row .folio-matted{padding:16px}.mobile-folio-row .folio-matted img{width:100%;height:auto}.plate-hover{display:none}.home-outro{display:block;padding-block:52px 65px}.home-outro p{font-size:27px}.home-outro .underline-link{margin-top:30px;width:max-content}.page-shell{padding-inline:22px}.page-heading{padding:60px 0 55px}.page-heading h1{font-size:70px}.work-controls{align-items:flex-start;flex-direction:column;gap:12px}.work-filters{gap:15px}.work-item{padding:22px 0 31px}.work-item-heading{grid-template-columns:30px minmax(0,1fr) 16px;gap:10px}.work-item-heading h2{font-size:24px}.work-triptych{height:200px;grid-template-columns:repeat(2,minmax(0,1fr))}.work-triptych .work-image:nth-child(3){display:none}.case-hero{height:clamp(330px,60svh,620px)}.case-hero.is-contained{height:330px;padding:20px}.case-heading{padding:25px 0 48px}.case-heading h1{font-size:48px}.case-heading>p:not(.eyebrow){font-size:23px}.case-facts{grid-template-columns:1fr 1fr;gap:25px}.case-story{display:block;padding:75px 0}.case-story>div{padding-top:24px}.case-story h2{font-size:28px}.case-story p{font-size:17px}.case-gallery{display:block}.project-figure{margin-bottom:34px}.gallery-button,.project-figure.wide .gallery-button{height:auto;aspect-ratio:5/4}.next-project{grid-template-columns:1fr;margin-top:65px;gap:18px}.next-project>a:not(.next-project-image){font-size:33px}.next-project-image{height:220px}.practice-intro,.practice-register{display:block;margin-bottom:65px}.practice-intro h2{font-size:36px}.practice-intro>div{font-size:17px;margin-top:30px}.practice-image{height:390px}.practice-register{padding:65px 0;margin:0}.practice-register>div+div{margin-top:40px}.practice-inquiry{display:block}.practice-inquiry>a{font-size:30px;margin-top:23px}.contact-lead{font-size:29px;margin-bottom:60px}.contact-grid{grid-template-columns:1fr;gap:55px}.contact-grid h2{font-size:31px}.contact-footnote{display:block;padding-top:75px}.contact-footnote p{font-size:19px;margin-top:25px}.site-footer{gap:45px 22px;padding:48px 22px}.site-footer>div:first-child,.site-footer>div:last-child{grid-column:1/-1}}
@media(max-width:360px){.brand{font-size:11px}.mobile-rail{flex-basis:43px}.mobile-stream{width:calc(100% - 43px)}.folio-thumbnails{min-width:0}.work-filters{gap:12px}.work-controls button{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
