.s-modules{
  padding:120px 32px;max-width:1280px;margin:0 auto;position:relative;z-index:1;
}

.carousel{
  position:relative;
  background:linear-gradient(160deg, rgba(255,255,255,0.04) 0%, var(--bg-2) 40%, var(--bg-3) 100%);
  border:1px solid rgba(255,255,255,0.10);border-radius:20px;
  padding:60px 64px 32px;overflow:hidden;min-height:440px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);
}
.carousel::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--accent) 50%, transparent 100%);
  opacity:0.4;
}
.carousel::after{
  content:'';position:absolute;top:-80px;right:-80px;
  width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle, var(--accent-soft) 0%, transparent 70%);
  pointer-events:none;
}

.carousel-stage{position:relative;min-height:320px;}

.cslide{
  position:absolute;inset:0;opacity:0;transform:translateY(20px);
  transition:opacity .6s ease, transform .6s ease;
  pointer-events:none;max-width:100%;
}
.cslide.active{opacity:1;transform:translateY(0);pointer-events:auto;position:relative;}

.cslide-inner{
  display:grid;grid-template-columns:1fr 220px;gap:40px;align-items:center;
}
.cslide-content{max-width:620px;}
.cslide-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cslide-icon svg{width:180px;height:180px;filter:drop-shadow(0 0 20px rgba(124,28,225,0.45));}

.ci-draw{
  stroke-dasharray:500;stroke-dashoffset:500;
  animation:ciDraw 1.4s cubic-bezier(.4,0,.2,1) forwards;
}
.ci-spin{
  animation:ciSpin 14s linear infinite;
  transform-box:fill-box;transform-origin:center;
}
.ci-pulse{
  animation:ciPulse 2.4s ease-in-out infinite;
  transform-box:fill-box;transform-origin:center;opacity:0.9;
}
.cslide:not(.active) .ci-draw{stroke-dashoffset:500;animation:none;}
.cslide.active .ci-draw{animation:ciDraw 1.4s cubic-bezier(.4,0,.2,1) forwards;}

.cslide-tag{
  display:inline-block;font-family:var(--mono);font-size:11px;
  letter-spacing:0.18em;color:var(--accent-bright);text-transform:uppercase;
  margin-bottom:24px;padding:6px 12px;
  background:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:6px;
}
.cslide-title{
  font-family:var(--sans);font-size:clamp(32px,3.6vw,48px);
  font-weight:500;line-height:1.05;letter-spacing:-0.025em;
  margin-bottom:20px;color:var(--text);
}
.cslide-title em{
  font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent-bright);
}
.cslide-body{
  font-size:16px;color:var(--text-mid);line-height:1.7;
  margin-bottom:28px;max-width:600px;
}
.cslide-points{
  list-style:none;display:grid;grid-template-columns:repeat(2,1fr);
  gap:10px 32px;max-width:600px;
}
.cslide-points li{
  display:flex;align-items:flex-start;gap:10px;
  font-size:13px;color:var(--text-mid);line-height:1.5;
}
.cslide-points li::before{
  content:'';width:5px;height:5px;border-radius:50%;
  background:var(--accent);margin-top:8px;flex-shrink:0;
}

.carousel-controls{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:48px;padding-top:24px;border-top:1px solid var(--line);position:relative;
}
.carousel-arrow{
  width:42px;height:42px;border-radius:50%;background:var(--bg-3);
  border:1px solid var(--line);color:var(--text-mid);
  display:flex;align-items:center;justify-content:center;
  transition:background .2s, border-color .2s, color .2s, transform .2s;
}
.carousel-arrow:hover{
  background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-1px);
}
.carousel-dots{display:flex;gap:8px;align-items:center;}
.carousel-dot{
  width:8px;height:8px;border-radius:50%;background:var(--line-strong);
  border:none;transition:background .25s, width .25s;position:relative;
}
.carousel-dot.active{background:var(--accent);width:24px;border-radius:4px;}
.carousel-progress{
  position:absolute;bottom:0;left:0;right:0;height:2px;
  background:transparent;border-radius:0 0 20px 20px;overflow:hidden;
}
.carousel-progress-fill{
  height:100%;width:0;
  background:linear-gradient(90deg, var(--accent) 0%, var(--accent-bright) 100%);
  transition:width .1s linear;
}

/* ── Light mode carousel ── */
[data-theme="light"] .carousel {
  background: linear-gradient(160deg, var(--bg-card) 0%, var(--bg-2) 100%);
  border-color: var(--line);
}
[data-theme="light"] .cslide-title { color: var(--text); }
[data-theme="light"] .cslide-body  { color: var(--text-mid); }
[data-theme="light"] .carousel-arrow { background: var(--bg-3); border-color: var(--line); color: var(--text-mid); }

/* ── Light mode: carousel icons flip dark ── */
[data-theme="light"] .cslide-icon svg {
  filter: drop-shadow(0 0 12px rgba(124,28,225,0.2)) brightness(0) saturate(100%) invert(18%) sepia(80%) saturate(3000%) hue-rotate(258deg) brightness(85%);
}
[data-theme="light"] .carousel-dot { background: rgba(0,0,0,0.15); }
[data-theme="light"] .carousel-dot.active { background: var(--accent); }
[data-theme="light"] .carousel-progress { background: rgba(0,0,0,0.08); }
[data-theme="light"] .carousel-progress-fill { background: var(--accent); }
[data-theme="light"] .ctype-label { color: #0B0910; }
[data-theme="light"] .ctype-tag   { color: #8A7FA0; }