:root{--primary: #2563eb;--primary-hover: #1d4ed8;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a}html{scroll-behavior:smooth}body{margin:0;padding:0;background-color:var(--slate-50);color:var(--slate-900);overflow-x:hidden;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.dark body{background-color:#020617;color:#f8fafc}@media print{body{display:none}}.stagger-container>*{opacity:0;transform:translateY(20px)}.stagger-container.visible>*{animation:stagger-fade-in .8s cubic-bezier(.22,1,.36,1) forwards}@keyframes stagger-fade-in{to{opacity:1;transform:translateY(0)}}.stagger-container.visible>*:nth-child(1){animation-delay:.1s}.stagger-container.visible>*:nth-child(2){animation-delay:.2s}.stagger-container.visible>*:nth-child(3){animation-delay:.3s}.stagger-container.visible>*:nth-child(4){animation-delay:.4s}.stagger-container.visible>*:nth-child(5){animation-delay:.5s}.marquee-container{overflow:hidden;white-space:nowrap;position:relative;width:100%}.marquee-content{display:inline-block;animation:marquee 30s linear infinite}.marquee-content:hover{animation-play-state:paused}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.glass-effect{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.dark .glass-effect{background:#0f172a4d}.reveal-up{opacity:0;transform:translateY(30px);will-change:transform,opacity}.case-study-active .reveal-up{animation:reveal-up 1s cubic-bezier(.16,1,.3,1) forwards}@keyframes reveal-up{to{opacity:1;transform:translateY(0)}}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--slate-300);border-radius:10px}.dark ::-webkit-scrollbar-thumb{background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:var(--primary)}:root{--hero-primary: #2563eb;--hero-secondary: #7c3aed}.hero-content{will-change:transform,opacity}.hero-ambient-orb{position:absolute;border-radius:50%;filter:blur(100px);z-index:-1;pointer-events:none}.orb-1{top:-10%;right:-5%;width:600px;height:600px;background:radial-gradient(circle,rgba(37,99,235,.15) 0%,transparent 70%);animation:orb-float 20s infinite alternate ease-in-out}.orb-2{bottom:-20%;left:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(124,58,237,.1) 0%,transparent 70%);animation:orb-float 25s infinite alternate-reverse ease-in-out}@keyframes orb-float{0%{transform:translate(0) scale(1)}to{transform:translate(100px,50px) scale(1.2)}}.light-beam{position:absolute;top:-50%;left:20%;width:2px;height:200%;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.05),transparent);transform:rotate(35deg);pointer-events:none;z-index:-1}.hero-title-mask{display:inline-block;overflow:hidden;vertical-align:bottom}.hero-title-line{display:block;transform:translateY(110%);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.hero-title-line.active{transform:translateY(0)}.premium-glass{background:#ffffff08;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);box-shadow:0 40px 100px -20px #0000004d;transition:all .5s cubic-bezier(.16,1,.3,1)}.premium-glass:hover{background:#ffffff0f;border-color:#2563eb4d;transform:translateY(-5px) scale(1.01)}.focus-item{transition:all .4s cubic-bezier(.16,1,.3,1)}.focus-item:hover{background:#2563eb1a;padding-left:20px}.hero-grid-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(to bottom,black,transparent);mask-image:linear-gradient(to bottom,black,transparent);z-index:-1;pointer-events:none}.scroll-indicator{position:absolute;bottom:0;left:0;height:60px;width:1px;background:linear-gradient(to bottom,var(--hero-primary),transparent);animation:scroll-line 2s infinite}@keyframes scroll-line{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.marquee-container{overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(to right,transparent,black 15%,black 85%,transparent);mask-image:linear-gradient(to right,transparent,black 15%,black 85%,transparent)}.marquee-content{display:flex;width:max-content;animation:scroll-x 40s linear infinite}@keyframes scroll-x{0%{transform:translate(0)}to{transform:translate(-50%)}}.skill-card{background:#ffffff05;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.05);transition:all .6s cubic-bezier(.16,1,.3,1)}.skill-card:hover{background:#ffffff0d;border-color:#2563eb4d;transform:translateY(-8px)}.skill-badge{background:#2563eb14;border:1px solid rgba(37,99,235,.2);color:#3b82f6;font-weight:800;transition:all .3s ease}.skill-badge:hover{background:#3b82f6;color:#fff;transform:scale(1.1);box-shadow:0 0 15px #3b82f666}.line-accent{position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,#3b82f6,transparent);opacity:.3}.group:hover .line-accent{opacity:1;box-shadow:0 0 20px #3b82f680}.learning-box{background:#ffffff05;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .6s cubic-bezier(.16,1,.3,1)}.learning-box:hover{background:#2563eb0a;border-color:#2563eb33;transform:translateY(-8px)}.progress-orbit{width:60px;height:60px;border-radius:50%;border:2px solid rgba(37,99,235,.1);position:relative;display:flex;align-items:center;justify-content:center}.progress-orbit:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;border:2px solid transparent;border-top-color:#3b82f6;animation:orbit-spin 3s linear infinite}@keyframes orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.topic-badge{background:#0f172a;border:1px solid rgba(255,255,255,.05);padding:12px 20px;border-radius:16px;display:flex;align-items:center;gap:12px;transition:all .4s ease}.topic-badge:hover{background:#3b82f6;color:#fff;transform:scale(1.05)}.growth-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:300px;background:radial-gradient(circle,rgba(37,99,235,.08) 0%,transparent 70%);pointer-events:none}.projects-marquee-container{width:100%;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}.projects-marquee-content{display:flex;gap:2rem;width:max-content;animation:project-scroll 60s linear infinite;will-change:transform}.projects-marquee-content:hover{animation-play-state:paused}@keyframes project-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.project-card-premium{transition:all .5s cubic-bezier(.16,1,.3,1);transform-origin:center}.projects-marquee-content:hover .project-card-premium:not(:hover){opacity:.4;filter:blur(2px) grayscale(.5);scale:.95}.project-card-premium:hover{scale:1.02;z-index:10}.benchmark-card{background:#ffffff05;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .6s cubic-bezier(.16,1,.3,1)}.benchmark-card:hover{background:#2563eb0a;border-color:#2563eb4d}.score-ring{width:80px;height:80px;border-radius:50%;border:4px solid rgba(34,197,94,.1);position:relative;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:#22c55e}.score-ring:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:4px solid transparent;border-top-color:#22c55e;transform:rotate(45deg)}.metric-pill{background:#2563eb0d;border:1px solid rgba(37,99,235,.1);padding:8px 16px;border-radius:12px}.impact-number{font-size:32px;font-weight:900;letter-spacing:-.05em;line-height:1;background:linear-gradient(to bottom,#fff,#94a3b8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.bench-header-badge{background:#22c55e1a;color:#22c55e;padding:4px 10px;border-radius:6px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.scanline-effect{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 50%,rgba(37,99,235,.02) 50%);background-size:100% 4px;pointer-events:none}.exp-dot{width:12px;height:12px;border-radius:50%;background:#2563eb;position:absolute;left:-7px;top:0;box-shadow:0 0 15px #2563eb80}.exp-card{background:#ffffff05;border:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .5s cubic-bezier(.16,1,.3,1)}.exp-card:hover{background:#2563eb08;border-color:#2563eb33;transform:translate(10px)}.timeline-line{position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,#2563eb,transparent);opacity:.2}.exp-badge{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.2em;padding:4px 12px;background:#2563eb1a;color:#2563eb;border-radius:9999px}.contact-terminal{background:#0a0f1ecc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.05);box-shadow:0 40px 100px -20px #00000080}.terminal-header{background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.05)}.dot{width:8px;height:8px;border-radius:50%}.btn-contact-main{position:relative;overflow:hidden;background:#2563eb;color:#fff;transition:all .5s cubic-bezier(.16,1,.3,1)}.btn-contact-main:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn-contact-main:hover:after{left:100%}.glow-input:focus{background:#fff!important;box-shadow:0 0 30px #2563eb1a}.dark .glow-input:focus{background:#ffffff0d!important;box-shadow:0 0 30px #2563eb33}.social-link-item{width:50px;height:50px;border-radius:12px;background:#0f172a0d;border:1px solid rgba(15,23,42,.05);display:flex;align-items:center;justify-content:center;transition:all .4s ease}.dark .social-link-item{background:#ffffff08;border-color:#ffffff0d}.social-link-item:hover{background:#2563eb;color:#fff;transform:translateY(-5px) rotate(8deg);border-color:#2563eb}:root{--cursor-primary: #2563eb;--cursor-secondary: #60a5fa;--cursor-glow: rgba(37, 99, 235, .4)}.custom-cursor-active,.custom-cursor-active *{cursor:none!important}@media(pointer:coarse){.custom-cursor-active,.custom-cursor-active *{cursor:auto!important}.cursor-wrapper{display:none!important}}.cursor-wrapper{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;pointer-events:none}.cursor-dot{position:fixed;width:8px;height:8px;background:var(--cursor-primary);border-radius:50%;transform:translate(-50%,-50%);z-index:10001;transition:transform .3s cubic-bezier(.175,.885,.32,1.275),background-color .3s ease,width .3s ease,height .3s ease,border-radius .3s ease;box-shadow:0 0 10px var(--cursor-glow)}.cursor-follower{position:fixed;width:40px;height:40px;border:1.5px solid rgba(37,99,235,.3);border-radius:50%;transform:translate(-50%,-50%);z-index:10000;transition:width .5s cubic-bezier(.175,.885,.32,1.275),height .5s cubic-bezier(.175,.885,.32,1.275),border-color .5s ease,background-color .5s ease,opacity .5s ease,transform .1s linear;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:transparent}.hovering .cursor-dot{transform:translate(-50%,-50%) scale(.6);background-color:#fff;box-shadow:0 0 15px #fffc}.hovering .cursor-follower{width:80px;height:80px;background-color:#2563eb14;border-color:#2563eb;border-width:1px}.clicking .cursor-dot{transform:translate(-50%,-50%) scale(2.5);background-color:#fff;opacity:.8}.clicking .cursor-follower{width:20px;height:20px;background-color:var(--cursor-primary);border-color:#fff;opacity:1;transform:translate(-50%,-50%) scale(1)}.text-mode .cursor-dot{height:24px;width:2px;border-radius:1px;background-color:var(--cursor-primary);box-shadow:0 0 8px var(--cursor-glow)}.text-mode .cursor-follower{width:4px;height:30px;border-radius:2px;opacity:.2;border:none;background-color:var(--cursor-primary)}.cursor-dot,.cursor-follower{mix-blend-mode:difference}.dark .cursor-dot,.dark .cursor-follower{mix-blend-mode:normal}@keyframes loading-fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes title-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes code-typing{0%{width:0}to{width:100%}}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px #3b82f633}50%{box-shadow:0 0 40px #3b82f666}}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.animate-loading-in{animation:loading-fade-in-up .6s cubic-bezier(.16,1,.3,1) forwards}.title-glow{background:linear-gradient(90deg,#fff,#3b82f6,#8b5cf6,#3b82f6,#fff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:title-shimmer 3s linear infinite}.code-container{position:relative;background:#0a0f1ef2;border:1px solid rgba(255,255,255,.05);box-shadow:0 25px 50px -12px #00000080;animation:glow-pulse 4s infinite}.code-container:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:linear-gradient(to bottom,transparent,rgba(59,130,246,.05),transparent);pointer-events:none;animation:scanline 4s linear infinite}.line-animate{display:inline-block;overflow:hidden;white-space:nowrap;width:0;animation:code-typing .3s steps(40) forwards}.typing-cursor{display:inline-block;width:8px;height:15px;background:#3b82f6;margin-left:4px;vertical-align:middle;animation:cursor-blink .8s infinite}.syn-keyword{color:#c678dd}.syn-func{color:#61afef}.syn-str{color:#98c379}.syn-var,.syn-bool{color:#d19a66}.syn-comment{color:#5c6370;font-style:italic}.syn-punct{color:#abb2bf}.load-bar-fill{animation:bar-reveal 3s cubic-bezier(.65,0,.35,1) forwards}@keyframes bar-reveal{0%{width:0%}to{width:100%}}
