:root{ --gm-red:#C40015; --gm-black:#111; --gm-white:#fff; }

.gm-slider--textrotate{ position:relative; overflow:hidden; color:#fff; min-height:360px; display:grid; place-items:center; }
.gm-tr__bg{ position:absolute; inset:0; background-image:var(--bg); background-size:cover; background-position:center; filter:brightness(.6); }
.gm-tr__stage{ position:relative; z-index:2; width:min(90%, 1000px); display:grid; min-height:260px; align-content:center; justify-items:start; }

.gm-tr__item{ grid-area:1 / 1; opacity:0; transform:none; transition:opacity .6s ease, transform .6s ease; }
.gm-tr__item h3{ margin:0 0 8px; font-size:clamp(22px,3.2vw,40px); }
.gm-tr__item p{ margin:0; color:#f0f0f0; font-size:clamp(16px,2vw,20px); max-width:75ch; }

.gm-tr__item.is-active{ opacity:1; }

/* ========== Variants ========== */

/* SLIDE (rechts → links) */
.gm-slider--textrotate[data-anim="slide"] .gm-tr__item{ transform:translateX(60px); }
.gm-slider--textrotate[data-anim="slide"] .gm-tr__item.is-active{ transform:translateX(0); }
.gm-slider--textrotate[data-anim="slide"] .gm-tr__item.is-leaving{ transform:translateX(-40px); opacity:0; }

/* FADE */
.gm-slider--textrotate[data-anim="fade"] .gm-tr__item{ opacity:0; transform:none; }
.gm-slider--textrotate[data-anim="fade"] .gm-tr__item.is-active{ opacity:1; }
.gm-slider--textrotate[data-anim="fade"] .gm-tr__item.is-leaving{ opacity:0; }

/* ZOOM */
.gm-slider--textrotate[data-anim="zoom"] .gm-tr__item{ transform:scale(.94); opacity:.0; }
.gm-slider--textrotate[data-anim="zoom"] .gm-tr__item.is-active{ transform:scale(1); opacity:1; }
.gm-slider--textrotate[data-anim="zoom"] .gm-tr__item.is-leaving{ transform:scale(1.06); opacity:0; }

/* FLIP (3D-Kipp) */
.gm-slider--textrotate[data-anim="flip"] .gm-tr__item{
  transform:rotateX(75deg); transform-origin:top left; opacity:0;
  backface-visibility:hidden; perspective:1000px;
}
.gm-slider--textrotate[data-anim="flip"] .gm-tr__item.is-active{ transform:rotateX(0deg); opacity:1; }
.gm-slider--textrotate[data-anim="flip"] .gm-tr__item.is-leaving{ transform:rotateX(-75deg); opacity:0; }

/* TYPEWRITER */
.gm-slider--textrotate[data-anim="type"] .gm-tr__item{ opacity:0; }
.gm-slider--textrotate[data-anim="type"] .gm-tr__item.is-active{ opacity:1; }
.gm-slider--textrotate[data-anim="type"] .gm-tr__item.is-active h3,
.gm-slider--textrotate[data-anim="type"] .gm-tr__item.is-active p{
  overflow:hidden; white-space:nowrap; border-right:2px solid rgba(255,255,255,.8);
  animation: tr-type 2.4s steps(28,end) 0s 1 both;
}
@keyframes tr-type{ from{ width:0 } to{ width:100% } }
