/* =============================================================
   Airacle PPT — Master Stylesheet

   TOC:
   1. Variables & Reset
   2. Background & Ambient Effects
   3. Slide System
   4. Top Bar & Navigation
   5. Typography
   6. Glass Cards & Grids
   7. Icons & Stats
   8. Team Cards
   9. Demo & Feature Cards
   10. Tech Bars & Timeline
   11. Image Gallery
   12. Contribution Bars
   13. Vision Section
   14. Cover Page
   15. Cursor
   16. Responsive
   ============================================================= */

/* ----- 1. Variables & Reset ----- */
:root {
  --bg: #050510;
  --card: rgba(10,12,30,.55);
  --card-hover: rgba(16,20,48,.75);
  --border: rgba(255,255,255,.06);
  --border-hover: rgba(0,180,255,.3);
  --cyan: #00d4ff;
  --purple: #7b68ee;
  --pink: #ff6b9d;
  --green: #00ffb0;
  --gold: #ffd700;
  --orange: #ff8c42;
  --text: #e8eaf6;
  --text2: #8892b0;
  --text3: #4a5070;
  --fn: 'Noto Sans SC','PingFang SC',sans-serif;
  --fe: 'Inter','Space Grotesk',sans-serif;
  --fm: 'JetBrains Mono',monospace;
}
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html,body {
  width:100%; height:100%; overflow:hidden;
  font-family:var(--fn); background:var(--bg); color:var(--text);
  -webkit-font-smoothing:antialiased; cursor:none;
}

/* ----- 2. Background & Ambient ----- */
#bgCanvas { position:fixed; top:0; left:0; width:100%; height:100%; z-index:0; pointer-events:none; }
/* Slide Background Layer */
.slide-bg-layer {
  position:fixed; top:0; left:0; width:100%; height:100%; z-index:1;
  pointer-events:none; overflow:hidden;
}
.slide-bg {
  position:absolute; top:0; left:0; width:100%; height:100%;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 1s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
.slide-bg.active {
  opacity:1;
}
.slide-bg::after {
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(2,2,3,.82) 0%, rgba(2,2,3,.55) 40%, rgba(2,2,3,.75) 100%),
    linear-gradient(135deg, rgba(0,40,80,.3) 0%, transparent 50%);
}
/* Ken Burns animation */
@keyframes kenBurns1 { 0%{transform:scale(1) translate(0,0)} 50%{transform:scale(1.08) translate(-1.5%,-1%)} 100%{transform:scale(1) translate(0,0)} }
@keyframes kenBurns2 { 0%{transform:scale(1.05) translate(1%,0)} 50%{transform:scale(1) translate(-1%,1.5%)} 100%{transform:scale(1.05) translate(1%,0)} }
@keyframes kenBurns3 { 0%{transform:scale(1) translate(0,1%)} 50%{transform:scale(1.1) translate(1%,-1%)} 100%{transform:scale(1) translate(0,1%)} }
@keyframes kenBurns4 { 0%{transform:scale(1.06) translate(-1%,0.5%)} 50%{transform:scale(1) translate(0.5%,-0.5%)} 100%{transform:scale(1.06) translate(-1%,0.5%)} }
.slide-bg.kb1 { animation:kenBurns1 20s ease-in-out infinite; }
.slide-bg.kb2 { animation:kenBurns2 22s ease-in-out infinite; }
.slide-bg.kb3 { animation:kenBurns3 18s ease-in-out infinite; }
.slide-bg.kb4 { animation:kenBurns4 24s ease-in-out infinite; }

/* Floating Typography Layer */
.floating-text-layer {
  position:fixed; top:0; left:0; width:100%; height:100%; z-index:2;
  pointer-events:none; overflow:hidden;
}
.floating-text {
  position:absolute;
  font-family:var(--fe);
  font-weight:900;
  color:rgba(255,255,255,.025);
  white-space:nowrap;
  user-select:none;
  will-change:transform;
  line-height:1;
}
@keyframes floatDrift1 { 0%{transform:translate(0,0)} 50%{transform:translate(30px,-40px)} 100%{transform:translate(0,0)} }
@keyframes floatDrift2 { 0%{transform:translate(0,0)} 50%{transform:translate(-40px,25px)} 100%{transform:translate(0,0)} }
@keyframes floatDrift3 { 0%{transform:translate(0,0)} 50%{transform:translate(20px,35px)} 100%{transform:translate(0,0)} }
@keyframes floatDrift4 { 0%{transform:translate(0,0)} 50%{transform:translate(-25px,-30px)} 100%{transform:translate(0,0)} }
.noise {
  position:fixed; top:0; left:0; width:100%; height:100%; z-index:1;
  pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}
.mesh-blob { position:fixed; border-radius:50%; filter:blur(100px); pointer-events:none; z-index:1; will-change:transform; }
.blob-1 { width:600px; height:600px; background:conic-gradient(from 0deg at 50% 50%,rgba(0,120,255,.12),rgba(123,104,238,.1),rgba(255,107,157,.05),rgba(0,120,255,.12)); top:-15%; left:-10%; animation:blobDrift1 20s ease-in-out infinite; }
.blob-2 { width:450px; height:450px; background:conic-gradient(from 180deg at 50% 50%,rgba(123,104,238,.1),rgba(0,255,176,.06),rgba(0,120,255,.08),rgba(123,104,238,.1)); bottom:-10%; right:-8%; animation:blobDrift2 25s ease-in-out infinite; }
@keyframes blobDrift1 { 0%,100%{transform:translate(0,0) scale(1) rotate(0deg)} 33%{transform:translate(40px,30px) scale(1.1) rotate(120deg)} 66%{transform:translate(-20px,50px) scale(.95) rotate(240deg)} }
@keyframes blobDrift2 { 0%,100%{transform:translate(0,0) scale(1) rotate(0deg)} 50%{transform:translate(-50px,-30px) scale(1.15) rotate(180deg)} }

/* ----- 3. Slide System ----- */
.deck { position:relative; width:100%; height:100%; z-index:10; }
.slide {
  position:absolute; top:0; left:0; width:100%; height:100%;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:70px 80px 80px; opacity:0; visibility:hidden; perspective:1200px;
}
.slide.active { opacity:1; visibility:visible; }

/* ----- 4. Top Bar & Navigation ----- */
.topbar { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; justify-content:space-between; align-items:center; padding:18px 36px; background:linear-gradient(180deg,rgba(5,5,16,.95) 0%,transparent 100%); }
.logo-area { display:flex; align-items:center; gap:12px; }
.logo-cube { width:34px; height:34px; position:relative; transform-style:preserve-3d; animation:logoSpin 8s linear infinite; }
@keyframes logoSpin { 0%{transform:rotateY(0)} 100%{transform:rotateY(360deg)} }
.logo-cube-face { position:absolute; width:34px; height:34px; display:flex; align-items:center; justify-content:center; font-family:var(--fe); font-weight:900; font-size:15px; color:#fff; border-radius:6px; }
.logo-cube .f { background:linear-gradient(135deg,var(--cyan),var(--purple)); transform:translateZ(17px); }
.logo-cube .b { background:linear-gradient(135deg,var(--purple),var(--pink)); transform:rotateY(180deg) translateZ(17px); }
.logo-cube .l { background:linear-gradient(135deg,var(--green),var(--cyan)); transform:rotateY(-90deg) translateZ(17px); }
.logo-cube .r { background:linear-gradient(135deg,var(--pink),var(--orange)); transform:rotateY(90deg) translateZ(17px); }
.logo-name { font-family:var(--fe); font-weight:800; font-size:1.15rem; background:linear-gradient(135deg,var(--cyan),var(--purple)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; letter-spacing:3px; }
.topbar-right { display:flex; align-items:center; gap:20px; }
.slide-num { font-family:var(--fm); font-size:.85rem; color:var(--text3); }
.slide-num .cur { color:var(--cyan); font-weight:600; font-size:1.2rem; }

/* Progress bar */
.progress { position:fixed; top:0; left:0; height:2px; z-index:200; transition:width .6s cubic-bezier(.4,0,.2,1); }
.progress-inner { width:100%; height:100%; background:linear-gradient(90deg,var(--cyan),var(--purple),var(--pink),var(--orange)); background-size:300% 100%; animation:progShimmer 3s linear infinite; }
@keyframes progShimmer { 0%{background-position:0 0} 100%{background-position:300% 0} }

/* Mini-map (right side) */
.minimap { position:fixed; right:20px; top:50%; transform:translateY(-50%); z-index:100; display:flex; flex-direction:column; gap:12px; align-items:center; }
.minimap-dot { width:3px; height:18px; border-radius:2px; background:rgba(255,255,255,.1); cursor:pointer; transition:all .4s; position:relative; }
.minimap-dot::after { content:attr(data-label); position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:.65rem; color:transparent; white-space:nowrap; transition:all .3s; pointer-events:none; font-family:var(--fe); font-weight:500; letter-spacing:1px; }
.minimap-dot:hover::after { color:var(--text2); }
.minimap-dot:hover { background:rgba(0,212,255,.4); height:24px; }
.minimap-dot.active { background:var(--cyan); height:28px; box-shadow:0 0 12px rgba(0,212,255,.4); }
.minimap-dot.active::after { color:var(--cyan); }

/* Bottom nav */
.bottom-nav { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:100; display:flex; gap:4px; padding:8px 14px; background:rgba(5,5,16,.7); border-radius:40px; border:1px solid rgba(255,255,255,.04); backdrop-filter:blur(20px); }
.bnav-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.1); border:none; cursor:pointer; transition:all .4s; padding:0; }
.bnav-dot:hover { background:rgba(0,212,255,.3); }
.bnav-dot.active { width:32px; border-radius:4px; background:linear-gradient(90deg,var(--cyan),var(--purple)); box-shadow:0 0 14px rgba(0,212,255,.3); }

/* Arrow buttons */
.arrow-btn { position:fixed; top:50%; z-index:100; width:50px; height:50px; border-radius:50%; background:rgba(5,5,16,.4); border:1px solid rgba(255,255,255,.06); color:var(--text3); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1rem; transition:all .35s; backdrop-filter:blur(10px); }
.arrow-btn:hover { color:var(--cyan); border-color:var(--cyan); background:rgba(0,120,255,.08); box-shadow:0 0 20px rgba(0,180,255,.15); transform:translateY(-50%) scale(1.08); }
.arrow-btn.prev { left:16px; transform:translateY(-50%); }
.arrow-btn.next { right:16px; transform:translateY(-50%); }

/* ----- 5. Typography ----- */
.tag { display:inline-flex; align-items:center; gap:8px; font-family:var(--fm); font-size:.7rem; font-weight:600; color:var(--cyan); letter-spacing:4px; text-transform:uppercase; margin-bottom:18px; opacity:.7; }
.tag::before { content:''; width:24px; height:1px; background:currentColor; }
.tag::after { content:''; width:24px; height:1px; background:currentColor; }
h1.hero { font-size:5.5rem; font-weight:900; line-height:1.05; text-align:center; margin-bottom:12px; font-family:var(--fe); letter-spacing:-2px; position:relative; }
h1.hero .char { display:inline-block; opacity:0; transform:translateY(60px) rotateX(-40deg); }
h2.stitle { font-size:2.8rem; font-weight:800; text-align:center; margin-bottom:8px; letter-spacing:-.5px; }
h2.stitle .acc { background:linear-gradient(135deg,var(--cyan),var(--purple)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.sub { font-size:1.05rem; color:var(--text2); text-align:center; max-width:580px; line-height:1.8; margin-bottom:32px; }

/* ----- 6. Glass Cards & Grids ----- */
.gc {
  background:var(--card); border:1px solid var(--border); border-radius:22px;
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); padding:32px;
  transition:all .45s cubic-bezier(.4,0,.2,1); position:relative; overflow:hidden;
}
.gc::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent 10%,rgba(255,255,255,.08) 50%,transparent 90%); }
.gc::after { content:''; position:absolute; inset:0; border-radius:22px; opacity:0; transition:opacity .4s; background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),rgba(0,180,255,.06),transparent 40%); pointer-events:none; }
.gc:hover { border-color:var(--border-hover); background:var(--card-hover); transform:translateY(-5px); }
.gc:hover::after { opacity:1; }

.grid { display:grid; gap:20px; width:100%; max-width:1120px; }
.g2 { grid-template-columns:1fr 1fr; }
.g3 { grid-template-columns:1fr 1fr 1fr; }
.g5 { grid-template-columns:repeat(5,1fr); }

/* ----- 7. Icons & Stats ----- */
.ico { width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:16px; }
.ico.c { background:rgba(0,212,255,.08); border:1px solid rgba(0,212,255,.1); }
.ico.p { background:rgba(123,104,238,.08); border:1px solid rgba(123,104,238,.1); }
.ico.k { background:rgba(255,107,157,.08); border:1px solid rgba(255,107,157,.1); }
.ico.g { background:rgba(0,255,176,.08); border:1px solid rgba(0,255,176,.1); }

.stats { display:flex; gap:52px; justify-content:center; flex-wrap:wrap; }
.st { text-align:center; }
.st-n { font-family:var(--fe); font-size:4rem; font-weight:900; line-height:1; background:linear-gradient(135deg,var(--cyan),var(--purple)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.st-n .u { font-size:1.2rem; font-weight:700; -webkit-text-fill-color:var(--cyan); }
.st-l { font-size:.82rem; color:var(--text3); margin-top:6px; letter-spacing:1px; font-weight:500; }

/* ----- 8. Team Cards ----- */
.tg-title { font-family:var(--fm); font-size:.72rem; font-weight:600; color:var(--purple); letter-spacing:5px; text-align:center; margin:20px 0 14px; display:flex; align-items:center; justify-content:center; gap:12px; }
.tg-title::before,.tg-title::after { content:''; width:30px; height:1px; background:var(--purple); }
.tc { background:var(--card); border:1px solid var(--border); border-radius:18px; padding:22px 16px; text-align:center; transition:all .4s; position:relative; overflow:hidden; cursor:pointer; }
.tc:hover { transform:translateY(-8px) scale(1.03); border-color:var(--cyan); box-shadow:0 12px 40px rgba(0,180,255,.12); }
.tc.founder { border-color:rgba(123,104,238,.2); }
.tc.founder:hover { border-color:var(--purple); box-shadow:0 12px 40px rgba(123,104,238,.15); }
.tc-avatar { width:52px; height:52px; border-radius:50%; margin:0 auto 10px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; font-weight:800; color:#fff; position:relative; overflow:hidden; }
.tc-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.tc-avatar::after { content:''; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(255,255,255,.1); }
.tc.founder .tc-avatar { width:60px; height:60px; font-size:1.3rem; }
.tc-name { font-size:1.05rem; font-weight:700; color:#fff; margin-bottom:3px; }
.tc-role { font-size:.78rem; color:var(--text2); line-height:1.4; }
.tc-badge { display:inline-block; font-size:.6rem; font-weight:700; padding:3px 10px; border-radius:20px; margin-top:8px; letter-spacing:1px; }
.b-prod { background:rgba(0,212,255,.1); color:var(--cyan); }
.b-ops { background:rgba(0,255,176,.1); color:var(--green); }
.b-ai { background:rgba(123,104,238,.1); color:var(--purple); }
.b-hr { background:rgba(255,215,0,.1); color:var(--gold); }
.b-mkt { background:rgba(255,107,157,.1); color:var(--pink); }
.b-fdr { background:linear-gradient(135deg,rgba(123,104,238,.15),rgba(255,107,157,.15)); color:#c4b5fd; }
.b-fs { background:rgba(0,212,255,.08); color:var(--cyan); }

/* ----- 9. Demo & Feature Cards ----- */
.demo-wrap { width:100%; max-width:1100px; }
.demo-hero { background:linear-gradient(135deg,rgba(10,15,40,.85),rgba(5,8,25,.9)); border:1px solid rgba(123,104,238,.1); border-radius:28px; padding:44px; position:relative; overflow:hidden; }
.demo-hero .bg-img { position:absolute; top:0; right:0; width:45%; height:100%; object-fit:cover; opacity:.08; mask-image:linear-gradient(to left,rgba(0,0,0,.5),transparent); -webkit-mask-image:linear-gradient(to left,rgba(0,0,0,.5),transparent); }
.demo-num { font-family:var(--fe); font-size:7rem; font-weight:900; position:absolute; top:10px; right:36px; line-height:1; background:linear-gradient(135deg,rgba(0,212,255,.08),rgba(123,104,238,.08)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.demo-badge { display:inline-flex; align-items:center; gap:8px; padding:5px 16px; border-radius:22px; font-size:.72rem; font-weight:700; letter-spacing:1px; margin-bottom:14px; }
.demo-badge.primary { background:linear-gradient(135deg,var(--cyan),var(--purple)); color:#fff; }
.demo-badge.green { background:linear-gradient(135deg,var(--green),var(--cyan)); color:#fff; }
.demo-title { font-size:1.9rem; font-weight:800; color:#fff; margin-bottom:8px; }
.demo-desc { font-size:.95rem; color:var(--text2); line-height:1.8; margin-bottom:22px; max-width:580px; }
.feat-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.feat-item { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.04); border-radius:14px; transition:all .35s; }
.feat-item:hover { background:rgba(0,180,255,.06); border-color:rgba(0,180,255,.12); transform:translateX(4px); }
.feat-chk { width:26px; height:26px; border-radius:8px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:700; }
.feat-chk.c { background:rgba(0,255,176,.1); color:var(--green); }
.feat-chk.p { background:rgba(123,104,238,.1); color:var(--purple); }
.feat-txt { font-size:.88rem; color:var(--text2); line-height:1.55; }
.feat-txt strong { color:#fff; display:block; margin-bottom:2px; font-size:.92rem; }

/* ----- 10. Tech Bars & Timeline ----- */
.tbar-item { margin-bottom:14px; }
.tbar-top { display:flex; justify-content:space-between; margin-bottom:6px; }
.tbar-label { font-size:.82rem; color:var(--text2); }
.tbar-val { font-family:var(--fm); font-size:.82rem; font-weight:600; color:var(--cyan); }
.tbar-track { width:100%; height:5px; background:rgba(255,255,255,.04); border-radius:3px; overflow:hidden; }
.tbar-fill { height:100%; border-radius:3px; width:0%; position:relative; overflow:hidden; }
.tbar-fill::after { content:''; position:absolute; top:0; left:0; right:0; bottom:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); animation:barShine 2s linear infinite; }
@keyframes barShine { 0%{transform:translateX(-100%)} 100%{transform:translateX(100%)} }
.tbar-fill.fc { background:linear-gradient(90deg,var(--cyan),var(--purple)); }
.tbar-fill.fg { background:linear-gradient(90deg,var(--green),var(--cyan)); }
.tbar-fill.fp { background:linear-gradient(90deg,var(--pink),var(--purple)); }

.tl { position:relative; padding-left:28px; }
.tl::before { content:''; position:absolute; left:6px; top:4px; bottom:4px; width:2px; background:linear-gradient(180deg,var(--cyan),var(--purple),transparent); }
.tl-i { position:relative; margin-bottom:18px; padding-left:24px; }
.tl-i::before { content:''; position:absolute; left:-24px; top:5px; width:10px; height:10px; border-radius:50%; background:var(--cyan); box-shadow:0 0 10px rgba(0,212,255,.5); }
.tl-i .tl-d { font-family:var(--fm); font-size:.75rem; font-weight:600; color:var(--purple); margin-bottom:3px; }
.tl-i .tl-t { font-size:.9rem; color:var(--text2); line-height:1.6; }
.tl-i .tl-t strong { color:#fff; }

/* ----- 11. Image Gallery ----- */
.img-row { display:flex; gap:14px; margin-top:16px; overflow:hidden; }
.img-card { flex:1; min-width:0; height:120px; border-radius:14px; overflow:hidden; position:relative; cursor:pointer; border:1px solid rgba(255,255,255,.06); transition:all .4s; }
.img-card:hover { transform:scale(1.04); border-color:var(--cyan); box-shadow:0 8px 30px rgba(0,180,255,.15); }
.img-card img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.img-card:hover img { transform:scale(1.1); }
.img-card .img-overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,5,16,.8) 0%,transparent 60%); display:flex; align-items:flex-end; padding:10px 12px; }
.img-card .img-label { font-size:.72rem; color:var(--text); font-weight:600; letter-spacing:.5px; }

/* ----- 12. Contribution Bars ----- */
.cbar { margin-bottom:20px; }
.cbar-top { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:8px; }
.cbar-title { font-size:.95rem; color:#fff; font-weight:500; }
.cbar-val { font-family:var(--fe); font-size:1.3rem; font-weight:800; color:var(--cyan); }
.cbar-track { width:100%; height:8px; background:rgba(255,255,255,.03); border-radius:4px; overflow:hidden; }
.cbar-fill { height:100%; border-radius:4px; width:0%; position:relative; overflow:hidden; }
.cbar-fill::after { content:''; position:absolute; top:0; left:0; right:0; bottom:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent); animation:barShine 2s linear infinite; }
.cbar-fill.cg { background:linear-gradient(90deg,var(--green),var(--cyan)); }
.cbar-fill.cp { background:linear-gradient(90deg,var(--cyan),var(--purple)); }
.cbar-fill.co { background:linear-gradient(90deg,var(--gold),var(--pink)); }
.cbar-note { font-size:.73rem; color:var(--text3); margin-top:4px; }

/* ----- 13. Vision ----- */
.vision-box { width:100%; max-width:800px; text-align:center; }
.v-card { background:linear-gradient(135deg,rgba(0,120,255,.04),rgba(123,104,238,.04)); border:1px solid rgba(0,180,255,.1); border-radius:32px; padding:56px 64px; position:relative; overflow:hidden; }
.v-card::before { content:''; position:absolute; top:-120px; left:50%; transform:translateX(-50%); width:400px; height:400px; background:radial-gradient(circle,rgba(0,212,255,.06),transparent 60%); }
.v-card::after { content:''; position:absolute; bottom:-120px; left:50%; transform:translateX(-50%); width:300px; height:300px; background:radial-gradient(circle,rgba(123,104,238,.06),transparent 60%); }
.v-quote { font-size:2.6rem; font-weight:800; line-height:1.45; background:linear-gradient(135deg,#fff 20%,var(--cyan) 60%,var(--purple) 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; margin:20px 0; }
.v-div { width:100px; height:2px; margin:24px auto; background:linear-gradient(90deg,transparent,var(--cyan),var(--purple),transparent); }

/* ----- 14. Cover ----- */
.cover-badge { display:inline-flex; align-items:center; gap:10px; background:rgba(0,212,255,.06); border:1px solid rgba(0,212,255,.12); padding:7px 20px; border-radius:30px; font-size:.78rem; color:var(--cyan); font-weight:500; letter-spacing:1px; margin-bottom:28px; }
.pulse-dot { width:7px; height:7px; border-radius:50%; background:var(--green); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 0%,100%{box-shadow:0 0 0 0 rgba(0,255,176,.4)} 50%{box-shadow:0 0 0 8px rgba(0,255,176,0)} }
.cover-en { font-size:.95rem; color:var(--text3); font-weight:300; letter-spacing:3px; font-family:var(--fe); margin-top:4px; }
.cover-meta { display:flex; gap:28px; margin-top:36px; }
.cm-item { font-size:.82rem; color:var(--text3); display:flex; align-items:center; gap:8px; }
.cm-dot { width:4px; height:4px; border-radius:50%; background:var(--purple); }
.presenters {
  margin-top:22px;
  padding:10px 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(0,212,255,.05));
  color:var(--text);
  font-size:.92rem;
  letter-spacing:.6px;
  font-weight:500;
  box-shadow:0 10px 30px rgba(0,0,0,.16);
}
.scroll-cue { position:absolute; bottom:80px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; animation:cueBounce 2s ease-in-out infinite; }
@keyframes cueBounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-10px)} }
.scroll-cue span { font-size:.68rem; color:var(--text3); letter-spacing:3px; font-family:var(--fm); }
.scroll-cue .cue-arrow { width:20px; height:20px; border-right:1.5px solid var(--cyan); border-bottom:1.5px solid var(--cyan); transform:rotate(45deg); opacity:.6; }

/* ----- 15. Cursor ----- */
.cursor-dot { position:fixed; width:6px; height:6px; background:var(--cyan); border-radius:50%; pointer-events:none; z-index:9999; transition:transform .1s; mix-blend-mode:screen; }
.cursor-ring { position:fixed; width:36px; height:36px; border:1.5px solid rgba(0,212,255,.4); border-radius:50%; pointer-events:none; z-index:9998; transition:width .3s,height .3s,border-color .3s; transform:translate(-50%,-50%); }
.cursor-ring.hover { width:56px; height:56px; border-color:var(--purple); background:rgba(123,104,238,.06); }
.cursor-trail { position:fixed; width:4px; height:4px; background:rgba(0,212,255,.3); border-radius:50%; pointer-events:none; z-index:9997; }
.magnetic { transition:transform .3s cubic-bezier(.4,0,.2,1); }

/* Helper: hover-slide for inline items */
.hover-slide { transition:all .3s; }
.hover-slide:hover { background:rgba(0,212,255,.07) !important; transform:translateX(4px); }

/* ----- 16. Cinematic Fly-In Elements ----- */
/* TODO: 等找到合适的暗黑科技感PNG图后再启用 */
.fly-in {
  display: none !important;  /* 临时禁用 */
  position:absolute;
  pointer-events:none;
  z-index:5;
  will-change:transform,opacity;
  opacity:0;
}
.fly-in img {
  width:100%;
  height:100%;
  object-fit:cover;
  mix-blend-mode:screen;  /* black becomes transparent, glow stays */
  border-radius:8px;
}
/* Subtle idle float after landing */
@keyframes idleFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
@keyframes idleFloat2 { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-10px) rotate(1deg)} }
.fly-in.landed { animation:idleFloat 5s ease-in-out infinite; }
.fly-in.landed.float2 { animation:idleFloat2 6s ease-in-out infinite; }

/* ----- 17. Responsive ----- */
@media(max-width:1024px) {
  .slide { padding:50px 32px 70px; }
  h1.hero { font-size:3.5rem; }
  h2.stitle { font-size:2rem; }
  .g2,.g3,.g5 { grid-template-columns:1fr; }
  .feat-grid { grid-template-columns:1fr; }
  .stats { gap:28px; }
  .st-n { font-size:2.8rem; }
  .demo-num { font-size:4rem; }
  .img-row { flex-direction:column; }
  .img-card { height:80px; }
  .cover-meta { flex-direction:column; gap:10px; align-items:center; }
  .presenters { font-size:.84rem; text-align:center; max-width:92vw; }
}
