/* New API × PLUTO STAR — deep space cyan/purple neon (matches zzhyht.top portal) */
@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}
@font-face{
  font-family:"PortalCute";
  src:url("fonts/portal-cute-full-v2.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
:root{
  --bg0:#030409; --bg1:#070a18; --bg2:#0b1025;
  --panel:rgba(12,18,40,.7); --panel-soft:rgba(10,16,34,.55);
  --stroke:rgba(120,200,255,.14); --stroke-2:rgba(0,229,255,.3);
  --cyan:#00e5ff; --cyan2:#38e8ff; --ice:#7ff3ff;
  --purple:#7c5cff; --purple-2:#c9a7ff; --pink:#ff4ecd;
  --green:#00ffa3; --red:#ff4d6d; --amber:#ffc24d;
  --text:#eaf6ff; --muted:#8ba3c7; --muted-2:#7289aa;
  --radius:16px; --tap:44px; --max:min(1120px,92vw);
  --font:"PortalCute",Inter,system-ui,-apple-system,"Segoe UI","PingFang SC","Noto Sans SC",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scrollbar-width:none;overflow-y:scroll;font-size:clamp(15px,.55vw + 9px,20px)}
/* 大屏流式放大：容器随视口变宽，字号跟随 rem 缩放 */
@media(min-width:1280px){:root{--max:min(1280px,86vw)}}
@media(min-width:1600px){:root{--max:min(1480px,82vw)}}
@media(min-width:2000px){:root{--max:min(1760px,80vw)}}
html::-webkit-scrollbar,body::-webkit-scrollbar{width:0!important;height:0!important}
body{margin:0;font-family:var(--font);color:var(--text);line-height:1.55;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1200px 800px at 15% 10%,rgba(0,229,255,.10),transparent 55%),
    radial-gradient(1000px 700px at 85% 20%,rgba(124,92,255,.12),transparent 55%),
    radial-gradient(900px 900px at 50% 100%,rgba(0,255,163,.06),transparent 60%),
    linear-gradient(160deg,var(--bg0),var(--bg1) 45%,var(--bg2));
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
code{font-family:var(--font);font-size:.86em;word-break:break-all;color:var(--ice);background:rgba(0,229,255,.08);padding:.1em .35em;border-radius:6px}
.skip-link{position:absolute;left:-999px;top:0;z-index:100;background:var(--cyan);color:#03121f;padding:10px 14px;border-radius:8px;font-weight:700}
.skip-link:focus{left:12px;top:12px}
a:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

/* ---- background layers ---- */
.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bg-ink{position:absolute;inset:0;background:
  radial-gradient(1000px 520px at 10% -8%,rgba(0,229,255,.10),transparent 55%),
  radial-gradient(800px 480px at 92% 12%,rgba(124,92,255,.12),transparent 50%),
  radial-gradient(700px 420px at 60% 110%,rgba(255,78,205,.05),transparent 55%)}
.bg-panels{position:absolute;inset:-20% -10%;opacity:.8;background:
  linear-gradient(118deg,transparent 38%,rgba(10,16,34,.6) 38% 52%,transparent 52%),
  linear-gradient(298deg,transparent 42%,rgba(11,16,37,.6) 42% 49%,transparent 49%)}
.bg-grid{position:absolute;inset:0;opacity:.5;background-image:
  linear-gradient(rgba(120,220,255,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(120,220,255,.05) 1px,transparent 1px);
  background-size:52px 52px;mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 88%);-webkit-mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 88%)}
.bg-glow{position:absolute;border-radius:50%}
.bg-glow-a{width:520px;height:520px;left:-160px;top:10px;background:radial-gradient(circle,rgba(0,229,255,.13),transparent 65%)}
.bg-glow-b{width:560px;height:560px;right:-180px;bottom:0;background:radial-gradient(circle,rgba(124,92,255,.14),transparent 65%)}

/* ---- signature pieces ---- */
.grad{background:linear-gradient(90deg,#7ff3ff 0%,#fff 22%,#c9a7ff 46%,#ffb0ec 68%,#7ff3ff 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:brandTextFlow 22s linear infinite}
@keyframes brandTextFlow{from{background-position:220% 0}to{background-position:-120% 0}}
.glass{position:relative;overflow:hidden;contain:paint;
  background:linear-gradient(160deg,rgba(12,18,40,.72),rgba(8,12,26,.72));
  border:1px solid var(--stroke);
  box-shadow:0 18px 50px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.05)}
/* 流光边框 — same conic border flow as portal cards */
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;z-index:0;
  background:conic-gradient(from var(--border-angle),transparent 0deg,rgba(0,229,255,.9) 42deg,rgba(124,92,255,.8) 84deg,rgba(255,78,205,.72) 116deg,transparent 166deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;animation:borderFlow var(--flow-duration,32s) linear infinite var(--flow-delay,0s)}
@keyframes borderFlow{to{--border-angle:360deg}}
.glass>*{position:relative;z-index:1}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--tap);padding:.7rem 1.2rem;border-radius:999px;font-weight:700;letter-spacing:-.01em;border:1px solid transparent;transition:transform .25s,box-shadow .25s,border-color .25s,background-position .3s}
.btn-lg{padding:.88rem 1.4rem;font-size:1.02rem}
.btn-primary{color:#03121f;background:linear-gradient(90deg,#53f0ff,#7c9dff,#c77dff);background-size:200% 100%;box-shadow:0 10px 28px rgba(0,229,255,.22)}
.btn-primary:hover{background-position:100% 0;transform:translateY(-1px);box-shadow:0 0 18px rgba(0,229,255,.45),0 14px 34px rgba(124,92,255,.28)}
.btn-ghost{color:var(--text);background:rgba(0,229,255,.05);border-color:var(--stroke)}
.btn-ghost:hover{border-color:var(--stroke-2);background:rgba(0,229,255,.1);box-shadow:0 0 14px rgba(0,229,255,.18)}
.btn-block{width:100%}
.btn-arrow{opacity:.85}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50}
.nav-shell{position:relative;background:linear-gradient(135deg,rgba(10,16,34,.88),rgba(20,14,48,.88));border-bottom:1px solid var(--stroke);backdrop-filter:none;-webkit-backdrop-filter:none}
.nav.scrolled .nav-shell{box-shadow:0 8px 28px rgba(0,0,0,.4)}
.nav-inner{max-width:var(--max);margin:0 auto;min-height:64px;display:flex;align-items:center;gap:12px;padding:8px 16px}
.brand{display:flex;align-items:center;gap:.65rem}
.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;position:relative;isolation:isolate;
  background:radial-gradient(circle,rgba(0,229,255,.14),rgba(124,92,255,.1) 55%,rgba(7,10,24,.9) 78%)}
.brand-mark::before{content:"";position:absolute;inset:-1px;border-radius:12px;padding:1px;z-index:-1;
  background:conic-gradient(from var(--border-angle),transparent 0deg,rgba(0,229,255,.95) 42deg,rgba(124,92,255,.84) 84deg,rgba(255,78,205,.78) 116deg,transparent 166deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:borderFlow 24s linear infinite}
.brand-logo{width:28px;height:28px}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-weight:800;letter-spacing:.5px;
  background:linear-gradient(90deg,#7ff3ff 0%,#fff 22%,#c9a7ff 46%,#ffb0ec 68%,#7ff3ff 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:brandTextFlow 24s linear infinite}
.brand-tag{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  background:linear-gradient(90deg,#8ba3c7 0%,#d7f9ff 28%,#a99cff 55%,#8ba3c7 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:brandTextFlow 30s linear infinite}
.nav-links,.nav-cta{display:none}
.nav-burger{display:inline-flex;margin-left:auto;width:44px;height:44px;border-radius:12px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid var(--stroke)}
.nav-burger span{width:18px;height:2px;background:var(--cyan2);border-radius:2px;transition:.2s;box-shadow:0 0 6px rgba(0,229,255,.5)}
.nav-burger.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger.active span:nth-child(2){opacity:0}
.nav-burger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-drawer{position:fixed;inset:64px 12px auto;z-index:49}
.mobile-drawer-inner{border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:4px}
.mobile-drawer a{min-height:44px;display:flex;align-items:center;padding:0 12px;border-radius:12px;color:var(--muted)}
.mobile-drawer a.is-active,.mobile-drawer a:hover{color:#fff;background:rgba(0,229,255,.1)}
.mobile-drawer-cta{display:grid;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--stroke)}
@media(min-width:1100px){
  .nav{padding:12px 18px 0;background:transparent}
  .nav-shell{max-width:calc(var(--max) + 24px);margin:0 auto;border-radius:999px;border:1px solid var(--stroke-2);
    box-shadow:0 10px 40px rgba(0,0,0,.4),0 0 24px rgba(0,229,255,.08);overflow:hidden}
  .nav-shell::before{content:"";position:absolute;inset:0;border-radius:inherit;
    background:linear-gradient(120deg,transparent 20%,rgba(0,229,255,.08),rgba(124,92,255,.08),transparent 80%);pointer-events:none}
  .nav-shell::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
    background:conic-gradient(from var(--border-angle),transparent 0deg,rgba(0,229,255,.9) 42deg,rgba(124,92,255,.78) 84deg,rgba(255,78,205,.7) 116deg,transparent 166deg,transparent 360deg);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
    animation:borderFlow 32s linear infinite}
  .nav-inner{position:relative;z-index:1}
  .nav-links{display:flex;gap:4px;margin-left:auto}
  .nav-links a{padding:.55rem .85rem;border-radius:999px;color:var(--muted);font-weight:600;min-height:40px;display:inline-flex;align-items:center;letter-spacing:-.01em;transition:.2s}
  .nav-links a.is-active,.nav-links a:hover{color:#fff;background:rgba(0,229,255,.12);text-shadow:0 0 10px rgba(0,229,255,.6)}
  .nav-cta{display:flex;gap:8px;margin-left:8px}
  .nav-burger,.mobile-drawer{display:none!important}
}

/* ---- hero ---- */
.hero{padding:36px 20px 20px}
.hero-layout{max-width:var(--max);margin:0 auto;display:grid;gap:28px;align-items:center}
.hero-badge{display:inline-flex;align-items:center;gap:.55rem;padding:.45rem .95rem;border-radius:999px;font-size:.84rem;font-weight:700;letter-spacing:.06em;color:var(--green);background:rgba(0,255,163,.08);border:1px solid rgba(0,255,163,.3)}
.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green);animation:blink 1.4s infinite}
@keyframes blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}
.hero-title{margin:1rem 0 .75rem;font-size:clamp(2rem,4.2vw,4.4rem);line-height:1.12;font-weight:800;letter-spacing:-.02em;text-shadow:0 0 30px rgba(0,229,255,.12)}
.hero-sub{color:var(--muted);font-size:clamp(1.05rem,1.1vw,1.3rem);max-width:36rem;margin:0}
.hero-sub strong{color:var(--ice);font-weight:700;text-shadow:0 0 12px rgba(0,229,255,.35)}
.hero-actions{display:flex;flex-direction:column;gap:.7rem;margin-top:1.25rem}
.hero-actions .btn{width:100%}
.hero-visual{display:none}
.hero-cluster{border-radius:24px;padding:1.35rem 1.25rem}
.cluster-orb{position:absolute;width:200px;height:200px;right:-40px;top:-50px;border-radius:50%;background:radial-gradient(circle,rgba(0,229,255,.2),rgba(124,92,255,.08) 55%,transparent 72%);pointer-events:none;z-index:0}
.cluster-grid{position:relative;z-index:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cluster-chip{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:14px;background:rgba(7,10,24,.55);border:1px solid var(--stroke);font-weight:600;font-size:.88rem;letter-spacing:-.01em;color:var(--text);transition:.25s}
.cluster-chip:hover{border-color:var(--stroke-2);background:rgba(0,229,255,.07);box-shadow:0 0 16px rgba(0,229,255,.14)}
/* portal svc .ic — gradient tile + flowing border + pulse ring */
.chip-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;position:relative;isolation:isolate;color:var(--cyan);
  background:linear-gradient(135deg,rgba(0,229,255,.16),rgba(124,92,255,.16));border:1px solid rgba(0,229,255,.25)}
.chip-ico::before{display:none}
.chip-ico::after{display:none}
@keyframes iconPulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.12);opacity:0}}
.chip-ico img{width:20px;height:20px;object-fit:contain}
@media(min-width:640px){.hero-actions{flex-direction:row}.hero-actions .btn{width:auto}}
@media(min-width:900px){
  .hero{padding:48px 20px 28px}
  .hero-layout{grid-template-columns:1.05fr .95fr;gap:40px}
  .hero-visual{display:block}
}
@media(min-width:1440px){
  .hero{padding:72px 20px 40px}
  .hero-layout{gap:64px}
  .hero-cluster{padding:1.8rem 1.6rem;border-radius:28px}
  .cluster-grid{gap:14px}
  .cluster-chip{padding:.75rem .9rem;font-size:1rem;border-radius:16px}
  .chip-ico{width:42px;height:42px;border-radius:12px}
  .chip-ico img{width:24px;height:24px}
  .logo-item{font-size:1rem;padding:.5rem .95rem .5rem .5rem}
  .logo-item .chip-ico{width:36px;height:36px}
  .logo-item .chip-ico img{width:21px;height:21px}
  .logo-strip{padding:24px 22px 22px}
  .logo-track{gap:16px}
  .stat{padding:1.3rem 1.3rem 1.3rem 1.45rem}
  .stat b{font-size:1.15rem}
  .section{padding:64px 20px}
  .feat-card,.flow-step{padding:1.8rem 1.7rem}
  .plan-card{padding:2rem 1.8rem 1.8rem}
  .feat-card h3,.flow-step h3{font-size:1.25rem}
  .plan-card h3{font-size:1.4rem}
  .cta-band-inner{padding:2.6rem 2.8rem}
  .nav-inner{min-height:76px;padding:10px 24px}
  .brand-mark{width:46px;height:46px}
  .brand-logo{width:32px;height:32px}
  .brand-name{font-size:1.15rem}
}

/* ---- stats ---- */
.stats{padding:4px 20px 18px}
.stats-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat{position:relative;border-radius:18px;padding:1rem 1rem 1rem 1.15rem;overflow:hidden;contain:paint;
  background:linear-gradient(160deg,rgba(12,18,40,.65),rgba(8,12,26,.65));border:1px solid var(--stroke);display:flex;flex-direction:column;gap:.2rem}
.stat::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:conic-gradient(from var(--border-angle),transparent 0deg,rgba(0,229,255,.85) 42deg,rgba(124,92,255,.75) 84deg,rgba(255,78,205,.68) 116deg,transparent 166deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;animation:borderFlow 32s linear infinite}
.stat-dot{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--ice),var(--purple));box-shadow:0 0 12px rgba(0,229,255,.6);margin-bottom:.35rem}
.stat b{display:block;color:var(--cyan);font-size:1.02rem;font-weight:800;letter-spacing:-.01em;text-shadow:0 0 14px rgba(0,229,255,.45)}
.stat span{color:var(--muted);font-size:.86rem}
@media(min-width:900px){.stats-inner{grid-template-columns:repeat(4,1fr);gap:12px}}

/* ---- logo / client strips ---- */
.logo-strip{position:relative;padding:18px 16px 16px;border-radius:20px;overflow:hidden;contain:paint;
  background:linear-gradient(160deg,rgba(12,18,40,.6),rgba(8,12,26,.6));border:1px solid var(--stroke)}
.logo-strip::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:conic-gradient(from var(--border-angle),transparent 0deg,rgba(0,229,255,.8) 42deg,rgba(124,92,255,.72) 84deg,rgba(255,78,205,.65) 116deg,transparent 166deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;animation:borderFlow 36s linear infinite}
.logo-strip-label{position:relative;z-index:1;text-align:center;font-size:.78rem;margin:0 0 14px;letter-spacing:.22em;font-weight:700;color:var(--cyan);text-transform:uppercase;text-shadow:0 0 12px rgba(0,229,255,.35)}
.logo-marquee{position:relative;z-index:1;overflow:hidden;mask-image:linear-gradient(90deg,transparent,black 4%,black 96%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 4%,black 96%,transparent)}
.logo-strip-alt .logo-marquee{overflow:visible;mask-image:none;-webkit-mask-image:none}
.logo-track{will-change:transform;display:flex;align-items:center;gap:12px;width:max-content;padding:0 16px;margin:0;list-style:none;animation:marquee 42s linear infinite}
.logo-track:hover{animation-play-state:paused}
.logo-track-static{animation:none;width:auto;max-width:var(--max);margin:0 auto;flex-wrap:wrap;justify-content:center;gap:10px 12px;padding:0}
.logo-item{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;color:var(--text);font-weight:600;font-size:.9rem;letter-spacing:-.01em;
  padding:.42rem .75rem .42rem .42rem;border-radius:999px;
  background:rgba(7,10,24,.72);border:1px solid var(--stroke);
  box-shadow:0 4px 16px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.04);transition:.25s}
.logo-item:hover{border-color:var(--stroke-2);box-shadow:0 0 16px rgba(0,229,255,.16)}
.logo-item .chip-ico{width:30px;height:30px;border-radius:9px}
.logo-item .chip-ico::after{animation:none}
.logo-item .chip-ico img{width:18px;height:18px}
.logo-item span:last-child{padding-right:.15rem}
@keyframes marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){
  .logo-track{animation:none;flex-wrap:wrap;width:auto;max-width:var(--max);margin:0 auto;justify-content:center}
  .pulse-dot,.chip-ico::after{animation:none}
  .glass::after,.nav-shell::after,.logo-strip::after,.stat::before,.brand-mark::before,.chip-ico::before,.grad,.brand-name,.brand-tag,.foot-flow{animation:none!important}
}
@media(max-width:640px){
  .logo-item{font-size:.82rem;padding:.36rem .65rem .36rem .36rem}
  .logo-item .chip-ico{width:28px;height:28px}
}
.logo-strip-wrap{max-width:calc(var(--max) + 40px);margin:8px auto 28px;padding:0 20px;display:grid;gap:12px}
@media(max-width:640px){.logo-strip-wrap{max-width:calc(var(--max) + 32px);padding:0 16px}}

/* ---- sections ---- */
.section{padding:44px 20px}
.section-head{max-width:min(760px,92vw);margin:0 auto 24px;text-align:center}
.section-head h2{text-wrap:balance}
@media(min-width:900px){.section-head h2{white-space:nowrap}}
.eyebrow{display:inline-flex;margin-bottom:.65rem;padding:.3rem .75rem;border-radius:8px;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);background:rgba(0,229,255,.1);border:1px solid rgba(0,229,255,.22)}
.section-head h2{font-size:clamp(1.45rem,2.2vw,2.6rem);font-weight:800;margin:0;letter-spacing:-.02em;line-height:1.2}
.section-head p{margin:.55rem 0 0;color:var(--muted);font-size:.98rem}
.twin-grid,.flow-grid{max-width:var(--max);margin:0 auto;display:grid;gap:12px}
.feat-card,.flow-step{border-radius:20px;padding:1.35rem 1.3rem}
.feat-card h3,.flow-step h3,.plan-card h3{margin:0 0 .4rem;font-size:1.08rem;letter-spacing:-.01em;font-weight:800;
  background:linear-gradient(90deg,#eaf6ff 0%,#7ff3ff 24%,#fff 42%,#c9a7ff 64%,#ffb0ec 80%,#eaf6ff 100%);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;}
@keyframes serviceTitleFlow{from{background-position:240% 0}to{background-position:-140% 0}}
.feat-card p,.flow-step p{color:var(--muted);margin:0}
.feat-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:.7rem;color:var(--cyan);position:relative;isolation:isolate;
  background:linear-gradient(135deg,rgba(0,229,255,.16),rgba(124,92,255,.16));border:1px solid rgba(0,229,255,.25);font-weight:800;font-size:1.1rem;text-shadow:0 0 10px rgba(0,229,255,.6)}
@media(min-width:640px){.twin-grid{grid-template-columns:1fr 1fr}.flow-grid{grid-template-columns:1fr 1fr 1fr;gap:14px}}

/* ---- plans ---- */
.plans{padding-top:36px}
.plan-grid{max-width:var(--max);margin:0 auto;display:grid;gap:14px}
.plan-card{border-radius:22px;padding:1.65rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;min-height:100%}
.plan-card h3{margin:0;font-size:1.22rem}
.plan-desc{margin:0;color:var(--muted);font-size:.92rem}
.plan-card ul{margin:.4rem 0 1.1rem;padding:0;list-style:none;display:grid;gap:.5rem;flex:1}
.plan-card li{color:var(--muted);font-size:.92rem;padding-left:1.25rem;position:relative}
.plan-card li::before{content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--purple));box-shadow:0 0 8px rgba(0,229,255,.5)}
.plan-ico{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:1.15rem;color:var(--cyan);position:relative;isolation:isolate;
  background:linear-gradient(135deg,rgba(0,229,255,.16),rgba(124,92,255,.16));border:1px solid rgba(0,229,255,.25);margin-bottom:.3rem;text-shadow:0 0 12px rgba(0,229,255,.6)}
.plan-featured{
  border-color:rgba(0,229,255,.4)!important;
  background:radial-gradient(420px 160px at 50% -20%,rgba(0,229,255,.16),transparent 60%),linear-gradient(165deg,rgba(0,229,255,.12),rgba(10,14,28,.85) 55%,rgba(124,92,255,.1))!important;
  box-shadow:0 0 48px rgba(0,229,255,.14),0 24px 56px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08)!important}
.plan-ribbon{position:absolute;top:16px;right:-30px;transform:rotate(35deg);z-index:2;
  background:linear-gradient(90deg,#53f0ff,#7c9dff,#c77dff);color:#03121f;font-size:.72rem;font-weight:800;padding:.28rem 2.4rem;letter-spacing:.08em;box-shadow:0 4px 14px rgba(0,229,255,.3)}
@media(min-width:768px){.plan-grid{grid-template-columns:1fr 1fr 1fr;align-items:stretch;gap:16px}}
@media(max-width:767px){.plan-featured{order:-1}}

/* ---- flow ---- */
.flow{padding-top:36px}
.flow-step{padding:1.45rem 1.3rem 1.35rem;transition:border-color .25s,transform .25s,box-shadow .25s}
.flow-step:hover{border-color:var(--stroke-2);transform:translateY(-3px);box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 30px rgba(0,229,255,.12)}
.flow-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;margin-bottom:.75rem;font-weight:800;font-size:.95rem;color:#03121f;
  background:linear-gradient(120deg,#53f0ff,#7c9dff,#c77dff);box-shadow:0 8px 20px rgba(0,229,255,.3)}
.flow-link{display:inline-flex;margin-top:.85rem;color:var(--cyan);font-weight:700;font-size:.9rem;transition:.2s}
.flow-link:hover{color:#fff;text-shadow:0 0 10px rgba(0,229,255,.7);text-decoration:none}
.flow-step h3{margin:.1rem 0 .35rem}

/* ---- CTA band ---- */
.cta-band{padding:12px 20px 56px}
.cta-band-inner{max-width:var(--max);margin:0 auto;border-radius:26px;padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:1.15rem;
  background:
    radial-gradient(500px 180px at 10% 0%,rgba(0,229,255,.14),transparent 55%),
    linear-gradient(160deg,rgba(12,18,40,.78),rgba(8,12,26,.78) 55%,rgba(124,92,255,.08))}
.cta-band-copy .eyebrow{margin-bottom:.55rem}
.cta-band-inner h2{margin:0 0 .35rem;font-size:clamp(1.35rem,3vw,1.8rem);letter-spacing:-.02em;font-weight:800}
.cta-band-inner p{margin:0;color:var(--muted)}
@media(min-width:768px){
  .cta-band-inner{flex-direction:row;align-items:center;justify-content:space-between;padding:2rem 2.15rem}
  .cta-band-inner .hero-actions{margin-top:0}
}

/* ---- footer ---- */
.footer{padding:28px 20px 20px;border-top:1px solid var(--stroke);background:rgba(3,4,9,.5)}
.footer-inner{max-width:var(--max);margin:0 auto;display:grid;gap:20px}
.f-brand p{color:var(--muted);margin:.45rem 0 0;font-size:.9rem}
.f-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.f-col{display:flex;flex-direction:column;gap:.35rem}
.f-col b{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin-bottom:.15rem;font-weight:700}
.f-col a{color:var(--muted);font-size:.9rem;padding:.15rem 0;transition:.2s}
.f-col a:hover{color:#fff;text-shadow:0 0 10px rgba(0,229,255,.6)}
.footer-bar{max-width:var(--max);margin:20px auto 0;padding-top:14px;border-top:1px solid var(--stroke);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.82rem}
.footer-bar span{color:var(--muted-2)}
.foot-flow{background:linear-gradient(90deg,#7289aa 0%,#d7f9ff 24%,#7ff3ff 42%,#c9a7ff 62%,#ffb0ec 76%,#7289aa 100%);background-size:240% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:footerTextFlow 24s linear infinite}
@keyframes footerTextFlow{from{background-position:240% 0}to{background-position:-140% 0}}
@media(min-width:720px){.footer-inner{grid-template-columns:1.1fr 2fr;align-items:start;gap:28px}}

/* ---- login ---- */
body.page-login{min-height:100dvh}
.login-simple{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px}
.login-simple .login-back{width:min(100%,420px);margin:0 auto 14px;color:var(--muted);font-weight:600;transition:.2s}
.login-simple .login-back:hover{color:#fff;text-shadow:0 0 10px rgba(0,229,255,.6)}
.login-card{width:min(100%,420px);border-radius:22px;padding:1.55rem 1.35rem 1.4rem}
.login-brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1.05rem}
.login-card h1{font-size:1.4rem;margin:.15rem 0 .35rem;letter-spacing:-.02em;font-weight:800}
.login-card .sub{color:var(--muted);margin:0 0 1.15rem;font-size:.95rem}
.field{display:grid;gap:.4rem;margin-bottom:1rem}
.field label{font-size:.82rem;color:var(--muted);font-weight:600}
.field input{width:100%;min-height:44px;border-radius:14px;border:1px solid var(--stroke);background:rgba(3,4,9,.7);padding:.85rem 1rem;font-size:16px;outline:none;color:var(--text);font-family:var(--font);transition:border-color .2s,box-shadow .2s}
.field input:focus{border-color:var(--stroke-2);box-shadow:0 0 0 4px rgba(0,229,255,.12),0 0 18px rgba(0,229,255,.12)}
.field input::placeholder{color:var(--muted-2)}
.field-row{display:flex;justify-content:flex-end;margin:-.15rem 0 1rem;font-size:.85rem}
.field-row a{color:var(--cyan);font-weight:600}
.field-row a:hover{color:#fff;text-shadow:0 0 10px rgba(0,229,255,.6)}
.login-submit{width:100%}
.login-divider{display:flex;align-items:center;gap:.75rem;margin:1.15rem 0 .9rem;color:var(--muted-2);font-size:.8rem}
.login-divider::before,.login-divider::after{content:"";height:1px;flex:1;background:var(--stroke)}
.oauth-row{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.oauth-btn{min-height:44px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--stroke);font-size:.8rem;font-weight:600;color:var(--muted);background:rgba(0,229,255,.03);transition:.2s}
.oauth-btn:hover{border-color:var(--stroke-2);color:#fff;background:rgba(0,229,255,.08);box-shadow:0 0 12px rgba(0,229,255,.14)}
.login-foot{margin-top:1.15rem;text-align:center;color:var(--muted);font-size:.9rem}
.login-foot a{color:var(--cyan);font-weight:600}
@media(min-width:640px){.oauth-row{grid-template-columns:repeat(4,1fr)}}

/* ---- scroll reveal ---- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.3,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* 网关在线徽章已移除；兜底隐藏 */
.hero-badge{display:none!important}

/* 禁止选中/复制页面内容（表单输入框除外） */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea{-webkit-user-select:text;user-select:text}

.brand-name{white-space:nowrap}

/* ---- 性能：离屏与滚动中暂停动画（与门户一致） ---- */
.glass,.stat,.logo-strip{content-visibility:auto;contain-intrinsic-size:auto 220px}
.is-offscreen::after,.is-offscreen::before,.is-offscreen h3,.is-offscreen .logo-track{animation-play-state:paused!important}
body.is-scrolling .glass::after,body.is-scrolling .stat::before,body.is-scrolling .logo-strip::after,
body.is-scrolling .nav-shell::after,body.is-scrolling .brand-mark::before,
body.is-scrolling .grad,body.is-scrolling .brand-name,body.is-scrolling .brand-tag,body.is-scrolling .foot-flow{animation-play-state:paused!important}
body.is-scrolling .flow-step:hover,body.is-scrolling .cluster-chip:hover,body.is-scrolling .logo-item:hover{transform:none!important;box-shadow:none!important}

/* ---- 扫光特效（transform 驱动，走合成层） ---- */
@keyframes sweep{0%{transform:translateX(-160%) skewX(-18deg)}18%,100%{transform:translateX(260%) skewX(-18deg)}}
.glass::before,.stat>.sweep,.logo-strip>.sweep,.nav-shell>.sweep{
  content:"";position:absolute;top:-10%;bottom:-10%;left:0;width:45%;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.035) 30%,rgba(0,229,255,.14) 50%,rgba(124,92,255,.08) 62%,transparent 100%);
  transform:translateX(-160%) skewX(-18deg);will-change:transform;
  animation:sweep var(--sweep-duration,9s) cubic-bezier(.4,0,.2,1) infinite var(--sweep-delay,0s)}
.glass:nth-child(2n)::before{--sweep-delay:-3s}
.glass:nth-child(3n)::before{--sweep-delay:-6s}
.plan-featured::before{--sweep-duration:7s;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.06) 30%,rgba(0,229,255,.22) 50%,rgba(255,78,205,.1) 62%,transparent 100%)}
.stat,.logo-strip{overflow:hidden}
.stat>.sweep{--sweep-delay:-2s}
.logo-strip>.sweep{--sweep-duration:11s;--sweep-delay:-4s}
.nav-shell>.sweep{--sweep-duration:12s;--sweep-delay:-1s;width:30%}
/* 按钮 hover 扫光 */
.btn{position:relative;overflow:hidden}
.btn::before{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:40%;transform:translateX(-180%) skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);pointer-events:none;transition:none}
.btn:hover::before{animation:sweep 1.1s cubic-bezier(.4,0,.2,1) 1}
.btn>*{position:relative}
/* 暂停策略 */
body.is-scrolling .glass::before,body.is-scrolling .sweep{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.glass::before,.sweep,.btn::before{animation:none!important;display:none}}
.nav-shell{overflow:hidden}
.nav-inner{position:relative;z-index:1}

/* ---- 登录页：大屏双栏舞台 ---- */
.login-stage{position:relative;min-height:100dvh;max-width:calc(var(--max) + 40px);margin:0 auto;padding:88px 20px 48px;display:grid;gap:36px;align-items:center;justify-items:center}
.login-stage .login-back{position:absolute;top:26px;left:20px;width:auto;margin:0;color:var(--muted);font-weight:600;transition:.2s}
.login-stage .login-back:hover{color:#fff;text-shadow:0 0 10px rgba(0,229,255,.6)}
.login-hero{text-align:center;max-width:560px}
.login-hero-logo{position:relative;width:150px;height:150px;margin:0 auto 22px;display:grid;place-items:center}
.login-hero-logo img{width:110px;height:110px;position:relative;z-index:1;filter:drop-shadow(0 0 22px rgba(0,229,255,.45))}
.login-orbit{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(0,229,255,.45);transform:rotate(24deg) scaleY(.42);animation:loginOrbitA 18s linear infinite}
.login-orbit::after{content:"";position:absolute;top:-4px;left:50%;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 10px #00e5ff,0 0 18px #00e5ff;transform:translateX(-50%)}
.login-orbit-b{inset:6px;border-color:rgba(255,78,205,.45);transform:rotate(-56deg) scaleY(.5);animation:loginOrbitB 15s linear infinite}
.login-orbit-b::after{background:#ffb0ec;box-shadow:0 0 10px #ff4ecd,0 0 18px #ff4ecd;top:auto;bottom:-4px}
@keyframes loginOrbitA{to{transform:rotate(384deg) scaleY(.42)}}
@keyframes loginOrbitB{to{transform:rotate(-416deg) scaleY(.5)}}
.login-eyebrow{margin:0 0 .5rem;font-size:.8rem;letter-spacing:.32em;text-transform:uppercase;color:var(--cyan);text-shadow:0 0 12px rgba(0,229,255,.4)}
.login-title{margin:0 0 .8rem;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.12;font-weight:800;letter-spacing:-.02em}
.login-lead{margin:0 auto;color:var(--muted);font-size:clamp(1rem,1.05vw,1.15rem);max-width:30rem}
.login-points{list-style:none;margin:1.4rem auto 0;padding:0;display:grid;gap:.6rem;max-width:22rem;text-align:left}
.login-points li{display:flex;align-items:center;gap:.7rem;color:var(--text);font-size:.95rem}
.login-points i{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--cyan),var(--purple));box-shadow:0 0 10px rgba(0,229,255,.6)}
.login-chips{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px}
.login-card{width:min(100%,480px);border-radius:26px;padding:2rem 1.9rem 1.8rem}
.login-card .brand-mark{width:44px;height:44px}
.login-card .brand-logo{width:30px;height:30px}
.login-card .brand-name{font-size:1rem}
.login-card h2{font-size:clamp(1.5rem,1.8vw,1.9rem);margin:.4rem 0 .35rem;letter-spacing:-.02em;font-weight:800}
.login-card .field input{min-height:50px;font-size:1rem;border-radius:16px}
.login-card .login-submit{min-height:52px;font-size:1.05rem;margin-top:.2rem}
.login-card .oauth-btn{min-height:46px}
@media(min-width:1024px){
  .login-stage{grid-template-columns:1.1fr .9fr;gap:64px;padding:96px 32px 64px;justify-items:stretch}
  .login-hero{text-align:left;max-width:none;justify-self:start}
  .login-hero-logo{margin:0 0 26px}
  .login-lead{margin:0}
  .login-points{margin-left:0;max-width:none}
  .login-chips{justify-content:flex-start}
  .login-card{justify-self:end;width:min(100%,500px);padding:2.4rem 2.3rem 2.1rem}
}
@media(min-width:1440px){
  .login-stage{gap:96px}
  .login-hero-logo{width:180px;height:180px}
  .login-hero-logo img{width:132px;height:132px}
  .login-card{width:min(100%,540px);padding:2.8rem 2.6rem 2.4rem}
}
/* 旧单列布局兜底 */
.login-simple{display:none}

/* ---- 登录页 · 移动端精修 ---- */
@media(max-width:1023px){
  .login-stage{padding:64px 16px 32px;gap:22px;align-content:start}
  .login-stage .login-back{top:18px;left:16px;font-size:.9rem}
  .login-hero{max-width:100%;width:100%}
  .login-hero-logo{width:96px;height:96px;margin:0 auto 12px}
  .login-hero-logo img{width:70px;height:70px;filter:drop-shadow(0 0 14px rgba(0,229,255,.4))}
  .login-eyebrow{font-size:.68rem;letter-spacing:.24em;margin-bottom:.35rem}
  .login-title{font-size:clamp(1.7rem,7.5vw,2.3rem);margin-bottom:.5rem}
  .login-lead{font-size:.92rem;max-width:26rem}
  .login-points{display:none}
  /* 渠道条：单行横滑，不再换行堆叠 */
  .login-chips{margin:1rem -16px 0;padding:0 16px 4px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
  .login-chips::-webkit-scrollbar{display:none}
  .login-chips .logo-item{flex:0 0 auto;font-size:.82rem;padding:.34rem .65rem .34rem .34rem}
  .login-chips .logo-item .chip-ico{width:28px;height:28px}
  .login-card{width:100%;border-radius:22px;padding:1.5rem 1.25rem 1.35rem}
  .login-card .brand-mark{width:38px;height:38px}
  .login-card .brand-logo{width:26px;height:26px}
  .login-card .brand-name{font-size:.9rem}
  .login-card .brand-tag{font-size:.62rem}
  .login-card h2{font-size:1.35rem;margin:.3rem 0 .25rem}
  .login-card .sub{font-size:.9rem;margin-bottom:1rem}
  .login-card .field{margin-bottom:.85rem}
  .login-card .field input{min-height:48px;font-size:16px}
  .login-card .login-submit{min-height:50px}
  .login-card .oauth-row{grid-template-columns:repeat(4,1fr);gap:.45rem}
  .login-card .oauth-btn{min-height:42px;font-size:.74rem;border-radius:10px}
  .login-card .login-divider{margin:1rem 0 .75rem}
  .login-card .login-foot{margin-top:.9rem;font-size:.88rem}
}
@media(max-width:400px){
  .login-title{font-size:1.6rem}
  .login-card .oauth-row{grid-template-columns:1fr 1fr}
}
/* 横屏手机 / 矮窗口：收紧竖向间距 */
@media(max-width:1023px) and (max-height:700px){
  .login-stage{padding-top:56px;gap:14px}
  .login-hero-logo{width:72px;height:72px;margin-bottom:6px}
  .login-hero-logo img{width:54px;height:54px}
  .login-lead{display:none}
}

/* ---- 移动端抽屉菜单：不透明 + 遮罩 ---- */
.mobile-drawer{position:fixed;inset:0;z-index:60;padding:72px 12px 12px;background:rgba(3,4,9,.82)}
.mobile-drawer[hidden]{display:none}
.mobile-drawer-inner{position:relative;border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:6px;
  background:linear-gradient(160deg,#0c1228,#080c1a)!important;border:1px solid var(--stroke-2);
  box-shadow:0 24px 60px rgba(0,0,0,.7),0 0 30px rgba(0,229,255,.1)}
.mobile-drawer-inner::before{display:none}
.mobile-drawer a{min-height:48px;display:flex;align-items:center;padding:0 14px;border-radius:12px;color:var(--text);font-weight:600;font-size:1rem}
.mobile-drawer a.is-active,.mobile-drawer a:hover{color:#fff;background:rgba(0,229,255,.12);text-shadow:0 0 10px rgba(0,229,255,.5)}
.mobile-drawer-cta{display:grid;gap:8px;margin-top:8px;padding-top:12px;border-top:1px solid var(--stroke)}
.mobile-drawer-cta .btn{min-height:48px}
.nav{z-index:70}
body.menu-open{overflow:hidden}

/* ---- 注册页补充字段 ---- */
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.field-inline{display:flex;gap:.5rem}
.field-inline input{flex:1;min-width:0}
.field-btn{flex-shrink:0;min-height:50px;padding:0 1rem;border-radius:16px;font-size:.88rem;white-space:nowrap}
.field-btn:disabled{opacity:.55;cursor:not-allowed}
.field label small{color:var(--muted-2);font-weight:500}
.agree{display:flex;align-items:flex-start;gap:.6rem;margin:.1rem 0 1rem;font-size:.85rem;color:var(--muted);line-height:1.5;cursor:pointer;-webkit-user-select:none;user-select:none}
.agree input{appearance:none;-webkit-appearance:none;width:18px;height:18px;flex-shrink:0;margin-top:1px;border-radius:5px;border:1px solid var(--stroke-2);background:rgba(3,4,9,.7);display:grid;place-items:center;cursor:pointer;transition:.2s}
.agree input:checked{background:linear-gradient(135deg,#53f0ff,#7c9dff,#c77dff);border-color:transparent;box-shadow:0 0 12px rgba(0,229,255,.4)}
.agree input:checked::after{content:"";width:5px;height:9px;border:solid #03121f;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.agree a{color:var(--cyan);font-weight:600}
@media(max-width:1023px){
  .field-grid{grid-template-columns:1fr;gap:0}
  .field-btn{min-height:48px;padding:0 .8rem;font-size:.8rem}
}
@media(max-width:400px){.field-inline{flex-direction:column}.field-btn{width:100%}}

/* ---- 登录/注册页：防止 grid 子项撑破视口 ---- */
.login-stage{grid-template-columns:minmax(0,1fr);width:100%}
.login-stage>*{min-width:0;max-width:100%}
.login-hero,.login-card{min-width:0}
.login-chips{max-width:100%}
@media(min-width:1024px){.login-stage{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}

/* ---- 登录/注册页渠道条：自动跑马灯 ---- */
.login-chips-marquee{position:relative;margin-top:1.5rem;overflow:hidden;max-width:100%;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.login-chips-marquee .login-chips{margin:0;padding:0 8px;flex-wrap:nowrap;justify-content:flex-start;width:max-content;max-width:none;overflow:visible;mask-image:none;-webkit-mask-image:none;
  will-change:transform;animation:marquee 34s linear infinite}
.login-chips-marquee:hover .login-chips{animation-play-state:paused}
.login-chips-marquee .logo-item{flex:0 0 auto}
@media(min-width:1024px){.login-chips-marquee{max-width:min(100%,560px)}}
@media(max-width:1023px){.login-chips-marquee{margin:1rem -16px 0;padding:0}.login-chips-marquee .login-chips{animation-duration:28s}}
@media(prefers-reduced-motion:reduce){.login-chips-marquee .login-chips{animation:none;flex-wrap:wrap;width:auto;justify-content:center}}

/* ---- 移动端菜单：顶栏下滑出的整宽面板 ---- */
.mobile-drawer{padding:64px 0 0;background:rgba(3,4,9,.72)}
.mobile-drawer-inner{border-radius:0 0 24px 24px;padding:8px 14px 18px;gap:2px;
  background:linear-gradient(180deg,#0b1128 0%,#070b19 100%)!important;
  border:0;border-top:1px solid rgba(0,229,255,.18);border-bottom:1px solid var(--stroke-2);
  box-shadow:0 30px 70px rgba(0,0,0,.75),0 0 40px rgba(0,229,255,.08);
  animation:drawerDown .28s cubic-bezier(.2,.8,.3,1)}
@keyframes drawerDown{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.mobile-drawer-inner::after{display:none}
.mobile-drawer a:not(.btn){position:relative;min-height:52px;padding:0 14px 0 34px;border-radius:12px;color:var(--muted);font-weight:600;font-size:1rem;border-bottom:1px dashed rgba(120,200,255,.1)}
.mobile-drawer a:not(.btn):last-of-type{border-bottom:0}
.mobile-drawer a:not(.btn)::before{content:"";position:absolute;left:12px;top:50%;width:7px;height:7px;border-radius:50%;transform:translateY(-50%);
  background:rgba(139,163,199,.35);transition:.2s}
.mobile-drawer a:not(.btn)::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor;transform:translateY(-50%) rotate(45deg);opacity:.5}
.mobile-drawer a:not(.btn).is-active,.mobile-drawer a:not(.btn):hover{color:#fff;background:rgba(0,229,255,.08);text-shadow:0 0 10px rgba(0,229,255,.5)}
.mobile-drawer a:not(.btn).is-active::before,.mobile-drawer a:not(.btn):hover::before{background:linear-gradient(135deg,var(--cyan),var(--purple));box-shadow:0 0 10px rgba(0,229,255,.7)}
.mobile-drawer-cta{grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;padding-top:14px;border-top:1px solid var(--stroke)}
.mobile-drawer-cta .btn{min-height:48px;font-size:.95rem}
.nav-shell{border-bottom-color:transparent}
body.menu-open .nav-shell{border-bottom-color:rgba(0,229,255,.18)}

/* 顶栏永远在抽屉遮罩之上 */
.nav-shell{position:relative;z-index:2}
.mobile-drawer{z-index:1}

/* ---- 登录态：探测完成前隐藏所有登录相关入口（防闪烁），已登录隐藏登录入口 ---- */
html:not(.auth-known) .auth-guest,html:not(.auth-known) .auth-user{visibility:hidden!important}
.auth-user{display:none!important}
html.is-authed .auth-guest{display:none!important}
html.is-authed .auth-user{display:inline-flex!important}
html.is-authed .f-col a.auth-user{display:block!important}
