*{margin:0;padding:0;box-sizing:border-box}
:root{
--brand:#1f6feb;
--brand2:#ff7a45;
--brand3:#7c5cff;
--bg:#ffffff;
--text:#1f2328;
--muted:#57606a;
--line:#d0d7de;
--card:#f6f8fa;
--glass:rgba(255,255,255,.72);
--glass-line:rgba(255,255,255,.6);
--shadow:0 8px 28px rgba(31,35,40,.08);
--shadow-hover:0 16px 40px rgba(31,111,235,.18);
--radius:16px;
--radius-sm:12px;
--radius-pill:24px;
--ease:cubic-bezier(.22,.61,.36,1);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,-apple-system,sans-serif;
color:var(--text);
background:var(--bg);
line-height:1.8;
font-size:16px;
overflow-x:hidden;
transition:background .4s var(--ease),color .4s var(--ease);
}
a{color:var(--brand);text-decoration:none;transition:color .25s var(--ease)}
a:hover{text-decoration:underline;color:var(--brand3)}
img,svg{max-width:100%;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 16px}
::selection{background:rgba(31,111,235,.18)}

header.site-header{
position:sticky;top:0;z-index:100;
background:var(--glass);
border-bottom:1px solid var(--line);
backdrop-filter:blur(14px) saturate(180%);
-webkit-backdrop-filter:blur(14px) saturate(180%);
transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .3s var(--ease);
}
header.site-header:hover{box-shadow:0 4px 20px rgba(31,35,40,.06)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;color:var(--text);letter-spacing:.02em}
.logo svg{width:40px;height:40px;transition:transform .5s var(--ease),filter .4s var(--ease)}
.logo:hover svg{transform:rotate(-6deg) scale(1.08);filter:drop-shadow(0 6px 14px rgba(31,111,235,.35))}
.logo:hover{text-decoration:none}
nav.main-nav ul{display:flex;gap:18px;list-style:none;flex-wrap:wrap}
nav.main-nav a{
color:var(--text);font-size:15px;position:relative;padding:4px 0;
transition:color .25s var(--ease);
}
nav.main-nav a::after{
content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
background:linear-gradient(90deg,var(--brand),var(--brand2));
border-radius:2px;transition:width .3s var(--ease);
}
nav.main-nav a:hover{color:var(--brand);text-decoration:none}
nav.main-nav a:hover::after{width:100%}
.header-tools{display:flex;align-items:center;gap:10px}
.search-box{
display:flex;align-items:center;gap:6px;
border:1px solid var(--line);border-radius:var(--radius-pill);
padding:4px 6px 4px 12px;background:var(--card);
transition:border-color .3s var(--ease),box-shadow .3s var(--ease),background .4s var(--ease);
}
.search-box:focus-within{
border-color:var(--brand);
box-shadow:0 0 0 3px rgba(31,111,235,.14);
}
.search-box input{
border:0;outline:0;background:transparent;width:130px;font-size:14px;color:var(--text);
transition:width .3s var(--ease);
}
.search-box input:focus{width:170px}
.search-box button{
border:0;background:linear-gradient(135deg,var(--brand),var(--brand3));
color:#fff;border-radius:16px;padding:5px 14px;cursor:pointer;font-size:13px;
transition:transform .25s var(--ease),box-shadow .25s var(--ease),filter .25s var(--ease);
}
.search-box button:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(31,111,235,.32);filter:brightness(1.05)}
.search-box button:active{transform:translateY(0) scale(.97)}
.btn-ghost{
border:1px solid var(--line);background:transparent;border-radius:18px;padding:6px 14px;cursor:pointer;font-size:14px;
color:var(--text);transition:all .3s var(--ease);
}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);background:rgba(31,111,235,.06);transform:translateY(-1px)}
.menu-toggle{
display:none;border:1px solid var(--line);background:transparent;border-radius:8px;padding:6px 10px;cursor:pointer;
color:var(--text);transition:all .3s var(--ease);
}
.menu-toggle:hover{border-color:var(--brand);color:var(--brand)}

.hero{
position:relative;
background:
radial-gradient(1200px 480px at 12% -10%,rgba(31,111,235,.16),transparent 60%),
radial-gradient(900px 420px at 92% 8%,rgba(255,122,69,.18),transparent 60%),
linear-gradient(135deg,#eef4ff 0%,#fff4ec 100%);
padding:56px 0 44px;
border-bottom:1px solid var(--line);
overflow:hidden;
}
.hero::before{
content:"";position:absolute;inset:0;
background-image:radial-gradient(rgba(31,111,235,.10) 1px,transparent 1px);
background-size:22px 22px;
opacity:.5;pointer-events:none;
}
.hero::after{
content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;border-radius:50%;
background:radial-gradient(circle at 30% 30%,rgba(124,92,255,.28),transparent 70%);
filter:blur(20px);pointer-events:none;
animation:floatBlob 12s ease-in-out infinite alternate;
}
@keyframes floatBlob{
0%{transform:translate(0,0) scale(1)}
100%{transform:translate(-30px,30px) scale(1.12)}
}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;position:relative;z-index:1}
.hero h1{
font-size:34px;line-height:1.35;margin-bottom:16px;letter-spacing:.01em;
background:linear-gradient(120deg,#0f2a5c 0%,var(--brand) 45%,var(--brand2) 100%);
-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
animation:heroIn .8s var(--ease) both;
}
@keyframes heroIn{
from{opacity:0;transform:translateY(20px)}
to{opacity:1;transform:none}
}
.hero .lead{font-size:17px;color:var(--muted);margin-bottom:22px;animation:heroIn .8s .1s var(--ease) both}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;animation:heroIn .8s .2s var(--ease) both}
.btn{
display:inline-block;padding:11px 24px;border-radius:var(--radius-pill);font-size:15px;border:0;cursor:pointer;
transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .28s var(--ease),color .28s var(--ease);
position:relative;overflow:hidden;
}
.btn-primary{
background:linear-gradient(135deg,var(--brand),var(--brand3));
color:#fff;box-shadow:0 8px 22px rgba(31,111,235,.28);
}
.btn-primary::after{
content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
background:linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);
transform:skewX(-20deg);transition:left .6s var(--ease);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(31,111,235,.4);color:#fff;text-decoration:none}
.btn-primary:hover::after{left:140%}
.btn-secondary{
background:var(--glass);color:var(--brand);border:1px solid var(--brand);
backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.btn-secondary:hover{background:var(--brand);color:#fff;transform:translateY(-3px);box-shadow:0 12px 26px rgba(31,111,235,.28);text-decoration:none}
.hero-stats{display:flex;gap:24px;margin-top:28px;flex-wrap:wrap;animation:heroIn .8s .3s var(--ease) both}
.stat{
padding:10px 18px;border-radius:var(--radius-sm);
background:var(--glass);border:1px solid var(--glass-line);
backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.stat:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.stat b{
display:block;font-size:24px;
background:linear-gradient(135deg,var(--brand),var(--brand2));
-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.stat span{font-size:13px;color:var(--muted)}

.carousel{
position:relative;overflow:hidden;border-radius:var(--radius);
background:var(--glass);border:1px solid var(--glass-line);
backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);
box-shadow:var(--shadow);
transition:box-shadow .4s var(--ease),transform .4s var(--ease);
}
.carousel:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}
.carousel-track{display:flex;transition:transform .55s var(--ease)}
.slide{min-width:100%;padding:30px}
.slide h3{font-size:20px;margin-bottom:10px;color:var(--text)}
.slide p{color:var(--muted);font-size:15px}
.carousel-dots{display:flex;justify-content:center;gap:8px;padding:12px 0 16px}
.carousel-dots button{
width:10px;height:10px;border-radius:50%;border:0;background:#c9d1d9;cursor:pointer;
transition:all .3s var(--ease);
}
.carousel-dots button:hover{background:var(--brand3);transform:scale(1.2)}
.carousel-dots button.active{
background:linear-gradient(135deg,var(--brand),var(--brand2));
width:26px;border-radius:6px;
}

section{
padding:48px 0;border-bottom:1px solid var(--line);
transition:border-color .4s var(--ease);
}
section h2{
font-size:26px;margin-bottom:20px;position:relative;padding-left:16px;letter-spacing:.01em;
}
section h2::before{
content:"";position:absolute;left:0;top:6px;bottom:6px;width:5px;border-radius:3px;
background:linear-gradient(180deg,var(--brand),var(--brand2));
}
section h3{font-size:20px;margin:24px 0 10px}
section h4{font-size:17px;margin:16px 0 8px;color:#30363d}
p{margin-bottom:12px}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.card{
background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);padding:22px;
backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
box-shadow:0 2px 10px rgba(31,35,40,.04);
transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease),background .4s var(--ease);
position:relative;overflow:hidden;
}
.card::before{
content:"";position:absolute;top:0;left:0;right:0;height:3px;
background:linear-gradient(90deg,var(--brand),var(--brand2),var(--brand3));
transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);border-color:rgba(31,111,235,.35)}
.card:hover::before{transform:scaleX(1)}
.card h3{margin-top:0}
.card ul{margin-left:18px;color:var(--muted)}
.card ul li{margin-bottom:4px}

.tag{
display:inline-block;font-size:12px;padding:3px 12px;border-radius:12px;
background:linear-gradient(135deg,rgba(31,111,235,.12),rgba(255,122,69,.12));
color:var(--brand);margin-right:6px;margin-bottom:6px;
transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.tag:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(31,111,235,.2)}

.article-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.article-item{
background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;
backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
position:relative;overflow:hidden;
}
.article-item::after{
content:"";position:absolute;right:-40px;bottom:-40px;width:120px;height:120px;border-radius:50%;
background:radial-gradient(circle,rgba(124,92,255,.14),transparent 70%);
opacity:0;transition:opacity .4s var(--ease);
}
.article-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:rgba(124,92,255,.35)}
.article-item:hover::after{opacity:1}
.article-item .meta{font-size:13px;color:var(--muted);margin-bottom:6px}
.article-item h3{font-size:17px;margin:0 0 8px;transition:color .3s var(--ease)}
.article-item:hover h3{color:var(--brand)}
.article-item p{font-size:14px;color:var(--muted);margin-bottom:10px}
.article-item a{font-size:14px;font-weight:600;position:relative}
.article-item a::after{
content:"→";margin-left:4px;display:inline-block;transition:transform .3s var(--ease);
}
.article-item a:hover::after{transform:translateX(4px)}

.faq-item{
border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:12px;overflow:hidden;
background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
transition:box-shadow .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.faq-item:hover{border-color:rgba(31,111,235,.35);box-shadow:0 6px 20px rgba(31,111,235,.1)}
.faq-item.open{border-color:var(--brand);box-shadow:0 10px 28px rgba(31,111,235,.14)}
.faq-q{
width:100%;text-align:left;background:transparent;border:0;padding:16px 18px;font-size:16px;cursor:pointer;font-weight:600;
color:var(--text);position:relative;padding-right:44px;transition:color .3s var(--ease),background .3s var(--ease);
}
.faq-q::after{
content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);
font-size:20px;font-weight:400;color:var(--brand);transition:transform .35s var(--ease),color .3s var(--ease);
}
.faq-item.open .faq-q{color:var(--brand);background:rgba(31,111,235,.05)}
.faq-item.open .faq-q::after{content:"−";transform:translateY(-50%) rotate(180deg)}
.faq-q:hover{color:var(--brand)}
.faq-a{
padding:0 18px;max-height:0;overflow:hidden;
transition:max-height .4s var(--ease),padding .4s var(--ease),opacity .35s var(--ease);
color:var(--muted);font-size:15px;opacity:0;
}
.faq-item.open .faq-a{max-height:560px;padding:4px 18px 18px;opacity:1}

.steps{counter-reset:step;list-style:none}
.steps li{
position:relative;padding-left:48px;margin-bottom:18px;
transition:transform .3s var(--ease);
}
.steps li:hover{transform:translateX(4px)}
.steps li::before{
counter-increment:step;content:counter(step);
position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;
background:linear-gradient(135deg,var(--brand),var(--brand3));
color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;
box-shadow:0 6px 16px rgba(31,111,235,.3);
transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.steps li:hover::before{transform:scale(1.12) rotate(-6deg);box-shadow:0 10px 24px rgba(31,111,235,.45)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.visible{opacity:1;transform:none}

footer{
background:linear-gradient(180deg,#0d1117 0%,#0a0e14 100%);
color:#c9d1d9;padding:44px 0 22px;font-size:14px;
position:relative;overflow:hidden;
}
footer::before{
content:"";position:absolute;top:0;left:0;right:0;height:2px;
background:linear-gradient(90deg,var(--brand),var(--brand2),var(--brand3));
}
footer a{color:#79c0ff;transition:color .25s var(--ease)}
footer a:hover{color:#a5d6ff;text-decoration:none}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:26px}
footer h4{color:#fff;margin-bottom:12px;font-size:15px;position:relative;padding-bottom:8px}
footer h4::after{
content:"";position:absolute;left:0;bottom:0;width:28px;height:2px;border-radius:2px;
background:linear-gradient(90deg,var(--brand),var(--brand2));
}
footer ul{list-style:none}
footer li{margin-bottom:8px;transition:transform .25s var(--ease)}
footer li:hover{transform:translateX(3px)}
.copyright{
border-top:1px solid #21262d;padding-top:18px;text-align:center;color:#8b949e;font-size:13px;
}

.breadcrumb{font-size:14px;color:var(--muted);padding:16px 0}
.breadcrumb a{color:var(--muted);transition:color .25s var(--ease)}
.breadcrumb a:hover{color:var(--brand)}

.back-top{
position:fixed;right:20px;bottom:24px;width:46px;height:46px;border-radius:50%;border:0;
background:linear-gradient(135deg,var(--brand),var(--brand3));
color:#fff;font-size:18px;cursor:pointer;display:none;z-index:120;
box-shadow:0 10px 26px rgba(31,111,235,.4);
transition:transform .3s var(--ease),box-shadow .3s var(--ease),opacity .3s var(--ease);
}
.back-top.show{display:block;animation:popIn .35s var(--ease)}
@keyframes popIn{
from{opacity:0;transform:scale(.6) translateY(10px)}
to{opacity:1;transform:none}
}
.back-top:hover{transform:translateY(-4px) scale(1.06);box-shadow:0 16px 34px rgba(31,111,235,.55)}
.back-top:active{transform:scale(.95)}

body.dark{
--bg:#0d1117;
--text:#e6edf3;
--muted:#8b949e;
--line:#30363d;
--card:#161b22;
--glass:rgba(22,27,34,.72);
--glass-line:rgba(48,54,61,.7);
--shadow:0 8px 28px rgba(0,0,0,.4);
--shadow-hover:0 16px 40px rgba(31,111,235,.28);
}
body.dark header.site-header{background:rgba(13,17,23,.78);box-shadow:0 4px 24px rgba(0,0,0,.4)}
body.dark .hero{
background:
radial-gradient(1200px 480px at 12% -10%,rgba(31,111,235,.22),transparent 60%),
radial-gradient(900px 420px at 92% 8%,rgba(255,122,69,.14),transparent 60%),
linear-gradient(135deg,#0d1117 0%,#1a1210 100%);
}
body.dark .hero::before{background-image:radial-gradient(rgba(121,192,255,.14) 1px,transparent 1px)}
body.dark .hero h1{
background:linear-gradient(120deg,#79c0ff 0%,#a5d6ff 45%,#ffb08a 100%);
-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
body.dark .card,body.dark .article-item,body.dark .carousel,body.dark .faq-item,body.dark .stat{background:rgba(22,27,34,.78)}
body.dark .search-box{background:#161b22}
body.dark .btn-secondary{background:rgba(22,27,34,.7);color:#79c0ff;border-color:#79c0ff}
body.dark .btn-secondary:hover{background:#79c0ff;color:#0d1117}
body.dark .btn-ghost:hover{background:rgba(121,192,255,.1)}
body.dark section h4{color:#c9d1d9}
body.dark .faq-item.open .faq-q{background:rgba(121,192,255,.08)}
body.dark .carousel-dots button{background:#30363d}
body.dark .carousel-dots button.active{background:linear-gradient(135deg,var(--brand),var(--brand2))}
body.dark ::selection{background:rgba(121,192,255,.24)}

@media (max-width:900px){
.hero{padding:40px 0 32px}
.hero-grid{grid-template-columns:1fr}
.grid-3,.grid-2,.article-list,.footer-grid{grid-template-columns:1fr}
nav.main-nav{
display:none;position:absolute;top:64px;left:0;right:0;
background:var(--glass);
border-bottom:1px solid var(--line);
padding:14px 16px;
backdrop-filter:blur(16px) saturate(180%);
-webkit-backdrop-filter:blur(16px) saturate(180%);
animation:navDrop .3s var(--ease);
}
@keyframes navDrop{
from{opacity:0;transform:translateY(-8px)}
to{opacity:1;transform:none}
}
body.dark nav.main-nav{background:rgba(13,17,23,.9)}
nav.main-nav.open{display:block}
nav.main-nav ul{flex-direction:column;gap:12px}
.menu-toggle{display:inline-block}
.search-box input{width:90px}
.search-box input:focus{width:110px}
.hero h1{font-size:26px}
.hero .lead{font-size:16px}
.hero-stats{gap:14px}
.stat{padding:8px 14px}
.stat b{font-size:20px}
.slide{padding:22px}
section{padding:36px 0}
section h2{font-size:22px}
}
@media (max-width:520px){
.header-inner{flex-wrap:wrap;gap:10px}
.header-tools{width:100%;justify-content:flex-end}
.search-box{flex:1}
.search-box input{width:100%}
.hero h1{font-size:22px}
.btn{padding:10px 18px;font-size:14px}
.card{padding:18px}
.article-item{padding:16px}
.back-top{right:14px;bottom:18px;width:42px;height:42px}
}