.border-glow-card{--edge-proximity: 0;--cursor-angle: 45deg;--edge-sensitivity: 30;--color-sensitivity: calc(var(--edge-sensitivity) + 20);--border-radius: 12px;--glow-padding: 40px;--cone-spread: 25;position:relative;border-radius:var(--border-radius);isolation:isolate;transform:translateZ(.01px);display:grid;border:1px solid rgb(255 255 255 / 8%);background:var(--card-bg, #16161f);overflow:visible}.border-glow-card:before,.border-glow-card:after,.border-glow-card>.edge-light{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;transition:opacity .25s ease-out;z-index:-1}.border-glow-card:not(:hover):not(.sweep-active):before,.border-glow-card:not(:hover):not(.sweep-active):after,.border-glow-card:not(:hover):not(.sweep-active)>.edge-light{opacity:0;transition:opacity .75s ease-in-out}.border-glow-card:before{border:1px solid transparent;background:linear-gradient(var(--card-bg, #16161f) 0 100%) padding-box,linear-gradient(#fff0,#fff0) border-box,var(--gradient-one) border-box,var(--gradient-two) border-box,var(--gradient-three) border-box,var(--gradient-four) border-box,var(--gradient-five) border-box,var(--gradient-six) border-box,var(--gradient-seven) border-box,var(--gradient-base) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center,black calc(var(--cone-spread) * 1%),transparent calc((var(--cone-spread) + 15) * 1%),transparent calc((100 - var(--cone-spread) - 15) * 1%),black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center,black calc(var(--cone-spread) * 1%),transparent calc((var(--cone-spread) + 15) * 1%),transparent calc((100 - var(--cone-spread) - 15) * 1%),black calc((100 - var(--cone-spread)) * 1%))}.border-glow-card:after{border:1px solid transparent;background:var(--gradient-one) padding-box,var(--gradient-two) padding-box,var(--gradient-three) padding-box,var(--gradient-four) padding-box,var(--gradient-five) padding-box,var(--gradient-six) padding-box,var(--gradient-seven) padding-box,var(--gradient-base) padding-box;-webkit-mask-image:linear-gradient(to bottom,#000,#000),radial-gradient(ellipse at 50% 50%,black 40%,transparent 65%),radial-gradient(ellipse at 66% 66%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 66% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 66%,black 5%,transparent 40%),conic-gradient(from var(--cursor-angle) at center,transparent 5%,black 15%,black 85%,transparent 95%);mask-image:linear-gradient(to bottom,#000,#000),radial-gradient(ellipse at 50% 50%,black 40%,transparent 65%),radial-gradient(ellipse at 66% 66%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 66% 33%,black 5%,transparent 40%),radial-gradient(ellipse at 33% 66%,black 5%,transparent 40%),conic-gradient(from var(--cursor-angle) at center,transparent 5%,black 15%,black 85%,transparent 95%);-webkit-mask-composite:source-out,source-over,source-over,source-over,source-over,source-over;mask-composite:subtract,add,add,add,add,add;opacity:calc(var(--fill-opacity, .5) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light}.border-glow-card>.edge-light{inset:calc(var(--glow-padding) * -1);pointer-events:none;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center,black 2.5%,transparent 10%,transparent 90%,black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center,black 2.5%,transparent 10%,transparent 90%,black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.border-glow-card>.edge-light:before{content:"";position:absolute;inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color),inset 0 0 1px 0 var(--glow-color-60),inset 0 0 3px 0 var(--glow-color-50),inset 0 0 6px 0 var(--glow-color-40),inset 0 0 15px 0 var(--glow-color-30),inset 0 0 25px 2px var(--glow-color-20),inset 0 0 50px 2px var(--glow-color-10),0 0 1px 0 var(--glow-color-60),0 0 3px 0 var(--glow-color-50),0 0 6px 0 var(--glow-color-40),0 0 15px 0 var(--glow-color-30),0 0 25px 2px var(--glow-color-20),0 0 50px 2px var(--glow-color-10)}.border-glow-inner{display:flex;flex-direction:column;position:relative;overflow:auto;border-radius:inherit;z-index:1}.border-glow-inner::-webkit-scrollbar{display:none}.lightfall-container{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;overflow:hidden;z-index:0;pointer-events:none}.app{position:relative;min-height:100vh;z-index:1;background-color:var(--bg-primary)}main{overflow:hidden}.section-padding{padding:140px 0;position:relative}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all .4s cubic-bezier(.16,1,.3,1);padding:16px 0}.navbar--scrolled{background:#0a0a0fd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);padding:8px 0}.navbar__inner{display:flex;align-items:center;justify-content:space-between}.navbar__logo{display:flex;align-items:center;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.navbar__logo-dot{color:var(--accent);margin-left:1px}.navbar__links{display:flex;align-items:center;gap:32px}.navbar__link{font-size:.9rem;color:var(--text-secondary);transition:color .3s ease;position:relative}.navbar__link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--accent);transition:width .3s cubic-bezier(.16,1,.3,1)}.navbar__link:hover{color:var(--text-primary)}.navbar__link:hover:after{width:100%}.navbar__cta{padding:10px 24px;border:1px solid var(--border-accent);border-radius:8px;font-size:.9rem;color:var(--accent);transition:all .3s ease;font-weight:500}.navbar__cta:hover{background:var(--accent-glow);border-color:var(--accent);box-shadow:0 0 20px #00b4d833}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0}.hero__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(10,10,15,.4) 60%,rgba(10,10,15,.9) 100%);z-index:1}.hero__gradient{position:absolute;top:-30%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(0,180,216,.06),transparent 70%);z-index:1;pointer-events:none}.hero__content{position:relative;z-index:2;width:100%}.hero__text{max-width:720px}.hero__greeting{display:inline-block;font-family:JetBrains Mono,Microsoft YaHei,sans-serif;font-size:.9rem;color:var(--accent);margin-bottom:24px;padding:6px 14px;border:1px solid var(--border-accent);border-radius:6px;background:#00b4d80d}.hero__title{font-size:4rem;font-weight:800;line-height:1.1;margin-bottom:24px;letter-spacing:-1px}.hero__title-accent{display:block;background:linear-gradient(135deg,var(--accent),#0077b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero__subtitle{font-size:1.15rem;color:var(--text-secondary);max-width:520px;line-height:1.7;margin-bottom:40px}.hero__actions{display:flex;align-items:center;gap:16px}.hero__btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:10px;font-size:1rem;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1);cursor:pointer}.hero__btn--primary{background:var(--accent);color:#fff;border:none}.hero__btn--primary:hover{background:#00c8f0;box-shadow:0 0 30px #00b4d866;transform:translateY(-2px)}.hero__btn--outline{background:transparent;color:var(--text-primary);border:1px solid rgba(255,255,255,.15)}.hero__btn--outline:hover{border-color:#ffffff4d;background:#ffffff08}.hero__scroll{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;font-family:Inter,sans-serif;letter-spacing:2px;transition:color .3s ease}.hero__scroll:hover{color:var(--text-secondary)}.hero__scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--accent),transparent);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.6;transform:scaleY(.8)}50%{opacity:1;transform:scaleY(1)}}.about{position:relative}.about:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--border-color),transparent)}.about__header{margin-bottom:60px}.about__grid{display:grid;grid-template-columns:280px 1fr;gap:60px;align-items:start;margin-bottom:60px}.about__avatar-wrap{display:flex;justify-content:center}.about__avatar{position:relative;width:260px;height:260px;border-radius:32px;overflow:hidden}.about__avatar svg{width:100%;height:100%}.about__avatar-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:34px;border:1px solid var(--border-accent);pointer-events:none}.about__status{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 14px;background:#0a0a0fcc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;font-size:.8rem;color:var(--text-primary);white-space:nowrap}.about__status-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.about__bio{padding-top:8px}.about__name{font-size:1.6rem;font-weight:700;margin-bottom:24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.about__title-tag{font-size:.8rem;font-weight:500;padding:4px 12px;border-radius:20px;background:#00b4d81a;color:var(--accent);border:1px solid var(--border-accent)}.about__text{color:var(--text-secondary);font-size:1rem;line-height:1.8;margin-bottom:16px;max-width:620px}.about__contacts{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:28px;padding-top:24px;border-top:1px solid var(--border-color)}.about__contact-item{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary)}.about__contact-item svg{color:var(--accent);opacity:.8}.about__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.about__stat-card{padding:48px 36px;text-align:center;transition:all .3s ease}.about__stat-card:hover{transform:translateY(-2px)}.about__stat-number{display:block;font-size:2.2rem;font-weight:800;color:var(--accent);margin-bottom:6px}.about__stat-label{font-size:.85rem;color:var(--text-muted)}.projects{position:relative}.projects:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--border-color),transparent)}.projects__header{margin-bottom:60px}.projects__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.project-card{transition:all .4s cubic-bezier(.16,1,.3,1);cursor:pointer}.project-card:hover{transform:translateY(-4px)}.project-card__image{position:relative;height:280px;display:flex;align-items:center;justify-content:center;overflow:hidden}.project-card__glow{position:absolute;top:-50%;left:-50%;width:200%;height:200%;opacity:.08;border-radius:50%;filter:blur(60px);transition:opacity .5s ease}.project-card:hover .project-card__glow{opacity:.15}.project-card__icon{position:relative;z-index:1;width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#ffffff0d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08)}.project-card__tech-tag{position:absolute;top:20px;right:20px;padding:4px 12px;border-radius:6px;font-size:.75rem;font-family:JetBrains Mono,Microsoft YaHei,sans-serif;background:#ffffff0f;color:var(--text-secondary);border:1px solid rgba(255,255,255,.06)}.project-card__body{padding:28px 28px 32px}.project-card__title{font-size:1.2rem;font-weight:600;margin-bottom:12px}.project-card__desc{font-size:.9rem;color:var(--text-secondary);line-height:1.7;margin-bottom:20px}.project-card__tags{display:flex;flex-wrap:wrap;gap:8px}.project-card__tag{padding:4px 12px;border-radius:6px;font-size:.78rem;background:#ffffff0a;color:var(--text-muted);border:1px solid var(--border-color);font-family:JetBrains Mono,Microsoft YaHei,sans-serif}.skills{position:relative}.skills:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--border-color),transparent)}.skills__header{margin-bottom:60px}.skills__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.skill-card{padding:60px 48px;position:relative;transition:all .4s cubic-bezier(.16,1,.3,1)}.skill-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at top right,rgba(0,180,216,.03),transparent 70%);opacity:0;transition:opacity .4s ease}.skill-card:hover{transform:translateY(-3px)}.skill-card:hover:before{opacity:1}.skill-card__number{font-family:Microsoft YaHei,微软雅黑,sans-serif;padding-top:8px;font-size:2.2rem;font-weight:700;margin-bottom:16px;opacity:.6;line-height:1}.skill-card__title{font-size:1.05rem;font-weight:600;margin-bottom:12px;position:relative;z-index:1}.skill-card__desc{font-size:.87rem;color:var(--text-secondary);line-height:1.7;position:relative;z-index:1;margin-bottom:24px;flex:1}.skill-card__number,.skill-card__title,.skill-card__desc{padding-left:20px}.skill-card__bar{height:3px;border-radius:2px;overflow:hidden}.skill-card__bar-fill{height:100%;border-radius:2px;transition:width 1.2s cubic-bezier(.16,1,.3,1)}.skill-card__line{position:absolute;top:12px;left:-19px;width:4px;height:calc(100% - 24px);border-radius:0 2px 2px 0;opacity:.4}.contact{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.contact__bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(0,180,216,.04),transparent 50%),radial-gradient(ellipse at 80% 50%,rgba(99,102,241,.04),transparent 50%);z-index:0}.contact__content{position:relative;z-index:1;width:100%;padding:80px 0;display:flex;flex-direction:column;align-items:center;text-align:center}.contact__text{margin-bottom:60px}.contact__text .section-title{font-size:3.5rem}.contact__desc{font-size:1.05rem;color:var(--text-secondary);max-width:520px;line-height:1.8;margin:0 auto}.contact__cards{display:flex;gap:20px;margin-bottom:80px;flex-wrap:wrap;justify-content:center}.contact__card{text-decoration:none;min-width:240px;transition:all .3s ease;cursor:pointer}.contact__card:hover{transform:translateY(-2px)}.contact__card-body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px 56px}.contact__card-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#00b4d814;color:var(--accent);margin-bottom:8px}.contact__card-label{font-size:.82rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px}.contact__card-value{font-size:1rem;color:var(--text-primary);font-weight:500}.contact__footer{width:100%;padding-top:40px;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.contact__footer p{font-size:.85rem;color:var(--text-muted)}@media(max-width:1200px){.hero__title{font-size:3.2rem}.projects__grid{grid-template-columns:1fr}.about__grid{grid-template-columns:1fr;gap:40px}.about__stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.skills__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.navbar__links{display:none}.contact__text .section-title{font-size:2.4rem}}@media(max-width:600px){.hero__title{font-size:2.2rem}.section-title{font-size:2rem}.skills__grid{display:grid;grid-template-columns:1fr;gap:24px}.about__stats{grid-template-columns:1fr}.contact__cards{flex-direction:column;align-items:center}.contact__footer{flex-direction:column;gap:8px;text-align:center}}:root{--bg-primary: #0a0a0f;--bg-secondary: #111118;--bg-card: #16161f;--bg-card-hover: #1c1c28;--text-primary: #e8e8ed;--text-secondary: #888899;--text-muted: #555566;--accent: #00b4d8;--accent-dim: #0077b6;--accent-glow: rgba(0, 180, 216, .15);--border-color: rgba(255, 255, 255, .06);--border-accent: rgba(0, 180, 216, .3);--radius: 12px;--radius-lg: 20px;--max-width: 1700px;--nav-height: 72px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::selection{background:var(--accent);color:var(--bg-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{max-width:var(--max-width);margin:0 auto;padding:0 48px}@media(max-width:768px){.container{padding:0 24px}}.section-padding{padding:120px 0}.section-label{font-family:JetBrains Mono,Microsoft YaHei,sans-serif;font-size:.85rem;color:var(--accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}.section-title{font-size:2.8rem;font-weight:700;line-height:1.2;margin-bottom:20px}.section-subtitle{font-size:1.1rem;color:var(--text-secondary);max-width:600px;line-height:1.7}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-in{animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) forwards}.animate-in-delay-1{animation-delay:.1s}.animate-in-delay-2{animation-delay:.2s}.animate-in-delay-3{animation-delay:.3s}.animate-in-delay-4{animation-delay:.4s}.animate-in-delay-5{animation-delay:.5s}.animate-in-delay-6{animation-delay:.6s}.animate-in-delay-7{animation-delay:.7s}.animate-in-delay-8{animation-delay:.8s}
