@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;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.25rem;height:2.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--muted-foreground);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.themeToggle:hover{background:var(--muted);border-color:var(--ring);color:var(--foreground)}.themeToggle svg{width:1rem;height:1rem}main{min-height:100svh;max-width:var(--page-max);margin:0 auto;padding:0 var(--page-pad)}.section{padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid var(--border)}.section:first-of-type{border-top:none}.sectionLabel{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:1.5rem}.hero{display:flex;min-height:85svh;padding-top:4rem;padding-bottom:3rem}.hero,.heroGrid{align-items:center}.heroGrid{display:grid;grid-template-columns:1fr minmax(16rem,.5fr);grid-gap:clamp(2rem,6vw,5rem);gap:clamp(2rem,6vw,5rem);width:100%}.heroCopy{animation:fadeUp .6s ease both}.eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground)}h1{font-family:var(--font-sans);font-size:clamp(3.2rem,7vw,5.5rem);font-weight:700;letter-spacing:-.06em;line-height:1.1;margin-top:1rem;color:var(--foreground)}h2{font-family:var(--font-mono);font-weight:600;letter-spacing:-.03em}.lead{color:var(--muted-foreground);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.7;margin-top:1.25rem;max-width:38rem}.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.75rem}.button{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.82rem;font-weight:500;padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--foreground);cursor:pointer;transition:background .18s ease,border-color .18s ease}.button:hover{background:var(--muted);border-color:var(--ring)}.profilePanel{border:1px dashed var(--border);border-radius:var(--radius);background:var(--card);padding:.25rem;animation:fadeUp .6s ease .15s both;transition:box-shadow .3s ease,border-color .3s ease}.profilePanel:hover{border-color:var(--ring);box-shadow:0 0 24px -4px rgba(161,161,170,.1)}[data-theme=dark] .profilePanel:hover{box-shadow:0 0 24px -4px rgba(250,250,250,.06)}.panelHeader{font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);padding:.75rem 1rem .5rem;border-bottom:1px dashed var(--border)}.profilePanel .panelRow{display:grid;grid-gap:.3rem;gap:.3rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.profilePanel .panelRow:last-child{border-bottom:none}.profilePanel .panelRow span{font-family:var(--font-mono);font-size:.7rem;font-weight:500;color:var(--muted-foreground);letter-spacing:.05em;text-transform:uppercase}.profilePanel .panelRow strong{font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--foreground);letter-spacing:-.01em}.about p{font-size:clamp(1.15rem,2.5vw,1.75rem);font-weight:500;letter-spacing:-.025em;line-height:1.35;color:var(--foreground);max-width:50rem}.eduTimeline{display:grid;grid-gap:0;gap:0;margin-top:1.25rem}.eduCard{padding:1.25rem 0;border-bottom:1px solid var(--border);transition:padding-left .2s ease}.eduCard:first-child{border-top:1px solid var(--border)}.eduCard:hover{padding-left:.5rem}.eduHeader{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.eduHeader strong{font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--foreground)}.eduPeriod{font-family:var(--font-mono);font-size:.72rem;font-weight:500;white-space:nowrap}.eduDegree,.eduPeriod{color:var(--muted-foreground)}.eduDegree{font-size:.88rem;margin-top:.3rem;line-height:1.5}.eduGrade{display:inline-block;font-family:var(--font-mono);font-size:.72rem;font-weight:500;padding:.2rem .55rem;margin-top:.5rem;border:1px dashed var(--border);border-radius:calc(var(--radius) * 4);color:var(--muted-foreground)}.techGrid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}.badge{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:.78rem;font-weight:500;padding:.4rem .85rem;border:1px solid var(--border);border-radius:calc(var(--radius) * 4);color:var(--foreground);background:var(--muted);transition:background .18s ease,border-color .18s ease}.badge svg{opacity:.7}.badge:hover{border-color:var(--ring)}.badgeCoursework{composes:badge;border-style:dashed;color:var(--muted-foreground)}.badgeCoursework:after{content:" *";font-size:.65rem;opacity:.6}.techNote{font-family:var(--font-mono);font-size:.7rem;color:var(--muted-foreground);margin-top:.75rem;font-style:italic}.project{display:grid;grid-template-columns:1fr auto;grid-gap:2rem;gap:2rem;align-items:center;margin-top:1.25rem;padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);transition:border-color .2s ease,box-shadow .2s ease}.project:hover{border-color:var(--ring);box-shadow:0 0 20px -6px rgba(161,161,170,.08)}[data-theme=dark] .project:hover{box-shadow:0 0 20px -6px rgba(250,250,250,.04)}.project h2{font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.1}.project p{color:var(--muted-foreground);line-height:1.7;margin-top:.6rem;max-width:40rem;font-size:.92rem}.project .projectLink{font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--muted-foreground);white-space:nowrap;transition:color .18s ease}.project:hover .projectLink{color:var(--foreground)}.focus{display:grid;grid-template-columns:minmax(0,.85fr) 1fr;grid-gap:clamp(2rem,5vw,4rem);gap:clamp(2rem,5vw,4rem);align-items:start}.focus h2{font-size:clamp(1.5rem,3vw,2.25rem);margin-top:.75rem;line-height:1.15;max-width:14ch}.focusList{border-top:1px solid var(--border)}.focusList li{font-size:clamp(.9rem,1.4vw,1.05rem);padding:.85rem 0;border-bottom:1px solid var(--border);color:var(--foreground);transition:padding-left .2s ease,color .2s ease}.focusList li:hover{padding-left:.5rem;color:var(--muted-foreground)}.closing{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;border-top:1px solid var(--border);padding:2.5rem 0 4rem}.closing p{color:var(--muted-foreground);margin-top:.5rem;font-size:.92rem}.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:color .18s ease,-webkit-text-decoration-color .18s ease;transition:color .18s ease,text-decoration-color .18s ease;transition:color .18s ease,text-decoration-color .18s ease,-webkit-text-decoration-color .18s ease}.footerLinks a:hover{color:var(--foreground);-webkit-text-decoration-color:var(--ring);text-decoration-color:var(--ring)}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fadeIn{animation:fadeUp .5s ease both}.fadeInDelay1{animation-delay:.1s}.fadeInDelay2{animation-delay:.2s}.fadeInDelay3{animation-delay:.3s}.fadeInDelay4{animation-delay:.4s}@media (max-width:820px){.about,.focus,.heroGrid,.project{grid-template-columns:1fr}.hero{min-height:auto;padding-top:5rem}.closing{flex-direction:column;align-items:flex-start}.footerLinks{flex-wrap:wrap}}@media (max-width:520px){h1{font-size:clamp(2.2rem,12vw,3.2rem)}}