
:root{--paper:#080808;--surface:#111111;--text:#F2F0EA;--secondary:#B3ACA1;--muted:#9E988F;--rule:#32302b;--accent:#BBA783;--highlight:#BBA783;--media:#201d17;--focus:#D2C5AD;--content:1100px;color-scheme:dark}
:root[data-theme=light]{--paper:#f5f3ee;--surface:#eeece5;--text:#161616;--secondary:#373735;--muted:#5e5c57;--rule:#cbc8be;--accent:#6E5735;--highlight:#A58961;--media:#e6e2d8;--focus:#6E5735;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:7rem}body{margin:0;background:var(--paper);color:var(--text);font-family:Inter,Geist,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:.24em}button,input{font:inherit}button{cursor:pointer;color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.08;letter-spacing:-.05em;font-weight:560}img{max-width:100%}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:4px}[hidden]{display:none!important}
.wrap{width:min(calc(100% - 64px),var(--content));margin-inline:auto}.skip{position:fixed;top:-80px;left:16px;padding:12px 18px;background:var(--text);color:var(--paper);z-index:99}.skip:focus{top:12px}
.topbar{height:89px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--rule)}.topbar a{text-decoration:none}.back{font-size:13px;color:var(--secondary);white-space:nowrap}.back span{margin-right:9px}.brand{display:flex;align-items:center;gap:12px;letter-spacing:.09em;font-size:13px;font-weight:750}.brand small{font-family:ui-monospace,monospace;font-size:10px;letter-spacing:.1em;font-weight:400;color:var(--muted);padding-left:6px}.brandmark{font-size:27px;font-weight:850;line-height:1}.branddot,.foot-logo span{color:var(--highlight)}.header-actions{display:flex;align-items:center;gap:12px}.theme-button,.contact-top{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:40px;border:1px solid var(--rule);border-radius:50px;background:transparent;font-size:12px;padding:6px 14px}.contact-top{color:var(--text)}.theme-button:hover,.contact-top:hover{background:var(--surface)}.theme-glyph{font-size:15px}.subnav{display:flex;align-items:center;gap:28px;min-height:69px;border-bottom:1px solid var(--rule)}.subnav a{position:relative;text-decoration:none;color:var(--secondary);font-size:13px;padding-block:22px}.subnav a[aria-current=page]{color:var(--text);font-weight:650}.subnav a[aria-current=page]:after{content:"";height:2px;background:var(--highlight);position:absolute;bottom:-1px;left:0;right:0}.nav-note{margin-left:auto;font:10px ui-monospace,monospace;letter-spacing:.08em;color:var(--muted)}
.eyebrow,.mono{font:11px/1.5 ui-monospace,"SFMono-Regular",Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.eyebrow{color:var(--accent)}.intro{padding-block:86px 69px;max-width:1000px}.intro h1{font-size:clamp(64px,11vw,148px);line-height:.88;letter-spacing:-.09em;margin:18px 0 28px}.intro h1 span{color:var(--accent)}.lede{font-size:clamp(17px,2.1vw,23px);line-height:1.5;color:var(--secondary);max-width:680px;letter-spacing:-.02em}.intro-bottom{display:flex;align-items:center;gap:25px;margin-top:32px;flex-wrap:wrap}.button-primary{background:var(--text);color:var(--paper);padding:13px 21px;border-radius:60px;text-decoration:none;font-size:13px;font-weight:650;display:inline-flex;gap:24px;align-items:center;min-height:48px}.button-primary:hover{background:var(--highlight);color:#111}.text-link{font-size:13px;text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:3px}.text-link:hover{border-color:var(--accent)}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;border-top:1px solid var(--rule);padding-block:25px 24px}.section-heading h2{font-size:clamp(24px,3.6vw,39px)}.section-heading span{font:11px ui-monospace,monospace;color:var(--muted)}.selected-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 22px;padding-bottom:82px}.selected-card{grid-column:span 6;min-width:0}.selected-card:nth-child(4n+1){grid-column:span 7}.selected-card:nth-child(4n+2){grid-column:span 5;margin-top:92px}.selected-card:nth-child(4n+3){grid-column:span 5}.selected-card:nth-child(4n+4){grid-column:span 7;margin-top:74px}.selected-card a{text-decoration:none}.selected-media{aspect-ratio:4/4.4;display:grid;place-items:center;background:var(--media);overflow:hidden;position:relative}.selected-card:nth-child(4n+1) .selected-media{aspect-ratio:5/4.5}.selected-media img{width:100%;height:100%;object-fit:contain;padding:6%;transition:transform .45s cubic-bezier(.22,1,.36,1)}.selected-card a:hover img{transform:scale(1.035)}.selected-number{position:absolute;top:14px;left:14px;font:10px ui-monospace,monospace;background:var(--paper);color:var(--text);padding:5px 8px}.selected-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:15px}.selected-meta h3{font-size:clamp(19px,2.6vw,27px);letter-spacing:-.05em}.selected-meta span{font:10px ui-monospace,monospace;color:var(--muted);text-transform:uppercase}.section-end{padding-bottom:90px}.section-end .button-primary{margin-top:24px}
.archive-heading{padding-top:72px;padding-bottom:25px}.archive-heading h1{font-size:clamp(58px,9vw,112px);margin:13px 0 22px;line-height:.92}.archive-heading .lede{font-size:17px}.archive-stats{display:flex;gap:20px;flex-wrap:wrap;padding-top:25px}.archive-stats span{font:11px ui-monospace,monospace;color:var(--muted)}
.tools{position:sticky;top:0;z-index:8;padding:18px 0 16px;background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:13px;flex-wrap:wrap}.search{width:220px;max-width:100%;min-height:43px;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--text);padding:9px 12px;outline-offset:2px;font-size:14px}.filter-controls{display:flex;gap:6px;flex-wrap:wrap}.filter-button,.view-button,.small-control{border:1px solid transparent;border-radius:50px;min-height:39px;padding:8px 13px;background:transparent;color:var(--secondary);font-size:12px}.filter-button[aria-pressed=true],.view-button[aria-pressed=true]{border-color:var(--rule);background:var(--surface);color:var(--text)}.filter-button:hover,.view-button:hover,.small-control:hover{background:var(--surface)}.view-controls{margin-left:auto;display:flex;gap:3px}.kente-line{height:3px;background:linear-gradient(90deg,#BBA783 0 25%,#877461 25% 38%,#829085 38% 49%,#B3ACA1 49% 62%,#8D7D75 62% 75%,#BBA783 75%);opacity:.9}.results-row{display:flex;justify-content:space-between;align-items:center;padding:22px 0;color:var(--muted);font:11px ui-monospace,monospace;gap:12px}.results-row button{border:0;text-decoration:underline;background:none;color:var(--accent);font-size:12px}.index-list{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:38px;align-items:start}.rows{min-width:0}.index-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto 24px;align-items:center;gap:16px;padding:17px 5px;border-top:1px solid var(--rule);position:relative}.index-row:last-child{border-bottom:1px solid var(--rule)}.index-row:focus-within,.index-row:hover{background:var(--surface)}.index-row:hover .row-title,.index-row:focus-within .row-title{color:var(--accent)}.index-row .row-number,.row-cat{font:10px ui-monospace,monospace;color:var(--muted);text-transform:uppercase}.index-row .row-title{text-decoration:none;font-size:clamp(23px,3.3vw,43px);line-height:1.15;letter-spacing:-.06em;font-weight:550}.row-arrow{font-size:21px}.preview-toggle{display:none}.index-preview{position:sticky;top:112px;background:var(--media);aspect-ratio:4/5;display:grid;place-items:center;overflow:hidden}.index-preview img{width:100%;height:100%;object-fit:contain;padding:7%;transition:opacity .2s}.preview-label{position:absolute;bottom:12px;left:12px;padding:5px 8px;background:var(--paper);color:var(--text);font:10px ui-monospace,monospace}.mobile-preview{display:none}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 19px}.archive-grid .index-card{text-decoration:none;min-width:0}.index-card .thumb{background:var(--media);aspect-ratio:4/5;display:grid;place-items:center;overflow:hidden}.index-card img{width:100%;height:100%;object-fit:contain;padding:6%;transition:transform .35s}.index-card:hover img{transform:scale(1.045)}.card-info{display:flex;justify-content:space-between;gap:12px;padding-top:13px}.card-info h3{font-size:19px}.card-info .mono{font-size:10px}.archive-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px;padding:15px 8px}.archive-wall .index-card:nth-child(5n+1){transform:rotate(-3deg);margin-top:30px}.archive-wall .index-card:nth-child(5n+2){transform:rotate(3deg);margin-top:70px}.archive-wall .index-card:nth-child(5n+3){transform:rotate(-2deg);margin-top:0}.archive-wall .index-card:nth-child(5n+4){transform:rotate(2deg);margin-top:45px}.archive-wall .index-card:hover{transform:rotate(0deg);z-index:1}.no-results{padding:80px 20px;text-align:center;border:1px solid var(--rule);margin-bottom:50px}.no-results h2{font-size:32px}.no-results p{margin:12px 0 20px;color:var(--secondary)}.archive-bottom{padding:80px 0 110px}
.detail{padding-bottom:100px}.detail-head{padding:66px 0 38px}.detail-head h1{font-size:clamp(53px,9vw,120px);margin:17px 0 31px;max-width:100%;overflow-wrap:break-word}.meta-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;border-block:1px solid var(--rule);padding:18px 0}.meta-strip dt{font:10px ui-monospace,monospace;color:var(--muted);text-transform:uppercase}.meta-strip dd{margin:6px 0 0;font-size:14px}.detail-explainer{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:34px 0 54px}.detail-explainer h2{font-size:27px}.detail-explainer p{font-size:16px;color:var(--secondary);max-width:52ch}.detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.detail-gallery button{border:0;background:var(--media);padding:0;display:grid;place-items:center;overflow:hidden;aspect-ratio:4/5;position:relative}.detail-gallery button:first-child{grid-column:1/-1;aspect-ratio:16/10}.detail-gallery button img{height:100%;width:100%;object-fit:contain;padding:5%}.detail-gallery button:hover img{transform:scale(1.02)}.detail-gallery button span{position:absolute;bottom:14px;right:14px;font:11px ui-monospace,monospace;background:var(--paper);padding:7px 9px}.detail-note{border-top:1px solid var(--rule);margin-top:46px;padding:24px 0;color:var(--secondary);font-size:14px}.detail-actions{display:flex;gap:15px;flex-wrap:wrap;margin:26px 0 70px}.detail-actions button,.detail-actions a{border:1px solid var(--rule);padding:11px 17px;text-decoration:none;border-radius:50px;font-size:13px;background:transparent}.next-project{display:flex;align-items:end;justify-content:space-between;text-decoration:none;border-top:1px solid var(--rule);padding:30px 0 55px;gap:18px}.next-project strong{display:block;font-size:clamp(30px,6vw,68px);letter-spacing:-.06em;line-height:1.08;margin-top:14px}.next-project .arrow{font-size:36px}
.footer{border-top:1px solid var(--rule);padding:45px 0 25px;display:grid;grid-template-columns:1fr auto;gap:40px}.foot-logo{font-size:26px;font-weight:800;letter-spacing:-.08em}.footer p{margin-top:10px;color:var(--muted);font-size:12px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 27px;font-size:13px}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer .copyright{grid-column:1/-1;border-top:1px solid var(--rule);padding-top:17px;margin:0;font:11px ui-monospace,monospace}.copyright a{color:var(--text)}.loading{padding:130px 0;color:var(--secondary)}.no-script{padding:25px}.lightbox{width:min(1100px,98vw);max-width:none;height:min(92dvh,900px);max-height:none;padding:0;border:1px solid var(--rule);background:var(--paper);color:var(--text)}.lightbox::backdrop{background:#000d}.lightbox-head,.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px}.lightbox-head{border-bottom:1px solid var(--rule)}.lightbox-head strong{display:block;font-size:15px}.lightbox-head small{color:var(--muted)}.lightbox-stage{height:calc(100% - 135px);display:grid;place-items:center;background:var(--media);overflow:auto}.lightbox-stage img{max-height:100%;object-fit:contain;width:100%}.lightbox-stage.is-zoomed img{width:150%;max-width:none;max-height:none}.lightbox-bottom{justify-content:center;border-top:1px solid var(--rule)}.round-control{border:1px solid var(--rule);border-radius:50%;width:39px;height:39px;background:transparent}.lightbox-bottom a{font-size:12px}.lightbox-stage p{color:var(--secondary)}
@media(max-width:900px){.wrap{width:min(calc(100% - 44px),var(--content))}.nav-note{display:none}.tools{top:0}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-wall{grid-template-columns:repeat(3,minmax(0,1fr))}.index-list{grid-template-columns:minmax(0,1fr) 200px;gap:22px}.index-row{grid-template-columns:54px minmax(0,1fr) auto;gap:9px}.row-arrow{display:none}}
@media(max-width:650px){.wrap{width:calc(100% - 32px)}.topbar{height:68px;gap:9px}.back{font-size:11px}.back span{margin-right:3px}.brand{font-size:11px;gap:4px}.brandmark{font-size:22px}.brand small{font-size:8px;padding-left:2px}.header-actions{gap:5px}.theme-button{padding:6px 10px}.theme-button #theme-name{display:none}.contact-top{padding:6px 10px;font-size:11px}.subnav{min-height:55px;gap:26px}.subnav a{padding-block:17px}.intro{padding:66px 0 48px}.intro h1{font-size:clamp(56px,15vw,87px)}.lede{font-size:17px}.selected-grid{gap:35px 11px;padding-bottom:60px}.selected-card:nth-child(n){grid-column:span 6;margin-top:0}.selected-card:nth-child(3n+2){margin-top:46px}.selected-meta{display:block}.selected-meta h3{font-size:17px}.selected-meta span{font-size:9px}.selected-media,.selected-card:nth-child(n) .selected-media{aspect-ratio:4/5}.selected-number{font-size:9px;top:7px;left:7px}.section-heading h2{font-size:26px}.archive-heading{padding-top:49px}.archive-heading h1{font-size:clamp(57px,13vw,85px)}.tools{position:relative;padding:14px 0}.search{width:100%;flex:1 1 100%;font-size:16px}.filter-controls{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:4px}.filter-button{flex:0 0 auto}.view-controls{margin-left:0}.index-list{display:block}.index-preview{display:none}.index-row{grid-template-columns:46px minmax(0,1fr) 45px;gap:6px;min-height:67px;padding:12px 0;align-items:center}.index-row .row-title{font-size:clamp(22px,6vw,34px)}.row-cat{font-size:9px}.preview-toggle{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--rule);width:39px;height:39px;border-radius:50%;background:none;font-size:18px;grid-column:3;grid-row:1}.index-row .row-number{grid-column:1}.index-row .row-title{grid-column:2}.index-row .row-cat{display:none}.mobile-preview{display:none;grid-column:1/-1;padding:9px 0 4px}.index-row.is-peek .mobile-preview{display:grid;place-items:center;background:var(--media)}.mobile-preview img{max-height:300px;object-fit:contain;padding:18px}.archive-grid{gap:26px 11px}.archive-grid .card-info h3,.archive-wall .card-info h3{font-size:15px}.archive-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px;padding:0}.archive-wall .index-card:nth-child(n){margin-top:0;transform:none}.detail-head{padding-top:48px}.detail-head h1{font-size:clamp(50px,13vw,82px)}.meta-strip{grid-template-columns:1fr 1fr;gap:24px}.detail-explainer{grid-template-columns:1fr;gap:12px;padding:25px 0 36px}.detail-gallery{gap:9px}.detail-gallery button:first-child{aspect-ratio:4/4}.footer{grid-template-columns:1fr;gap:22px}.footer .copyright{grid-column:1}.lightbox{width:100vw;height:100dvh;border:0}.lightbox-stage{height:calc(100% - 130px)}}
@media(max-width:360px){.back{font-size:0}.back span{font-size:18px}.brand small{display:none}.subnav{justify-content:space-between;gap:10px}.selected-card:nth-child(n){grid-column:span 12;margin:0}.archive-grid,.archive-wall{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Spatial Wall: pan and zoom on desktop, simple gallery on touch screens. */
.wall-shell{border:1px solid var(--rule);overflow:hidden;margin-top:4px}
.wall-tools{display:flex;align-items:center;gap:12px;padding:10px 13px;border-bottom:1px solid var(--rule);flex-wrap:wrap}
.wall-tools .mono{margin-right:auto;font-size:10px}
.wall-tools button{min-width:36px;min-height:36px;border:1px solid var(--rule);background:var(--surface);border-radius:50px;padding:4px 10px;font-size:13px}
.wall-tools output{font:11px ui-monospace,monospace;color:var(--muted);min-width:34px;text-align:center}
.wall-viewport{position:relative;overflow:hidden;min-height:760px;padding:40px 26px;cursor:grab}
.wall-viewport.is-panning{cursor:grabbing}
.wall-viewport .archive-wall{transform-origin:center center;transition:transform .12s ease-out;will-change:transform}
.wall-viewport.is-panning .archive-wall{transition:none}
@media(max-width:900px){.wall-viewport{min-height:620px;padding:20px 12px}}
@media(max-width:650px){.wall-viewport{min-height:auto;padding:18px 9px;cursor:auto;overflow:visible}.wall-viewport .archive-wall{transform:none!important;transition:none!important}.wall-tools .mono{display:none}}
@media(prefers-reduced-motion:reduce){.wall-viewport .archive-wall{transition:none!important}}
