:root{--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-surface: #f8fafc;--color-surface-raised: #ffffff;--color-border: #e3e8ef;--color-border-strong: #cbd5e1;--color-text-primary: #10161f;--color-text-secondary: #59636f;--color-accent: #0e7490;--color-accent-hover: #155e75;--color-accent-rgb: 14, 116, 144;--color-accent-contrast: #ffffff;--code-color: rgba(14, 116, 144, .55);--shadow-sm: 0 1px 2px rgba(16, 22, 31, .06), 0 1px 3px rgba(16, 22, 31, .08);--shadow-md: 0 4px 10px -2px rgba(16, 22, 31, .08), 0 12px 24px -8px rgba(16, 22, 31, .12);--shadow-lg: 0 24px 48px -12px rgba(16, 22, 31, .18);--navbar-bg: rgba(255, 255, 255, .85);--navbar-height: 64px;--transition-fast: .15s ease;--transition-normal: .3s ease;--ease-out-soft: cubic-bezier(.4, 0, .2, 1);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4.5rem;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-family-mono: "Fira Code", "SF Mono", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.0625rem;--text-lg: clamp(1.05rem, .4vw + .95rem, 1.15rem);--text-xl: clamp(1.2rem, 1vw + .95rem, 1.5rem);--text-2xl: clamp(1.5rem, 1.5vw + 1.1rem, 2rem);--text-3xl: clamp(1.875rem, 3vw + 1rem, 2.75rem);--text-4xl: clamp(2.5rem, 7vw + .5rem, 4.5rem);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 22px;--radius-full: 9999px;--z-background: -1;--z-content: 1;--z-navbar: 100;--z-mobile-menu: 200}[data-theme=dark]{--color-bg-primary: #0a0a0a;--color-bg-secondary: #1a1a1a;--color-surface: #121216;--color-surface-raised: #1b1b21;--color-border: #2a2a32;--color-border-strong: #3c3c47;--color-text-primary: #ffffff;--color-text-secondary: #a2abb5;--color-accent: #22d3ee;--color-accent-hover: #67e8f9;--color-accent-rgb: 34, 211, 238;--color-accent-contrast: #04212a;--code-color: rgba(34, 211, 238, .45);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 10px -2px rgba(0, 0, 0, .5), 0 12px 28px -10px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, .7);--navbar-bg: rgba(10, 10, 10, .85)}.section{padding:var(--spacing-3xl) var(--spacing-xl);padding-top:calc(var(--navbar-height) + var(--spacing-3xl))}.section-inner{width:100%;max-width:1100px;margin:0 auto}.section-head{text-align:center;margin:0 auto var(--spacing-2xl);max-width:640px;animation:fadeInUp .6s ease-out}.section-eyebrow{display:inline-block;font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--spacing-sm)}.section-heading{font-size:var(--text-3xl);font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--color-text-primary);margin:0}.section-sub{font-size:var(--text-lg);line-height:1.6;color:var(--color-text-secondary);margin:var(--spacing-md) 0 0}.chip{display:inline-block;padding:.3em .7em;font-size:var(--text-xs);font-weight:500;line-height:1.4;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);white-space:nowrap}.chip-accent{color:var(--color-accent);background:rgba(var(--color-accent-rgb),.08);border-color:rgba(var(--color-accent-rgb),.3)}@media(max-width:640px){.section{padding:var(--spacing-2xl) var(--spacing-md);padding-top:calc(var(--navbar-height) + var(--spacing-2xl))}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;scroll-padding-top:var(--navbar-height)}body{font-family:var(--font-family);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root{min-height:100vh}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.mobile-menu-overlay{position:fixed;inset:0;background:#0000008c;z-index:var(--z-mobile-menu);opacity:0;visibility:hidden;transition:opacity var(--transition-normal),visibility var(--transition-normal)}.mobile-menu-overlay.open{opacity:1;visibility:visible}.mobile-menu{position:absolute;top:0;right:0;bottom:0;width:min(300px,85vw);background:var(--color-bg-primary);border-left:1px solid var(--color-border);box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform var(--transition-normal);display:flex;flex-direction:column}.mobile-menu-overlay.open .mobile-menu{transform:translate(0)}.mobile-menu-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.mobile-menu-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary)}.mobile-menu-close{background:transparent;border:none;padding:var(--spacing-sm);cursor:pointer;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.mobile-menu-close:hover{background:var(--color-surface)}.mobile-menu-close svg{width:24px;height:24px}.mobile-menu-nav{flex:1;display:flex;flex-direction:column;padding:var(--spacing-md)}.mobile-nav-link{display:block;padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-md);font-weight:500;border-radius:var(--radius-md);transition:background-color var(--transition-fast),color var(--transition-fast)}.mobile-nav-link:hover,.mobile-nav-link.active{background:var(--color-surface);color:var(--color-text-primary)}.mobile-nav-link.active{color:var(--color-accent)}.mobile-menu-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.mobile-theme-toggle{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast)}.mobile-theme-toggle:hover{background:var(--color-surface-raised);border-color:var(--color-accent)}.mobile-theme-toggle svg{width:20px;height:20px}.navbar{position:fixed;top:0;left:0;right:0;height:var(--navbar-height);background:var(--navbar-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:var(--z-navbar);border-bottom:1px solid var(--color-border)}.navbar-container{width:100%;height:100%;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg)}@media(min-width:1024px){.navbar-container{padding:0 var(--spacing-xl)}}.navbar-logo{font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;white-space:nowrap;color:var(--color-text-primary);text-decoration:none;transition:color var(--transition-fast)}.navbar-logo:hover{color:var(--color-accent)}.navbar-links{display:none;list-style:none;margin:0;padding:0;gap:var(--spacing-md)}@media(min-width:1024px){.navbar-links{gap:var(--spacing-lg)}}.nav-link{display:block;color:var(--color-text-secondary);text-decoration:none;font-weight:500;font-size:var(--text-sm);white-space:nowrap;padding:var(--spacing-sm) 0;position:relative;transition:color var(--transition-fast)}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--color-accent);transition:width var(--transition-normal)}.nav-link:hover,.nav-link.active{color:var(--color-text-primary)}.nav-link.active:after,.nav-link:hover:after{width:100%}.navbar-actions{display:flex;align-items:center;gap:var(--spacing-md)}.theme-toggle{background:transparent;border:none;padding:var(--spacing-sm);cursor:pointer;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.theme-toggle:hover{background:var(--color-surface)}.theme-icon{width:22px;height:22px}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;background:transparent;border:none;padding:var(--spacing-sm);cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.hamburger:hover{background:var(--color-surface)}.hamburger span{display:block;width:22px;height:2px;background:var(--color-text-primary);border-radius:2px;transition:transform var(--transition-fast),opacity var(--transition-fast)}@media(min-width:768px){.navbar-links{display:flex}.hamburger{display:none}}.loading-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-primary);z-index:9999}.loading-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl)}.loading-name{font-size:var(--text-4xl);font-weight:800;color:var(--color-text-primary);margin:0;letter-spacing:.1em;display:flex}.loading-char{opacity:0;transform:translateY(20px);animation:charReveal .4s ease-out forwards}.loading-bar-container{width:200px;height:4px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.loading-bar{height:100%;width:0;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover));border-radius:var(--radius-full);animation:loadProgress 2.1s ease-out forwards}@keyframes charReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes loadProgress{0%{width:0}to{width:100%}}.geometric-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-background);pointer-events:none}.section-home{min-height:100vh;display:flex;align-items:center}.home-container{width:100%;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:var(--spacing-3xl);align-items:center}@media(min-width:768px){.home-container{grid-template-columns:1.05fr .95fr}}.home-content{text-align:center}@media(min-width:768px){.home-content{text-align:left}}.home-greeting{font-family:var(--font-family-mono);font-size:var(--text-sm);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin:0 0 var(--spacing-md);animation:fadeInUp .6s ease-out}.home-name{font-size:var(--text-4xl);font-weight:800;letter-spacing:-.03em;color:var(--color-text-primary);margin:0 0 var(--spacing-xs);line-height:1.02;animation:fadeInUp .6s ease-out .1s both}.home-role{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.01em;color:var(--color-text-secondary);margin:0 0 var(--spacing-lg);animation:fadeInUp .6s ease-out .2s both}.home-description{font-size:var(--text-lg);line-height:1.7;color:var(--color-text-secondary);margin:0 0 var(--spacing-lg);max-width:34rem;animation:fadeInUp .6s ease-out .3s both}.home-description .highlight{color:var(--color-text-primary);font-weight:600}.home-location{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-xl);animation:fadeInUp .6s ease-out .35s both}.home-location svg{width:16px;height:16px;flex-shrink:0;color:var(--color-accent)}@media(min-width:768px){.home-location{justify-content:flex-start}}.home-socials{display:flex;gap:var(--spacing-md);animation:fadeInUp .6s ease-out .4s both;justify-content:center}@media(min-width:768px){.home-socials{justify-content:flex-start}}.social-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary);transition:background-color var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}.social-link:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);transform:translateY(-3px)}.social-link svg{width:21px;height:21px}.home-illustration{display:flex;justify-content:center;align-items:center;animation:fadeIn 1s ease-out .5s both}.developer-scene{position:relative;width:100%;max-width:400px;aspect-ratio:1}.desk{position:absolute;bottom:20%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.monitor{width:180px;height:120px;background:var(--color-text-primary);border-radius:var(--radius-md);padding:8px;position:relative}.screen{width:100%;height:100%;background:#16181d;border-radius:var(--radius-sm);padding:10px;overflow:hidden}.code-line{height:8px;margin-bottom:6px;border-radius:2px;background:linear-gradient(90deg,var(--color-accent) 0%,transparent 0%);animation:typing 2s ease-in-out infinite}.code-line:nth-child(1){width:70%;animation-delay:0s}.code-line:nth-child(2){width:50%;animation-delay:.2s}.code-line:nth-child(3){width:80%;animation-delay:.4s}.code-line:nth-child(4){width:40%;animation-delay:.6s}.code-line:nth-child(5){width:60%;animation-delay:.8s}.cursor{width:2px;height:12px;background:var(--color-accent);animation:blink .8s infinite;margin-top:4px}.monitor-stand{width:20px;height:30px;background:var(--color-text-primary);margin-top:-2px}.keyboard{display:flex;gap:4px;margin-top:4px;padding:8px 12px;background:var(--color-text-secondary);border-radius:var(--radius-sm)}.key{width:16px;height:12px;background:var(--color-bg-secondary);border-radius:2px;animation:keyPress .3s ease infinite}.key:nth-child(1){animation-delay:0s}.key:nth-child(2){animation-delay:.1s}.key:nth-child(3){animation-delay:.2s}.key:nth-child(4){animation-delay:.15s}.key:nth-child(5){animation-delay:.25s}.person{position:absolute;bottom:35%;left:50%;transform:translate(-50%)}.head{width:40px;height:40px;background:var(--color-accent);border-radius:50%;margin:0 auto}.body{width:60px;height:50px;background:var(--color-text-secondary);border-radius:30px 30px 0 0;margin-top:-5px}.arm{position:absolute;width:12px;height:35px;background:var(--color-accent);border-radius:6px;top:45px}.left-arm{left:-5px;transform-origin:top center;animation:typeLeft .5s ease-in-out infinite alternate}.right-arm{right:-5px;transform-origin:top center;animation:typeRight .5s ease-in-out infinite alternate-reverse}.floating-elements{position:absolute;width:100%;height:100%;pointer-events:none}.float-code{position:absolute;font-family:var(--font-family-mono);font-size:1.2rem;color:var(--color-accent);opacity:.6;animation:float 3s ease-in-out infinite}.float-code:nth-child(1){top:10%;right:10%;animation-delay:0s}.float-code:nth-child(2){top:25%;left:5%;animation-delay:1s}.float-code:nth-child(3){bottom:30%;right:5%;animation-delay:2s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes typing{0%,to{background:linear-gradient(90deg,var(--color-accent) 0%,transparent 0%)}50%{background:linear-gradient(90deg,var(--color-accent) 100%,transparent 100%)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes keyPress{0%,to{transform:translateY(0)}50%{transform:translateY(2px)}}@keyframes typeLeft{0%{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes typeRight{0%{transform:rotate(5deg)}to{transform:rotate(-5deg)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-15px) rotate(5deg)}}.about-intro{display:grid;grid-template-columns:1fr;gap:var(--spacing-2xl);margin-bottom:var(--spacing-3xl)}@media(min-width:768px){.about-intro{grid-template-columns:auto 1fr;gap:var(--spacing-3xl);align-items:start}}.about-profile{display:flex;flex-direction:column;align-items:center;animation:fadeInUp .6s ease-out .1s both}.avatar{width:132px;height:132px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));display:flex;align-items:center;justify-content:center;position:relative;animation:glowPulse 4s ease-in-out infinite}.avatar:before{content:"";position:absolute;inset:-4px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),transparent,var(--color-accent-hover));z-index:-1;animation:rotateBorder 8s linear infinite}.avatar-text{font-size:2.75rem;font-weight:700;color:var(--color-accent-contrast);letter-spacing:.04em}.stats-grid{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-xl);flex-wrap:wrap;justify-content:center}.stat-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:96px;animation:fadeInUp .5s ease-out both}.stat-value{font-size:1.6rem;font-weight:700;color:var(--color-accent);line-height:1}.stat-label{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--spacing-xs);text-align:center;max-width:10ch}.about-bio{animation:fadeInUp .6s ease-out .2s both}.bio-text{font-size:var(--text-md);line-height:1.8;color:var(--color-text-secondary);margin:0 0 var(--spacing-lg)}.bio-text .highlight{color:var(--color-text-primary);font-weight:600}.education-card{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md)}.education-label{font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}.education-degree{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:var(--spacing-xs) 0 0}.education-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--spacing-xs) 0 0}.education-dates{font-family:var(--font-family-mono);font-size:var(--text-xs);padding:.15em .5em;background:var(--color-bg-secondary);border-radius:var(--radius-full)}.skills-section{animation:fadeInUp .6s ease-out .3s both}.skills-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary);text-align:center;margin:0 0 var(--spacing-xl)}.skill-groups{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media(min-width:768px){.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-group:first-child{grid-column:1 / -1}}.skill-group{padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);animation:revealCard .5s ease-out both;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.skill-group:hover{border-color:rgba(var(--color-accent-rgb),.45);box-shadow:var(--shadow-md)}.skill-group-title{font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin:0 0 var(--spacing-md)}.skill-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;margin:0;padding:0}.skill-chip{background:var(--color-surface-raised);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast),color var(--transition-fast)}.skill-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}@keyframes revealCard{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rotateBorder{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glowPulse{0%,to{box-shadow:0 0 18px rgba(var(--color-accent-rgb),.35)}50%{box-shadow:0 0 36px rgba(var(--color-accent-rgb),.6)}}.timeline{position:relative;list-style:none;margin:0;padding:0 0 0 var(--spacing-xl)}.timeline:before{content:"";position:absolute;top:.75rem;bottom:.75rem;left:5px;width:2px;background:linear-gradient(to bottom,var(--color-accent),var(--color-border) 85%,transparent)}.timeline-item{position:relative;animation:fadeInUp .6s ease-out both}.timeline-item+.timeline-item{margin-top:var(--spacing-xl)}.timeline-marker{position:absolute;top:1.6rem;left:calc(-1 * var(--spacing-xl) + 1px);width:12px;height:12px;border-radius:50%;background:var(--color-bg-primary);border:2px solid var(--color-border-strong)}.timeline-marker.is-current{border-color:var(--color-accent);background:var(--color-accent);box-shadow:0 0 0 4px rgba(var(--color-accent-rgb),.18)}.role-card{padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}.role-card:hover{border-color:rgba(var(--color-accent-rgb),.45);box-shadow:var(--shadow-md);transform:translateY(-2px)}.role-head{display:flex;flex-direction:column;gap:var(--spacing-sm);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}@media(min-width:768px){.role-head{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg)}}.role-title{font-size:var(--text-xl);font-weight:600;letter-spacing:-.01em;color:var(--color-text-primary);margin:0}.role-company{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--text-md);font-weight:600;color:var(--color-accent);margin:var(--spacing-xs) 0 0}.role-badge{font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.15em .55em;color:var(--color-accent-contrast);background:var(--color-accent);border-radius:var(--radius-full)}.role-when{display:flex;flex-direction:column;gap:2px;flex-shrink:0}@media(min-width:768px){.role-when{text-align:right}}.role-period{font-family:var(--font-family-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);white-space:nowrap}.role-location{font-size:var(--text-xs);color:var(--color-text-secondary)}.role-highlights{list-style:none;margin:0;padding:0;display:grid;gap:var(--spacing-sm)}.role-highlights li{position:relative;padding-left:1.25rem;font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary)}.role-highlights li:before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--color-accent)}.role-stack{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;margin:var(--spacing-lg) 0 0;padding:0}.download-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:var(--color-accent-contrast);font-weight:600;font-size:var(--text-base);border-radius:var(--radius-full);position:relative;overflow:hidden;transition:transform .3s var(--ease-out-soft),box-shadow .3s var(--ease-out-soft);animation:fadeInUp .6s ease-out .2s both}.download-btn:hover{color:var(--color-accent-contrast);transform:translateY(-3px);box-shadow:0 14px 28px -8px rgba(var(--color-accent-rgb),.55)}.download-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);animation:shimmer 3s infinite}.download-btn:hover .download-icon{animation:bounceDown .6s ease infinite}.download-icon{width:18px;height:18px;transition:transform .3s ease}.projects-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-lg)}@media(min-width:640px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:960px){.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card.is-featured{grid-column:span 2}}.project-card{display:flex;flex-direction:column;position:relative;padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .3s var(--ease-out-soft),box-shadow .3s var(--ease-out-soft),transform .3s var(--ease-out-soft);animation:revealCard .6s ease-out both}.project-card:after{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--color-accent),transparent);opacity:0;transition:opacity .3s ease}.project-card:hover{border-color:rgba(var(--color-accent-rgb),.45);box-shadow:var(--shadow-md);transform:translateY(-4px)}.project-card:hover:after{opacity:1}.project-index{position:absolute;top:var(--spacing-md);right:var(--spacing-lg);font-family:var(--font-family-mono);font-size:var(--text-sm);font-weight:700;color:var(--color-border-strong)}.project-context{font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent)}.project-name{font-size:var(--text-lg);font-weight:650;letter-spacing:-.01em;color:var(--color-text-primary);margin:var(--spacing-sm) 0 0;padding-right:var(--spacing-xl)}.project-summary{font-size:var(--text-sm);font-weight:600;line-height:1.6;color:var(--color-text-primary);margin:var(--spacing-sm) 0 0}.project-detail{font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary);margin:var(--spacing-sm) 0 0}.project-stack{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);list-style:none;margin:auto 0 0;padding:var(--spacing-lg) 0 0}.project-stack .chip{background:var(--color-surface-raised)}@keyframes revealCard{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{left:-100%}60%,to{left:100%}}@keyframes bounceDown{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.section-testimonials{min-height:100vh;display:flex;align-items:center}.testimonials-container{max-width:800px;margin:0 auto;width:100%}.testimonial-stack{display:flex;align-items:center;justify-content:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.nav-arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;flex-shrink:0}.nav-arrow:hover{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast);transform:scale(1.08)}.nav-arrow svg{width:24px;height:24px}.cards-container{position:relative;width:100%;max-width:500px;height:320px;perspective:1000px}.testimonial-card{position:absolute;top:0;left:0;width:100%;padding:var(--spacing-xl);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .5s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.testimonial-card:hover{transform:translateY(-5px)}.card-current{z-index:3;opacity:1;transform:translate(0) translateY(0) scale(1);box-shadow:var(--shadow-lg)}.card-next{z-index:2;opacity:.7;transform:translate(15px) translateY(10px) scale(.95);pointer-events:none}.card-behind{z-index:1;opacity:.4;transform:translate(30px) translateY(20px) scale(.9);pointer-events:none}.card-hidden{z-index:0;opacity:0;transform:translate(45px) translateY(30px) scale(.85);pointer-events:none}.quote-icon{color:var(--color-accent);opacity:.3;margin-bottom:var(--spacing-md)}.quote-icon svg{width:40px;height:40px}.testimonial-review{font-size:var(--text-md);line-height:1.7;color:var(--color-text-secondary);margin:0 0 var(--spacing-xl);flex:1;font-style:italic}.testimonial-author{display:flex;align-items:center;gap:var(--spacing-md)}.author-avatar{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));display:flex;align-items:center;justify-content:center;color:var(--color-accent-contrast);font-weight:700;font-size:var(--text-base);flex-shrink:0}.author-info{display:flex;flex-direction:column}.author-name{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.author-role{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.testimonial-dots{display:flex;justify-content:center;gap:var(--spacing-sm)}.dot{width:10px;height:10px;border-radius:50%;border:none;background:var(--color-border-strong);cursor:pointer;transition:all .3s ease;padding:0}.dot:hover{background:var(--color-text-secondary)}.dot.active{background:var(--color-accent);transform:scale(1.2)}[data-theme=dark] .testimonial-card{box-shadow:var(--shadow-md)}[data-theme=dark] .card-current{box-shadow:var(--shadow-lg)}@media(max-width:640px){.testimonial-stack{flex-direction:column;gap:var(--spacing-md)}.nav-arrow{display:none}.cards-container{height:350px}.testimonial-card{padding:var(--spacing-lg)}.card-next{transform:translate(0) translateY(10px) scale(.95)}.card-behind{transform:translate(0) translateY(20px) scale(.9)}.card-hidden{transform:translate(0) translateY(30px) scale(.85)}}.section-contact{min-height:100vh;display:flex;align-items:center;justify-content:center}.contact-container{max-width:640px;margin:0 auto;width:100%;text-align:center}.mail-button{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-lg) var(--spacing-2xl);font-size:var(--text-lg);font-weight:600;color:var(--color-accent-contrast);border-radius:60px;overflow:visible;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;animation:fadeInUp .6s ease-out .2s both}.mail-button-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));background-size:200% 200%;animation:gradientShift 4s ease infinite;z-index:0;border-radius:60px}.mail-button-bg:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);transform:translate(-100%);animation:shimmer 2.6s ease-in-out infinite;border-radius:60px}.mail-button-content{position:relative;z-index:1;display:flex;align-items:center;gap:var(--spacing-md)}.mail-icon-wrapper{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.mail-icon{width:28px;height:28px;transition:transform .3s ease;position:relative;z-index:2}.envelope-flap{transform-origin:center top;transition:transform .4s ease}.mail-letter{position:absolute;width:18px;height:14px;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);z-index:1;color:var(--color-accent)}.mail-letter svg{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.mail-button:hover{color:var(--color-accent-contrast);transform:scale(1.04) translateY(-3px);box-shadow:0 20px 40px -12px rgba(var(--color-accent-rgb),.55)}.mail-button:hover .envelope-flap{transform:rotateX(180deg)}.mail-button:hover .mail-letter{opacity:1;transform:translate(-50%,-180%);animation:letterBounce .6s ease .2s}.mail-button:hover .mail-button-bg{animation:gradientShift 1.5s ease infinite}.mail-button:active{transform:scale(.98)}.mail-button:after{content:"";position:absolute;inset:-3px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover),var(--color-accent));background-size:300% 300%;border-radius:65px;z-index:-1;opacity:0;animation:glowPulse 3s ease-in-out infinite;filter:blur(15px);transition:opacity .3s ease}.mail-button:hover:after{opacity:.6}.contact-channels{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);list-style:none;margin:var(--spacing-2xl) 0 0;padding:0;animation:fadeInUp .6s ease-out .3s both}@media(min-width:560px){.contact-channels{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-channel{display:flex;align-items:center;gap:var(--spacing-md);height:100%;padding:var(--spacing-md);text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);transition:border-color var(--transition-normal),background-color var(--transition-normal),transform var(--transition-normal)}.contact-channel:hover{color:var(--color-text-primary);border-color:var(--color-accent);background:var(--color-surface-raised);transform:translateY(-2px)}.channel-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:var(--radius-full);background:rgba(var(--color-accent-rgb),.12);color:var(--color-accent)}.channel-icon svg{width:18px;height:18px}.channel-text{display:flex;flex-direction:column;min-width:0}.channel-label{font-family:var(--font-family-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent)}.channel-value{font-size:var(--text-sm);color:var(--color-text-secondary);overflow-wrap:anywhere}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes letterBounce{0%,to{transform:translate(-50%,-180%)}30%{transform:translate(-50%,-200%)}60%{transform:translate(-50%,-175%)}}@keyframes glowPulse{0%,to{background-position:0% 50%;opacity:.4}50%{background-position:100% 50%;opacity:.7}}@media(max-width:640px){.mail-button{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--text-base)}.mail-icon-wrapper{width:28px;height:28px}.mail-icon{width:24px;height:24px}.mail-letter{width:14px;height:10px}}main{position:relative;z-index:var(--z-content)}
