@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,h4,p{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{max-width:100%;display:block}button[hidden]{display:none!important}}@layer base{:root{color-scheme:light;--bg:#fff;--surface:#f5f5f7;--text:#151619;--muted:#5a5c64;--subtle:#686a72;--line:#dddde2;--accent:#b8114c;--brand:#e91e64;--button:#c21852;--button-text:#fff;--focus:#a70d42;--header:#fffffff7;--radius:12px;--max:1120px;--space:clamp(22px, 5vw, 64px);font-synthesis:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{color-scheme:dark;--bg:#08090b;--surface:#121316;--text:#f2f2f4;--muted:#a7a8b1;--subtle:#93959f;--line:#2b2d34;--accent:#ff6c9b;--focus:#ff90b3;--header:#08090bf7}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg:#08090b;--surface:#121316;--text:#f2f2f4;--muted:#a7a8b1;--subtle:#93959f;--line:#2b2d34;--accent:#ff6c9b;--focus:#ff90b3;--header:#08090bf7}}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}button{cursor:pointer;color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:5px;border-radius:3px}::selection{background:#e91e6440}h1,h2,h3,h4{line-height:1.16}h1,h2{letter-spacing:-.045em}h2{font-size:clamp(28px,3.3vw,40px)}h3{letter-spacing:-.025em;font-size:23px}p{overflow-wrap:break-word}main:focus{outline:none}.accent{color:var(--accent)}.body-muted{color:var(--muted)}.eyebrow{letter-spacing:.14em;color:var(--muted);font-size:11px;line-height:1.6}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}}@layer layout{.wrap{width:min(var(--max), calc(100% - var(--space) * 2));margin-inline:auto}.header{z-index:20;background:var(--header);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-shell{justify-content:space-between;align-items:center;gap:28px;width:min(1280px,100% - 48px);min-height:76px;margin:auto;display:flex}.identity{letter-spacing:-.025em;white-space:nowrap;align-items:center;gap:10px;font-size:15px;display:flex}.identity img{object-fit:contain;background:#fff;border-radius:6px;padding:3px}.identity-dot{color:var(--accent)}nav{align-items:center;gap:27px;display:flex}nav a{min-height:44px;color:var(--muted);align-items:center;font-size:13px;display:flex;position:relative}nav a[aria-current]{color:var(--text)}nav a[aria-current]:after{content:"";background:var(--brand);height:2px;position:absolute;bottom:3px;left:0;right:0}.nav-actions{align-items:center;gap:16px;display:flex}.resume-nav{align-items:center;gap:10px;min-height:44px;font-size:13px;display:flex}.theme-toggle{border:1px solid var(--line);background:0 0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.menu-toggle{display:none}.hero{padding-top:clamp(48px,5vw,68px)}.hero h1{max-width:900px;margin:23px 0;font-size:clamp(44px,6vw,74px);line-height:1.07}.muted-heading{color:var(--muted)}.hero-copy{color:var(--muted);max-width:610px;font-size:18px;line-height:1.75}.hero-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;gap:30px;margin-top:38px;padding:24px 0;font-size:13px;display:flex}.hero-meta span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.section{padding-top:64px}.section-heading{justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px;display:flex}.section-heading h2{margin-top:10px}.section-heading>p{color:var(--muted);font-size:13px}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.about-grid{grid-template-columns:1fr 1fr;gap:100px;display:grid}.about-section{padding-top:104px}.about-intro{letter-spacing:-.02em;margin-bottom:18px;font-size:22px;line-height:1.6}.education{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}.education h3{margin:10px 0;font-size:19px}.education p:not(.eyebrow){font-size:14px}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding-block:25px;font-size:12px;display:flex}.footer-name{color:var(--text)}.footer a{align-items:center;min-height:44px;display:flex}.contact-section{padding-block:105px 85px}.contact-section h2{margin:14px 0;font-size:clamp(34px,4.4vw,54px)}.contact-section>p:not(.eyebrow){color:var(--muted)}}@layer components{.skip{background:var(--text);color:var(--bg);z-index:100;padding:12px 20px;position:fixed;top:-100px;left:20px}.skip:focus{top:12px}.small-line{background:var(--brand);width:24px;height:2px;display:inline-block}.hero-kicker{align-items:center;gap:12px;display:flex}.actions{flex-wrap:wrap;gap:12px;margin-top:29px;display:flex}.button{border:1px solid var(--line);border-radius:6px;justify-content:center;align-items:center;gap:30px;min-height:48px;padding:10px 22px;font-size:13px;display:inline-flex}.button.primary{background:var(--button);color:var(--button-text);border-color:var(--button)}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;padding:28px 30px;display:flex}.card-top{justify-content:space-between;align-items:center;gap:15px;display:flex}.card-top .eyebrow{letter-spacing:.095em;font-size:10px}.project-number{color:var(--subtle);font-variant-numeric:tabular-nums;font-size:11px}.project-card h3{max-width:380px;margin:21px 0 15px;font-size:25px}.award{align-items:baseline;gap:12px;font-size:12px;line-height:1.65;display:flex}.award strong{color:var(--accent);white-space:nowrap}.award>span{color:var(--muted);border-left:1px solid var(--line);padding-left:12px}.track{font-size:11px;display:block}.project-kind{color:var(--muted);min-height:39px;font-size:12px}.card-description{color:var(--muted);margin:22px 0;font-size:15px;line-height:1.7}.technologies{color:var(--subtle);font-size:11px;line-height:1.8}.project-card .technologies{margin-top:auto}.case-link{border-top:1px solid var(--line);justify-content:space-between;align-items:center;min-height:44px;margin-top:23px;padding-top:17px;font-size:12px;display:flex}.case-link span{font-size:18px}.project-note{flex-direction:column;justify-content:center;align-items:start;gap:20px;padding:48px;display:flex}.project-note p{letter-spacing:-.03em;font-size:27px;line-height:1.35}.project-note>span:last-child{color:var(--muted);font-size:13px}.skills>h3{margin-bottom:8px;font-size:20px}.skill-row{border-bottom:1px solid var(--line);padding:19px 0}.skill-row h4{margin-bottom:7px;font-size:13px}.skill-row p{color:var(--muted);font-size:14px}.engineering{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 2fr;gap:50px;margin-top:60px;padding:32px 0;display:grid}.engineering h3{margin-bottom:12px;font-size:21px}.engineering div p{color:var(--muted);max-width:660px;font-size:15px}.awards-summary{margin-top:44px}.awards-summary>h3{margin-bottom:16px;font-size:20px}.awards-summary>a{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr auto;align-items:center;gap:20px;padding:16px 0;font-size:14px;display:grid}.awards-summary strong{color:var(--accent);font-size:12px}.awards-summary small{color:var(--muted);font-size:12px;display:block}.email-link{letter-spacing:-.035em;border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:14px 0;font-size:clamp(18px,2.8vw,31px);line-height:1.5;display:inline-block}.email-link span{color:var(--accent);margin-left:15px}.contact-links{gap:28px;margin-top:22px;font-size:13px;display:flex}.contact-links a{align-items:center;min-height:44px;display:flex}.case-study{padding-top:35px}.back-link{color:var(--muted);align-items:center;min-height:44px;font-size:13px;display:inline-flex}.case-header{border-bottom:1px solid var(--line);padding-block:42px 45px}.case-header h1{max-width:900px;margin:18px 0 24px;font-size:clamp(38px,5.5vw,64px)}.case-summary{max-width:750px;color:var(--muted);font-size:21px;line-height:1.65}.case-header .award{margin-top:28px;font-size:14px}.case-header .technologies{margin-top:23px;font-size:12px}.case-body{grid-template-columns:220px minmax(0,1fr);gap:80px;padding-top:50px;display:grid}.case-toc{flex-direction:column;align-self:start;display:flex;position:sticky;top:110px}.case-toc p{margin-bottom:15px}.case-toc a{color:var(--muted);padding:10px 0;font-size:13px}.case-content{max-width:730px}.case-content section{margin-bottom:46px}.case-content h2{letter-spacing:-.03em;margin-bottom:17px;font-size:27px}.case-content p,.case-content li{color:var(--muted);font-size:16px;line-height:1.8}.case-content ul{margin:14px 0;padding-left:22px}.case-content li+li{margin-top:11px}.architecture-list{padding-left:30px;list-style:decimal-leading-zero}.architecture-list li{border-bottom:1px solid var(--line);padding:12px 0 12px 12px}.architecture-list li::marker{color:var(--accent);font-size:12px}.result-panel{background:var(--surface);border-left:2px solid var(--brand);padding:28px}.result-panel h2{margin-top:8px}.next-project{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding:30px 0 60px;display:flex}.next-project>span:last-child{letter-spacing:-.03em;font-size:clamp(24px,3vw,34px);line-height:1.3}.not-found{padding-block:100px 150px}.not-found h1{margin:20px 0;font-size:clamp(38px,5vw,64px)}.not-found p{color:var(--muted);margin-bottom:25px}}@layer responsive{@media (width<=1000px){.nav-shell{gap:16px}nav{gap:18px}.about-grid{gap:45px}.case-body{grid-template-columns:180px minmax(0,1fr);gap:45px}}@media (width<=760px){.nav-shell{flex-wrap:wrap;gap:8px;width:calc(100% - 32px);min-height:68px}.identity{gap:7px;margin-right:auto;font-size:13px}.identity img{width:28px;height:28px}.nav-actions{gap:5px}.resume-nav{font-size:12px}.theme-toggle{border:0;width:40px}.menu-toggle{background:0 0;border:0;min-height:44px;padding:8px;font-size:12px;display:block}.js nav{display:none}.js nav.is-open{display:flex}nav{flex-basis:100%;order:4;justify-content:space-between;gap:12px;padding:8px 0 16px}nav a{font-size:14px}.hero{padding-top:52px}.hero h1{margin:22px 0}.hero-copy{font-size:16px}.hero-meta{flex-direction:column;gap:17px;margin-top:38px}.hero-meta span{font-size:12px}.section{padding-top:58px}.section-heading{align-items:start}.section-heading>p{display:none}.projects-grid{grid-template-columns:1fr}.project-card{padding:25px}.project-card h3{max-width:none}.project-note{display:none}.about-grid{grid-template-columns:1fr;gap:37px}.about-intro{font-size:20px}.engineering{grid-template-columns:1fr;gap:20px;margin-top:35px}.awards-summary>a{grid-template-columns:65px 1fr auto;gap:12px;font-size:13px}.contact-section{padding-block:65px 50px}.footer{flex-wrap:wrap;gap:4px 20px}.footer p{flex-basis:100%;order:3}.footer>a:last-child{margin-left:auto}.case-body{grid-template-columns:1fr;gap:20px}.case-toc{display:none;position:static}.case-header{padding-block:28px 30px}.case-summary{font-size:18px}.case-content h2{font-size:25px}.case-header .award{font-size:12px}.case-content section{margin-bottom:35px}}@media (width<=380px){.nav-shell{width:calc(100% - 24px)}.identity span{white-space:normal;max-width:88px;line-height:1.2}.identity-dot{display:inline!important}.nav-actions{gap:0}.hero h1{font-size:40px}.hero-kicker{letter-spacing:.08em;font-size:9px}.button{gap:15px;padding-inline:15px}.award{gap:8px}.award>span{padding-left:8px}.project-card{padding:22px}.project-card h3{font-size:23px}.card-top .eyebrow{font-size:9px}.email-link{font-size:18px}}@media (width<=760px){.button{gap:18px;padding-inline:16px}.hero{padding-top:40px}.hero-meta{margin-top:30px}}.identity-dot{display:none}.spade-mark{color:var(--text);flex-shrink:0}.resume-nav{border:1px solid var(--muted);border-radius:24px;min-height:36px;padding:0 20px;font-size:14px}.nav-actions{gap:24px}.theme-toggle{background:var(--surface);border:0;width:38px;height:38px}.header nav a{font-size:15px}.header nav{gap:36px}.footer{padding-block:12px}@media (width<=900px){.identity{gap:9px;font-size:16px}.header nav{gap:18px}.nav-actions{gap:10px}}@media (width<=760px){.nav-shell{width:calc(100% - 28px);min-height:64px}.identity{font-size:14px}.spade-mark{width:25px;height:31px}.header nav{gap:14px}.header nav a{font-size:13px}.resume-nav{padding-inline:12px;font-size:12px}.nav-actions{gap:3px}.theme-toggle{width:34px}.identity span{white-space:nowrap;max-width:none}}@media (width<=380px){.identity{gap:5px;font-size:12px}.identity span{white-space:normal;max-width:90px}.nav-shell{gap:3px}.menu-toggle{padding-inline:5px}}.header{background:0 0;border-bottom:0;position:static}.nav-shell{width:min(1160px,100% - 80px);min-height:72px}.identity{gap:11px;font-size:17px}.spade-mark{width:25px;height:30px}.theme-toggle{border:1px solid var(--line);background:0 0;width:40px;height:40px}@media (width<=999px){.nav-shell{width:calc(100% - 48px)}}@media (width<=650px){.nav-shell{width:calc(100% - 40px);min-height:64px}.identity{font-size:15px}}}.case-preview{max-width:600px;margin:0 0 32px}.case-preview img{object-fit:contain;background:var(--surface);border-radius:12px;width:100%;height:auto;max-height:340px}.case-preview figcaption{color:var(--muted);margin-top:8px;font-size:13px}*,:before,:after{font-weight:400}:root{--portfolio-font:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--project-title-size:1.375rem;--portfolio-body-size:.9375rem;--portfolio-meta-size:.875rem;--portfolio-body-leading:1.4;--portfolio-width:1540px;--portfolio-gutter:clamp(20px, 2.4vw, 40px);font-family:var(--portfolio-font)}body{flex-direction:column;min-height:100svh;display:flex}body>main{flex:1}body .nav-shell,body .project-directory,body .case-study.wrap{width:min(var(--portfolio-width), calc(100% - var(--portfolio-gutter) * 2))}body .reference-card .reference-card-title h3,body .project-directory .directory-row h2,body .case-header h1{font-size:var(--project-title-size);letter-spacing:-.02em;line-height:1.2}body .reference-card .project-summary,body .directory-summary,body .case-summary,body .case-content p,body .case-content li{font-size:var(--portfolio-body-size);line-height:var(--portfolio-body-leading)}body .reference-card .competition,body .directory-meta,body .directory-row .award,body .case-header .award,body .case-header .track,body .case-header .technologies,body .back-link,body .resume-nav,body .reference-footer,body .contact-buttons a,body .work-title a{font-size:var(--portfolio-meta-size);line-height:1.35}body .reference-card .competition{margin-top:5px}body .reference-card .project-summary{margin-top:6px}body .header-skills dt,body .header-skills dd{font-size:var(--portfolio-meta-size)}body .reference-contact .email{font-size:clamp(1.125rem,2vw,1.625rem)}body .case-header .eyebrow,body .case-toc .eyebrow,body .case-study .next-project .eyebrow{font-size:var(--portfolio-meta-size);letter-spacing:0}body .case-home-link{margin-inline-start:22px}body .reference-footer{width:min(1268px, calc(100% - var(--portfolio-gutter) * 2));border-top:1px solid var(--line);color:var(--muted);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 0;margin-inline:auto;padding-block:12px;display:flex}body .reference-footer>*{padding-inline:18px;line-height:1.5}body .reference-footer>*+*{border-left:1px solid var(--line)}.project-directory{margin-inline:auto;padding-block:8px 16px}.project-directory h1{margin:6px 0 12px;font-size:1.875rem;line-height:1.2}.directory-row{border-top:1px solid var(--line);padding-block:11px;display:block}.directory-row .award,.directory-meta,.directory-summary{margin-top:4px}.directory-meta,.directory-summary{color:var(--muted)}.directory-row:focus-visible{outline-offset:3px}@media (width>=1100px) and (height<=820px){body.single-screen .nav-shell{padding-block:10px 8px}body .reference-card-link,body .reference-contact{padding-block:8px}body .reference-footer{padding-block:7px}}@media (width<=680px){body .reference-footer>*{padding-inline:9px}body .reference-footer>span{border-left:0;width:100%}body .reference-footer>span+a{border-left:0}.directory-row{padding-block:15px}}.award-placement{color:var(--accent)}:root{--interaction:.2s ease-out;--hover-border:color-mix(in srgb, #e91e64 35%, var(--line));--hover-surface:color-mix(in srgb, var(--bg) 96%, var(--text));--hover-ink:color-mix(in srgb, var(--text) 75%, var(--accent));--competition-ink:color-mix(in srgb, var(--muted) 85%, var(--text))}a,button,:root[data-theme-motion] :where(body,body *){transition:color var(--interaction), background-color var(--interaction), border-color var(--interaction)}.identity,.identity:hover,.identity:active,.identity:focus-visible{color:var(--text)}body .reference-card .competition,.directory-row .directory-meta,.document-intro .document-meta:has(.award-placement){color:var(--competition-ink)}.reference-card-link{cursor:pointer}@media (hover:hover){a:hover{color:var(--hover-ink)}.work-title a:hover{color:color-mix(in srgb, var(--accent) 80%, var(--text))}.reference-card-link:hover,.directory-row:hover,.resume-nav:hover,.contact-buttons a:hover,.theme-toggle:hover,.button.secondary:hover{color:var(--text);background-color:var(--hover-surface);border-color:var(--hover-border)}.contact-buttons .download-resume:hover,.button.primary:hover{color:var(--bg);background-color:color-mix(in srgb, var(--text) 94%, var(--accent));border-color:var(--hover-border)}}.reference-card-link:active,.directory-row:active,.resume-nav:active,.theme-toggle:active,.contact-buttons a:active{border-color:var(--hover-border)}
