.esc-wrapper { position: relative; overflow: hidden; width: 100vw; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; }
.esc-wrapper.esc-halo { filter: drop-shadow(0 0 6px rgba(255,255,255,0.25)); }
.esc-stage { position: relative; }
.esc-nav { position: sticky; top: 0; display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 0.75rem 1rem; backdrop-filter: blur(6px); background: linear-gradient(to bottom, rgba(20,16,28,0.45), rgba(20,16,28,0)); color: #fff; z-index: 3; }
.esc-nav button { border: 0; border-radius: 999px; padding: 0.6rem 0.9rem; background: rgba(255,255,255,0.15); color: #fff; cursor: pointer; }
.esc-count { min-width: 4rem; text-align: center; font-weight: 600; }
.esc-canvas { width: 100vw; height: 80vh; position: relative; }
.esc-track { display: flex; width: 100%; height: 100%; transition: transform 450ms ease; }
.esc-card { min-width: 100vw; height: 100%; display: grid; place-items: center; padding: 2rem; }
.esc-card-inner { max-width: 900px; width: 90%; background: rgba(255,255,255,0.92); border-radius: 20px; padding: 2rem; line-height: 1.7; font-size: 1.05rem; box-shadow: 0 20px 50px rgba(0,0,0,0.15); }
.esc-card-inner img { max-width: 100%; height: auto; border-radius: 12px; }

/* Themes */
.esc-theme-fairy { background: radial-gradient(1200px 600px at 50% 30%, #9b87f5 0%, #1b1630 60%); }
.esc-theme-pastel { background: linear-gradient(135deg, #ffd1dc, #d1eeff, #e8ffd1); }
.esc-theme-forest { background: radial-gradient(1000px 500px at 50% 30%, #0f3d2e, #0a1c16); }

/* Fairy halo borders */
.esc-halo .esc-card-inner { border: 2px solid rgba(255,255,255,0.55); box-shadow: 0 0 20px rgba(157,134,255,0.35), inset 0 0 20px rgba(255,255,255,0.35); }

/* Particles canvas */
.esc-particles { position: absolute; inset: 0; pointer-events: none; z-index: 1; }

/* Editor niceties */
.wp-block-agriculturenovel-enchanted-story-cards { border: 1px dashed rgba(120,120,120,0.5); padding: 8px; }

/* Responsive */
@media (max-width: 640px){
  .esc-card-inner { padding: 1.25rem; border-radius: 16px; }
}