:root,[data-theme=dark]{color-scheme:dark;--navy: #0a192f;--light-navy: #112240;--lightest-navy: #233554;--slate: #8892b0;--light-slate: #a8b2d1;--white: #e6f1ff;--green: #64ffda;--green-dim: rgba(100, 255, 218, .14);--green-tag-bg: rgba(100, 255, 218, .08);--green-card-border: rgba(100, 255, 218, .35);--green-card-glow: rgba(100, 255, 218, .06);--surface-card: rgba(17, 34, 64, .35);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace;--easing: cubic-bezier(.22, 1, .36, 1)}[data-theme=light]{color-scheme:light;--navy: #f0f4f8;--light-navy: #e2ebf4;--lightest-navy: #b8c5d4;--slate: #475569;--light-slate: #64748b;--white: #0f1729;--green: #0d9488;--green-dim: rgba(13, 148, 136, .12);--green-tag-bg: rgba(13, 148, 136, .12);--green-card-border: rgba(13, 148, 136, .38);--green-card-glow: rgba(13, 148, 136, .1);--surface-card: rgba(255, 255, 255, .9)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background-color:var(--navy);color:var(--slate);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--green);outline-offset:3px}.skip-link{position:absolute;top:-100px;left:1rem;z-index:100;padding:.75rem 1rem;background:var(--light-navy);color:var(--green);border-radius:6px;font-weight:600;transition:top .2s var(--easing)}.skip-link:focus{top:1rem}.theme-switch{position:fixed;top:1rem;right:1rem;z-index:80;display:flex;border-radius:6px;border:1px solid var(--lightest-navy);overflow:hidden;font-family:var(--font-mono);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--light-navy);box-shadow:0 2px 12px #0000001f}[data-theme=dark] .theme-switch{box-shadow:0 2px 16px #00000059}.theme-switch__btn{margin:0;padding:.5rem .8rem;border:none;background:transparent;color:var(--slate);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;transition:background .2s var(--easing),color .2s var(--easing)}.theme-switch__btn+.theme-switch__btn{border-left:1px solid var(--lightest-navy)}.theme-switch__btn:hover:not(.theme-switch__btn--active){color:var(--white)}.theme-switch__btn--active{background:var(--green-dim);color:var(--green)}.page{max-width:1100px;margin:0 auto;padding:0 1.5rem 6rem}@media (min-width: 1024px){.page{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);gap:3rem;padding:0 3rem 6rem}}.sidebar{padding:5rem 0 3rem}@media (min-width: 1024px){.sidebar{position:sticky;top:0;height:100vh;max-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:6rem 0 4rem;overflow-y:auto}}.sidebar__intro{margin-bottom:2.5rem}.sidebar__name{margin:0 0 .35rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;letter-spacing:-.03em;color:var(--white);line-height:1.1}.sidebar__role{margin:0 0 1rem;font-size:clamp(.95rem,2.6vw,1.125rem);font-weight:500;line-height:1.45;color:var(--white);display:flex;flex-wrap:wrap;align-items:baseline;gap:.15em .35em;max-width:100%}.sidebar__role-accent{color:var(--green)}.sidebar__tagline{margin:0;max-width:320px;font-size:.95rem;line-height:1.65}.sidebar__intro a{color:var(--white);font-weight:500;text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:1px;text-underline-offset:.2em;text-underline-position:from-font;transition:color .2s var(--easing),text-decoration-color .2s var(--easing)}.sidebar__intro a:hover{color:var(--green);text-decoration-color:transparent}.sidebar__intro a.sidebar__role-company{color:var(--green);text-decoration:none;white-space:nowrap;border-bottom:1px solid var(--light-slate);padding-bottom:.06em}.sidebar__intro a.sidebar__role-company:hover{color:var(--white);text-decoration:none;border-bottom-color:var(--green)}.nav{display:flex;flex-direction:column;gap:.35rem;margin-bottom:2rem}.nav__link{display:flex;align-items:center;gap:.75rem;padding:.4rem 0;font-size:.75rem;font-family:var(--font-mono);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);transition:color .2s var(--easing)}.nav__link:before{content:"";width:2rem;height:1px;background:var(--lightest-navy);flex-shrink:0;transition:width .2s var(--easing),background .2s var(--easing)}.nav__link:hover,.nav__link--active{color:var(--white)}.nav__link:hover:before,.nav__link--active:before{width:3rem;background:var(--green)}.social{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1.25rem;padding-top:.5rem}.social__link{display:inline-flex;color:var(--slate);transition:color .2s var(--easing),transform .2s var(--easing)}.social__link:hover{color:var(--green);transform:translateY(-2px)}.social__link svg{width:22px;height:22px;display:block}.quick-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1rem;font-family:var(--font-mono);font-size:.75rem}.quick-links a{color:var(--light-slate);font-weight:500;text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:1px;text-underline-offset:.2em;text-underline-position:from-font;transition:color .2s var(--easing),text-decoration-color .2s var(--easing)}.quick-links a:hover{color:var(--green);text-decoration-color:transparent}.main{padding:3rem 0 0}@media (min-width: 1024px){.main{padding:6rem 0 0}}.section{margin-bottom:5.5rem;scroll-margin-top:5rem}.section:last-child{margin-bottom:0}.section__title{margin:0 0 1.25rem;font-size:inherit;font-weight:inherit;line-height:inherit}.section__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.section__title-text{font-family:var(--font-mono);font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--white)}.section__title-line{display:none}@media (min-width: 1024px){.section__title{margin-bottom:2.75rem}.section__title-row{flex-wrap:nowrap;white-space:nowrap}.section__title-line{display:block;flex:1;height:1px;background:var(--lightest-navy);min-width:4rem}}.prose{font-size:1rem;max-width:52ch}.prose p{margin:0 0 1rem}.prose p:last-child{margin-bottom:0}.prose a{color:var(--white);font-weight:500;box-shadow:inset 0 -1px 0 var(--green);transition:color .2s var(--easing),box-shadow .2s var(--easing)}.prose a:hover{color:var(--green);box-shadow:inset 0 -1px 0 transparent}.about-highlights{margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid var(--lightest-navy)}.about-highlights__title{margin:0 0 1rem;font-family:var(--font-mono);font-size:.8125rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}.impact-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;margin-bottom:1.75rem}.impact-stat{padding:.9rem 1rem;border:1px solid var(--lightest-navy);border-radius:8px;background:var(--surface-card);transition:background .2s var(--easing),border-color .2s var(--easing)}.impact-stat__value{font-weight:800;color:var(--white);font-size:1.1rem;margin-bottom:.35rem}.impact-stat__label{color:var(--slate);font-size:.9rem;line-height:1.45}.impact-stat:hover{border-color:var(--green-card-border);background:var(--green-dim)}.about-highlights__title--skills{margin-top:0}.skills-list{list-style:none;display:flex;flex-wrap:wrap;gap:.55rem .7rem;padding:0;margin:0}.skills-list li{font-family:var(--font-mono);font-size:.72rem;font-weight:600;color:var(--green);padding:.35rem .6rem;border-radius:999px;border:1px solid var(--lightest-navy);background:var(--green-tag-bg)}.card{position:relative;display:grid;gap:.35rem;padding:1.25rem 0 1.25rem 1rem;margin-bottom:2.5rem;border-radius:4px;transition:background .2s var(--easing)}@media (min-width: 768px){.card{grid-template-columns:7rem 1fr;gap:1rem 2rem;padding:1.25rem 1.5rem;margin-left:-1.5rem;margin-right:-1.5rem}}.card:before{content:"";position:absolute;left:0;top:.85rem;bottom:.85rem;width:2px;border-radius:1px;background:var(--lightest-navy)}.card:hover{background:var(--green-dim)}.card:hover:before{background:var(--green)}.card__dates{font-family:var(--font-mono);font-size:.75rem;color:var(--slate);padding-top:.15rem}.card__title{margin:0;font-size:1.0625rem;font-weight:600;color:var(--white)}.card__title a{color:inherit;box-shadow:none;transition:color .2s var(--easing)}.card__title a:hover{color:var(--green)}.card__meta{margin:0;font-size:.875rem;color:var(--slate)}.card__body{grid-column:1 / -1;margin:0;font-size:.9375rem;line-height:1.65}@media (min-width: 768px){.card__body{grid-column:2}}.tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:.75rem 0 0;padding:0;grid-column:1 / -1}@media (min-width: 768px){.tags{grid-column:2}}.tags li{font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--green);padding:.25rem .6rem;background:var(--green-tag-bg);border-radius:999px}.project-card{margin-bottom:3.5rem}.project-card:last-child{margin-bottom:0}.project-card__inner{display:grid;gap:1rem;padding:1.25rem;margin:0 -1.25rem;border-radius:8px;border:1px solid var(--lightest-navy);background:var(--surface-card);transition:border-color .2s var(--easing),background .2s var(--easing),box-shadow .2s var(--easing)}@media (min-width: 768px){.project-card__inner{grid-template-columns:1fr auto;align-items:start;padding:1.5rem;margin:0}}.project-card__inner:hover{border-color:var(--green-card-border);box-shadow:0 0 0 1px var(--green-card-glow)}.project-card__title{margin:0;font-size:1.125rem;font-weight:600;color:var(--white)}.project-card__title a{display:inline-flex;align-items:center;gap:.4rem;box-shadow:none}.project-card__title a:hover{color:var(--green)}.project-card__title svg{width:.95em;height:.95em;opacity:.7}.project-card__body{margin:.5rem 0 0;font-size:.9375rem;max-width:52ch}.project-card__link{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--green);white-space:nowrap;box-shadow:none}.project-card__link:hover{text-decoration:underline}.cv-projects{margin-top:2.25rem}.cv-project{margin-bottom:1.75rem;position:relative;padding:.75rem 0 1.75rem 1.25rem;border-bottom:1px solid var(--lightest-navy);background:transparent;border-radius:4px;transition:background .2s var(--easing),border-bottom-color .2s var(--easing)}.cv-project:before{content:"";position:absolute;left:0;top:1rem;bottom:.85rem;width:2px;border-radius:1px;background:var(--lightest-navy)}.cv-project:hover{background:var(--green-dim);border-bottom-color:#64ffda99}.cv-project:hover:before{background:var(--green)}.cv-project:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.cv-project__title{margin:0 0 .2rem;font-size:1.05rem;font-weight:700;color:var(--white)}.cv-project__status{font-family:var(--font-mono);font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--green);margin-left:.35rem}.cv-project__status-link{font-family:var(--font-mono);font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--green);margin-left:.35rem;text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:.2em;text-decoration-thickness:1px;transition:color .2s var(--easing),text-decoration-color .2s var(--easing)}.cv-project__status-link:hover{color:var(--white);text-decoration-color:transparent}.cv-project__org{margin:0 0 .35rem;font-size:.9rem;color:var(--light-slate)}.cv-project__stack{margin:0 0 .4rem;font-family:var(--font-mono);font-size:.75rem;color:var(--slate)}.cv-project__impact{margin:0;font-size:.93rem;line-height:1.65}.github-repos{margin:0;padding:0;border:none}.github-repos__lead{margin:0 0 1.75rem;font-size:.9375rem;line-height:1.6;max-width:55ch}.github-repos__lead a{color:var(--green);font-weight:500;text-decoration:none;border-bottom:1px solid var(--light-slate);padding-bottom:.04em;transition:color .2s var(--easing),border-color .2s var(--easing)}.github-repos__lead a:hover{color:var(--white);border-bottom-color:var(--green)}.github-repos__list{list-style:none;margin:0;padding:0}.github-repo{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--lightest-navy)}.github-repo:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.github-repo__title{margin:0 0 .35rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.github-repo__title a{display:inline-flex;align-items:center;gap:.4rem;font-size:1.05rem;font-weight:600;color:var(--white);box-shadow:none;text-decoration:none}.github-repo__title a:hover{color:var(--green)}.github-repo__title a svg{width:.95em;height:.95em;opacity:.7}.github-repo__star-icon{width:.85rem;height:.85rem;flex-shrink:0;opacity:.9}.github-repo__badge{font-family:var(--font-mono);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);border:1px solid var(--lightest-navy);padding:.15rem .45rem;border-radius:4px}.github-repo__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;margin:0 0 .5rem;font-family:var(--font-mono);font-size:.75rem;color:var(--slate)}.github-repo__meta span{display:inline-flex;align-items:center;gap:.3rem}.github-repo__desc{margin:0 0 .5rem;font-size:.9375rem;line-height:1.6}.github-repo__note{margin:0;font-size:.875rem;line-height:1.55;color:var(--slate)}.project-card__body strong{color:var(--white);font-weight:600}.post{margin-bottom:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--lightest-navy)}.post:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.post__title{margin:0 0 .5rem;font-size:1.05rem;font-weight:600}.post__title a{color:var(--white);box-shadow:none;transition:color .2s var(--easing)}.post__title a:hover{color:var(--green)}.post__meta{font-family:var(--font-mono);font-size:.75rem;color:var(--slate);margin-bottom:.65rem}.post__desc{margin:0;font-size:.9375rem}.sidebar-cta{margin-top:1.25rem}.resume-switch{display:inline-flex;align-items:center;border-radius:6px;border:1px solid var(--lightest-navy);overflow:hidden;font-family:var(--font-mono);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--light-navy);box-shadow:0 2px 12px #0000001f;transition:border-color .2s var(--easing),box-shadow .2s var(--easing)}[data-theme=dark] .resume-switch{box-shadow:0 2px 16px #00000059}.resume-switch:hover{border-color:var(--green);box-shadow:0 2px 16px #00000040}.resume-switch__label{padding:.5rem .8rem;color:var(--slate);transition:background .2s var(--easing),color .2s var(--easing)}.resume-switch:hover .resume-switch__label{background:var(--green-dim);color:var(--green)}.footer{margin-top:4rem;padding-top:2rem;font-family:var(--font-mono);font-size:.7rem;color:var(--slate);text-align:center}.footer__credit{margin:0 0 .6rem}.footer__rights{margin:0;opacity:.92}.footer a{color:var(--light-slate);box-shadow:inset 0 -1px 0 var(--lightest-navy)}.footer a:hover{color:var(--green);box-shadow:none}.sidebar__name-row{position:relative;padding-bottom:0}.resume-tooltip{position:absolute;right:0;top:-1.15rem;bottom:auto;z-index:2;overflow:visible}.resume-tooltip:after{content:"";position:absolute;right:1.1rem;top:auto;bottom:-6px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:0;border-top:6px solid var(--light-navy)}.resume-switch,.resume-switch__label{text-decoration:none!important;text-decoration-color:transparent!important}.sidebar__intro a.resume-switch{text-decoration:none!important;text-decoration-color:transparent!important;box-shadow:none!important;border-bottom:none!important}.sidebar__video-link{text-decoration:none!important;text-decoration-color:transparent!important;box-shadow:none!important;border-bottom:none!important;display:inline-flex;align-items:center;vertical-align:middle;margin-left:.35rem;white-space:nowrap;color:var(--green)!important}.sidebar__video-link:hover{color:var(--green)!important;transform:none!important}.sidebar__video-link svg{width:16px!important;height:16px!important;display:block}
