
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --c1:#0891b2; --c2:#0e7490; --p1:#8b5cf6; --p2:#7c3aed;
  --dark:#0f172a; --dark2:#1e293b; --mid:#334155;
  --grey:#64748b; --lgrey:#94a3b8;
  --line:rgba(0,0,0,0.07); --white:#fff; --nav-h:64px;
}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans SC',sans-serif;background:#f8fafc;color:#0f172a;overflow-x:hidden;min-height:100vh;cursor:none}

/* ══════════════════ CUSTOM CURSOR ══════════════════ */
#cur-dot{position:fixed;width:8px;height:8px;background:var(--c1);border-radius:50%;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);transition:transform 0.15s,background 0.3s;mix-blend-mode:multiply}
#cur-ring{position:fixed;width:32px;height:32px;border:1px solid rgba(8,145,178,0.4);border-radius:50%;pointer-events:none;z-index:99998;transform:translate(-50%,-50%);transition:width 0.3s,height 0.3s,border-color 0.3s,opacity 0.3s}
body.cur-hover #cur-dot{transform:translate(-50%,-50%) scale(2.5);background:var(--p1)}
body.cur-hover #cur-ring{width:52px;height:52px;border-color:rgba(124,58,237,0.45)}

/* ══════════════════ LOADER ══════════════════ */
#loader{position:fixed;inset:0;background:#f8fafc;z-index:9999;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:opacity 0.8s ease,visibility 0.8s ease;overflow:hidden}
#loader.loaded{opacity:0;visibility:hidden}

/* 背景渐变光晕 */
.ld-bg-glow{position:absolute;inset:0;pointer-events:none}
.ld-bg-glow::before{content:'';position:absolute;width:600px;height:400px;border-radius:50%;background:radial-gradient(ellipse,rgba(8,145,178,0.12) 0%,transparent 70%);top:-100px;left:-150px;animation:ldGlow1 6s ease-in-out infinite}
.ld-bg-glow::after{content:'';position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(ellipse,rgba(124,58,237,0.1) 0%,transparent 70%);bottom:-150px;right:-100px;animation:ldGlow2 6s ease-in-out 3s infinite}

/* 网格背景 */
.ld-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(8,145,178,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(8,145,178,0.04) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}

/* 主圆圈动画 */
.ld-logo-wrap{position:relative;width:120px;height:120px;margin-bottom:40px}

/* SVG 圆弧旋转 */
.ld-svg{position:absolute;inset:0;animation:spin 3s linear infinite}
.ld-svg2{position:absolute;inset:8px;animation:spin 2s linear infinite reverse}
.ld-svg3{position:absolute;inset:18px;animation:spin 1.4s linear infinite}

/* 中心图标容器 */
.ld-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,rgba(8,145,178,0.12),rgba(124,58,237,0.12));border:1px solid rgba(8,145,178,0.2);display:flex;align-items:center;justify-content:center;animation:ldCenterPulse 2s ease-in-out infinite;box-shadow:0 0 0 0 rgba(8,145,178,0.2)}

/* 文字 */
.ld-brand{font-family:'Noto Serif SC',serif;font-size:1.5rem;font-weight:900;letter-spacing:0.2em;margin-bottom:6px;background:linear-gradient(135deg,#0f172a,#0891b2,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 100%;animation:shimmerText 3s linear infinite}
.ld-slogan{font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:rgba(15,23,42,0.35);margin-bottom:32px}

/* 进度区 */
.ld-progress-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;width:200px}
.ld-count{font-family:'Courier New',monospace;font-size:12px;letter-spacing:0.2em;color:rgba(15,23,42,0.4);font-variant-numeric:tabular-nums;align-self:flex-end}
/* Nav CTA 按钮文字颜色确保 */
.nav-r-btn.cta{color:#fff!important}
.nav-r-btn.cta span{color:#fff!important}
.ld-bar-wrap{width:100%;height:2px;background:rgba(15,23,42,0.08);border-radius:2px;overflow:hidden}
.ld-bar{height:100%;background:linear-gradient(90deg,#0891b2,#7c3aed);width:0;transition:width 0.08s linear;border-radius:2px;position:relative}
.ld-bar::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:#7c3aed;box-shadow:0 0 8px rgba(124,58,237,0.6),0 0 16px rgba(124,58,237,0.3)}

/* 底部点状指示 */
.ld-dots{display:flex;gap:6px;margin-top:4px}
.ld-dot{width:4px;height:4px;border-radius:50%;background:rgba(15,23,42,0.15);animation:ldDotBounce 1.2s ease-in-out infinite}
.ld-dot:nth-child(2){animation-delay:0.2s}
.ld-dot:nth-child(3){animation-delay:0.4s}

/* ══════════════════ AURORA BG ══════════════════ */
.aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.aurora-blob{position:absolute;border-radius:50%;filter:blur(80px);animation:auroraMove 12s ease-in-out infinite;opacity:0.08}
.aurora-blob:nth-child(1){width:700px;height:500px;background:radial-gradient(circle,var(--c1),transparent 70%);top:-100px;left:-200px;animation-delay:0s}
.aurora-blob:nth-child(2){width:600px;height:600px;background:radial-gradient(circle,var(--p1),transparent 70%);bottom:-150px;right:-150px;animation-delay:4s}
.aurora-blob:nth-child(3){width:400px;height:400px;background:radial-gradient(circle,#60a5fa,transparent 70%);top:40%;left:60%;animation-delay:8s;opacity:0.06}
.custom-bg{position:fixed;inset:0;z-index:1;background-image:url('/image/beijing.jpg');background-size:cover;background-position:center;background-attachment:fixed;transform:scale(1.08);animation:zoomOut 22s ease-out forwards}
.bg-overlay{position:fixed;inset:0;z-index:2;background:linear-gradient(170deg,rgba(248,250,252,0.88) 0%,rgba(248,250,252,0.96) 100%)}
#particles-canvas{position:fixed;inset:0;z-index:3;pointer-events:none}

/* mouse glow */
#mouse-glow{position:fixed;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(34,211,238,0.04) 0%,transparent 70%);pointer-events:none;z-index:4;transform:translate(-50%,-50%);transition:opacity 0.3s}

/* ══════════════════ PROGRESS ══════════════════ */
.prog{position:fixed;top:0;left:0;height:2px;z-index:10000;width:0;transition:width 0.08s linear}
.prog-fill{height:100%;background:linear-gradient(90deg,var(--c1),var(--p1),var(--c1));background-size:200% 100%;animation:progShimmer 2s linear infinite;box-shadow:0 0 8px var(--c1)}


/* ══════════════════ NAV ══════════════════ */

nav{position:sticky;top:0;z-index:500;background:rgba(255,255,255,0);height:var(--nav-h);display:flex;align-items:stretch;border-bottom:1px solid transparent;transform:translateZ(0);transition:width .45s cubic-bezier(.34,1.56,.64,1),border-radius .45s cubic-bezier(.34,1.56,.64,1),top .4s cubic-bezier(.22,1,.36,1),background .35s ease,border-color .35s ease,border-width .35s ease,box-shadow .35s ease}
nav.scrolled{top:12px;width:calc(100% - 32px);max-width:1200px;margin:0 auto;border-radius:999px;border:1px solid rgba(255,255,255,0.6);background:rgba(255,255,255,0.78);box-shadow:inset 0 1px 0 rgba(255,255,255,0.8),0 8px 32px rgba(0,0,0,0.12)}
.nav-logo{display:flex;align-items:center;gap:12px;padding:0 32px;border-right:1px solid rgba(0,0,0,0.07);flex-shrink:0;text-decoration:none}
.nav-logo-icon{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,rgba(8,145,178,0.1),rgba(124,58,237,0.1));border:1px solid rgba(8,145,178,0.18);display:flex;align-items:center;justify-content:center;transition:all 0.3s}
.nav-logo:hover .nav-logo-icon{box-shadow:0 0 16px rgba(8,145,178,0.2);border-color:rgba(8,145,178,0.4)}
.nav-logo-text{font-family:'Noto Serif SC',serif;font-size:17px;font-weight:700;color:var(--ink,#0f172a);letter-spacing:0.06em}
.nav-logo-text span{color:var(--c1)}
.nav-main{display:flex;align-items:stretch;flex:1}
.nav-item{display:flex;align-items:center;padding:0 22px;font-size:13px;font-weight:500;color:rgba(15,23,42,0.6);text-decoration:none;transition:all 0.25s;white-space:nowrap;border-bottom:2px solid transparent;position:relative}
.nav-item::after{content:'';position:absolute;bottom:-2px;left:50%;right:50%;height:2px;background:linear-gradient(90deg,var(--c1),var(--p1));transition:left 0.3s,right 0.3s}
.nav-item:hover{color:var(--ink,#0f172a)}
.nav-item:hover::after{left:0;right:0}
.nav-item.has-sub>span::after{content:' ▾';font-size:9px;opacity:0.5}
.drop-menu{position:absolute;top:calc(100% + 2px);left:0;background:rgba(255,255,255,0.99);backdrop-filter:blur(24px);border:1px solid rgba(0,0,0,0.08);border-top:2px solid rgba(8,145,178,0.6);min-width:200px;display:none;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,0.12);animation:dropIn 0.2s ease}
.nav-item:hover .drop-menu{display:flex}
.drop-item{padding:11px 20px;font-size:13px;color:rgba(15,23,42,0.55);text-decoration:none;transition:all 0.2s;border-bottom:1px solid rgba(0,0,0,0.07);display:flex;align-items:center;gap:12px;min-width:230px}
.drop-txt{display:flex;flex-direction:column;gap:1px;line-height:1.3}
.drop-title{font-size:13px;font-weight:600;color:rgba(15,23,42,0.78)}
.drop-desc{font-size:11px;color:rgba(15,23,42,0.42)}
.drop-item:last-child{border:none}
.drop-item:hover{color:var(--ink,#0f172a);background:rgba(8,145,178,0.05);padding-left:26px}
.drop-item i{color:var(--c1);width:14px;font-size:12px}
.nav-right{display:flex;align-items:center;margin-left:auto;border-left:1px solid var(--line)}
.nav-r-btn{height:100%;padding:0 20px;font-size:12px;font-weight:500;color:rgba(15,23,42,0.55);text-decoration:none;display:flex;align-items:center;gap:6px;border-left:1px solid var(--line);transition:all 0.2s}
.nav-r-btn:hover{color:var(--ink,#0f172a);background:rgba(15,23,42,0.04)}
.nav-r-btn.cta{background:linear-gradient(135deg,var(--c1),var(--c2));color:var(--dark);font-weight:700;position:relative;overflow:hidden}
.nav-r-btn.cta::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--p1),var(--p2));opacity:0;transition:opacity 0.3s}
.nav-r-btn.cta:hover::before{opacity:1}
.nav-r-btn.cta span{position:relative;z-index:1}
/* ══════════════════ HERO ══════════════════ */
.hero{position:relative;z-index:10;min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:64px 24px}
.hero-inner{width:100%;max-width:800px;text-align:center}

/* Logo */
.hero-logo{margin-bottom:52px;display:inline-block;position:relative;animation:heroLogoIn 1s cubic-bezier(0.22,1,0.36,1) 0.2s both}
.logo-float{animation:floatY 7s ease-in-out infinite}
.ring-deco{position:absolute;border-radius:50%;border:1px solid rgba(8,145,178,0.1);animation:rotateSlow 30s linear infinite}
.logo-box{position:relative;width:92px;height:92px;margin:0 auto 22px}
.logo-box-glow{position:absolute;inset:-8px;border-radius:20px;background:linear-gradient(135deg,rgba(8,145,178,0.2),rgba(124,58,237,0.2));filter:blur(24px);animation:glowPulse 3s ease-in-out infinite}
.logo-box-inner{position:relative;width:100%;height:100%;border-radius:18px;background:rgba(15,23,42,0.03);border:1px solid rgba(34,211,238,0.18);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(20px);transition:all 0.3s}
.logo-box-inner:hover{border-color:rgba(8,145,178,0.4);box-shadow:0 0 24px rgba(8,145,178,0.18)}
.hero-brand{font-family:'Noto Serif SC',serif;font-size:56px;font-weight:900;letter-spacing:0.1em;margin-bottom:8px;background:linear-gradient(135deg,#0f172a 0%,#0891b2 50%,#0f172a 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmerText 4s linear infinite}
.hero-brand-en{font-size:11px;color:rgba(15,23,42,0.35);letter-spacing:0.4em;text-transform:uppercase}

/* typewriter card */
.tw-card{background:rgba(15,23,42,0.03);backdrop-filter:blur(24px);border:1px solid rgba(0,0,0,0.08);border-radius:18px;padding:26px 36px;margin-bottom:18px;box-shadow:0 8px 40px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,255,255,0.04);animation:slideUp 0.8s cubic-bezier(0.22,1,0.36,1) 0.5s both;position:relative;overflow:hidden}
.tw-card::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(8,145,178,0.05),transparent);animation:cardSheen 6s ease-in-out 2s infinite}
.tw-inner{font-family:'Courier New',monospace;font-size:17px;line-height:1.6}
.tw-prompt{color:var(--c1);text-shadow:none}
.tw-text{color:rgba(15,23,42,0.85);margin-left:8px}
.cur-blink{display:inline-block;width:2px;height:1.1em;background:var(--c1);margin-left:3px;vertical-align:text-bottom;animation:blink 1s infinite;box-shadow:0 0 10px var(--c1),0 0 20px rgba(34,211,238,0.4)}

/* hitokoto */
.hito-wrap{margin-bottom:38px;animation:slideUp 0.8s cubic-bezier(0.22,1,0.36,1) 0.65s both}
#hitokoto_text{transition:opacity 0.6s ease;opacity:1;font-size:13px;color:rgba(15,23,42,0.4);font-style:italic;letter-spacing:0.06em}

/* BUTTONS */
.btn-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:36px;animation:slideUp 0.8s cubic-bezier(0.22,1,0.36,1) 0.8s both}
.btn-card{display:flex;align-items:center;justify-content:center;gap:10px;padding:17px 20px;border-radius:14px;font-size:14px;font-weight:600;text-decoration:none;transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1);position:relative;overflow:hidden}
.btn-card::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);transition:left 0.55s}
.btn-card:hover::before{left:100%}
.btn-card:hover{transform:translateY(-4px) scale(1.02)}
.btn-card.primary{background:linear-gradient(135deg,var(--c1),var(--c2));color:var(--dark);box-shadow:0 4px 20px rgba(8,145,178,0.25)}
.btn-card.primary:hover{box-shadow:0 10px 28px rgba(8,145,178,0.35)}
.btn-card.glass{background:rgba(15,23,42,0.04);border:1px solid rgba(0,0,0,0.08);color:var(--ink,#0f172a)}
.btn-card.glass:hover{border-color:rgba(8,145,178,0.3);background:rgba(34,211,238,0.06);box-shadow:0 6px 20px rgba(0,0,0,0.08),0 0 0 1px rgba(8,145,178,0.15)}
.btn-card.glass i{color:var(--c1)}

/* TAGS */
.tags-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:60px;animation:slideUp 0.8s cubic-bezier(0.22,1,0.36,1) 1s both}
.tag{display:flex;align-items:center;gap:7px;padding:8px 18px;border-radius:999px;font-size:12px;color:rgba(15,23,42,0.6);background:rgba(255,255,255,0.85);border:1px solid rgba(0,0,0,0.07);transition:all 0.3s;cursor:default;position:relative;overflow:hidden}
.tag::before{content:'';position:absolute;inset:0;border-radius:999px;background:linear-gradient(135deg,rgba(34,211,238,0.08),rgba(139,92,246,0.08));opacity:0;transition:opacity 0.3s}
.tag:hover::before{opacity:1}
.tag:hover{border-color:rgba(34,211,238,0.3);color:var(--ink,#0f172a);transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.08)}

/* FOOTER AREA (hero) */
.hero-foot{text-align:center;animation:slideUp 0.8s cubic-bezier(0.22,1,0.36,1) 1.1s both}
.soc-row{display:flex;justify-content:center;gap:14px;margin-bottom:20px}
.soc-btn{width:38px;height:38px;border-radius:10px;background:rgba(15,23,42,0.04);border:1px solid rgba(0,0,0,0.08);display:flex;align-items:center;justify-content:center;color:rgba(15,23,42,0.4);font-size:14px;text-decoration:none;transition:all 0.3s;position:relative;overflow:hidden}
.soc-btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(34,211,238,0.15),rgba(139,92,246,0.15));opacity:0;transition:opacity 0.3s}
.soc-btn:hover::before{opacity:1}
.soc-btn:hover{color:var(--ink,#0f172a);border-color:rgba(8,145,178,0.3);transform:translateY(-4px);box-shadow:0 6px 16px rgba(0,0,0,0.1),0 0 12px rgba(8,145,178,0.15)}
.copy-text{font-size:12px;color:rgba(15,23,42,0.3);letter-spacing:0.1em;margin-bottom:10px}
.beian-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}
.beian-row a{font-size:11px;color:rgba(15,23,42,0.3);text-decoration:none;letter-spacing:0.04em;transition:color 0.2s;display:flex;align-items:center;gap:4px}
.beian-row a:hover{color:rgba(15,23,42,0.6)}
.beian-sep{width:1px;height:10px;background:rgba(15,23,42,0.1)}

/* ══════════════════ MARQUEE ══════════════════ */
.mqw{position:relative;z-index:10;border-top:1px solid rgba(0,0,0,0.07);border-bottom:1px solid rgba(0,0,0,0.07);overflow:hidden;background:rgba(255,255,255,0.85);backdrop-filter:blur(12px);padding:13px 0}
.mqt{display:flex;animation:marquee 28s linear infinite;white-space:nowrap}
.mqw:hover .mqt{animation-play-state:paused}
.mqi{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(15,23,42,0.35);padding:0 36px;display:flex;align-items:center;gap:16px}
.mqd{color:var(--c1);font-size:7px;text-shadow:none}

/* ══════════════════ SECTIONS ══════════════════ */
.section{position:relative;z-index:10;padding:88px 52px}
.section.alt{background:rgba(241,245,249,0.9);backdrop-filter:blur(16px);border-top:1px solid rgba(0,0,0,0.07);border-bottom:1px solid rgba(0,0,0,0.07)}
.sec-head{text-align:center;margin-bottom:60px}
.sec-ent{display:inline-flex;align-items:center;gap:12px;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--c1);margin-bottom:16px}
.sec-ent::before,.sec-ent::after{content:'';width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--c1))}
.sec-ent::after{background:linear-gradient(90deg,var(--c1),transparent)}
.sec-title{font-family:'Noto Serif SC',serif;font-size:clamp(24px,3.5vw,40px);font-weight:900;color:var(--ink,#0f172a);letter-spacing:-0.01em;margin-bottom:14px;line-height:1.2}
.sec-sub{font-size:14px;color:var(--grey);line-height:1.85;max-width:520px;margin:0 auto}

/* REVEAL animations — staggered */
.reveal{opacity:0;transform:translateY(32px);transition:opacity 0.75s cubic-bezier(0.22,1,0.36,1),transform 0.75s cubic-bezier(0.22,1,0.36,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity 0.75s cubic-bezier(0.22,1,0.36,1),transform 0.75s cubic-bezier(0.22,1,0.36,1)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity 0.75s cubic-bezier(0.22,1,0.36,1),transform 0.75s cubic-bezier(0.22,1,0.36,1)}
.reveal-right.visible{opacity:1;transform:translateX(0)}

/* PRODUCTS */
.prod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid rgba(0,0,0,0.08)}
.prod-card{background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);padding:36px 32px;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);cursor:pointer;display:flex;gap:20px;align-items:flex-start;position:relative;overflow:hidden}
.prod-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,145,178,0.0),rgba(8,145,178,0.04));opacity:0;transition:opacity 0.4s}
.prod-card::after{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--c1),var(--p1));transform:scaleY(0);transition:transform 0.4s cubic-bezier(0.22,1,0.36,1);transform-origin:top}
.prod-card:hover::before{opacity:1}
.prod-card:hover::after{transform:scaleY(1)}
.prod-card:hover{transform:translateX(3px)}
.prod-icon{width:50px;height:50px;border-radius:12px;flex-shrink:0;background:rgba(34,211,238,0.07);border:1px solid rgba(34,211,238,0.12);display:flex;align-items:center;justify-content:center;font-size:22px;transition:all 0.4s}
.prod-card:hover .prod-icon{background:rgba(34,211,238,0.14);box-shadow:0 0 20px rgba(8,145,178,0.18);transform:scale(1.08)}
.prod-badge{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;background:rgba(34,211,238,0.1);color:var(--c1);padding:2px 8px;border-radius:4px;display:inline-block;margin-bottom:6px;border:1px solid rgba(34,211,238,0.18)}
.prod-badge.purple{background:rgba(139,92,246,0.1);color:#a78bfa;border-color:rgba(139,92,246,0.18)}
.prod-name{font-size:16px;font-weight:700;color:var(--ink,#0f172a);margin-bottom:6px}
.prod-desc{font-size:13px;color:var(--grey);line-height:1.7}
.prod-link{font-size:12px;color:var(--c1);margin-top:12px;display:inline-flex;align-items:center;gap:5px;font-weight:600;text-decoration:none;transition:gap 0.2s}
.prod-card:hover .prod-link{gap:8px}

/* STATS */
.stats-bar{position:relative;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);background:linear-gradient(135deg,rgba(8,145,178,0.06),rgba(124,58,237,0.06));border-top:1px solid rgba(0,0,0,0.07);border-bottom:1px solid rgba(0,0,0,0.07);backdrop-filter:blur(12px)}
.stat-cell{padding:52px 24px;text-align:center;border-right:1px solid rgba(0,0,0,0.07);position:relative;overflow:hidden}
.stat-cell::before{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60%;height:1px;background:linear-gradient(90deg,transparent,#0891b2,transparent);opacity:0;transition:opacity 0.5s}
.stat-cell:hover::before{opacity:1}
.stat-cell:last-child{border:none}
.stat-n{font-size:clamp(36px,5vw,62px);font-weight:900;background:linear-gradient(135deg,var(--c1),var(--p1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1;margin-bottom:10px;font-variant-numeric:tabular-nums}
.stat-lbl{font-size:11px;color:var(--grey);letter-spacing:0.15em;text-transform:uppercase}

/* 3D TILT CARDS */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid rgba(0,0,0,0.08)}
.feat-card{background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);padding:44px 34px;cursor:default;position:relative;overflow:hidden;transition:background 0.35s}
.feat-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(34,211,238,0.04),transparent);opacity:0;transition:opacity 0.35s}
.feat-card:hover::before{opacity:1}
.feat-card:hover{background:rgba(241,245,249,0.95)}
.feat-icon{width:54px;height:54px;border-radius:13px;background:rgba(34,211,238,0.06);border:1px solid rgba(34,211,238,0.1);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:22px;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1)}
.feat-card:hover .feat-icon{background:rgba(34,211,238,0.12);border-color:rgba(8,145,178,0.3);box-shadow:0 0 20px rgba(8,145,178,0.15);transform:scale(1.1) translateY(-2px)}
.feat-num{font-size:10px;letter-spacing:0.22em;color:var(--c1);margin-bottom:11px;font-weight:700;opacity:0.7}
.feat-name{font-size:18px;font-weight:700;color:var(--ink,#0f172a);margin-bottom:10px}
.feat-desc{font-size:13px;color:var(--grey);line-height:1.8}
/* shimmer line on hover */
.feat-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#0891b2,transparent);transform:scaleX(0);transition:transform 0.4s;transform-origin:center}
.feat-card:hover::after{transform:scaleX(1)}

/* CTA */
.cta-banner{position:relative;z-index:10;background:linear-gradient(135deg,rgba(8,145,178,0.05),rgba(124,58,237,0.05));border-top:1px solid rgba(0,0,0,0.07);border-bottom:1px solid rgba(0,0,0,0.07);padding:100px 52px;text-align:center;overflow:hidden}
.cta-banner::before{content:'呓语云创';position:absolute;font-family:'Noto Serif SC',serif;font-size:200px;font-weight:900;color:rgba(255,255,255,0.012);top:50%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;pointer-events:none;letter-spacing:0.08em;animation:textDrift 20s ease-in-out infinite}
/* pulse rings */
.cta-rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.cta-ring{position:absolute;border-radius:50%;border:1px solid rgba(34,211,238,0.06);top:50%;left:50%;transform:translate(-50%,-50%);animation:ctaRingPulse 4s ease-out infinite}
.cta-ring:nth-child(1){width:300px;height:300px;animation-delay:0s}
.cta-ring:nth-child(2){width:500px;height:500px;animation-delay:1.2s}
.cta-ring:nth-child(3){width:700px;height:700px;animation-delay:2.4s}
.cta-tag{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;background:linear-gradient(90deg,var(--c1),var(--p1));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:18px;display:block;position:relative}
.cta-title{font-family:'Noto Serif SC',serif;font-size:clamp(28px,4vw,52px);font-weight:900;color:var(--ink,#0f172a);margin-bottom:16px;line-height:1.1;position:relative}
.cta-sub{font-size:14px;color:var(--grey);margin-bottom:44px;line-height:1.85;position:relative}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}
.cta-btn-main{display:inline-flex;align-items:center;gap:8px;padding:15px 38px;background:linear-gradient(135deg,var(--c1),var(--c2));color:var(--dark);font-size:14px;font-weight:700;text-decoration:none;border-radius:12px;transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 4px 20px rgba(8,145,178,0.25);position:relative;overflow:hidden}
.cta-btn-main::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--p1),var(--p2));opacity:0;transition:opacity 0.3s;border-radius:12px}
.cta-btn-main:hover::before{opacity:1}
.cta-btn-main span,.cta-btn-main i{position:relative;z-index:1}
.cta-btn-main:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 16px 40px rgba(34,211,238,0.4)}
.cta-btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:15px 38px;background:rgba(15,23,42,0.04);color:rgba(15,23,42,0.7);font-size:14px;font-weight:500;text-decoration:none;border-radius:12px;border:1px solid rgba(0,0,0,0.08);transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1)}
.cta-btn-ghost:hover{border-color:rgba(34,211,238,0.3);color:var(--ink,#0f172a);background:rgba(34,211,238,0.06);transform:translateY(-3px)}

/* ══════════════════ AGENT SECTION ══════════════════ */
.agent-section{position:relative;z-index:10;padding:88px 52px;background:linear-gradient(135deg,rgba(8,145,178,0.03),rgba(124,58,237,0.03));border-top:1px solid rgba(0,0,0,0.07);border-bottom:1px solid rgba(0,0,0,0.07);overflow:hidden}
.agent-section::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 50%,rgba(8,145,178,0.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 50%,rgba(124,58,237,0.06) 0%,transparent 50%);pointer-events:none}
.agent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:48px;position:relative}
.agent-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:36px 32px;transition:all 0.4s cubic-bezier(0.22,1,0.36,1);position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.agent-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c1),var(--p1));transform:scaleX(0);transition:transform 0.4s cubic-bezier(0.22,1,0.36,1);transform-origin:left}
.agent-card::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,145,178,0.02),rgba(124,58,237,0.02));opacity:0;transition:opacity 0.4s}
.agent-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.1);border-color:rgba(8,145,178,0.2)}
.agent-card:hover::before{transform:scaleX(1)}
.agent-card:hover::after{opacity:1}
.agent-card-icon{width:52px;height:52px;border-radius:13px;background:rgba(8,145,178,0.07);border:1px solid rgba(8,145,178,0.12);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:20px;transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);position:relative;z-index:1}
.agent-card:hover .agent-card-icon{background:rgba(8,145,178,0.14);border-color:rgba(8,145,178,0.3);box-shadow:0 0 20px rgba(8,145,178,0.15);transform:scale(1.08) translateY(-2px)}
.agent-card-title{font-size:18px;font-weight:700;color:#0f172a;margin-bottom:10px;position:relative;z-index:1}
.agent-card-desc{font-size:13px;color:#64748b;line-height:1.8;position:relative;z-index:1}
.agent-cta{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;position:relative}
.agent-cta-main{display:inline-flex;align-items:center;gap:10px;padding:16px 40px;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff;font-size:15px;font-weight:700;text-decoration:none;border-radius:14px;transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 4px 24px rgba(8,145,178,0.3);position:relative;overflow:hidden}
.agent-cta-main::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--p1),var(--p2));opacity:0;transition:opacity 0.3s;border-radius:14px}
.agent-cta-main:hover::before{opacity:1}
.agent-cta-main span,.agent-cta-main i{position:relative;z-index:1}
.agent-cta-main:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 16px 44px rgba(34,211,238,0.4)}
.agent-cta-ghost{display:inline-flex;align-items:center;gap:8px;padding:16px 32px;background:rgba(255,255,255,0.8);color:rgba(15,23,42,0.6);font-size:14px;font-weight:500;text-decoration:none;border-radius:14px;border:1px solid rgba(0,0,0,0.08);transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1)}
.agent-cta-ghost:hover{border-color:rgba(8,145,178,0.3);color:#0f172a;background:#fff;transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,0.08)}
@media(max-width:900px){.agent-section{padding:64px 24px}.agent-grid{grid-template-columns:1fr}}

/* FOOTER */
footer.site-footer{position:relative;z-index:10;background:rgba(15,23,42,0.97);backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,0.07);padding-bottom:160px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border-bottom:1px solid rgba(0,0,0,0.07)}
.footer-brand{padding:52px 48px;border-right:1px solid rgba(0,0,0,0.07)}
.footer-brand-name{font-family:'Noto Serif SC',serif;font-size:20px;font-weight:700;color:var(--ink,#0f172a);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.footer-brand-name span{color:var(--c1)}
.footer-tagline{font-size:13px;color:rgba(15,23,42,0.45);line-height:1.8;margin-bottom:24px;max-width:260px}
.footer-hotline{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.footer-hotline i{color:var(--c1);font-size:15px}
.footer-hotline-num{font-size:17px;font-weight:700;color:var(--ink,#0f172a);letter-spacing:0.05em}
.footer-hotline-lbl{font-size:11px;color:rgba(15,23,42,0.35);letter-spacing:0.06em}
.f-soc-row{display:flex;gap:10px}
.f-soc{width:34px;height:34px;border-radius:8px;border:1px solid rgba(0,0,0,0.08);display:flex;align-items:center;justify-content:center;font-size:13px;color:rgba(15,23,42,0.4);text-decoration:none;transition:all 0.3s;position:relative;overflow:hidden}
.f-soc::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(34,211,238,0.1),rgba(139,92,246,0.1));opacity:0;transition:opacity 0.3s}
.f-soc:hover::before{opacity:1}
.f-soc:hover{border-color:rgba(8,145,178,0.3);color:var(--ink,#0f172a);transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,0.4)}
.footer-col{padding:52px 32px;border-right:1px solid rgba(0,0,0,0.07)}
.footer-col:last-child{border:none}
.f-col-title{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(15,23,42,0.5);margin-bottom:20px;font-weight:700;padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,0.07)}
.f-links{list-style:none;display:flex;flex-direction:column;gap:12px}
.f-links a{font-size:13px;color:rgba(15,23,42,0.45);text-decoration:none;transition:all 0.25s;display:flex;align-items:center;gap:7px}
.f-links a i{color:var(--c1);font-size:10px;width:10px;transition:transform 0.2s}
.f-links a:hover{color:var(--ink,#0f172a);padding-left:4px}
.f-links a:hover i{transform:translateX(2px)}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:18px 48px;gap:12px}
.footer-copy{font-size:12px;color:rgba(15,23,42,0.3)}
.footer-beian{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.footer-beian a{font-size:11px;color:rgba(15,23,42,0.3);text-decoration:none;display:flex;align-items:center;gap:4px;transition:color 0.2s}
.footer-beian a:hover{color:rgba(15,23,42,0.55)}
.bottom-line{height:1px;background:linear-gradient(90deg,transparent,rgba(34,211,238,0.15),rgba(139,92,246,0.15),transparent)}

/* SCROLL TOP */
.scroll-top-btn{position:fixed;bottom:100px;right:32px;z-index:300;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,0.95);border:1px solid rgba(0,0,0,0.08);color:rgba(15,23,42,0.5);font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1);backdrop-filter:blur(12px)}
.scroll-top-btn.visible{opacity:1;pointer-events:auto}
.scroll-top-btn:hover{border-color:rgba(34,211,238,0.4);color:var(--c1);background:rgba(34,211,238,0.08);transform:translateY(-4px);box-shadow:0 4px 16px rgba(0,0,0,0.1),0 0 12px rgba(8,145,178,0.12)}

/* ══════════════════ KEYFRAMES ══════════════════ */

@keyframes ldGlow1{0%,100%{transform:translate(0,0) scale(1);opacity:1}50%{transform:translate(40px,30px) scale(1.1);opacity:0.7}}
@keyframes ldGlow2{0%,100%{transform:translate(0,0) scale(1);opacity:1}50%{transform:translate(-40px,-30px) scale(1.08);opacity:0.7}}
@keyframes ldCenterPulse{0%,100%{box-shadow:0 0 0 0 rgba(8,145,178,0.2),0 0 0 0 rgba(124,58,237,0.1)}50%{box-shadow:0 0 0 10px rgba(8,145,178,0.05),0 0 0 20px rgba(124,58,237,0.03)}}
@keyframes ldDotBounce{0%,100%{transform:translateY(0);background:rgba(15,23,42,0.15)}50%{transform:translateY(-4px);background:#0891b2}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes pulseIcon{0%,100%{opacity:0.7;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
@keyframes auroraPulse{0%,100%{opacity:1}50%{opacity:0.6}}
@keyframes zoomOut{to{transform:scale(1)}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes rotateSlow{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes glowPulse{0%,100%{opacity:0.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
@keyframes shimmerText{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes cardSheen{0%{left:-100%}40%,100%{left:150%}}
@keyframes heroLogoIn{from{opacity:0;transform:translateY(32px) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes dropIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes progShimmer{0%{background-position:0% 0%}100%{background-position:200% 0%}}
@keyframes auroraMove{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(60px,-40px) scale(1.1)}66%{transform:translate(-40px,60px) scale(0.95)}}
@keyframes ctaRingPulse{0%{transform:translate(-50%,-50%) scale(0.8);opacity:0.3}100%{transform:translate(-50%,-50%) scale(1.2);opacity:0}}
@keyframes textDrift{0%,100%{transform:translate(-50%,-50%) translateX(0)}50%{transform:translate(-50%,-50%) translateX(20px)}}

/* ══════════════════ RESPONSIVE ══════════════════ */
@media(max-width:900px){
  .feat-grid,.prod-grid{grid-template-columns:1fr}
  .stats-bar{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr 1fr}
  .section{padding:64px 24px}
  .cta-banner{padding:72px 24px}
  .footer-bottom{padding:16px 24px}
nav .nav-main,.nav-right{display:none}
  body{cursor:auto}
  #cur-dot,#cur-ring{display:none}
}
@media(max-width:540px){
  .btn-grid{grid-template-columns:1fr}
  .stats-bar{grid-template-columns:1fr 1fr}
  .footer-top{grid-template-columns:1fr}
  .hero{padding:48px 16px}
  .hero-brand{font-size:40px}
}

/* ══ LIGHT THEME OVERRIDES ══ */
body{background:#f8fafc;color:#0f172a}
#loader{background:#f8fafc}
.ld-text{background:linear-gradient(90deg,#0891b2,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.ld-aurora{background:radial-gradient(ellipse 80% 50% at 20% 40%,rgba(8,145,178,0.06) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 70%,rgba(124,58,237,0.06) 0%,transparent 60%)}
.nav-item{color:rgba(15,23,42,0.55)}
.nav-item:hover{color:#0f172a}
.nav-logo-text{color:#0f172a}
.nav-r-btn{color:rgba(15,23,42,0.5)}
.nav-r-btn:hover{color:#0f172a;background:rgba(0,0,0,0.03)}
.drop-menu{background:rgba(255,255,255,0.99);border:1px solid rgba(0,0,0,0.08);border-top:1px solid rgba(8,145,178,0.5)}
.drop-item{color:rgba(15,23,42,0.55);border-bottom:1px solid rgba(0,0,0,0.05)}
.drop-item:hover{background:rgba(8,145,178,0.05);color:#0f172a}
.tw-card{background:rgba(255,255,255,0.9);border:1px solid rgba(0,0,0,0.07);box-shadow:0 4px 24px rgba(0,0,0,0.06)}
.hero-brand{background:linear-gradient(135deg,#0f172a 0%,#0891b2 60%,#0f172a 100%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-brand-en{color:rgba(15,23,42,0.3)}
.tw-prompt{color:#0891b2;text-shadow:0 0 12px rgba(8,145,178,0.3)}
.tw-text{color:rgba(15,23,42,0.8)}
.cur-blink{background:#0891b2;box-shadow:0 0 10px #0891b2}
#hitokoto_text{color:rgba(15,23,42,0.38)}
.btn-card.glass{background:rgba(255,255,255,0.8);border:1px solid rgba(0,0,0,0.08);color:#0f172a}
.btn-card.glass i{color:#0891b2}
.btn-card.glass:hover{background:#fff;border-color:rgba(8,145,178,0.3);box-shadow:0 8px 24px rgba(0,0,0,0.1)}
.tag{background:rgba(255,255,255,0.8);border:1px solid rgba(0,0,0,0.07);color:rgba(15,23,42,0.6)}
.tag:hover{color:#0f172a;background:#fff}
.soc-btn{background:rgba(255,255,255,0.8);border:1px solid rgba(0,0,0,0.08);color:rgba(15,23,42,0.4)}
.soc-btn:hover{color:#0f172a;border-color:rgba(8,145,178,0.35)}
.copy-text{color:rgba(15,23,42,0.25)}
.beian-row a{color:rgba(15,23,42,0.3)}
.mqw{background:rgba(241,245,249,0.95);border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06)}
.mqi{color:rgba(15,23,42,0.35)}
.mqd{color:#0891b2;text-shadow:none}
.section.alt{background:rgba(241,245,249,0.8);border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06)}
.sec-title{color:#0f172a}
.feat-card{background:#ffffff;border:none}
.feat-card:hover{background:#f8fafc}
.feat-name{color:#0f172a}
.prod-card{background:#ffffff}
.prod-card:hover{background:#f8fafc}
.prod-name{color:#0f172a}
.prod-badge{background:rgba(8,145,178,0.1);color:#0891b2;border-color:rgba(8,145,178,0.2)}
.prod-badge.purple{background:rgba(124,58,237,0.1);color:#7c3aed;border-color:rgba(124,58,237,0.2)}
.stat-n{background:linear-gradient(135deg,#0891b2,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.stats-bar{background:linear-gradient(135deg,rgba(8,145,178,0.05),rgba(124,58,237,0.05));border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06)}
.stat-cell{border-right:1px solid rgba(0,0,0,0.06)}
.cta-banner{background:linear-gradient(135deg,rgba(8,145,178,0.05),rgba(124,58,237,0.05));border-top:1px solid rgba(0,0,0,0.06);border-bottom:1px solid rgba(0,0,0,0.06)}
.cta-tag{background:linear-gradient(90deg,#0891b2,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.cta-title{color:#0f172a}
.cta-sub{color:#64748b}
.cta-banner::before{color:rgba(15,23,42,0.015)}
.cta-ring{border-color:rgba(8,145,178,0.07)}
.cta-btn-ghost{background:rgba(255,255,255,0.8);border:1px solid rgba(0,0,0,0.08);color:rgba(15,23,42,0.6)}
.cta-btn-ghost:hover{color:#0f172a;border-color:rgba(8,145,178,0.3);background:#fff}
.scroll-top-btn{background:rgba(255,255,255,0.95);border:1px solid rgba(0,0,0,0.08);color:rgba(15,23,42,0.4)}
.scroll-top-btn:hover{color:#0891b2;border-color:rgba(8,145,178,0.35);background:#fff}
#cur-dot{background:#0891b2;mix-blend-mode:multiply}
#cur-ring{border-color:rgba(8,145,178,0.4)}
body.cur-hover #cur-dot{background:#7c3aed}
body.cur-hover #cur-ring{border-color:rgba(124,58,237,0.5)}
#mouse-glow{background:radial-gradient(circle,rgba(8,145,178,0.04) 0%,transparent 70%)}
.logo-box-inner{background:rgba(255,255,255,0.8);border:1px solid rgba(8,145,178,0.2)}
.prog-fill{background:linear-gradient(90deg,#0891b2,#7c3aed,#0891b2)}
.aurora-blob:nth-child(1){background:radial-gradient(circle,#bae6fd,transparent 70%)}
.aurora-blob:nth-child(2){background:radial-gradient(circle,#ddd6fe,transparent 70%)}
.aurora-blob:nth-child(3){background:radial-gradient(circle,#bfdbfe,transparent 70%)}
.aurora-blob{opacity:0.25}
.bg-overlay{background:linear-gradient(170deg,rgba(248,250,252,0.8) 0%,rgba(248,250,252,0.92) 100%)}
.sec-ent{color:#0891b2}
.sec-ent::before{background:linear-gradient(90deg,transparent,#0891b2)}
.sec-ent::after{background:linear-gradient(90deg,#0891b2,transparent)}
.feat-icon{background:rgba(8,145,178,0.07);border:1px solid rgba(8,145,178,0.12)}
.feat-card:hover .feat-icon{background:rgba(8,145,178,0.14);border-color:rgba(8,145,178,0.3);box-shadow:0 0 20px rgba(8,145,178,0.15)}
.prod-icon{background:rgba(8,145,178,0.07);border:1px solid rgba(8,145,178,0.12)}
.prod-card:hover .prod-icon{box-shadow:0 0 16px rgba(8,145,178,0.15)}
.feat-grid,.prod-grid{background:rgba(0,0,0,0.06);border:1px solid rgba(0,0,0,0.07)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.06)}

/* ══ FINAL LIGHT POLISH ══ */

/* 全局文字修正 */
.tag{color:rgba(15,23,42,0.6)!important}
.beian-row a:hover{color:rgba(15,23,42,0.65)!important}
.beian-sep{background:rgba(15,23,42,0.12)!important}
.soc-btn:hover{color:#0f172a!important}

/* 卡片阴影系统 — 白底专用 */
.feat-card{box-shadow:0 1px 3px rgba(0,0,0,0.05)}
.feat-card:hover{box-shadow:0 8px 32px rgba(0,0,0,0.08)!important;transform:translateY(-2px)}
.prod-card{box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.prod-card:hover{box-shadow:0 8px 32px rgba(0,0,0,0.09)!important}
.tw-card{box-shadow:0 2px 16px rgba(0,0,0,0.06),inset 0 1px 0 rgba(255,255,255,0.8)!important}

/* Section 背景精修 */
.section{background:transparent}
.section.alt{background:#f1f5f9!important;backdrop-filter:none}

/* Stats bar 精修 */
.stats-bar{background:#fff!important;border-top:1px solid #e2e8f0!important;border-bottom:1px solid #e2e8f0!important}
.stat-cell{border-right:1px solid #e2e8f0!important;padding:52px 32px}
.stat-lbl{color:#94a3b8!important}

/* 产品网格精修 */
.feat-grid{gap:1px;background:#e2e8f0!important;border:1px solid #e2e8f0!important;border-radius:12px;overflow:hidden}
.prod-grid{gap:1px;background:#e2e8f0!important;border:1px solid #e2e8f0!important;border-radius:12px;overflow:hidden}
.feat-card{background:#fff!important;border-radius:0}
.prod-card{background:#fff!important;border-radius:0}

/* Marquee 精修 */
.mqw{background:#f8fafc!important;border-color:#e2e8f0!important}
.mqi{color:#94a3b8!important}

/* CTA Banner 精修 */
.cta-banner{background:linear-gradient(135deg,#f0f9ff,#faf5ff)!important;border-color:#e2e8f0!important}
.cta-title{color:#0f172a!important}
.cta-sub{color:#64748b!important}
.cta-banner::before{color:rgba(15,23,42,0.02)!important}

/* Footer 精修 — 保留深色 footer */
footer.site-footer{background:#0f172a!important}
.footer-brand-name{color:#fff!important}
.footer-tagline{color:rgba(255,255,255,0.45)!important}
.footer-hotline-num{color:#fff!important}
.footer-hotline-lbl{color:rgba(255,255,255,0.3)!important}
.f-col-title{color:rgba(255,255,255,0.5)!important;border-bottom-color:rgba(255,255,255,0.06)!important}
.f-links a{color:rgba(255,255,255,0.35)!important}
.f-links a:hover{color:#fff!important}
.footer-copy{color:rgba(255,255,255,0.25)!important}
.footer-beian a{color:rgba(255,255,255,0.25)!important}
.footer-beian a:hover{color:rgba(255,255,255,0.55)!important}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.06)!important}
.f-soc{border-color:rgba(255,255,255,0.1)!important;color:rgba(255,255,255,0.3)!important}
.f-soc:hover{border-color:rgba(8,145,178,0.5)!important;color:var(--c1)!important;background:rgba(8,145,178,0.08)!important}
.bottom-line{background:linear-gradient(90deg,transparent,rgba(8,145,178,0.2),rgba(124,58,237,0.2),transparent)!important}

/* Nav CTA 按钮文字颜色确保 */

/* Loader bar 轨道 */
.ld-bar-wrap{background:rgba(15,23,42,0.06)!important}

/* 粒子连线颜色 — 浅色背景下更轻 */
/* (JS里处理opacity) */

/* Progress bar 投影 */
.prog{box-shadow:none}

/* hero区微调 */
.hero-brand-en{letter-spacing:0.35em;color:rgba(15,23,42,0.28)!important}
.copy-text{color:rgba(15,23,42,0.22)!important}

/* 按钮微调 */
.btn-card.primary{color:#fff!important;box-shadow:0 4px 20px rgba(8,145,178,0.28)!important}
.btn-card.primary:hover{box-shadow:0 10px 28px rgba(8,145,178,0.38)!important}

/* Scroll top */
.scroll-top-btn{box-shadow:0 2px 12px rgba(0,0,0,0.08)!important}
.scroll-top-btn:hover{box-shadow:0 4px 20px rgba(8,145,178,0.18)!important}

/* Aurora blobs — 浅色主题更淡 */
.aurora-blob{opacity:0.18!important;filter:blur(90px)}

/* 背景图覆盖 — 白色主题不需要背景图 */
.custom-bg{opacity:0!important}
.bg-overlay{background:transparent!important}

/* ══════════════════ HISTORY TIMELINE ══════════════════ */
.history-wrap{position:relative;max-width:960px;margin:0 auto;padding:10px 0 20px}
.history-wrap::before{content:'';position:absolute;left:50%;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,rgba(8,145,178,0.15),rgba(8,145,178,0.6) 55%,rgba(139,92,246,0.35));transform:translateX(-50%)}
.history-item{position:relative;width:50%;padding:0 44px 44px 0}
.history-item:nth-child(even){margin-left:50%;padding:0 0 44px 44px}
.history-dot{position:absolute;top:4px;right:-8px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--c1);box-shadow:0 0 0 5px rgba(8,145,178,0.12);z-index:1}
.history-item:nth-child(even) .history-dot{right:auto;left:-8px}
.history-card{background:#fff;border:1px solid rgba(0,0,0,0.06);border-radius:14px;padding:24px 26px;box-shadow:0 4px 20px rgba(0,0,0,0.05);transition:all .35s cubic-bezier(.22,1,.36,1)}
.history-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(8,145,178,0.13);border-color:rgba(8,145,178,0.28)}
.history-year{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--c1);background:rgba(8,145,178,0.08);border:1px solid rgba(8,145,178,0.16);padding:3px 14px;border-radius:20px;margin-bottom:10px}
.history-title{font-size:16px;font-weight:700;color:#0f172a;margin-bottom:8px}
.history-desc{font-size:13px;color:#64748b;line-height:1.75}
@media(max-width:768px){
  .history-wrap::before{left:15px}
  .history-item,.history-item:nth-child(even){width:100%;margin-left:0;padding:0 0 36px 46px}
  .history-dot,.history-item:nth-child(even) .history-dot{left:8px;right:auto}
}


/* ══════════════════════════════════════════════════════════════════
   v2 ENHANCEMENTS —— 无障碍 / 移动端 / 触控 / 动效偏好
   （全部为新增规则，不修改上方任何原有规则与交互行为）
   ══════════════════════════════════════════════════════════════════ */

/* 跳过导航链接（键盘无障碍） */
.skip-link{position:fixed;top:-100px;left:16px;z-index:100000;padding:10px 18px;background:var(--c1);color:#fff;border-radius:8px;font-size:14px;text-decoration:none;transition:top .2s ease}
.skip-link:focus{top:16px}

/* 键盘焦点可见（保留自定义光标不影响键盘用户） */
a:focus-visible,button:focus-visible{outline:2px solid var(--c1);outline-offset:3px;border-radius:6px}
.drop-item:focus-visible,.nav-item:focus-visible,.btn-card:focus-visible{outline:2px solid var(--c1);outline-offset:2px}

/* 装饰性图标不参与交互/朗读 */
i[aria-hidden="true"]{pointer-events:none}

/* 触控优化 */
a,button,.btn-card,.tag,.nav-item,.drop-item,.prod-link,.cta-btn-main,.cta-btn-ghost,.soc-btn,.f-soc{-webkit-tap-highlight-color:transparent}
button{touch-action:manipulation}
html{-webkit-text-size-adjust:100%}

/* 锚点跳转不被吸顶导航遮挡 */
#history{scroll-margin-top:74px}

/* 尊重系统「减弱动态效果」偏好（仅 CSS 动画，JS 逻辑不变） */
@media (prefers-reduced-motion:reduce){
  /* 仅停高开销的粒子画布与自定义光标；页面动画（轮播/闪烁等）保持运行 */
  #particles-canvas{display:none}
  #cur-dot,#cur-ring{display:none}
  body{cursor:auto}
  html{scroll-behavior:auto}
}

/* ── 移动端导航（新增：原版 ≤900px 时隐藏导航，这里补上汉堡菜单，桌面端不受影响） ── */


/* 小屏细节打磨 */
@media(max-width:900px){
}
@media(max-width:540px){
  .scroll-top-btn{right:16px;bottom:92px;width:40px;height:40px}
  .footer-bottom{justify-content:center;text-align:center}
  .footer-beian{justify-content:center}
}
@media(max-width:400px){
  .hero-brand{font-size:30px}
  .hero-brand-en{font-size:13px}
  .sec-title{font-size:21px}
}


/* ══════════════════════════════════════════════════════════════════
   v2 PREMIUM ENTRANCE —— 加载屏揭开后的高级入场编排
   （body.entered 由 main.js 在 loader 完成时添加；未添加时元素保持
     原样可见，绝不遮挡内容，交互逻辑零改动）
   ══════════════════════════════════════════════════════════════════ */

/* 加载屏退场升级：淡出 + 轻微放大 + 模糊，露出下方舞台 */
#loader{transition:opacity .8s ease,visibility .8s ease,transform .8s cubic-bezier(.22,1,.36,1),filter .8s ease}
#loader.loaded{opacity:0;visibility:hidden;transform:scale(1.05);filter:blur(8px)}

/* 入场关键帧：模糊→清晰 + 弹性缓动 */
@keyframes heroInTop{from{opacity:0;transform:translateY(-26px) scale(.96);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes heroInUp{from{opacity:0;transform:translateY(32px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
body.entered nav#mainNav{animation:navIn .6s cubic-bezier(.16,1,.3,1) .05s both}
body.entered .hero-logo{animation:heroInTop 1s cubic-bezier(.16,1,.3,1) .12s both}
body.entered .tw-card{animation:heroInUp 1s cubic-bezier(.16,1,.3,1) .26s both}
body.entered .hito-wrap{animation:heroInUp 1s cubic-bezier(.16,1,.3,1) .38s both}
body.entered .btn-grid{animation:heroInUp 1s cubic-bezier(.16,1,.3,1) .5s both}
body.entered .tags-wrap{animation:heroInUp 1s cubic-bezier(.16,1,.3,1) .62s both}
body.entered .hero-foot{animation:heroInUp 1s cubic-bezier(.16,1,.3,1) .74s both}
body.entered .mqw{animation:heroInUp .9s cubic-bezier(.16,1,.3,1) .9s both}

/* 按钮组内逐个上浮（微错落，更精致） */
body.entered .btn-card{animation:heroInUp .7s cubic-bezier(.16,1,.3,1) both}
body.entered .btn-card:nth-child(1){animation-delay:.52s}
body.entered .btn-card:nth-child(2){animation-delay:.58s}
body.entered .btn-card:nth-child(3){animation-delay:.64s}
body.entered .btn-card:nth-child(4){animation-delay:.7s}
body.entered .btn-card:nth-child(5){animation-delay:.76s}
body.entered .btn-card:nth-child(6){animation-delay:.82s}

/* 滚动 reveal 升级：模糊聚焦（仅隐藏态加模糊，visible 后清晰） */
.reveal:not(.visible),.reveal-left:not(.visible),.reveal-right:not(.visible){filter:blur(6px)}
.reveal,.reveal-left,.reveal-right{transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1),filter .75s ease}
.reveal.visible,.reveal-left.visible,.reveal-right.visible{filter:blur(0)}

/* 减弱动态效果：保留轻量淡入编排，去掉模糊与放大（尊重系统偏好） */
@media (prefers-reduced-motion:reduce){
  #loader.loaded{transform:none;filter:none}
body.entered nav#mainNav{animation:navIn .5s ease-out .05s both}
  body.entered .hero-logo{animation:heroInTop .5s ease-out .05s both}
  body.entered .tw-card,body.entered .hito-wrap,body.entered .btn-grid,body.entered .tags-wrap,body.entered .hero-foot,body.entered .mqw,body.entered .btn-card{animation:heroInUp .5s ease-out .05s both}
  .reveal:not(.visible),.reveal-left:not(.visible),.reveal-right:not(.visible){filter:none}
}
