/* ===== gradient-grain · 渐变颗粒 ===== */
:root{
  --bg:#0d0b1a;--card:rgba(30,26,54,.62);--card2:rgba(40,34,70,.55);--line:rgba(167,139,250,.26);--line2:rgba(167,139,250,.5);
  --ink:#f2eeff;--sub:#b3a9d4;--dim:#6f6699;--violet:#a78bfa;--rose:#fb7185;--sky:#5eb6f0;
  --sans:-apple-system,"SF Pro Display","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--maxw:960px;color-scheme:dark;
}
@media (prefers-color-scheme:light){:root{--bg:#f3f1fb;--card:rgba(255,255,255,.72);--card2:rgba(255,255,255,.6);--line:rgba(120,90,210,.22);--line2:rgba(120,90,210,.42);--ink:#221a3a;--sub:#5a5080;--dim:#9a90bc;--violet:#7c5cf0;--rose:#e0457a;--sky:#2f8fd8;color-scheme:light;}}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.66;min-height:100vh;position:relative;overflow-x:hidden;padding:0 clamp(16px,4vw,38px) calc(42px + env(safe-area-inset-bottom));}
a{color:inherit;text-decoration:none;}::selection{background:var(--violet);color:#fff;}
kbd{font-size:11px;border:1px solid var(--line2);border-radius:5px;padding:1px 6px;color:var(--violet);background:rgba(167,139,250,.1);}
.mesh{position:fixed;inset:0;z-index:-2;overflow:hidden;}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.6;}
.b1{width:46vw;height:46vw;background:var(--violet);top:-12vw;left:-8vw;animation:drift 22s ease-in-out infinite;}
.b2{width:42vw;height:42vw;background:var(--rose);top:18vw;right:-12vw;animation:drift 26s ease-in-out infinite reverse;}
.b3{width:38vw;height:38vw;background:var(--sky);bottom:-14vw;left:24vw;animation:drift 30s ease-in-out infinite;}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(4vw,-3vw) scale(1.12);}}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");}
@media (prefers-color-scheme:light){.grain{opacity:.3;}.blob{opacity:.5;}}
.shell{max-width:var(--maxw);margin:0 auto;}
.bulletin{display:flex;align-items:center;gap:13px;padding:calc(14px + env(safe-area-inset-top)) 18px 14px;margin-top:14px;border:1px solid var(--line);border-radius:18px;background:var(--card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:12.5px;}
.bl-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--violet);box-shadow:0 0 11px var(--violet);}
.bulletin p{flex:1;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bl-time{flex:none;font-variant-numeric:tabular-nums;color:var(--violet);}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 4px;}
.mark{display:flex;align-items:center;gap:12px;font-size:clamp(19px,3.4vw,24px);font-weight:700;letter-spacing:-.01em;}
.mark-orb{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--violet),var(--rose));box-shadow:0 0 18px -2px var(--violet);flex:none;}
.toggle{width:44px;height:44px;border-radius:14px;border:1px solid var(--line2);background:var(--card);backdrop-filter:blur(10px);color:var(--violet);font-size:18px;cursor:pointer;transition:.25s;}
.toggle:hover{background:var(--violet);border-color:var(--violet);color:#fff;}
.hero{text-align:center;margin-top:clamp(28px,5vw,56px);}
.pill-tag{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--violet);border:1px solid var(--line2);border-radius:30px;padding:6px 16px;background:var(--card);backdrop-filter:blur(8px);margin-bottom:20px;}
.hero h1{font-size:clamp(40px,10vw,90px);font-weight:800;line-height:1.02;letter-spacing:-.03em;background:linear-gradient(120deg,var(--violet),var(--rose),var(--sky));-webkit-background-clip:text;background-clip:text;color:transparent;word-break:break-word;}
.sub{max-width:58ch;margin:20px auto 0;color:var(--sub);font-size:clamp(15px,2.5vw,17.5px);}
.spot{position:relative;margin-top:clamp(30px,5vw,52px);background:var(--card);border:1px solid var(--line2);border-radius:28px;padding:clamp(28px,5vw,46px);text-align:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden;}
.spot-glow{position:absolute;top:-40%;left:50%;transform:translateX(-50%);width:70%;height:120%;background:radial-gradient(circle,rgba(167,139,250,.3),transparent 60%);pointer-events:none;}
.spot-cap{position:relative;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--violet);}
.spot-domain{position:relative;font-size:clamp(24px,6vw,48px);font-weight:800;letter-spacing:-.02em;margin:14px 0 14px;word-break:break-all;}
.spot-stat{position:relative;display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--sub);}
.spot-stat i{width:8px;height:8px;border-radius:50%;background:var(--sky);box-shadow:0 0 10px var(--sky);}
.spot-act{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:13px;margin-top:26px;}
.cta{font-size:14.5px;font-weight:600;padding:13px 30px;border-radius:30px;cursor:pointer;transition:.25s;border:1px solid transparent;}
.cta-go{background:linear-gradient(120deg,var(--violet),var(--rose));color:#fff;}
.cta-go:hover{transform:translateY(-2px);box-shadow:0 14px 32px -12px var(--violet);}
.cta-cp{background:var(--card2);border-color:var(--line2);color:var(--ink);}.cta-cp:hover{border-color:var(--violet);color:var(--violet);}
.cta-save{font-size:12.5px;color:var(--dim);cursor:pointer;}.cta-save:hover{color:var(--violet);}
.seg{margin-top:clamp(36px,6vw,62px);}
.seg-h{display:flex;align-items:center;gap:14px;font-size:clamp(19px,4vw,27px);font-weight:700;letter-spacing:-.01em;margin-bottom:24px;}
.seg-no{flex:none;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--violet),var(--rose));border-radius:10px;padding:4px 11px;}
.lanes{display:grid;gap:10px;}
.lane{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 20px;backdrop-filter:blur(12px);transition:.22s;}
.lane:hover{border-color:var(--line2);transform:translateX(4px);}
.ln-no{flex:none;font-size:13px;font-weight:700;color:var(--violet);width:26px;}
.ln-host{flex:1;font-size:clamp(13.5px,3vw,16px);word-break:break-all;}
.ln-ok{flex:none;display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--sub);}
.ln-ok i{width:7px;height:7px;border-radius:50%;background:var(--sky);box-shadow:0 0 7px var(--sky);}
.ln-cp{flex:none;font-size:12.5px;font-weight:600;background:var(--card2);border:1px solid var(--line2);border-radius:20px;color:var(--ink);padding:7px 17px;cursor:pointer;transition:.22s;}
.ln-cp:hover{background:var(--violet);border-color:var(--violet);color:#fff;}
.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.tip{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;backdrop-filter:blur(12px);transition:.22s;}
.tip:hover{border-color:var(--line2);transform:translateY(-3px);}
.tip-i{font-size:15px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--violet),var(--rose));width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:11px;margin-bottom:14px;}
.tip b{display:block;font-size:16px;margin-bottom:7px;}
.tip p{color:var(--sub);font-size:13.5px;}
.hint{margin-top:16px;background:var(--card);border:1px solid var(--line2);border-left:4px solid var(--violet);border-radius:14px;padding:15px 20px;color:var(--sub);font-size:13.5px;backdrop-filter:blur(10px);}.hint strong{color:var(--violet);}
.links{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.lnk{display:flex;flex-direction:column;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;cursor:pointer;backdrop-filter:blur(12px);transition:.25s;}
.lnk:hover{border-color:var(--violet);transform:translateY(-3px);box-shadow:0 16px 36px -20px var(--violet);}
.lnk-k{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--violet);}
.lnk-v{font-size:15px;font-weight:600;word-break:break-all;}
.foot{margin-top:clamp(44px,7vw,72px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:24px 4px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);}
.foot-id{font-size:13.5px;font-weight:600;color:var(--violet);}
.foot nav{display:flex;flex-wrap:wrap;gap:18px;}.foot nav a{color:var(--sub);font-size:13px;transition:.2s;}.foot nav a:hover{color:var(--violet);}
.foot small{color:var(--dim);font-size:12.5px;width:100%;}
.toast{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom));transform:translate(-50%,16px);z-index:60;opacity:0;pointer-events:none;background:var(--card2);border:1px solid var(--violet);border-radius:30px;padding:13px 22px;font-size:13.5px;color:var(--ink);backdrop-filter:blur(16px);box-shadow:0 16px 40px -14px var(--violet);transition:.28s cubic-bezier(.2,.8,.2,1);}
.toast span[aria-hidden]{color:var(--violet);}.toast.on{opacity:1;transform:translate(-50%,0);pointer-events:auto;}
.rise{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1);}.rise.on{opacity:1;transform:none;}
@media (max-width:780px){.tips,.links{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}.rise{opacity:1;transform:none;}.blob{animation:none;}}
