:root{--bg: #0a0a0d;--fg: #f0f0f2;--muted: #8b8b9a;--line: #1e1e28;--accent: #d946ef;--accent-glow: rgba(217, 70, 239, .25);--accent-subtle: rgba(217, 70, 239, .12);--glass-bg: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .06);--content-max-width: 1100px;--transition: .3s ease-in-out;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--heading-3: 1.25rem;--heading-2: 2rem;--heading-1: 2.5rem;--display-1: 3.5rem;--line-tight: 1.25;--line-normal: 1.5;--line-relaxed: 1.65;--space-2: .5rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);--surface-elevated: rgba(255, 255, 255, .04);--card-bg: rgba(255, 255, 255, .06);--card-border: rgba(255, 255, 255, .1);color-scheme:dark}@media (prefers-color-scheme: light){:root{--bg: #f0f0f2;--fg: #141416;--muted: #5c5c6b;--line: #e4e4e8;--accent: #a21caf;--accent-glow: rgba(162, 28, 175, .2);--accent-subtle: rgba(162, 28, 175, .1);--glass-bg: rgba(0, 0, 0, .03);--glass-border: rgba(0, 0, 0, .08);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 8px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .12);--surface-elevated: rgba(0, 0, 0, .04);--card-bg: #ffffff;--card-border: rgba(0, 0, 0, .1);color-scheme:light}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Space Grotesk,sans-serif;font-size:var(--text-base);line-height:var(--line-normal);background-color:var(--bg);color:var(--fg);min-height:100vh}@media (prefers-color-scheme: light){body{background-image:url(/bg2.png);background-repeat:repeat;background-size:200px}}h1,h2{font-weight:700;margin-bottom:.5rem}a{color:var(--accent);text-decoration:none;transition:opacity var(--transition)}a:hover{opacity:.8;text-decoration:underline}.container{width:100%;max-width:min(95vw,1200px);margin:0 auto;padding:var(--space-4) var(--space-6)}section{padding:var(--space-16) var(--space-6);border-top:1px solid var(--line);background-color:var(--bg)}@media (max-width: 768px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}section{padding:var(--space-12) var(--space-4)}}@media (max-width: 480px){section{padding:var(--space-10) var(--space-4)}}.section-intro{font-size:clamp(.8rem,1.5vw,1rem);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#000;margin-bottom:var(--space-2)}@media (prefers-color-scheme: dark){.section-intro{color:var(--fg)}}.section-title{font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:.04em;color:var(--accent);margin-bottom:var(--space-6);line-height:var(--line-tight)}header{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);position:sticky;top:0;z-index:50}footer{background-color:var(--bg);border-top:1px solid var(--line);text-align:center;padding:var(--space-6) var(--space-4);font-size:var(--text-sm);color:var(--muted)}.muted{color:var(--muted)}.accent{color:var(--accent)}footer{border-top:1px solid var(--line);background:var(--bg)}.footer-container{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem}.footer-links{list-style:none;display:flex;gap:2rem;margin:0;padding:0}.footer-links a{color:var(--fg);display:inline-flex;align-items:center;justify-content:center;gap:.25rem;transition:color var(--transition)}.footer-links a:hover{color:var(--accent)}.footer-links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (max-width: 520px){.footer-container{flex-direction:column;align-items:flex-start}}.header-container{position:relative;display:flex;align-items:center;justify-content:space-between;max-width:var(--content-max-width);margin:0 auto;padding:var(--space-4) var(--space-6)}.header-name{font-size:var(--text-base);font-weight:700;letter-spacing:.02em;color:var(--fg);text-decoration:none;transition:color var(--transition)}.header-name:hover{color:var(--accent)}.header-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.header-right{display:flex;align-items:center;gap:var(--space-4)}.nav-list{list-style:none;display:flex;gap:var(--space-8);margin:0;padding:0}.nav-list a{font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;color:var(--muted);text-decoration:none;transition:color var(--transition);padding:.35rem .5rem;border-radius:6px}.nav-list a:hover{color:var(--accent)}.nav-list a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.menu-toggle{display:none;background:var(--glass-bg);border:1px solid var(--glass-border);padding:.5rem;border-radius:8px;cursor:pointer;transition:border-color var(--transition),background var(--transition),transform var(--transition)}.menu-toggle:hover:not(.open){border-color:var(--line);background:var(--surface-elevated)}.menu-toggle.open:hover{border-color:var(--accent);background:var(--accent-subtle)}.menu-toggle:active{transform:translateY(1px)}.menu-toggle-icon{display:flex;align-items:center;justify-content:center;pointer-events:none}.menu-toggle svg{color:var(--muted);transition:color var(--transition)}.menu-toggle.open svg{color:var(--accent)}.menu-toggle:focus-visible{outline:2px solid transparent;outline-offset:2px}.menu-toggle.open:focus-visible{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.menu-toggle:focus-visible:not(.open){box-shadow:0 0 0 2px var(--muted);border-color:var(--line)}@media (max-width: 768px){.header-container{padding:var(--space-4)}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:var(--space-2)}.nav-list{position:absolute;right:var(--space-4);left:var(--space-4);top:calc(100% + var(--space-4));margin:0;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border:1px solid var(--glass-border);padding:var(--space-4);display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;z-index:20;border-radius:16px;box-shadow:var(--shadow-lg);isolation:isolate;pointer-events:none;opacity:0;transform:translateY(-8px);transition:opacity var(--transition),transform var(--transition)}.nav-list.nav-open{pointer-events:auto;opacity:1;transform:translateY(0)}.nav-list li{list-style:none;margin:0}.nav-list a{display:flex;align-items:center;padding:var(--space-4);min-height:44px;box-sizing:border-box;border-radius:10px;font-size:var(--text-base);font-weight:600;letter-spacing:.04em;color:var(--fg);text-decoration:none;text-align:left;transition:background var(--transition),color var(--transition)}.nav-list a:hover{background:var(--accent-subtle);color:var(--accent)}}#hero{position:relative;overflow:hidden;border-top:none;padding-top:var(--space-8);background-color:var(--bg);background-image:radial-gradient(ellipse 100% 80% at 60% 40%,var(--accent-subtle),transparent 50%),linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:100% 100%,32px 32px,32px 32px;background-position:0 0,0 0,0 0}#hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,var(--bg) 70%);pointer-events:none;z-index:0}.hero-container{position:relative;z-index:1}.hero-container{display:flex;align-items:center;justify-content:space-between;max-width:var(--content-max-width);margin:0 auto;gap:0}.hero-text{flex:1 1 50%;min-width:0}.intro{font-size:clamp(1rem,2vw,1.35rem);font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-2);color:var(--accent)}.hero-name{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;line-height:1.1;letter-spacing:-.04em;margin-bottom:var(--space-4);color:var(--fg)}.hero-subheading{font-size:var(--text-xl);font-weight:500;line-height:var(--line-relaxed);color:var(--fg);max-width:520px;margin-bottom:var(--space-6)}.hero-description{max-width:480px;font-size:var(--text-base);line-height:var(--line-relaxed);margin-bottom:var(--space-6)}.hero-description a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent);text-underline-offset:.2em;text-decoration-thickness:1px;transition:opacity var(--transition)}.hero-description a:hover{opacity:.8}.hero-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-6)}.hero-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-sm);font-weight:500;color:var(--muted);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:999px;padding:.35rem .75rem;transition:border-color var(--transition),color var(--transition)}.hero-tag:hover{color:var(--accent);border-color:var(--accent)}.hero-tag svg{flex-shrink:0;opacity:.9}.highlight{font-weight:600;background:linear-gradient(transparent 35%,color-mix(in srgb,var(--accent) 22%,transparent) 50%,color-mix(in srgb,var(--accent) 22%,transparent) 85%,transparent 100%);padding:0 .15em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.hero-image{position:relative;flex:0 1 auto;min-width:0;display:flex;justify-content:flex-start;align-items:center}.hero-image:before{content:"";position:absolute;inset:-6px;border-radius:50%;background:var(--accent);opacity:.25;filter:blur(16px);z-index:-1;pointer-events:none}.hero-image img{max-width:min(340px,38vw);width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;border:1px solid var(--accent);box-shadow:0 0 0 2px var(--accent-subtle),0 0 24px var(--accent-glow),0 16px 40px #0000004d}@media (max-width: 768px){#hero{padding-top:var(--space-6)}.hero-container{flex-direction:column;text-align:left;align-items:flex-start;padding-left:var(--space-4);padding-right:var(--space-4)}.hero-text{order:2;width:100%}.hero-image{order:1;margin-bottom:var(--space-8);align-self:center}.hero-image img{max-width:220px}}.skills-container{max-width:var(--content-max-width);margin:0 auto}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-4);padding:var(--space-8);border:1px solid var(--card-border);border-radius:16px;background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md),0 0 0 1px #00000005}.skills-badge{display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:500;font-family:ui-monospace,monospace;letter-spacing:.02em;color:var(--accent);background:var(--surface-elevated);border:1px solid var(--card-border);border-radius:8px;padding:var(--space-4);white-space:nowrap;transition:background var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition)}@media (hover: hover){.skills-badge:hover{background:var(--accent-subtle);border-color:var(--accent);transform:scale(1.03);box-shadow:0 0 20px var(--accent-glow)}}.skills-container .section-intro-container{margin-bottom:var(--space-6)}@media (max-width: 768px){.skills-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));padding:var(--space-6);gap:var(--space-2)}.skills-badge{font-size:var(--text-xs);padding:var(--space-2) var(--space-4)}}.project{background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md),0 0 0 1px #00000005;display:flex;flex-direction:column;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}@media (hover: hover){.project:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg),0 0 0 1px var(--glass-border),0 0 40px var(--accent-glow)}}.project-media-wrap{position:relative;width:100%;min-height:320px;height:380px;overflow:hidden;background:var(--surface-elevated)}.project-media-wrap .carousel{margin-top:0;height:100%}.project-media-wrap .carousel-viewport{height:100%;border-radius:0}.project-media-wrap .carousel-track,.project-media-wrap .carousel-slide{height:100%}.project-media-wrap .carousel-slide img{border-radius:0;object-fit:contain;width:100%;height:100%;max-height:none;box-shadow:none}.project-media-overlay{position:absolute;inset:0;pointer-events:none}.project-body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.section-intro-container{max-width:var(--content-max-width);margin:0 auto var(--space-6)}.projects-container{display:flex;flex-direction:column;align-items:stretch;max-width:var(--content-max-width);gap:var(--space-8);margin:0 auto}.projects-text{flex:1}.projects-intro{font-size:1.5rem;margin-bottom:.5rem}.projects-title{font-size:1.5rem;font-weight:600;margin-bottom:1rem}.projects-list{display:grid;grid-template-columns:1fr;gap:var(--space-12);padding:0;margin:0;list-style:none}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.project-tech-badge{background:var(--accent-subtle);color:var(--accent);font-size:.7rem;font-weight:500;font-family:ui-monospace,monospace;letter-spacing:.02em;border:1px solid var(--glass-border);border-radius:6px;padding:.4rem .65rem;white-space:nowrap}.project-name{font-size:var(--heading-3);font-weight:700;margin:0;line-height:var(--line-tight);padding-left:var(--space-4);border-left:4px solid var(--accent)}.project-summary{font-size:var(--text-base);font-weight:500;line-height:var(--line-relaxed);margin:0}.project-impact{font-size:var(--text-base);font-weight:600;margin:0}.project-details{margin:0;padding-left:1.1rem;display:grid;gap:.35rem}.project-details li{line-height:1.5;font-size:var(--text-sm)}.project-details li::marker{color:var(--accent)}.project-tech{margin:0}.project-links{display:flex;flex-wrap:wrap;gap:var(--space-4);margin:0}.project-btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;font-size:.8rem;font-weight:500;text-decoration:none;padding:.35rem .7rem;border-radius:8px;background:var(--accent);color:#fff;transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}.project-btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 24px var(--accent-glow)}.project-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-btn svg{width:14px;height:14px;flex-shrink:0}@media (min-width: 700px){.project-name{font-size:1.4rem}.project-summary{font-size:1rem}}@media (max-width: 768px){.project-body{padding:var(--space-4)}.projects-container{padding:0}.project-media-wrap{min-height:260px;height:320px}.project-name{font-size:var(--text-lg);border-left-width:3px;padding-left:var(--space-2)}.project-summary,.project-impact{font-size:var(--text-sm)}.project-details li{font-size:var(--text-xs)}.project-links{flex-direction:column}.project-btn{width:100%;justify-content:center}.projects-list{gap:var(--space-10)}}@media (hover: none){.project:hover{transform:none;box-shadow:var(--shadow-md)}}@media (max-width: 500px){.project-tech-badge{font-size:var(--text-xs);padding:.2rem .55rem}}.carousel{position:relative;margin-top:1rem}.carousel-viewport{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;border-radius:12px;outline:none}.carousel-viewport::-webkit-scrollbar{display:none}.carousel-track{display:flex}.carousel-slide{flex:0 0 100%;scroll-snap-align:center;display:flex;justify-content:center;align-items:center;padding-right:.5rem}.carousel-slide:last-child{padding-right:0}.carousel-slide img{max-width:100%;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 4px 10px #00000014;display:block;background:#fff;margin:0 auto}@media (min-width: 700px){.carousel-slide img{max-height:500px}}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--fg);width:32px;height:32px;border-radius:999px;display:grid;place-items:center;cursor:pointer;transition:transform var(--transition),opacity var(--transition),background var(--transition),border-color var(--transition);opacity:.9;z-index:2}.carousel-btn:hover{transform:translateY(-50%) scale(1.05);opacity:1;background:var(--surface-elevated)}.carousel-btn--prev{left:8px}.carousel-btn--next{right:8px}@media (max-width: 500px){.carousel-slide img{max-height:320px}.carousel-btn{width:26px;height:26px}}.experience-container{max-width:var(--content-max-width);margin:0 auto}.timeline{position:relative;padding-left:var(--space-8)}.timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent),var(--line));border-radius:2px}.timeline-item{position:relative;padding-bottom:var(--space-12)}.timeline-item:last-child{padding-bottom:0}.timeline-marker{position:absolute;left:calc(-1 * var(--space-8) + 2px);top:.4rem;width:14px;height:14px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--accent),0 0 16px var(--accent-glow)}.timeline-content{background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:12px;padding:var(--space-6);box-shadow:var(--shadow-sm),0 0 0 1px #00000005;transition:border-color var(--transition),box-shadow var(--transition)}@media (hover: hover){.timeline-content:hover{border-color:var(--accent);box-shadow:0 0 24px var(--accent-glow)}}.timeline-period{font-size:var(--text-sm);font-weight:600;font-family:ui-monospace,monospace;letter-spacing:.05em;color:var(--accent);margin-bottom:var(--space-2)}.timeline-role{font-size:var(--heading-3);font-weight:700;color:var(--fg);margin:0 0 var(--space-2);line-height:var(--line-tight)}.timeline-company{font-size:var(--text-base);color:var(--muted);margin:0 0 var(--space-4)}.timeline-company a{color:var(--accent);font-weight:500}.timeline-company a:hover{text-decoration:underline}.timeline-highlights{margin:0;padding-left:1.25rem;display:grid;gap:var(--space-2)}.timeline-highlights li{font-size:var(--text-sm);line-height:1.5;color:var(--muted)}.timeline-highlights li::marker{color:var(--accent)}.experience-resume-wrap{display:flex;align-items:center;gap:.75rem;margin-top:var(--space-10);padding-left:var(--space-8)}@media (max-width: 768px){.experience-resume-wrap{padding-left:var(--space-6)}}.experience-resume-link{font-size:var(--text-base);font-weight:500;color:var(--accent);text-decoration:none;transition:color var(--transition)}.experience-resume-link:hover{text-decoration:underline}.experience-resume-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.experience-container .section-intro-container{margin-bottom:var(--space-8)}@media (max-width: 768px){.timeline{padding-left:var(--space-6)}.timeline:before{left:5px}.timeline-marker{left:calc(-1 * var(--space-6) + 0px);width:12px;height:12px;border-width:2px}.timeline-content{padding:var(--space-4)}}#about{display:grid;grid-template-columns:1fr min(var(--content-max-width),100%) 1fr}#about>.section-about-intro-container,#about>.about-content{grid-column:2}.section-about-intro-container{margin:0 0 var(--space-6) 0;text-align:left}.section-about-intro{font-size:clamp(.8rem,1.5vw,1rem);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#000;margin-bottom:var(--space-2)}@media (prefers-color-scheme: dark){.section-about-intro{color:var(--fg)}}#about .section-title{margin-bottom:var(--space-6)}.about-content{width:min(900px,100%);justify-self:start;text-align:left;display:grid;font-size:var(--text-base);line-height:var(--line-relaxed);gap:var(--space-4)}.about-content p{margin:0}@media (max-width: 768px){.about-content{font-size:var(--text-sm);line-height:1.6;gap:var(--space-4)}}@media (max-width: 500px){.about-content{font-size:var(--text-sm)}}section{scroll-margin-top:80px}.contact-content{max-width:var(--content-max-width);margin:0 auto}.contact-icons{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-bottom:var(--space-8)}.contact-icon-link{display:inline-flex;align-items:center;gap:.75rem;padding:var(--space-4) var(--space-6);background:var(--card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:12px;color:var(--fg);text-decoration:none;font-weight:600;font-size:var(--text-base);box-shadow:var(--shadow-sm),0 0 0 1px #00000005;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition),color var(--transition)}.contact-icon-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-glow)}.contact-icon-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-info{display:grid;gap:var(--space-4);font-size:var(--text-base)}.contact-info p{display:flex;align-items:center;gap:var(--space-4);margin:0}.contact-info a{color:var(--accent);text-decoration:none}.contact-info a:hover{text-decoration:underline}@media (max-width: 768px){.contact-icons{gap:var(--space-4);margin-bottom:var(--space-6)}.contact-icon-link{padding:var(--space-4)}.contact-info{font-size:var(--text-sm)}}
