@font-face{font-family:Manrope;src:url(/fonts/manrope-latin.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/dm-mono-400-latin.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f4f0;--surface:#ebe9e3;--text:#20211f;--soft:#62635f;--faint:#777872;--line:#cfcec7;--line-strong:#aead9f;--accent:#173f66;--accent-soft:#dce4e9;--header:#f5f4f0;--sans:"Manrope", ui-sans-serif, system-ui, sans-serif;--mono:"DM Mono", ui-monospace, monospace;--shell:min(1280px, calc(100vw - 96px));--header-height:72px;--section-space:clamp(70px, 7vw, 96px);--section-space-compact:clamp(56px, 5vw, 72px)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1d1e1c;--surface:#292a27;--text:#f0efe9;--soft:#b7b6ae;--faint:#94958e;--line:#3f403c;--line-strong:#5b5c55;--accent:#91b7d5;--accent-soft:#263744;--header:#1d1e1c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px)}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}button{font:inherit}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{z-index:100;background:var(--text);color:var(--bg);padding:10px 14px;font-weight:700;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link:focus{transform:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{width:var(--shell);margin-inline:auto}.app-shell{min-height:100vh}.site-header{z-index:50;border-bottom:1px solid var(--line);background:var(--header);position:sticky;top:0}.nav{min-height:var(--header-height);align-items:center;display:flex}.brand{letter-spacing:-.02em;font-size:15px;font-weight:700}.nav__panel{align-items:center;gap:clamp(20px,2.6vw,42px);margin-left:auto;display:flex}.nav__panel a{color:var(--soft);padding:7px 0;font-size:13px;position:relative}.nav__panel a:after{content:"";transform-origin:100%;background:var(--accent);height:1px;transition:transform .16s;position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.nav__panel a:hover{color:var(--text)}.nav__panel a:hover:after{transform-origin:0;transform:scaleX(1)}.nav__actions{align-items:center;gap:6px;margin-left:clamp(20px,3vw,48px);display:flex}.icon-button,.language-menu__button{width:42px;height:42px;color:var(--soft);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:inline-grid}.icon-button:hover,.language-menu__button:hover{border-color:var(--line);color:var(--text)}.icon-button svg{width:17px}.language-menu{position:relative}.language-menu__button{width:auto;min-width:66px;font:400 11px var(--mono);gap:6px;padding:0 8px;display:flex}.language-menu__button svg{width:14px}.language-menu__button svg:last-child{width:11px;transition:transform .16s}.language-menu__button[aria-expanded=true] svg:last-child{transform:rotate(180deg)}.language-menu__list{z-index:60;visibility:hidden;border:1px solid var(--line);background:var(--header);opacity:0;min-width:148px;padding:5px;transition:opacity .15s,transform .15s,visibility .15s;display:grid;position:absolute;top:calc(100% + 9px);right:0;transform:translateY(-4px)}.language-menu__list.is-open{visibility:visible;opacity:1;transform:none}.language-menu__list button{color:var(--soft);cursor:pointer;text-align:left;background:0 0;border:0;padding:10px 11px;font-size:12px}.language-menu__list button:hover,.language-menu__list button[aria-checked=true]{background:var(--surface);color:var(--text)}.menu-button{display:none}.hero{border-bottom:1px solid var(--line)}.hero__content{max-width:min(820px, var(--shell));margin-left:max(48px,50vw - 640px);padding:clamp(66px,7vw,94px) 0 clamp(58px,6vw,78px)}.hero__role{color:var(--accent);letter-spacing:.025em;text-transform:uppercase;margin:0 0 16px;font-size:12px;font-weight:600}.hero h1{letter-spacing:-.06em;word-spacing:.08em;margin:0;font-size:clamp(70px,6.3vw,90px);font-weight:600;line-height:.95}.hero__summary{max-width:660px;color:var(--soft);margin:28px 0 0;font-size:clamp(18px,1.5vw,20px);line-height:1.55}.hero__location{color:var(--faint);margin:13px 0 0;font-size:14px}.hero__links{flex-wrap:wrap;gap:12px 24px;margin-top:30px;display:flex}.hero__links a{border-bottom:1px solid var(--line-strong);color:var(--text);align-items:center;gap:7px;padding:0 0 5px;font-size:14px;font-weight:700;display:inline-flex}.hero__links a:first-child{color:var(--accent);border-color:var(--accent)}.hero__links a:hover{border-color:var(--accent);color:var(--accent)}.hero__links svg{width:15px;height:15px}.section{padding:var(--section-space) 0;border-bottom:1px solid var(--line)}.projects-section{padding-top:clamp(42px,4vw,56px)}.projects-heading{margin-bottom:clamp(42px,4vw,56px)}.project-list{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(60px,6vw,84px) clamp(28px,4vw,56px);display:grid}.project-case{border-top:1px solid var(--line-strong);grid-column:span 6;grid-template-columns:1fr;align-content:start;padding-top:18px;display:grid}.project-case--featured{grid-column:1/13;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(28px,4vw,56px)}.project-case__header{min-width:0}.project-case--featured .project-case__header{grid-column:1/6}.project-case__meta{color:var(--faint);margin:0 0 30px;font-size:12px;line-height:1.45}.project-case h3{overflow-wrap:anywhere;letter-spacing:-.04em;margin:0;font-size:clamp(30px,2.5vw,36px);font-weight:600;line-height:1.08}.project-case__lead{max-width:580px;color:var(--soft);margin:20px 0 0;font-size:clamp(17px,1.35vw,19px);line-height:1.58}.project-case__contribution{border-top:1px solid var(--line);max-width:580px;margin-top:22px;padding-top:18px}.project-case__contribution span{color:var(--accent);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.project-case__contribution p{color:var(--soft);margin:0;font-size:14px;line-height:1.65}.project-case__stack{color:var(--faint);margin:24px 0 0;font-size:14px;line-height:1.7}.project-case__links{flex-wrap:wrap;gap:13px 24px;margin-top:24px;display:flex}.project-case__links a{border-bottom:1px solid var(--line-strong);color:var(--accent);align-items:center;gap:6px;padding-bottom:4px;font-size:14px;font-weight:700;display:inline-flex}.project-case__links a:hover{border-color:var(--accent)}.project-case__links svg{width:13px;height:13px}.project-case__visual{grid-area:1/6/auto/13}.evidence-gallery__topline{color:var(--faint);justify-content:space-between;margin-bottom:10px;font-size:12px;display:flex}.evidence-gallery__preview{margin:0}.evidence-gallery__preview>img{border:1px solid var(--line);background:var(--surface);width:100%;height:auto}.evidence-gallery__preview figcaption{color:var(--soft);justify-content:space-between;align-items:center;gap:16px;margin-top:12px;font-size:13px;display:flex}.evidence-gallery__preview figcaption button{border:0;border-bottom:1px solid var(--line-strong);color:var(--accent);cursor:pointer;background:0 0;flex:none;align-items:center;gap:7px;padding:3px 0;font-size:13px;font-weight:700;display:inline-flex}.evidence-gallery__preview figcaption svg{width:14px}.evidence-gallery__choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.evidence-gallery__choices button{border:1px solid var(--line);min-width:0;color:var(--soft);cursor:pointer;text-align:left;background:0 0;padding:8px}.evidence-gallery__choices button:hover,.evidence-gallery__choices button[aria-pressed=true]{border-color:var(--accent);color:var(--text)}.evidence-gallery__choices img{border:1px solid var(--line);width:100%;height:auto;margin-bottom:8px}.evidence-gallery__choices span{font-size:11px;line-height:1.4;display:block}.evidence-dialog{border:1px solid var(--line-strong);background:var(--bg);width:min(94vw,1640px);max-width:none;max-height:94vh;color:var(--text);padding:44px}.evidence-dialog::backdrop{background:#0c0d0cd6}.evidence-dialog__close{z-index:1;border:1px solid var(--line);background:var(--bg);width:44px;height:44px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;margin:-34px 0 8px auto;display:flex;position:sticky;top:0}.evidence-dialog figure{margin:0}.evidence-dialog img{object-fit:contain;width:100%;height:auto;max-height:calc(94vh - 100px)}.evidence-dialog figcaption{color:var(--soft);margin-top:10px;font-size:13px}.project-details{border-top:1px solid var(--line);grid-column:1/-1;margin-top:32px}.project-details summary{min-height:50px;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;list-style:none;display:flex}.project-details summary::-webkit-details-marker{display:none}.project-details summary span:last-child{color:var(--accent);font-size:20px;font-weight:400;transition:transform .16s}.project-details[open] summary span:last-child{transform:rotate(45deg)}.project-details__body{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:36px 48px;padding:28px 0 12px;display:grid}.project-details__problem{grid-column:1/-1;max-width:820px}.project-details h4{color:var(--accent);margin:0 0 14px;font-size:13px;font-weight:700}.project-details p{color:var(--soft);margin:0;font-size:14px;line-height:1.7}.project-details ul{margin:0;padding-left:18px}.project-details li{color:var(--soft);margin:0 0 10px;font-size:14px;line-height:1.7}.experience-section,.about-section{padding:var(--section-space-compact) 0}.section-heading-simple{margin-bottom:38px}.section-heading-simple h2{letter-spacing:-.035em;margin:0;font-size:clamp(30px,2.5vw,36px);font-weight:600;line-height:1.1}.experience-section{background:var(--surface)}.experience-entry{border-top:1px solid var(--line-strong);grid-template-columns:minmax(0,3fr) minmax(0,7fr);gap:clamp(48px,5vw,64px);padding-top:26px;display:grid}.experience-entry__identity p{color:var(--accent);margin:0 0 14px;font-size:15px;font-weight:700}.experience-entry__identity h3{letter-spacing:-.025em;max-width:340px;margin:0;font-size:clamp(20px,1.7vw,24px);font-weight:550;line-height:1.25}.experience-entry__identity span{color:var(--faint);margin-top:14px;font-size:13px;display:block}.experience-entry__work{max-width:760px}.experience-entry__context{color:var(--text);margin:0 0 24px;font-size:clamp(16px,1.25vw,18px);line-height:1.65}.experience-entry ul{margin:0;padding:0;list-style:none}.experience-entry li{color:var(--soft);margin-bottom:13px;padding-left:20px;font-size:15px;line-height:1.65;position:relative}.experience-entry li:before{content:"—";color:var(--accent);position:absolute;left:0}.experience-details{border-top:1px solid var(--line);margin-top:18px}.experience-details summary{color:var(--accent);cursor:pointer;padding:14px 0 4px;font-size:14px;font-weight:700;display:inline-block}.experience-details ul{margin-top:12px}.about-section{border-bottom:0}.about-copy{max-width:65ch}.about-copy>p{color:var(--soft);margin:0;font-size:clamp(16px,1.35vw,18px);line-height:1.7}.about-credentials{margin-top:24px}.about-credential{width:-moz-fit-content;width:fit-content;max-width:100%}.about-credential+.about-credential{margin-top:18px}.about-credential__label{color:var(--faint);letter-spacing:.025em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.about-credential--primary a{border-bottom:1px solid var(--line-strong);flex-wrap:wrap;align-items:center;gap:8px 14px;padding-bottom:4px;display:flex}.about-credential strong{font-size:14px}.about-credential span:not(.about-credential__label){color:var(--faint);font-size:13px}.about-credential--primary a>span:last-child{color:var(--accent);align-items:center;gap:6px;font-weight:700;display:inline-flex}.about-credential--secondary{border-left:1px solid var(--line);max-width:54ch;color:var(--faint);padding-left:16px}.about-credential--secondary strong{color:var(--text);font-size:13px;font-weight:650;line-height:1.45;display:block}.about-credential--secondary span:not(.about-credential__label){margin-top:5px;font-size:12px;line-height:1.45;display:inline-block}.about-copy a svg{width:14px}.contact-section{padding:var(--section-space-compact) 0 24px;border-top:1px solid var(--line);background:var(--bg);color:var(--text)}.contact-layout{display:block}.contact-section .section-heading-simple{margin-bottom:22px}.contact-email{width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--accent);letter-spacing:-.025em;overflow-wrap:anywhere;font-size:clamp(20px,2vw,28px);font-weight:600;display:block}.contact-email:hover{text-underline-offset:5px;text-decoration:underline}.contact-links{gap:24px;margin-top:18px;display:flex}.contact-links a{border-bottom:1px solid var(--line-strong);color:var(--soft);padding-bottom:3px;font-size:14px;font-weight:700}.contact-links a:hover{border-color:var(--accent);color:var(--accent)}.site-footer{border-top:1px solid var(--line);color:var(--faint);justify-content:flex-end;margin-top:clamp(48px,5vw,64px);padding-top:20px;font-size:12px;display:flex}@media (max-width:980px){:root{--shell:min(100% - 48px, 920px)}.hero__content{width:var(--shell);margin-inline:auto}.project-case--featured .project-case__header{grid-column:1/6}.project-case__visual{grid-column:6/13}}@media (max-width:760px){:root{--shell:calc(100% - 36px);--header-height:64px;--section-space:68px;--section-space-compact:48px}.nav__panel{border-bottom:1px solid var(--line);background:var(--header);margin:0;padding:12px 18px 18px;display:none;position:absolute;top:64px;left:0;right:0}.nav__panel.is-open{display:grid}.nav__panel a{border-bottom:1px solid var(--line);padding:12px 0;font-size:15px}.nav__actions{margin-left:auto}.menu-button{display:inline-grid}.hero__content{padding:58px 0 54px}.hero h1{font-size:clamp(54px,13vw,76px)}.hero__summary{margin-top:22px}.projects-section{padding-top:38px}.projects-heading{margin-bottom:44px}.project-list{display:block}.project-case,.project-case--featured{margin-bottom:64px;display:block}.project-case:last-child{margin-bottom:0}.project-case__visual{margin-top:38px}.project-details__body{grid-template-columns:1fr}.project-details__problem{grid-column:1}.contact-section{padding-bottom:22px}.section-heading-simple{margin-bottom:30px}.section-heading-simple h2{font-size:30px}.experience-entry{grid-template-columns:1fr;gap:28px}.experience-entry__work{max-width:none}.evidence-dialog{width:calc(100vw - 24px);padding:40px 12px 16px}}@media (max-width:460px){:root{--shell:calc(100% - 28px);--section-space-compact:44px}.brand{font-size:14px}.nav__actions{gap:0}.language-menu__button{min-width:58px;padding:0 5px}.language-menu__button svg:first-child{display:none}.hero__content{padding:48px 0}.hero h1{font-size:clamp(48px,14vw,62px)}.hero__summary{font-size:18px}.hero__links{gap:12px 16px}.project-case__meta{margin-bottom:26px}.project-case h3{font-size:30px}.project-case__lead{margin-top:18px}.project-case__visual{margin-top:34px}.evidence-gallery__preview figcaption{flex-direction:column;align-items:flex-start}.evidence-gallery__choices{grid-template-columns:1fr}.evidence-gallery__choices button{grid-template-columns:112px 1fr;align-items:center;gap:12px;display:grid}.evidence-gallery__choices img{margin:0}.project-details{margin-top:34px}.project-details__body{gap:24px}.about-credential--primary a{flex-direction:column;align-items:flex-start}.site-footer{gap:20px;font-size:11px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
