*{box-sizing:border-box;font-family:Inter,system-ui,-apple-system,"Helvetica Neue",Arial,"Noto Sans SC",sans-serif;margin:0;padding:0}
:root{--bg:#08102a;--accent:#0b69ff;--muted:#9aa3b2}
body{background:linear-gradient(180deg,#061226 0%,#08102a 100%);color:#e6eef9;line-height:1.6;padding:0}
/* Hero */
.hero{position:relative;min-height:72vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:40px}
.hero-bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,16,42,0.9),rgba(6,17,34,0.95));filter:blur(18px);transform:translateZ(0);transition:transform .2s linear}
.hero-inner{position:relative;z-index:2;text-align:center;max-width:1100px;padding:40px}
.hero canvas#particleCanvas{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero h1{font-size:48px;margin-bottom:12px;color:#fff;line-height:1.05}
.hero strong{color:var(--accent)}
.lead{color:var(--muted);font-size:20px;margin-bottom:18px}
.cta{display:flex;gap:12px;justify-content:center}
.btn{display:inline-block;padding:10px 18px;border-radius:8px;text-decoration:none;font-weight:600}
.btn.primary{background:linear-gradient(90deg,var(--accent),#8b5cf6);color:#fff}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.08);color:#e6eef9}

/* 专门针对联系按钮的浅绿边框与荧光效果 */
#contactBtn{border-color:rgba(94, 255, 153, 0.55);color:#dfffe6;box-shadow:0 0 12px rgba(94,255,153,0.08);transition:box-shadow .18s ease,transform .12s ease,border-color .12s ease}
#contactBtn:hover{box-shadow:0 6px 30px rgba(94,255,153,0.18),0 0 24px rgba(94,255,153,0.08);transform:translateY(-2px);border-color:rgba(94,255,153,0.9)}
#contactBtn:active{transform:translateY(0)}

/* 轻微脉冲的荧光（可选） */
@keyframes glowPulse{0%{box-shadow:0 0 10px rgba(94,255,153,0.06)}50%{box-shadow:0 0 18px rgba(94,255,153,0.12)}100%{box-shadow:0 0 10px rgba(94,255,153,0.06)}}
#contactBtn.glow{animation:glowPulse 3s infinite ease-in-out}

/* 内容区 */
main{max-width:960px;margin:36px auto;padding:0 20px}
section{background:rgba(255,255,255,0.03);padding:20px;border-radius:10px;margin-bottom:18px;opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
section.reveal.visible{opacity:1;transform:none}

/* small screens */
@media (max-width:720px){
	.hero h1{font-size:32px}
	.lead{font-size:16px}
}

/* animated small word highlight */
#word{display:inline-block;padding:2px 8px;border-radius:6px;background:linear-gradient(90deg,rgba(11,105,255,0.12),rgba(139,92,246,0.08));color:#fff}

/* subtle motion for hero background on pointer move */
.hero:hover .hero-bg{transform:translate3d(var(--mx,0),var(--my,0),0)}

footer{margin:36px 0;color:var(--muted);text-align:center}

/* 法定备案样式 */
.legal{margin-top:6px;font-size:13px;color:var(--muted)}
.legal a{color:var(--muted);text-decoration:none;border-bottom:1px dotted rgba(255,255,255,0.04)}
.legal a:hover{color:#cfeee0;border-bottom-color:rgba(180,255,210,0.18)}

/* Modal 样式 */
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(2,6,23,0.5);backdrop-filter:blur(4px);z-index:60;visibility:hidden;opacity:0;transition:opacity .18s ease,visibility .18s}
.modal[aria-hidden="false"]{visibility:visible;opacity:1}
.modal-content{background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));padding:20px;border-radius:12px;min-width:280px;max-width:420px;color:#eaf3ff;box-shadow:0 6px 30px rgba(2,6,23,0.6);position:relative}
.modal h3{margin:0 0 8px;font-size:18px}
.modal p{margin:8px 0}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
.modal-close{position:absolute;right:10px;top:6px;background:transparent;border:none;color:#9fb0d8;font-size:20px;cursor:pointer}

/* pill 样式调整（如果你想修改带背景的单词），修改这里 */
#word{display:inline-block;padding:4px 10px;border-radius:8px;background:rgba(255,255,255,0.04);color:#aeddff}

/* 短暂提示 */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:32px;background:rgba(0,0,0,0.6);color:#fff;padding:8px 12px;border-radius:8px;z-index:80;opacity:0;transition:opacity .2s}
.toast.show{opacity:1}