:root{--paper:#f4f2ed;--paper-2:#ebe8e0;--ink:#1a1d1f;--muted:#62676a;--rule:#c9c6bd;--red:#d95432;--blue:#204d73;--night:#13191d;--serif:"Instrument Serif",Georgia,serif;--sans:"Inter",Arial,sans-serif;--mono:"JetBrains Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:400 16px/1.65 var(--sans)}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}.skip-link{position:fixed;top:-80px;left:16px;z-index:100;padding:10px 14px;background:var(--ink);color:white}.skip-link:focus{top:16px}
.site-header{width:min(1240px,calc(100% - 64px));height:92px;margin:0 auto;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between}.nameplate{font-weight:600;letter-spacing:-.02em}.site-header nav{display:flex;align-items:center;gap:26px;font-size:.88rem}.site-header nav a{color:var(--muted)}.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--ink)}.site-header nav .resume-link{color:var(--ink);border-bottom:1px solid var(--red);padding-bottom:3px}
.intro{width:min(1240px,calc(100% - 64px));margin:0 auto;min-height:730px;padding:80px 0 42px;display:flex;flex-direction:column}.intro-kicker,.section-label,.case-number,.tool-line{font:500 .72rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}.intro-kicker{color:var(--red)}.intro h1{max-width:1040px;margin:40px 0 70px;font:400 clamp(4rem,8vw,7.7rem)/.93 var(--serif);letter-spacing:-.045em}.intro h1 em{color:var(--blue);font-weight:400}.intro-bottom{display:grid;grid-template-columns:1.2fr .8fr;gap:100px;margin-top:auto;border-top:1px solid var(--rule);padding-top:24px}.intro-bottom>p{max-width:680px;font-size:1.05rem;margin:0}.intro-details{display:flex;flex-direction:column;align-items:flex-start;color:var(--muted);font-size:.86rem}.intro-details span{padding:3px 0}.scroll-cue{align-self:flex-end;margin-top:54px;font:500 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em}.scroll-cue span{color:var(--red);margin-left:8px}
.about{padding:120px max(32px,calc((100vw - 1240px)/2));background:var(--paper-2);display:grid;grid-template-columns:minmax(300px,.78fr) 1.22fr;gap:100px;align-items:center}.about-portrait{margin:0;padding:14px;background:#fff;border:1px solid var(--rule)}.about-portrait img{width:100%;aspect-ratio:1;object-fit:cover}.about-copy .section-label{margin-bottom:24px}.about-copy h2{max-width:760px;margin:0 0 34px;font:400 clamp(2.8rem,5vw,5rem)/.98 var(--serif);letter-spacing:-.025em}.about-copy p{max-width:720px;margin:0 0 18px;color:var(--muted);font-size:1.02rem}.about-copy p:last-child{margin-bottom:0}
.work-index{width:min(1240px,calc(100% - 64px));margin:0 auto;padding:110px 0;border-top:1px solid var(--rule)}.section-label{color:var(--red);margin-bottom:25px}.work-index h2{max-width:800px;margin:0 0 24px;font:400 clamp(2.7rem,5vw,4.7rem)/1 var(--serif)}.project-instruction{margin:0 0 32px;color:var(--muted);font-size:1rem}.project-links{display:grid;gap:12px}.project-links>a{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:20px;padding:20px 22px;background:#fbfaf7;border:1px solid var(--rule);box-shadow:0 2px 0 rgba(26,29,31,.04);cursor:pointer;transition:transform .2s,background-color .2s,border-color .2s,box-shadow .2s,color .2s}.project-links>a:hover,.project-links>a:focus-visible{transform:translateY(-3px);background:#fff;border-color:var(--blue);box-shadow:0 8px 22px rgba(32,77,115,.12);color:var(--blue);outline:none}.project-links>a:focus-visible{box-shadow:0 8px 22px rgba(32,77,115,.12),inset 4px 0 0 var(--red)}.project-links .project-number{display:grid;place-items:center;width:42px;height:42px;background:var(--blue);color:#fff;font:500 .78rem var(--mono);transition:background-color .2s}.project-links>a:hover .project-number,.project-links>a:focus-visible .project-number{background:var(--red)}.project-links .project-name{font:500 1.08rem/1.4 var(--sans)}.project-links .project-action{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--blue);color:var(--blue);font:500 .875rem/1.2 var(--sans);white-space:nowrap}.project-links .project-action span{display:inline-block;color:var(--red);font-size:1rem;transition:transform .2s}.project-links>a:hover .project-action span,.project-links>a:focus-visible .project-action span{transform:translateY(3px)}
.case-study{padding:120px max(32px,calc((100vw - 1240px)/2))}.case-dark{background:var(--night);color:#edf0ee}.case-light{background:#fbfaf7}.case-paper{background:var(--paper-2)}.case-header{display:grid;grid-template-columns:1fr auto;align-items:end;gap:60px;margin-bottom:60px}.case-header h2{margin:15px 0 0;font:400 clamp(3.3rem,6vw,6.4rem)/.9 var(--serif);letter-spacing:-.035em}.case-header>p{margin:0;text-align:right;color:var(--muted);font-size:.82rem}.case-dark .case-header>p{color:#98a3a7}.case-number{color:var(--red)}
.media-frame{border:1px solid rgba(255,255,255,.15)}.video-frame video{width:100%;aspect-ratio:16/9;object-fit:cover;background:#000}.media-caption{display:flex;justify-content:space-between;gap:20px;padding:12px 15px;color:#aab4b7;font:.68rem var(--mono)}.case-body{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;padding:70px 0}.case-body h3{margin:0 0 12px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.case-body p{margin:0;color:var(--muted)}.case-dark .case-body p{color:#aab4b7}.case-summary p{font:400 1.8rem/1.3 var(--serif);color:inherit}.case-dark .case-summary p{color:#edf0ee}.case-details{display:grid;grid-template-columns:1fr 1fr;gap:50px}.wide-figure{margin:0}.wide-figure img{width:100%}.dark-figure{padding:20px;background:#0d1114;border:1px solid rgba(255,255,255,.15)}.dark-figure figcaption{max-width:820px;color:#aab4b7;font-size:.82rem;margin-top:16px}.dark-figure figcaption strong{color:#edf0ee}.finding-row{display:grid;grid-template-columns:180px 1fr;gap:70px;margin-top:65px;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}.finding-row>span{color:var(--red);font:.72rem var(--mono);text-transform:uppercase}.finding-row p{max-width:830px;margin:0;font-size:1.05rem}
.split-note{padding-top:0}.figure-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:18px;align-items:stretch}.figure-grid figure{margin:0;background:#fff;border:1px solid #d8d5ce;padding:14px;display:flex;flex-direction:column}.figure-grid img{width:100%;height:100%;object-fit:contain}.figure-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}.figure-grid figcaption,.glider-image figcaption,.seed-gallery figcaption{display:flex;gap:14px;margin-top:11px;color:var(--muted);font:.68rem var(--mono)}.figure-grid figcaption span{color:var(--red)}.light-finding{grid-template-columns:170px 1fr auto;border-color:var(--rule)}.light-finding a{align-self:start;border-bottom:1px solid var(--red);font-size:.82rem;white-space:nowrap}
.glider-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}.glider-image{margin:0;padding:30px;background:#fff;border:1px solid #d3cfc5}.glider-image img{width:100%}.glider-copy .lead{margin:0 0 40px;font:400 2rem/1.25 var(--serif)}.project-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0 0 34px}.project-stats div{padding:20px 12px 20px 0}.project-stats dt{font:400 1.45rem var(--serif)}.project-stats dd{margin:4px 0 0;color:var(--muted);font-size:.72rem}.glider-copy>p:not(.lead){color:var(--muted)}.tool-line{margin-top:34px;color:var(--blue)}
.seed-gallery{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.seed-gallery figure{margin:0;padding:20px;border:1px solid #d8d5ce;background:#fff}.seed-gallery img{width:100%;height:520px;object-fit:contain}.seed-copy{padding-bottom:0}
.experience{padding:120px max(32px,calc((100vw - 1240px)/2));background:var(--blue);color:#fff}.experience .section-label{color:#f0a288}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.experience h2{margin:0 0 30px;font:400 clamp(3rem,5vw,5rem)/.95 var(--serif)}.experience-grid>div:first-child p{color:#cbd9e5;max-width:580px}.skills-list{border-top:1px solid rgba(255,255,255,.3)}.skills-list div{display:grid;grid-template-columns:120px 1fr;gap:20px;border-bottom:1px solid rgba(255,255,255,.3);padding:19px 0}.skills-list span{color:#f0a288;font:.7rem var(--mono);text-transform:uppercase}.skills-list p{margin:0;color:#eef5fa;font-size:.9rem}
.experience-photo{margin:76px 0 0;padding:14px;border:1px solid rgba(255,255,255,.28);background:#173c5c}.experience-photo img{width:100%;aspect-ratio:4/3;max-height:720px;object-fit:cover}.experience-photo figcaption{display:grid;grid-template-columns:220px 1fr;gap:42px;padding:16px 2px 2px;color:#cbd9e5}.experience-photo figcaption span{color:#f0a288;font:.7rem var(--mono);text-transform:uppercase;letter-spacing:.06em}.experience-photo figcaption p{max-width:700px;margin:0;font-size:.88rem}
.contact{padding:130px max(32px,calc((100vw - 1240px)/2));background:var(--paper)}.contact h2{max-width:1040px;margin:0 0 55px;font:400 clamp(3.2rem,6vw,6.3rem)/.96 var(--serif)}.contact-links{display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid var(--rule);padding-top:24px}.contact-links a{border-bottom:1px solid var(--red);padding-bottom:3px}footer{width:min(1240px,calc(100% - 64px));min-height:110px;margin:0 auto;border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:.75rem}footer a{color:var(--ink)}
@media(max-width:900px){.intro-bottom,.case-body,.glider-layout,.experience-grid{grid-template-columns:1fr;gap:40px}.about{grid-template-columns:minmax(260px,.7fr) 1.3fr;gap:55px}.figure-grid{grid-template-columns:1fr}.figure-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto}.seed-gallery img{height:420px}.case-summary p{max-width:700px}.light-finding{grid-template-columns:150px 1fr}.light-finding a{grid-column:2}}
@media(max-width:650px){.site-header{width:calc(100% - 32px);height:76px}.site-header nav a:not(.resume-link){display:none}.intro{width:calc(100% - 32px);min-height:650px;padding-top:58px}.intro h1{font-size:clamp(3.35rem,17vw,5rem);margin-top:30px}.intro-bottom{gap:25px}.scroll-cue{align-self:flex-start;margin-top:40px}.about{padding:80px 16px;grid-template-columns:1fr;gap:42px}.about-portrait{max-width:430px}.about-copy h2{font-size:clamp(2.7rem,13vw,4rem)}.work-index{width:calc(100% - 32px);padding:80px 0}.project-links>a{grid-template-columns:42px 1fr;gap:12px;padding:16px}.project-links .project-action{grid-column:2;justify-self:start;margin-top:3px}.case-study,.experience,.contact{padding:85px 16px}.case-header{display:block;margin-bottom:38px}.case-header>p{text-align:left;margin-top:25px}.case-details,.figure-stack,.seed-gallery{grid-template-columns:1fr}.case-body{padding:50px 0}.case-summary p,.glider-copy .lead{font-size:1.55rem}.finding-row,.light-finding{grid-template-columns:1fr;gap:15px}.light-finding a{grid-column:1}.dark-figure{padding:8px}.seed-gallery img{height:auto;max-height:470px}.project-stats{grid-template-columns:1fr}.project-stats div{border-bottom:1px solid var(--rule)}.project-stats div:last-child{border-bottom:0}.skills-list div{grid-template-columns:95px 1fr}.experience-photo{margin-top:52px;padding:8px}.experience-photo figcaption{grid-template-columns:1fr;gap:8px;padding-top:13px}footer{width:calc(100% - 32px);flex-direction:column;justify-content:center;gap:10px;padding:28px 0;text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
