:root {
  --bg: #f4f1e9;
  --ink: #10100f;
  --muted: #67665f;
  --line: rgba(16, 16, 15, .18);
  --pad: clamp(18px, 2.4vw, 42px);
  --radius: 3px;
  --sans: "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", Arial, sans-serif;
  --serif: Iowan Old Style, Baskerville, "Times New Roman", "Songti SC", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; color: var(--ink); background: var(--bg); font-family: var(--sans); font-size: 16px; line-height: 1.35; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; width: 100%; height: auto; }
::selection { color: #fff; background: #111; }

.skip-link { position: fixed; left: 12px; top: -80px; z-index: 1000; color: #fff; background: #111; padding: 10px 14px; transition: top .2s; }
.skip-link:focus { top: 12px; }

.page-loader { position: fixed; inset: 0; z-index: 900; display: grid; place-items: center; color: #fff; background: #0b0b0a; letter-spacing: .18em; font-size: 12px; transition: transform .85s cubic-bezier(.8,0,.2,1), visibility .85s; }
.page-loader i { position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: #fff; transform-origin: left; animation: loading-line 1.05s cubic-bezier(.4,0,.2,1) both; }
body.loaded .page-loader { transform: translateY(-100%); visibility: hidden; }
@keyframes loading-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.cursor-dot { position: fixed; left: 0; top: 0; z-index: 950; width: 9px; height: 9px; border-radius: 50%; pointer-events: none; background: currentColor; mix-blend-mode: difference; color: #fff; transform: translate(-50%, -50%); transition: width .18s, height .18s, opacity .2s; }
.cursor-dot.is-link { width: 34px; height: 34px; }
@media (pointer: coarse) { .cursor-dot { display: none; } }

.site-header { position: fixed; z-index: 100; top: 0; left: 0; width: 100%; height: 76px; padding: 0 var(--pad); display: flex; align-items: center; justify-content: space-between; transition: color .35s, background .35s, transform .35s; mix-blend-mode: difference; color: #fff; }
.site-header.header-hidden { transform: translateY(-100%); }
.brand { display: inline-flex; align-items: center; gap: 11px; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.brand-mark { display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid currentColor; border-radius: 50%; font-size: 10px; letter-spacing: 0; }
.main-nav { display: flex; gap: clamp(18px, 2.5vw, 44px); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.main-nav a, .brand { position: relative; }
.main-nav a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .25s; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; width: 38px; height: 38px; padding: 10px; border: 0; background: transparent; }
.menu-toggle span { display: block; height: 1px; margin: 5px 0; background: currentColor; transition: transform .3s; }

.home-hero { min-height: min(970px, 100svh); padding: 122px var(--pad) 36px; display: grid; grid-template-rows: 1fr auto; background: #f4f1e9; overflow: hidden; }
.hero-statement { align-self: center; max-width: 1480px; font-size: clamp(42px, 8vw, 134px); line-height: .91; letter-spacing: -.07em; font-weight: 500; text-transform: uppercase; }
.hero-statement .serif { font-family: var(--serif); text-transform: none; font-weight: 400; font-style: italic; letter-spacing: -.055em; }
.hero-statement em { display: inline-block; font: inherit; color: transparent; -webkit-text-stroke: 1px currentColor; transform: rotate(-2deg); }
.hero-meta { display: grid; grid-template-columns: 1fr 1fr 1fr; border-top: 1px solid var(--line); padding-top: 13px; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.hero-meta span:nth-child(2) { text-align: center; }
.hero-meta span:last-child { text-align: right; }
.marquee { overflow: hidden; padding: 16px 0 15px; background: #111; color: #fff; border-top: 1px solid #111; border-bottom: 1px solid #111; white-space: nowrap; }
.marquee-track { display: inline-flex; gap: 40px; animation: marquee 24s linear infinite; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.marquee-track span::after { content: "✳"; margin-left: 40px; }
@keyframes marquee { to { transform: translateX(-50%); } }

.section { padding: clamp(92px, 12vw, 190px) var(--pad); }
.section-head { display: grid; grid-template-columns: 1fr 2fr; gap: 24px; margin-bottom: clamp(34px, 5vw, 80px); border-top: 1px solid currentColor; padding-top: 13px; }
.eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.section-title { margin: 0; font-size: clamp(30px, 4.2vw, 69px); line-height: .98; letter-spacing: -.05em; font-weight: 500; }

.work-section { background: #f4f1e9; }
.work-grid { columns: 2; column-gap: clamp(10px, 1.3vw, 24px); }
.work-card { display: inline-block; width: 100%; margin: 0 0 clamp(30px, 5vw, 82px); break-inside: avoid; vertical-align: top; }
.work-media { position: relative; overflow: hidden; background: #ddd; }
.work-card:nth-child(1) .work-media { aspect-ratio: 5/4; }
.work-card:nth-child(2) .work-media { aspect-ratio: 4/5; }
.work-card:nth-child(3) .work-media { aspect-ratio: 16/11; }
.work-card:nth-child(4) .work-media { aspect-ratio: 4/5; }
.work-card:nth-child(5) .work-media { aspect-ratio: 5/4; }
.work-media img { height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.1,1), filter .5s; }
.work-card:hover .work-media img { transform: scale(1.035); }
.work-index { position: absolute; top: 13px; left: 13px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #111; background: rgba(255,255,255,.88); font-size: 10px; }
.work-arrow { position: absolute; right: 13px; top: 13px; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #111; background: #fff; transform: translateY(-65px); transition: transform .35s; }
.work-card:hover .work-arrow { transform: translateY(0); }
.work-caption { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding-top: 12px; border-top: 1px solid var(--line); }
.work-caption h3 { margin: 0; font-size: clamp(20px, 2.2vw, 34px); line-height: .98; letter-spacing: -.035em; font-weight: 500; text-transform: uppercase; }
.work-caption p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.work-caption time { font-size: 11px; }

.about-section { color: #f5f2ea; background: #111; }
.about-layout { display: grid; grid-template-columns: minmax(280px, .8fr) 1.4fr; gap: clamp(28px, 7vw, 130px); align-items: start; }
.portrait-wrap { position: relative; }
.portrait-wrap img { filter: grayscale(1) contrast(1.03); aspect-ratio: 3/4; object-fit: cover; object-position: 50% 20%; }
.portrait-label { position: absolute; right: -16px; bottom: 30px; color: #111; background: #fff; padding: 9px 12px; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; transform: rotate(-90deg) translateX(100%); transform-origin: right bottom; }
.about-copy h2 { margin: 0; max-width: 900px; font-family: var(--serif); font-size: clamp(37px, 5.5vw, 85px); line-height: .96; letter-spacing: -.045em; font-weight: 400; }
.about-copy h2 em { color: #84d6c5; font-weight: 400; }
.about-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; margin-top: clamp(42px, 7vw, 100px); border-top: 1px solid rgba(255,255,255,.35); padding-top: 17px; }
.about-columns p { margin: 0; color: rgba(255,255,255,.76); max-width: 570px; }
.capabilities { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 24px; }
.capabilities span { border: 1px solid rgba(255,255,255,.3); border-radius: 999px; padding: 8px 12px; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }

.contact-section { min-height: 90svh; display: flex; flex-direction: column; justify-content: space-between; background: #e7ff55; padding: clamp(95px, 11vw, 170px) var(--pad) 26px; }
.contact-kicker { display: flex; justify-content: space-between; padding-top: 12px; border-top: 1px solid; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.contact-title { margin: 50px 0 0; font-size: clamp(58px, 11.8vw, 190px); line-height: .78; letter-spacing: -.085em; font-weight: 500; text-transform: uppercase; }
.contact-title a { position: relative; display: inline-block; font-family: var(--serif); font-weight: 400; font-style: italic; text-transform: none; }
.contact-title a::after { content: ""; position: absolute; left: 0; bottom: -10px; width: 100%; height: .035em; background: currentColor; transform-origin: left; transition: transform .4s; }
.contact-title a:hover::after { transform: scaleX(.25); }
.contact-bottom { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: end; gap: 20px; margin-top: 80px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.contact-bottom p { margin: 0; }
.contact-bottom p:nth-child(2) { text-align: center; }
.contact-bottom p:last-child { text-align: right; }

.reveal { opacity: 0; transform: translateY(34px); transition: opacity .75s ease, transform .9s cubic-bezier(.2,.7,.1,1); }
.reveal.is-visible { opacity: 1; transform: none; }

/* Project system */
.project-page { --project-bg: #111; --project-fg: #fff; --project-accent: #d9ff43; color: var(--project-fg); background: var(--project-bg); }
.project-page .site-header { color: #fff; }
.project-hero { min-height: 100svh; padding: 108px var(--pad) 28px; display: grid; grid-template-columns: 1.08fr .92fr; gap: 18px; align-items: end; position: relative; overflow: hidden; }
.project-hero-copy { position: relative; z-index: 2; align-self: end; padding-bottom: 16px; }
.project-number { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 24px; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.project-number::before { content: ""; width: 48px; height: 1px; background: currentColor; }
.project-title { margin: 0; max-width: 1000px; font-size: clamp(53px, 8.2vw, 140px); line-height: .82; letter-spacing: -.075em; font-weight: 500; text-transform: uppercase; }
.project-title em { display: block; font-family: var(--serif); font-size: .62em; line-height: 1; font-weight: 400; text-transform: none; }
.project-subtitle { margin: 30px 0 0; max-width: 620px; font-size: clamp(17px, 1.5vw, 24px); line-height: 1.2; }
.project-hero-media { height: min(78svh, 900px); overflow: hidden; position: relative; }
.project-hero-media img { height: 100%; object-fit: cover; }
.project-hero-media::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.24); pointer-events: none; }
.scroll-note { position: absolute; right: var(--pad); bottom: 19px; z-index: 3; font-size: 9px; text-transform: uppercase; letter-spacing: .14em; writing-mode: vertical-rl; }

.project-intro { padding: clamp(100px, 12vw, 180px) var(--pad); display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(36px, 8vw, 140px); border-top: 1px solid rgba(255,255,255,.2); }
.project-lead { margin: 0; max-width: 960px; font-size: clamp(31px, 4.4vw, 72px); line-height: .98; letter-spacing: -.045em; }
.project-lead em { color: var(--project-accent); font-family: var(--serif); font-weight: 400; }
.project-info { align-self: end; }
.project-info p { margin: 0 0 22px; max-width: 620px; color: color-mix(in srgb, var(--project-fg) 74%, transparent); font-size: 16px; }
.project-specs { list-style: none; margin: 42px 0 0; padding: 0; border-top: 1px solid currentColor; }
.project-specs li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid color-mix(in srgb, currentColor 24%, transparent); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.project-specs strong { font-weight: 500; color: color-mix(in srgb, var(--project-fg) 55%, transparent); }

.project-block { padding: clamp(80px, 10vw, 155px) var(--pad); }
.project-block-header { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; margin-bottom: clamp(32px, 5vw, 76px); padding-top: 11px; border-top: 1px solid currentColor; }
.project-block-header h2 { margin: 0; font-size: clamp(32px, 4.8vw, 76px); line-height: .94; letter-spacing: -.05em; font-weight: 500; }
.project-block-header p { margin: 0; max-width: 570px; color: color-mix(in srgb, var(--project-fg) 70%, transparent); }
.project-block-header > p { justify-self: end; }
.wide-image { overflow: hidden; }
.wide-image img { min-height: 44vw; max-height: 90vh; object-fit: cover; }
.image-caption { display: flex; justify-content: space-between; gap: 20px; margin-top: 8px; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; opacity: .66; }
.gallery-two { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(10px, 1.5vw, 26px); align-items: start; }
.gallery-two figure, .gallery-three figure { margin: 0; }
.gallery-two figure:nth-child(even) { margin-top: clamp(55px, 9vw, 150px); }
.gallery-two img { min-height: 38vw; max-height: 82vh; object-fit: cover; }
.gallery-three { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: clamp(10px, 1.3vw, 22px); }
.gallery-three img { height: 38vw; max-height: 680px; object-fit: cover; }

.process-flow { display: grid; grid-template-columns: repeat(6, 1fr); border: 1px solid currentColor; }
.process-step { min-height: 220px; padding: 15px; border-right: 1px solid currentColor; display: flex; flex-direction: column; justify-content: space-between; }
.process-step:last-child { border-right: 0; }
.process-step b { font-size: 10px; letter-spacing: .1em; }
.process-step span { font-size: clamp(15px, 1.7vw, 25px); line-height: 1; text-transform: uppercase; }
.process-step small { opacity: .62; }

.quote-block { padding: clamp(110px, 16vw, 250px) var(--pad); display: grid; place-items: center; text-align: center; }
.quote-block blockquote { margin: 0; max-width: 1280px; font-family: var(--serif); font-size: clamp(41px, 7vw, 116px); line-height: .92; letter-spacing: -.05em; }
.quote-block blockquote em { color: var(--project-accent); font-weight: 400; }

.next-project { display: grid; grid-template-columns: 1fr 1fr; min-height: 66svh; color: #111; background: #f1eee5; }
.next-copy { padding: var(--pad); display: flex; flex-direction: column; justify-content: space-between; }
.next-copy span { font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.next-copy h2 { margin: 0; font-size: clamp(47px, 7vw, 110px); line-height: .82; letter-spacing: -.07em; text-transform: uppercase; font-weight: 500; }
.next-image { overflow: hidden; }
.next-image img { height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.1,1); }
.next-project:hover .next-image img { transform: scale(1.04); }

/* Project-specific worlds */
.theme-scum { --project-bg: #18351d; --project-fg: #f0ead9; --project-accent: #b7ed52; }
.theme-scum .project-hero { background: radial-gradient(circle at 75% 20%, #2d7840 0, #18351d 42%, #102416 75%); }
.theme-scum .project-hero-media { border-radius: 50% 50% 4px 4px; }
.theme-scum .project-hero-media img { filter: saturate(.75) contrast(1.07); }
.theme-scum .systems-board { padding: clamp(28px, 4vw, 66px); background: #e8dfc9; color: #2f211d; }
.theme-scum .systems-board img { object-fit: contain; }
.theme-scum .gallery-two img { background: #d9ccb2; object-fit: contain; padding: clamp(8px, 1vw, 16px); }
.theme-scum .process-step:nth-child(3) { color: #17341b; background: var(--project-accent); }

.theme-soma { --project-bg: #06071c; --project-fg: #effeff; --project-accent: #64ff6a; }
.theme-soma .project-hero { background: #06071c; }
.theme-soma .project-hero-media { clip-path: polygon(9% 0, 100% 0, 100% 90%, 88% 100%, 0 100%, 0 10%); }
.theme-soma #soma-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; opacity: .58; }
.theme-soma .project-hero-copy, .theme-soma .project-hero-media { z-index: 1; }
.theme-soma .signal-strip { display: flex; height: clamp(90px, 12vw, 170px); overflow: hidden; }
.theme-soma .signal-strip span { flex: 1; transform: skewX(-11deg) scale(1.07); background: hsl(calc(120 + var(--i) * 18), 90%, calc(35% + var(--i) * 3%)); filter: blur(calc(var(--i) * .35px)); animation: signal 4s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.3s); }
@keyframes signal { to { transform: skewX(11deg) scale(1.12) translateY(14%); filter: blur(calc(var(--i) * .8px)); } }
.theme-soma .gallery-two img { filter: saturate(1.2) contrast(1.05); }

.theme-skin { --project-bg: #060809; --project-fg: #eeebe4; --project-accent: #70cedc; }
.theme-skin .project-title { font-size: clamp(47px, 7.6vw, 126px); }
.theme-skin .project-hero { background-image: linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px); background-size: 6.25vw 6.25vw; }
.theme-skin .project-hero-media { clip-path: polygon(0 0, 100% 5%, 96% 100%, 7% 95%); }
.skin-layers { position: relative; min-height: min(82svh, 900px); overflow: hidden; background: #030405; }
.skin-layer { position: absolute; top: calc(8% + var(--i) * 7%); left: calc(7% + var(--i) * 3.7%); width: calc(86% - var(--i) * 7.4%); height: calc(84% - var(--i) * 8%); border: 1px solid color-mix(in srgb, var(--c) 80%, white); background: color-mix(in srgb, var(--c) 13%, transparent); transform: perspective(900px) rotateX(calc((var(--py, .5) - .5) * 8deg)) rotateY(calc((var(--px, .5) - .5) * -11deg)); transition: transform .15s linear; }
.skin-layer::after { content: attr(data-label); position: absolute; left: 8px; top: 7px; font-size: 8px; letter-spacing: .16em; color: var(--c); }
.theme-skin .process-step:nth-child(4), .theme-skin .process-step:nth-child(5) { color: #050708; background: #e59177; }

.theme-bodhi { --project-bg: #e9debf; --project-fg: #241c13; --project-accent: #b22d1f; }
.theme-bodhi .project-hero { background: radial-gradient(circle at 87% 14%, #f4c556 0, transparent 28%), linear-gradient(135deg, #d9d6a4, #f1e2be 52%, #c9d7a5); }
.theme-bodhi .project-hero-media { transform: rotate(1.5deg); border: 13px solid #f7f0dc; box-shadow: 0 20px 60px rgba(62,45,16,.2); }
.theme-bodhi .project-title { font-family: var(--serif); font-weight: 400; text-transform: none; }
.theme-bodhi .project-title em { font-family: var(--sans); text-transform: uppercase; letter-spacing: .02em; font-size: .25em; margin-top: 16px; }
.evidence-board { position: relative; min-height: min(90vw, 1050px); background-color: #c8b784; background-image: linear-gradient(rgba(88,61,22,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(88,61,22,.09) 1px, transparent 1px); background-size: 32px 32px; overflow: hidden; }
.evidence-card { position: absolute; width: min(30vw, 440px); padding: 12px 12px 34px; background: #f8f0da; box-shadow: 0 16px 34px rgba(54,40,17,.18); transform: rotate(var(--r)); }
.evidence-card:nth-child(1) { left: 6%; top: 8%; }
.evidence-card:nth-child(2) { right: 7%; top: 17%; }
.evidence-card:nth-child(3) { left: 34%; bottom: 7%; }
.evidence-card img { aspect-ratio: 4/3; object-fit: cover; }
.evidence-card span { display: block; margin-top: 10px; font: 18px/1 var(--serif); }
.red-thread { position: absolute; inset: 0; pointer-events: none; }
.theme-bodhi .process-step:nth-child(1), .theme-bodhi .process-step:nth-child(6) { color: #f7ead4; background: #ae2b21; }

.theme-summer { --project-bg: #eaf3ed; --project-fg: #172920; --project-accent: #4eaa93; }
.theme-summer .project-hero { background: radial-gradient(circle at 80% 10%, rgba(255,255,255,.9), transparent 42%), linear-gradient(135deg, #d3e7de, #f7f5ed); }
.theme-summer .project-title { font-family: var(--serif); font-weight: 400; text-transform: none; }
.theme-summer .project-title em { font-family: var(--sans); font-size: .27em; letter-spacing: .02em; text-transform: uppercase; margin-top: 18px; }
.theme-summer .project-hero-media { border-radius: 52% 52% 0 0; }
.scent-map { position: relative; min-height: 70svh; display: grid; place-items: center; overflow: hidden; background: #f7f3eb; }
.scent-map img { position: relative; z-index: 1; width: min(68vw, 920px); max-height: 64vh; object-fit: contain; filter: saturate(.72); }
.scent-map svg { position: absolute; inset: -10%; width: 120%; height: 120%; opacity: .7; }
.scent-map path { fill: none; stroke: #73b8a4; stroke-width: 1.2; stroke-dasharray: 8 10; animation: scent 18s linear infinite; }
@keyframes scent { to { stroke-dashoffset: -360; } }
.theme-summer .gallery-two figure:nth-child(even) { margin-top: 0; }
.theme-summer .gallery-two img { min-height: 0; object-fit: cover; border-radius: 48% 48% 0 0; }

@media (max-width: 900px) {
  .site-header { height: 66px; mix-blend-mode: normal; color: #111; }
  .site-header.header-hidden { transform: none; }
  body.view-project .site-header { color: #fff; }
  body.menu-open .site-header { color: #fff; }
  .brand-name { display: none; }
  .menu-toggle { display: block; }
  .main-nav { position: fixed; inset: 0; z-index: -1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; color: #fff; background: #111; font-size: clamp(36px, 12vw, 72px); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s; }
  body.menu-open .main-nav { opacity: 1; visibility: visible; pointer-events: auto; }
  body.menu-open .menu-toggle span:first-child { transform: translateY(3px) rotate(45deg); }
  body.menu-open .menu-toggle span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .hero-meta { grid-template-columns: 1fr auto; }
  .hero-meta span:nth-child(2) { display: none; }
  .section-head, .project-block-header { grid-template-columns: 1fr; }
  .project-block-header > p { justify-self: start; }
  .work-grid { columns: 1; }
  .work-card .work-media { aspect-ratio: 4/3 !important; }
  .about-layout { grid-template-columns: 1fr; }
  .portrait-wrap { width: min(76vw, 520px); }
  .about-columns { grid-template-columns: 1fr; }
  .project-hero { min-height: auto; padding-top: 104px; grid-template-columns: 1fr; }
  .project-hero-media { height: 58svh; order: -1; }
  .project-intro { grid-template-columns: 1fr; }
  .process-flow { grid-template-columns: 1fr 1fr; }
  .process-step { min-height: 160px; border-bottom: 1px solid currentColor; }
  .process-step:nth-child(even) { border-right: 0; }
  .gallery-three { grid-template-columns: 1fr 1fr; }
  .gallery-three figure:first-child { grid-column: 1/-1; }
  .gallery-three img { height: 55vw; }
  .next-project { grid-template-columns: 1fr; }
  .next-copy { min-height: 48svh; }
  .next-image { min-height: 52svh; }
}

@media (max-width: 620px) {
  :root { --pad: 16px; }
  .home-hero { padding-top: 104px; min-height: 88svh; }
  .hero-statement { font-size: clamp(43px, 15.5vw, 74px); }
  .hero-meta { font-size: 9px; }
  .section { padding-top: 82px; padding-bottom: 82px; }
  .work-caption { grid-template-columns: 1fr; gap: 8px; }
  .work-caption time { display: none; }
  .contact-section { min-height: 80svh; }
  .contact-title { font-size: 17vw; }
  .contact-bottom { grid-template-columns: 1fr; }
  .contact-bottom p:nth-child(2), .contact-bottom p:last-child { text-align: left; }
  .project-title { font-size: 15vw; }
  .project-intro { padding-top: 82px; padding-bottom: 82px; }
  .project-specs li { grid-template-columns: 90px 1fr; }
  .gallery-two { grid-template-columns: 1fr; }
  .gallery-two figure:nth-child(even) { margin-top: 0; }
  .gallery-two img { min-height: 58vw; }
  .gallery-three { grid-template-columns: 1fr; }
  .gallery-three figure:first-child { grid-column: auto; }
  .gallery-three img { height: auto; max-height: none; }
  .process-flow { grid-template-columns: 1fr; }
  .process-step { min-height: 130px; border-right: 0; }
  .evidence-board { min-height: 130svh; }
  .evidence-card { width: 76vw; }
  .evidence-card:nth-child(1) { left: 5%; top: 5%; }
  .evidence-card:nth-child(2) { right: 4%; top: 37%; }
  .evidence-card:nth-child(3) { left: 10%; bottom: 4%; }
  .skin-layers { min-height: 58svh; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .page-loader { display: none; }
  .reveal { opacity: 1; transform: none; }
}
