*{margin:0;padding:0;box-sizing:border-box}
:root{
  --font-pixel:"Press Start 2P",monospace;
  --font-body:"VT323","Press Start 2P",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --bg:#0a1a0a;--bg2:#142414;
  --text:#c8ffc8;--muted:#6fb86f;
  --accent:#00ff66;--accent2:#008830;--accent3:#66ff99;--accent4:#88ffaa;
  --card:rgba(0,255,100,.04);--border:rgba(0,255,100,.22);
  --scanline:rgba(0,0,0,.18);
  --grid:rgba(0,255,100,.04);
  --pixel:4px;
}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  font-size:18px;
  background:var(--bg);
  color:var(--text);
  line-height:1.7;overflow-x:hidden;min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:100;
  background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,var(--scanline) 2px,var(--scanline) 3px);
  opacity:.8;animation:crtFlicker 7s steps(2) infinite}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:8px 8px;opacity:1;transition:opacity .3s}
::selection{background:var(--accent);color:var(--bg)}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#050f05}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--accent),var(--accent2));border-radius:0}

a,button{outline:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent3);outline-offset:3px}

/* 滚动进度条 */
.progress-bar{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;background:linear-gradient(90deg,var(--accent),var(--accent3),var(--accent));box-shadow:0 0 8px rgba(0,255,102,.6);transition:width .1s}

/* 背景 */
.bg-orbs{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.18;animation:floatOrb 24s ease-in-out infinite}
.o1{width:520px;height:520px;background:radial-gradient(circle,#00ff66,transparent 70%);top:-160px;left:-100px}
.o2{width:480px;height:480px;background:radial-gradient(circle,#00cc55,transparent 70%);bottom:-140px;right:-90px;animation-delay:-6s}
.o3{width:400px;height:400px;background:radial-gradient(circle,#66ff99,transparent 70%);top:40%;left:50%;transform:translateX(-50%);animation-delay:-12s;opacity:.14}
@keyframes floatOrb{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.1)}66%{transform:translate(-30px,40px) scale(.93)}}
#stars{position:fixed;inset:0;z-index:0;pointer-events:none}

/* 导航 */
.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:820px;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-radius:0;z-index:100;transition:top .3s,box-shadow .3s,background .3s}
.nav.scrolled{top:8px;background:rgba(10,26,10,.92);box-shadow:0 6px 28px rgba(0,0,0,.55);backdrop-filter:blur(10px)}
.nav-logo{font-size:22px;font-weight:400;text-decoration:none;color:#fff;letter-spacing:1px;font-family:var(--font-pixel)}
.nav-logo span{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{display:flex;gap:30px}
.nav-links a{color:var(--text);text-decoration:none;font-size:13px;font-weight:500;letter-spacing:1px;transition:color .2s;position:relative;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.nav-links a:hover{color:var(--accent)}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .25s}
.nav-links a:hover::after{width:100%}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.nav-toggle span{width:22px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.container{position:relative;z-index:1;max-width:880px;margin:0 auto;padding:0 24px}
section{margin-bottom:48px}

/* Hero */
.hero{text-align:center;padding:90px 0 50px;display:flex;flex-direction:column;align-items:center}
.avatar{position:relative;width:96px;height:96px;margin-bottom:20px;image-rendering:pixelated}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;border:var(--pixel) solid var(--accent);box-shadow:4px 4px 0 var(--accent2);image-rendering:pixelated;background:var(--bg)}

.hello{color:var(--accent3);font-size:11px;letter-spacing:3px;text-transform:uppercase;margin-bottom:14px;font-family:var(--font-pixel)}
.name{font-size:80px;font-weight:900;line-height:1.1;letter-spacing:3px;margin-bottom:20px;font-family:var(--font-pixel)}
.gradient-text{background:linear-gradient(135deg,#ffffff 0%,#00ff66 30%,#66ff99 60%,#88ffaa 100%);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 200%;animation:gradShift 6s ease infinite}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.tagline{font-size:26px;color:var(--accent);font-weight:400;margin-bottom:26px;min-height:34px}
.caret{color:var(--accent);animation:blink 1s steps(1) infinite;font-weight:300}
@keyframes blink{50%{opacity:0}}
.bio{color:var(--text);font-size:21px;max-width:540px;margin:0 auto 40px;line-height:1.9;text-align:center}

.actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.btn{padding:14px 24px;border-radius:0;font-size:14px;font-weight:500;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s;cursor:pointer;border:2px solid transparent;display:inline-flex;align-items:center;gap:8px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:1px}
.btn-primary{background:var(--accent);color:var(--bg);box-shadow:4px 4px 0 0 var(--accent2),0 0 16px rgba(0,255,102,.3);border-color:var(--accent);position:relative}
.btn-primary:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--accent2),0 0 24px rgba(0,255,102,.5);background:var(--accent3);border-color:var(--accent3)}
.btn-ghost{background:transparent;color:var(--accent);box-shadow:4px 4px 0 0 var(--accent2);border-color:var(--accent);position:relative}
.btn-ghost:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--accent2);background:rgba(0,255,102,.12)}

/* hero 统计 */
.hero-stats{display:flex;gap:0;margin-top:52px;padding-top:36px;border-top:1px solid var(--border);width:100%;max-width:480px;justify-content:center}
.hstat{text-align:center;flex:1;min-width:0}
.hstat strong{display:block;font-size:34px;font-weight:400;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.2;font-family:var(--font-pixel)}
.hstat span{font-size:14px;color:var(--muted);margin-top:10px;display:block;letter-spacing:1px;font-family:var(--font-body)}

/* 滚动提示 */
.scroll-hint{margin-top:48px;display:inline-flex;flex-direction:column;align-items:center;gap:8px;opacity:.7;animation:bob 1.8s ease-in-out infinite;text-decoration:none}
.scroll-hint span{display:block;width:22px;height:22px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg)}
.scroll-hint::after{content:'SCROLL';font-size:10px;font-family:var(--font-pixel);letter-spacing:2px;color:var(--muted)}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:1}}

/* 卡片 */
.card{border-radius:0;padding:36px;margin-bottom:28px}
.glass{background:var(--card);border:var(--pixel) solid var(--border);box-shadow:var(--pixel) var(--pixel) 0 var(--accent2);position:relative;backdrop-filter:blur(6px)}
.glass::before{content:'';position:absolute;inset:0;background:
  linear-gradient(transparent calc(100% - 2px),var(--accent) calc(100% - 2px) 100%),
  linear-gradient(90deg,transparent calc(100% - 2px),var(--accent) calc(100% - 2px) 100%);
  background-size:32px 100%,100% 32px;background-repeat:repeat-x,repeat-y;opacity:.08;pointer-events:none}
.section-title{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:600;margin-bottom:30px;letter-spacing:2px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.bar{width:4px;height:24px;border-radius:0;background:linear-gradient(180deg,var(--accent),var(--accent2))}
#about p{color:var(--text);font-size:18px;line-height:1.9;margin-bottom:20px}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}
.chips-label{font-size:13px;color:var(--muted);margin:14px 0 8px;font-weight:500;letter-spacing:.5px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.chips-label:first-child{margin-top:6px}
.chips span{padding:7px 14px;border-radius:0;font-size:12px;background:rgba(0,255,102,.1);border:1px solid rgba(0,255,102,.22);color:var(--text);transition:transform .15s,background .2s;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.5px}
.chips span:hover{transform:translateY(-2px);background:rgba(0,255,102,.18)}

/* 技能 */
.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.skill{padding:26px}
.skill-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.skill-icon{font-size:30px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:0;background:rgba(0,255,102,.12);border:1px solid var(--border)}
.skill-head h3{font-size:15px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:600}
.skill-head p{font-size:15px;color:var(--muted)}
.skill-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:16px;color:var(--text)}
.skill-row>span{width:140px;flex-shrink:0;font-size:12px;letter-spacing:.5px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:500}
.track{flex:1;height:8px;border-radius:0;background:repeating-linear-gradient(90deg,rgba(0,255,102,.12) 0 6px,transparent 6px 8px);overflow:hidden;border:1px solid var(--border)}
.track i{display:block;height:100%;width:0;border-radius:0;background:repeating-linear-gradient(90deg,var(--accent) 0 6px,var(--accent2) 6px 8px);transition:width 1.1s steps(12);image-rendering:pixelated}
.skill.in-view .track i{width:var(--w)}

/* 项目 */
#projects .section-title{margin-left:4px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.project{padding:28px;display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .2s,box-shadow .25s;transform-style:preserve-3d;will-change:transform}
.project:hover{border-color:rgba(0,255,102,.45);box-shadow:0 18px 50px rgba(0,255,102,.18)}
.proj-emoji{font-size:40px;margin-bottom:16px;transition:transform .3s}
.project:hover .proj-emoji{transform:scale(1.15) rotate(-8deg)}
.project h4{font-size:15px;margin-bottom:8px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:600;letter-spacing:.5px;line-height:1.5}
.project p{color:var(--text);font-size:16px;line-height:1.7;flex:1;margin-bottom:16px}
.proj-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.proj-tags span{font-size:11px;padding:4px 8px;border-radius:0;background:rgba(255,255,255,.06);color:var(--muted);font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.5px}
.proj-link{font-size:12px;color:var(--accent);text-decoration:none;font-weight:500;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.5px}
.proj-link+.proj-link{margin-left:16px}
.proj-link:hover{color:var(--accent3);text-decoration:underline}

/* 联系 */
.contact p{color:var(--text);font-size:18px;margin-bottom:28px;line-height:1.7}
.contact-links{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.contact-item{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.contact-value{font-size:14px;color:var(--muted);word-break:break-all}
.contact-btn{width:100%;padding:11px 18px;border-radius:0;background:var(--bg2);border:2px solid var(--accent);color:var(--accent);font-size:13px;cursor:pointer;transition:all .2s;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:500;letter-spacing:.5px;box-shadow:3px 3px 0 var(--accent2);text-shadow:0 0 6px rgba(0,255,102,.3)}
.contact-btn:hover{background:rgba(0,255,102,.16);border-color:rgba(0,255,102,.45);transform:translate(2px,2px);box-shadow:1px 1px 0 var(--accent2)}

/* 页脚 */
.footer{text-align:center;padding:56px 0 40px;color:var(--muted);font-size:13px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.8}
.footer .icp{margin-top:8px;font-size:12px;opacity:.85;letter-spacing:.02em}
.footer a{color:var(--accent);text-decoration:none}

/* 回到顶部 */
.to-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:0;border:2px solid var(--accent);cursor:pointer;color:var(--bg);font-size:20px;background:var(--accent);box-shadow:0 0 20px var(--accent),4px 4px 0 var(--accent2);opacity:0;pointer-events:none;transform:translateY(20px);transition:all .3s;z-index:90;font-family:var(--font-pixel)}
.to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.to-top:hover{transform:translateY(-3px);background:var(--accent3)}

/* 滚动出现 */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ===== 主题切换按钮 ===== */
.nav-actions{display:flex;align-items:center;gap:10px}
.theme-toggle{width:38px;height:38px;border-radius:0;border:2px solid var(--accent);background:var(--card);color:#fff;font-size:18px;line-height:1;cursor:pointer;transition:transform .25s,background .25s;box-shadow:3px 3px 0 var(--accent2);font-family:-apple-system,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;display:flex;align-items:center;justify-content:center}
.theme-toggle:hover{transform:rotate(20deg) scale(1.08);background:rgba(255,255,255,.12)}

/* ===== 亮色主题 ===== */
:root.light{
  --bg:#eef6ea;--bg2:#dcebd4;
  --text:#1a3a1a;--muted:#3d6b35;
  --accent:#10993f;--accent2:#0a6e2c;--accent3:#2bbf5e;--accent4:#1a8f3c;
  --card:rgba(255,255,255,.66);--border:rgba(16,153,63,.35);
  --scanline:rgba(0,60,20,.04);--grid:rgba(16,120,50,.05);
}
:root.light body{background:linear-gradient(180deg,#eef6ea,#dcebd4)}
:root.light body::after{opacity:.5}
:root.light .orb{opacity:.22;filter:blur(90px)}
:root.light #stars{opacity:.25}
:root.light .nav.scrolled{background:rgba(238,246,234,.85);box-shadow:0 8px 30px rgba(16,100,40,.12);backdrop-filter:blur(10px)}
:root.light .nav-logo{color:#1a3a1a}
:root.light .track{background:rgba(16,153,63,.14)}
:root.light .toast{background:#fff;color:#1a3a1a;border-color:var(--border)}
:root.light .modal{background:rgba(220,235,212,.6)}

/* ===== 弹窗 ===== */
.modal{position:fixed;inset:0;background:rgba(5,15,5,.6);backdrop-filter:blur(6px);z-index:300;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}
.modal.show{opacity:1;pointer-events:auto}
.modal-card{position:relative;width:min(86vw,360px);padding:36px 30px 28px;border-radius:0;text-align:center;background:var(--bg);border:2px solid var(--accent);box-shadow:inset 0 0 0 2px var(--bg),0 0 24px rgba(0,255,102,.25),4px 4px 0 0 var(--accent2)}
.modal-close{position:absolute;top:14px;right:18px;background:none;border:none;color:var(--muted);font-size:26px;cursor:pointer;line-height:1}
.modal-close:hover{color:var(--accent)}
.modal-card h3{font-size:17px;margin-bottom:18px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:600;letter-spacing:1px}
.qr-box{display:flex;justify-content:center;margin-bottom:16px}
.qr-img{width:180px;height:180px;border-radius:0;display:block;object-fit:cover;background:#fff;border:1px solid var(--border)}
.wechat-nickname{font-size:14px;color:var(--muted);margin-bottom:6px}
.wechat-nickname strong{color:var(--text);font-weight:600}
.wechat-id{font-size:15px;color:var(--text);margin-bottom:10px}
.wechat-id strong{color:var(--accent);letter-spacing:1px}
.copy-wx{margin-left:8px;padding:4px 12px;border-radius:0;border:1px solid var(--border);background:rgba(0,255,102,.12);color:var(--accent);font-size:12px;cursor:pointer;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.copy-wx:hover{background:rgba(0,255,102,.2)}
.modal-hint{font-size:12.5px;color:var(--muted)}

/* ===== Toast ===== */
.toast{position:fixed;left:50%;bottom:40px;transform:translate(-50%,20px);background:rgba(10,26,10,.95);color:#fff;padding:12px 22px;border-radius:0;font-size:14px;border:1px solid var(--border);opacity:0;pointer-events:none;transition:all .3s;z-index:400;box-shadow:0 8px 30px rgba(0,0,0,.4);font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:.5px}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ===== 项目卡片鼠标光晕 ===== */
.project{position:relative;overflow:hidden}
.project::before{content:"";position:absolute;top:var(--my,-50%);left:var(--mx,-50%);width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(0,255,102,.18),transparent 65%);transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .3s}
.project:hover::before{opacity:1}

/* 页面载入动画 */
.hero > *{animation:fadeUp .8s cubic-bezier(.2,.8,.2,1) both}
.hero .avatar{animation-delay:.05s}
.hero .hello{animation-delay:.15s}
.hero .name{animation-delay:.2s}
.hero .tagline{animation-delay:.3s}
.hero .bio{animation-delay:.4s}
.hero .actions{animation-delay:.5s}
.hero .hero-stats{animation-delay:.6s}
.hero .scroll-hint{animation-delay:.7s}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* ===== 兴趣爱好 ===== */
.hobby-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.hobby{padding:26px;transition:transform .25s,border-color .25s}
.hobby:hover{transform:translateY(-5px);border-color:rgba(0,255,102,.4)}
.hobby-emoji{font-size:44px;margin-bottom:12px;display:inline-block;transition:transform .3s}
.hobby.hobby-game .hobby-emoji{margin:0}
.hobby:hover .hobby-emoji{transform:scale(1.15) rotate(-6deg)}
.hobby h3{font-size:15px;margin-bottom:10px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;font-weight:600;letter-spacing:.5px}
.hobby p{font-size:14px;color:var(--muted);line-height:1.6}
.hobby-game{grid-column:span 2;text-align:left}
.hobby-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.hobby-head .hobby-emoji{font-size:30px}
.hobby-head h3{font-size:14px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;margin:0;font-weight:600}

.game-list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.game-list li{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:0;background:rgba(255,255,255,.03);border:1px solid var(--border);transition:transform .2s,border-color .2s}
.game-list li:hover{transform:translateY(-2px);border-color:rgba(0,255,102,.4)}
.g-emoji{font-size:28px;flex-shrink:0}
.game-list strong{display:block;font-size:15px;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.game-list small{font-size:12px;color:var(--muted)}

.coding-projects .project{background:rgba(255,255,255,.03);padding:26px;margin:0;display:flex;flex-direction:column}
:root.light .coding-projects .project,
:root.light .game-list li{background:rgba(255,255,255,.5);border:1px solid var(--border)}

/* =========================================================
   移动端 / 平板响应式
   ========================================================= */
.nav{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
.to-top{right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom))}
.footer{padding-bottom:max(40px,env(safe-area-inset-bottom))}

/* 平板及以下 */
@media(max-width:900px){
  .name{font-size:56px}
  .card{padding:26px}
  .hero-stats{gap:0}
}

/* 手机 */
@media(max-width:640px){
  .container{padding:0 16px}
  .nav{top:10px;width:calc(100% - 16px);padding:10px 14px}
  .nav.scrolled{top:6px}
  .nav-logo{font-size:16px}
  .nav-links{
    position:absolute;top:calc(100% + 8px);right:0;flex-direction:column;gap:0;
    background:rgba(10,26,10,.97);backdrop-filter:blur(10px);
    border:2px solid var(--accent);box-shadow:4px 4px 0 var(--accent2);
    padding:8px 0;min-width:170px;
    opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s,transform .2s;
  }
  .nav-links.open{opacity:1;transform:translateY(0);pointer-events:auto}
  .nav-links a{display:block;padding:14px 18px;font-size:14px;font-weight:500;letter-spacing:1px}
  .nav-links a::after{display:none}
  :root.light .nav-links{background:rgba(255,255,255,.96);color:#1a3a1a}
  .nav-toggle{display:flex}

  .theme-toggle{width:36px;height:36px;font-size:16px}

  /* Hero */
  .hero{padding:100px 0 32px}
  .avatar{width:88px;height:88px;margin-bottom:18px}
  .avatar-inner{font-size:28px}
  .hello{font-size:9px;letter-spacing:2px;margin-bottom:12px}
  .name{font-size:38px;letter-spacing:1px;margin-bottom:14px}
  .tagline{font-size:20px;min-height:26px;margin-bottom:14px}
  .bio{font-size:16px;line-height:1.7;margin:0 auto 24px;padding:0 4px}
  .actions{width:100%;gap:10px}
  .btn{flex:1;justify-content:center;padding:14px 10px;font-size:13px;letter-spacing:.5px}
  .hero-stats{gap:0;justify-content:space-around;margin-top:32px;padding-top:24px;max-width:100%}
  .hstat strong{font-size:22px}
  .hstat span{font-size:13px;letter-spacing:1px}
  .scroll-hint{margin-top:24px}

  /* 卡片 */
  .card{padding:20px;margin-bottom:16px}
  .section-title{font-size:16px;margin-bottom:18px;gap:8px;font-weight:600}
  .section-title .bar{height:18px;width:3px}

  /* 关于 */
  #about p{font-size:16px;line-height:1.7;margin-bottom:14px}
  .chips-label{font-size:11px;margin:12px 0 8px}
  .chips{gap:6px}
  .chips span{padding:6px 11px;font-size:11px;letter-spacing:.5px}

  /* 技能 */
  .skills-grid{grid-template-columns:1fr;gap:12px}
  .skill{padding:18px}
  .skill-head{margin-bottom:14px}
  .skill-head h3{font-size:13px;letter-spacing:.5px}
  .skill-icon{width:44px;height:44px;font-size:24px}
  .skill-row{margin-bottom:10px;font-size:15px;gap:8px}
  .skill-row>span{min-width:100px;font-size:11px;letter-spacing:.5px}

  /* 爱好 */
  .hobby-grid{grid-template-columns:1fr;gap:12px}
  .hobby-game{grid-column:span 1}
  .hobby{padding:18px}
  .hobby-head h3{font-size:13px;letter-spacing:.5px}
  .hobby h3{font-size:13px;letter-spacing:.5px}
  .game-list{grid-template-columns:1fr;gap:8px}
  .game-list li{padding:10px 12px}
  .g-emoji{font-size:22px}

  /* 项目 */
  .coding-projects{grid-template-columns:1fr;gap:12px}
  .coding-projects .project{padding:18px}
  .project h4{font-size:14px;line-height:1.6;letter-spacing:.5px}
  .project p{font-size:15px;line-height:1.6}
  .proj-emoji{font-size:32px;margin-bottom:10px}
  .proj-tags{gap:5px}
  .proj-tags span{font-size:10px;padding:3px 8px;letter-spacing:.5px}
  .proj-link{font-size:12px;letter-spacing:.5px}

  /* 联系 */
  .contact-links{grid-template-columns:1fr;gap:10px;margin-top:18px}
  .contact-item{flex-direction:row;justify-content:space-between;gap:10px}
  .contact-btn{width:auto;min-width:110px;padding:12px 14px;font-size:12px;letter-spacing:.5px}
  .contact-value{font-size:13px;text-align:right}

  /* 页脚 */
  .footer{font-size:11px;padding-top:28px;line-height:1.8}

  /* 弹窗 */
  .modal-card{width:92vw;padding:24px 18px 18px}
  .qr-img{width:160px;height:160px}
  .qr-box{margin-bottom:14px}
}

/* 小屏手机 */
@media(max-width:380px){
  .name{font-size:32px}
  .btn{font-size:12px;padding:12px 8px;letter-spacing:0}
  .hstat strong{font-size:20px}
  .hello{font-size:8px}
  .nav-links a{font-size:13px}
}

/* 触摸设备 */
@media(hover:none){
  .nav-links a::after{display:none}
  .project{transition:transform .15s}
  .project:active{transform:scale(.99)}
  .btn:active{transform:scale(.97)}
  .contact-btn:active,.chips span:active{transform:scale(.96)}
  .project:hover{transform:none;box-shadow:var(--pixel) var(--pixel) 0 var(--accent2)}
  .project:hover .proj-emoji{transform:none}
  .project::before{display:none}
  .btn-primary:hover,.btn-ghost:hover{transform:none}
  .hobby:hover{transform:none}
  .game-list li:hover{transform:none}
}

/* 减少动画 */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .orb{display:none}
  body::after,.led{animation:none!important}
}

/* =========================================================
   2026-09-09 视觉精修 · 仍走像素 CRT 绿
   ========================================================= */
@keyframes crtFlicker{0%,96%,100%{opacity:.8}97%{opacity:.55}98%{opacity:.8}}
@keyframes ledPulse{0%,100%{opacity:1}50%{opacity:.35}}

.crt-vignette{
  position:fixed;inset:0;pointer-events:none;z-index:99;
  background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.42) 100%);
}

.led{
  display:inline-block;width:8px;height:8px;background:var(--accent);
  box-shadow:0 0 8px var(--accent);animation:ledPulse 1.6s steps(2) infinite;flex-shrink:0;
}
.nav-status{
  display:flex;align-items:center;gap:6px;font-family:var(--font-pixel);font-size:8px;
  color:var(--accent);letter-spacing:1px;padding:6px 8px;border:1px solid var(--border);
}
.nav-status .led{width:7px;height:7px}

.sys-line{
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-pixel);font-size:8px;color:var(--accent);
  letter-spacing:2px;margin:0 0 14px;text-shadow:0 0 8px rgba(0,255,102,.45);
}
.sys-sep{opacity:.5}

.section-title .cmd{
  color:var(--accent);font-family:var(--font-pixel);font-size:11px;margin-right:2px;
  text-shadow:0 0 8px rgba(0,255,102,.5);
}
.section-lead{color:var(--muted);font-size:16px;margin-bottom:24px;line-height:1.7}

.nav-links a.active{color:var(--accent)}
.nav-links a.active::after{width:100%}

.slot{
  display:block;font-family:var(--font-pixel);font-size:8px;color:var(--accent2);
  letter-spacing:1.5px;margin-bottom:10px;
}

.skill-row em{
  font-style:normal;font-family:var(--font-pixel);font-size:8px;color:var(--accent);
  width:28px;text-align:right;flex-shrink:0;
}

.copy-tip{display:none}

.hero-stats{border-top:2px dashed var(--border)}
.hstat + .hstat{border-left:2px dashed var(--border)}

.chips span{box-shadow:2px 2px 0 var(--accent2)}
.chips span:hover{box-shadow:1px 1px 0 var(--accent2);transform:translate(1px,1px)}

.project:hover{
  box-shadow:6px 6px 0 var(--accent2), 0 0 24px rgba(0,255,102,.18);
}

.footer{border-top:2px dashed var(--border);margin-top:8px}

@media(max-width:640px){
  .sys-line{font-size:7px;letter-spacing:1px}
  .nav-status{display:none}
  .slot{font-size:7px}
  .section-title .cmd{font-size:10px}
  .section-lead{font-size:15px;margin-bottom:16px}
  .skill-row em{display:none}
  .hstat + .hstat{border-left:1px dashed var(--border)}
}

@media(prefers-reduced-motion:reduce){
  .crt-vignette{display:none}
}

