@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#0f172a;--text:#e2e8f0;--muted:#94a3b8;--subtle:#64748b;--line:#1e293b;--panel:#111b31;--panel-hover:#1a2742;--chip-bg:#2dd4bf1f;--chip-text:#5eead4;--accent:#5eead4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,Segoe UI,sans-serif;line-height:1.65}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}#root{min-height:100vh}.app-shell{max-width:1200px;margin:0 auto;padding:2rem 1rem 3rem;position:relative}.ambient-bg{z-index:-1;background:radial-gradient(28rem 24rem at 8% 8%, #5eead414, transparent), radial-gradient(32rem 28rem at 92% 92%, #60a5fa14, transparent), var(--bg);position:fixed;inset:0}.layout-columns{gap:1.25rem;display:grid}.site-header{flex-direction:column;gap:2rem;display:flex}.sidebar-intro .name{letter-spacing:-.04em;font-size:clamp(2rem,4vw,3rem);line-height:1}.sidebar-intro .role{margin-top:.9rem;font-size:1.12rem;font-weight:500}.sidebar-bio{max-width:24rem;color:var(--muted);margin-top:.9rem}.site-header nav ul{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.site-header nav a{color:var(--muted);font-size:.92rem;font-weight:500;transition:color .2s}.site-header nav a:hover,.site-header nav a.is-active{color:var(--text)}.sidebar-footer{gap:1.2rem;display:grid}.contact-info p{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}.contact-info a{color:var(--muted);margin:.2rem 0 .75rem;font-size:.95rem;display:inline-block}.social-links{flex-wrap:wrap;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.social-links a{color:var(--muted);justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:1rem;transition:color .2s,transform .2s;display:inline-flex}.social-links a:hover{color:var(--accent);transform:translateY(-1px)}.main-content{min-width:0}.section{margin-bottom:4.3rem}.section-heading{margin-bottom:1rem}.section-eyebrow{color:var(--subtle);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}.section-heading h2{letter-spacing:-.02em;margin-top:.45rem;font-size:clamp(1.35rem,2.6vw,1.85rem)}.section-description{color:var(--muted);margin-top:.7rem}.stack-text{gap:.9rem;display:grid}.stack-text p{color:var(--muted)}.section-grid{gap:1rem;display:grid}.experience-card{background:0 0;border-radius:.55rem;gap:.9rem;padding:1rem;transition:background .22s;display:grid}.experience-card:hover{background:var(--panel-hover)}.experience-period{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:600}.experience-main h3{font-size:.98rem;font-weight:600}.experience-main h3 a{color:var(--text)}.experience-main h3 a:hover{color:var(--accent)}.experience-main p{color:var(--muted);margin-top:.4rem;font-size:.92rem}.chip-list{flex-wrap:wrap;gap:.5rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.chip-list li{background:var(--chip-bg);color:var(--chip-text);border-radius:999px;padding:.2rem .62rem;font-size:.75rem;font-weight:500}.resume-link{color:var(--text);align-items:center;gap:.28rem;margin-top:1rem;font-size:.9rem;font-weight:600;display:inline-flex}.resume-link:hover{color:var(--accent)}.projects-grid{gap:.85rem;display:grid}.project-card{background:0 0;border-radius:.55rem;align-items:start;gap:1rem;padding:1rem;transition:background .22s;display:grid}.project-card:hover{background:var(--panel-hover)}.project-card img{object-fit:cover;border-radius:.45rem;width:100%;max-width:320px;height:auto}.project-content h3{font-size:.98rem;font-weight:600}.project-content h3 .arrow-link{color:var(--text)}.project-content p{color:var(--muted);margin-top:.35rem;font-size:.92rem}.project-links{gap:.9rem;margin-top:.9rem;display:flex}.project-links a{color:var(--muted);font-size:.86rem;font-weight:600}.project-links a:hover{color:var(--accent)}.skills-grid{gap:.9rem;display:grid}.skill-group-card{border-bottom:1px solid var(--line);background:0 0;border-radius:0;gap:.5rem;padding:.8rem 0;display:grid}.skill-group-card h3{color:var(--subtle);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.1rem;font-size:.82rem}.skill-group-card ul{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.skill-group-card li{color:#b8cae9;background:#1e3a5a59;border:1px solid #284162;border-radius:.5rem;padding:.22rem .52rem;font-size:.8rem}.contact-grid{grid-template-columns:1fr;gap:1rem;display:grid}.contact-details,.contact-form{background:var(--panel);border-radius:.6rem;padding:1rem}.contact-details p{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.contact-details a{color:var(--muted);margin:.2rem 0 .8rem;font-size:.95rem;display:inline-block}.contact-form{gap:.8rem;display:grid}.contact-form label{color:#c5d6f4;gap:.35rem;font-size:.85rem;display:grid}.contact-form input,.contact-form textarea{color:var(--text);font:inherit;background:#0e1a2f;border:1px solid #294264;border-radius:.45rem;padding:.62rem .72rem}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);outline:2px solid #5eead44d}.contact-form button{min-height:2.5rem;color:var(--text);cursor:pointer;background:#1f3d63;border:none;border-radius:.45rem;font-size:.9rem;font-weight:600}.contact-form button:hover{background:#275183}.contact-form button:disabled{opacity:.5;cursor:not-allowed}.field-error{color:#fca5a5;font-size:.76rem}.status-message{color:#6ee7b7;margin-top:.8rem;font-size:.85rem}.arrow-link{align-items:center;gap:.24rem;display:inline-flex}.link-arrow{transition:transform .2s;display:inline-block;transform:translate(0)}.arrow-link:hover .link-arrow,.resume-link:hover .link-arrow,.project-card:hover .project-content h3 .link-arrow{transform:translate(3px,-3px)}.loading-copy{color:var(--muted)}.site-footer{color:var(--subtle);margin-top:2rem;font-size:.82rem}@media (width>=768px){.projects-grid{gap:1rem}.project-card{grid-template-columns:160px 1fr}.project-card img{width:160px;min-width:160px;height:96px}}@media (width>=1024px){.app-shell{padding-top:4rem}.layout-columns{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:1.2rem}.site-header{justify-content:space-between;height:calc(100vh - 4.4rem);padding:.4rem .8rem .4rem 0;position:sticky;top:2.2rem}.site-header nav ul{flex-direction:column;gap:.45rem}.site-header nav a{letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.main-content{padding-left:.2rem}.experience-card{grid-template-columns:8rem 1fr}}
