*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#080808;--bg-surface:#0d0d0d;--bg-card:#111;--bg-card-hover:#161616;--border:#1a1a1a;--border-hover:#ffffff26;--accent:#fff;--accent-dim:#ffffff0d;--accent-border:#ffffff1a;--text:#e8e8e8;--text-muted:gray;--text-faint:#404040;--radius:8px;--radius-sm:5px;--max-width:1100px;--nav-height:64px;--transition:.18s ease}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}ul{list-style:none}.container{max-width:var(--max-width);width:100%;margin:0 auto}.section{padding:calc(var(--nav-height) + 60px) 24px 100px}.section--alt{background:var(--bg-surface)}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.section-title{margin-bottom:48px;font-size:clamp(26px,4vw,38px);font-weight:700;line-height:1.2}.btn{border-radius:var(--radius);cursor:pointer;transition:var(--transition);border:1px solid #0000;align-items:center;padding:12px 26px;font-size:15px;font-weight:500;display:inline-flex}.btn--primary{background:var(--accent);color:#000;border-color:var(--accent)}.btn--primary:hover{opacity:.85}.btn--ghost{color:var(--text);border-color:var(--border-hover);background:0 0}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.tag{background:var(--accent-dim);color:var(--text-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);white-space:nowrap;padding:3px 10px;font-size:12px;font-weight:500;display:inline-block}.navbar{height:var(--nav-height);z-index:100;transition:background var(--transition), border-color var(--transition);border-bottom:1px solid #0000;padding:0 24px;position:fixed;top:0;left:0;right:0}.navbar--scrolled{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--border);background:#080808eb}.navbar__inner{justify-content:space-between;align-items:center;height:100%;display:flex}.navbar__logo{color:var(--text);letter-spacing:-.01em;font-size:17px;font-weight:700}.navbar__links{align-items:center;gap:32px;display:flex}.navbar__link{color:var(--text-muted);transition:color var(--transition);font-size:14px;font-weight:500}.navbar__link:hover,.navbar__link--active{color:var(--text)}.hero{min-height:100vh;padding:0 24px;padding-top:var(--nav-height);align-items:center;display:flex}.hero__inner{padding:80px 0}.hero__greeting{color:var(--text-muted);margin-bottom:12px;font-size:17px}.hero__name{letter-spacing:-.04em;color:var(--text);margin-bottom:6px;font-size:clamp(52px,9vw,88px);font-weight:800;line-height:1}.hero__role{color:var(--text-muted);letter-spacing:-.01em;margin-bottom:24px;font-size:clamp(22px,4vw,34px);font-weight:600}.hero__tagline{color:var(--text-muted);max-width:500px;margin-bottom:44px;font-size:clamp(15px,2.2vw,18px);line-height:1.7}.hero__actions{flex-wrap:wrap;gap:14px;display:flex}.about__grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:72px;display:grid}.about__text{color:var(--text-muted);font-size:17px;line-height:1.8}.about__edu-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:16px;font-size:12px;font-weight:600}.edu-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:20px}.edu-card__degree{color:var(--text);margin-bottom:4px;font-size:15px;font-weight:600}.edu-card__school{color:var(--text-muted);font-size:13px}.edu-card__date{color:var(--text-faint);margin-top:8px;font-size:12px}.exp-list{flex-direction:column;gap:16px;display:flex}.exp-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition);padding:28px}.exp-card:hover{border-color:var(--border-hover)}.exp-card__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.exp-card__role{color:var(--text);margin-bottom:3px;font-size:17px;font-weight:600}.exp-card__company{color:var(--text-muted);font-size:14px}.exp-card__location{color:var(--text-muted)}.exp-card__dates{color:var(--text-muted);white-space:nowrap;font-size:13px}.exp-card__bullets{flex-direction:column;gap:9px;padding-left:16px;display:flex}.exp-card__bullets li{color:var(--text-muted);font-size:14px;line-height:1.65;position:relative}.exp-card__bullets li:before{content:"–";color:var(--text-faint);position:absolute;left:-16px}.projects-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition), background var(--transition);cursor:pointer;flex-direction:column;gap:12px;padding:22px;display:flex}.project-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.project-card__top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.project-card__name{color:var(--text);font-size:15px;font-weight:600}.project-card__link{color:var(--text-faint);transition:color var(--transition);flex-shrink:0;font-size:16px;line-height:1}.project-card__link:hover{color:var(--text)}.project-card__desc{color:var(--text-muted);flex:1;font-size:13px;line-height:1.65}.project-card__stack{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.skills-grid{grid-template-columns:repeat(2,1fr);gap:36px;display:grid}.skills-category__name{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:14px;font-size:12px;font-weight:600}.skills-category__tags{flex-wrap:wrap;gap:8px;display:flex}.contact__intro{color:var(--text-muted);max-width:500px;margin-bottom:40px;font-size:17px;line-height:1.75}.contact__links{flex-direction:column;gap:10px;max-width:420px;display:flex}.contact-link{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);transition:border-color var(--transition), color var(--transition);align-items:center;gap:14px;padding:16px 20px;font-size:14px;font-weight:500;display:flex}.contact-link:hover{border-color:var(--border-hover);color:var(--text)}.contact-link__icon{color:var(--text-faint);text-align:center;flex-shrink:0;width:22px;font-size:15px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#000c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-hover);border-radius:var(--radius);width:100%;max-width:580px;max-height:80vh;padding:36px;position:relative;overflow-y:auto}.modal__close{color:var(--text-muted);cursor:pointer;transition:color var(--transition);background:0 0;border:none;padding:4px 8px;font-size:18px;line-height:1;position:absolute;top:16px;right:16px}.modal__close:hover{color:var(--text)}.modal__name{color:var(--text);margin-bottom:14px;padding-right:32px;font-size:22px;font-weight:700}.modal__stack{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.modal__bullets{flex-direction:column;gap:10px;margin-bottom:28px;padding-left:16px;list-style:none;display:flex}.modal__bullets li{color:var(--text-muted);font-size:14px;line-height:1.7;position:relative}.modal__bullets li:before{content:"–";color:var(--text-faint);position:absolute;left:-16px}.modal__link{color:var(--text);border:1px solid var(--border-hover);border-radius:var(--radius);transition:background var(--transition);align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;display:inline-flex}.modal__link:hover{background:var(--accent-dim)}.footer{border-top:1px solid var(--border);text-align:center;padding:32px 24px}.footer p{color:var(--text-faint);letter-spacing:.02em;font-size:13px}@media (width<=1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.section{padding:calc(var(--nav-height) + 40px) 20px 72px}.about__grid{grid-template-columns:1fr;gap:44px}.projects-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:1fr;gap:28px}.exp-card__header{flex-direction:column;gap:6px}.navbar__links{gap:20px}}@media (width<=480px){.navbar__links{display:none}.hero__actions{flex-direction:column;align-items:flex-start}}
