@import"https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Crimson+Pro:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f2ec;--bg-alt: #ede9e1;--bg-card: #e8e4db;--ink: #1a1714;--ink-2: #4a4540;--ink-3: #8a857d;--blue: #1e3557;--blue-mid: #2a4a78;--gold: #9b7d3a;--rule: #d4cfc7;--rule-light: #e4e0d8;--font-display: "Cormorant", Georgia, serif;--font-body: "Crimson Pro", Georgia, serif;--font-mono: "Space Mono", "Courier New", monospace;--nav-h: 64px;--gutter: clamp(24px, 5vw, 80px);--section-py: clamp(80px, 10vw, 130px);--max-w: 1280px}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--bg);color:var(--ink);font-size:clamp(16px,1.2vw,18px);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--blue);color:var(--bg)}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--rule)}::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}:focus-visible{outline:2px solid var(--blue);outline-offset:3px}a{color:inherit;text-decoration:none}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 var(--gutter)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);transition:background .35s ease,border-color .35s ease,backdrop-filter .35s ease;border-bottom:1px solid transparent}.nav--scrolled{background:#f5f2ece6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--rule)}.nav__inner{height:100%;display:flex;align-items:center;gap:0}.nav__brand{font-family:var(--font-display);font-size:17px;font-weight:500;letter-spacing:.06em;color:var(--ink);margin-right:auto;transition:color .2s}.nav__brand:hover{color:var(--blue)}.nav__links{display:flex;align-items:center;gap:36px;margin-right:40px}.nav__link{font-family:var(--font-body);font-size:13px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);position:relative;padding-bottom:2px;transition:color .2s}.nav__link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--blue);transition:width .3s ease}.nav__link:hover{color:var(--blue)}.nav__link:hover:after{width:100%}.nav__lang{display:flex;align-items:center;gap:0}.nav__lang-sep{color:var(--rule);font-family:var(--font-mono);font-size:11px;padding:0 6px;-webkit-user-select:none;user-select:none}.nav__lang-btn{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-3);padding:4px 2px;transition:color .2s;line-height:1}.nav__lang-btn.active,.nav__lang-btn:hover{color:var(--blue)}.nav__lang-btn.active{font-weight:700}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:var(--nav-h);padding-bottom:clamp(48px,7vw,90px);position:relative}.hero__top-rule{border:none;border-top:1px solid var(--rule);margin-bottom:clamp(36px,5vw,64px)}.hero__grid{display:grid;grid-template-columns:58% 42%;align-items:end;gap:0}.hero__name{font-family:var(--font-display);font-size:clamp(56px,9.5vw,148px);font-weight:300;font-style:italic;line-height:.88;color:var(--blue);letter-spacing:-.02em}.hero__info{padding-left:clamp(24px,4vw,56px);border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:20px;padding-bottom:6px}.hero__role{font-family:var(--font-display);font-size:clamp(18px,2vw,28px);font-weight:500;color:var(--ink);letter-spacing:.01em}.hero__tagline{font-family:var(--font-body);font-size:clamp(15px,1.3vw,18px);font-weight:300;color:var(--ink-2);line-height:1.7;max-width:360px}.hero__links{display:flex;flex-direction:column;gap:10px;margin-top:8px}.hero__cta{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);transition:gap .25s ease}.hero__cta:hover{gap:18px}.hero__cta-arrow{font-style:normal;font-size:14px}.hero__bottom{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(36px,5vw,64px);padding-top:20px;border-top:1px solid var(--rule)}.hero__location{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.hero__quick-links{display:flex;gap:24px}.hero__quick-link{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);transition:color .2s}.hero__quick-link:hover{color:var(--blue)}.section{padding:var(--section-py) 0;border-top:1px solid var(--rule)}.section--alt{background:var(--bg-alt)}.section__meta{display:flex;align-items:baseline;gap:20px;margin-bottom:12px}.section__label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.section__index{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--rule)}.section__heading{font-family:var(--font-display);font-size:clamp(30px,4vw,54px);font-weight:400;color:var(--ink);line-height:1.08;margin-bottom:clamp(36px,5vw,72px)}.about__grid{display:grid;grid-template-columns:1fr 1.7fr .85fr;gap:clamp(24px,4vw,56px);align-items:start}.about__pull{font-family:var(--font-display);font-size:clamp(18px,2vw,26px);font-style:italic;font-weight:300;color:var(--blue);line-height:1.4;padding-top:4px}.about__bio p{font-family:var(--font-body);font-size:clamp(15px,1.3vw,18px);font-weight:300;color:var(--ink-2);line-height:1.8;margin-bottom:20px}.about__bio p:last-child{margin-bottom:0}.about__meta{display:flex;flex-direction:column;gap:0}.about__meta-item{border-top:1px solid var(--rule-light);padding:16px 0}.about__meta-item:first-child{border-top:none;padding-top:0}.about__meta-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}.about__meta-value{font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink)}.skills__table{display:flex;flex-direction:column;gap:0}.skills__group{display:grid;grid-template-columns:180px 1fr;gap:40px;padding:28px 0;border-top:1px solid var(--rule-light);align-items:start}.skills__group-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}.skills__tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.skill-tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-2);border:1px solid var(--rule);padding:6px 12px;transition:border-color .2s,color .2s}.skill-tag:hover{border-color:var(--blue);color:var(--blue)}.work__grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--rule)}.project-card{padding:clamp(24px,3.5vw,44px);display:flex;flex-direction:column;gap:14px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);transition:background .25s ease;position:relative}.project-card:nth-child(2n){border-right:none}.project-card:nth-last-child(-n+2){border-bottom:none}.project-card:hover{background:var(--bg-alt)}.project-card__num{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--ink-3)}.project-card__title{font-family:var(--font-display);font-size:clamp(18px,2.2vw,28px);font-weight:500;color:var(--ink);line-height:1.1}.project-card__desc{font-family:var(--font-body);font-size:14px;font-weight:300;color:var(--ink-2);line-height:1.7;flex:1}.project-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.project-card__tag{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--rule-light);padding:3px 8px}.project-card__link{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-top:6px;transition:gap .25s ease}.project-card__link:hover{gap:16px}.work__more{margin-top:40px;display:flex;justify-content:flex-start}.work__more-btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);background:none;border:1px solid var(--rule);padding:12px 24px;cursor:pointer;transition:border-color .2s,color .2s}.work__more-btn:hover{border-color:var(--blue);color:var(--blue)}.work__more-icon{font-family:var(--font-mono);font-size:14px;line-height:1}.timeline{display:flex;flex-direction:column}.timeline__item{display:grid;grid-template-columns:130px 28px 1fr;padding:28px 0;border-top:1px solid var(--rule-light)}.timeline__item:first-child{border-top:none;padding-top:0}.timeline__year{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-3);padding-top:5px}.timeline__marker{display:flex;flex-direction:column;align-items:center;padding-top:7px}.timeline__dot{width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0}.timeline__line{flex:1;width:1px;background:var(--rule-light);margin-top:8px;min-height:24px}.timeline__content{padding-left:20px}.timeline__title{font-family:var(--font-display);font-size:clamp(17px,1.8vw,22px);font-weight:500;color:var(--ink);margin-bottom:8px;line-height:1.2}.timeline__desc{font-family:var(--font-body);font-size:15px;font-weight:300;color:var(--ink-2);line-height:1.75;max-width:600px}.contact__inner{max-width:680px}.contact__intro{font-family:var(--font-body);font-size:clamp(16px,1.4vw,19px);font-weight:300;color:var(--ink-2);line-height:1.75;margin-bottom:clamp(36px,5vw,56px)}.contact__email-wrap{margin-bottom:40px}.contact__email-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.contact__email{display:inline-block;font-family:var(--font-display);font-size:clamp(24px,3.5vw,46px);font-weight:400;color:var(--blue);position:relative}.contact__email:after{content:"";position:absolute;bottom:1px;left:0;width:0;height:1px;background:var(--blue);transition:width .4s ease}.contact__email:hover:after{width:100%}.contact__socials-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:16px}.contact__socials{display:flex;gap:32px;flex-wrap:wrap}.contact__social{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);transition:color .2s}.contact__social:hover{color:var(--blue)}.contact__social-arrow{font-size:12px;transition:transform .2s}.contact__social:hover .contact__social-arrow{transform:translate(4px)}.footer{border-top:1px solid var(--rule);padding:28px 0}.footer__inner{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer__text{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--ink-3)}.academic__layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}.academic__left{display:flex;flex-direction:column;gap:40px}.academic__right{position:sticky;top:calc(var(--nav-h) + 24px)}.academic__block-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px}.academic__objective{font-family:var(--font-body);font-size:clamp(15px,1.3vw,17px);font-weight:300;color:var(--ink-2);line-height:1.8}.edu-card{border:1px solid var(--rule);padding:24px;background:var(--bg)}.edu-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--rule-light)}.edu-card__institution{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--ink);margin-bottom:4px}.edu-card__location{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--ink-3)}.edu-card__right{text-align:right;flex-shrink:0}.edu-card__degree{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--ink);margin-bottom:2px}.edu-card__field{font-family:var(--font-body);font-size:13px;color:var(--blue);margin-bottom:2px}.edu-card__period{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--ink-3)}.edu-card__stats{display:flex;gap:24px}.edu-card__stat-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px;display:block}.edu-card__stat-value{font-family:var(--font-mono);font-size:13px;color:var(--blue);font-weight:700;letter-spacing:.04em}.research-list{list-style:none;display:flex;flex-direction:column;gap:0}.research-item{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-top:1px solid var(--rule-light)}.research-item:first-child{border-top:none;padding-top:0}.research-item__area{font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink)}.research-item__note{font-family:var(--font-body);font-size:13px;font-weight:300;color:var(--ink-3);font-style:italic}.coursework{display:flex;flex-direction:column;gap:24px}.cw-category__label{font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}.cw-list{list-style:none;display:flex;flex-direction:column}.cw-row{padding:7px 0;border-bottom:1px solid var(--rule-light)}.cw-row:first-child{border-top:1px solid var(--rule-light)}.cw-row__name{font-family:var(--font-body);font-size:14px;font-weight:300;color:var(--ink-2)}.rec-list{display:flex;flex-direction:column;gap:32px}.rec-card{border:1px solid var(--rule);padding:clamp(24px,3.5vw,44px);max-width:860px}.rec-card__header{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:24px}.rec-card__date{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-3)}.rec-card__pdf-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);transition:gap .2s}.rec-card__pdf-link:hover{gap:10px}.rec-card__quote{font-family:var(--font-display);font-size:clamp(16px,1.6vw,21px);font-style:italic;font-weight:300;color:var(--ink);line-height:1.6;margin-bottom:28px;padding-left:20px;border-left:2px solid var(--blue)}.rec-card__rule{border:none;border-top:1px solid var(--rule);margin-bottom:20px}.rec-card__recommender{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}.rec-card__name{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--ink);margin-bottom:3px}.rec-card__creds{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--ink-3);margin-bottom:8px}.rec-card__role,.rec-card__institution,.rec-card__address,.rec-card__contact{font-family:var(--font-body);font-size:14px;font-weight:300;color:var(--ink-2);line-height:1.6}.rec-card__context{display:flex;flex-direction:column;gap:12px;flex-shrink:0}.rec-card__context-item{text-align:right}.rec-card__context-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:3px}.rec-card__context-value{font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--ink)}@media (max-width: 1024px){.about__grid{grid-template-columns:1fr 1.5fr}.about__pull{display:none}.skills__group{grid-template-columns:140px 1fr;gap:24px}}@media (max-width: 1024px){.academic__layout{grid-template-columns:1fr}.academic__right{position:static}.rec-card__recommender{flex-direction:column}.rec-card__context{flex-direction:row;flex-wrap:wrap;gap:16px}.rec-card__context-item{text-align:left}}@media (max-width: 768px){.nav__links{display:none}.hero__grid{grid-template-columns:1fr;gap:32px}.hero__info{border-left:none;border-top:1px solid var(--rule);padding-left:0;padding-top:28px}.about__grid{grid-template-columns:1fr}.about__pull{display:block}.work__grid{grid-template-columns:1fr}.project-card{border-right:none}.project-card:nth-last-child(-n+2){border-bottom:1px solid var(--rule)}.project-card:last-child{border-bottom:none}.skills__group{grid-template-columns:1fr;gap:12px}.timeline__item{grid-template-columns:90px 20px 1fr}.footer__inner{flex-direction:column;align-items:flex-start}}@media (max-width: 480px){.hero__quick-links{display:none}.contact__socials{gap:20px}}
