@charset "UTF-8";@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff")}@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff) format("woff")}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff) format("woff")}:root{--paper: #f6f5f1;--surface: #edece6;--ink: #242622;--muted: #62645d;--line: #d1d1c7;--accent: #ad4626;--bright: #ed784a;--serif: "Instrument Serif", Georgia, serif;--sans: "DM Sans", Arial, sans-serif;--mono: "SFMono-Regular", Consolas, monospace;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-6: 3rem;--space-8: 4rem;--space-12: 6rem;font-family:var(--sans);color:var(--ink);background:var(--paper);font-synthesis:none;line-height:1.6;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0}button,input{font:inherit}a{color:inherit;text-underline-offset:.25em}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}img{display:block;max-width:100%}svg{flex-shrink:0}h1,h2,h3,p{margin-top:0}::selection{color:var(--paper);background:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}main:focus,section:focus{outline:none}.l-container{width:min(1280px,100% - 112px);margin-inline:auto}@media(min-width:1500px){.l-container{width:min(1280px,100% - 160px)}}@media(max-width:1100px){.l-container{width:calc(100% - 64px)}}@media(max-width:760px){.l-container{width:calc(100% - 40px)}}@media(max-width:380px){.l-container{width:calc(100% - 32px)}}.l-section{padding-block:104px}@media(max-width:760px){.l-section{padding-block:65px}}.u-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.eyebrow,.section-label,.work__note,.hero__art-header,.hero__art-footer,.hero__caption,.work__number,.timeline__date,.about__caption{font-family:var(--mono);font-size:.64rem;line-height:1.6;letter-spacing:.03em}.skip-link{position:fixed;z-index:20;top:.75rem;left:1rem;transform:translateY(-200%);padding:.75rem 1rem;color:var(--paper);background:var(--ink);font-weight:600}.skip-link:focus{transform:translateY(0)}.eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;color:var(--muted)}.eyebrow__dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.eyebrow__separator{color:#92948b;margin-inline:.25rem}@media(max-width:1100px){.eyebrow__separator{display:none}}@media(max-width:760px){.eyebrow__separator{display:inline}}.section-label{display:flex;align-items:center;gap:1rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;margin-bottom:0}.section-label__number{color:var(--accent)}.section-label--inverse .section-label__number{color:var(--bright)}.section-title{margin-bottom:0;font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,4vw,3.65rem);line-height:1.06;letter-spacing:-.035em}.section-title__emphasis{font-weight:400;color:var(--accent)}@media(max-width:760px){.section-title{font-size:clamp(2.5rem,7.2vw,3.5rem)}}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.6rem;min-height:49px;padding:12px 20px;border:1px solid var(--ink);border-radius:3px;font-size:.78rem;font-weight:500;text-decoration:none;transition:background-color .16s,color .16s}.button--dark{color:var(--paper);background:var(--ink)}.button--dark:hover{color:var(--ink);background:transparent}.button__icon{width:16px;height:16px}.tag-list{display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:0 0 20px;list-style:none}.tag-list__item{padding:4px 9px;border:1px solid var(--line);border-radius:3px;color:var(--muted);font-size:.6rem}.site-header{min-height:116px;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line)}.site-header__topbar{display:contents}.site-header__brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-size:.96rem;font-weight:650;letter-spacing:-.02em}.site-header__mark{font-family:var(--serif);font-size:3rem;line-height:1;letter-spacing:-.14em;padding-right:.15em}.site-header__role{display:block;color:var(--muted);font-size:.7rem;font-weight:450;letter-spacing:.02em}.site-header__toggle{display:none}@media(max-width:1100px){.site-header{gap:1.5rem}}@media(max-width:760px){.site-header{display:block;min-height:88px;padding-block:0}.site-header__topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;min-height:87px;padding-block:17px}.site-header__brand{font-size:.85rem}.site-header__mark{font-size:2.6rem}.site-header__role{font-size:.64rem}.site-header__toggle{display:flex;align-items:center;gap:14px;min-height:44px;padding:8px 0 8px 12px;border:0;background:transparent;font-size:.72rem}.site-header__toggle-icon{display:grid;gap:5px;width:18px}.site-header__toggle-line{display:block;width:18px;height:1px;background:currentColor;transition:transform .16s}.site-header__toggle-icon--open .site-header__toggle-line:first-child{transform:translateY(3px) rotate(45deg)}.site-header__toggle-icon--open .site-header__toggle-line:last-child{transform:translateY(-3px) rotate(-45deg)}}.site-nav{display:flex;align-items:center;gap:2.25rem}.site-nav__link{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;text-decoration:none;font-size:.78rem;font-weight:500}.site-nav__link:hover{color:var(--accent)}.site-nav__link--contact{padding:0 0 0 1.5rem;border-left:1px solid var(--line)}.site-nav__icon{width:15px;height:15px}@media(max-width:1100px){.site-nav{gap:1rem}}@media(max-width:760px){.site-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding-top:18px}.site-nav--open{display:flex}.site-nav__link{min-height:50px;border-top:1px solid var(--line)}.site-nav__link--contact{border-left:0;padding-left:0}}.language-switcher{display:flex;align-items:center;gap:4px;padding-left:12px;border-left:1px solid var(--line)}.language-switcher__link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:64px;min-height:44px;flex-shrink:0;padding:8px;border:1px solid transparent;border-radius:3px;background:transparent;font-size:.65rem;font-weight:600;text-decoration:none;cursor:pointer;transition:border-color .15s,background-color .15s}.language-switcher__link:hover{background:var(--surface)}.language-switcher__link--active{border-color:var(--accent);background:var(--surface)}.language-switcher__flag{width:24px;height:16px;box-shadow:0 0 0 1px #2426221f}@media(max-width:760px){.language-switcher{padding:12px 0;border-top:1px solid var(--line);border-left:0}}.hero{display:grid;grid-template-columns:1.14fr 1fr;gap:5%;align-items:center;padding-block:64px 72px}.hero__copy{min-width:0;padding-block:10px}.hero__greeting{margin-block:40px 10px;font-size:.98rem}.hero__title{margin-bottom:26px;font-family:var(--serif);font-weight:400;font-size:clamp(3.75rem,5.45vw,5.2rem);line-height:.99;letter-spacing:-.038em}.hero__emphasis{font-weight:400;color:var(--accent)}.hero__description{max-width:365px;color:var(--muted);font-size:.96rem;line-height:1.8}.hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.75rem;margin-block:30px 42px}.hero__caption{display:flex;align-items:center;gap:.75rem;margin-bottom:0;color:var(--muted);font-size:.62rem}.hero__caption-mark{font-size:1.15rem}.hero__art{position:relative;align-self:stretch;min-width:0;min-height:540px;overflow:hidden;color:#f6f5f1;background:#242622;border-radius:4px}.hero__image{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.hero__art-header,.hero__art-footer{position:absolute;right:24px;left:24px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:10px 12px;background:#242622;font-size:.56rem;text-transform:uppercase;letter-spacing:.06em}.hero__art-header{top:24px}.hero__art-footer{bottom:24px}.hero__art-cross{font-size:2rem;font-weight:300;line-height:1}@media(min-width:1500px){.hero{gap:6%;padding-block:80px}.hero__title{font-size:5.6rem}}@media(max-width:1100px){.hero{gap:4%}.hero__art{min-height:520px}.hero__eyebrow{max-width:260px}.hero__actions{gap:1rem}}@media(max-width:760px){.hero{grid-template-columns:1fr;padding-block:38px 40px;gap:36px}.hero__eyebrow{max-width:none;font-size:.56rem}.hero__greeting{margin-top:32px}.hero__title{font-size:clamp(3.45rem,10vw,5rem);max-width:640px}.hero__description{max-width:440px;font-size:.9rem}.hero__actions{margin-block:26px 22px;gap:1.5rem}.hero__art{min-height:0;aspect-ratio:5/4}.hero__image{object-position:50% 51%}.hero__art-header{top:16px;left:16px;right:16px}.hero__art-footer{bottom:16px;left:16px;right:16px}}@media(max-width:380px){.hero__eyebrow{font-size:.51rem;gap:6px}.hero__title{font-size:3rem}.hero__actions{gap:10px 22px}.hero__caption{font-size:.53rem}}.technology-band{display:flex;align-items:center;gap:5%;padding-block:29px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.technology-band__label{width:20%;margin:0;color:var(--muted);font-size:.73rem}.technology-band__list{display:flex;align-items:center;justify-content:space-between;flex:1;gap:24px;margin:0;padding:0;list-style:none}.technology-band__item{min-width:0;font-size:1.3rem;font-weight:650;letter-spacing:-.065em}.technology-band__description{display:block;margin-top:2px;color:var(--muted);font-size:.51rem;font-weight:450;letter-spacing:.01em}@media(max-width:760px){.technology-band{flex-direction:column;align-items:stretch;gap:22px;padding-block:25px}.technology-band__label{width:auto;font-size:.64rem}.technology-band__list{flex-wrap:wrap;gap:24px}.technology-band__item{font-size:1.15rem}}@media(max-width:380px){.technology-band__list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}}.work__header{display:flex;align-items:center;justify-content:space-between;gap:2rem}.work__note{color:var(--muted);font-size:.58rem}.work__intro{display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;margin-block:30px 48px}.work__description{max-width:285px;margin-bottom:4px;color:var(--muted);font-size:.86rem;line-height:1.8}.work__list{border-top:1px solid var(--ink)}.work__item{display:grid;grid-template-columns:1fr 1.38fr;gap:8%;padding-block:42px;border-bottom:1px solid var(--line)}.work__meta{min-width:0;display:flex;gap:24px}.work__number{padding-top:4px;color:var(--accent)}.work__category{font-size:.71rem;font-weight:550}.work__focus{display:block;margin-top:7px;color:var(--muted);font-size:.65rem;font-weight:400}.work__copy{min-width:0}.work__item-title{margin-bottom:14px;font-family:var(--serif);font-weight:400;font-size:1.9rem;line-height:1.15;letter-spacing:-.025em}.work__item-description{max-width:490px;margin-bottom:19px;color:var(--muted);font-size:.86rem}.work__summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;width:100%;list-style:none;font-size:.72rem;font-weight:550}.work__summary::-webkit-details-marker{display:none}.work__summary:after{content:"+";margin-left:auto;font-size:1.1rem;font-weight:400}.work__summary:hover{color:var(--accent)}.work__summary-icon{display:none}.work__details[open] .work__summary:after{content:"−"}.work__detail-text{margin:10px 0 0;padding:16px 0 0;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}@media(max-width:1100px){.work__intro{gap:2rem}.work__description{max-width:230px}}@media(max-width:760px){.work__note{display:none}.work__intro{flex-direction:column;align-items:stretch;gap:20px;margin-block:26px 34px}.work__description{max-width:370px}.work__item{grid-template-columns:1fr;gap:22px;padding-block:30px}.work__meta{gap:16px}.work__category{margin:0}.work__focus{display:inline;margin-left:10px}.work__copy{padding-left:37px}.work__item-title{font-size:1.8rem}}@media(max-width:380px){.work__focus{display:block;margin-left:0}.work__copy{padding-left:0}}.about{padding-block:92px;background:var(--surface)}.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:11%}.about__visual{min-width:0}.about__figure{margin:34px 0 26px}.about__image{width:100%;height:auto;aspect-ratio:16/11;border-radius:3px;object-fit:cover;background:var(--ink)}.about__caption{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:12px;color:var(--muted);font-size:.55rem}.about__location{display:flex;gap:12px;align-items:flex-start}.about__location-icon{font-size:1.3rem;line-height:1.2;color:var(--accent)}.about__location-text{margin:0;font-size:.7rem}.about__location-detail{color:var(--muted)}.about__copy{min-width:0}.about__title{margin:0 0 26px}.about__description{color:var(--muted);font-size:.86rem;line-height:1.85}.about__lead{margin-bottom:20px;color:var(--ink);font-size:1.06rem;line-height:1.85}@media(max-width:1100px){.about__grid{gap:7%}}@media(max-width:760px){.about{padding-block:60px}.about__grid{grid-template-columns:1fr;gap:42px}.about__image{aspect-ratio:16/9}.about__title{margin-bottom:22px}}.education{margin-top:32px;padding-top:23px;border-top:1px solid #c3c4b9}.education__label{margin-bottom:7px;color:var(--muted);font-size:.53rem;line-height:1.85}.education__degree{margin-bottom:1px;font-size:.82rem;font-weight:550}.education__school,.education__description{margin-bottom:7px;color:var(--muted);font-size:.72rem;line-height:1.85}.skills{display:grid;grid-template-columns:1fr 1.5fr;gap:6%;padding-block:80px;border-bottom:1px solid var(--line)}.skills__header{min-width:0}.skills__label{margin-bottom:16px;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em}.skills__title{font-size:2.8rem}.skills__groups{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.skills__group{min-width:0}.skills__group-title{margin:3px 0 19px;font-size:.72rem;font-weight:600}.skills__list{display:grid;gap:9px;margin:0;padding:0;list-style:none;color:var(--muted);font-size:.75rem}@media(max-width:1100px){.skills{grid-template-columns:1fr;gap:36px}.skills__title-break{display:none}}@media(max-width:760px){.skills{padding-block:58px}.skills__title{font-size:2.55rem}.skills__groups{gap:24px}}@media(max-width:380px){.skills__groups{grid-template-columns:1fr 1fr}.skills__group:last-child{grid-column:1/-1}}.experience{display:grid;grid-template-columns:1fr 1.12fr;gap:12%}.experience__label{margin-bottom:31px}.experience__description{max-width:290px;margin-block:26px 20px;color:var(--muted);font-size:.86rem}@media(max-width:760px){.experience{grid-template-columns:1fr;gap:35px}.experience__label{margin-bottom:25px}.experience__description{max-width:360px;margin-block:20px 12px}}.timeline{--timeline-indent: 25px;margin:0;padding:0 0 0 var(--timeline-indent);border-left:1px solid var(--line);list-style:none}.timeline__item{position:relative;padding-bottom:31px}.timeline__item:last-child{padding-bottom:0}.timeline__item:before{content:"";position:absolute;box-sizing:border-box;width:9px;height:9px;left:calc(0px - var(--timeline-indent) - .5px);top:6px;transform:translate(-50%);border-radius:50%;background:var(--paper);border:1px solid var(--muted)}.timeline__item--current:before{background:var(--accent);border-color:var(--accent)}.timeline__date{margin-bottom:10px;color:var(--muted);font-size:.6rem}.timeline__title{margin-bottom:3px;font-size:.93rem;font-weight:600}.timeline__technologies{margin-bottom:6px;font-size:.75rem}.timeline__description{margin-bottom:0;max-width:390px;color:var(--muted);font-size:.72rem;line-height:1.8}@media(max-width:760px){.timeline{margin-left:4px}}.contact{padding-block:64px;color:var(--paper);background:var(--ink)}.contact__header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.contact__mark{font-family:var(--sans);font-size:3rem;font-weight:400;line-height:1;color:var(--bright)}.contact__title{margin-block:36px 40px;font-size:clamp(3rem,6vw,5.25rem);line-height:1}.contact__emphasis{color:var(--bright)}.contact__bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:3rem}.contact__description{min-width:0;margin:0;color:#c1c4b9;font-size:.8rem;line-height:1.8}.contact__link{display:inline-flex;align-items:center;gap:30px;min-width:0;min-height:44px;max-width:100%;padding-bottom:9px;border-bottom:1px solid #73776c;font-size:clamp(1rem,2vw,1.65rem);text-decoration:none;letter-spacing:-.02em}.contact__link:hover{color:var(--bright);border-color:var(--bright)}.contact :focus-visible{outline-color:var(--bright)}@media(max-width:760px){.contact{padding-block:45px}.contact__title{font-size:clamp(3rem,9vw,4.5rem);margin-block:28px}.contact__bottom{flex-direction:column;align-items:flex-start;gap:25px}.contact__link{gap:24px;font-size:1.2rem}}.site-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;min-height:90px;padding-block:20px;color:var(--muted);font-size:.6rem}.site-footer__copyright{margin:0}.site-footer__link{display:inline-flex;align-items:center;gap:12px;min-height:44px;text-decoration:none}.site-footer__link:hover{color:var(--accent)}@media(max-width:760px){.site-footer{gap:5px 20px;padding-block:22px}.site-footer__copyright{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}@media(forced-colors:active){.button{border:1px solid ButtonText}.hero__art{border:1px solid CanvasText}.eyebrow__dot{background:CanvasText}.tag-list__item{border-color:CanvasText}:focus-visible{outline:3px solid Highlight}}@media print{.skip-link,.site-header__toggle,.hero__art,.about__figure,.hero__actions,.site-footer__link{display:none}.l-container{width:100%}.hero,.l-section,.about,.skills,.contact{padding-block:24px}.hero,.experience,.about__grid{grid-template-columns:1fr}.contact{color:var(--ink);background:transparent}.contact__description{color:var(--ink)}.hero__title{font-size:3rem}.section-title:not(:where(.skills__title,.contact__title)){font-size:2rem}a{text-decoration:none}}
