/* ── Core ── */
.ame-will-change{will-change:transform,opacity}

/* ── Text Animator ── */
.ame-text-animator{overflow:hidden}
.ame-text-animator .ame-char,.ame-text-animator .ame-word,.ame-text-animator .ame-line{display:inline-block;will-change:transform,opacity}
.ame-text-animator .ame-space{display:inline-block;width:.3em}

/* ── Scroll Reveal / Entrance ── */
.ame-scroll-reveal,.ame-entrance-box{will-change:transform,opacity}
.ame-entrance-box{padding:30px;background:#fff;border-radius:12px}
.ame-entrance-icon{margin-bottom:16px;font-size:2rem;line-height:1}
.ame-entrance-icon svg{width:2rem;height:2rem}
.ame-entrance-title{margin:0 0 12px;font-size:1.4rem;font-weight:700}
.ame-entrance-desc{margin:0 0 20px;font-size:1rem;line-height:1.6;opacity:.8}
.ame-entrance-btn{display:inline-block;padding:10px 24px;background:#0073aa;color:#fff;border-radius:6px;text-decoration:none;font-weight:600;transition:background .2s,transform .15s}
.ame-entrance-btn:hover{background:#005f8a;transform:translateY(-2px)}

/* ── Horizontal Scroll ── */
.ame-horizontal-outer{overflow:hidden}
.ame-horizontal-track{display:flex;flex-wrap:nowrap;will-change:transform}
.ame-horizontal-track>*{flex-shrink:0}

/* ── Parallax ── */
.ame-parallax-wrap{overflow:hidden}
.ame-parallax-layer{will-change:transform}

/* ── Clip / SVG / Lottie ── */
.ame-clip{will-change:clip-path}
.ame-svg-draw path,.ame-svg-draw line,.ame-svg-draw polyline,.ame-svg-draw circle,.ame-svg-draw rect,.ame-svg-draw ellipse{will-change:stroke-dashoffset}
.ame-lottie{display:block;width:100%}

/* ── Timeline ── */
.ame-timeline-controls{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.ame-tl-btn{padding:8px 18px;border:2px solid currentColor;background:transparent;border-radius:6px;cursor:pointer;font-weight:600;transition:background .2s,color .2s}
.ame-tl-btn:hover{background:#0073aa;border-color:#0073aa;color:#fff}
.ame-timeline-placeholder{font-size:.85rem;color:#888;font-style:italic;padding:12px;border:1px dashed #ccc;border-radius:6px;margin:0}
body:not(.elementor-editor-active) .ame-timeline-placeholder{display:none}

/* ── Motion Panel / Wrapper ── */
.ame-motion{will-change:transform,opacity,clip-path}
.ame-motion-inner{position:relative}
.ame-wrapper-inner{will-change:transform,opacity,clip-path;position:relative}

/* ── Batch ── */
.ame-batch-item{opacity:0;transform:translateY(40px)}

/* ── WebGL ── */
.ame-webgl-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1}

/* ══════════════════════════════════════════
   STACKING CARDS
══════════════════════════════════════════ */
.ame-stacking-cards{position:relative;width:100%}

/* Overlap style */
.ame-stack--overlap{padding-bottom:0}
.ame-stack--overlap .ame-stack-card{position:relative;width:100%;overflow:hidden;will-change:transform,opacity}

/* Side style */
.ame-stack--side .ame-stack-card{will-change:transform,opacity;overflow:hidden}

/* Scale (Apple) style */
.ame-stack--scale{position:relative}
.ame-stack--scale .ame-stack-card{position:sticky;top:0;will-change:transform,opacity;overflow:hidden;transform-origin:top center}

/* Card inner */
.ame-stack-card-inner{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}

/* Fixed layout */
.ame-sc-image{width:100%;background-size:cover;background-position:center;border-radius:12px;margin-bottom:20px;flex-shrink:0}
.ame-sc-body{flex:1;display:flex;flex-direction:column;justify-content:center}
.ame-sc-label{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-bottom:10px}
.ame-sc-title{margin:0 0 14px;font-size:clamp(1.4rem,3vw,2.2rem);font-weight:700;line-height:1.2}
.ame-sc-text{margin:0 0 24px;font-size:1rem;line-height:1.7;opacity:.8}
.ame-sc-btn{display:inline-block;padding:12px 28px;background:rgba(255,255,255,.15);color:inherit;border:1px solid rgba(255,255,255,.3);border-radius:30px;text-decoration:none;font-weight:600;font-size:.9rem;letter-spacing:.04em;transition:background .2s,transform .15s,border-color .2s;align-self:flex-start}
.ame-sc-btn:hover{background:rgba(255,255,255,.3);transform:translateY(-2px);border-color:rgba(255,255,255,.6)}

/* Split layout */
.ame-stack-mode--split .ame-stack-card{height:auto!important}
.ame-stack-mode--split .ame-stack-card-inner{padding:0!important}
.ame-sc-split{display:flex;align-items:stretch;width:100%;min-height:400px}
.ame-sc-split-img-col{flex:0 0 50%;overflow:hidden}
.ame-sc-split-img-col .ame-sc-image{width:100%;height:100%;min-height:360px;border-radius:0;margin-bottom:0}
.ame-sc-img-placeholder{width:100%;height:100%;min-height:360px;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;font-size:12px;opacity:.4}
.ame-sc-split-text-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:48px 56px}
.ame-sc-split-text-col .ame-sc-title{font-size:clamp(1.6rem,3.5vw,2.8rem)}
@media(max-width:768px){
  .ame-sc-split{flex-direction:column!important}
  .ame-sc-split-img-col{flex:0 0 auto}
  .ame-sc-split-img-col .ame-sc-image{min-height:220px;height:220px}
  .ame-sc-split-text-col{padding:32px 28px}
}

/* ══════════════════════════════════════════
   CSS CLASS ANIMATION SYSTEM
   Usage: add class  ame-animate--{presetName}
   e.g.  ame-animate--fadeUpSoft
         ame-animate--clipRevealLeft
         ame-animate--parallaxSoft
   Optional modifiers:
         ame-delay--1   (0.1s steps, so ame-delay--5 = 0.5s)
         ame-dur--fast  ame-dur--slow
══════════════════════════════════════════ */
[class*="ame-animate--"]{will-change:transform,opacity}
.ame-delay--1{--ame-delay:0.1s}.ame-delay--2{--ame-delay:0.2s}.ame-delay--3{--ame-delay:0.3s}
.ame-delay--4{--ame-delay:0.4s}.ame-delay--5{--ame-delay:0.5s}.ame-delay--6{--ame-delay:0.6s}
.ame-delay--7{--ame-delay:0.7s}.ame-delay--8{--ame-delay:0.8s}.ame-delay--10{--ame-delay:1.0s}
.ame-dur--fast{--ame-dur:0.4s}.ame-dur--slow{--ame-dur:1.4s}
