:root{--font-heading: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--bg-0: #07080c;--bg-1: #0d0f16;--panel: #12141c;--line: #22252f;--indigo: #7c7ffb;--cyan: #3fd1e0;--lime: #8bffb0;--grad: linear-gradient(100deg, var(--indigo) 0%, var(--cyan) 100%);--text-hi: #f3f4f7;--text-mid: #9aa0ae;--text-low: #5c6170;--bg-deep: var(--bg-0);--bg-surface: var(--bg-1);--bg-card: rgba(18, 20, 28, .6);--violet: var(--indigo);--violet-light: var(--indigo);--violet-glow: rgba(124, 127, 251, .22);--cyan-light: var(--cyan);--cyan-glow: rgba(63, 209, 224, .22);--indigo-token: #4f46e5;--gold: #f59e0b;--gold-light: #fcd34d;--text-primary: var(--text-hi);--text-secondary: var(--text-mid);--text-muted: var(--text-low);--text-faint: #1a2238;--border: rgba(34, 37, 47, .9);--border-hover: rgba(124, 127, 251, .35);--border-cyan: rgba(63, 209, 224, .25);--radius-sm: 8px;--radius-md: 11px;--radius-lg: 14px;--radius-xl: 20px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--text-mid);background:radial-gradient(1000px 500px at 15% -10%,rgba(124,127,251,.16),transparent 60%),radial-gradient(800px 500px at 90% 10%,rgba(63,209,224,.1),transparent 55%),var(--bg-0);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(1100px 600px at 50% 0%,black 10%,transparent 70%);mask-image:radial-gradient(1100px 600px at 50% 0%,black 10%,transparent 70%);pointer-events:none;z-index:0}#root{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:0 40px 6rem}.page{position:relative}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--grad);box-shadow:0 0 8px #7c7ffb80;z-index:9999;transition:width .1s linear}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--text-hi);line-height:1.1;font-weight:700}h1{font-size:clamp(2.8rem,5.5vw,4.6rem);font-weight:700;letter-spacing:-.02em}h2{font-size:clamp(1.7rem,3.2vw,2.35rem);font-weight:700;letter-spacing:-.02em}h3{font-size:1.05rem;font-weight:600}a{color:var(--cyan);text-decoration:none}.gradient-text{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal.revealed{opacity:1;transform:none}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.nav{display:flex;align-items:center;justify-content:space-between;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:100;background:#07080ce0;backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);animation:navIn .7s cubic-bezier(.16,1,.3,1) both}@keyframes navIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}.brand{font-family:var(--font-mono);font-weight:600;font-size:17px;letter-spacing:-.02em;color:var(--text-hi);display:flex;align-items:center;gap:2px;background:none;-webkit-text-fill-color:unset}.brand:hover{opacity:.85}.brand .brand-tld{color:var(--cyan)}.brand .brand-dot{width:6px;height:6px;border-radius:50%;background:var(--lime);display:inline-block;margin-left:8px;box-shadow:0 0 8px #8bffb0cc;animation:dotPulse 2s ease-in-out infinite;flex-shrink:0}.nav-links{display:flex;align-items:center;gap:.05rem}.nav-links a:not(.social-icon){font-size:14.5px;font-weight:500;color:var(--text-mid);padding:.3rem .65rem;border-radius:6px;transition:color .2s;position:relative}.nav-links a:not(.social-icon):after{content:"";position:absolute;left:8px;right:8px;bottom:-2px;height:1px;background:var(--grad);width:0;transition:width .25s ease}.nav-links a:not(.social-icon):hover{color:var(--text-hi)}.nav-links a:not(.social-icon):hover:after{width:calc(100% - 16px)}.nav-links a.nav-active{color:var(--text-hi)}.nav-links a.nav-active:after{width:calc(100% - 16px)}.social-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.1);color:var(--text-mid);transition:color .22s ease,border-color .22s ease,background .22s ease,transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s ease;margin-left:.25rem}.social-icon:hover{color:var(--indigo);border-color:#7c7ffb8c;background:#7c7ffb1a;transform:translateY(-3px) scale(1.1);box-shadow:0 6px 20px -6px #7c7ffb73}.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem;border-radius:8px}.hamburger span{display:block;width:20px;height:1.5px;background:var(--text-mid);border-radius:2px;transition:all .3s ease}.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.nav-mobile{display:none;position:fixed;inset:0;background:#07080cf7;-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);z-index:99;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;animation:fadeIn .2s ease}.nav-mobile.open{display:flex}.nav-mobile a{font-family:var(--font-heading);font-size:2.2rem;font-weight:700;color:var(--text-hi);transition:color .2s;letter-spacing:-.02em}.nav-mobile a:hover{color:var(--cyan)}.nav-mobile-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;color:var(--text-mid);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.nav-mobile-close:hover{color:var(--cyan);border-color:var(--border-cyan)}.section-label{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--indigo);margin-bottom:.65rem;opacity:.85}.section-label-dot{width:5px;height:5px;border-radius:50%;background:var(--indigo);box-shadow:0 0 6px var(--violet-glow);animation:dotPulse 2.5s ease-in-out infinite}@keyframes dotPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.55}}.section{padding:6rem 0;border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(124,127,251,.18),rgba(63,209,224,.12),transparent) 1;position:relative}.section-head{margin-bottom:3rem;position:relative}.section-num{position:absolute;top:-2rem;right:0;font-family:var(--font-heading);font-size:clamp(5rem,10vw,8.5rem);font-weight:900;color:#7c7ffb0a;line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none;letter-spacing:-.05em}.section-head>p{color:var(--text-low);margin-top:.5rem;max-width:480px;font-size:.95rem}.section-accent{color:var(--indigo)}.section-icon{vertical-align:middle;margin-right:.4rem;color:var(--indigo)}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.75rem;position:relative;overflow:hidden;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);transition:border-color .3s ease,background .3s ease,transform .3s cubic-bezier(.34,1.4,.64,1),box-shadow .3s ease}.card:hover{background:#121622bf;border-color:#7c7ffb40;transform:translateY(-3px);box-shadow:0 10px 36px #00000073,0 0 24px #7c7ffb14}.card-shimmer{position:absolute;top:0;left:-100%;width:55%;height:100%;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.025) 50%,transparent 80%);transition:left .6s ease;pointer-events:none;z-index:0}.card:hover .card-shimmer{left:140%}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;padding:120px 0 80px;position:relative}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0;animation:blobDrift 8s ease-in-out infinite alternate}.hero:before{width:480px;height:340px;top:0;left:-80px;background:radial-gradient(ellipse,rgba(124,127,251,.18) 0%,rgba(63,209,224,.08) 60%,transparent 100%);animation-duration:9s}.hero:after{width:320px;height:260px;top:120px;left:60px;background:radial-gradient(ellipse,rgba(63,209,224,.12) 0%,rgba(124,127,251,.06) 60%,transparent 100%);animation-duration:11s;animation-delay:-3s}@keyframes blobDrift{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-15px,25px) scale(.97)}to{transform:translate(20px,-10px) scale(1.03)}}.hero-content{max-width:640px;position:relative;z-index:1}.eyebrow{font-family:var(--font-mono);font-size:13px;color:var(--cyan);display:flex;align-items:center;gap:10px;margin-bottom:22px;opacity:0;animation:rise .6s ease forwards}.eyebrow:before{content:"//";color:var(--text-low)}h1.hero-name{font-family:var(--font-heading);font-weight:700;font-size:clamp(42px,5.4vw,74px);line-height:1.02;letter-spacing:-.02em;margin:0 0 .2rem;opacity:0;animation:rise .6s ease .08s forwards}h1.hero-name .first{color:var(--text-hi)}h1.hero-name .last{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.role-line{margin-top:16px;font-family:var(--font-mono);font-size:clamp(15px,1.6vw,19px);color:var(--text-mid);display:flex;align-items:center;gap:2px;flex-wrap:wrap;min-height:2rem;opacity:0;animation:rise .6s ease .16s forwards}.role-line .kw{color:#c792ea}.role-line .str,.typed-text{color:var(--lime)}.typed-cursor,.caret{display:inline-block;width:2px;height:1em;background:var(--cyan);margin-left:2px;animation:blink 1s steps(1) infinite;vertical-align:-2px}@keyframes blink{50%{opacity:0}}.lead{margin-top:26px;font-size:16.5px;line-height:1.75;color:var(--text-mid);max-width:520px;opacity:0;animation:rise .6s ease .24s forwards}.lead strong{color:var(--text-hi);font-weight:600}.hero-actions{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;opacity:0;animation:rise .6s ease .32s forwards}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hero-profile{display:flex;align-items:center;justify-content:center;animation:rise .7s ease .2s both;position:relative;z-index:1}.editor{position:relative;width:100%}.editor-window{background:var(--panel);border:1px solid rgba(255,255,255,.04);border-radius:14px;overflow:hidden;box-shadow:0 30px 70px -20px #000000b3,0 0 0 1px #7c7ffb14,0 0 60px -20px #7c7ffb26}.editor-topbar{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:#0b0c12;border-bottom:1px solid var(--line)}.dots{display:flex;gap:7px}.dots span{width:10px;height:10px;border-radius:50%}.dots span:nth-child(1){background:#ff6159}.dots span:nth-child(2){background:#ffbd2e}.dots span:nth-child(3){background:#28c941}.filetab{font-family:var(--font-mono);font-size:11.5px;color:var(--text-low)}.editor-photo{position:relative;aspect-ratio:4 / 4.6;overflow:hidden;background:#0b0c14}.editor-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:contrast(1.04) brightness(.95) saturate(1.05)}.editor-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,8,12,.75) 100%);pointer-events:none;z-index:1}.editor-status{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#0b0c12;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:11.5px;color:var(--text-low)}.editor-status .status-left{display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 6px #8bffb0b3;display:inline-block}.float-badge{position:absolute;right:-18px;bottom:-18px;background:var(--bg-1);border:1px solid var(--line);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:10px;box-shadow:0 20px 40px -14px #0009;z-index:2}.float-badge .num{font-family:var(--font-heading);font-weight:700;font-size:20px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.float-badge .lbl{font-size:11px;color:var(--text-low);line-height:1.3}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.07);padding:38px 0 50px;list-style:none}.stats li{display:flex;flex-direction:column;gap:.2rem;padding:0 28px;border-left:1px solid rgba(255,255,255,.07);position:relative}.stats li:first-child{padding-left:0;border-left:none}.stats li:after{display:none}.stats strong{font-family:var(--font-heading);font-size:1.6rem;font-weight:700;color:var(--text-hi);letter-spacing:-.02em}.stats span{font-family:var(--font-mono);font-size:11.5px;color:var(--text-low);letter-spacing:.02em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:var(--font-body);font-size:14.5px;font-weight:600;padding:14px 26px;border-radius:11px;border:none;cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;white-space:nowrap;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.1) 50%,transparent 80%);transition:left .5s ease}.btn:hover:after{left:140%}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--grad);color:#08090d;box-shadow:0 8px 24px -8px #7c7ffb80}.btn-primary:hover{box-shadow:0 12px 28px -8px #7c7ffba6}.btn-secondary{background:transparent;color:var(--text-hi);border:1px solid var(--line)}.btn-secondary:hover{border-color:#3fd1e066;color:var(--cyan);background:#3fd1e012}.btn-ghost{background:transparent;color:var(--text-mid);border:1px solid rgba(255,255,255,.12);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease}.btn-ghost:hover{color:var(--cyan);border-color:#3fd1e080;background:#3fd1e012;box-shadow:0 0 18px -4px #3fd1e040,inset 0 0 12px -6px #3fd1e01a}.about{border-radius:0;background:none;border:none;padding:6rem 0}.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:4rem;align-items:start}.about-text p{color:var(--text-mid);margin-bottom:1.1rem;line-height:1.9;font-size:.98rem}.about-text p:last-child{margin-bottom:0}.about-facts{list-style:none;display:flex;flex-direction:column;gap:.9rem;border-left:1px solid rgba(124,127,251,.2);padding-left:1.75rem}.about-facts li{display:flex;align-items:center;gap:.6rem;color:var(--text-low);font-size:.875rem;transition:color .2s}.about-facts li:hover{color:var(--text-mid)}.about-facts li svg{color:var(--indigo);flex-shrink:0}.timeline{display:flex;flex-direction:column;gap:1.25rem;padding-left:1.75rem;border-left:1px solid rgba(124,127,251,.15)}.timeline-item{position:relative}.timeline-dot{position:absolute;left:-2.35rem;top:1.6rem;width:11px;height:11px;border-radius:50%;background:var(--cyan);border:2px solid var(--bg-0);box-shadow:0 0 0 3px #3fd1e01f,0 0 12px #3fd1e066;animation:dotGlow 3s ease-in-out infinite}.exp-dot{background:var(--indigo);box-shadow:0 0 0 3px #7c7ffb1f,0 0 12px #7c7ffb66}@keyframes dotGlow{0%,to{box-shadow:0 0 0 3px #3fd1e01f,0 0 12px #3fd1e066}50%{box-shadow:0 0 0 6px #3fd1e00f,0 0 20px #3fd1e080}}.timeline-card{padding:1.5rem 1.75rem}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:.9rem}.timeline-header h3{font-size:1rem;font-weight:600;color:var(--text-hi);margin:.2rem 0 .1rem}.edu-institution{color:var(--text-low);font-size:.85rem;margin:0}.timeline-meta{display:flex;flex-direction:column;gap:.3rem;text-align:right;flex-shrink:0}.timeline-meta span{display:inline-flex;align-items:center;justify-content:flex-end;gap:.3rem;font-size:.78rem;color:var(--text-low)}.timeline-desc{color:var(--text-low);font-size:.88rem;line-height:1.8;margin-bottom:1rem}.edu-badge{display:inline-block;background:#7c7ffb1a;border:1px solid rgba(124,127,251,.3);color:var(--indigo);padding:.15rem .7rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.06em;margin-bottom:.5rem}.edu-highlights{display:flex;flex-wrap:wrap;gap:.4rem}.edu-chip{background:#ffffff08;border:1px solid var(--line);color:var(--text-low);padding:.2rem .6rem;border-radius:6px;font-size:.75rem;transition:all .25s}.edu-chip:hover{background:#3fd1e012;border-color:var(--border-cyan);color:var(--cyan)}.exp-points{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.65rem}.exp-points li{color:var(--text-low);font-size:.875rem;line-height:1.75;padding-left:1.1rem;position:relative}.exp-points li:before{content:"";position:absolute;left:0;top:.7rem;width:4px;height:4px;border-radius:50%;background:var(--indigo);box-shadow:0 0 6px var(--violet-glow);opacity:.8}.filter-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:2rem}.filter-btn{font-family:var(--font-body);background:transparent;border:1px solid var(--line);color:var(--text-low);padding:.35rem 1rem;border-radius:999px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .25s}.filter-btn:hover{border-color:#7c7ffb4d;color:var(--indigo)}.filter-btn.active{background:#7c7ffb1a;border-color:#7c7ffb66;color:var(--indigo);box-shadow:0 0 14px #7c7ffb1f}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1rem}.project-card{cursor:pointer;display:flex;flex-direction:column}.project-card h3{font-size:.98rem;margin-bottom:.5rem;transition:color .2s}.project-card:hover h3{color:var(--indigo)}.project-card p{color:var(--text-low);font-size:.85rem;line-height:1.75;flex:1}.project-category-badge{display:inline-block;padding:.14rem .65rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.65rem;background:#3fd1e014;border:1px solid rgba(63,209,224,.25);color:var(--cyan)}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.85rem}.chips li{background:#ffffff06;border:1px solid var(--line);color:var(--text-low);padding:.2rem .6rem;border-radius:6px;font-size:.75rem;transition:all .2s;cursor:default}.chips li:hover{background:#7c7ffb12;border-color:#7c7ffb4d;color:var(--indigo)}.project-cta{display:inline-flex;align-items:center;gap:.35rem;margin-top:1rem;font-size:.8rem;font-weight:600;color:var(--cyan);opacity:0;transform:translateY(6px);transition:all .25s ease}.project-card:hover .project-cta{opacity:1;transform:none}.skill-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.skill-group-card{padding:1.75rem}.skill-group-title{display:flex;align-items:center;gap:.5rem;font-family:var(--font-heading);font-size:.95rem;font-weight:700;color:var(--text-hi);margin-bottom:1.5rem}.skill-group-icon{color:var(--indigo)}.skill-planet{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0}.skill-planet-blue{background:radial-gradient(circle at 35% 35%,#5bc4e8,#053d6e);box-shadow:0 0 8px #5bc4e880}.skill-planet-violet{background:radial-gradient(circle at 35% 35%,var(--indigo),#1a1a8a);box-shadow:0 0 8px #7c7ffb80}.skill-planet-cyan{background:radial-gradient(circle at 35% 35%,var(--cyan),#0a6ba8);box-shadow:0 0 8px #3fd1e080}.skill-bar-item{margin-bottom:1.1rem}.skill-bar-label{display:flex;justify-content:space-between;margin-bottom:.45rem;font-size:.82rem;color:var(--text-mid)}.skill-pct{color:var(--cyan);font-weight:700;font-size:.78rem}.skill-bar-track{height:4px;background:#ffffff0a;border-radius:999px;overflow:visible;position:relative}.skill-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--indigo),var(--cyan));background-size:200% 100%;animation:barShimmer 3s linear infinite;transition:width 1.4s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 0 8px #3fd1e040}@keyframes barShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skill-bar-fill:after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan),0 0 16px #3fd1e080}.contact-card{background:none;border:none;border-radius:0;padding:6rem 0}.email-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--indigo);transition:all .2s}.email-link:hover{color:var(--cyan);text-shadow:0 0 12px var(--cyan-glow)}.contact-socials{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}.contact-social-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1.1rem;border:1px solid var(--line);border-radius:9px;color:var(--text-low);font-size:.82rem;font-weight:500;transition:all .25s cubic-bezier(.34,1.4,.64,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.contact-social-btn:hover{border-color:#3fd1e04d;color:var(--cyan);background:#3fd1e012;transform:translateY(-2px);box-shadow:0 4px 20px #3fd1e01f}.contact-form{display:grid;gap:1rem;max-width:700px}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.input-group{display:flex;flex-direction:column;gap:.35rem}.input-label{font-size:.72rem;font-weight:600;color:var(--text-low);letter-spacing:.08em;text-transform:uppercase}.contact-input{width:100%;background:#0d0f1699;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-hi);font-family:var(--font-body);font-size:.92rem;padding:.75rem 1rem;transition:border-color .25s,box-shadow .25s;outline:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.contact-input::placeholder{color:var(--text-low);opacity:.45}.contact-input:hover{border-color:#7c7ffb33}.contact-input:focus{border-color:#7c7ffb80;box-shadow:0 0 0 3px #7c7ffb14}.contact-input:-webkit-autofill,.contact-input:-webkit-autofill:hover,.contact-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-hi);transition:background-color 5000s;box-shadow:0 0 0 1000px #0d0f16 inset}.contact-textarea{min-height:130px;resize:vertical}.contact-form .btn{justify-self:start;min-width:180px}.modal-overlay{position:fixed;inset:0;background:#07080ceb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.modal-content{background:#0d0f16f7;border:1px solid rgba(124,127,251,.2);border-radius:var(--radius-xl);width:100%;max-width:940px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 40px 80px #000c,0 0 60px #7c7ffb14,inset 0 1px #ffffff0a;animation:modalUp .38s cubic-bezier(.34,1.4,.64,1);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}@keyframes modalUp{0%{opacity:0;transform:translateY(32px) scale(.96)}to{opacity:1;transform:none}}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.75rem 2rem;border-bottom:1px solid var(--line)}.modal-header h2{font-size:1.3rem;margin:.3rem 0 0}.modal-close{background:transparent;border:1px solid var(--line);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-low);cursor:pointer;transition:all .25s;flex-shrink:0}.modal-close:hover{border-color:#7c7ffb66;color:var(--indigo);transform:rotate(90deg)}.modal-body{flex:1;overflow-y:auto}.project-iframe{width:100%;height:100%;min-height:420px;border:none}.modal-footer{padding:1.75rem 2rem;border-top:1px solid var(--line)}.modal-footer p{color:var(--text-low);font-size:.88rem;line-height:1.75;margin-bottom:1rem}.tech-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tech-badge{background:#7c7ffb14;border:1px solid rgba(124,127,251,.25);color:var(--indigo);padding:.25rem .75rem;border-radius:999px;font-size:.78rem;font-weight:600}.footer{margin-top:2rem;padding:2rem 0;border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(124,127,251,.2),rgba(63,209,224,.15),transparent) 1;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer p{margin:0;color:var(--text-low);font-size:.82rem}.footer-visits{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-low);font-size:.82rem}.footer-visits strong{color:var(--text-mid)}.footer-links{display:flex;gap:.7rem}.footer-links a{color:var(--text-low);transition:all .2s;display:flex;align-items:center}.footer-links a:hover{color:var(--indigo);transform:translateY(-2px);filter:drop-shadow(0 0 6px var(--violet-glow))}.back-to-top{position:fixed;bottom:2rem;right:2rem;background:#7c7ffb1f;border:1px solid rgba(124,127,251,.3);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--indigo);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px #7c7ffb40;transition:all .3s cubic-bezier(.34,1.4,.64,1);z-index:200;animation:fadeIn .3s ease}.back-to-top:hover{background:#7c7ffb38;border-color:#7c7ffb8c;transform:translateY(-5px) scale(1.1);box-shadow:0 8px 30px #7c7ffb66}.back-to-top svg{animation:rocketBob 2s ease-in-out infinite}@keyframes rocketBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(max-width:1024px){.skill-groups{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:2.5rem}.stats{grid-template-columns:repeat(2,1fr);row-gap:26px}.stats li{border-left:none;padding:0}.hero{grid-template-columns:1fr;padding:48px 0 40px}.editor{max-width:340px;margin:0 auto}.float-badge{right:8px;bottom:-16px}}@media(max-width:768px){#root{padding:0 22px 5rem}.nav{border-radius:0}.nav-links{display:none}.hamburger{display:flex}.section,.about,.contact-card{padding:4rem 0}.contact-row{grid-template-columns:1fr}.modal-overlay{align-items:flex-end;padding:0}.modal-content{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:95vh}.modal-header,.modal-footer{padding:1.25rem 1.5rem}.project-iframe{min-height:260px}}@media(max-width:640px){.stats{grid-template-columns:1fr 1fr}.skill-groups{grid-template-columns:1fr}.timeline{padding-left:1.25rem}.timeline-dot{left:-1.85rem}.timeline-header{flex-direction:column}.timeline-meta{text-align:left}.timeline-meta span{justify-content:flex-start}.footer{flex-direction:column;text-align:center}.section-num{font-size:5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
