.hero{width:100%;height:100%;min-height:100%;padding:var(--space-2xl) var(--space-lg);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background-image:linear-gradient(var(--border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px);background-size:var(--space-xl) var(--space-xl);pointer-events:none;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60%,#000 30%,#0000 100%);mask-image:radial-gradient(70% 60%,#000 30%,#0000 100%)}.hero-inner{z-index:1;width:100%;max-width:720px;position:relative}.hero-prompt{align-items:center;gap:var(--space-sm);color:var(--text-muted);letter-spacing:.06em;margin-bottom:var(--space-md);font-size:.9em;animation:.5s both fadeSlideUp;display:inline-flex}.prompt-char{color:var(--accent-bright);font-weight:700}.hero-name{letter-spacing:-.04em;margin-bottom:var(--space-md);background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.8em,7vw,5em);font-weight:700;line-height:1;animation:.5s .1s both fadeSlideUp}.hero-role{color:var(--accent-bright);letter-spacing:.01em;margin-bottom:var(--space-md);align-items:center;gap:var(--space-xs);font-size:clamp(1.1em,3vw,1.4em);font-weight:400;animation:.5s .2s both fadeSlideUp;display:flex}.cursor{background-color:var(--accent-bright);vertical-align:middle;width:2px;height:1.1em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}.hero-description{color:var(--text-secondary);margin-bottom:var(--space-xl);max-width:580px;font-size:clamp(.92em,2vw,1.05em);line-height:1.8;animation:.5s .3s both fadeSlideUp}.cta-buttons{gap:var(--space-lg);flex-wrap:wrap;animation:.5s .4s both fadeSlideUp;display:flex}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media (width<=600px){.hero{padding:var(--space-xl) var(--space-md);min-height:100%}.hero-description{margin-bottom:var(--space-xl)}.cta-buttons{flex-direction:column;align-items:stretch}.cta-button{justify-content:center}}.about-content{gap:var(--space-lg);flex-direction:column;display:flex}.interests-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin:0;padding:0;list-style:none;display:grid}.interests-grid li{align-items:center;gap:var(--space-md);background-color:var(--overlay-light);border:1px solid var(--border);border-radius:var(--radius-sm);padding:calc(var(--space-sm) + 2px) var(--space-md);color:var(--text-primary);font-size:var(--text-sm);transition:background-color var(--transition-fast), border-color var(--transition-fast);display:flex}.interests-grid li:hover{background-color:var(--overlay-medium);border-color:var(--border-hover)}.interests-grid li i{color:var(--accent-bright);width:var(--space-md);text-align:center;flex-shrink:0;font-size:1em}@media (width<=600px){.about-container{padding:var(--space-lg) var(--space-md)}.about-card,.interests{padding:var(--space-md)}.interests-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.skills-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.skill-category{background-color:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent-muted);border-radius:var(--radius-md);padding:var(--space-lg);transition:border-color var(--transition-base), border-left-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base)}.skill-category:hover{border-color:var(--border-hover);border-left-color:var(--accent-bright);box-shadow:var(--shadow-md), -2px 0 12px var(--accent-glow);transform:translateY(-3px)}.skill-category h2{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border);align-items:center;gap:9px;font-size:1em;font-weight:600;display:flex}.skill-category h2 i{color:var(--accent-bright);font-size:.95em}.skill-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.skill-list li{color:var(--text-secondary);transition:color var(--transition-fast);align-items:center;gap:10px;padding:7px 0;font-size:.92em;display:flex}.skill-list li:hover{color:var(--text-primary)}.skill-list li:before{content:"▹";color:var(--accent-bright);flex-shrink:0;font-size:1.5em}@media (width<=600px){.skills-container{padding:var(--space-lg) var(--space-md)}.skills-grid{grid-template-columns:1fr}.skill-category h2{font-size:.9em}}#cards{gap:var(--space-sm);max-width:inherit;grid-template-columns:repeat(auto-fill,minmax(240px,290px));justify-content:center;margin:0 auto;display:grid}#cards:hover>.card:after{opacity:1}.card{background-color:var(--overlay-medium);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;width:100%;height:250px;text-decoration:none;display:flex;position:relative}.card:hover:before{opacity:1}.card:before,.card:after{border-radius:inherit;content:"";opacity:0;height:100%;transition:opacity var(--transition-slow);pointer-events:none;width:100%;position:absolute;top:0;left:0}.card:before{background:radial-gradient(700px circle at var(--mouse-x) var(--mouse-y), var(--accent-subtle), transparent 40%);z-index:3}.card:after{background:radial-gradient(500px circle at var(--mouse-x) var(--mouse-y), var(--border-accent), transparent 40%);z-index:1}.card>.card-content{background-color:var(--surface);border-radius:inherit;padding:var(--space-sm);z-index:2;transition:background-color var(--transition-base);flex-direction:column;flex-grow:1;display:flex;position:absolute;inset:1px}.card:hover>.card-content{background-color:var(--surface-raised)}.card-image{border-radius:8px 8px 0 0;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}.card-image>i{opacity:.18;transition:opacity var(--transition-base), transform var(--transition-base);font-size:5em}.card:hover .card-image>i{opacity:.28;transform:scale(1.08)}.card-info{grid-template-columns:var(--space-md) 1fr;padding:var(--space-sm) var(--space-md) var(--space-sm);align-items:center;gap:0 var(--space-md);grid-template-rows:auto auto;display:grid}.card-info>i{color:var(--accent-bright);grid-area:1/1/3;align-self:center;font-size:1em}.card-info>h3{color:var(--text-primary);grid-area:1/2;font-size:1em;font-weight:600;line-height:1.3}.card-info>h4{color:var(--text-muted);grid-area:2/2;margin-top:2px;font-size:.78em;font-weight:400}@media (width<=936px){#cards{padding:0}}@media (width<=500px){.card{height:180px}.card-image>i{font-size:3.5em}.card-info{padding:var(--space-sm)}.card-info>h3{font-size:.88em}.card-info>h4{font-size:.74em}}@media (width<=600px){.projects-container{padding:var(--space-lg) var(--space-md)}.projects-intro{font-size:.92em}#cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.project-back-link{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--space-md);transition:color var(--transition-fast);align-items:center;gap:7px;text-decoration:none;display:inline-flex}.project-back-link:hover{color:var(--text-secondary)}.project-back-link i{color:inherit;font-size:.9em}.project-template-content{max-width:var(--content-sm)}.project-template-content p{margin-bottom:var(--space-md)}.project-template-content p:last-child{margin-bottom:0}.project-template-actions{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.project-template-actions .source-link:after{content:"source";border-left:1px solid var(--border-subtle);color:var(--text-muted);letter-spacing:.12em;padding-left:var(--space-sm);text-transform:uppercase;margin-left:2px;font-size:.72em}.project-template-content h2{margin-top:var(--space-lg);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border)}.project-template-content ul,.project-template-content ol{padding-left:var(--space-lg);color:var(--text-secondary)}.project-template-content li{margin-bottom:var(--space-sm)}@media (width<=600px){.project-template-content{padding:var(--space-md)}}.not-found{width:100%;height:100%;min-height:100%;padding:var(--space-2xl) var(--space-lg);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.not-found:before{content:"";background-image:linear-gradient(var(--border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px);background-size:var(--space-xl) var(--space-xl);pointer-events:none;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60%,#000 30%,#0000 100%);mask-image:radial-gradient(70% 60%,#000 30%,#0000 100%)}.not-found-inner{text-align:center;z-index:1;width:100%;max-width:600px;position:relative}.not-found-prompt{align-items:center;gap:var(--space-sm);color:var(--text-muted);letter-spacing:.06em;margin-bottom:var(--space-md);font-size:.9em;animation:.5s both notFoundFadeUp;display:inline-flex}.not-found-prompt .prompt-char{color:var(--accent-bright);font-weight:700}.not-found-code{letter-spacing:-.04em;margin-bottom:var(--space-md);background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(5em,15vw,10em);font-weight:700;line-height:1;animation:.5s .1s both notFoundFadeUp}.not-found-message{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:clamp(.92em,2vw,1.1em);line-height:1.7;animation:.5s .2s both notFoundFadeUp}.not-found-actions{gap:var(--space-md);flex-wrap:wrap;justify-content:center;animation:.5s .3s both notFoundFadeUp;display:flex}@keyframes notFoundFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){.not-found{padding:var(--space-xl) var(--space-lg);align-items:center;min-height:100%}.not-found-actions{flex-direction:column;align-items:stretch}.not-found-actions .cta-button{justify-content:center}}:root{--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.82em;--text-sm:.88em;--text-base:1em;--text-lg:1.05em;--transition-fast:.18s ease;--transition-base:.2s ease;--transition-slow:.4s ease;--content-sm:760px;--content-lg:1600px;--accent:oklch(47.5% .25 300);--accent-bright:oklch(from var(--accent) calc(l + .1) c h)}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--neutral:oklch(16% .01 285);--text-base:oklch(95% .01 285);--bg-primary:var(--neutral);--bg-secondary:oklch(from var(--neutral) calc(l + .02) c h);--surface:oklch(from var(--neutral) calc(l + .03) c h);--surface-raised:oklch(from var(--surface) calc(l + .03) c h);--bg-translucent:oklch(from var(--neutral) l c h / .75);--accent-hover:oklch(from var(--accent-bright) calc(l - .03) c h);--accent-muted:oklch(from var(--accent) l c h / .6);--accent-glow:oklch(from var(--accent) l c h / .2);--accent-subtle:oklch(from var(--accent) l c h / .12);--accent-wash:oklch(from var(--accent) l c h / .06);--text-primary:var(--text-base);--text-secondary:oklch(from var(--text-base) l c h / .55);--text-muted:oklch(from var(--text-base) l c h / .28);--text-on-accent:oklch(95% 0 0);--border:oklch(100% 0 0/.08);--border-subtle:oklch(from var(--border) l c h / .05);--border-hover:oklch(from var(--border) l c h / .35);--border-accent:oklch(from var(--accent) l c h / .5);--overlay-light:oklch(100% 0 0/.05);--overlay-medium:oklch(from var(--overlay-light) l c h / .08);--status-error:oklch(75% .18 26);--shadow-sm:0 1px 3px oklch(0% 0 0/.3), 0 1px 2px oklch(0% 0 0/.2);--shadow-md:0 4px 16px oklch(0% 0 0/.4), 0 2px 6px oklch(0% 0 0/.3);--shadow-accent-lg:0px 6px 24px var(--accent-muted)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--neutral:oklch(95% .005 285);--text-base:oklch(20% .01 285);--bg-primary:var(--neutral);--bg-secondary:oklch(from var(--neutral) calc(l - .02) c h);--surface:oklch(from var(--neutral) calc(l + .025) c h);--surface-raised:var(--neutral);--bg-translucent:oklch(from var(--neutral) l c h / .85);--accent-hover:oklch(from var(--accent) calc(l - .03) c h);--accent-muted:oklch(from var(--accent) l c h / .15);--accent-glow:oklch(from var(--accent) l c h / .08);--accent-subtle:oklch(from var(--accent) l c h / .06);--accent-wash:oklch(from var(--accent) l c h / .03);--text-primary:var(--text-base);--text-secondary:oklch(from var(--text-base) l c h / .65);--text-muted:oklch(from var(--text-base) l c h / .45);--text-on-accent:oklch(95% 0 0);--border:oklch(0% 0 0/.1);--border-subtle:oklch(from var(--border) l c h / .06);--border-hover:oklch(from var(--border) l c h / .2);--border-accent:oklch(from var(--accent) l c h / .3);--overlay-light:oklch(0% 0 0/.03);--overlay-medium:oklch(from var(--overlay-light) l c h / .06);--status-error:oklch(50% .18 26);--shadow-sm:0 1px 3px oklch(0% 0 0/.08), 0 1px 2px oklch(0% 0 0/.05);--shadow-md:0 4px 16px oklch(0% 0 0/.1), 0 2px 6px oklch(0% 0 0/.06);--shadow-accent-lg:0px 6px 24px var(--accent-muted)}*,:before,:after{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px}:focus:not(:focus-visible){outline:none}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);background-image:radial-gradient(ellipse 80% 50% at 50% -20%, var(--accent-subtle), transparent), radial-gradient(ellipse 60% 40% at 80% 80%, var(--accent-wash), transparent);min-height:100dvh;font-family:var(--font-mono);font-display:swap;font-variant-ligatures:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}#root{flex-direction:column;min-height:100dvh;display:flex}button{all:unset;cursor:pointer}h1,h2,h3,h4{color:var(--text-primary);letter-spacing:-.02em;margin:0;font-weight:400}span{color:inherit}p{margin:0;line-height:1.7}i{color:var(--text-primary)}.link{background-color:var(--overlay-light);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);cursor:pointer;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);transition:background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);font-family:var(--font-mono);letter-spacing:.02em;font-size:.85em;text-decoration:none;display:inline-flex}.link:hover{background-color:var(--overlay-medium);border-color:var(--border-hover);box-shadow:var(--shadow-md)}.link>i,.link>span{height:var(--space-md);line-height:var(--space-md)}.link>span{color:var(--text-primary)}main{padding:var(--space-md);flex:1;justify-content:center;align-items:center;display:flex}li::marker{color:var(--accent-bright)}.cta-button{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.92em;font-family:var(--font-mono);letter-spacing:.02em;background-color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-on-accent);transition:background-color var(--transition-base), border-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);font-weight:500;text-decoration:none;display:inline-flex}.cta-button:hover{background-color:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-accent-lg);transform:translateY(-2px)}.cta-button.secondary{background-color:var(--surface-raised);border-color:var(--border-accent);color:var(--text-primary)}.cta-button.secondary:hover{background-color:var(--overlay-medium);border-color:var(--accent-bright);box-shadow:inset 0 0 0 1px var(--border-accent), 0 10px 24px #00000042;box-shadow:var(--shadow-md)}.cta-button.secondary i{color:var(--accent-bright)}.container{width:100%;padding:var(--space-xl) var(--space-md)}.header{margin-bottom:var(--space-xl)}.header h1{letter-spacing:-.03em;margin-bottom:var(--space-sm);font-size:clamp(2em,5vw,3em);font-weight:700;line-height:1.1}.subheader{max-width:640px;color:var(--text-secondary);margin-top:var(--space-lg);font-size:1.05em;line-height:1.6}.divider{width:var(--space-2xl);background:linear-gradient(90deg, var(--accent), var(--accent-bright));height:3px;margin-top:var(--space-md);border-radius:2px}.content-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-lg) var(--space-xl);color:var(--text-secondary);transition:border-color var(--transition-base)}.content-card:hover{border-color:var(--border-accent)}.content-card h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm);font-size:1.1em;font-weight:600}.content-card p{font-size:1em;line-height:1.85}.content-card p+p{margin-top:var(--space-md)}.highlight{color:var(--accent-bright);font-weight:600}.container-sm{max-width:var(--content-sm)}.container-lg{max-width:var(--content-lg)}nav{z-index:100;background-color:var(--bg-translucent);-webkit-backdrop-filter:blur(16px)saturate(1.4);border-bottom:1px solid var(--border-subtle);padding:var(--space-md) var(--space-lg);justify-content:space-between;align-items:center;gap:var(--space-lg);flex-wrap:wrap;display:flex;position:sticky;top:0}.nav-left{align-items:center;gap:var(--space-lg);display:flex}.nav-brand{align-items:center;text-decoration:none;display:flex}.nav-brand-name{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--text-primary);background:var(--accent-bright);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:.95em;font-weight:700}.nav-links{gap:var(--space-xs);align-items:center;display:flex}.nav-links a{color:var(--text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);transition:color var(--transition-fast), background-color var(--transition-fast);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;text-decoration:none}.nav-links a:hover{color:var(--text-primary);background-color:var(--overlay-light)}.nav-links a.active{color:var(--text-primary);background-color:var(--accent-muted);box-shadow:0 0 12px var(--accent-glow)}.nav-right{align-items:center;gap:var(--space-sm);display:flex;position:relative}.theme-controls{align-items:center;gap:var(--space-sm);display:flex}.accent-control{position:static}.accent-toggle{justify-content:center;align-items:center;gap:var(--space-sm);min-width:52px;height:32px;padding:0 var(--space-sm);border-radius:var(--radius-sm);background-color:var(--overlay-light);border:1px solid var(--border);color:var(--text-secondary);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);display:inline-flex}.accent-toggle:hover,.accent-toggle[aria-expanded=true]{background-color:var(--overlay-medium);border-color:var(--border-hover);color:var(--text-primary)}.accent-swatch{width:var(--space-lg);height:var(--space-lg);border-radius:100%}.accent-popover{top:calc(100% + var(--space-sm));z-index:120;width:min(320px, calc(100vw - var(--space-md) * 2));background-color:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-md);gap:var(--space-md);display:grid;position:absolute;right:0}.accent-popover .react-colorful{width:100%!important}.accent-hex-picker .react-colorful__saturation{border-radius:var(--radius-sm);border-bottom:0}.accent-hex-picker .react-colorful__hue{height:var(--space-sm);margin-top:var(--space-md);border-radius:999px}.accent-input-label{color:var(--text-secondary);font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase}.accent-channel-grid{gap:var(--space-sm);display:grid}.accent-channel{gap:var(--space-xs);display:grid}.accent-channel>span{color:var(--text-secondary);font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase}.accent-input{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--border);background-color:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-mono);font-size:.86em}.accent-input.invalid{border-color:var(--status-error)}.accent-input-hint{font-size:var(--text-xs);color:var(--text-muted);line-height:1.5}.accent-input-hint.error{color:var(--status-error)}.accent-actions{align-items:center;gap:var(--space-sm);display:flex}.accent-apply,.accent-reset{width:fit-content;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--border);background-color:var(--overlay-light);color:var(--text-secondary);font-size:var(--text-xs);letter-spacing:.02em;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast)}.accent-apply{background-color:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.accent-apply:hover{background-color:var(--accent-hover);border-color:var(--accent-hover)}.accent-reset:hover{background-color:var(--overlay-medium);border-color:var(--border-hover);color:var(--text-primary)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.theme-toggle{border-radius:var(--radius-sm);background-color:var(--overlay-light);border:1px solid var(--border);width:32px;height:32px;color:var(--text-secondary);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;font-size:.95em;display:flex}.theme-toggle:hover{background-color:var(--overlay-medium);border-color:var(--border-hover);color:var(--text-primary)}.social-links{gap:var(--space-sm);display:flex}.social-links .fa-linkedin{color:#0077b5}@media (width<=768px){nav{padding:var(--space-sm) var(--space-md);align-items:stretch;gap:var(--space-sm);flex-direction:column}.nav-left{align-items:center;gap:var(--space-sm);flex-direction:column}.nav-links{flex-wrap:wrap;justify-content:center}.nav-links a{padding:var(--space-sm) var(--space-md);font-size:var(--text-xs)}.nav-right{justify-content:center;width:100%;position:relative}.accent-control{position:static}.accent-popover{left:var(--space-sm);right:var(--space-sm);width:auto;max-width:330px;margin-inline:auto;transform:none}.social-links{justify-content:center}}@media (width<=500px){nav{padding:var(--space-sm) var(--space-md)}.nav-links{gap:var(--space-xs)}.nav-links a{padding:var(--space-sm) var(--space-md);font-size:.8em}.link{padding:var(--space-sm);font-size:.82em}}
