:root{--bg: #05060f;--bg-2: #0a0d1f;--panel: rgba(13, 17, 35, .72);--line: rgba(0, 240, 255, .22);--line-strong: rgba(0, 240, 255, .55);--cyan: #00f0ff;--pink: #ff2a6d;--purple: #b537f2;--yellow: #ffe14d;--text: #dfe6ff;--muted: #8b93b8;--mono: "Cascadia Code", "Consolas", "Courier New", monospace;--sans: "Segoe UI", "Microsoft YaHei", "PingFang SC", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--sans);color:var(--text);background:radial-gradient(1100px 560px at 88% -8%,rgba(181,55,242,.12),transparent 60%),radial-gradient(900px 500px at -8% 32%,rgba(0,240,255,.07),transparent 55%),var(--bg);overflow-x:hidden}::selection{background:var(--cyan);color:#03110f}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--cyan),var(--purple));border-radius:4px}img{max-width:100%}a{-webkit-tap-highlight-color:transparent}.container{max-width:1700px;margin:0 auto;padding:0 48px}.scanlines{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px);opacity:.55}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 48px;border-bottom:1px solid transparent;transition:background .3s,border-color .3s,box-shadow .3s}.nav.scrolled{background:#050814d1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--line);box-shadow:0 0 32px #00f0ff14}.nav-logo{font-family:var(--mono);font-size:21px;font-weight:700;letter-spacing:2px;color:#fff;text-decoration:none}.nav-logo b{color:var(--cyan);text-shadow:0 0 14px rgba(0,240,255,.8)}.nav-links{display:flex;gap:38px}.nav-links a{font-family:var(--mono);font-size:13.5px;letter-spacing:3px;color:var(--muted);text-decoration:none;padding:6px 2px;border-bottom:1px solid transparent;transition:color .2s,text-shadow .2s,border-color .2s}.nav-links a:hover{color:var(--cyan);text-shadow:0 0 12px rgba(0,240,255,.9);border-bottom-color:var(--cyan)}.nav-cta{font-family:var(--mono);font-size:13px;letter-spacing:2px;color:var(--cyan);text-decoration:none;padding:11px 24px;border:1px solid var(--cyan);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);box-shadow:inset 0 0 14px #00f0ff24,0 0 14px #00f0ff47;transition:background .25s,color .25s,box-shadow .25s}.nav-cta:hover{background:var(--cyan);color:#03110f;box-shadow:0 0 30px #00f0ffbf}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.cyber-grid,.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(1000px 560px at 50% 42%,transparent 25%,rgba(5,6,15,.5) 78%),linear-gradient(180deg,rgba(5,6,15,.55),transparent 28%,transparent 62%,var(--bg) 99%)}.hero-inner{position:relative;z-index:2;text-align:center;padding-top:60px}.hero-eyebrow{font-family:var(--mono);font-size:13.5px;letter-spacing:5px;color:var(--cyan);text-shadow:0 0 12px rgba(0,240,255,.7);margin:0 0 26px}.hero h1{margin:0;font-size:clamp(76px,10vw,158px);font-weight:900;line-height:1.05;letter-spacing:10px;color:#fff;text-shadow:0 0 34px rgba(0,240,255,.35),0 0 70px rgba(255,42,109,.22)}.hero-role{margin:20px 0 30px;font-family:var(--mono);font-size:clamp(17px,2vw,24px);letter-spacing:6px;color:var(--text)}.hero-role i{color:var(--pink);font-style:normal;margin:0 10px}.hero-role span{color:transparent;-webkit-text-stroke:1px var(--cyan)}.hero-typed{font-family:var(--mono);font-size:clamp(15px,1.6vw,20px);letter-spacing:2px;color:var(--yellow);text-shadow:0 0 12px rgba(255,225,77,.4);min-height:1.8em;margin:0}.hero-typed .prompt{color:var(--cyan)}.caret{display:inline-block;width:10px;height:1.15em;margin-left:8px;vertical-align:-.18em;background:var(--cyan);box-shadow:0 0 10px var(--cyan);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.hero-actions{margin-top:52px;display:flex;gap:22px;justify-content:center;flex-wrap:wrap}.btn{display:inline-block;font-family:var(--mono);font-size:15px;letter-spacing:3px;text-decoration:none;padding:17px 44px;transition:transform .25s,box-shadow .25s,background .25s,color .25s,border-color .25s}.btn-neon{color:#03110f;background:var(--cyan);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);box-shadow:0 0 26px #00f0ff73}.btn-neon:hover{transform:translateY(-3px);box-shadow:0 0 48px #00f0ffcc}.btn-ghost{color:var(--pink);border:1px solid var(--pink);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px)}.btn-ghost:hover{background:var(--pink);color:#fff;transform:translateY(-3px);box-shadow:0 0 36px #ff2a6da6}.hud{position:absolute;width:52px;height:52px;border:2px solid var(--line-strong);opacity:.75;z-index:2;animation:hudPulse 4s ease-in-out infinite}.hud.tl{top:100px;left:40px;border-right:0;border-bottom:0}.hud.tr{top:100px;right:40px;border-left:0;border-bottom:0}.hud.bl{bottom:44px;left:40px;border-right:0;border-top:0}.hud.br{bottom:44px;right:40px;border-left:0;border-top:0}@keyframes hudPulse{50%{opacity:.3}}.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translate(-50%);z-index:2;font-family:var(--mono);font-size:11px;letter-spacing:5px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}.scroll-line{width:1px;height:44px;background:linear-gradient(180deg,var(--cyan),transparent);animation:scrollDrop 1.8s ease-in-out infinite}@keyframes scrollDrop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.glitch{position:relative;display:inline-block}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;pointer-events:none}.glitch:before{color:var(--cyan);z-index:-1;animation:glitchA 3.1s infinite linear alternate-reverse}.glitch:after{color:var(--pink);z-index:-2;animation:glitchB 3.7s infinite linear alternate-reverse}@keyframes glitchA{0%,84%,to{transform:none;clip-path:inset(0 0 0 0)}86%{transform:translate(-7px,3px);clip-path:inset(8% 0 58% 0)}90%{transform:translate(6px,-2px);clip-path:inset(62% 0 6% 0)}94%{transform:translate(-4px,1px);clip-path:inset(32% 0 42% 0)}}@keyframes glitchB{0%,88%,to{transform:none;clip-path:inset(0 0 0 0)}89%{transform:translate(7px,-3px);clip-path:inset(42% 0 28% 0)}93%{transform:translate(-6px,2px);clip-path:inset(4% 0 72% 0)}97%{transform:translate(5px);clip-path:inset(72% 0 4% 0)}}.section{position:relative;padding:130px 0 90px;scroll-margin-top:60px}.sec-head{display:flex;align-items:baseline;gap:26px;flex-wrap:wrap;margin-bottom:66px}.sec-index{font-family:var(--mono);font-size:15px;letter-spacing:3px;color:var(--pink);text-shadow:0 0 12px rgba(255,42,109,.7)}.sec-title{margin:0;font-size:clamp(38px,4vw,56px);font-weight:800;letter-spacing:3px;color:#fff}.sec-line{flex:1;min-width:90px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}.sec-en{font-family:var(--mono);font-size:13px;letter-spacing:5px;color:var(--muted);text-transform:uppercase}.about-grid{display:grid;grid-template-columns:440px 1fr;gap:76px;align-items:start}.avatar-wrap{position:relative;padding:0 6px}.avatar-frame{padding:3px;background:linear-gradient(135deg,var(--cyan),var(--purple) 55%,var(--pink));clip-path:polygon(9% 0,91% 0,100% 12%,100% 88%,91% 100%,9% 100%,0 88%,0 12%);box-shadow:0 0 44px #00f0ff38}.avatar-inner{position:relative;overflow:hidden;background:var(--bg-2);clip-path:polygon(9% 0,91% 0,100% 12%,100% 88%,91% 100%,9% 100%,0 88%,0 12%)}.avatar-img{display:block;width:100%;filter:grayscale(.92) contrast(1.14) brightness(.9)}.avatar-tint{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:multiply;pointer-events:none}.avatar-tint.t1{background:linear-gradient(160deg,#00c8e0,#00f0ff14 60%)}.avatar-tint.t2{background:linear-gradient(20deg,#e01e5f,#ff2a6d14 60%)}.avatar-scan{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,rgba(3,6,15,.28) 0 2px,transparent 2px 5px);pointer-events:none}.avatar-scan:after{content:"";position:absolute;left:0;right:0;height:96px;background:linear-gradient(180deg,transparent,rgba(0,240,255,.3),transparent);animation:sweep 3.4s linear infinite}@keyframes sweep{0%{top:-30%}to{top:110%}}.avatar-chip{position:absolute;font-family:var(--mono);font-size:12px;letter-spacing:2px;padding:7px 14px;background:#050814d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.chip-tl{top:22px;left:-16px;color:var(--cyan);border:1px solid var(--line-strong);text-shadow:0 0 8px rgba(0,240,255,.7)}.chip-br{bottom:22px;right:-16px;color:var(--pink);border:1px solid rgba(255,42,109,.55);text-shadow:0 0 8px rgba(255,42,109,.7)}.avatar-status{margin-top:24px;text-align:center;font-family:var(--mono);font-size:13px;letter-spacing:3px;padding:12px;border:1px dashed var(--line-strong);color:var(--text)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px;background:#2f8;box-shadow:0 0 12px #2f8;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.about-name{font-size:30px;font-weight:800;color:#fff;letter-spacing:2px;margin:0 0 18px}.about-name span{font-family:var(--mono);font-size:15px;font-weight:400;color:var(--muted);letter-spacing:4px}.about-intro{font-size:17px;line-height:2.05;color:var(--text);margin:0 0 14px}.about-contacts{display:flex;flex-wrap:wrap;gap:13px;margin:30px 0 10px}.contact-chip{font-family:var(--mono);font-size:13.5px;letter-spacing:1px;color:var(--text);border:1px solid var(--line);background:var(--panel);padding:11px 18px}.contact-chip b{color:var(--cyan);margin-right:10px}.tl-heading{font-family:var(--mono);font-size:13px;letter-spacing:4px;color:var(--pink);text-shadow:0 0 10px rgba(255,42,109,.6);margin:34px 0 20px}.timeline{list-style:none;margin:0;padding:0 0 0 4px;border-left:2px solid rgba(0,240,255,.25)}.timeline li{position:relative;padding:0 0 30px 30px}.timeline li:before{content:"◈";position:absolute;left:-10px;top:1px;font-size:13px;color:var(--cyan);text-shadow:0 0 10px var(--cyan);background:var(--bg)}.tl-time{font-family:var(--mono);font-size:13px;letter-spacing:2px;color:var(--pink)}.tl-title{margin:5px 0 4px;font-size:17px;font-weight:700;color:#fff;letter-spacing:1px}.tl-desc{margin:0;font-size:14.5px;color:var(--muted);line-height:1.8}.stats{margin-top:76px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.stat{position:relative;padding:32px 28px;border:1px solid var(--line);background:linear-gradient(180deg,#0d1123eb,#080a18b3);clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));transition:transform .3s,border-color .3s,box-shadow .3s}.stat:after{content:"";position:absolute;top:0;left:0;width:44%;height:2px;background:linear-gradient(90deg,var(--cyan),transparent)}.stat:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 0 36px #00f0ff29}.stat b{display:block;font-family:var(--mono);font-size:54px;font-weight:800;color:#fff;text-shadow:0 0 22px rgba(0,240,255,.55);line-height:1.1}.stat b i{font-style:normal;font-size:28px;color:var(--cyan);margin-left:4px}.stat span{display:block;margin-top:8px;font-size:14px;letter-spacing:1px;color:var(--muted)}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.proj-card{position:relative;overflow:hidden;padding:44px 46px;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .3s,border-color .3s,box-shadow .3s}.proj-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--purple),var(--pink));transform:scaleX(0);transform-origin:left;transition:transform .45s}.proj-card:hover:before{transform:scaleX(1)}.proj-card:hover{transform:translateY(-7px);border-color:var(--line-strong);box-shadow:0 20px 55px #00000080,0 0 38px #00f0ff21}.proj-index{position:absolute;top:18px;right:32px;font-family:var(--mono);font-size:86px;font-weight:800;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(0,240,255,.35);pointer-events:none;transition:-webkit-text-stroke-color .3s}.proj-card:hover .proj-index{-webkit-text-stroke-color:rgba(255,42,109,.6)}.proj-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding-right:110px}.proj-role-tag{font-family:var(--mono);font-size:12.5px;letter-spacing:1px;color:var(--cyan)}.proj-period{font-family:var(--mono);font-size:12.5px;letter-spacing:2px;color:var(--pink)}.proj-title{margin:0 0 16px;font-size:31px;font-weight:800;letter-spacing:1.5px;color:#fff}.proj-desc{margin:0 0 20px;font-size:15.5px;line-height:1.95;color:var(--text)}.proj-highlights{list-style:none;margin:0 0 22px;padding:0}.proj-highlights li{position:relative;padding-left:26px;margin-bottom:10px;font-size:14.5px;line-height:1.8;color:var(--muted)}.proj-highlights li:before{content:"▸";position:absolute;left:2px;color:var(--cyan);text-shadow:0 0 8px rgba(0,240,255,.7)}.proj-tags{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}.proj-tags span{font-family:var(--mono);font-size:12px;letter-spacing:1px;color:var(--cyan);border:1px solid rgba(0,240,255,.32);background:#00f0ff0f;padding:5px 13px}.proj-pm{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 24px;padding:12px 14px;border:1px dashed rgba(255,225,77,.4);background:#ffe14d0d}.proj-pm .pm-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:2px;color:var(--yellow);border:1px solid rgba(255,225,77,.55);padding:3px 9px;margin-right:4px;text-shadow:0 0 8px rgba(255,225,77,.5)}.proj-pm span{font-family:var(--mono);font-size:12.5px;letter-spacing:1px;color:var(--text)}.proj-pm span:before{content:"·";margin-right:8px;color:var(--yellow)}.proj-pm .pm-label:before{content:none}.proj-footer{display:flex;justify-content:space-between;align-items:center;padding-top:22px;border-top:1px dashed rgba(0,240,255,.22)}.proj-link{font-family:var(--mono);font-size:14px;letter-spacing:2px;color:var(--yellow);text-decoration:none;transition:text-shadow .25s}.proj-link:hover{text-shadow:0 0 14px rgba(255,225,77,.8)}.proj-link.muted{color:var(--muted)}.proj-status{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--muted)}.proj-status:before{content:"●";margin-right:9px;color:#2f8;text-shadow:0 0 10px #22ff88}.projects-grid .proj-card:last-child:nth-child(odd){grid-column:span 2}.strengths-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}.strengths-grid .str-card:last-child:nth-child(odd){grid-column:span 2}.str-card{position:relative;padding:40px 34px;border:1px solid var(--line);background:var(--panel);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);transition:transform .3s,border-color .3s,box-shadow .3s}.str-card:hover{transform:translateY(-6px);border-color:#ff2a6d99;box-shadow:0 0 40px #ff2a6d26}.str-code{position:absolute;top:18px;right:24px;font-family:var(--mono);font-size:11.5px;letter-spacing:2px;color:var(--muted)}.str-icon{font-size:42px;margin-bottom:20px;filter:drop-shadow(0 0 14px rgba(0,240,255,.55))}.str-title{margin:0 0 13px;font-size:21px;font-weight:700;letter-spacing:1.5px;color:#fff}.str-desc{margin:0;font-size:14.5px;line-height:1.9;color:var(--muted)}.contact{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;border-top:1px solid var(--line);padding:120px 0 0}.contact:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(760px 400px at 50% 58%,rgba(0,240,255,.09),transparent 65%),repeating-linear-gradient(90deg,rgba(0,240,255,.045) 0 1px,transparent 1px 96px),repeating-linear-gradient(0deg,rgba(0,240,255,.045) 0 1px,transparent 1px 96px);pointer-events:none}.contact-inner{position:relative;z-index:1;text-align:center}.contact-eyebrow{font-family:var(--mono);font-size:13.5px;letter-spacing:5px;color:var(--cyan);text-shadow:0 0 12px rgba(0,240,255,.6);margin:0 0 30px}.contact-title{margin:0;font-size:clamp(64px,8vw,124px);font-weight:900;letter-spacing:12px;color:#fff;text-shadow:0 0 36px rgba(0,240,255,.35),0 0 72px rgba(255,42,109,.22)}.contact-sub{margin:30px 0 0;font-size:17.5px;line-height:2.1;color:var(--muted);letter-spacing:1px}.contact-cards{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:60px}.c-card{min-width:300px;padding:34px 42px;text-align:center;text-decoration:none;color:var(--text);border:1px solid var(--line);background:var(--panel);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);transition:transform .3s,border-color .3s,box-shadow .3s}.c-card:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:0 0 38px #00f0ff2e}.c-card span{font-size:32px}.c-card b{display:block;margin:12px 0 6px;font-size:15px;letter-spacing:3px;color:#fff}.c-card i{font-style:normal;font-family:var(--mono);font-size:14px;letter-spacing:1px;color:var(--cyan)}.contact-meta{margin:64px 0 80px;font-family:var(--mono);font-size:12px;letter-spacing:3px;color:var(--muted);opacity:.8}.footer{position:relative;z-index:1;margin-top:auto;padding:28px 48px;border-top:1px solid var(--line);text-align:center;font-family:var(--mono);font-size:12.5px;letter-spacing:2px;color:var(--muted)}.footer p{margin:5px 0}.footer a{color:var(--muted);text-decoration:none}.reveal{opacity:0;transform:translateY(38px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}@media (max-width: 1280px){.about-grid{grid-template-columns:380px 1fr;gap:48px}.stats,.strengths-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1024px){.projects-grid{grid-template-columns:1fr}.projects-grid .proj-card:last-child:nth-child(odd){grid-column:auto}}@media (max-width: 880px){.about-grid{grid-template-columns:1fr}.avatar-wrap{max-width:420px;margin:0 auto}.nav-links{display:none}.container,.nav{padding:0 24px}}
