@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;700&display=swap";:root{color-scheme:dark;--bg: #07111f;--bg-elevated: rgba(13, 23, 40, .82);--panel: rgba(17, 28, 47, .92);--panel-strong: #16233a;--border: rgba(152, 179, 217, .18);--text: #eef4ff;--muted: #9cb0cc;--accent: #7dd3fc;--accent-strong: #38bdf8;--shadow: 0 24px 80px rgba(0, 0, 0, .38);--max-width: 1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top,rgba(56,189,248,.16),transparent 35%),linear-gradient(180deg,#091120,#050914);color:var(--text)}a{color:inherit;text-decoration:none}button,a{transition:transform .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.page-shell{padding:0 24px 24px}.site-content{opacity:0;animation:site-fade-in .7s ease 2.15s forwards}.intro-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:radial-gradient(circle at top,rgba(56,189,248,.12),transparent 35%),linear-gradient(180deg,#091120,#050914);animation:intro-fade-out .7s ease 2.15s forwards;pointer-events:none}.intro-shell{position:relative;width:min(560px,calc(100vw - 48px));padding:18px}.intro-search{position:relative;display:flex;align-items:center;gap:14px;min-height:72px;padding:0 24px;border:1px solid rgba(152,179,217,.18);border-radius:24px;background:#0d1728eb;box-shadow:0 24px 80px #00000061}.intro-search-icon{color:var(--muted);font-size:1.65rem}.intro-search-text{display:inline-flex;align-items:center;color:var(--text);font-family:Space Grotesk,Plus Jakarta Sans,sans-serif;font-size:clamp(1.2rem,3vw,1.8rem);letter-spacing:.01em;white-space:nowrap}.intro-caret{display:inline-block;width:2px;height:1.1em;margin-left:1px;background:#f8fbffe0;animation:caret-blink .68s step-end infinite}.intro-cursor{position:absolute;right:32px;bottom:-18px;transform:translate(120px,120px) scale(1);animation:cursor-move .92s ease .16s both}.intro-cursor-arrow{display:block;width:23px;height:auto;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}.site-header{position:fixed;top:0;left:0;right:0;z-index:10;pointer-events:auto}.site-header-backdrop{position:absolute;inset:0;opacity:0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#07111fd6;border-bottom:1px solid var(--border);box-shadow:0 14px 40px #00000047;transition:opacity .26s ease;pointer-events:none}.site-header.is-scrolled .site-header-backdrop{opacity:1}.site-header-inner,main{width:min(100%,var(--max-width));margin:0 auto}.site-header-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 24px}.site-header-row{display:block}.brand{font-size:1rem;font-weight:700;letter-spacing:.04em;background:linear-gradient(120deg,#f8fbff,#7dd3fc,#38bdf8,#34d399,#f59e0b,#f8fbff);background-size:220% 220%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 20px rgba(125,211,252,.12);animation:name-gradient 10s ease-in-out infinite}.nav-links{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted)}.nav-toggle{display:none;position:relative;width:42px;height:42px;padding:0;border:1px solid var(--border);border-radius:999px;background:#ffffff08;color:var(--text);font:inherit}.nav-toggle span{position:absolute;left:11px;width:18px;height:2px;border-radius:999px;background:currentColor;transition:transform .22s ease,opacity .22s ease,top .22s ease}.nav-toggle span:nth-child(1){top:14px}.nav-toggle span:nth-child(2){top:20px}.nav-toggle span:nth-child(3){top:26px}.nav-toggle[aria-expanded=true] span:nth-child(1){top:20px;transform:rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){top:20px;transform:rotate(-45deg)}.nav-links a:hover,.contact-card a:hover{color:var(--accent)}.hero,.content-section{margin-top:32px}.photo-section{position:relative;margin-top:-28px;padding-left:clamp(0px,10vw,140px)}.photo-frame{width:min(100%,720px);margin:0 auto;overflow:hidden;border:1px solid var(--border);outline:1px solid rgba(152,179,217,.1);outline-offset:0;border-radius:28px;background:#0d1728d1;box-shadow:var(--shadow);transform:translate3d(var(--photo-x, 0),0,0);opacity:var(--photo-opacity, 1);filter:blur(var(--photo-blur, 0));transition:transform .12s linear,opacity .12s linear,filter .12s linear}.photo-note{position:absolute;top:50%;left:max(0px,calc(50% - 460px));margin:0;display:grid;gap:2px;color:#f8fbffeb;font-family:Space Grotesk,Plus Jakarta Sans,sans-serif;font-size:clamp(1.1rem,2vw,1.5rem);letter-spacing:.04em;line-height:.95;opacity:0;transform:translate(-24px,-50%);transition:opacity .26s ease,transform .26s ease;pointer-events:none}.photo-note.is-visible{opacity:1;transform:translateY(-50%)}.photo-frame img{display:block;width:100%;height:auto;object-fit:cover}.hero{display:block;min-height:calc(100vh - 108px);padding-top:96px}.hero-copy,.timeline-card,.project-card,.skill-card,.info-card,.contact-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.hero-copy{width:100%;max-width:none;padding:40px 0 24px;background:transparent;border:0;box-shadow:none}.eyebrow,.project-stack,.meta-line{margin:0;color:var(--accent);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase}.hero-intro{margin:0;color:var(--muted);font-size:1.3rem;letter-spacing:.04em;text-transform:none}.hero-kicker-row{display:flex;align-items:center;gap:14px;margin:0 0 12px}.hero-kicker{width:min(120px,24vw);height:1px;margin:0;background:linear-gradient(90deg,#7dd3fcb3,#7dd3fc14)}.hero-meta{margin:0;color:var(--accent);font-family:Space Grotesk,Plus Jakarta Sans,sans-serif;font-size:.96rem;letter-spacing:.12em;text-transform:uppercase}.hero h1,.section-heading h2{margin:12px 0 0;line-height:1;letter-spacing:-.04em}.hero h1{font-size:clamp(3.4rem,9vw,6.8rem);max-width:none;white-space:nowrap}.hero h1 span{display:inline-block;background:linear-gradient(120deg,#f8fbff,#7dd3fc,#38bdf8,#34d399,#f59e0b,#f8fbff);background-size:220% 220%;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 28px rgba(125,211,252,.18);animation:name-gradient 10s ease-in-out infinite}.section-heading h2{font-size:clamp(2.9rem,6vw,4.8rem);color:var(--accent);font-family:Space Grotesk,Plus Jakarta Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;transition:text-shadow .26s ease}.section-heading.is-centered h2{text-shadow:0 0 14px rgba(255,255,255,.34),0 0 34px rgba(255,255,255,.2)}.hero-text,.section-copy,.summary-line,.info-card p,.contact-card a,.quick-facts li{color:var(--muted);line-height:1.7}.hero-text{max-width:60ch;margin:18px 0 0;font-size:1rem}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.scroll-cue{display:inline-flex;align-items:center;gap:8px;margin:36px 0 0;color:var(--accent);font-family:Space Grotesk,Plus Jakarta Sans,sans-serif;font-size:.98rem;letter-spacing:.12em;text-transform:uppercase}.scroll-cue span{display:inline-block;animation:bob-arrow 1.7s ease-in-out infinite}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 18px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;font-weight:600;transition:transform .22s ease,border-color .22s ease,background-color .22s ease,color .22s ease,box-shadow .22s ease}.button svg{width:1.05rem;height:1.05rem;flex:0 0 auto}.button:hover,.nav-links a:hover{transform:translateY(-1px)}.hero-actions .button:hover,.contact-button:hover{border-color:#7dd3fc57;background:#7dd3fc1a;box-shadow:0 12px 30px #080f1d4d}.button-primary{background:linear-gradient(135deg,var(--accent),var(--accent-strong));border-color:transparent;color:#03101c}.content-section{padding:36px 0;scroll-margin-top:84px}.section-heading{max-width:760px}.section-copy{margin-top:16px}.education-grid,.skills-grid,.project-grid{display:grid;gap:20px;margin-top:28px}.education-grid{grid-template-columns:1fr}.project-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stack-list{display:grid;gap:20px;margin-top:28px}.experience-list{position:relative;gap:24px;padding-left:108px;isolation:isolate}.experience-list:before,.experience-list:after{content:"";position:absolute;left:45px;top:14px;width:3px;height:calc(100% - 28px);border-radius:999px;z-index:0}.experience-list:before{background:#98b3d92e}.experience-list:after{background:linear-gradient(180deg,#e0f2fe73,#7dd3fc 28%,#22d3ee 62%,#3b82f6);transform-origin:top;transform:scaleY(var(--timeline-progress, 0));opacity:calc(var(--timeline-progress, 0) * 1);box-shadow:0 0 22px #7dd3fc9e;transition:transform .18s linear,opacity .18s linear}.timeline-card,.project-card,.skill-card,.info-card,.contact-card{padding:28px;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease}.timeline-card-body,.project-card{transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease}.timeline-card-body{margin:-28px;padding:28px;border:1px solid transparent;border-radius:28px}.timeline-card:hover .timeline-card-body,.timeline-card.is-visible:hover .timeline-card-body,.project-card:hover,.project-card.is-visible:hover{transform:translate3d(0,-2px,0);border-color:transparent;box-shadow:none;background:#121f36eb}.timeline-topline{display:flex;justify-content:space-between;gap:20px;margin-bottom:18px}.timeline-card{position:relative;z-index:1}.timeline-logo{position:absolute;left:-92px;top:22px;display:grid;place-items:center;width:56px;height:56px;border-radius:999px;background:#07111ff5;border:1px solid rgba(125,211,252,.2);box-shadow:0 12px 30px #0000003d;z-index:2;overflow:hidden}.timeline-card:has(.timeline-logo:hover) .timeline-card-body,.timeline-card.is-visible:has(.timeline-logo:hover) .timeline-card-body{transform:none;border-color:transparent;box-shadow:none;background:transparent}.timeline-logo img{width:78%;height:78%;object-fit:contain;object-position:center;display:block}.timeline-topline h3,.project-card h3,.skill-card h3,.info-card h3{margin:8px 0 0;font-size:1.25rem}.education-topline{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.school-line,.degree-line{margin:10px 0 0;color:var(--muted)}.education-meta{display:grid;gap:6px;justify-items:end;color:var(--muted);text-align:right}.role-line{margin:8px 0 0;color:var(--muted);font-size:1rem;line-height:1.5}.timeline-meta{display:grid;gap:6px;justify-items:end;color:var(--muted);text-align:right}.chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.chip{padding:10px 14px;border-radius:999px;background:#7dd3fc17;border:1px solid rgba(125,211,252,.16);color:#d9f4ff;font-size:.95rem;transition:transform .22s ease,border-color .22s ease,background-color .22s ease,box-shadow .22s ease}.chip:hover{transform:translateY(-2px);border-color:#7dd3fc4d;background:#7dd3fc24;box-shadow:0 10px 24px #080f1d38}.contact-section{padding-top:132px;padding-bottom:24vh;margin-top:72px;border-top:1px solid rgba(152,179,217,.14)}.contact-section .section-heading{margin:0 auto;text-align:center}.summary-line{margin:0}.contact-subhead{max-width:720px;margin:22px auto 0;color:var(--muted);text-align:center;line-height:1.7}.contact-links{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:28px}.contact-button{min-height:52px}.site-footer{padding:0 0 40px;color:#9cb0ccb8;font-family:Space Grotesk,Plus Jakarta Sans,sans-serif;font-size:.92rem;letter-spacing:.08em;text-align:center;text-transform:uppercase}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease;will-change:opacity,transform}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.education-card[data-reveal]{opacity:1;transform:none}@keyframes name-gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes site-fade-in{0%{opacity:0}to{opacity:1}}@keyframes intro-fade-out{0%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes cursor-move{0%{transform:translate(120px,120px) scale(1)}70%{transform:translate(-168px,-48px) scale(1)}82%{transform:translate(-168px,-48px) scale(.92)}to{transform:translate(-168px,-48px) scale(1)}}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes bob-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media(max-width:900px){.hero,.project-grid,.skills-grid{grid-template-columns:1fr}.hero{min-height:auto;padding-top:88px;padding-bottom:88px}.content-section{scroll-margin-top:76px}.timeline-topline{flex-direction:column}.timeline-meta{justify-items:start;text-align:left}.education-topline{flex-direction:column}.education-meta{justify-items:start;text-align:left}.experience-list{padding-left:84px}.experience-list:before,.experience-list:after{left:39px}.timeline-logo{left:-72px}}@media(max-width:640px){.page-shell{padding:0 14px 14px}.site-header-inner{display:block;padding:0 12px}.site-header-row{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:8px}.brand{font-size:.92rem;line-height:1}.hero-copy,.timeline-card,.project-card,.skill-card,.info-card,.contact-card{padding:22px;border-radius:22px}.photo-frame{width:min(100%,500px);border-radius:22px}.photo-note{left:max(0px,calc(50% - 260px));top:50%;bottom:auto;transform:translate(-16px,-50%)}.photo-note.is-visible{transform:translateY(-50%)}.photo-section{padding-left:clamp(56px,16vw,88px)}.hero h1{font-size:clamp(2.5rem,14vw,4rem);white-space:normal}.hero-copy{padding:24px 0 18px}.hero-kicker-row{gap:10px}.hero-kicker{width:min(84px,22vw)}.section-heading h2{font-size:clamp(2.4rem,10vw,3.4rem)}.hero-intro{font-size:1.1rem}.intro-search{min-height:64px;padding:0 18px;border-radius:20px}.intro-cursor{right:24px;bottom:-14px}.intro-cursor-arrow{width:20px}.nav-links{width:calc(100% + 28px);margin-top:10px;margin-left:-14px;margin-right:-14px;background:#07111ff0;border-top:1px solid rgba(152,179,217,.12);flex-direction:column;gap:10px;padding:0 14px;max-height:0;overflow:hidden;opacity:1;visibility:visible;clip-path:inset(0 0 100% 0);transform-origin:top;pointer-events:none;transition:clip-path .26s ease,max-height .26s ease,padding .22s ease}.nav-links a{opacity:0;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.nav-links.is-open{padding:10px 14px 6px;max-height:260px;clip-path:inset(0 0 0 0);pointer-events:auto}.nav-links.is-open a{opacity:1;transform:translateY(0);transition-delay:.24s}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:32px;border-width:1px;margin:0}.nav-toggle span{left:8px;width:14px}.nav-toggle span:nth-child(1){top:10px}.nav-toggle span:nth-child(2){top:15px}.nav-toggle span:nth-child(3){top:20px}.nav-toggle[aria-expanded=true] span:nth-child(1),.nav-toggle[aria-expanded=true] span:nth-child(3){top:15px}.experience-list{padding-left:56px}.experience-list:before,.experience-list:after{display:block;left:29px}.timeline-logo{left:-46px;top:20px;width:40px;height:40px;margin-bottom:0}.timeline-logo img{width:72%;height:72%}.timeline-card:hover .timeline-card-body,.timeline-card.is-visible:hover .timeline-card-body,.project-card:hover,.project-card.is-visible:hover{transform:translate3d(0,-2px,0);box-shadow:none}}
