:root{color:#25241f;font-synthesis:none;text-rendering:optimizelegibility;background:#f2efe8;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#25241f;-webkit-font-smoothing:antialiased;background:#f2efe8;min-width:320px;min-height:100vh;margin:0;overflow-x:clip}button,a{color:inherit;font:inherit}a{text-decoration:none}button{border:0}img{max-width:100%;display:block}svg{stroke-width:1.75px;width:1rem;height:1rem}:where(a,button):focus-visible{outline-offset:4px;outline:2px solid #9b5d4b}.portfolio-shell{--page:#f2efe8;--surface:#f8f6f1;--surface-muted:#dfddd5;--ink:#25241f;--muted:#68645b;--line:#25241f2e;--line-strong:#25241f57;--accent:#925244;--serif:Georgia, "Times New Roman", serif;--sans:"Segoe UI", Arial, sans-serif;background:var(--page);min-height:100vh;color:var(--ink);padding-left:98px}.page-frame{width:min(100%,1600px);min-height:100vh;margin:0 auto;padding-left:72px;padding-right:72px}.archive-rail{z-index:40;border-right:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f2efe8f5;flex-direction:column;align-items:center;width:98px;display:flex;position:fixed;inset:0 auto 0 0}.archive-mark{border:1px solid var(--line);cursor:pointer;width:44px;height:44px;font-family:var(--serif);background:0 0;place-items:center;margin-top:24px;font-size:.92rem;line-height:1;transition:border-color .18s,background-color .18s;display:grid}.archive-mark:hover,.archive-mark.is-active{border-color:var(--line-strong);background:var(--surface)}.rail-nav{flex-direction:column;flex:1;justify-content:center;gap:28px;display:flex}.rail-nav button{color:var(--muted);cursor:pointer;text-transform:uppercase;writing-mode:vertical-rl;background:0 0;border:0;padding:0;font-size:.64rem;font-weight:600;line-height:1;transition:color .18s;position:relative}.rail-nav button:before{background:var(--accent);content:"";opacity:0;border-radius:50%;width:4px;height:4px;transition:opacity .18s,transform .18s;position:absolute;top:50%;left:-13px;transform:translateY(-50%)scale(.4)}.rail-nav button:hover,.rail-nav button.is-active{color:var(--ink)}.rail-nav button.is-active:before{opacity:1;transform:translateY(-50%)scale(1)}.rail-year{color:var(--muted);margin-bottom:24px;font-size:.62rem}.mobile-header{display:none}.hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(500px,1.08fr) minmax(400px,.92fr);align-items:center;gap:64px;min-height:clamp(640px,78vh,760px);padding:72px 0 64px;display:grid}.hero-copy{min-width:0}.hero h1{max-width:780px;font-family:var(--serif);letter-spacing:0;margin:0 0 32px;font-size:6.65rem;font-weight:400;line-height:.87}.hero-intro{max-width:580px;margin:0;font-size:1.22rem;line-height:1.58}.education-line,.section-index,.project-copy>p{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:600}.education-line{text-transform:none;margin-top:22px}.work-link,.project-link,.email-link{cursor:pointer;background:0 0;border-bottom:1px solid;align-items:center;gap:10px;padding:0 0 7px;font-weight:600;transition:color .18s,gap .18s;display:inline-flex}.work-link{margin-top:42px;font-size:.92rem}.work-link:hover,.project-link:hover,.email-link:hover{color:var(--accent);gap:14px}.headshot-frame{justify-self:center;width:min(100%,460px);margin:0;position:relative;right:24px}.headshot-placeholder{aspect-ratio:1;border:1px solid var(--line);background:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px), var(--surface-muted);background-size:25% 25%;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.headshot-placeholder:before,.headshot-placeholder:after{background:var(--accent);content:"";opacity:.72;position:absolute}.headshot-placeholder:before{width:18%;height:1px;top:8%;left:8%}.headshot-placeholder:after{width:1px;height:18%;bottom:8%;right:8%}.headshot-placeholder span{border:1px solid var(--line);background:var(--page);color:var(--muted);padding:8px 12px;font-size:.74rem;font-weight:500}.about-strip{border-bottom:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);align-items:start;gap:48px;padding:72px 0;scroll-margin-top:24px;display:grid}.about-lead{max-width:990px;font-family:var(--serif);margin:0;font-size:2.35rem;font-weight:400;line-height:1.2}.about-copy{max-width:1040px}.about-detail{max-width:880px;color:var(--muted);margin:30px 0 0;font-size:1.05rem;line-height:1.72}.projects-section,.tools-section,.contact-section{padding:112px 0;scroll-margin-top:24px}.projects-section{padding-bottom:0}.section-heading{grid-template-columns:minmax(0,1fr);align-items:start;margin-bottom:64px;display:grid;position:relative}.section-heading .section-index{position:absolute;top:4px;left:0}.section-heading h2{text-align:center}.section-heading h2,.tools-section h2,.contact-section h2{font-family:var(--serif);letter-spacing:0;margin:0;font-size:4.7rem;font-weight:400;line-height:.95}.project-list{gap:66px;display:grid}.project-card{border-bottom:1px solid var(--line);grid-template-columns:minmax(460px,1.22fr) minmax(300px,.78fr);align-items:center;gap:72px;min-width:0;padding-bottom:66px;display:grid}.project-card:last-child{border-bottom:0;padding-bottom:0}.project-card:nth-child(2n){grid-template-columns:minmax(300px,.78fr) minmax(460px,1.22fr)}.project-card:nth-child(2n) .project-visual{order:2}.project-card:nth-child(2n) .project-copy{order:1}.project-visual{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface-muted);cursor:pointer;min-width:0;padding:0;display:block;position:relative;overflow:hidden}.project-number{z-index:3;border:1px solid var(--line);background:#f2efe8eb;place-items:center;width:34px;height:34px;font-size:.69rem;font-weight:600;display:grid;position:absolute;top:14px;left:14px}.project-copy{min-width:0}.project-copy h3{font-family:var(--serif);letter-spacing:0;margin:16px 0;font-size:3.25rem;font-weight:400;line-height:.98}.project-copy>span{max-width:46ch;color:var(--muted);font-size:.96rem;line-height:1.68;display:block}.project-link{margin-top:28px;font-size:.86rem}.project-identity{--identity-bg:#d7e1de;--identity-ink:#466964;--identity-grid:#2c413d1a;--identity-mark-bg:#edf4f1;background-color:var(--identity-bg);background-image:linear-gradient(var(--identity-grid) 1px, transparent 1px), linear-gradient(90deg, var(--identity-grid) 1px, transparent 1px);width:100%;height:100%;color:var(--identity-ink);isolation:isolate;background-size:48px 48px;place-items:center;display:grid;position:relative;overflow:hidden}.project-identity:after{z-index:2;border:1px solid color-mix(in srgb, var(--identity-ink) 22%, transparent);content:"";pointer-events:none;position:absolute;inset:14px}.project-identity--rankify{--identity-bg:#e1dce8;--identity-ink:#725b89;--identity-grid:#533d671a;--identity-mark-bg:#f3eff7}.project-identity--housing{--identity-bg:#dce4d8;--identity-ink:#4f746d;--identity-grid:#34554e1a;--identity-mark-bg:#f1f5ed}.identity-pattern{z-index:0;opacity:.11;-webkit-mask-image:var(--identity-mask);-webkit-mask-position:0 0;-webkit-mask-size:84px 84px;-webkit-mask-repeat:repeat;-webkit-mask-image:var(--identity-mask);mask-image:var(--identity-mask);background:currentColor;transition:opacity .36s,transform .6s cubic-bezier(.2,.7,.2,1);position:absolute;inset:-14%;transform:rotate(-4deg)scale(1.08);-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-size:84px 84px;mask-size:84px 84px;-webkit-mask-repeat:repeat;mask-repeat:repeat}.identity-core{z-index:1;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--identity-ink) 30%, transparent);background:#f8f6f1f0;place-items:center;width:clamp(128px,31.25%,210px);padding:34px;transition:border-color .24s,transform .54s cubic-bezier(.2,.7,.2,1);display:grid;position:relative;box-shadow:0 18px 40px #25241f1f}.identity-core img{border:1px solid color-mix(in srgb, var(--identity-ink) 44%, transparent);background:var(--identity-mark-bg);object-fit:contain;border-radius:18%;width:100%;height:100%;padding:16%}.project-visual:hover .identity-pattern,.project-visual:focus-visible .identity-pattern,.archive-card:hover .identity-pattern,.archive-card:focus-visible .identity-pattern{opacity:.16;transform:rotate(-4deg)scale(1.13)}.project-visual:hover .identity-core,.project-visual:focus-visible .identity-core,.archive-card:hover .identity-core,.archive-card:focus-visible .identity-core{border-color:var(--identity-ink);transform:scale(1.045)}.project-archive{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:74px}.archive-toggle{cursor:pointer;width:100%;min-height:96px;font-family:var(--serif);text-align:center;background:0 0;justify-content:center;align-items:center;gap:12px;padding:0;font-size:1.72rem;display:flex}.archive-toggle svg{width:1.1rem;height:1.1rem;transition:transform .26s}.archive-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.archive-panel{visibility:hidden;opacity:0;grid-template-rows:0fr;transition:grid-template-rows .42s cubic-bezier(.2,.7,.2,1),opacity .24s,visibility 0s linear .42s;display:grid}.archive-panel.is-open{visibility:visible;opacity:1;grid-template-rows:1fr;transition:grid-template-rows .42s cubic-bezier(.2,.7,.2,1),opacity .3s 80ms,visibility linear}.archive-panel-inner{min-height:0;overflow:hidden}.archive-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:8px 0 28px;display:grid}.archive-card{aspect-ratio:4/3;border:1px solid var(--line);background:var(--surface-muted);cursor:pointer;text-align:left;min-width:0;padding:0;display:block;position:relative;overflow:hidden}.archive-card .identity-core{width:min(42%,120px);padding:20px}.archive-card .project-identity:after{inset:9px}.archive-card .identity-pattern{-webkit-mask-size:58px 58px;mask-size:58px 58px}.archive-card-overlay{z-index:4;color:#f7f4ed;background:#1e1d19e6;flex-direction:column;justify-content:center;gap:4px;height:35%;min-height:70px;padding:12px 14px;transition:transform .28s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(102%)}.archive-card:hover .archive-card-overlay,.archive-card:focus-visible .archive-card-overlay{transform:translateY(0)}.archive-card-overlay strong{font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:500;line-height:1.05;overflow:hidden}.archive-card-overlay small{color:#f7f4edc7;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.35;display:-webkit-box;overflow:hidden}.tools-section{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(260px,.72fr) minmax(420px,1.28fr);align-content:center;align-items:center;gap:32px;min-height:320px;padding-top:84px;padding-bottom:84px;display:grid}.tools-section h2{font-size:3.9rem}.tools-copy{max-width:760px;margin:0;font-size:1.18rem;line-height:1.7}.contact-section{grid-template-columns:150px minmax(0,1fr);align-content:center;align-items:start;gap:32px;min-height:720px;display:grid}.contact-section h2{max-width:850px;margin-top:0;font-size:5.3rem}.contact-layout{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:end;gap:clamp(56px,6vw,96px);display:grid}.contact-copy{min-width:0}.email-link{margin-top:64px;font-size:1.12rem}.contact-links{color:var(--muted);gap:28px;margin-top:36px;font-size:.86rem;display:flex}.contact-links a{transition:color .18s}.contact-links a:hover{color:var(--ink)}.contact-status{border-top:1px solid var(--line-strong);align-self:end;padding-top:24px}.contact-status__label{color:var(--muted);text-transform:uppercase;margin:0;font-size:.68rem;font-weight:600}.contact-status__lead{max-width:13ch;font-family:var(--serif);margin:24px 0 44px;font-size:2.2rem;line-height:1.12}.contact-status dl{margin:0}.contact-status dl div{border-top:1px solid var(--line);grid-template-columns:92px minmax(0,1fr);gap:18px;padding:14px 0;display:grid}.contact-status dt,.contact-status dd{margin:0;font-size:.78rem;line-height:1.45}.contact-status dt{color:var(--muted)}.contact-status dd{font-weight:600}.reveal{opacity:0;transition:opacity .6s,transform .75s cubic-bezier(.2,.7,.2,1);transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.project-card:nth-child(2){transition-delay:80ms}.project-card:nth-child(3){transition-delay:.16s}.project-stage{padding-top:36px;padding-bottom:96px}.back-link{border:1px solid var(--line);cursor:pointer;text-transform:uppercase;background:0 0;align-items:center;gap:10px;min-height:42px;padding:0 16px;font-size:.76rem;font-weight:600;transition:background-color .18s,border-color .18s;display:inline-flex}.back-link:hover{border-color:var(--line-strong);background:var(--surface)}.project-stage:not(.project-not-found)>.back-link{margin-left:clamp(24px,2.4vw,38px)}.case-hero{--case-accent:#9a5143;border:1px solid var(--line);background:linear-gradient(105deg, color-mix(in srgb, var(--case-accent) 12%, transparent), transparent 42%), #f8f6f185;grid-template-columns:minmax(340px,.78fr) minmax(620px,1.22fr);gap:48px;margin-top:26px;padding:42px;display:grid}.case-hero--cyan{--case-accent:#625a82}.case-hero--pollen{--case-accent:#526b56}.case-hero__copy{flex-direction:column;justify-content:space-between;gap:42px;min-width:0;padding:22px 0;display:flex}.system-line,.panel-label,.case-carousel__caption p,.tab-panel__content>p{color:var(--case-accent,var(--accent));text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.case-title-block h1{font-family:var(--serif);letter-spacing:0;overflow-wrap:anywhere;margin:28px 0 18px;font-size:clamp(3.8rem,5.4vw,6.4rem);font-weight:400;line-height:.9}.case-subhead{max-width:53ch;color:var(--muted);margin:0;font-size:1rem;line-height:1.65}.case-meta{gap:8px;margin:0;display:grid}.case-meta div{border-top:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);align-items:start;gap:16px;padding:14px 0;display:grid}.case-meta div:last-child{border-bottom:1px solid var(--line)}.case-meta dt{color:var(--muted);text-transform:uppercase;font-size:.65rem;font-weight:700}.case-meta dd{margin:0;font-size:.83rem;font-weight:600;line-height:1.45}.case-carousel{min-width:0;margin:0}.case-carousel__stage{aspect-ratio:16/9;border:1px solid var(--line);background:#101615;width:100%;overflow:hidden}.case-carousel--rankify .case-carousel__stage,.case-carousel--housing-market-observatory .case-carousel__stage{background:#e7e2d8}.artifact-visual{background:#101615;place-items:center;width:100%;height:100%;min-height:0;display:grid;position:relative;overflow:hidden}.artifact-visual>img{object-fit:contain;width:100%;height:100%}.case-carousel__navigation{grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;margin-top:10px;display:grid}.carousel-arrow,.visual-controls button{border:1px solid var(--line);cursor:pointer;background:0 0;place-items:center;min-width:0;height:42px;font-size:.67rem;font-weight:700;transition:border-color .18s,background-color .18s,color .18s;display:grid}.carousel-arrow:hover,.visual-controls button:hover,.visual-controls button.is-active{border-color:var(--case-accent);background:var(--surface);color:var(--case-accent)}.visual-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.case-carousel__caption{border:1px solid var(--line);background:#f8f6f194;grid-template-columns:minmax(0,1fr) auto;gap:24px;margin-top:10px;padding:18px 20px;display:grid}.case-carousel__caption h2{font-family:var(--serif);margin:8px 0 7px;font-size:1.38rem;font-weight:500;line-height:1.1}.case-carousel__caption span,.case-carousel__caption small{color:var(--muted);font-size:.77rem;line-height:1.55;display:block}.case-carousel__caption small{margin-top:9px;font-size:.65rem}.case-carousel__caption>b{color:var(--muted);font-size:.68rem;font-weight:600}.presentation-slide{background-color:#101615;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;width:100%;height:100%;padding:18px}.presentation-slide__body{grid-template-columns:minmax(0,1fr) minmax(118px,.24fr);gap:16px;height:100%;display:grid}.presentation-slide__visuals,.presentation-slide__frames,.presentation-frame{min-width:0;height:100%;min-height:0}.presentation-frame{border:1px solid color-mix(in srgb, var(--case-accent) 48%, transparent);background:#07100f;place-items:center;display:grid;overflow:hidden}.presentation-frame--light{background:#edf1f0}.presentation-frame img{object-fit:contain;width:100%;height:100%}.presentation-slide__callouts{grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.presentation-slide__callouts li{color:#f5f1e8;background:#171f1edb;border:1px solid #ffffff24;flex-direction:column;justify-content:center;min-width:0;padding:11px;display:flex}.presentation-slide__callouts p,.presentation-slide__callouts small{color:#f5f1e89e;text-transform:uppercase;margin:0;font-size:.54rem;font-weight:700;line-height:1.35}.presentation-slide--rankify,.presentation-slide--housing-market-observatory{background-color:#eeeae2;background-image:linear-gradient(#25241f08 1px,#0000 1px),linear-gradient(90deg,#25241f08 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.presentation-slide--rankify .presentation-frame,.presentation-slide--housing-market-observatory .presentation-frame{border-color:color-mix(in srgb, var(--case-accent) 48%, var(--line));background:#f8f6f1}.presentation-slide--rankify .presentation-slide__callouts li,.presentation-slide--housing-market-observatory .presentation-slide__callouts li{border-color:var(--line);border-top:2px solid var(--case-accent);color:var(--ink);background:#f8f6f1f0}.presentation-slide--rankify .presentation-slide__callouts p,.presentation-slide--rankify .presentation-slide__callouts small,.presentation-slide--housing-market-observatory .presentation-slide__callouts p,.presentation-slide--housing-market-observatory .presentation-slide__callouts small{color:var(--muted)}.presentation-slide__callouts b{overflow-wrap:anywhere;margin:5px 0 2px;font-size:.76rem;line-height:1.15}.presentation-slide__callouts small{text-transform:none;font-size:.5rem;font-weight:400}.process-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.process-card{border:1px solid var(--line);background:#f8f6f16b;min-width:0;padding:28px}.process-card>div{color:var(--accent)}.process-card h2{text-transform:uppercase;margin:22px 0 11px;font-size:.72rem}.process-card p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.62}.case-body{grid-template-columns:minmax(0,1fr) minmax(250px,.27fr);align-items:start;gap:18px;margin-top:18px;display:grid}.tabbed-panel,.archive-box{border:1px solid var(--line);background:#f8f6f16b;min-width:0}.tabs{border-bottom:1px solid var(--line);gap:8px;padding:12px;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--line);cursor:pointer;min-height:40px;color:var(--muted);text-transform:uppercase;background:0 0;flex:none;padding:0 14px;font-size:.68rem;font-weight:700}.tabs button:hover,.tabs button.is-active,.tabs button[data-state=active]{border-color:var(--accent);background:var(--surface);color:var(--ink)}.tab-panel{padding:0}.tab-panel__content{padding:40px}.tab-panel__content h2,.archive-box h2,.project-not-found h1{font-family:var(--serif);margin:12px 0 18px;font-size:3rem;font-weight:400;line-height:1}.tab-panel__content>span,.archive-box>p:not(.panel-label),.project-not-found>p{max-width:74ch;color:var(--muted);font-size:.9rem;line-height:1.7;display:block}.detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:34px;display:grid}.detail-list>div{border:1px solid var(--line);min-width:0;color:var(--muted);overflow-wrap:anywhere;padding:18px;font-size:.79rem;line-height:1.55}.detail-list--evidence{grid-template-columns:1fr}.evidence-item h3,.limitation-list h3{color:var(--ink);font-family:var(--serif);margin:0 0 9px;font-size:1.2rem;font-weight:500}.evidence-item p,.evidence-item small{color:var(--muted);margin:0;font-size:.78rem;line-height:1.55}.evidence-item small{margin-top:8px;font-size:.65rem;display:block}.evidence-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px;display:grid}.evidence-gallery figure{border:1px solid var(--line);min-width:0;margin:0}.evidence-gallery__visual{aspect-ratio:16/10;background:#101615;display:block;position:relative;overflow:hidden}.evidence-gallery__open{background:#f2efe8eb;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:10px;right:10px}.evidence-gallery figcaption{padding:16px}.evidence-gallery figcaption p{color:var(--accent);text-transform:uppercase;margin:0;font-size:.62rem;font-weight:700}.evidence-gallery figcaption h3{font-family:var(--serif);margin:8px 0;font-size:1.12rem;font-weight:500}.evidence-gallery figcaption span,.evidence-gallery figcaption small{color:var(--muted);font-size:.73rem;line-height:1.5;display:block}.evidence-gallery figcaption small{margin-top:8px;font-size:.62rem}.limitation-list{border-left:2px solid var(--accent);background:#9b5d4b0f;margin-top:28px;padding:20px}.limitation-list p{color:var(--muted);margin:8px 0 0;font-size:.78rem;line-height:1.55}.archive-box{padding:28px}.archive-box h2{font-size:2rem}.archive-links{gap:8px;margin-top:26px;display:grid}.archive-links a{border:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 12px;font-size:.72rem;font-weight:600;transition:border-color .18s,background-color .18s;display:flex}.archive-links a:hover{border-color:var(--line-strong);background:var(--surface)}.project-not-found{min-height:100vh;padding-top:120px}.project-not-found .back-link{margin-top:24px}@media (width<=1320px){.case-hero{grid-template-columns:minmax(300px,.72fr) minmax(560px,1.28fr);gap:34px;padding:32px}.case-title-block h1{font-size:clamp(3.5rem,5vw,5.4rem)}}@media (width<=1180px){.portfolio-shell{padding-left:78px}.archive-rail{width:78px}.page-frame{padding-left:42px;padding-right:42px}.hero{grid-template-columns:minmax(400px,1.08fr) minmax(330px,.92fr);gap:52px}.hero h1{font-size:5.35rem}.project-card{grid-template-columns:minmax(380px,1.1fr) minmax(280px,.9fr);gap:48px}.project-card:nth-child(2n){grid-template-columns:minmax(280px,.9fr) minmax(380px,1.1fr)}.archive-card{aspect-ratio:1}.tools-section{grid-template-columns:140px minmax(240px,.75fr) minmax(340px,1.25fr);gap:36px}.case-hero{grid-template-columns:1fr}.case-hero__copy{grid-template-columns:minmax(0,1fr) minmax(260px,.42fr);align-items:end;padding:0;display:grid}}@media (width<=920px){.hero{grid-template-columns:minmax(0,1fr);gap:56px;padding-top:76px}.hero-copy{max-width:680px}.headshot-frame{justify-self:start;width:min(100%,480px);right:auto}.about-strip,.section-heading{grid-template-columns:120px minmax(0,1fr);gap:32px}.section-heading{grid-template-columns:minmax(0,1fr);gap:0}.project-card,.project-card:nth-child(2n){grid-template-columns:minmax(0,1fr);gap:30px}.project-card:nth-child(2n) .project-visual,.project-card:nth-child(2n) .project-copy{order:initial}.project-copy{max-width:650px}.project-copy h3{font-size:2.8rem}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-card{aspect-ratio:4/3}.tools-section{grid-template-columns:120px minmax(0,1fr);gap:32px}.tools-copy{grid-column:2}.contact-section{grid-template-columns:120px minmax(0,1fr);gap:32px}.contact-layout{grid-template-columns:1fr;gap:72px}.contact-status{width:min(100%,540px)}.case-hero__copy,.process-strip,.case-body{grid-template-columns:1fr}}@media (width<=760px){.portfolio-shell{padding-left:0}.archive-rail{display:none}.mobile-header{z-index:50;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f2efe8f2;grid-template-columns:1fr auto;align-items:center;min-height:64px;padding:0 20px;display:grid;position:sticky;top:0}.mobile-header .archive-mark{width:38px;height:38px;margin:0}.mobile-menu-button{border:1px solid var(--line);cursor:pointer;background:0 0;place-items:center;width:38px;height:38px;display:grid}.mobile-header nav{visibility:hidden;opacity:0;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;max-height:0;transition:max-height .28s,opacity .2s,visibility 0s linear .28s;display:grid;overflow:hidden}.mobile-header nav.is-open{visibility:visible;opacity:1;max-height:180px;padding:12px 0 20px;transition:max-height .28s,opacity .2s 60ms,visibility linear}.mobile-header nav button{border-bottom:1px solid var(--line);color:var(--muted);cursor:pointer;text-align:left;background:0 0;padding:10px 0;font-size:.8rem;font-weight:500}.mobile-header nav button.is-active{color:var(--ink)}.page-frame{padding-left:20px;padding-right:20px}.hero{gap:24px;min-height:auto;padding:36px 0 24px}.hero h1{margin-bottom:26px;font-size:4.2rem}.hero-intro{font-size:1.05rem}.headshot-frame{width:min(76%,320px)}.work-link{margin-top:32px}.about-strip{grid-template-columns:1fr;gap:24px;padding:54px 0;scroll-margin-top:82px}.about-lead{font-size:1.9rem}.projects-section,.tools-section,.contact-section{padding:82px 0;scroll-margin-top:82px}.projects-section{padding-bottom:0}.section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:46px}.section-heading .section-index{position:static}.section-heading h2{text-align:center}.section-heading h2,.tools-section h2{font-size:3.45rem}.project-list{gap:52px}.project-card{padding-bottom:52px}.project-card:last-child{padding-bottom:0}.project-visual{aspect-ratio:4/3}.project-copy h3{font-size:2.55rem}.project-archive{margin-top:58px}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-card-overlay{height:38%;transform:translateY(0)}.tools-section{grid-template-columns:1fr;gap:22px;min-height:auto}.tools-copy{grid-column:auto;font-size:1.04rem}.contact-section{grid-template-columns:1fr;gap:28px;min-height:520px}.contact-layout{gap:58px}.contact-section h2{font-size:4rem}.contact-status__lead{font-size:1.9rem}.project-stage{padding-top:22px}.project-stage:not(.project-not-found)>.back-link{margin-left:0}.case-hero{margin-top:18px;padding:20px}.case-title-block h1{font-size:3.7rem}.case-carousel__caption{grid-template-columns:1fr}.case-carousel__caption>b{display:none}.tab-panel__content{padding:26px 20px}.detail-list,.evidence-gallery{grid-template-columns:1fr}}@media (width<=620px){.presentation-slide{padding:10px}.presentation-slide__body{grid-template-columns:1fr}.presentation-slide__callouts,.visual-controls{display:none}.tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow-x:hidden}.tabs button{white-space:normal;width:100%;padding-left:8px;padding-right:8px}.case-carousel__navigation{grid-template-columns:1fr 1fr}.carousel-arrow--previous,.carousel-arrow--next{justify-self:stretch}}@media (width<=520px){.hero h1{font-size:3.6rem}.education-line{max-width:34ch;line-height:1.5}.section-heading h2,.tools-section h2{font-size:3rem}.project-copy h3{font-size:2.35rem}.archive-grid{grid-template-columns:1fr}.archive-card{aspect-ratio:16/11}.archive-card-overlay{height:34%}.contact-section h2{font-size:3.35rem}.email-link{max-width:100%;font-size:.92rem}.contact-links{flex-wrap:wrap}.case-title-block h1{font-size:3.25rem}.case-carousel__stage{aspect-ratio:4/3}.process-card,.archive-box{padding:22px}.tab-panel__content h2{font-size:2.5rem}}@media (hover:none){.archive-card-overlay{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}
