:root{--ink:#111827;--muted:#5f6b7a;--line:#d9dee7;--paper:#fff;--surface:#f5f7fa;--accent:#1d4ed8;--accent-dark:#173ea7;--night:#0d1524;--night-muted:#aeb9ca}*{box-sizing:border-box}html{scroll-padding-top:5rem}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.65}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:3px;outline:3px solid #1d4ed859}.shell{width:min(1120px,100% - 48px);margin-inline:auto}.site-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border-bottom:1px solid #d9dee7cc;position:sticky;top:0}.header-inner,.case-header{justify-content:space-between;align-items:center;min-height:72px;display:flex}.wordmark{letter-spacing:-.04em;font-size:1.05rem;font-weight:750}.wordmark-dot{color:var(--accent)}.desktop-nav{align-items:center;gap:28px;display:flex}.desktop-nav a{color:#475467;font-size:.88rem;font-weight:550}.desktop-nav a:hover{color:var(--accent)}.mobile-nav{display:none;position:relative}.mobile-nav summary{cursor:pointer;font-size:.9rem;font-weight:650;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{border:1px solid var(--line);background:var(--paper);min-width:190px;padding:8px;display:grid;position:absolute;top:40px;right:0;box-shadow:0 20px 40px #0d15241f}.mobile-nav nav a{padding:10px 12px;font-size:.92rem}.hero{grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);align-items:center;gap:clamp(60px,9vw,130px);min-height:690px;padding-block:100px 92px;display:grid}.eyebrow,.brief-label{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.76rem;font-weight:650}.status-line{align-items:center;gap:9px;display:flex}.status-dot{background:#16a34a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #dcfce7}.hero h1{letter-spacing:-.07em;margin:24px 0 2px;font-size:clamp(4rem,9vw,7.5rem);font-weight:680;line-height:.98}.hero-title{color:#344054;margin:22px 0 0;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:600}.hero-intro{max-width:730px;color:var(--muted);margin:24px 0 0;font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.65}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.button{border:1px solid #0000;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 18px;font-size:.9rem;font-weight:650;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-secondary{border-color:var(--line);color:#344054;background:#fff}.button-secondary:hover{border-color:#98a2b3}.hero-brief{border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--surface)}.hero-brief .brief-label{padding:24px 26px 18px}.hero-brief ul{margin:0;padding:0 26px 24px;list-style:none}.hero-brief li{border-top:1px solid var(--line);color:#344054;padding:11px 0;font-size:.91rem}.brief-footer{border-top:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:20px;padding:17px 26px;font-size:.76rem;display:flex}.brief-footer span{color:var(--muted)}.brief-footer strong{color:var(--accent)}.section{padding-block:112px}.section-heading{max-width:720px}.section-heading h2,.resume-panel h2,.contact-section h2{letter-spacing:-.045em;margin:18px 0 0;font-size:clamp(2rem,4vw,3.35rem);font-weight:650;line-height:1.13}.about-grid{grid-template-columns:1.1fr .9fr;gap:90px;margin-top:56px;display:grid}.lead-copy{letter-spacing:-.02em;margin:0;font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.5}.about-detail p{color:var(--muted);margin:0}.about-detail .placeholder-note{border-left:2px solid var(--accent);color:#667085;margin-top:22px;padding-left:14px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.82rem}.role-strip{border-block:1px solid var(--line);flex-wrap:wrap;margin-top:64px;display:flex}.role-strip span{border-right:1px solid var(--line);color:#344054;text-align:center;flex:200px;padding:16px 20px;font-size:.85rem}.section-muted{background:var(--surface);border-block:1px solid var(--line)}.timeline{border-top:1px solid #cfd5df;margin-top:56px}.timeline-item{border-bottom:1px solid #cfd5df;grid-template-columns:80px 1fr;gap:28px;padding:32px 0;display:grid}.timeline-index,.project-index{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem}.timeline-label{color:#667085;text-transform:uppercase;margin:0 0 5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.75rem}.timeline-item h3{margin:0;font-size:1.25rem}.timeline-item div>p:last-child{color:var(--muted);margin:8px 0 0}.projects-heading{grid-template-columns:1.5fr .7fr;align-items:end;gap:70px;display:grid}.projects-heading>p{color:var(--muted);margin:0}.project-list{border-top:1px solid var(--ink);margin-top:62px}.project-card{border-bottom:1px solid var(--line);grid-template-columns:64px minmax(0,1fr) auto;align-items:start;gap:32px;padding:38px 0;display:grid}.project-main h3{letter-spacing:-.03em;margin:-6px 0 10px;font-size:clamp(1.45rem,2.6vw,2rem)}.project-main>p{max-width:680px;color:var(--muted);margin:0}.tag-list{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--line);background:var(--surface);color:#475467;padding:5px 9px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem}.project-link{color:var(--accent);white-space:nowrap;align-items:center;gap:8px;font-size:.88rem;font-weight:650;display:inline-flex}.project-link:hover{color:var(--accent-dark)}.section-dark{background:var(--night);color:#fff}.section-dark .eyebrow{color:#79a3ff}.skills-grid{border-top:1px solid #344158;border-left:1px solid #344158;grid-template-columns:repeat(4,1fr);margin-top:58px;display:grid}.skill-group{border-bottom:1px solid #344158;border-right:1px solid #344158;min-height:290px;padding:28px}.skill-group h3{margin:0 0 32px;font-size:1rem}.skill-group ul{margin:0;padding:0;list-style:none}.skill-group li{color:var(--night-muted);padding:7px 0;font-size:.9rem}.resume-panel{border:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:28px;padding:38px;display:grid}.resume-panel h2{margin-top:10px;font-size:clamp(1.65rem,3vw,2.4rem)}.resume-panel p:last-child{color:var(--muted);margin:9px 0 0}.resume-icon{width:52px;height:52px;color:var(--accent);background:#e8efff;place-items:center;display:grid}.contact-section{background:#eaf0fb;border-top:1px solid #cbd7ea}.contact-grid{grid-template-columns:1fr .75fr;align-items:start;gap:90px;display:grid}.contact-section h2{max-width:570px}.contact-details{border-top:2px solid var(--ink)}.contact-row{border-bottom:1px solid #bdcbe1;align-items:flex-start;gap:16px;padding:24px 0;display:flex}.contact-row span{color:var(--muted);font-size:.78rem;display:block}.contact-row strong{margin-top:3px;font-size:1rem;display:block}.social-placeholders{color:#475467;gap:12px;padding-top:22px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;display:grid}footer{background:var(--night);color:#aeb9ca}.footer-inner{justify-content:space-between;align-items:center;gap:24px;min-height:82px;font-size:.78rem;display:flex}.case-study-page{background:var(--paper)}.case-header{border-bottom:1px solid var(--line)}.back-link{color:#475467;align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:inline-flex}.case-hero{padding-block:104px 84px}.case-hero h1{letter-spacing:-.06em;max-width:920px;margin:22px 0 20px;font-size:clamp(3rem,7vw,6.4rem);line-height:1}.case-hero>p:not(.eyebrow){max-width:740px;color:var(--muted);margin:0;font-size:1.2rem}.case-content{grid-template-columns:260px 1fr;gap:90px;padding-bottom:120px;display:grid}.case-content aside{border-top:2px solid var(--ink);align-self:start;padding-top:20px;position:sticky;top:100px}.case-content aside ol{counter-reset:item;margin:18px 0 0;padding:0;list-style:none}.case-content aside li{color:#667085;padding:5px 0;font-size:.82rem}.case-content aside a:hover{color:var(--accent)}.case-sections{border-top:1px solid var(--ink)}.case-sections>section{border-bottom:1px solid var(--line);grid-template-columns:44px 210px 1fr;gap:18px;padding:34px 0 52px;scroll-margin-top:90px;display:grid}.case-sections>section>span{color:var(--accent);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.75rem}.case-sections h2{margin:-5px 0 0;font-size:1.25rem}.case-sections p{color:var(--muted);margin:-3px 0 0}.case-sections .todo-copy{color:#7b8492;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.83rem}.case-sections .tag-list{margin:-6px 0 0}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;min-height:100vh;display:flex}.not-found h1{letter-spacing:-.055em;max-width:700px;margin:18px 0 34px;font-size:clamp(2.5rem,6vw,5rem);line-height:1.05}@media (max-width:900px){.desktop-nav{display:none}.mobile-nav{display:block}.hero{grid-template-columns:1fr;gap:56px;min-height:auto;padding-block:80px}.hero-brief{max-width:560px}.about-grid,.projects-heading,.contact-grid{grid-template-columns:1fr;gap:34px}.skills-grid{grid-template-columns:repeat(2,1fr)}.resume-panel{grid-template-columns:auto 1fr}.resume-panel .button{grid-column:2;justify-self:start}.case-content{grid-template-columns:1fr;gap:44px}.case-content aside{position:static}}@media (max-width:640px){.shell{width:min(100% - 32px,1120px)}.section{padding-block:80px}.hero{padding-block:68px}.hero h1{font-size:clamp(3.5rem,18vw,5rem)}.hero-actions{flex-direction:column;align-items:stretch}.button{width:100%}.role-strip{display:grid}.role-strip span{border-right:0;border-bottom:1px solid var(--line);text-align:left}.timeline-item{grid-template-columns:44px 1fr;gap:14px}.project-card{grid-template-columns:42px 1fr;gap:14px}.project-link{grid-column:2;margin-top:6px}.skills-grid{grid-template-columns:1fr}.skill-group{min-height:0}.resume-panel{grid-template-columns:1fr;padding:28px}.resume-panel .button{grid-column:1;width:100%}.case-hero{padding-block:72px 60px}.case-sections>section{grid-template-columns:36px 1fr}.case-sections p,.case-sections .tag-list{grid-column:2}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;padding-block:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{transition-duration:.01ms!important}}
