@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap");:root{--background:#ffffff;--foreground:#09090b;--card:#ffffff;--card-foreground:#09090b;--muted:#f4f4f5;--muted-foreground:#71717a;--border:#e4e4e7;--ring:#a1a1aa;--radius:0.5rem;--page-max:64rem;--page-pad:clamp(1.25rem,5vw,3rem);--font-mono:"JetBrains Mono",ui-monospace,"Cascadia Code","Fira Code",monospace;--font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}[data-theme=dark]{--background:#09090b;--foreground:#fafafa;--card:#0a0a0c;--card-foreground:#fafafa;--muted:#18181b;--muted-foreground:#a1a1aa;--border:#27272a;--ring:#52525b}*,:after,:before{box-sizing:border-box}*,:after,:before,body,html{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}a{color:inherit;text-decoration:none}ul{list-style:none}.themeToggle{position:fixed;top:1.25rem;right:var(--page-pad);z-index:50;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--border);border-radius:50%;background:var(--card);color:var(--muted-foreground);cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.themeToggle:hover{background:var(--muted);border-color:var(--ring);color:var(--foreground);transform:scale(1.05)}.themeToggle svg{width:1.1rem;height:1.1rem}main{position:relative;z-index:1;min-height:100svh;max-width:var(--page-max);margin:0 auto;padding:0 var(--page-pad)}.sectionLabel{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem}.sectionLabel:after{content:"";flex:1 1;height:1px;background:var(--border)}.hero{display:flex;flex-direction:column;justify-content:center;min-height:90svh;padding-top:5rem;padding-bottom:3rem;animation:fadeUp .7s ease both}.heroInner{max-width:48rem}.terminalLine{font-family:var(--font-mono);font-size:.85rem;margin-bottom:1.25rem;display:flex;align-items:center;gap:.4rem}.prompt{color:var(--muted-foreground)}.command{color:var(--foreground)}.cursor{display:inline-block;width:.6rem;height:1.1em;background:var(--foreground);animation:blink 1s step-end infinite;vertical-align:text-bottom}.hero h1{font-family:var(--font-sans);font-size:clamp(3rem,7vw,5.5rem);font-weight:700;letter-spacing:-.05em;line-height:1.08;color:var(--foreground)}.nameGradient{position:relative;background:linear-gradient(90deg,var(--foreground) 0,var(--muted-foreground) 40%,var(--foreground) 60%,var(--foreground) 100%);background-size:300% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nameGradient,.nameGradient:after{animation:nameShimmer 8s ease-in-out infinite}.nameGradient:after{content:"";position:absolute;bottom:.06em;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--ring),var(--muted-foreground),var(--ring));background-size:200% auto;border-radius:2px;opacity:.4}.lead{color:var(--muted-foreground);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.7;margin-top:1.5rem;max-width:38rem;border-left:2px solid var(--border);padding-left:1.25rem}.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.75rem}.button{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.8rem;font-weight:500;padding:.55rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--foreground);cursor:pointer;transition:all .18s ease}.button:hover{background:var(--muted);border-color:var(--ring);transform:translateY(-1px)}.statsBar{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0;margin-top:3rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden;animation:fadeUp .7s ease .15s both}.stat{display:flex;flex-direction:column;gap:.3rem;padding:1.25rem 1.5rem;position:relative}.stat:not(:last-child):after{content:"";position:absolute;right:0;top:20%;height:60%;width:1px;background:var(--border)}.statLabel{font-size:.65rem;font-weight:500;color:var(--muted-foreground);letter-spacing:.08em;text-transform:uppercase}.statLabel,.statValue{font-family:var(--font-mono)}.statValue{font-size:.85rem;font-weight:600;color:var(--foreground);line-height:1.4;display:flex;align-items:center;gap:.4rem}.statusDot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:pulse 2s ease-in-out infinite}.about{text-align:center;padding:5rem 0;border-top:1px solid var(--border)}.about .sectionLabel{justify-content:center}.about .sectionLabel:after{display:none}.aboutStatement{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:500;letter-spacing:-.025em;line-height:1.35;color:var(--foreground);max-width:40rem;margin:0 auto}.contentRow{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(2rem,6vw,5rem);gap:clamp(2rem,6vw,5rem);padding:3rem 0;border-top:1px solid var(--border)}.timeline{position:relative;padding-left:1.75rem}.timeline:before{content:"";position:absolute;left:5px;top:4px;bottom:4px;width:1px;background:var(--border)}.timelineEntry{position:relative;padding-bottom:1.75rem}.timelineEntry:last-child{padding-bottom:0}.timelineDot{position:absolute;left:-1.75rem;top:.4rem;width:11px;height:11px;border-radius:50%;border:2px solid var(--border);background:var(--card);z-index:1;transition:all .2s ease}.timelineEntry:first-child .timelineDot{background:var(--foreground);border-color:var(--foreground)}.timelineEntry:hover .timelineDot{border-color:var(--ring);box-shadow:0 0 0 4px var(--muted)}.timelineContent{transition:padding-left .2s ease}.timelineEntry:hover .timelineContent{padding-left:.4rem}.timelineHeader{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;flex-wrap:wrap}.timelineHeader strong{font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--foreground)}.timelinePeriod{font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--muted-foreground);white-space:nowrap}.timelineDegree{font-size:.85rem;color:var(--muted-foreground);margin-top:.25rem;line-height:1.5}.timelineGrade{display:inline-block;font-family:var(--font-mono);font-size:.68rem;font-weight:500;padding:.15rem .55rem;margin-top:.5rem;border:1px dashed var(--border);border-radius:calc(var(--radius) * 4);color:var(--muted-foreground);background:var(--muted)}.techSection{padding:3rem 0;border-top:1px solid var(--border)}.techGrid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.badge{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.78rem;font-weight:500;padding:.45rem .9rem;border:1px solid var(--border);border-radius:calc(var(--radius) * 4);color:var(--foreground);background:var(--muted);transition:all .18s ease}.badge svg{opacity:.7}.badge:hover{border-color:var(--ring);transform:translateY(-1px)}.badgeCoursework{border-style:dashed;color:var(--muted-foreground)}.badgeCoursework:after{content:" *";font-size:.65rem;opacity:.6}.techNote{font-family:var(--font-mono);font-size:.68rem;color:var(--muted-foreground);margin-top:.75rem;font-style:italic}.projectCard{display:block;padding:1.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);transition:all .25s ease;margin-top:.5rem;position:relative;overflow:hidden}.projectCard:before{content:"";position:absolute;inset:0;background:radial-gradient(600px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(161,161,170,.04),transparent 40%);opacity:0;transition:opacity .25s ease}.projectCard:hover:before{opacity:1}.projectCard:hover{border-color:var(--ring);transform:translateY(-2px);box-shadow:0 8px 30px -8px rgba(0,0,0,.12)}[data-theme=dark] .projectCard:hover{box-shadow:0 8px 30px -8px rgba(0,0,0,.4)}.featuredBadge{display:inline-block;font-family:var(--font-mono);font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);padding:.2rem .6rem;border:1px solid var(--border);border-radius:calc(var(--radius) * 4);margin-bottom:.85rem}.projectCard h2{font-family:var(--font-sans);font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:700;letter-spacing:-.03em;line-height:1.15;margin-bottom:.6rem}.projectCard>p{color:var(--muted-foreground);font-size:.9rem;line-height:1.7;margin-bottom:1rem}.projectTags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.projectTag{font-size:.68rem;padding:.2rem .55rem;background:var(--muted);border-radius:calc(var(--radius) * 2);border:1px solid var(--border)}.projectLink,.projectTag{font-family:var(--font-mono);color:var(--muted-foreground)}.projectLink{font-size:.78rem;font-weight:500;display:inline-flex;align-items:center;gap:.3rem;transition:color .18s ease,gap .18s ease}.projectCard:hover .projectLink{color:var(--foreground);gap:.5rem}.footer{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;border-top:1px solid var(--border);padding:3rem 0 4rem}.footerLabel{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;display:block}.footer p,.footerLabel{color:var(--muted-foreground)}.footer p{font-size:.9rem}.footerLinks{display:flex;gap:1.25rem;font-family:var(--font-mono);font-size:.82rem}.footerLinks a{color:var(--muted-foreground);text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:.25em;transition:all .18s ease}.footerLinks a:hover{color:var(--foreground);-webkit-text-decoration-color:var(--ring);text-decoration-color:var(--ring)}.scrollProgress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--ring),var(--foreground));z-index:100;pointer-events:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}.reveal.revealed{opacity:1;transform:translateY(0)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 0 0 rgba(34,197,94,.4)}50%{opacity:.6;box-shadow:0 0 0 6px rgba(34,197,94,0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes nameShimmer{0%,to{background-position:0}50%{background-position:100%}}@media (max-width:820px){.statsBar{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2):after{display:none}.stat:nth-child(3),.stat:nth-child(4){border-top:1px solid var(--border)}.contentRow{grid-template-columns:1fr;gap:0}.contentRow>*+*{border-top:1px solid var(--border);padding-top:2.5rem;margin-top:0}.hero{min-height:auto;padding-top:6rem}.hero h1{font-size:clamp(2.4rem,10vw,4rem)}.footer{flex-direction:column;align-items:flex-start}.footerLinks{flex-wrap:wrap}}@media (max-width:520px){.statsBar{grid-template-columns:1fr}.stat:after{display:none}.stat+.stat{border-top:1px solid var(--border)}.hero h1{font-size:clamp(2rem,11vw,2.8rem)}.lead{border-left:none;padding-left:0}.about{text-align:left}.about .sectionLabel{justify-content:flex-start}.about .sectionLabel:after{display:flex}}