:root{--paper:#e3e5e1;--ink:#202624;--muted:#38423d;--line:rgba(32,38,36,.25);--gutter:clamp(22px,4.5vw,76px);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0}a{color:inherit;text-decoration:none}a:hover .arrow,.text-link:hover .arrow{transform:translate(4px,-4px)}a:focus-visible,button:focus-visible{outline:2px solid #245d70;outline-offset:7px}button{font:inherit}::selection{background:#b8c8c9}.skip{position:fixed;top:-100px;left:20px;background:white;padding:14px;z-index:20}.skip:focus{top:12px}.backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#dce1df}.portrait-stack{position:absolute;right:-3vw;top:0;width:min(112vh,90vw);height:100%;mask-image:linear-gradient(90deg,transparent,#000 13%,#000 89%,transparent)}.portrait-stack img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;opacity:0}.portrait-stack img:first-child{opacity:1}.glass{position:absolute;inset:0;background:linear-gradient(90deg,rgba(230,233,228,.95) 0%,rgba(230,233,228,.82) 25%,rgba(230,233,228,.45) 56%,rgba(230,233,228,.42) 100%)}.grain{position:absolute;inset:0;opacity:.13;background-image:url('/assets/grain.svg');background-size:180px 180px;mix-blend-mode:multiply}.static-background{width:100%;height:100%;object-fit:cover;opacity:.65}.backdrop.static .glass{background:rgba(232,234,230,.70)}header,main,footer{position:relative;z-index:1}header{display:grid;grid-template-columns:1fr auto;align-items:center;margin:0 var(--gutter);padding:30px 0;border-bottom:1px solid var(--line);gap:24px}.brand{font-size:20px;letter-spacing:-.05em}.brand span{display:inline-block;font-size:11px;vertical-align:top;margin-left:4px;letter-spacing:0}nav{display:flex;gap:35px;align-items:center;font-size:13px}nav a{padding:8px 0}nav a[aria-current=page]{border-bottom:1px solid}main{padding:0 var(--gutter)}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.eyebrow,.micro{font-size:11px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;font-weight:400}.eyebrow{display:flex;gap:20px;align-items:center}.dot{width:5px;height:5px;background:currentColor;border-radius:50%;display:inline-block}.hero{min-height:calc(100svh - 88px);padding:48px 0 30px;display:flex;flex-direction:column;justify-content:space-between}.hero h1{font-size:clamp(72px,calc(var(--type-vw) * 9.5),158px);font-weight:400;line-height:.94;letter-spacing:-.075em;margin:64px 0 42px;max-width:1000px}.hero h1 em{font-style:normal;display:block;margin-left:8vw}.hero-bottom{align-items:end}.hero-bottom p{grid-column:1/5;font-size:16px;line-height:1.55;max-width:340px;margin:0}.hero-bottom .micro{grid-column:10/13;justify-self:end;text-align:right}.section{padding:96px 0;border-top:1px solid var(--line)}.section-label{grid-column:1/4;margin:4px 0}.statement{grid-column:5/13}.statement h2,.page-title{font-size:clamp(42px,calc(var(--type-vw) * 5.5),84px);letter-spacing:-.06em;line-height:1.05;font-weight:400;margin:0 0 32px}.statement p{font-size:18px;line-height:1.65;max-width:580px;margin:0 0 28px}.text-link{display:inline-flex;gap:36px;align-items:center;border-bottom:1px solid;padding-bottom:10px;font-size:13px}.arrow{display:inline-block;transition:transform .2s;font-weight:400}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:36px}.section-head h2{font-weight:400;letter-spacing:-.045em;font-size:36px;margin:0}.project-row{display:grid;grid-template-columns:45px 1fr 1fr auto;gap:24px;padding:28px 0;border-top:1px solid var(--line);align-items:center}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row h3{font-size:clamp(27px,calc(var(--type-vw) * 3),42px);letter-spacing:-.045em;font-weight:400;margin:0}.project-row .discipline{font-size:13px;color:var(--muted)}.project-row:hover{background:rgba(240,241,237,.35)}.project-row .arrow{font-size:28px}.contact h2{font-size:clamp(50px,calc(var(--type-vw) * 7),108px);font-weight:400;line-height:1;letter-spacing:-.065em;margin:24px 0 36px}.contact p{line-height:1.6;font-size:16px;max-width:500px}.placeholder{font-size:12px;color:var(--muted)}.contact-grid{display:flex;justify-content:space-between;gap:32px;align-items:end}footer{margin:0 var(--gutter);padding:25px 0 30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.page-head{padding:78px 0 62px}.page-head .eyebrow{margin-bottom:38px}.page-title{font-size:clamp(60px,calc(var(--type-vw) * 8),128px);margin:0 0 25px;max-width:1050px}.intro{font-size:18px;line-height:1.6;max-width:540px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 28px;padding-bottom:90px}.project-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}.project-card:last-child{grid-column:2}.project-card .project-meta{display:flex;justify-content:space-between;gap:20px;padding-top:18px}.project-card h2{font-size:28px;font-weight:400;letter-spacing:-.045em;margin:0 0 9px}.project-card .arrow{font-size:28px}.project-card .micro{color:var(--muted)}.notice{font-size:12px;line-height:1.6;color:var(--muted);max-width:600px}.case-cover{width:100%;height:auto;display:block;object-fit:cover}.case-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:28px 0 60px}.case-meta p{font-size:14px;line-height:1.6}.case-copy{grid-column:5/12}.case-copy h2{font-weight:400;font-size:40px;letter-spacing:-.045em;margin:0 0 25px}.case-copy p{font-size:18px;line-height:1.7;max-width:680px}.case-visual{margin:25px 0 0}.case-visual img{width:100%;height:auto;display:block}.case-visual figcaption{font-size:11px;color:var(--muted);padding-top:12px}.next-case{display:flex;justify-content:space-between;align-items:center;padding:50px 0;font-size:36px;letter-spacing:-.04em;border-top:1px solid var(--line)}.cv-row{display:grid;grid-template-columns:1fr 2.2fr;gap:24px;border-top:1px solid var(--line);padding:24px 0}.cv-row h3{font-weight:400;font-size:24px;letter-spacing:-.035em;margin:0 0 10px}.cv-row p{font-size:15px;line-height:1.65;margin:0;max-width:560px}.cv-content{grid-column:5/13}.skills-list{list-style:none;padding:0;margin:0;columns:2;font-size:24px;letter-spacing:-.03em;line-height:1.65}.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.asset-grid figure{margin:0}.asset-grid img{width:100%;height:auto;display:block}.asset-grid figcaption{font-size:13px;margin-top:14px;line-height:1.7}.asset-grid a{text-decoration:underline;text-underline-offset:3px}.asset-actions{display:flex;gap:28px;flex-wrap:wrap;margin:32px 0}.reference-panel{padding:30px 0}.reference-panel h2{font-size:32px;font-weight:400;letter-spacing:-.04em}.reference-panel p,.reference-panel li{max-width:700px;line-height:1.7}.portrait-indicator{display:flex;gap:7px;justify-content:flex-end;margin-top:8px}.portrait-indicator span{width:20px;height:2px;background:rgba(32,38,36,.3)}.portrait-indicator span:first-child{background:var(--ink)}.reference-link{white-space:nowrap}
@media(min-width:1600px){main,header,footer{max-width:1600px;margin-left:auto;margin-right:auto}main{padding:0 72px}header,footer{width:calc(100% - 144px)}}
@media(max-width:760px){:root{--gutter:22px}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}header{padding:23px 0;gap:12px}.brand{font-size:18px}nav{gap:19px;font-size:12px}nav .nav-contact{display:none}.hero{padding-top:30px;min-height:calc(94svh - 77px)}.hero h1{font-size:clamp(62px,calc(var(--type-vw) * 13),100px);margin:65px 0 70px}.hero h1 em{margin-left:0}.hero-bottom p{grid-column:1/4;font-size:14px}.hero-bottom .micro{grid-column:4;font-size:9px}.portrait-stack{right:-34vw;width:145vw;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 86%,transparent)}.glass{background:linear-gradient(90deg,rgba(230,233,228,.87),rgba(230,233,228,.48))}.section{padding:62px 0}.section-label{grid-column:1/-1;margin-bottom:20px}.statement,.case-copy,.cv-content{grid-column:1/-1}.statement h2{font-size:42px}.statement p{font-size:16px}.project-row{grid-template-columns:25px 1fr auto;gap:14px}.project-row h3{font-size:30px}.project-row .discipline{grid-column:2;font-size:11px}.project-row .arrow{grid-column:3;grid-row:1/3}.contact-grid{display:block}.contact-grid .text-link{margin-top:25px}.contact h2{font-size:60px}.page-head{padding:54px 0 40px}.page-title{font-size:64px}.project-grid{grid-template-columns:1fr;gap:45px}.project-card:last-child{grid-column:auto}.case-meta{grid-template-columns:repeat(2,1fr);padding-bottom:30px}.case-copy h2{font-size:32px}.case-copy p{font-size:16px}.cv-row{grid-template-columns:1fr}.skills-list{font-size:21px}.asset-grid{gap:10px}.asset-grid figcaption{font-size:11px}.asset-actions{gap:20px}.section-head h2{font-size:28px}.section-head .text-link{font-size:11px;gap:12px}footer{flex-wrap:wrap;font-size:10px}.next-case{font-size:28px}.intro{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.portrait-stack:not(.is-fallback) img{opacity:0!important}.portrait-stack:not(.is-fallback) img[data-angle=front]{opacity:1!important}}

/* Typography and editorial grid — October content edition. */
@font-face {
  font-family: 'Inter';
  src: url('/assets/fonts/InterVariable.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root { font-family: 'Inter', Arial, Helvetica, sans-serif; font-optical-sizing: auto; font-feature-settings: 'liga' 1, 'calt' 1; }
.brand { font-size: 22px; font-weight: 720; text-transform: uppercase; letter-spacing: -.035em; }
nav { font-size: 13px; text-transform: uppercase; }
.eyebrow, .micro { font-size: 11px; font-weight: 500; letter-spacing: .015em; }
.hero h1 { font-size: clamp(70px,calc(var(--type-vw) * 8.7),138px); font-weight: 540; letter-spacing: -.065em; line-height: 1; max-width: 1150px; }
.hero h1 em { margin-left: 0; }
.hero-bottom p { grid-column: 1/6; max-width: 400px; font-size: 15px; line-height: 1.6; }
.statement h2 { font-size: clamp(36px,calc(var(--type-vw) * 4.4),67px); font-weight: 580; letter-spacing: -.05em; line-height: 1.08; }
.statement p { font-size: 17px; line-height: 1.7; }
.section-head h2 { font-size: 30px; font-weight: 650; letter-spacing: -.04em; }
.page-title { font-size: clamp(56px,calc(var(--type-vw) * 7.5),114px); font-weight: 560; letter-spacing: -.06em; line-height: 1.03; }
.project-row { grid-template-columns: 45px 1.2fr 1fr auto; }
.project-row h3 { font-size: clamp(26px,calc(var(--type-vw) * 3),41px); font-weight: 650; letter-spacing: -.045em; }
.project-subtitle { display:block; font-size:13px; margin-top:9px; line-height:1.5; }
.contact h2 { font-weight: 550; letter-spacing: -.06em; }
.contact-email { font-size: clamp(15px,calc(var(--type-vw) * 1.6),22px); border-bottom:1px solid; padding-bottom:6px; overflow-wrap:anywhere; }
.project-grid { gap:70px 30px; }
.project-card img { aspect-ratio: 3/2; object-fit:cover; }
.project-card h2 { margin-top:15px; font-weight:650; letter-spacing:-.04em; font-size:32px; }
.project-card p { font-size:14px; margin:5px 0 0; }
.project-card .micro { font-size:10px; }
.project-meta .arrow { margin-top:24px; }
.project-figure { margin:0; }
.project-figure img { display:block; width:100%; height:auto; }
.project-figure figcaption { font-size:11px; line-height:1.6; color:var(--muted); margin-top:12px; max-width:650px; }
.cover-figure img { max-height:78vh; object-fit:cover; }
.case-eyebrow { margin-top:45px; }
.case-meta .role-meta { grid-column:3/5; }
.case-meta p { max-width:450px; }
.case-copy h2 { font-size:clamp(28px,calc(var(--type-vw) * 3),44px); line-height:1.15; letter-spacing:-.045em; font-weight:580; }
.case-copy p { font-size:17px; line-height:1.75; }
.wide-figure { margin:0 0 20px; max-width:100%; }
.wide-figure img { max-height:80vh; object-fit:contain; background:rgba(224,228,223,.3); }
.image-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.image-pair img { aspect-ratio:4/3; object-fit:cover; }
.project-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding:44px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.project-stats:has(>div:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.project-stats strong { display:block; font-size:clamp(28px,calc(var(--type-vw) * 3.6),50px); font-weight:520; letter-spacing:-.05em; margin-bottom:14px; line-height:1.12; }
.project-stats .micro { font-size:10px; }
.project-credits { padding:0 0 48px; max-width:700px; font-size:12px; line-height:1.65; }
.cv-row h3 { font-weight:620; font-size:25px; }
.cv-row .company { font-weight:500; margin-bottom:12px; }
.skills-list { font-size:22px; line-height:1.8; letter-spacing:-.025em; }
.capability-note { font-size:15px; line-height:1.7; max-width:600px; margin:28px 0 0; }
.recognition-row, .education-row { padding:23px 0; border-top:1px solid var(--line); }
.recognition-row h3, .education-row h3 { font-size:23px; line-height:1.3; font-weight:600; letter-spacing:-.03em; margin:0 0 12px; }
.recognition-row p, .education-row p { font-size:14px; line-height:1.6; margin:0; }
.backdrop.static .static-background { filter:blur(50px); transform:scale(1.16); opacity:.48; }
.backdrop.static .glass { background:rgba(231,234,229,.78); }
.grid-markers { position:absolute; inset:0 var(--gutter); pointer-events:none; }
.grid-cross { position:absolute; left:calc(var(--x)*25%); top:calc(15% + var(--y)*18%); width:24px; height:24px; transform:translate(-50%,-50%); color:rgba(255,255,255,.82); }
.grid-cross::before,.grid-cross::after { content:''; position:absolute; background:currentColor; }
.grid-cross::before { width:24px; height:1px; left:0; top:11.5px; }
.grid-cross::after { width:1px; height:24px; left:11.5px; top:0; }
@media(min-width:1600px) { .grid-markers { inset-inline:calc((100vw - 1456px)/2); } }
@media(max-width:760px) {
  .brand { font-size:16px; letter-spacing:-.03em; }
  nav { font-size:11px; gap:18px; }
  .hero h1 { font-size:clamp(53px,calc(var(--type-vw) * 12),88px); line-height:1.03; letter-spacing:-.06em; }
  .eyebrow { font-size:10px; }
  .hero-bottom p { grid-column:1/4; font-size:13px; max-width:270px; }
  .hero-bottom .micro { font-size:9px; }
  .statement h2 { font-size:38px; }
  .statement p,.case-copy p { font-size:16px; }
  .page-title { font-size:clamp(48px,calc(var(--type-vw) * 12),70px); }
  .project-row { grid-template-columns:23px 1fr auto; }
  .project-row h3 { font-size:27px; }
  .project-subtitle { font-size:12px; margin-top:5px; }
  .project-row .discipline { font-size:11px; line-height:1.4; }
  .project-card h2 { font-size:28px; }
  .case-meta .role-meta { grid-column:1/-1; }
  .case-meta { gap:14px 20px; }
  .cover-figure img { max-height:none; }
  .image-pair { grid-template-columns:1fr; gap:32px; }
  .project-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
  .project-stats strong { font-size:29px; }
  .case-copy h2 { font-size:30px; }
  .skills-list { font-size:17px; }
  .recognition-row h3,.education-row h3 { font-size:21px; }
  .grid-cross.x-1,.grid-cross.x-3 { display:none; }
  .grid-cross { width:18px; height:18px; }
  .grid-cross::before { width:18px; top:8.5px; }
  .grid-cross::after { height:18px; left:8.5px; }
}

/* Compact overview inspired by the supplied portfolio reference. */
.overview .section-head { margin-bottom:40px; }
.overview .section-head .micro { margin:0 0 20px; }
.overview .section-head h2 { font-size:clamp(36px,calc(var(--type-vw) * 4.4),67px); font-weight:580; letter-spacing:-.05em; line-height:1.08; }
.overview-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px; }
.overview-column { grid-column:span 4; min-width:0; }
.overview-label { margin:0 0 6px; padding-bottom:13px; border-bottom:1px solid var(--line); font-size:11px; font-weight:550; letter-spacing:.07em; text-transform:uppercase; }
.overview-list { margin:0; }
.overview-list > div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; border-bottom:1px solid rgba(32,38,36,.14); padding:12px 0; }
.overview-list dt { font-size:13px; line-height:1.5; }
.overview-list dd { flex:0 1 44%; margin:0; text-align:right; font-size:10px; line-height:1.6; color:var(--muted); }
.overview .education-label { margin-top:34px; }
.overview-note { max-width:650px; margin:38px 0 0; color:var(--muted); font-size:14px; line-height:1.8; }
@media(max-width:1000px) and (min-width:761px) {
  .overview-grid { gap:24px; }
  .overview-list > div { display:block; }
  .overview-list dd { text-align:left; margin-top:3px; }
}
@media(max-width:760px) {
  .overview-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px 16px; }
  .overview-column { grid-column:1/-1; }
  .overview .section-head { align-items:flex-end; gap:16px; }
  .overview .section-head h2 { font-size:36px; max-width:240px; }
  .overview .section-head .text-link { flex-shrink:0; }
  .overview-list dt { font-size:14px; }
  .overview-list dd { font-size:11px; }
}
