@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}:root{--color-surface:#0a0a0a;--color-surface-secondary:#0f0f0f;--color-surface-tertiary:#141414;--color-surface-elevated:#1a1a1a;--color-surface-overlay:#000c;--color-primary:#818cf8;--color-primary-hover:#a5b4fc;--color-primary-muted:#6366f1;--color-primary-surface:#818cf81a;--color-text-primary:#fff;--color-text-secondary:#a1a1aa;--color-text-muted:#71717a;--color-text-inverse:#0a0a0a;--color-border:#ffffff14;--color-border-hover:#ffffff29;--color-border-focus:#818cf880;--dark-overlay-heavy:#000000f7;--dark-overlay-medium:#000000e6;--dark-overlay-light:#000c;--dark-border-subtle:#ffffff0d;--dark-border-light:#ffffff1a;--dark-border-medium:#fff3;--dark-text-emphasis:#ffffffe6;--dark-text-normal:#ffffffb3;--light-bg-primary:#fff;--light-bg-secondary:#fafafa;--light-bg-tertiary:#f5f5f5;--light-text-primary:#0a0a0a;--light-text-secondary:#52525b;--light-text-muted:#a1a1aa;--light-border:#00000014;--light-overlay-heavy:#fffffff7;--light-overlay-medium:#ffffffe6;--light-overlay-light:#fffc;--light-border-subtle:#0000000d;--light-border-light:#00000014;--light-border-medium:#0000001a;--light-text-emphasis:#000000e6;--light-text-normal:#000000b3;--light-card-bg:#fff;--light-card-hover:#f8f8f8;--light-accent-primary:#6366f1;--light-accent-primary-hover:#4f46e5;--light-accent-secondary:#4a4a4a;--light-accent-tertiary:#6b6b6b;--light-accent-muted:#8c8c8c;--light-accent-surface:#f0f0f0;--light-accent-warning:#fbbf24;--light-shadow-sm:0 1px 3px 0 #0000000a;--light-shadow-md:0 2px 8px -1px #00000014;--light-shadow-lg:0 10px 24px -3px #0000001a;--light-shadow-xl:0 20px 32px -8px #0000001f;--shadow-sm:0 1px 3px 0 #000000e6;--shadow-md:0 4px 12px -2px #000000e6;--shadow-lg:0 12px 24px -4px #000000e6;--shadow-xl:0 24px 48px -12px #000000e6;--shadow-2xl:0 32px 64px -16px #000000e6;--shadow-inner:inset 0 2px 4px 0 #0000000f;--shadow-glow:0 0 32px -8px var(--color-primary);--gradient-primary:linear-gradient(135deg,var(--color-primary)0%,var(--color-primary-hover)100%);--gradient-surface:linear-gradient(180deg,var(--color-surface)0%,var(--color-surface-secondary)100%);--gradient-radial:radial-gradient(ellipse at top,var(--color-surface-elevated)0%,var(--color-surface)100%);--gradient-noise:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");--transition-base:.3s cubic-bezier(.4,0,.2,1);--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-soft:.36s ease;--transition-slow:.5s cubic-bezier(.4,0,.2,1);--transition-bounce:.6s cubic-bezier(.68,-.55,.265,1.55);--transition-smooth:cubic-bezier(.4,0,.2,1);--transition-overshoot:cubic-bezier(.68,-.55,.265,1.55);--transition-decelerate:cubic-bezier(0,0,.2,1);--transition-theme:.7s ease;--transition-sidebar:.22s cubic-bezier(0,0,.2,1);--transition-sidebar-transform:.22s cubic-bezier(0,0,.2,1);--font-xs:clamp(.75rem,2vw,.875rem);--font-sm:clamp(.875rem,2.5vw,1rem);--font-base:clamp(1rem,3vw,1.125rem);--font-lg:clamp(1.25rem,4vw,1.5rem);--font-xl:clamp(1.875rem,5vw,2.25rem);--font-2xl:clamp(2.25rem,6vw,3rem);--font-3xl:clamp(3rem,8vw,4rem);--font-4xl:clamp(3.75rem,10vw,5rem);--font-5xl:clamp(4.5rem,12vw,6rem);--font-display:clamp(5rem,15vw,8rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-section:clamp(4rem,10vw,8rem);--space-element:clamp(2rem,5vw,4rem);--space-component:clamp(1rem,3vw,2rem);--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-2xl:2rem;--radius-full:9999px;--z-base:0;--z-dropdown:10;--z-header:20;--z-overlay:30;--z-modal:40;--z-notification:50;--z-tooltip:60;--will-change-transform:transform;--will-change-opacity:opacity;--will-change-filter:filter;--backdrop-blur-sm:blur(4px);--backdrop-blur-md:blur(8px);--backdrop-blur-lg:blur(16px);--backdrop-blur-xl:blur(24px);--dark-bg-primary:var(--color-surface);--dark-bg-secondary:var(--color-surface-secondary);--dark-bg-tertiary:var(--color-surface-tertiary);--dark-bg-card:var(--color-surface-secondary);--dark-bg-card-hover:var(--color-surface-elevated);--dark-text-primary:var(--color-text-primary);--dark-text-secondary:var(--color-text-secondary);--dark-border:var(--color-border);--dark-card-border:var(--color-border);--dark-accent-primary:var(--color-primary);--dark-accent-primary-hover:var(--color-primary-hover);--dark-accent-warning:var(--light-accent-warning);--dark-shadow-sm:var(--shadow-sm);--dark-shadow-md:var(--shadow-md);--dark-shadow-lg:var(--shadow-lg);--dark-shadow-xl:var(--shadow-xl);--dark-shadow:#00000059;--dark-shadow-stronger:#00000080;--light-shadow:#00000014;--light-shadow-stronger:#0000001f;--light-card-border:var(--light-border)}*{box-sizing:border-box}:root{color-scheme:light dark}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-feature-settings:"liga" 1,"calt" 1,"kern" 1,"ss01" 1,"ss02" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;color:var(--color-text-primary);background-color:var(--color-surface);transition:background-color var(--transition-theme),color var(--transition-theme);min-height:100dvh;font-family:Inter var,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;position:relative;overflow-x:hidden}.light body{color:var(--light-text-primary);background-color:var(--light-bg-primary);color-scheme:light}.portfolio-body{background:var(--gradient-radial),var(--gradient-noise);transition:padding-left var(--transition-sidebar);will-change:padding-left;background-attachment:fixed;margin:0;padding:0;position:relative}@media(min-width:1025px){.portfolio-body{padding-left:280px}.sidebar-collapsed .portfolio-body{padding-left:80px}}@media(max-width:1024px){.portfolio-body,.sidebar-collapsed .portfolio-body{padding-left:0}}#header-root{height:0;margin:0;padding:0;overflow:visible}section:first-of-type{margin-top:0}.portfolio-body:before{content:"";background:radial-gradient(at 20% 80%,var(--color-primary-surface)0%,transparent 50%),radial-gradient(at 80% 20%,var(--color-primary-surface)0%,transparent 50%),radial-gradient(at 40% 40%,var(--color-surface-elevated)0%,transparent 50%);opacity:.5;pointer-events:none;z-index:-1;transition:opacity var(--transition-theme);position:fixed;inset:0}.light .portfolio-body:before{opacity:0}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;color:var(--color-text-primary);transition:color var(--transition-theme);font-weight:700;line-height:1.2}h1{font-size:var(--font-display);letter-spacing:-.04em;background:linear-gradient(135deg,var(--color-text-primary)0%,var(--color-text-secondary)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800;line-height:1}section h1,article h1,nav h1,aside h1{font-size:var(--font-display)}h2{font-size:var(--font-4xl);font-weight:700}h3{font-size:var(--font-3xl);font-weight:600}h4{font-size:var(--font-2xl);font-weight:600}.light h1,.light h2,.light h3,.light h4,.light h5,.light h6{color:var(--light-text-primary)}.light h1{background:linear-gradient(135deg,var(--light-text-primary)0%,var(--light-text-secondary)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}::-moz-selection{background-color:var(--color-primary);color:var(--color-surface)}::selection{background-color:var(--color-primary);color:var(--color-surface)}.light ::-moz-selection{background-color:var(--light-accent-primary);color:#fff}.light ::selection{background-color:var(--light-accent-primary);color:#fff}:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:var(--radius-sm)}.light :focus-visible{outline-color:var(--light-accent-primary)}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full);border:3px solid var(--color-surface)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.light ::-webkit-scrollbar-track{background:var(--light-bg-primary)}.light ::-webkit-scrollbar-thumb{background:var(--light-border);border-color:var(--light-bg-primary)}.light ::-webkit-scrollbar-thumb:hover{background:var(--light-text-muted)}header{-webkit-backdrop-filter:blur(12px);z-index:50;border-bottom:1px solid var(--dark-border);transition:all var(--transition-base);background-color:#0a0a0af2;position:fixed;top:0;left:0;right:0}.light header{border-bottom-color:var(--light-border);background-color:#fafafaf2}header.scrolled{box-shadow:var(--light-shadow-md);background-color:#ffffffb3}.dark header.scrolled{box-shadow:var(--dark-shadow-md);background-color:#000000b3}.container,.section-container{max-width:1280px;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));margin-left:auto;margin-right:auto}section{padding-top:var(--space-20);padding-bottom:var(--space-20);position:relative;overflow:hidden}@media(min-width:768px){section{padding-top:var(--space-24);padding-bottom:var(--space-24)}}#hero{justify-content:center;align-items:center;min-height:100dvh;padding-top:0;display:flex;position:relative}body{padding-top:80px}footer{background:var(--light-bg-primary);border-top:1px solid var(--light-border);color:var(--light-text-secondary);position:relative}.dark footer{background:var(--dark-bg-primary);border-top:1px solid var(--dark-border);color:var(--dark-text-secondary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{opacity:.7;transform:scale(1)}70%{opacity:0;transform:scale(2)}to{opacity:0;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:.5}}.animate-spin{animation:1s linear infinite spin}.animate-fadeIn{animation:.3s ease-out fadeIn}.animate-slideIn{animation:.3s ease-out slideIn}@keyframes float{0%{transform:translateY(0)rotate(0)}to{transform:translateY(-10px)rotate(1deg)}}@keyframes glow{0%,to{opacity:.5}50%{opacity:1}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes subtle-pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes pulse-slow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}.animate-float{animation:3s ease-in-out infinite float}.animate-glow{animation:2s ease-in-out infinite glow}.animate-gradient{background-size:200% 200%;animation:3s infinite gradient-shift}.animate-slide-up{animation:.5s ease-out forwards slide-up}.animate-slide-in{animation:.5s ease-out forwards slide-in}.hero-pulse{animation:5s infinite subtle-pulse}.animate-pulse{animation:1.5s infinite pulse}.animate-bounce{animation:1.5s ease-in-out infinite bounce}.animate-pulse-slow{animation:8s ease-in-out infinite pulse-slow}.animation-delay-100{animation-delay:.1s}.animation-delay-200{animation-delay:.2s}.animation-delay-300{animation-delay:.3s}.animation-delay-400{animation-delay:.4s}.animation-delay-500{animation-delay:.5s}.animation-delay-1000{animation-delay:1s}.animation-delay-2000{animation-delay:2s}.animation-delay-3000{animation-delay:3s}.animation-delay-4000{animation-delay:4s}.animation-delay-5000{animation-delay:5s}.animation-duration-fast{animation-duration:.3s}.animation-duration-base{animation-duration:.5s}.animation-duration-slow{animation-duration:1s}.animation-duration-slower{animation-duration:2s}.animation-paused{animation-play-state:paused}.animation-running{animation-play-state:running}.hover\:animation-paused:hover{animation-play-state:paused}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.btn{--btn-transform-x:0;--btn-transform-y:0;cursor:pointer;transition:all var(--transition-base);transform:translate(var(--btn-transform-x),var(--btn-transform-y));will-change:transform;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.btn-primary{padding:var(--space-4)var(--space-8);font-size:var(--font-sm);letter-spacing:.03em;color:var(--color-surface);background:var(--color-primary);border-radius:var(--radius-full);isolation:isolate;border:2px solid #0000;position:relative;overflow:hidden}.btn-primary:before{content:"";background:var(--gradient-primary);border-radius:inherit;opacity:0;z-index:-1;transition:opacity var(--transition-base);filter:blur(10px);position:absolute;inset:-2px}.btn-primary:after{content:"";background:radial-gradient(circle at var(--mouse-x,50%)var(--mouse-y,50%),#ffffff1a,transparent 40%);opacity:0;transition:opacity var(--transition-fast);position:absolute;inset:0}.btn-primary:hover{background:var(--color-primary-hover);transform:translate(var(--btn-transform-x),var(--btn-transform-y))scale(1.05);box-shadow:var(--shadow-glow)}.btn-primary:hover:after{opacity:1}.btn-primary:active{transform:translate(var(--btn-transform-x),var(--btn-transform-y))scale(.98)}.light .btn-primary{background:var(--light-accent-primary);color:#fff}.light .btn-primary:hover{background:var(--light-accent-primary-hover);box-shadow:var(--light-shadow-lg)}.btn-secondary{padding:var(--space-4)var(--space-8);font-size:var(--font-sm);letter-spacing:.03em;color:var(--color-text-primary);border:2px solid var(--color-border);border-radius:var(--radius-full);backdrop-filter:var(--backdrop-blur-sm);background:0 0;position:relative;overflow:hidden}.btn-secondary:before{content:"";background:var(--color-primary);opacity:0;transition:opacity var(--transition-base);border-radius:inherit;position:absolute;inset:0}.btn-secondary:hover{color:var(--color-surface);border-color:var(--color-primary);transform:translate(var(--btn-transform-x),var(--btn-transform-y))scale(1.05)}.btn-secondary:hover:before{opacity:1}.btn-secondary:active{transform:translate(var(--btn-transform-x),var(--btn-transform-y))scale(.98)}.light .btn-secondary{color:var(--light-text-primary);border-color:var(--light-border)}.light .btn-secondary:hover{color:#fff;border-color:var(--light-accent-primary)}.light .btn-secondary:before{background:var(--light-accent-primary)}.card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);transition:all var(--transition-base);backdrop-filter:var(--backdrop-blur-sm);position:relative;overflow:hidden}.light .card{background:var(--light-card-bg);border-color:var(--light-border);backdrop-filter:none}.card:before{content:"";background:linear-gradient(90deg,transparent,var(--color-primary),transparent);opacity:0;height:1px;transition:opacity var(--transition-slow);position:absolute;top:0;left:0;right:0}.card:after{content:"";background:radial-gradient(circle at var(--mouse-x,50%)var(--mouse-y,50%),var(--color-primary-surface),transparent 40%);opacity:0;transition:opacity var(--transition-base);pointer-events:none;position:absolute;inset:0}.card:hover{background:var(--color-surface-elevated);box-shadow:var(--shadow-xl);border-color:var(--color-border-hover);transform:translateY(-8px)rotateX(2deg)}.card:hover:before,.card:hover:after{opacity:1}.card-glass{-webkit-backdrop-filter:var(--backdrop-blur-lg);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:inset 0 1px #ffffff1a,var(--shadow-lg);transition:all var(--transition-base);background:#ffffff0d;border:1px solid #ffffff1a}.card-glass:hover{background:#ffffff14;border-color:#fff3}.light .card-glass{box-shadow:inset 0 1px #ffffff80,var(--light-shadow-lg);background:#ffffffb3;border-color:#0000001a}.light .card-glass:hover{background:#ffffffe6}.project-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:all var(--transition-slow);height:100%;transform-style:preserve-3d;flex-direction:column;display:flex;position:relative;overflow:hidden;transform:perspective(1000px)rotateX(0)rotateY(0)}.project-card-image{-o-object-fit:cover;object-fit:cover;width:100%;height:240px;transition:transform var(--transition-slower);position:relative}.project-card-image:after{content:"";opacity:0;transition:opacity var(--transition-base);background:linear-gradient(#0000 50%,#000000b3);position:absolute;inset:0}.project-card:hover{transform:perspective(1000px)rotateX(-5deg)rotateY(var(--rotate-y,0deg))translateZ(20px);box-shadow:0 25px 50px -12px #00000080,0 0 25px -5px var(--color-primary-surface)}.project-card:hover .project-card-image:after{opacity:1}.project-card-description{color:var(--dark-text-secondary)}.skill-card{background:var(--dark-bg-tertiary);border:1px solid var(--dark-border);border-radius:var(--radius-md);padding:var(--space-8);transition:all var(--transition-base);position:relative;overflow:hidden}.light .skill-card{background:var(--light-bg-secondary);border-color:var(--light-border)}.nav-pill{padding:var(--space-2)0;font-weight:400;font-size:var(--font-sm);letter-spacing:.03em;color:var(--dark-text-secondary);transition:all var(--transition-fast);text-decoration:none;position:relative}.nav-pill:after{content:"";background:var(--dark-accent-primary);width:0;height:1px;transition:width var(--transition-fast);position:absolute;bottom:-2px;left:0}.nav-pill:hover{color:var(--dark-text-primary)}.nav-pill:hover:after,.nav-pill.active:after{width:100%}.nav-pill.active{color:var(--dark-accent-primary)}.light .nav-pill{color:var(--light-text-secondary)}.light .nav-pill:hover{color:var(--light-text-primary)}.light .nav-pill.active{color:var(--light-accent-primary)}.light .nav-pill:after{background:var(--light-accent-primary)}.fab{bottom:var(--space-8);right:var(--space-8);border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;width:56px;height:56px;box-shadow:var(--light-shadow-lg);cursor:pointer;transition:all var(--transition-base);z-index:40;justify-content:center;align-items:center;display:flex;position:fixed}.dark .fab{background:var(--gradient-dark);box-shadow:var(--dark-shadow-lg)}.section-header{margin-bottom:var(--space-16);text-align:center}.section-subtitle{font-size:var(--font-sm);color:var(--dark-accent-primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-3);font-weight:400}.section-title{font-size:clamp(var(--font-3xl),4vw,var(--font-5xl));letter-spacing:-.02em;margin-bottom:var(--space-6);font-weight:300;line-height:1.1}.section-description{font-size:var(--font-lg);color:var(--dark-text-secondary);max-width:720px;margin-left:auto;margin-right:auto;font-weight:300;line-height:1.6}.light .section-subtitle{color:var(--light-accent-primary)}.light .section-description{color:var(--light-text-secondary)}.btn-base,.btn-primary,.btn-secondary,.btn-ghost,.filter-btn,.project-filter-btn,.other-project-filter-btn{padding:var(--space-3)var(--space-8);border-radius:var(--radius-md);font-size:var(--font-sm);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:all var(--transition-base);border:1px solid #0000;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn-base svg,.btn-primary svg,.btn-secondary svg,.btn-ghost svg{width:1.25rem;height:1.25rem;transition:transform var(--transition-base);margin-left:.5rem}.btn-primary{color:var(--light-bg-primary);background:var(--light-accent-primary);transform:translateZ(0)}.btn-primary:before{content:"";opacity:0;transition:opacity var(--transition-base);background:linear-gradient(135deg,#fff3,#0000);position:absolute;inset:0}.btn-primary:hover{background:var(--light-accent-primary-hover);transform:translate(2px)}.btn-primary:hover:before{opacity:1}.btn-primary:hover svg{transform:translate(.25rem)}.dark .btn-primary{color:var(--dark-bg-primary);background:var(--dark-accent-primary)}.dark .btn-primary:hover{background:var(--dark-accent-primary-hover)}.btn-secondary{border:2px solid var(--light-accent-primary);letter-spacing:.03em;text-transform:none;color:var(--light-accent-primary);background:0 0}.btn-secondary:hover{color:var(--light-bg-primary);background:var(--light-accent-primary)}.btn-secondary:hover svg{transform:scale(1.1)}.dark .btn-secondary{color:var(--dark-accent-primary);border-color:var(--dark-accent-primary)}.dark .btn-secondary:hover{color:var(--dark-bg-primary);background:var(--dark-accent-primary)}.btn-ghost{padding:var(--space-2)var(--space-6);border:1px solid var(--dark-border);letter-spacing:.03em;text-transform:none;color:var(--dark-text-secondary);background:0 0;font-weight:400}.btn-ghost:after{content:"";background:var(--dark-accent-primary);width:0;height:1px;transition:width var(--transition-base);position:absolute;bottom:0;left:0}.btn-ghost:hover{color:var(--dark-accent-primary);border-color:var(--dark-accent-primary)}.btn-ghost:hover:after{width:100%}.light .btn-ghost{color:var(--light-text-primary);border-color:var(--light-border)}.light .btn-ghost:hover{color:var(--light-accent-primary);border-color:var(--light-accent-primary)}.light .btn-ghost:after{background:var(--light-accent-primary)}.filter-btn,.project-filter-btn,.other-project-filter-btn{padding:var(--space-2)var(--space-6);border:1px solid var(--light-border);text-transform:none;letter-spacing:normal;color:var(--light-text-primary);background-color:var(--light-bg-primary)}.filter-btn:hover:not(.active),.project-filter-btn:hover:not(.active),.other-project-filter-btn:hover:not(.active){color:var(--light-accent-primary);background-color:var(--light-bg-secondary)}.filter-btn.active,.project-filter-btn.active,.other-project-filter-btn.active{color:var(--light-bg-primary);background:var(--light-accent-primary);border-color:var(--light-accent-primary);box-shadow:var(--light-shadow-sm)}.dark .filter-btn,.dark .project-filter-btn,.dark .other-project-filter-btn{color:var(--dark-text-primary);background-color:var(--dark-bg-card);border-color:var(--dark-border)}.dark .filter-btn:hover:not(.active),.dark .project-filter-btn:hover:not(.active),.dark .other-project-filter-btn:hover:not(.active){color:var(--dark-accent-primary);background-color:var(--dark-bg-secondary)}.dark .filter-btn.active,.dark .project-filter-btn.active,.dark .other-project-filter-btn.active{color:var(--dark-bg-primary);background:var(--dark-accent-primary);border-color:var(--dark-accent-primary);box-shadow:var(--dark-shadow-sm)}.fab{bottom:var(--space-8);right:var(--space-8);z-index:40;border-radius:var(--radius-full);width:56px;height:56px;color:var(--light-bg-primary);background:var(--gradient-primary);box-shadow:var(--light-shadow-lg);cursor:pointer;transition:all var(--transition-base);border:1px solid #0000;justify-content:center;align-items:center;padding:0;font-weight:500;text-decoration:none;display:inline-flex;position:fixed;overflow:hidden}.fab:hover{box-shadow:var(--light-shadow-xl);transform:translateY(-2px)}.dark .fab{color:var(--dark-bg-primary);background:var(--gradient-dark);box-shadow:var(--dark-shadow-lg)}.btn-full-width{width:100%}.card-base,.card,.card-glass,.project-card,.other-project-card,.skill-card{border-radius:var(--radius-md);transition:all var(--transition-base);border:1px solid var(--dark-border);background:var(--dark-bg-card);position:relative;overflow:hidden}.light .card-base,.light .card,.light .card-glass,.light .project-card,.light .other-project-card,.light .skill-card{background:var(--light-card-bg);border-color:var(--light-border)}.card{padding:var(--space-8)}.card:before{content:"";background:var(--dark-accent-primary);width:2px;height:0;transition:height var(--transition-slow);position:absolute;top:0;left:0}.card:hover{background:var(--dark-bg-card-hover);box-shadow:var(--dark-shadow-lg);transform:translateY(-4px)}.card:hover:before{height:100%}.light .card:hover{background:var(--light-card-hover);box-shadow:var(--light-shadow-lg)}.light .card:before{background:var(--light-accent-primary)}.card-glass{padding:var(--space-8);-webkit-backdrop-filter:blur(12px);box-shadow:var(--dark-shadow-md);background:#14141499}.light .card-glass{box-shadow:var(--light-shadow-md);background:#fffc}.project-card{flex-direction:column;height:100%;display:flex}.project-card-image{-o-object-fit:cover;object-fit:cover;width:100%;height:240px;transition:transform var(--transition-slower)}.project-card-title{font-size:var(--font-2xl);margin-bottom:var(--space-2);font-weight:600}.project-card-description{color:var(--dark-text-secondary);margin-bottom:var(--space-4);flex:1}.light .project-card-description{color:var(--light-text-secondary)}.project-card-tags{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.other-project-card{padding:var(--space-6)}.other-project-card:hover{box-shadow:var(--dark-shadow-md);transform:translateY(-2px)}.light .other-project-card:hover{box-shadow:var(--light-shadow-md)}.skill-card{padding:var(--space-8);background:var(--dark-bg-tertiary)}.light .skill-card{background:var(--light-bg-secondary)}.skill-card:after{content:"";background:var(--dark-accent-primary);transform-origin:0;width:100%;height:2px;transition:transform var(--transition-base);position:absolute;bottom:0;left:0;transform:scaleX(0)}.skill-card:hover:after{transform:scaleX(1)}.light .skill-card:after{background:var(--light-accent-primary)}.skill-icon{width:48px;height:48px;padding:var(--space-3);background:var(--dark-bg-secondary);border-radius:var(--radius-md);color:var(--dark-accent-primary)}.light .skill-icon{background:var(--light-bg-tertiary);color:var(--light-accent-primary)}.contact-icon{width:48px;height:48px;padding:var(--space-3);background:var(--dark-bg-tertiary);border-radius:var(--radius-full);color:var(--dark-text-secondary);justify-content:center;align-items:center;display:flex}.light .contact-icon{background:var(--light-bg-secondary);color:var(--light-text-secondary)}.timeline-item{padding-left:var(--space-8);margin-bottom:var(--space-8);position:relative}.timeline-item:before{content:"";left:0;top:var(--space-2);bottom:calc(-1*var(--space-8));background:var(--dark-border);width:2px;position:absolute}.timeline-item:last-child:before{display:none}.light .timeline-item:before{background:var(--light-border)}.timeline-marker{left:-4px;top:var(--space-2);background:var(--dark-accent-primary);border-radius:var(--radius-full);border:2px solid var(--dark-bg-primary);width:10px;height:10px;position:absolute}.timeline-content{background:var(--dark-bg-card);padding:var(--space-6);border-radius:var(--radius-md);border:1px solid var(--dark-border)}.sidebar-navigation{background:var(--dark-overlay-heavy);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--dark-border-subtle);z-index:1000;width:280px;height:100dvh;padding:var(--space-8)var(--space-6);transition:width var(--transition-sidebar),background-color var(--transition-theme),border-color var(--transition-theme),transform var(--transition-sidebar-transform);will-change:width,padding;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:visible auto;transform:translateZ(0)}.sidebar-navigation.collapsed{width:80px;padding:var(--space-8)var(--space-6)}.light .sidebar-navigation{background:#fffffff7;border-right-color:#00000014}.sidebar-collapse-btn{top:var(--sidebar-toggle-top,50%);right:var(--sidebar-toggle-right,-12px);z-index:1001;cursor:pointer;width:28px;height:28px;transition:background-color var(--transition-base),transform var(--transition-base),opacity var(--transition-base);color:#ffffffe6;opacity:0;pointer-events:none;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;transform:translateY(-50%)}.light .sidebar-collapse-btn{color:#000000e6}.sidebar-navigation:hover .sidebar-collapse-btn,.sidebar-collapse-btn:focus-visible{opacity:1;pointer-events:auto}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff0f;transform:translateY(-50%)translate(2px)}.light .sidebar-collapse-btn:hover{color:#000;background:#0000000f}.collapse-icon,.sidebar-collapse-btn svg{width:16px;height:16px;transition:transform var(--transition-base)}.sidebar-navigation.collapsed .collapse-icon,.sidebar-navigation.collapsed .sidebar-collapse-btn svg{transform:rotate(180deg)}.sidebar-collapse-btn:hover .collapse-icon{transform:none}.sidebar-navigation.collapsed .sidebar-collapse-btn:hover .collapse-icon{transform:rotate(180deg)}.sidebar-brand{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid #ffffff1a}.light .sidebar-brand{border-bottom-color:#0000001a}.brand-link{align-items:center;gap:var(--space-3);transition:opacity var(--transition-base);cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none;display:flex}.brand-link:hover{opacity:1}.brand-initial{color:#000;border-radius:var(--radius-md);width:40px;height:40px;font-size:var(--font-lg);letter-spacing:-.02em;transition:background-color var(--transition-theme),color var(--transition-theme);background:#fff;flex-shrink:0;justify-content:center;align-items:center;font-weight:900;display:flex}.light .brand-initial{color:#fff;background:#000}.brand-full{font-size:var(--font-sm);letter-spacing:.1em;color:#ffffffe6;transition:opacity var(--transition-sidebar-transform),transform var(--transition-sidebar-transform),color var(--transition-theme);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:600;overflow:hidden}.light .brand-full{color:#000000e6}.sidebar-navigation.collapsed .brand-full{opacity:0;pointer-events:none;transform:none}.sidebar-navigation.collapsed .brand-link{justify-content:flex-start}.sidebar-menu{gap:var(--space-8);flex-direction:column;flex:1;display:flex}.nav-section{gap:var(--space-4);flex-direction:column;display:flex}.nav-label{font-size:var(--font-xs);letter-spacing:.15em;color:#fff6;margin-bottom:var(--space-2);transition:opacity var(--transition-sidebar-transform),transform var(--transition-sidebar-transform),max-width var(--transition-sidebar),margin var(--transition-sidebar),color var(--transition-theme);white-space:nowrap;max-width:200px;font-weight:400;display:inline-block;overflow:hidden}.light .nav-label{color:#0006}.sidebar-navigation.collapsed .nav-label{opacity:0;pointer-events:none;max-width:0;margin:0;overflow:hidden;transform:none}.nav-items{gap:var(--space-1);flex-direction:column;display:flex}.nav-item{grid-template-columns:var(--nav-icon-col,20px)var(--nav-number-col,24px)var(--nav-text-col,1fr);align-items:center;-moz-column-gap:var(--space-3);column-gap:var(--space-3);padding:var(--space-3)var(--space-2);border-radius:var(--radius-md);min-height:44px;transition:padding var(--transition-sidebar),gap var(--transition-sidebar),background-color var(--transition-sidebar),transform var(--transition-sidebar-transform);will-change:padding,gap,transform;text-decoration:none;display:grid;position:relative;overflow:hidden}.sidebar-navigation .nav-item .hover-underline{background:#fffffff2}.light .sidebar-navigation .nav-item .hover-underline{background:#000000e6}.nav-icon{color:#fffc;width:20px;height:20px}.light .nav-icon{color:#000000b3}.nav-item svg,.sidebar-navigation .nav-item .lucide{color:#fffc;flex-shrink:0;place-self:center;width:20px;height:20px;line-height:0;display:block}.light .nav-item svg,.light .sidebar-navigation .nav-item .lucide{color:#000000b3}.sidebar-navigation .nav-icon{place-self:center;line-height:0;display:block}.nav-item:hover{background:#ffffff0d;transform:none}.nav-item:hover .nav-icon,.nav-item:hover .lucide,.nav-item:focus-visible .nav-icon,.nav-item:focus-visible .lucide{transform:scale(1.06)}.light .nav-item:hover{background:#0000000d}.nav-item.active{background:#ffffff14;transform:none}.light .nav-item.active{background:#00000014}.nav-item.active:before{content:"";background:#fff;width:3px;position:absolute;top:0;bottom:0;left:0}.light .nav-item.active:before{background:#000}.nav-number{font-size:var(--font-xs);color:#ffffff80;min-width:24px;max-width:24px;transition:opacity var(--transition-sidebar-transform),max-width var(--transition-sidebar),margin var(--transition-sidebar),transform var(--transition-sidebar-transform),color var(--transition-theme);will-change:max-width,opacity,transform;align-self:center;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:500;display:inline-block}.light .nav-number{color:#00000080}.nav-item:hover .nav-number,.nav-item.active .nav-number{color:#fffc}.light .nav-item:hover .nav-number,.light .nav-item.active .nav-number{color:#000c}.nav-text{font-size:var(--font-sm);letter-spacing:.05em;color:#ffffffb3;transition:opacity var(--transition-sidebar-transform),transform var(--transition-sidebar-transform),max-width var(--transition-sidebar),margin var(--transition-sidebar),color var(--transition-theme);white-space:nowrap;will-change:max-width,opacity,transform;align-self:center;max-width:160px;font-weight:500;line-height:1.3;display:inline-block;overflow:hidden}.sidebar-navigation .nav-text{text-transform:uppercase}.light .nav-text{color:#000000b3}.nav-item:hover .nav-text,.nav-item.active .nav-text{color:#fff}.light .nav-item:hover .nav-text,.light .nav-item.active .nav-text{color:#000}.sidebar-navigation.collapsed .nav-item{padding:var(--space-3)var(--space-2);justify-content:flex-start}.sidebar-navigation.collapsed .sidebar-menu .nav-item{grid-template-columns:var(--nav-icon-col,20px)var(--nav-number-col,24px)var(--nav-text-col,1fr);justify-content:flex-start;justify-items:start}.sidebar-navigation.collapsed .sidebar-menu .nav-item .nav-number,.sidebar-navigation.collapsed .sidebar-menu .nav-item .nav-text{display:none}.sidebar-navigation.collapsed .nav-number{opacity:0;transform:none}.sidebar-navigation.collapsed .nav-text{opacity:0;pointer-events:none;transform:none}#theme-toggle-icon-light{display:block}#theme-toggle-icon-dark,.dark #theme-toggle-icon-light{display:none}.dark #theme-toggle-icon-dark{display:block}.scroll-progress-container{gap:var(--space-1);flex-direction:column;align-items:flex-start;display:flex}.scroll-progress-linear{width:100%;transition:opacity var(--transition-base);align-items:center;gap:var(--space-2);flex-direction:column;display:flex;position:relative}.light .scroll-progress-linear{background:#0000001a}.progress-bar{border-radius:var(--radius-sm);background:#ffffff1a;width:100%;height:4px;position:relative;overflow:hidden}.progress-bar:after{content:"";border-radius:var(--radius-sm);height:100%;transition:width var(--transition-fast);transform-origin:0;width:var(--progress,0%);background:#fff;position:absolute;top:0;left:0}.light .progress-bar{background:#0000001a}.light .progress-bar:after{background:#000}.scroll-progress-circular{opacity:0;width:32px;height:32px;transition:all var(--transition-base);justify-content:center;align-self:center;align-items:center;margin-top:-8px;display:flex;position:relative}.progress-circle{width:100%;height:100%;transform:rotate(-90deg)}.progress-circle-bg{fill:none;stroke:#ffffff1a;stroke-width:2px}.light .progress-circle-bg{stroke:#0000001a}.progress-circle-fill{fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round;transition:stroke-dasharray var(--transition-fast)}.light .progress-circle-fill{stroke:#000}.progress-text{font-size:var(--font-xs);color:#fff9;transition:opacity var(--transition-sidebar-transform),transform var(--transition-sidebar-transform),max-width var(--transition-sidebar);white-space:nowrap;will-change:max-width,opacity,transform;max-width:120px;margin-top:-2px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:500}.progress-text-circular{color:#fffc;opacity:0;transition:opacity var(--transition-sidebar-transform);pointer-events:none;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:8px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.light .progress-text-circular{color:#000c}.light .progress-text{color:#0009}.sidebar-navigation.collapsed .scroll-progress-container{align-items:flex-start;margin-top:0}.sidebar-navigation.collapsed .scroll-progress-linear{opacity:0;pointer-events:none}.sidebar-navigation.collapsed .scroll-progress-circular{opacity:1}.sidebar-navigation.collapsed .progress-text{opacity:0;pointer-events:none;transform:none}.sidebar-navigation.collapsed .progress-text-circular{opacity:1}.theme-control{grid-template-columns:var(--nav-icon-col,20px)var(--nav-number-col,24px)var(--nav-text-col,1fr);justify-content:flex-start;place-items:center start;-moz-column-gap:var(--space-3);column-gap:var(--space-3);padding:var(--space-3)var(--space-2);border-radius:var(--radius-md);cursor:pointer;min-height:44px;transition:background-color var(--transition-sidebar),border-color var(--transition-sidebar),transform var(--transition-sidebar-transform),padding var(--transition-sidebar),color var(--transition-theme);color:#ffffffb3;background:0 0;border:none;width:100%;display:grid}.theme-control .theme-label{text-align:left;grid-column:3}.light .theme-control{color:#000000b3}.theme-control:hover{color:#fff;background:#ffffff0d;transform:none}.theme-control:hover .theme-icon svg,.theme-control:focus-visible .theme-icon svg{transform:scale(1.06)}.light .theme-control:hover{color:#000;background:#0000000d}.theme-control:active{transform:none}.theme-label{font-size:var(--font-sm);letter-spacing:inherit;transition:opacity var(--transition-sidebar-transform),transform var(--transition-sidebar-transform),max-width var(--transition-sidebar),margin var(--transition-sidebar);white-space:nowrap;max-width:160px;font-weight:500;display:inline-block;overflow:hidden}.theme-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.theme-icon svg{width:16px;height:16px}@keyframes sun-pop{0%{transform:rotate(0)scale(1)}35%{transform:rotate(15deg)scale(1.06)}to{transform:rotate(0)scale(1)}}@keyframes moon-drift{0%{transform:rotate(-10deg)translateY(0)}50%{transform:rotate(10deg)translateY(-1px)}to{transform:rotate(0)translateY(0)}}#minimal-toggle .theme-icon{position:relative}#minimal-toggle .theme-icon i,#minimal-toggle .theme-icon .lucide{transition:opacity var(--transition-soft),transform var(--transition-soft);will-change:transform,opacity;position:absolute;inset:0}#minimal-toggle .theme-icon .icon-min,#minimal-toggle .theme-icon .lucide-minimize-2{opacity:1;transform:translateY(0)scale(1)}#minimal-toggle .theme-icon .icon-max,#minimal-toggle .theme-icon .lucide-maximize-2{opacity:0;transform:translateY(-2px)scale(.96)}.minimalist #minimal-toggle .theme-icon .icon-min,.minimalist #minimal-toggle .theme-icon .lucide-minimize-2{opacity:0;transform:translateY(2px)scale(.96)}.minimalist #minimal-toggle .theme-icon .icon-max,.minimalist #minimal-toggle .theme-icon .lucide-maximize-2{opacity:1;transform:translateY(0)scale(1)}#theme-toggle.anim-light .theme-icon svg{animation:.5s sun-pop}#theme-toggle.anim-dark .theme-icon svg{animation:.5s moon-drift}#minimal-toggle .theme-icon svg *{stroke-dasharray:none;stroke-dashoffset:0}.sidebar-navigation .nav-icon,.sidebar-navigation .nav-item .lucide,.sidebar-navigation .theme-icon svg,.sidebar-navigation .social-link svg{stroke-width:1.75px;width:20px;height:20px;transition:transform var(--transition-fast),color var(--transition-theme),stroke var(--transition-theme);transform-origin:50%;will-change:transform}.sidebar-navigation button:hover:not(.sidebar-collapse-btn),.sidebar-navigation .btn:hover{box-shadow:none!important;transform:none!important}.sidebar-navigation .social-link.nav-item:hover{background:#ffffff0d;transform:none;box-shadow:none!important}.light .sidebar-navigation .social-link.nav-item:hover{background:#0000000d}.theme-control:focus-visible,.nav-item:focus-visible,.social-link:focus-visible,.sidebar-collapse-btn:focus-visible,.mobile-nav-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sidebar-footer{flex-direction:column;gap:0;margin-top:auto;display:flex}.footer-section{gap:var(--space-4);padding-top:var(--space-6);padding-bottom:var(--space-6);flex-direction:column;display:flex;position:relative}.footer-section:before{content:"";height:1px;transition:all var(--transition-base);background:#ffffff1a;position:absolute;top:0;left:0;right:0}.light .footer-section:before{background:#0000001a}.sidebar-navigation.collapsed .footer-section{align-items:stretch}.sidebar-navigation.collapsed .footer-section .nav-label{opacity:0;pointer-events:none;height:0;margin:0;overflow:hidden;transform:none}.sidebar-navigation.collapsed .footer-section .theme-control{padding:var(--space-3)var(--space-2);border-radius:var(--radius-md);background:0 0;border:none;justify-content:flex-start;align-items:center;width:100%;height:auto}.sidebar-navigation .theme-control:hover .theme-icon svg{color:#fff}.light .sidebar-navigation .theme-control:hover .theme-icon svg{color:#000}.sidebar-navigation.collapsed .footer-section .theme-label{opacity:0;pointer-events:none;transform:none}.sidebar-navigation.collapsed .nav-item,.sidebar-navigation.collapsed .nav-item:hover,.sidebar-navigation.collapsed .nav-item.active,.sidebar-navigation.collapsed .theme-control:hover,.sidebar-navigation.collapsed .social-link:hover{transform:none}.sidebar-navigation .social-links{gap:var(--space-1);transition:gap var(--transition-base);flex-direction:column;display:flex}.sidebar-navigation.collapsed .social-links{gap:var(--space-1);flex-direction:column;justify-content:flex-start;align-items:stretch}.sidebar-navigation.collapsed .social-link{background:0 0}.sidebar-navigation .social-link.nav-item{grid-template-columns:var(--nav-icon-col,20px)var(--nav-number-col,24px)var(--nav-text-col,1fr);-moz-column-gap:var(--space-3);column-gap:var(--space-3);border-radius:var(--radius-md);width:100%;height:auto;min-height:44px;color:inherit;background:0 0;border:none;justify-content:flex-start;align-items:center;display:grid}.social-link.nav-item .nav-text{text-align:left;text-transform:uppercase;letter-spacing:inherit;grid-column:3;margin-top:0}.social-link:hover{background:#ffffff0d;transform:none}.light .social-link:hover{background:#0000000d}.sidebar-navigation .social-link:hover svg{color:#fff}.sidebar-navigation .social-link:hover svg,.sidebar-navigation .social-link:focus-visible svg{transform:scale(1.06)}.light .sidebar-navigation .social-link:hover svg{color:#000}.social-label{font-size:var(--font-xs);letter-spacing:.05em;color:#ffffffb3;transition:color var(--transition-theme);text-align:left;margin-top:0;font-weight:600}.sidebar-navigation.collapsed .social-link.nav-item .nav-text{opacity:0;visibility:hidden;pointer-events:none;max-width:160px}.light .social-label{color:#000000b3}.mobile-nav-toggle{top:max(var(--space-6),env(safe-area-inset-top));left:max(var(--space-6),env(safe-area-inset-left));border-radius:var(--radius-lg);z-index:1001;cursor:pointer;width:48px;height:48px;transition:all var(--transition-sidebar);background:#000000e6;border:1px solid #ffffff1a;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:none;position:fixed}.sidebar-navigation.active~.mobile-nav-toggle{left:calc(280px + var(--space-6))}.light .mobile-nav-toggle{background:#ffffffe6;border-color:#0000001a}.hamburger-line{border-radius:var(--radius-sm);width:20px;height:2px;transition:all var(--transition-base);background:#fff}.light .hamburger-line{background:#000}@media(max-width:1024px){.sidebar-navigation{transition:transform var(--transition-sidebar-transform),background-color var(--transition-theme),border-color var(--transition-theme);will-change:transform;transform:translate(-100%)}.sidebar-navigation.active{transform:translate(0)}.mobile-nav-toggle{display:flex}.sidebar-collapse-btn{display:none}}@media(prefers-reduced-motion:reduce){.sidebar-navigation,.brand-full,.nav-label,.nav-text,.progress-text,.progress-text-circular,.sidebar-collapse-btn,.collapse-icon,#theme-toggle .theme-icon svg,#minimal-toggle .theme-icon svg{transition:none!important}#theme-toggle.anim-dark .theme-icon svg,#theme-toggle.anim-light .theme-icon svg,#minimal-toggle.anim-minimal-on .theme-icon svg,#minimal-toggle.anim-minimal-off .theme-icon svg{animation:none!important}}@media(max-width:768px){.sidebar-navigation.collapsed{width:280px;padding:var(--space-8)var(--space-6)}.sidebar-navigation.collapsed .brand-full,.sidebar-navigation.collapsed .nav-label,.sidebar-navigation.collapsed .nav-text,.sidebar-navigation.collapsed .theme-label,.sidebar-navigation.collapsed .progress-text{opacity:1;pointer-events:auto;transform:none}}body:after{content:"";opacity:0;pointer-events:none;transition:opacity var(--transition-base);z-index:900;background:#0006;position:fixed;inset:0}@media(max-width:1024px){body.nav-open{touch-action:none;overflow:hidden}body.nav-open:after{opacity:1;pointer-events:auto}}@media(min-width:1025px){body{transition:padding-left var(--transition-sidebar);padding-left:280px}body.sidebar-collapsed{padding-left:80px}}#sidebar-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;grid-template-columns:var(--nav-icon-col,20px)var(--nav-number-col,24px)var(--nav-text-col,1fr);align-items:center;-moz-column-gap:var(--space-3);column-gap:var(--space-3);width:100%;min-height:44px;color:inherit;font:inherit;cursor:pointer;text-align:left;padding:var(--space-3)var(--space-2);background:0 0;border:none;display:grid}#sidebar-toggle .nav-icon,#sidebar-toggle .lucide{grid-column:1}#sidebar-toggle .nav-text{text-align:left;grid-column:3}.sidebar-navigation.collapsed #sidebar-toggle .nav-text{display:none}#sidebar-toggle .nav-icon,#sidebar-toggle .lucide{transition:transform var(--transition-sidebar-transform)}.sidebar-navigation.collapsed #sidebar-toggle .nav-icon,.sidebar-navigation.collapsed #sidebar-toggle .lucide{transform:rotate(180deg)}.mobile-nav-toggle.active .hamburger-line:first-child{transform:rotate(45deg)translate(5px,5px)}.mobile-nav-toggle.active .hamburger-line:nth-child(2){opacity:0}.mobile-nav-toggle.active .hamburger-line:nth-child(3){transform:rotate(-45deg)translate(7px,-6px)}#minimal-toggle .theme-icon svg path,#minimal-toggle .theme-icon svg line,#minimal-toggle .theme-icon svg polyline,#minimal-toggle .theme-icon svg polygon{stroke-dasharray:none}#hero{background-color:var(--color-surface);min-height:100dvh;transition:background-color var(--transition-base);background-image:linear-gradient(#0003,#0000001a);align-items:center;display:flex;position:relative;overflow:hidden}.hero-bg-elements{pointer-events:none;position:absolute;inset:0}.hero-circle{border:1px solid #ffffff14;border-radius:50%;width:600px;height:600px;position:absolute;top:50%;left:-300px;transform:translateY(-50%)}.hero-line-1{background:linear-gradient(#0000,#ffffff14,#0000);width:1px;height:100%;position:absolute;top:0;left:15%}.hero-line-2{background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:100%;height:1px;position:absolute;top:30%;left:0}.hero-wrapper{width:100%;max-width:1400px;padding:0 var(--space-8);margin:0 auto;position:relative}.hero-content{gap:var(--space-16);grid-template-columns:1fr auto;align-items:center;display:grid}.hero-name{letter-spacing:-.08em;margin:0 0 var(--space-8)0;color:#fff;-webkit-text-fill-color:currentColor;text-fill-color:currentColor;background:0 0;font-family:system-ui,-apple-system,sans-serif;font-size:clamp(4rem,15vw,10rem);font-weight:900;line-height:.8}.name-line{display:block;position:relative}.name-line:first-child{margin-bottom:-.1em}.hero-info{margin-bottom:var(--space-12)}.hero-role{letter-spacing:.2em;color:#fff9;margin-bottom:var(--space-2);font-size:clamp(.875rem,2vw,1.125rem);font-weight:400}.hero-location{letter-spacing:.15em;color:#fff6;font-size:clamp(.75rem,1.5vw,.875rem);font-weight:300}.hero-actions{gap:var(--space-10);display:flex}.hero-link{color:#fff;font-size:var(--font-sm);letter-spacing:.1em;padding:var(--space-2)0;transition:opacity var(--transition-base);font-weight:500;text-decoration:none;position:relative}.hero-link:hover{opacity:.7}.link-underline{transform-origin:0;width:100%;height:1px;transition:transform var(--transition-base);background:#fff;position:absolute;bottom:0;left:0}.hero-link:hover .link-underline{transform:scaleX(0)}.hero-side{gap:var(--space-8);padding-left:var(--space-8);border-left:1px solid #ffffff1a;flex-direction:column;display:flex}.hero-detail{gap:var(--space-1);flex-direction:column;display:flex}.detail-label{font-size:var(--font-xs);letter-spacing:.15em;color:#fff6;font-weight:400}.detail-value{font-size:var(--font-sm);letter-spacing:.05em;color:#fffc;font-weight:500}.light #hero{background-color:var(--light-bg-primary);background-image:linear-gradient(#fff3,#ffffff1a)}.light .hero-circle{border-color:#0000001a}.light .hero-line-1{background:linear-gradient(#0000,#00000014,#0000)}.light .hero-line-2{background:linear-gradient(90deg,#0000,#00000014,#0000)}.hero-name,.hero-name .name-line{color:#fff!important;-webkit-text-fill-color:#fff!important}.light .hero-name,.light .hero-name .name-line{color:var(--light-text-primary)!important;-webkit-text-fill-color:var(--light-text-primary)!important}.light .hero-link{color:var(--light-text-primary)}.light .hero-role{color:var(--light-text-secondary)}.light .hero-location,.light .detail-label{color:var(--light-text-muted)}.light .detail-value{color:#000c}.light .link-underline{background:#000}.light .hero-side{border-color:#0000001a}@media(max-width:1024px){.hero-content{gap:var(--space-12);grid-template-columns:1fr}.hero-side{padding-left:0;padding-top:var(--space-8);border-top:1px solid #ffffff1a;border-left:none;flex-direction:row;justify-content:center}.light .hero-side{border-top-color:#0000001a}}@media(max-width:768px){.hero-name{font-size:clamp(3rem,12vw,5rem)}.hero-circle{width:400px;height:400px;left:-200px}.hero-actions,.hero-side{gap:var(--space-6)}}#about{padding:var(--space-section)0;background:var(--color-surface);position:relative;overflow:hidden}.about-background{pointer-events:none;position:absolute;inset:0}.about-gradient{filter:blur(120px);background:radial-gradient(circle,#ffffff05,#0000 60%);width:800px;height:800px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.about-dot-grid{opacity:.4;background-image:radial-gradient(circle,#ffffff08 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 20%,#0000 60%);mask-image:radial-gradient(#000 20%,#0000 60%)}.about-content{max-width:1400px;padding:0 var(--space-6);margin:0 auto;position:relative}.about-label{align-items:center;gap:var(--space-4);margin-bottom:var(--space-16);text-align:center;justify-content:center;width:100%;display:inline-flex}.label-number{font-size:var(--font-xl);color:#ffffff80;min-width:24px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:500}.label-text{font-size:var(--font-xl);letter-spacing:.1em;text-transform:uppercase;color:#ffffffe6;font-weight:500}.about-three-columns{gap:var(--space-16);grid-template-columns:1.2fr .8fr 1fr;align-items:start;display:grid}.about-text-column{gap:var(--space-8);flex-direction:column;display:flex}.about-title{letter-spacing:-.03em;margin-bottom:var(--space-8);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.1}.title-line{color:#ffffffe6;display:block}.title-line.accent{color:#ffffff80;font-weight:400}.about-description{gap:var(--space-4);flex-direction:column;display:flex}.intro-text{color:#fffc;margin-bottom:var(--space-2);font-size:1.125rem;font-weight:400;line-height:1.7}.about-description p{color:#ffffff80;font-size:.875rem;font-weight:300;line-height:1.8}.about-timeline-column{gap:var(--space-6);flex-direction:column;display:flex}.timeline-title{text-transform:uppercase;letter-spacing:.15em;color:#ffffff4d;font-size:.625rem;font-weight:500}.journey-visual{flex-direction:column;gap:0;padding-left:80px;display:flex;position:relative}.journey-node{padding:var(--space-3)0;transition:all var(--transition-base);cursor:default;gap:var(--space-1);background:0 0;border:none;border-radius:0;flex-direction:column;display:flex;position:relative}.journey-node:before{content:attr(data-year);text-align:right;color:#ffffff4d;text-transform:uppercase;letter-spacing:.05em;width:70px;font-size:.625rem;font-weight:500;position:absolute;left:-80px}.journey-node:after{content:"";border-radius:var(--radius-full);background:#fff3;width:4px;height:4px;position:absolute;top:18px;left:-6px}.journey-node.active:after{background:#fffc;box-shadow:0 0 0 6px #ffffff0d}.node-label{color:#ffffffb3;letter-spacing:.02em;font-size:.75rem;font-weight:500;line-height:1.4}.journey-node.active .node-label{color:#ffffffe6}.node-detail{color:#ffffff4d;text-transform:uppercase;letter-spacing:.1em;font-size:.625rem;font-weight:400}.journey-path{background:#ffffff0d;width:1px;height:20px;margin-left:-4px;position:relative}.about-tech-column{flex-direction:column;display:flex}.tech-stack{gap:var(--space-8);background:0 0;border:none;border-radius:0;flex-direction:column;padding:0;display:flex}.tech-category{gap:var(--space-3);flex-direction:column;align-items:center;display:flex}.tech-category-title{text-transform:uppercase;letter-spacing:.15em;color:#ffffff4d;text-align:center;font-size:.625rem;font-weight:500}.tech-items{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.tech-item{padding:var(--space-1)var(--space-3);border-radius:var(--radius-md);color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;transition:all var(--transition-fast);cursor:default;background:#ffffff08;border:1px solid #ffffff0f;font-size:.625rem;font-weight:400}.tech-item:hover{color:#ffffffb3;background:#ffffff0d;border-color:#ffffff1a}@media(max-width:1200px){.about-three-columns{gap:var(--space-12);grid-template-columns:1fr .8fr 1fr}.journey-visual{padding-left:60px}.journey-node:before{width:50px;left:-60px}}@media(max-width:1024px){.about-three-columns{gap:var(--space-16);grid-template-columns:1fr}.about-timeline-column{order:-1}.journey-visual{padding-left:0;padding-top:var(--space-4)}.journey-node{padding-left:var(--space-6);border-left:1px solid #ffffff0d}.journey-node:before{margin-bottom:var(--space-2);text-align:left;width:auto;display:block;position:static}.journey-node:after{left:-2px}.journey-path{display:none}}@media(max-width:768px){.about-title{font-size:clamp(1.75rem,5vw,2.25rem)}.about-three-columns{gap:var(--space-12)}}.about-content [data-aos]{transition-property:transform,opacity;transition-duration:.8s;transition-timing-function:var(--easing-smooth)}.light #about{background:var(--light-bg-primary);border-top-color:#0000001a}.light .about-gradient{background:radial-gradient(circle,#00000005,#0000 60%)}.light .about-dot-grid{background-image:radial-gradient(circle,#00000008 1px,#0000 1px)}.light .label-number{color:#00000080}.light .label-text,.light .title-line{color:#000000e6}.light .title-line.accent{color:#00000080}.light .intro-text{color:#000c}.light .about-description p{color:#00000080}.light .timeline-title,.light .journey-node:before{color:#0000004d}.light .journey-node:after{background:#0003}.light .journey-node.active:after{background:#000c;box-shadow:0 0 0 6px #0000000d}.light .node-label{color:#000000b3}.light .journey-node.active .node-label{color:#000000e6}.light .node-detail{color:#0000004d}.light .journey-path{background:#0000000d}.light .tech-category-title{color:#0000004d}.light .tech-item{color:#00000080;background:#00000008;border-color:#0000000f}.light .tech-item:hover{color:#000000b3;background:#0000000d;border-color:#0000001a}#projects{padding:var(--space-section)0;background:var(--color-surface);position:relative;overflow:hidden}.projects-bg-elements{pointer-events:none;z-index:0;position:absolute;inset:0}.projects-line-1{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);width:200px;height:1px;position:absolute;top:20%;left:-10%;transform:rotate(-15deg)}.projects-line-2{background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:150px;height:1px;position:absolute;bottom:30%;right:-5%;transform:rotate(25deg)}.projects-dot-grid{opacity:.3;background-image:radial-gradient(circle,#ffffff05 1px,#0000 1px);background-size:50px 50px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 70% 30%,#000 20%,#0000 70%);mask-image:radial-gradient(at 70% 30%,#000 20%,#0000 70%)}.projects-content{max-width:1400px;padding:0 var(--space-6);margin:0 auto;position:relative}.projects-label{align-items:center;gap:var(--space-4);margin-bottom:var(--space-16);text-align:center;justify-content:center;width:100%;display:inline-flex}.projects-label .label-number{font-size:var(--font-xl);color:#ffffff80;min-width:24px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:500}.projects-label .label-text{font-size:var(--font-xl);letter-spacing:.1em;text-transform:uppercase;color:#ffffffe6;font-weight:500}.projects-gallery{gap:var(--space-16);grid-template-columns:1.2fr 1fr;align-items:start;display:grid}.project-featured{padding:var(--space-12);border-radius:var(--radius-lg);transition:all var(--transition-base);background:#ffffff05;border:1px solid #ffffff0d;position:relative}.project-featured:hover{background:#ffffff08;border-color:#ffffff1a;transform:translateY(-4px)}.projects-grid{gap:var(--space-8);grid-template-columns:1fr;display:grid}.project-item{padding:var(--space-8);border-radius:var(--radius-md);transition:all var(--transition-base);background:#ffffff03;border:1px solid #ffffff08;position:relative}.project-item:hover{background:#ffffff05;border-color:#ffffff14;transform:translate(4px)}.project-number{top:var(--space-4);right:var(--space-4);color:#ffffff4d;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.625rem;font-weight:500;position:absolute}.project-info{gap:var(--space-3);flex-direction:column;display:flex}.project-title{color:#ffffffe6;letter-spacing:.02em;margin:0;font-size:1.25rem;font-weight:600}.project-featured .project-title{font-size:1.5rem;font-weight:700}.project-type{text-transform:uppercase;letter-spacing:.1em;color:#fff6;margin:0;font-size:.625rem;font-weight:500}.project-description{color:#fff9;margin:0;font-size:.875rem;line-height:1.6}.project-featured .project-description{font-size:1rem;line-height:1.7}.project-tags{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.project-tag{padding:var(--space-1)var(--space-3);border-radius:var(--radius-sm);color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em;transition:all var(--transition-fast);background:#ffffff0d;border:1px solid #ffffff14;font-size:.625rem;font-weight:400}.project-tag:hover{background:#ffffff14;border-color:#ffffff26}.project-link{align-items:center;gap:var(--space-2);margin-top:var(--space-4);text-transform:uppercase;letter-spacing:.1em;color:#ffffffb3;transition:all var(--transition-base);font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.project-link:hover{color:#ffffffe6;transform:translate(2px)}.link-arrow{transition:transform var(--transition-base);font-size:.875rem}.project-link:hover .link-arrow{transform:translate(4px)}.project-featured .project-link{margin-top:var(--space-6);font-size:.875rem}@media(max-width:1024px){.projects-gallery{gap:var(--space-12);grid-template-columns:1fr}.projects-grid{gap:var(--space-6);grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}.project-featured{padding:var(--space-8)}.project-item{padding:var(--space-6)}.project-title{font-size:1.125rem}.project-featured .project-title{font-size:1.375rem}}.projects-content [data-aos]{transition-property:transform,opacity;transition-duration:.8s;transition-timing-function:var(--easing-smooth)}.light #projects{background:var(--light-bg-primary)}.light .projects-line-1,.light .projects-line-2{background:linear-gradient(90deg,#0000,#00000014,#0000)}.light .projects-dot-grid{background-image:radial-gradient(circle,#00000005 1px,#0000 1px)}.light .projects-label .label-number{color:#00000080}.light .projects-label .label-text{color:#000000e6}.light .project-featured{background:#00000005;border-color:#0000000d}.light .project-featured:hover{background:#00000008;border-color:#0000001a}.light .project-item{background:#00000003;border-color:#00000008}.light .project-item:hover{background:#00000005;border-color:#00000014}.light .project-number{color:#0000004d}.light .project-title{color:#000000e6}.light .project-type{color:#0006}.light .project-description{color:#0009}.light .project-tag{color:#000000b3;background:#0000000d;border-color:#00000014}.light .project-tag:hover{background:#00000014;border-color:#00000026}.light .project-link{color:#000000b3}.light .project-link:hover{color:#000000e6}section{padding:var(--space-section)0;position:relative;overflow:hidden}.section-container{max-width:1200px;padding:0 var(--space-6);margin:0 auto}section+section:before{content:"";z-index:10;pointer-events:none;background:linear-gradient(90deg,transparent 0%,var(--color-border)10%,var(--color-border)90%,transparent 100%);height:1px;position:absolute;top:0;left:0;right:0}.light section+section:before{background:linear-gradient(90deg,transparent 0%,var(--light-border)10%,var(--light-border)90%,transparent 100%)}section:nth-child(2n){background:var(--color-surface-secondary)}.light section:nth-child(2n){background:var(--light-bg-secondary)}#hero{align-items:center;min-height:90vh;padding:0;display:flex}.hero-content{padding-top:var(--space-24);padding-bottom:var(--space-16)}.company-highlight{color:var(--color-primary);font-weight:600}.about-content{text-align:center}.stats-grid{gap:var(--space-6);margin-top:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;transition:all var(--transition-base)}.stat-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stat-label{font-size:var(--font-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.filter-container{margin-bottom:var(--space-12);justify-content:center;display:flex}.filter-group{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-1);gap:var(--space-1);display:inline-flex}.filter-btn{padding:var(--space-2)var(--space-6);color:var(--color-text-secondary);font-size:var(--font-sm);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-weight:500}.filter-btn:hover{color:var(--color-text-primary)}.filter-btn.active{background:var(--color-primary);color:var(--color-surface)}.projects-scroll-container{width:100%;position:relative;overflow:hidden}.projects-grid-unified{gap:var(--space-6);padding-bottom:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}@media(min-width:1024px){.projects-scroll-container{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--color-border)transparent;overflow-x:auto}.projects-scroll-container::-webkit-scrollbar{height:8px}.projects-scroll-container::-webkit-scrollbar-track{background:0 0}.projects-scroll-container::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.projects-grid-unified{grid-template-rows:1fr;grid-template-columns:repeat(auto-fill,340px);grid-auto-flow:column;width:-moz-max-content;width:max-content}}.project-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);height:420px;transition:all var(--transition-base);flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:var(--color-primary);box-shadow:0 20px 40px -10px #00000080,0 0 20px -5px var(--color-primary-surface);transform:translateY(-8px)}.project-card-image{-o-object-fit:cover;object-fit:cover;height:200px;transition:transform var(--transition-slow)}.project-card:hover .project-card-image{transform:scale(1.05)}.project-card-image-wrapper{position:relative;overflow:hidden}.project-card-placeholder{background:var(--gradient-primary);opacity:.2;width:100%;height:200px}.project-card-content{padding:var(--space-6);flex-direction:column;flex:1;display:flex}.project-card-title{font-size:var(--font-xl);margin-bottom:var(--space-2);color:var(--color-text-primary);font-weight:700}.project-card-description{font-size:var(--font-sm);color:var(--color-text-secondary);margin-bottom:auto;line-height:1.6}.project-card-footer{margin-top:var(--space-4);justify-content:space-between;align-items:center;display:flex}.project-card-tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.project-card-link{background:var(--color-primary);width:40px;height:40px;color:var(--color-surface);border-radius:var(--radius-full);transition:all var(--transition-base);justify-content:center;align-items:center;display:inline-flex}.project-card-link:hover{background:var(--color-primary-hover);transform:translate(2px)}.skills-grid-wrapper{gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));max-width:1000px;margin:0 auto;display:grid}.skill-category{text-align:center}.skill-category-title{font-size:var(--font-lg);color:var(--color-primary);margin-bottom:var(--space-4);font-weight:600}.skill-list{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.skill-tag{padding:var(--space-2)var(--space-4);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-sm);color:var(--color-text-primary);transition:all var(--transition-fast)}.skill-tag:hover{border-color:var(--color-primary);background:var(--color-primary-surface);transform:translateY(-2px)}.timeline-wrapper{max-width:800px;margin:0 auto;padding-left:120px;position:relative}.timeline-line{background:linear-gradient(180deg,var(--color-primary)0%,var(--color-border)100%);width:2px;position:absolute;top:0;bottom:0;left:80px}.timeline-item{padding-bottom:var(--space-12);position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-year{text-align:right;width:60px;font-size:var(--font-lg);color:var(--color-primary);font-weight:700;position:absolute;top:0;left:-120px}.timeline-marker{background:var(--color-surface);border:3px solid var(--color-primary);border-radius:var(--radius-full);z-index:1;width:16px;height:16px;position:absolute;top:8px;left:-88px}.timeline-item.current .timeline-marker{background:var(--color-primary);width:20px;height:20px;box-shadow:0 0 0 4px var(--color-primary-surface);top:6px;left:-90px}.timeline-content{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base)}.timeline-content:hover{border-color:var(--color-primary);transform:translate(4px)}.timeline-position{font-size:var(--font-lg);margin-bottom:var(--space-1);font-weight:700}.timeline-company{font-size:var(--font-sm);color:var(--color-primary);margin-bottom:var(--space-2)}.timeline-description{font-size:var(--font-sm);color:var(--color-text-secondary)}.light .stat-card,.light .filter-group{background:var(--light-bg-tertiary);border-color:var(--light-border)}.light .filter-btn.active{background:var(--light-accent-primary);color:#fff}.light .project-card{background:var(--light-card-bg);border-color:var(--light-border)}.light .skill-tag{background:var(--light-bg-tertiary);border-color:var(--light-border)}.light .timeline-content{background:var(--light-card-bg);border-color:var(--light-border)}.light .timeline-line{background:linear-gradient(180deg,var(--light-accent-primary)0%,var(--light-border)100%)}.light .timeline-marker{background:var(--light-bg-primary);border-color:var(--light-accent-primary)}.light .timeline-item.current .timeline-marker{background:var(--light-accent-primary)}@media(max-width:768px){.timeline-wrapper{padding-left:60px}.timeline-line{left:20px}.timeline-year{width:40px;font-size:var(--font-sm);left:-60px}.timeline-marker{left:-28px}.timeline-item.current .timeline-marker{left:-30px}}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-12{gap:3rem}.projects-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:1.5rem;max-width:80rem;margin:0 auto;display:grid}.skills-grid-wrapper{max-width:80rem;margin:0 auto}.other-projects-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:1.5rem;max-width:64rem;margin:0 auto;display:grid}.about-grid{grid-template-columns:repeat(1,minmax(0,1fr));align-items:center;gap:3rem;max-width:72rem;margin:0 auto;display:grid}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.stat-card{text-align:center;background-color:var(--light-bg-tertiary);border:1px solid var(--light-border);border-radius:var(--radius-md);padding:1rem;position:relative}.dark .stat-card{background-color:var(--dark-bg-tertiary);border-color:var(--dark-border)}.stat-number{font-size:var(--font-3xl);margin-bottom:.25rem;font-weight:700}.stat-label{font-size:var(--font-sm);color:var(--light-text-secondary)}.dark .stat-label{color:var(--dark-text-secondary)}.contact-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:3rem;max-width:72rem;margin:0 auto;display:grid}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.mx-auto{margin-left:auto;margin-right:auto}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid,.other-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3,.projects-grid,.other-projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.section-pill{border-radius:var(--radius-full);max-width:-moz-fit-content;max-width:fit-content;box-shadow:0 2px 8px 0 var(--light-shadow),0 1.5px 4px 0 var(--light-shadow-stronger);border:1px solid var(--light-card-border);background:var(--light-card-bg);color:var(--light-text-primary);letter-spacing:-.01em;justify-content:center;align-items:center;margin-bottom:2.5rem;margin-left:auto;margin-right:auto;padding:.625rem 2rem;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:700;display:flex}.dark .section-pill{box-shadow:0 2px 8px 0 var(--dark-shadow),0 1.5px 4px 0 var(--dark-shadow-stronger);border:1px solid var(--dark-card-border);background:var(--dark-bg-card);color:var(--dark-text-primary)}.section-pill h2,.section-pill h3{font-family:inherit;line-height:1;font-weight:inherit;letter-spacing:inherit;margin:0}.tag{padding:var(--space-1)var(--space-3);background-color:var(--color-surface-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-xs);letter-spacing:.025em;text-transform:capitalize;transition:all var(--transition-fast);font-weight:500;display:inline-block}.tag:hover{color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-1px)}.light .tag{background-color:var(--light-bg-tertiary);color:var(--light-text-secondary);border-color:var(--light-border)}.light .tag:hover{color:var(--light-accent-primary);border-color:var(--light-accent-primary)}.tag-container{gap:var(--space-2);flex-wrap:wrap;display:flex}.navbar{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--dark-border);transition:all var(--transition-base);z-index:50;background:#0a0a0af2;position:fixed;top:0;left:0;right:0}.light .navbar{border-bottom-color:var(--light-border);background:#fffffff2}.navbar-container{max-width:1280px;padding:0 var(--space-6);justify-content:space-between;align-items:center;height:4rem;margin:0 auto;display:flex}.navbar-brand{font-size:var(--font-xl);color:var(--dark-text-primary);transition:color var(--transition-fast);font-weight:700;text-decoration:none}.light .navbar-brand{color:var(--light-text-primary)}.navbar-brand:hover{color:var(--dark-accent-primary)}.light .navbar-brand:hover{color:var(--light-accent-primary)}.navbar-nav{align-items:center;gap:var(--space-8);margin:0;padding:0;list-style:none;display:flex}.nav-link{color:var(--dark-text-secondary);font-weight:500;font-size:var(--font-sm);letter-spacing:.025em;transition:color var(--transition-fast);text-decoration:none;position:relative}.light .nav-link{color:var(--light-text-secondary)}.nav-link:hover,.nav-link.active{color:var(--dark-accent-primary)}.light .nav-link:hover,.light .nav-link.active{color:var(--light-accent-primary)}.nav-link:after{content:"";background:var(--dark-accent-primary);width:0;height:2px;transition:width var(--transition-base);position:absolute;bottom:-4px;left:0}.light .nav-link:after{background:var(--light-accent-primary)}.nav-link:hover:after,.nav-link.active:after{width:100%}.theme-toggle{padding:var(--space-2);border:1px solid var(--dark-border);border-radius:var(--radius-md);color:var(--dark-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.light .theme-toggle{border-color:var(--light-border);color:var(--light-text-secondary)}.theme-toggle:hover{background:var(--dark-bg-secondary);border-color:var(--dark-accent-primary);color:var(--dark-accent-primary)}.light .theme-toggle:hover{background:var(--light-bg-secondary);border-color:var(--light-accent-primary);color:var(--light-accent-primary)}.mobile-menu-toggle{cursor:pointer;padding:var(--space-2);background:0 0;border:none;flex-direction:column;gap:4px;display:none}.mobile-menu-toggle span{background:var(--dark-text-primary);width:1.5rem;height:2px;transition:all var(--transition-fast)}.light .mobile-menu-toggle span{background:var(--light-text-primary)}@media(max-width:768px){.navbar-nav{display:none}.mobile-menu-toggle{display:flex}}#contact{padding:var(--space-12)0;background:var(--color-surface);align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.contact-bg-elements{pointer-events:none;z-index:0;position:absolute;inset:0}.contact-line-1{background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:250px;height:1px;position:absolute;top:25%;right:-10%;transform:rotate(-20deg)}.contact-line-2{background:linear-gradient(90deg,#0000,#ffffff0f,#0000);width:180px;height:1px;position:absolute;bottom:40%;left:-5%;transform:rotate(30deg)}.contact-dot-grid{opacity:.3;background-image:radial-gradient(circle,#ffffff05 1px,#0000 1px);background-size:5px 5px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 30% 70%,#000 20%,#0000 65%);mask-image:radial-gradient(at 30% 70%,#000 20%,#0000 65%)}.contact-content{max-width:1400px;padding:0 var(--space-6);width:100%;margin:0 auto;position:relative}.contact-label{align-items:center;gap:var(--space-4);margin-bottom:var(--space-16);text-align:center;justify-content:center;width:100%;display:inline-flex}.contact-label .label-number{font-size:var(--font-xl);color:#ffffff80;min-width:24px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:500}.contact-label .label-text{font-size:var(--font-xl);letter-spacing:.1em;text-transform:uppercase;color:#ffffffe6;font-weight:500}.contact-layout{gap:var(--space-12);text-align:center;flex-direction:column;align-items:center;max-width:800px;margin:0 auto;display:flex}.contact-info{gap:var(--space-8);flex-direction:column;display:flex}.contact-title{letter-spacing:-.03em;margin-bottom:var(--space-6);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.1}.contact-title .title-line{color:#ffffffe6;display:block}.contact-title .title-line.accent{color:#ffffff80;font-weight:400}.contact-description{color:#fff9;font-size:1rem;font-weight:300;line-height:1.7}.contact-methods{gap:var(--space-8);padding-top:var(--space-4);flex-direction:column;align-items:center;width:100%;display:flex}.contact-method{gap:var(--space-2);text-align:center;flex-direction:column;align-items:center;display:flex}.method-label{text-transform:uppercase;letter-spacing:.15em;color:#ffffff4d;font-size:.625rem;font-weight:500}.method-value{color:#fffc;transition:all var(--transition-base);cursor:pointer;font-size:.875rem;font-weight:400;text-decoration:none}.method-value:hover{color:#fff;transform:translate(2px)}.method-value.static{cursor:default;color:#fff9}.method-value.static:hover{color:#fff9;transform:none}#contact .social-links{gap:var(--space-3);flex-direction:row;justify-content:center;display:flex}#contact .social-link{text-transform:uppercase;letter-spacing:.1em;color:#ffffffb3;transition:all var(--transition-base);background:#ffffff05;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}#contact .social-link:hover{color:#ffffffe6;background:#ffffff0d;border-color:#fff3}#contact .social-link.nav-item{grid-template-columns:var(--nav-icon-col,20px)1fr;-moz-column-gap:var(--space-2);column-gap:var(--space-2);width:auto;height:auto;padding:var(--space-3)var(--space-2);border-radius:var(--radius-md);color:#fffc;background:0 0;border:none;justify-content:flex-start;align-items:center;display:grid}#contact .social-link.nav-item .nav-text{font-size:var(--font-xs);letter-spacing:.1em;text-transform:uppercase;color:#fffc;grid-column:2;font-weight:600}.light #contact .social-link.nav-item .nav-text{color:#000000b3}#contact .social-link.nav-item:hover{box-shadow:none;background:#ffffff0d;transform:none}#contact .social-link.nav-item:hover .nav-text{color:#fff}#contact .social-link.nav-item svg{width:20px;height:20px}.light #contact .social-link.nav-item{color:#000000b3;background:0 0}.light #contact .social-link.nav-item:hover{background:#0000000d}.light #contact .social-link.nav-item:hover .nav-text{color:#000}.light #contact .social-link.nav-item:hover{box-shadow:none;transform:none}#contact .social-link .link-arrow{transition:transform var(--transition-base);font-size:.875rem}#contact .social-link:hover .link-arrow{transform:translate(4px)}@media(max-width:1024px){.contact-layout{gap:var(--space-16);grid-template-columns:1fr}.contact-methods{padding-top:0}}@media(max-width:768px){#contact{min-height:auto;padding:var(--space-20)0}.contact-title{font-size:clamp(1.75rem,5vw,2.25rem)}.contact-layout{gap:var(--space-12)}.contact-methods{gap:var(--space-6)}}.contact-content [data-aos]{transition-property:transform,opacity;transition-duration:.8s;transition-timing-function:var(--easing-smooth)}.light #contact{background:var(--light-bg-primary)}.light .contact-line-1,.light .contact-line-2{background:linear-gradient(90deg,#0000,#0000000f,#0000)}.light .contact-dot-grid{background-image:radial-gradient(circle,#00000005 1px,#0000 1px)}.light .contact-label .label-number{color:#00000080}.light .contact-label .label-text,.light .contact-title .title-line{color:#000000e6}.light .contact-title .title-line.accent{color:#00000080}.light .contact-description{color:#0009}.light .method-label{color:#0000004d}.light .method-value{color:#000c}.light .method-value:hover{color:#000}.light .method-value.static,.light .method-value.static:hover{color:#0009}.light #contact .social-link{color:#000000b3;background:#00000005;border-color:#0000001a}.light #contact .social-link:hover{color:#000000e6;background:#0000000d;border-color:#0003;transform:translateY(-2px);box-shadow:0 6px 15px #0003}.hover-underline{background:currentColor;width:0;height:1px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0}a:hover .hover-underline,button:hover .hover-underline,.nav-item:hover .hover-underline{width:100%}.project-item,.project-featured{opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1);transform:translateY(30px)}.project-item.animate-in,.project-featured.animate-in{opacity:1;transform:translateY(0)}.using-keyboard :focus{outline:2px solid var(--color-primary);outline-offset:4px}.btn{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px #fff3}.light .btn:hover{box-shadow:0 8px 25px #0003}.btn:active{transform:translateY(0)}.nav-active{border-radius:var(--radius-sm);background:#ffffff1a}.light .nav-active{background:#0000001a}section{will-change:transform,opacity;transition:transform .3s,opacity .3s}::-moz-selection{color:var(--color-surface);text-shadow:none;background:#ffffff4d}::selection{color:var(--color-surface);text-shadow:none;background:#ffffff4d}.light ::-moz-selection{color:#fff;background:#0000004d}.light ::selection{color:#fff;background:#0000004d}.blur-depth{transition:filter .3s,opacity .3s}[data-parallax-speed]{will-change:transform}.floating{animation-name:float;animation-duration:var(--float-duration,3s);animation-delay:var(--float-delay,0s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.spotlight{pointer-events:none;z-index:9999;mix-blend-mode:overlay;opacity:0;background:radial-gradient(circle,#ffffff1a,#0000 70%);border-radius:50%;width:600px;height:600px;transition:opacity .3s;position:fixed}.light .spotlight{background:radial-gradient(circle,#0000000d,#0000 70%)}.click-ripple{pointer-events:none;z-index:1000;background:#ffffff4d;border-radius:50%;animation:.6s linear ripple;position:absolute;transform:scale(0)}.light .click-ripple{background:#0000004d}@keyframes ripple{to{opacity:0;transform:scale(4)}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%) 0 0/200% 100%;animation:1.5s infinite skeleton-loading}.light .skeleton{background:linear-gradient(90deg,#0000000d 25%,#0000001a,#0000000d 75%)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-title{width:60%;height:2em;margin-bottom:1em}.skeleton-button{width:120px;height:2.5em}.global-loader{background:var(--color-surface);z-index:10000;opacity:0;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s ease-out forwards fadeIn;display:flex;position:fixed;top:0;left:0}.loader-content{text-align:center;color:var(--color-text-primary)}.loader-spinner{border:2px solid #fff3;border-top-color:#fffc;border-radius:50%;width:40px;height:40px;margin:0 auto 1rem;animation:1s linear infinite spin}.light .loader-spinner{border:2px solid #0003;border-top-color:#000c}.loader-text{font-size:var(--font-sm);letter-spacing:.1em;text-transform:uppercase}.high-contrast{--color-primary:#fff;--color-text-primary:#fff;--color-text-secondary:#ccc}.high-contrast .spotlight{display:none}.fade-in-up{animation:.6s ease-out forwards fadeInUp}.fade-out-down{animation:.4s ease-in forwards fadeOutDown}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(30px)}}:focus{transition:outline .2s,box-shadow .2s}a{transition:color .3s;position:relative}a:not(.project-link):not(.social-link):not(.brand-link):hover{color:#ffffffe6}.light a:not(.project-link):not(.social-link):not(.brand-link):hover{color:#000000e6}.project-item:hover,.project-featured:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000026}.light .project-item:hover,.light .project-featured:hover{box-shadow:0 12px 40px #0000001a}.tech-item{transition:all .3s cubic-bezier(.4,0,.2,1)}.tech-item:hover{background:#ffffff1a;transform:translateY(-2px)}.light .tech-item:hover{background:#0000001a}.social-link{transition:all .3s cubic-bezier(.4,0,.2,1)}.social-link:hover{transform:translateY(-2px);box-shadow:0 6px 15px #fff3}.light .social-link:hover{box-shadow:0 6px 15px #0003}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spotlight,.floating{display:none!important}}.hero-circle,.hero-line-1,.hero-line-2,.about-line-1,.about-line-2,.projects-line-1,.projects-line-2{will-change:transform;transform:translateZ(0)}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}#minimal-hero{display:none}html.minimalist body{background:radial-gradient(1200px 800px at 20% 20%,var(--color-surface-elevated),var(--color-surface));color:var(--color-text-primary)}html.minimalist body:before{content:"";pointer-events:none;background-image:var(--gradient-noise);opacity:.03;z-index:var(--z-base);position:fixed;inset:0}html.minimalist .portfolio-body:before{content:none!important}html.light.minimalist body{background:radial-gradient(1200px 800px at 20% 20%,var(--light-bg-tertiary),var(--light-bg-primary));color:var(--light-text-primary)}html.minimalist #hero,html.minimalist #about,html.minimalist #projects,html.minimalist #contact{display:none!important}html.minimalist #minimal-hero{min-height:100svh;padding:var(--space-20)var(--space-8);place-items:center;display:grid}.minimal-hero-inner{gap:var(--space-4);text-wrap:balance;align-content:center;justify-items:center;max-width:1100px;margin:0 auto;display:grid}.minimal-topline{font-size:var(--font-xs);letter-spacing:.22em;color:var(--color-text-secondary);text-transform:uppercase;opacity:.6;animation:.7s ease-out .12s both fade-in}.minimal-tagline{letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-secondary);opacity:.8;font-size:clamp(.9rem,2.2vw,1.125rem);font-weight:400;line-height:1.2;animation:.7s ease-out .22s both fade-in}.light .minimal-tagline{color:var(--light-text-primary)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}html.minimalist .minimal-fab{top:var(--space-6);right:var(--space-6);border-radius:var(--radius-full);width:10px;height:10px;color:var(--color-text-secondary);opacity:.4;cursor:pointer;transition:opacity var(--transition-fast),color var(--transition-fast);background:currentColor padding-box content-box;border:none;padding:12px;position:fixed}html.minimalist .minimal-fab:hover,html.minimalist .minimal-fab:focus-visible{opacity:.85;color:var(--color-text-primary);outline:none}html,body{min-height:100dvh}.grid-pattern{background-image:linear-gradient(#0000000d 1px,#0000 1px),linear-gradient(90deg,#0000000d 1px,#0000 1px);background-size:50px 50px}.dark .grid-pattern{background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px)}.dot-pattern{background-image:radial-gradient(circle,#0000001a 1px,#0000 1px);background-size:20px 20px}.dark .dot-pattern{background-image:radial-gradient(circle,#ffffff1a 1px,#0000 1px)}.pulse-dot{background-color:var(--light-accent-warning);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block;position:relative}.pulse-dot:after{content:"";background-color:var(--light-accent-warning);opacity:.7;border-radius:50%;width:100%;height:100%;animation:1.5s infinite pulse;position:absolute;top:0;left:0}.dark .pulse-dot:after{background-color:var(--dark-accent-warning)}.hide-mobile{display:block}.show-mobile{display:none}@media(max-width:768px){.hide-mobile{display:none}.show-mobile{display:block}}.text-balance{text-wrap:balance}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:16/9}.aspect-portrait{aspect-ratio:3/4}.social-link{background:var(--dark-bg-secondary);border-radius:var(--radius-full);width:40px;height:40px;color:var(--dark-text-secondary);transition:all var(--transition-base);justify-content:center;align-items:center;display:inline-flex}.social-link:hover{color:#ffffffe6;background:#ffffff1a;transform:translateY(-2px)}.light .social-link{background:var(--light-bg-secondary);color:var(--light-text-secondary)}.light .social-link:hover{color:#000000e6;background:#0000001a}.social-link svg{width:1.5rem;height:1.5rem}.portfolio-body{min-height:100dvh;position:relative}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.dark body{background-color:var(--dark-bg-primary);color:var(--dark-text-primary)}.dark h2{color:var(--dark-text-primary)}.dark header{box-shadow:0 4px 15px -1px var(--dark-shadow);border-bottom:1px solid var(--dark-border);background-color:#0f0f0fe6}.dark .neumorphic-card,.dark .neumorphic-card-dark{background-color:var(--dark-bg-card);border:1px solid var(--dark-card-border);color:var(--dark-text-primary);box-shadow:8px 8px 16px #0006,-8px -8px 16px #232325}.dark .neumorphic-button,.dark .neumorphic-button-dark{background-color:var(--dark-bg-card);color:var(--dark-accent-primary);border:1px solid var(--dark-card-border);box-shadow:4px 4px 8px #0006,-4px -4px 8px #18181a}.dark .pulse-dot,.dark .pulse-dot:after{background-color:#fbbf24}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.left-1\/2{left:50%}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.container{width:100%}.mx-auto{margin-inline:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-full{width:100%}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-transparent{border-color:#0000}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-\[\'Inter\'\]{font-family:Inter}.underline{text-decoration-line:underline}.opacity-75{opacity:.75}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.\[dev\:projects\]{dev:projects}@media(hover:hover){.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
