:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace}html[data-theme=dark]{--bg: #0b0e11;--surface: #12161b;--surface-hover: #171c22;--text: #e8ebee;--text-muted: #98a1ab;--text-faint: #6b747e;--accent: #2dd4bf;--accent-soft: rgba(45, 212, 191, .12);--border: #232a32;--shadow: 0 8px 30px rgba(0, 0, 0, .35);color-scheme:dark}html[data-theme=light]{--bg: #f7f7f8;--surface: #ffffff;--surface-hover: #f0f1f2;--text: #17191c;--text-muted: #5a626b;--text-faint: #8b929b;--accent: #0d9488;--accent-soft: rgba(13, 148, 136, .1);--border: #e4e5e8;--shadow: 0 8px 30px rgba(0, 0, 0, .06);color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}::selection{background:var(--accent);color:var(--bg)}.navbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem clamp(1.25rem,5vw,3.5rem);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.navbar .brand{font-weight:700;font-size:.95rem;letter-spacing:.02em;white-space:nowrap}.navbar .brand span{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-links a{padding:.35rem .8rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--text-muted);transition:color .15s ease,background .15s ease}.nav-links a:hover{color:var(--text);background:var(--surface-hover)}.nav-links a.active{color:var(--accent);background:var(--accent-soft)}.theme-toggle{display:grid;place-items:center;width:2.1rem;height:2.1rem;margin-left:.5rem;border-radius:.5rem;border:1px solid var(--border);color:var(--text-muted);transition:color .15s ease,border-color .15s ease,background .15s ease}.theme-toggle:hover{color:var(--text);background:var(--surface-hover)}.theme-toggle svg{width:1.05rem;height:1.05rem}.welcome{display:flex;flex-direction:column;justify-content:center;min-height:100dvh;height:100dvh;overflow:hidden;padding:5rem clamp(1.25rem,6vw,5rem) 2.5rem}.welcome-inner{display:flex;flex-direction:column;justify-content:center;flex:1;gap:clamp(.75rem,2.2vh,1.5rem);max-width:52rem;width:100%;margin:0 auto}.welcome .eyebrow{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.welcome h1{font-size:clamp(1.8rem,5.5vw,3.25rem);font-weight:700;line-height:1.12;letter-spacing:-.03em}.welcome h1 span{color:var(--accent)}.welcome .subtitle{font-size:clamp(.95rem,2vw,1.1rem);color:var(--text-muted);max-width:42rem}.welcome .bio{font-size:clamp(.85rem,1.8vw,.95rem);color:var(--text-muted);max-width:40rem}.welcome .edu-line{font-size:.85rem;color:var(--text-faint)}.welcome .edu-line strong{color:var(--text-muted);font-weight:600}.tag-row{display:flex;flex-wrap:wrap;gap:.45rem}.tag{font-family:var(--font-mono);font-size:.72rem;padding:.28rem .65rem;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);background:var(--surface);white-space:nowrap}.welcome-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem;max-width:52rem;width:100%;margin:0 auto;padding-top:1.5rem;border-top:1px solid var(--border)}.contact-row{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;font-size:.85rem}.contact-row a{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-muted);transition:color .15s ease}.contact-row a:hover{color:var(--accent)}.contact-row svg{width:.95rem;height:.95rem;flex-shrink:0}.cta-row{display:flex;gap:.6rem}.cta{font-size:.85rem;font-weight:600;padding:.5rem 1.05rem;border-radius:.5rem;transition:background .15s ease,color .15s ease,border-color .15s ease}.cta.primary{background:var(--accent);color:var(--bg)}.cta.primary:hover{filter:brightness(1.1)}.cta.ghost{border:1px solid var(--border);color:var(--text-muted)}.cta.ghost:hover{color:var(--text);border-color:var(--accent)}.page{max-width:60rem;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) clamp(1.25rem,5vw,3.5rem) 4rem}.page-header{margin-bottom:2.5rem}.page-header .eyebrow{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:.5rem}.page-header h1{font-size:clamp(1.6rem,4vw,2.25rem);font-weight:700;letter-spacing:-.02em}.page-header p{color:var(--text-muted);margin-top:.4rem;max-width:38rem}.section-title{font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:2.5rem 0 1rem}.project-grid{display:grid;grid-template-columns:1fr;gap:1rem}.project-card{display:flex;flex-direction:column;gap:.6rem;padding:1.4rem 1.5rem;border-radius:.85rem;border:1px solid var(--border);background:var(--surface);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.project-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.project-top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.project-card h2{font-size:1.1rem;font-weight:600;letter-spacing:-.01em}.project-card h2 a{transition:color .15s ease}.project-card h2 a:hover{color:var(--accent)}.project-year{font-family:var(--font-mono);font-size:.75rem;color:var(--text-faint);white-space:nowrap}.project-card p{font-size:.92rem;color:var(--text-muted)}.project-badges{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.badge-private{font-family:var(--font-mono);font-size:.72rem;padding:.28rem .65rem;border-radius:999px;border:1px dashed var(--border);color:var(--text-faint)}.resume-block{padding:1.4rem 1.5rem;border-radius:.85rem;border:1px solid var(--border);background:var(--surface);margin-bottom:1rem}.resume-block h3{font-size:1.05rem;font-weight:600}.resume-block .meta{display:flex;flex-wrap:wrap;gap:.35rem 1.25rem;font-size:.83rem;color:var(--text-faint);margin:.15rem 0 .75rem}.resume-block .meta .highlight{color:var(--accent);font-weight:600}.resume-block ul{list-style:none;display:flex;flex-direction:column;gap:.35rem}.resume-block li{position:relative;padding-left:1.1rem;font-size:.92rem;color:var(--text-muted)}.resume-block li:before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--accent)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.skill-group{padding:1.2rem 1.3rem;border-radius:.85rem;border:1px solid var(--border);background:var(--surface)}.skill-group h3{font-family:var(--font-mono);font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:.75rem}@media (max-width: 640px){.welcome{height:auto;min-height:100dvh;padding-top:3.5rem}.welcome-footer{flex-direction:column;align-items:flex-start}.navbar .brand{font-size:.85rem}.nav-links a{padding:.35rem .55rem;font-size:.85rem}}
