*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#fdf2f8;--color-surface:#fff;--color-primary:#ec4899;--color-primary-hover:#db2777;--color-primary-light:#fce7f3;--color-primary-rgb:236, 72, 153;--color-text:#334155;--color-text-muted:#64748b;--color-heading:#0f172a;--color-border:#f3e8ef;--color-nav-bg:#fdf2f8e0;--color-accent:#a855f7;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--max-width:900px}[data-theme=dark]{--color-bg:#0b1121;--color-surface:#151e36;--color-primary:#38bdf8;--color-primary-hover:#7dd3fc;--color-primary-light:#0c2744;--color-primary-rgb:56, 189, 248;--color-text:#cbd5e1;--color-text-muted:#94a3b8;--color-heading:#f1f5f9;--color-border:#1e3048;--color-nav-bg:#0b1121d9;--color-accent:#818cf8}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.6;transition:background .3s,color .3s}#root{min-height:100vh}.navbar{z-index:100;background:0 0;justify-content:space-between;align-items:center;padding:1rem 2rem;transition:background .35s,box-shadow .35s,padding .35s;display:flex;position:fixed;top:0;left:0;right:0}.navbar--scrolled{background:var(--color-nav-bg);-webkit-backdrop-filter:blur(20px)saturate(1.8);border-bottom:1px solid var(--color-border);padding:.6rem 2rem;box-shadow:0 1px 3px #00000014,0 4px 24px #0000001f}.nav-brand{color:var(--color-heading);letter-spacing:-.02em;font-size:1.25rem;font-weight:700;text-decoration:none;transition:color .25s}.nav-brand__first,.nav-brand__last{color:var(--color-primary);opacity:.8;font-weight:400;transition:opacity .25s}.nav-brand:hover .nav-brand__first,.nav-brand:hover .nav-brand__last{opacity:1}.nav-brand:hover{color:var(--color-primary)}.nav-links{gap:.25rem;list-style:none;display:flex}.nav-links__item a{color:var(--color-text-muted);border-radius:8px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .25s,background .25s;position:relative}.nav-links__item a:hover{color:var(--color-heading);background:rgba(var(--color-primary-rgb), .15)}.nav-links__item a.active{color:var(--color-primary);background:rgba(var(--color-primary-rgb), .2)}.nav-underline{background:var(--color-primary);border-radius:2px;height:2px;position:absolute;bottom:-2px;left:15%;right:15%}.nav-toggle{cursor:pointer;z-index:200;background:0 0;border:none;flex-direction:column;gap:5px;padding:6px;display:none}.nav-toggle span{background:var(--color-text);border-radius:2px;width:24px;height:2px;display:block}.nav-overlay{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;position:fixed;inset:0}.nav-drawer{z-index:160;background:var(--color-surface);flex-direction:column;gap:.25rem;width:min(280px,80vw);padding:5rem 1.75rem 2rem;list-style:none;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0006}.nav-drawer li a{color:var(--color-text-muted);border-radius:10px;padding:.75rem 1rem;font-size:1.1rem;font-weight:500;text-decoration:none;transition:color .2s,background .2s;display:block}.nav-drawer li a:hover,.nav-drawer li a.active{color:var(--color-primary);background:rgba(var(--color-primary-rgb), .2)}.nav-right{align-items:center;gap:.5rem;display:flex}.theme-toggle{border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:.4rem .55rem;font-size:1rem;line-height:1;transition:background .2s,border-color .2s}.theme-toggle:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.portfolio{max-width:var(--max-width);margin:0 auto;padding:5rem 1.5rem 2rem}.loader,.error{justify-content:center;align-items:center;min-height:100vh;font-size:1.25rem;display:flex}.error{color:#f87171}.hero{text-align:center;border-bottom:1px solid var(--color-border);padding:3rem 0 4rem}.hero-avatar{object-fit:cover;border:3px solid var(--color-primary);width:130px;height:130px;box-shadow:0 0 0 6px var(--color-primary-light), 0 8px 24px rgba(var(--color-primary-rgb), .15);border-radius:50%;margin:0 auto 1.25rem;display:block}.hero h1{color:var(--color-heading);margin-bottom:.25rem;font-size:3rem;font-weight:700}.hero .title{color:var(--color-primary);margin-bottom:1rem;font-size:1.25rem}.hero .bio{max-width:560px;color:var(--color-text-muted);margin:0 auto 1.25rem}.hero .email{color:var(--color-primary);font-weight:500;text-decoration:none;transition:color .2s}.hero .email:hover{color:var(--color-primary-hover)}.section{border-bottom:1px solid var(--color-border);padding:3rem 0}.section h2{color:var(--color-heading);margin-bottom:1.5rem;font-size:1.75rem}.skills-groups{flex-direction:column;gap:1.5rem;display:flex}.skill-category{color:var(--color-primary);margin-bottom:.5rem;font-size:1rem;font-weight:600}.skills-list{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.skill-tag{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:9999px;padding:.35rem .85rem;font-size:.875rem;font-weight:500;transition:border-color .2s,color .2s}.skill-tag:hover{border-color:var(--color-primary);color:var(--color-primary)}.timeline{flex-direction:column;gap:1.75rem;display:flex}.timeline-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;align-items:flex-start;gap:1.25rem;padding:1.5rem;transition:border-color .2s,box-shadow .2s;display:flex}.timeline-item:hover{border-color:var(--color-primary);box-shadow:0 4px 16px rgba(var(--color-primary-rgb), .08)}.timeline-logo{object-fit:cover;background:var(--color-primary-light);border:1px solid var(--color-border);border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.3rem;display:flex}.timeline-body{flex:1}.timeline-item h3{color:var(--color-heading);margin-bottom:.25rem;font-size:1.125rem}.timeline-item .at{color:var(--color-text-muted)}.timeline-item .period{color:var(--color-primary);margin-bottom:.5rem;font-size:.85rem;display:inline-block}.timeline-item p{color:var(--color-text-muted)}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1.5rem;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.project-card:hover{border-color:var(--color-primary);box-shadow:0 4px 16px rgba(var(--color-primary-rgb), .08);transform:translateY(-2px)}.project-card h3{color:var(--color-heading)}.project-card p{color:var(--color-text-muted);flex:1}.tech-list{flex-wrap:wrap;gap:.4rem;display:flex}.tech-tag{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:4px;padding:.2rem .6rem;font-size:.75rem}.project-link{color:var(--color-primary);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.project-link:hover{color:var(--color-primary-hover)}.footer{text-align:center;color:var(--color-text-muted);padding:2.5rem 0;font-size:.875rem}.about-me-content{align-items:flex-start;gap:2rem;display:flex}.about-image{object-fit:cover;border:3px solid var(--color-primary-light);border-radius:1rem;flex-shrink:0;width:220px;height:280px}.about-me-text-col{flex:1}.about-me .about-text{max-width:640px;color:var(--color-text-muted);margin-bottom:1.25rem;line-height:1.7}.about-details{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.about-location{color:var(--color-text-muted);font-size:.95rem}.about-linkedin{color:var(--color-primary);font-size:.95rem;font-weight:500;text-decoration:none;transition:color .2s}.about-linkedin:hover{color:var(--color-primary-hover)}@media (width<=640px){.hero h1{font-size:2rem}.hero-avatar{width:100px;height:100px}.portfolio{padding:4.5rem 1rem 1rem}.nav-toggle{display:flex}.nav-links{display:none}.looking-grid{grid-template-columns:1fr}.contact-actions{flex-direction:column}.about-me-content{text-align:center;flex-direction:column;align-items:center}.about-image{width:180px;height:230px}.about-details{justify-content:center}.timeline-item{text-align:center;flex-direction:column;align-items:center}}.looking-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.looking-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:.75rem;padding:1.5rem;transition:border-color .2s,transform .2s}.looking-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.looking-icon{margin-bottom:.75rem;font-size:2rem;display:block}.looking-card h3{color:var(--color-heading);margin-bottom:.4rem;font-size:1.05rem}.looking-card p{color:var(--color-text-muted);font-size:.85rem;line-height:1.5}.contact{text-align:center;padding:3.5rem 0}.contact-text{max-width:480px;color:var(--color-text-muted);margin:0 auto 1.5rem;line-height:1.6}.contact-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn{cursor:pointer;border-radius:.5rem;padding:.65rem 1.5rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-block}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px rgba(var(--color-primary-rgb), .3)}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:0 4px 16px rgba(var(--color-primary-rgb), .4)}.btn-outline{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.btn-outline:hover{background:var(--color-primary);color:var(--color-bg)}.section,.hero{animation:.6s both fadeSlideIn}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.how-built-nav{justify-content:space-between;align-items:center;display:flex}.how-built-back-link{color:var(--color-primary);font-weight:500;text-decoration:none;transition:color .2s}.how-built-back-link:hover{color:var(--color-primary-hover)}.how-built-intro{color:var(--color-text-muted);text-align:center;max-width:700px;margin:0 auto 2rem;font-size:1.1rem;line-height:1.7}.how-built-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-bottom:2.5rem;display:grid}.how-built-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1.75rem;transition:border-color .2s,transform .2s;display:flex}.how-built-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.how-built-icon{margin-bottom:.25rem;font-size:2rem;display:block}.how-built-card h3{color:var(--color-heading);margin:0;font-size:1.2rem}.how-built-card p{color:var(--color-text);margin:0;font-size:.95rem;line-height:1.65}.how-built-details{flex-direction:column;gap:.35rem;margin:.25rem 0 .5rem;padding:0;list-style:none;display:flex}.how-built-details li{color:var(--color-text-muted);padding-left:1.25rem;font-size:.875rem;line-height:1.5;position:relative}.how-built-details li:before{content:"→";color:var(--color-primary);font-weight:600;position:absolute;left:0}.how-built-details code{background:var(--color-primary-light);color:var(--color-primary);border-radius:4px;padding:.1rem .4rem;font-family:SF Mono,Fira Code,monospace;font-size:.8rem}.how-built-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;margin-top:1rem;padding:2rem}.how-built-summary h3{color:var(--color-heading);margin-bottom:1rem;font-size:1.2rem}.how-built-table{border-collapse:collapse;width:100%;font-size:.9rem}.how-built-table th{text-align:left;border-bottom:2px solid var(--color-primary);color:var(--color-heading);padding:.6rem .75rem;font-weight:600}.how-built-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:.55rem .75rem}.how-built-table tr:last-child td{border-bottom:none}.how-built-table tr:hover td{background:var(--color-primary-light)}@media (width<=640px){.how-built-grid{grid-template-columns:1fr}.how-built-summary{padding:1.25rem;overflow-x:auto}.how-built-table{font-size:.8rem}}.resume{text-align:center}.resume-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.fitness-plan h2{text-align:center}.fitness-intro{color:var(--color-text-muted);text-align:center;max-width:700px;margin:0 auto 2.5rem;font-size:1.1rem;line-height:1.7}.fitness-section{margin-bottom:3rem}.fitness-section h3{color:var(--color-heading);margin-bottom:1.25rem;font-size:1.35rem}.fitness-week-overview{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.fitness-day-badge{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:.75rem;flex-direction:column;gap:.3rem;padding:1rem;transition:border-color .2s,transform .2s;display:flex}.fitness-day-badge:hover{border-color:var(--color-primary);transform:translateY(-2px)}.fitness-day-emoji{font-size:1.5rem}.fitness-day-badge strong{color:var(--color-heading);font-size:.95rem}.fitness-day-focus{color:var(--color-text-muted);font-size:.8rem}.fitness-workout-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem;display:grid}.fitness-workout-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;flex-direction:column;gap:1rem;padding:1.5rem;transition:border-color .2s,transform .2s;display:flex}.fitness-workout-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.fitness-workout-header{align-items:center;gap:.75rem;display:flex}.fitness-workout-emoji{font-size:2rem}.fitness-workout-header h4{color:var(--color-heading);margin:0;font-size:1.1rem}.fitness-workout-focus{color:var(--color-primary);font-size:.85rem;font-weight:500}.fitness-exercise-table{border-collapse:collapse;width:100%;font-size:.875rem}.fitness-exercise-table th{text-align:left;border-bottom:2px solid var(--color-primary);color:var(--color-heading);text-transform:uppercase;letter-spacing:.03em;padding:.5rem;font-size:.8rem;font-weight:600}.fitness-exercise-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:.45rem .5rem}.fitness-exercise-table tr:last-child td{border-bottom:none}.fitness-exercise-table tr:hover td{background:var(--color-primary-light)}.fitness-meal-intro{color:var(--color-text-muted);margin-bottom:1.25rem;line-height:1.6}.fitness-meal-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.fitness-meal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1.5rem;transition:border-color .2s,transform .2s;display:flex}.fitness-meal-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.fitness-meal-header{align-items:center;gap:.75rem;display:flex}.fitness-meal-emoji{font-size:1.75rem}.fitness-meal-header h4{color:var(--color-heading);margin:0;font-size:1.05rem}.fitness-meal-time{color:var(--color-primary);font-size:.8rem;font-weight:500}.fitness-meal-options{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.fitness-meal-options li{color:var(--color-text-muted);padding-left:1.25rem;font-size:.875rem;line-height:1.5;position:relative}.fitness-meal-options li:before{content:"•";color:var(--color-primary);font-weight:600;position:absolute;left:0}.fitness-tips-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.fitness-tip-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:.75rem;padding:1.5rem;transition:border-color .2s,transform .2s}.fitness-tip-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.fitness-tip-icon{margin-bottom:.75rem;font-size:2rem;display:block}.fitness-tip-card h4{color:var(--color-heading);margin-bottom:.4rem;font-size:1.05rem}.fitness-tip-card p{color:var(--color-text-muted);font-size:.85rem;line-height:1.5}@media (width<=640px){.fitness-week-overview{grid-template-columns:repeat(2,1fr)}.fitness-workout-grid,.fitness-meal-grid,.fitness-tips-grid{grid-template-columns:1fr}}
