*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}body{min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}img,picture,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}h1,h2,h3,h4{text-wrap:balance;line-height:1.2}p{text-wrap:pretty}a{color:inherit;text-decoration-skip-ink:auto}ul[role=list],ol[role=list]{list-style:none}:target{scroll-margin-top:5rem}:root{--color-bg: #121212;--color-surface: #1e1e1e;--color-text: #e0e0e0;--color-text-muted: #9e9e9e;--color-primary: #60a5fa;--color-primary-hover: #93c5fd;--color-accent: #2a2a2a;--color-border: #333333;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: clamp(.75rem, .7rem + .25vw, .875rem);--text-sm: clamp(.875rem, .8rem + .375vw, 1rem);--text-base: clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg: clamp(1.125rem, 1rem + .625vw, 1.25rem);--text-xl: clamp(1.25rem, 1rem + 1.25vw, 1.75rem);--text-2xl: clamp(1.5rem, 1rem + 2.5vw, 2.5rem);--text-3xl: clamp(2rem, 1.25rem + 3.75vw, 3.5rem);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--max-width: 72rem;--content-width: 48rem;--nav-height: 4rem;--transition-fast: .15s ease;--transition-base: .25s ease;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem}:root[data-theme=light]{--color-bg: #fafafa;--color-surface: #ffffff;--color-text: #1a1a2e;--color-text-muted: #555566;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-accent: #e2e8f0;--color-border: #d1d5db}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg)}section,footer{padding:var(--space-4xl) var(--space-lg)}section>*,footer>*{max-width:var(--content-width);margin-inline:auto}section h2{font-size:var(--text-2xl);margin-bottom:var(--space-xl)}#hero{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:var(--space-4xl) var(--space-lg);text-align:center}.hero-content{max-width:var(--content-width)}.hero-photo{width:10rem;height:10rem;border-radius:50%;object-fit:cover;margin:0 auto var(--space-xl)}#hero h1{font-size:var(--text-3xl);margin-bottom:var(--space-sm)}.hero-title{font-size:var(--text-xl);color:var(--color-text-muted)}#about p{margin-bottom:var(--space-md);color:var(--color-text-muted)}#about p:last-child{margin-bottom:0}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-xl)}.skill-category h3{font-size:var(--text-lg);margin-bottom:var(--space-sm)}.skill-category ul{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.skill-category li{background:var(--color-accent);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:var(--text-sm)}.experience-list{display:flex;flex-direction:column;gap:0;position:relative;padding-left:var(--space-xl);border-left:2px solid var(--color-border)}.experience-entry{position:relative;padding-bottom:var(--space-2xl)}.experience-entry:last-child{padding-bottom:0}.experience-entry:before{content:"";position:absolute;left:calc(-1 * var(--space-xl) - 5px);top:.35rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--color-border);border:2px solid var(--color-bg)}.experience-entry:first-child:before{background:var(--color-primary)}.experience-entry h3{font-size:var(--text-lg);margin-bottom:var(--space-xs)}.experience-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-sm)}.experience-company:after{content:"·";margin-left:var(--space-sm)}.experience-entry>p{color:var(--color-text-muted)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--space-xl)}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xl)}.project-card h3{font-size:var(--text-lg);margin-bottom:var(--space-sm)}.project-card p{color:var(--color-text-muted);margin-bottom:var(--space-md)}.project-card a{color:var(--color-primary);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:color var(--transition-fast)}.project-card a:hover{color:var(--color-primary-hover);text-decoration:underline}.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:var(--space-xl)}.media-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xl)}.media-type{display:inline-block;background:var(--color-accent);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);margin-bottom:var(--space-sm)}.media-card h3{font-size:var(--text-lg);margin-bottom:var(--space-sm)}.media-card p{color:var(--color-text-muted);margin-bottom:var(--space-md)}.media-card a{color:var(--color-primary);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:color var(--transition-fast)}.media-card a:hover{color:var(--color-primary-hover);text-decoration:underline}.header-social{display:flex;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg)}.header-social a{color:var(--color-text-muted);transition:color var(--transition-fast);display:flex;align-items:center}.header-social a:hover,.header-social a:focus-visible{color:var(--color-text)}footer{text-align:center;border-top:1px solid var(--color-border)}footer p{font-size:var(--text-sm);color:var(--color-text-muted)}#main-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:center;height:var(--nav-height);padding:0 var(--space-lg);background:var(--color-bg);border-bottom:1px solid var(--color-border)}#nav-links{display:flex;gap:var(--space-lg)}#nav-links a{font-size:var(--text-sm);text-decoration:none;color:var(--color-text-muted);transition:color var(--transition-fast)}#nav-links a:hover{color:var(--color-text)}#theme-toggle{position:absolute;right:var(--space-lg);background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:var(--space-xs);color:var(--color-text);display:flex;align-items:center;justify-content:center;transition:border-color var(--transition-fast);flex-shrink:0}#theme-toggle:hover{border-color:var(--color-text-muted)}#theme-toggle .icon-sun{display:block}#theme-toggle .icon-moon,#theme-toggle.theme-toggle--light .icon-sun{display:none}#theme-toggle.theme-toggle--light .icon-moon{display:block}.nav-toggle{display:none;position:absolute;left:var(--space-lg);background:none;border:none;cursor:pointer;padding:var(--space-sm)}.nav-toggle-icon,.nav-toggle-icon:before,.nav-toggle-icon:after{display:block;width:1.5rem;height:2px;background:var(--color-text);transition:transform var(--transition-base);position:relative}.nav-toggle-icon:before,.nav-toggle-icon:after{content:"";position:absolute;left:0;width:100%}.nav-toggle-icon:before{top:-6px}.nav-toggle-icon:after{top:6px}.nav-open .nav-toggle-icon{background:transparent}.nav-open .nav-toggle-icon:before{top:0;transform:rotate(45deg)}.nav-open .nav-toggle-icon:after{top:0;transform:rotate(-45deg)}body{padding-top:var(--nav-height)}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}@media(max-width:768px){.nav-toggle{display:block}#nav-links{display:none;position:absolute;top:var(--nav-height);left:0;right:0;flex-direction:column;background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:var(--space-md) var(--space-lg);gap:var(--space-md)}.nav-open #nav-links{display:flex}#hero{min-height:60vh;padding:var(--space-3xl) var(--space-md)}section,footer{padding:var(--space-3xl) var(--space-md)}.skills-grid,.projects-grid,.media-grid{grid-template-columns:1fr}.experience-list{padding-left:var(--space-lg)}.experience-entry:before{left:calc(-1 * var(--space-lg) - 5px)}.experience-meta{flex-direction:column;gap:var(--space-xs)}.experience-company:after{display:none}}@media(min-width:769px)and (max-width:1024px){.skills-grid{grid-template-columns:repeat(2,1fr)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
