@font-face{font-family:Montserrat;src:url('/assets/montserrat.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--background:#000;--text:#eee;--muted:#a5a5a5;--line:#292929;--hover:#141414;--page-gutter:clamp(24px,3.75vw,72px);font-family:Montserrat,'Segoe UI',sans-serif;font-weight:400;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--background);color:var(--text);font-size:16px;line-height:1.7}
a{color:inherit;text-decoration:none;text-underline-offset:8px;text-decoration-thickness:1px}
a:hover{text-decoration:underline}
button,input{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #eee;outline-offset:8px;border-radius:2px}
img{display:block;max-width:100%}
::selection{background:#eee;color:#000}
.skip-link{position:fixed;top:12px;left:12px;padding:8px 16px;background:#eee;color:#000;z-index:10;transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.home{position:relative;isolation:isolate;min-height:100svh;max-width:1920px;margin-inline:auto;padding:var(--page-gutter)}
.hello{margin:0;font-size:clamp(22px,2.5vw,36px);font-weight:400;line-height:1.3;display:flex;align-items:baseline;gap:18px}
.hello strong{font-size:clamp(42px,4.7vw,64px);font-weight:400;letter-spacing:-.045em}
.home-nav{display:flex;flex-direction:column;align-items:flex-start;gap:38px;margin-top:clamp(100px,15svh,180px);position:relative;z-index:1;width:max-content;max-width:100%}
.home-nav a{display:flex;align-items:baseline;gap:14px;line-height:1.4;transition:color .2s ease}
.home-nav a:hover{text-decoration:none}
.link-intro{font-size:clamp(18px,2vw,27px);font-weight:400}
.link-title{font-size:clamp(38px,4.65vw,64px);font-weight:400;letter-spacing:-.045em;position:relative}
.link-title:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.home-nav a:hover .link-title:after,.home-nav a:focus-visible .link-title:after{transform:scaleX(1)}
.portrait-link{position:absolute;right:var(--page-gutter);bottom:var(--page-gutter);width:clamp(220px,29vw,400px);aspect-ratio:1;border-radius:50%;overflow:hidden;transition:transform .35s ease}
.portrait-link:hover{transform:rotate(3deg)}
.portrait{width:100%;height:100%;object-fit:cover;object-position:50% 75%}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.interior{max-width:1920px;margin-inline:auto}
.site-header{padding:28px var(--page-gutter);display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:98px}
.wordmark{font-size:32px;letter-spacing:-.05em;font-weight:400;line-height:1.3}
.site-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:32px;font-size:14px}
.site-header nav a{color:var(--muted)}
.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--text)}
.site-header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}
.page-content{padding:56px var(--page-gutter) 0;max-width:1440px;margin-inline:auto}
.page-intro{margin-bottom:88px}
.sentence-title{font-size:clamp(32px,4vw,56px);font-weight:400;line-height:1.35;letter-spacing:-.045em;margin:0 0 40px}
.sentence-prefix,.sentence-suffix{font-size:clamp(16px,1.65vw,23px);letter-spacing:-.015em;font-weight:400}
.sentence-prefix{margin-right:8px}
.sentence-suffix{margin-left:8px}
.sentence-title a{text-decoration:underline;text-decoration-color:#555;text-underline-offset:12px}
.sentence-title a:hover{text-decoration-color:#eee}
.download-arrow{display:inline-block;font-size:.65em;margin-left:24px;vertical-align:baseline}
.intro-note{max-width:630px;color:var(--muted);line-height:1.9;margin:24px 0 36px}
.section-nav{display:flex;gap:28px;flex-wrap:wrap;font-size:14px}
.section-nav a{color:var(--muted)}
.section-nav a:hover{color:var(--text)}
.content-section{margin-top:100px}
.skill-section .tags{max-width:900px;gap:12px}
.tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;line-height:1.5}
.tags li{font-size:14px;border:1px solid #333;border-radius:999px;padding:9px 17px;color:#d2d2d2}
.experience-list{border-top:1px solid var(--line)}
.experience-item{display:grid;grid-template-columns:1fr 1.7fr;gap:56px;padding:40px 0;border-bottom:1px solid var(--line)}
.experience-meta h3,.education-detail h3{font-size:20px;font-weight:500;margin:0 0 8px;line-height:1.5}
.experience-meta p{color:var(--muted);font-size:14px;margin:0}
.experience-description h4{font-size:18px;font-weight:400;margin:0 0 18px}
.experience-description ul,.project-bullets{padding-left:20px;color:var(--muted);margin:0;line-height:1.9}
.experience-description li+li,.project-bullets li+li{margin-top:12px}
.page-outro{margin:90px 0;color:var(--muted)}
.page-outro p{margin:0 0 10px}
.text-link{font-size:16px;color:var(--text);display:inline-block;text-decoration:underline;text-decoration-color:#555;line-height:1.8}
.text-link:hover{text-decoration-color:var(--text)}
.text-link span{display:inline-block;margin-left:8px}
.site-footer{margin:90px var(--page-gutter) 0;padding:28px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:28px;font-size:14px;color:var(--muted)}
.site-footer nav{display:flex;flex-wrap:wrap;gap:24px}
.projects-intro{margin:0 0 60px}
.count{margin-left:5px;font-size:12px;color:#b8b8b8}
.project-section+.project-section{margin-top:116px}
.project-section h2{margin-bottom:44px}
.project-list{border-top:1px solid var(--line)}
.project{border-bottom:1px solid var(--line);scroll-margin-top:32px}
.project summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:32px 1fr 24px;gap:24px;padding:28px 0;align-items:center;transition:color .2s ease}
.project summary::-webkit-details-marker{display:none}
.project summary:hover .project-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.project-number{font-size:12px;color:#8c8c8c;font-variant-numeric:tabular-nums;align-self:start;padding-top:8px}
.project-summary{display:flex;flex-direction:column;gap:8px}
.project-name{font-size:clamp(20px,2.1vw,30px);font-weight:400;line-height:1.45;letter-spacing:-.035em}
.project-type{font-size:14px;line-height:1.6;color:var(--muted)}
.project-toggle{width:18px;height:18px;position:relative;justify-self:end}
.project-toggle:before,.project-toggle:after{content:'';position:absolute;background:#bbb;top:8px;left:0;width:18px;height:1px}
.project-toggle:after{transform:rotate(90deg);transition:transform .2s ease}
.project[open] .project-toggle:after{transform:rotate(0deg)}
.project-detail{margin-left:56px;max-width:920px;padding:0 0 40px}
.project-description{font-size:18px;line-height:1.85;margin:0 0 24px;max-width:800px;color:#d6d6d6}
.project-detail .tags{margin:24px 0}
.project-detail .tags li{padding:5px 12px;font-size:13px}
.project-detail h3{font-size:16px;font-weight:500;margin:28px 0 16px}
.project-period{font-size:14px;color:var(--muted);margin:24px 0}
.project-detail>.text-link{margin-top:28px}
.about-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:80px;align-items:start;margin-top:70px}
.about-copy{max-width:690px}
.about-copy p{color:var(--muted);line-height:1.9;margin:0 0 24px}
.about-copy .large-copy{font-size:clamp(21px,2.2vw,30px);line-height:1.65;color:var(--text);letter-spacing:-.03em;margin-bottom:32px}
.about-copy .text-link{margin-top:10px}
.about-portrait{border-radius:50%;width:min(100%,320px);aspect-ratio:1;overflow:hidden;justify-self:end}
.education-detail{border-top:1px solid var(--line);padding-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:64px}
.education-detail p{margin:10px 0}
.muted{color:var(--muted)}
.course-details summary{cursor:pointer;font-size:16px;padding-bottom:20px}
.course-details .tags li{font-size:13px;padding:6px 12px}
.contact-section>p{color:var(--muted);margin-top:0}
.contact-email{display:inline-block;font-size:clamp(18px,2.6vw,36px);letter-spacing:-.04em;overflow-wrap:anywhere;max-width:100%}
.contact-links{display:flex;gap:28px;flex-wrap:wrap;margin-top:28px;font-size:14px;color:var(--muted)}
@media(max-width:900px){.home{min-height:100svh;padding-bottom:320px}.home-nav{margin-top:100px;gap:32px}.portrait-link{width:260px}}
@media(max-width:547px){.hello>span,.home-nav .link-intro{display:none}.hello strong{font-size:36px}.home-nav{margin-top:90px;gap:30px}.link-title{font-size:36px}.home{min-height:100svh;padding-bottom:285px}.portrait-link{width:220px;right:24px;bottom:24px}}
@media(max-width:900px){.about-layout{gap:36px}.about-portrait{width:240px}.experience-item{grid-template-columns:1fr 1.6fr;gap:32px}.education-detail{gap:36px}.sentence-suffix{display:inline}}
@media(max-width:640px){.site-header{padding:24px;gap:20px;align-items:baseline}.site-header nav{gap:18px;font-size:13px}.wordmark{font-size:28px}.page-content{padding-top:36px}.page-intro{margin-bottom:64px}.sentence-title{font-size:36px;line-height:1.5;margin-bottom:28px}.sentence-prefix,.sentence-suffix{font-size:16px}.sentence-prefix{display:block;margin:0 0 3px}.sentence-suffix{display:block;margin:3px 0 0}.content-section{margin-top:72px}.experience-item{grid-template-columns:1fr;gap:24px;padding:32px 0}.experience-description h4{font-size:17px}.site-footer{flex-direction:column;gap:20px;margin-top:72px}.site-footer nav{gap:20px}.section-nav{gap:20px}.projects-intro{margin-bottom:44px}.project summary{grid-template-columns:24px 1fr 18px;gap:12px;padding:24px 0}.project-number{padding-top:4px}.project-detail{margin-left:36px}.project-name{font-size:22px}.project-type{font-size:13px}.project-description{font-size:16px}.project-section+.project-section{margin-top:80px}.about-layout{grid-template-columns:1fr;margin-top:40px;gap:40px}.about-portrait{width:220px;justify-self:end}.education-detail{grid-template-columns:1fr;gap:28px}.contact-email{font-size:23px}.tags li{font-size:14px;padding:8px 14px}}
@media(max-width:360px){.site-header{flex-direction:column;gap:16px}.site-header nav{font-size:14px}.home-nav{margin-top:72px}.portrait-link{width:195px}.home{padding-bottom:250px}.project-detail{margin-left:0}}
@media(max-width:640px){.projects-page .project-section>.sentence-title .sentence-prefix{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

