*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{color:#e8eef5;background-color:#0f1419;background-image:radial-gradient(120% 80% at 100% -20%,#22d3ee38,#0000 55%),radial-gradient(80% 50% at 0 100%,#6ee7ff1f,#0000 50%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;min-height:100vh;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:1.0625rem;line-height:1.6}.skip-link{z-index:100;position:absolute;left:-9999px}.skip-link:focus{color:#0f1419;background:#22d3ee;border-radius:6px;padding:.5rem 1rem;font-weight:600;text-decoration:none;top:1rem;left:1rem}.app{min-height:100vh}.header{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f1419e0;border-bottom:1px solid #e8eef515;position:sticky;top:0}.header__inner{justify-content:space-between;align-items:center;gap:1.5rem;max-width:68rem;margin:0 auto;padding:1rem clamp(1rem,4vw,2.5rem);display:flex}.header__brand{color:inherit;letter-spacing:-.02em;font-family:monospace;font-size:clamp(1.125rem,2.5vw,1.25rem);font-weight:700;text-decoration:none}.header__brand:hover,.header__brand:focus-visible{color:#6ee7ff}.header__brand:focus-visible{outline-offset:4px;border-radius:6px;outline:2px solid #22d3ee}.nav{flex-wrap:wrap;justify-content:flex-end;gap:clamp(.25rem,2vw,1rem);font-family:monospace;display:flex}@media (width<=48rem){.nav{gap:.5rem .75rem}}.nav__link{color:#9aabbc;white-space:nowrap;padding:.375rem .5rem;font-size:.9375rem;font-weight:500;text-decoration:none}.nav__link:hover,.nav__link:focus-visible{color:#22d3ee}.nav__link:focus-visible{outline-offset:3px;border-radius:6px;outline:2px solid #22d3ee}.section{max-width:68rem;margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1rem,4vw,2.5rem)}.section+.section{padding-top:0}.hero{padding-top:clamp(2rem,8vw,4rem);padding-bottom:clamp(1.5rem,4vw,2.5rem)}.hero__label{color:#22d3ee;text-transform:uppercase;letter-spacing:.06em;background:#22d3ee38;border-radius:999px;padding:.5rem 1rem;font-size:.8125rem;font-weight:600;display:inline-block}.hero__title{letter-spacing:-.03em;margin:1.5rem 0 1rem;font-family:Literata,Georgia,serif;font-size:clamp(2rem,5vw,3.25rem);font-weight:700;line-height:1.15}.hero__lead{color:#9aabbc;max-width:42ch;margin:0;font-size:1.1875rem}.section-title{letter-spacing:-.02em;margin:0 0 1.5rem;font-family:Literata,Georgia,serif;font-size:clamp(1.375rem,3vw,1.75rem);font-weight:700}.card{background:#161d27;border:1px solid #e8eef519;border-radius:12px;box-shadow:0 1px 2px #00000040,0 12px 40px #00000059}.card--muted{background:#1f293766}.about-card{padding:clamp(1.5rem,4vw,2.5rem)}.about-card p{max-width:65ch;margin:0 0 1rem}.about-card p:last-child{margin-bottom:0}.project-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=48rem){.project-grid{grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}}.project-card{flex-direction:column;height:100%;padding:1.5rem;transition:transform .14s,border-color .14s;display:flex;overflow:hidden}.project-card:hover{border-color:#6ee7ff59;transform:translateY(-3px)}.project-card__title{margin:0 0 .5rem;font-family:Literata,Georgia,serif;font-size:1.125rem;font-weight:700}.project-card__desc{color:#9aabbc;flex:1;margin:0 0 1.5rem;font-size:.9375rem}.project-card__tags{flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.project-card__tag{background:#e8eef51f;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.project-card__actions{flex-wrap:wrap;gap:1rem;display:flex}.project-card__actions a{color:#22d3ee;font-size:.9375rem;font-weight:600;text-decoration:none}.project-card__actions a:hover{text-decoration:underline}.project-card__actions a:focus-visible{outline-offset:3px;border-radius:6px;outline:2px solid #22d3ee}.resume-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:clamp(1.5rem,4vw,2.5rem);display:flex}.resume-card__body{flex:1;min-width:min(100%,20rem);max-width:38rem}.resume-card__body p{color:#9aabbc;margin:0 0 1rem;font-size:.9975rem}.resume-card__body p:last-of-type{margin-bottom:0}.resume-card__actions{flex-wrap:wrap;flex-shrink:1;gap:1rem;display:flex}@media (width<=48rem){.resume-card__actions{width:100%}}.resume-card__cta{color:#0f1419;text-align:center;background:linear-gradient(135deg,#22d3ee,#6ee7ff);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-weight:700;text-decoration:none;display:inline-flex}@media (width<=48rem){.resume-card__cta{flex:100%}}.resume-card__cta:hover{filter:brightness(1.06)}.resume-card__cta:focus-visible{outline-offset:4px;outline:2px solid #22d3ee}.resume-card__cta--ghost{color:#22d3ee;background:0 0;border:1px solid #22d3ee8c}.resume-card__cta--ghost:hover{filter:none;background:#22d3ee1f}.contact-list{gap:1rem;display:grid}@media (width>=48rem){.contact-list{grid-template-columns:repeat(2,1fr)}}.contact-item{background:#161d27;border:1px solid #e8eef519;border-radius:12px;flex-direction:column;gap:.25rem;padding:1.5rem;display:flex}.contact-item__label{text-transform:uppercase;letter-spacing:.05em;color:#9aabbc;margin:0;font-size:.8125rem;font-weight:600}.contact-item a{color:#22d3ee;word-break:break-word;font-weight:600;text-decoration:none}.contact-item a:hover{text-decoration:underline}.contact-item a:focus-visible{outline-offset:3px;border-radius:6px;outline:2px solid #22d3ee}.contact-item span{color:#e8eef5;word-break:break-word;font-weight:600}.footer{text-align:center;color:#9aabbc;border-top:1px solid #e8eef515;margin-top:auto;padding:2.5rem clamp(1rem,4vw,2.5rem);font-size:.875rem}.footer p{margin:0}.resume-page{background:repeating-linear-gradient(135deg,#0f1419,#0f1419);min-height:100vh;padding:clamp(1.5rem,4vw,2.5rem)}.resume-page__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:52rem;margin:0 auto 1.5rem;display:flex}.resume-page__back{color:#9aabbc;font-size:.9375rem;font-weight:600;text-decoration:none}.resume-page__back:hover,.resume-page__back:focus-visible{color:#22d3ee}.resume-page__back:focus-visible{outline-offset:3px;border-radius:6px;outline:2px solid #22d3ee}.resume-page__download{color:#0f1419;background:linear-gradient(135deg,#22d3ee,#6ee7ff);border-radius:6px;align-items:center;padding:.5rem 1.5rem;font-size:.9375rem;font-weight:700;text-decoration:none;display:inline-flex}.resume-page__download:hover{filter:brightness(1.06)}.resume-page__download:focus-visible{outline-offset:4px;outline:2px solid #22d3ee}.resume-doc{color:#111;background:#fff;border:1px solid #111;border-radius:2px;max-width:52rem;margin:0 auto;font-family:Helvetica Neue,Inter,Arial,system-ui,sans-serif;font-size:.9375rem;line-height:1.5;box-shadow:0 18px 50px #00000073}.resume-doc p{margin:0}.resume-doc__heading{letter-spacing:0;color:#111;margin:0;font-family:Helvetica Neue,Inter,Arial,system-ui,sans-serif;font-size:1rem;font-weight:700}.resume-doc__header{border-bottom:1px solid #111;grid-template-columns:minmax(0,.95fr) minmax(0,1.45fr);display:grid}@media (width<=48rem){.resume-doc__header{grid-template-columns:1fr}}.resume-doc__id{border-right:1px solid #111;padding:clamp(1.5rem,3.5vw,2.5rem)}@media (width<=48rem){.resume-doc__id{border-bottom:1px solid #111;border-right:none}}.resume-doc__name{letter-spacing:-.01em;margin:0 0 .35rem;font-family:Helvetica Neue,Inter,Arial,system-ui,sans-serif;font-size:clamp(1.75rem,4.5vw,2.4rem);font-weight:800;line-height:1.05}.resume-doc__title{color:#333;margin:0 0 .6rem;font-size:1.0625rem}.resume-doc__contact{color:#333;flex-direction:column;gap:.1rem;font-size:.9375rem;display:flex}.resume-doc__contact a{color:#333;text-decoration:none}.resume-doc__contact a:hover{text-decoration:underline}.resume-doc__about{padding:clamp(1.5rem,3.5vw,2.5rem)}.resume-doc__about .resume-doc__heading{margin-bottom:.45rem}.resume-doc__about p{max-width:46ch}.resume-doc__section{border-bottom:1px solid #111;padding:clamp(1.5rem,3.5vw,2.5rem)}.resume-doc__section--last{border-bottom:none}.resume-doc__section>.resume-doc__heading{margin-bottom:1.5rem}.resume-doc__body{padding-left:clamp(1rem,3vw,2.5rem)}@media (width<=48rem){.resume-doc__body{padding-left:0}}.resume-doc__body--education{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}@media (width<=48rem){.resume-doc__body--education{grid-template-columns:1fr;gap:1rem}}.resume-doc__skills{color:#111;max-width:78ch}.resume-entry+.resume-entry{margin-top:clamp(1.5rem,3vw,2.5rem)}.resume-row{grid-template-columns:minmax(0,12.5rem) minmax(0,1fr);align-items:start;gap:clamp(1rem,3vw,2.5rem);display:grid}.resume-row+.resume-row{margin-top:1.5rem}@media (width<=48rem){.resume-row{grid-template-columns:1fr;gap:.35rem}}.resume-row__meta{flex-direction:column;gap:.05rem;display:flex}.resume-row__company{font-size:1rem;font-weight:700}.resume-row__role{color:#111}.resume-row__location,.resume-row__dates{color:#333}.resume-row__connector{background:#111;width:1px;height:1.4rem;margin:.1rem 0 .2rem}@media (width<=48rem){.resume-row__connector{display:none}}.resume-row__desc{color:#111;max-width:56ch}.resume-entry--grouped .resume-row+.resume-row{margin-top:1rem}.resume-edu__school{font-size:1rem;font-weight:700}.resume-edu__program,.resume-edu__dates{color:#333}
