@charset "utf-8";

/* ===== 공통: 비활성 슬라이드 텍스트 숨김 ===== */
.main-v .swiper-slide:not(.swiper-slide-active):not(.swiper-slide-duplicate-active) .txt{
    pointer-events:none; visibility:hidden;
}
.main-v .swiper-slide.swiper-slide-active .txt,
.main-v .swiper-slide.swiper-slide-duplicate-active .txt{
    visibility:visible; pointer-events:auto;
}

/* ===== 공통 타이틀 초기 상태 ===== */
.main-v .swiper-slide .tit{ opacity:0; }
.main-v .swiper-slide.swiper-slide-active .tit,
.main-v .swiper-slide.swiper-slide-duplicate-active .tit{ opacity:1; }

/* ────────────────────────────────────────
   fade: 아래→위 부드러운 등장
   ──────────────────────────────────────── */
body[data-ve="fade"] .main-v .swiper-slide .tit,
body[data-ve="kenburns"] .main-v .swiper-slide .tit,
body[data-ve="coverflow"] .main-v .swiper-slide .tit{
    transform:translateY(30px); transition:transform .8s cubic-bezier(.16,1,.3,1), opacity .8s;
}
body[data-ve="fade"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="fade"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit,
body[data-ve="kenburns"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="kenburns"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit,
body[data-ve="coverflow"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="coverflow"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateY(0);
}
body[data-ve="fade"] .main-v .tit01{ transition-delay:.4s; }
body[data-ve="fade"] .main-v .tit02{ transition-delay:.8s; }
body[data-ve="fade"] .main-v .tit03{ transition-delay:1.2s; }

/* ────────────────────────────────────────
   slide / fade-slide: 좌→우 슬라이드
   ──────────────────────────────────────── */
body[data-ve="slide"] .main-v .swiper-slide .tit,
body[data-ve="fade-slide"] .main-v .swiper-slide .tit{
    transform:translateX(-60px); transition:transform .7s cubic-bezier(.16,1,.3,1), opacity .7s;
}
body[data-ve="slide"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="slide"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit,
body[data-ve="fade-slide"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="fade-slide"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateX(0);
}
body[data-ve="slide"] .main-v .tit01{ transition-delay:.2s; }
body[data-ve="slide"] .main-v .tit02{ transition-delay:.5s; }
body[data-ve="slide"] .main-v .tit03{ transition-delay:.8s; }

/* ────────────────────────────────────────
   cube: 스케일+Y축 회전
   ──────────────────────────────────────── */
body[data-ve="cube"] .main-v .swiper-slide .tit{
    transform:scale(0.8) rotateY(10deg); transition:transform .8s ease, opacity .8s;
}
body[data-ve="cube"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="cube"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:scale(1) rotateY(0);
}
body[data-ve="cube"] .main-v .tit01{ transition-delay:.3s; }
body[data-ve="cube"] .main-v .tit02{ transition-delay:.6s; }
body[data-ve="cube"] .main-v .tit03{ transition-delay:.9s; }
body[data-ve="cube"] .mv-progress{ display:none; }

/* ────────────────────────────────────────
   flip: 3D X축 회전
   ──────────────────────────────────────── */
body[data-ve="flip"] .main-v .swiper-slide .tit{
    transform:perspective(800px) rotateX(25deg); transition:transform .8s ease, opacity .8s;
}
body[data-ve="flip"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="flip"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:perspective(800px) rotateX(0);
}
body[data-ve="flip"] .main-v .tit01{ transition-delay:.5s; }
body[data-ve="flip"] .main-v .tit02{ transition-delay:.3s; }
body[data-ve="flip"] .main-v .tit03{ transition-delay:.7s; }
body[data-ve="flip"] .mv-progress-bar{ background:var(--visual-txt); }

/* ────────────────────────────────────────
   creative-1: 우→좌 (역순 등장)
   ──────────────────────────────────────── */
body[data-ve="creative-1"] .main-v .swiper-slide .tit{
    transform:translateX(80px); transition:transform .7s ease, opacity .7s;
}
body[data-ve="creative-1"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="creative-1"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateX(0);
}
body[data-ve="creative-1"] .main-v .tit01{ transition-delay:.6s; }
body[data-ve="creative-1"] .main-v .tit02{ transition-delay:.3s; }
body[data-ve="creative-1"] .main-v .tit03{ transition-delay:.9s; }
body[data-ve="creative-1"] .mv-progress-bar{ background:linear-gradient(90deg,var(--point-color),var(--visual-txt)); }

/* ────────────────────────────────────────
   creative-2: 위→아래
   ──────────────────────────────────────── */
body[data-ve="creative-2"] .main-v .swiper-slide .tit{
    transform:translateY(-40px); transition:transform .8s ease, opacity .8s;
}
body[data-ve="creative-2"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="creative-2"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateY(0);
}
body[data-ve="creative-2"] .main-v .tit01{ transition-delay:.4s; }
body[data-ve="creative-2"] .main-v .tit02{ transition-delay:.7s; }
body[data-ve="creative-2"] .main-v .tit03{ transition-delay:1s; }
body[data-ve="creative-2"] .mv-progress{ height:5px; border-radius:3px; }
body[data-ve="creative-2"] .mv-progress-bar{ background:var(--visual-txt); }

/* ────────────────────────────────────────
   creative-3 / fade-zoom: 줌인+블러해제
   ──────────────────────────────────────── */
body[data-ve="creative-3"] .main-v .swiper-slide .tit,
body[data-ve="fade-zoom"] .main-v .swiper-slide .tit{
    transform:scale(0.7); filter:blur(6px); transition:transform .9s ease, opacity .9s, filter .9s;
}
body[data-ve="creative-3"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="creative-3"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit,
body[data-ve="fade-zoom"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="fade-zoom"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:scale(1); filter:blur(0);
}
body[data-ve="creative-3"] .main-v .tit02{ transition-delay:.2s; }
body[data-ve="creative-3"] .main-v .tit01{ transition-delay:.5s; }
body[data-ve="creative-3"] .main-v .tit03{ transition-delay:.8s; }
body[data-ve="fade-zoom"] .mv-progress-bar{ background:var(--point-color); box-shadow:0 0 8px var(--point-color); }

/* ────────────────────────────────────────
   creative-4: 회전+좌이동
   ──────────────────────────────────────── */
body[data-ve="creative-4"] .main-v .swiper-slide .tit{
    transform:rotate(-5deg) translateX(-30px); transition:transform .8s ease, opacity .8s;
}
body[data-ve="creative-4"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="creative-4"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:rotate(0) translateX(0);
}
body[data-ve="creative-4"] .mv-progress{ background:repeating-linear-gradient(90deg,rgba(255,255,255,0.2) 0 6px,transparent 6px 10px); }

/* ────────────────────────────────────────
   creative-5: 아래→위 (빠른 순차)
   ──────────────────────────────────────── */
body[data-ve="creative-5"] .main-v .swiper-slide .tit{
    transform:translateY(60px); transition:transform .6s ease, opacity .6s;
}
body[data-ve="creative-5"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="creative-5"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateY(0);
}
body[data-ve="creative-5"] .main-v .tit01{ transition-delay:.1s; }
body[data-ve="creative-5"] .main-v .tit02{ transition-delay:.4s; }
body[data-ve="creative-5"] .main-v .tit03{ transition-delay:.7s; }

/* ────────────────────────────────────────
   parallax: 느린 우→좌
   ──────────────────────────────────────── */
body[data-ve="parallax"] .main-v .swiper-slide .tit{
    transform:translateX(50px); transition:transform 1.2s ease, opacity 1s;
}
body[data-ve="parallax"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="parallax"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateX(0);
}
body[data-ve="parallax"] .mv-progress-bar{ background:linear-gradient(90deg,transparent,#fff,transparent); }

/* ────────────────────────────────────────
   blind: 클립마스크 열림
   ──────────────────────────────────────── */
body[data-ve="blind"] .main-v .swiper-slide .tit{
    clip-path:inset(0 100% 0 0); transition:clip-path .9s ease, opacity .8s;
}
body[data-ve="blind"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="blind"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    clip-path:inset(0 0 0 0);
}
body[data-ve="blind"] .main-v .tit01{ transition-delay:.3s; }
body[data-ve="blind"] .main-v .tit02{ transition-delay:.6s; }
body[data-ve="blind"] .main-v .tit03{ transition-delay:.9s; }

/* ────────────────────────────────────────
   zoom-out: 축소+블러해제
   ──────────────────────────────────────── */
body[data-ve="zoom-out"] .main-v .swiper-slide .tit{
    transform:scale(1.4); filter:blur(4px); transition:transform .8s ease, opacity .8s, filter .8s;
}
body[data-ve="zoom-out"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="zoom-out"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:scale(1); filter:blur(0);
}

/* ────────────────────────────────────────
   rotate-in: 회전등장
   ──────────────────────────────────────── */
body[data-ve="rotate-in"] .main-v .swiper-slide .tit{
    transform:rotate(8deg) translateY(30px); transition:transform .8s ease, opacity .8s;
}
body[data-ve="rotate-in"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="rotate-in"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:rotate(0) translateY(0);
}
body[data-ve="rotate-in"] .mv-progress{ width:36px; height:36px; border-radius:50%; border:2px solid rgba(255,255,255,0.2); background:transparent; }

/* ────────────────────────────────────────
   bounce: 탄성 바운스
   ──────────────────────────────────────── */
@keyframes wzBounce{0%{transform:scale(0.3);opacity:0}50%{transform:scale(1.06)}70%{transform:scale(0.94)}100%{transform:scale(1);opacity:1}}
body[data-ve="bounce"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="bounce"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    animation:wzBounce .8s ease both;
}
body[data-ve="bounce"] .main-v .swiper-slide.swiper-slide-active .tit01{ animation-delay:.3s; }
body[data-ve="bounce"] .main-v .swiper-slide.swiper-slide-active .tit02{ animation-delay:.6s; }
body[data-ve="bounce"] .main-v .swiper-slide.swiper-slide-active .tit03{ animation-delay:.9s; }
body[data-ve="bounce"] .mv-progress{ height:5px; } body[data-ve="bounce"] .mv-progress-bar{ background:var(--visual-txt); }

/* ────────────────────────────────────────
   glitch: 글리치 떨림
   ──────────────────────────────────────── */
@keyframes wzGlitch{0%{transform:translate(0)}20%{transform:translate(-3px,2px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,-3px)}80%{transform:translate(2px,1px)}100%{transform:translate(0)}}
body[data-ve="glitch"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="glitch"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    animation:wzGlitch .4s ease both;
}
body[data-ve="glitch"] .mv-progress-bar{ background:#0f0; box-shadow:0 0 6px #0f0; }
body[data-ve="glitch"] .mv-counter{ color:#0f0; font-family:monospace; }

/* ────────────────────────────────────────
   cinematic: 시네마틱 느린 등장
   ──────────────────────────────────────── */
body[data-ve="cinematic"] .main-v .swiper-slide .tit{
    transform:translateY(50px) scale(1.08); letter-spacing:3px;
    transition:all 1.5s cubic-bezier(.25,.1,.25,1);
}
body[data-ve="cinematic"] .main-v .swiper-slide.swiper-slide-active .tit,
body[data-ve="cinematic"] .main-v .swiper-slide.swiper-slide-duplicate-active .tit{
    transform:translateY(0) scale(1); letter-spacing:0;
}
body[data-ve="cinematic"] .main-v .tit01{ transition-delay:.5s; }
body[data-ve="cinematic"] .main-v .tit02{ transition-delay:.9s; }
body[data-ve="cinematic"] .main-v .tit03{ transition-delay:1.3s; }
body[data-ve="cinematic"] .mv-progress{ height:2px; width:280px; }
body[data-ve="cinematic"] .mv-counter{ font-size:12px; letter-spacing:3px; font-weight:300; }

/* ────────────────────────────────────────
   kenburns: 서서히 확대 (배경 전용)
   ──────────────────────────────────────── */
@keyframes kenburnsZoom {
    0% { transform: scale(1) translate(0,0); }
    100% { transform: scale(1.15) translate(-2%, -1%); }
}
body[data-visual-effect="kenburns"] .swiper-slide-active .slide_img img,
body[data-visual-effect="kenburns"] .swiper-slide-active .slide_img {
    animation: kenburnsZoom 7s ease-in-out forwards;
}
body[data-visual-effect="kenburns"] .swiper-slide .slide_img img,
body[data-visual-effect="kenburns"] .swiper-slide .slide_img {
    transform: scale(1);
}
body[data-ve="kenburns"] .main-v .tit01{ transition-delay:.5s; }
body[data-ve="kenburns"] .main-v .tit02{ transition-delay:.9s; }
body[data-ve="kenburns"] .main-v .tit03{ transition-delay:1.3s; }
body[data-ve="kenburns"] .mv-progress{ height:1px; width:300px; }
body[data-ve="kenburns"] .mv-progress-bar{ background:rgba(255,255,255,0.6); }

/* ────────────────────────────────────────
   fade-zoom: 줌인+페이드
   ──────────────────────────────────────── */
@keyframes fadeZoomIn {
    0% { transform: scale(1.05); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}
body[data-visual-effect="fade-zoom"] .swiper-slide-active .slide_img img,
body[data-visual-effect="fade-zoom"] .swiper-slide-active .slide_img {
    animation: fadeZoomIn 5s ease-in-out forwards;
}

/* ============================================================
   효과별 타이틀 텍스트 스타일 & 커서 디자인 (20종 각각 차별화)
   ============================================================ */

/* 커서 추가 keyframes */
@keyframes wzBlinkSoft{ 0%,100%{opacity:1} 50%{opacity:.15} }
@keyframes wzBlinkFast{ 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes wzBlinkSlow{ 0%,40%{opacity:1} 60%,100%{opacity:0} }
@keyframes wzBounceBlinkDot{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes wzBlinkVerySlow{ 0%,35%{opacity:1} 65%,100%{opacity:0} }

/* ── fade: 우아한 고급 ── */
body[data-ve="fade"] .main-v .tit01{ font-size:2.1rem; font-weight:300; letter-spacing:6px; text-transform:uppercase; }
body[data-ve="fade"] .main-v .tit02{ font-size:4.2rem; font-weight:800; letter-spacing:-2px; }
body[data-ve="fade"] .main-v .tit03{ font-size:2.1rem; font-weight:400; letter-spacing:1px; }
body[data-ve="fade"] .main-v .typing-cursor{ width:3px; height:.9em; border-radius:0; animation:wzBlink 1s step-end infinite; }

/* ── kenburns: 시네마틱 와이드 ── */
body[data-ve="kenburns"] .main-v .tit01{ font-size:1.5rem; font-weight:300; letter-spacing:10px; text-transform:uppercase; }
body[data-ve="kenburns"] .main-v .tit02{ font-size:5rem; font-weight:900; letter-spacing:-3px; }
body[data-ve="kenburns"] .main-v .tit03{ font-size:1.8rem; font-weight:300; letter-spacing:5px; }
body[data-ve="kenburns"] .main-v .typing-cursor{ width:.75em; height:4px; background:var(--visual-txt); border-radius:2px; vertical-align:3px; margin-left:4px; animation:wzBlinkSlow 2s ease-in-out infinite; }

/* ── coverflow: 이탤릭 역동 ── */
body[data-ve="coverflow"] .main-v .tit01{ font-size:2.4rem; font-weight:600; font-style:italic; letter-spacing:2px; }
body[data-ve="coverflow"] .main-v .tit02{ font-size:3.8rem; font-weight:700; font-style:italic; letter-spacing:0; }
body[data-ve="coverflow"] .main-v .tit03{ font-size:2.2rem; font-weight:500; font-style:italic; }
body[data-ve="coverflow"] .main-v .typing-cursor{ width:2px; height:.8em; background:rgba(255,255,255,.7); border-radius:1px; animation:wzBlinkFast .6s step-end infinite; }

/* ── slide: 임팩트 헤드라인 ── */
body[data-ve="slide"] .main-v .tit01{ font-size:1.8rem; font-weight:700; letter-spacing:8px; text-transform:uppercase; }
body[data-ve="slide"] .main-v .tit02{ font-size:4.6rem; font-weight:900; letter-spacing:-2px; }
body[data-ve="slide"] .main-v .tit03{ font-size:2rem; font-weight:600; letter-spacing:2px; }
body[data-ve="slide"] .main-v .typing-cursor{ width:.6em; height:1em; background:rgba(255,255,255,.85); border-radius:2px; vertical-align:middle; animation:wzBlink .8s step-end infinite; }

/* ── fade-slide: 모던 미니멀 ── */
body[data-ve="fade-slide"] .main-v .tit01{ font-size:2.2rem; font-weight:400; letter-spacing:3px; }
body[data-ve="fade-slide"] .main-v .tit02{ font-size:3.8rem; font-weight:700; letter-spacing:-1px; }
body[data-ve="fade-slide"] .main-v .tit03{ font-size:2.1rem; font-weight:400; }
body[data-ve="fade-slide"] .main-v .typing-cursor{ width:2px; height:.9em; border-radius:1px; animation:wzBlinkFast .5s step-end infinite; }

/* ── cube: 기하학 굵직 ── */
body[data-ve="cube"] .main-v .tit01{ font-size:1.8rem; font-weight:600; letter-spacing:5px; text-transform:uppercase; }
body[data-ve="cube"] .main-v .tit02{ font-size:4rem; font-weight:900; letter-spacing:0; }
body[data-ve="cube"] .main-v .tit03{ font-size:2rem; font-weight:500; letter-spacing:1px; }
body[data-ve="cube"] .main-v .typing-cursor{ width:5px; height:1em; background:var(--visual-txt); border-radius:0; vertical-align:middle; animation:wzBlink .7s step-end infinite; }

/* ── flip: 드라마틱 이탤릭 ── */
body[data-ve="flip"] .main-v .tit01{ font-size:2.2rem; font-weight:500; font-style:italic; letter-spacing:1px; }
body[data-ve="flip"] .main-v .tit02{ font-size:4.2rem; font-weight:800; font-style:italic; letter-spacing:-1px; }
body[data-ve="flip"] .main-v .tit03{ font-size:2.2rem; font-weight:600; font-style:italic; }
body[data-ve="flip"] .main-v .typing-cursor{ width:3px; height:.9em; display:inline-block; transform:skewX(-12deg); background:var(--visual-txt); animation:wzBlink 1.2s step-end infinite; }

/* ── creative-1: 대형 역방향 ── */
body[data-ve="creative-1"] .main-v .tit01{ font-size:1.6rem; font-weight:800; letter-spacing:8px; text-transform:uppercase; }
body[data-ve="creative-1"] .main-v .tit02{ font-size:4.8rem; font-weight:900; letter-spacing:-3px; }
body[data-ve="creative-1"] .main-v .tit03{ font-size:1.9rem; font-weight:500; letter-spacing:3px; }
body[data-ve="creative-1"] .main-v .typing-cursor{ display:none; }

/* ── creative-2: 클린 언더바 ── */
body[data-ve="creative-2"] .main-v .tit01{ font-size:2.4rem; font-weight:300; letter-spacing:4px; }
body[data-ve="creative-2"] .main-v .tit02{ font-size:3.6rem; font-weight:700; letter-spacing:0; }
body[data-ve="creative-2"] .main-v .tit03{ font-size:2.1rem; font-weight:400; }
body[data-ve="creative-2"] .main-v .typing-cursor{ width:.8em; height:3px; background:rgba(255,255,255,.8); vertical-align:3px; margin-left:3px; border-radius:1px; animation:wzBlink 1s ease-in-out infinite; }

/* ── creative-3: 신비로운 줌인 ── */
body[data-ve="creative-3"] .main-v .tit01{ font-size:1.8rem; font-weight:400; letter-spacing:7px; text-transform:uppercase; }
body[data-ve="creative-3"] .main-v .tit02{ font-size:5rem; font-weight:800; letter-spacing:-2px; }
body[data-ve="creative-3"] .main-v .tit03{ font-size:1.9rem; font-weight:300; letter-spacing:3px; }
body[data-ve="creative-3"] .main-v .typing-cursor{ width:3px; height:.9em; animation:wzBlinkSoft 1.5s ease-in-out infinite; }

/* ── fade-zoom: 소프트 줌인 ── */
body[data-ve="fade-zoom"] .main-v .tit01{ font-size:2rem; font-weight:300; letter-spacing:6px; text-transform:uppercase; }
body[data-ve="fade-zoom"] .main-v .tit02{ font-size:4.6rem; font-weight:800; letter-spacing:-2px; }
body[data-ve="fade-zoom"] .main-v .tit03{ font-size:2rem; font-weight:400; letter-spacing:2px; }
body[data-ve="fade-zoom"] .main-v .typing-cursor{ width:3px; height:.9em; animation:wzBlinkSoft 2s ease-in-out infinite; }

/* ── creative-4: 회전 에너지 ── */
body[data-ve="creative-4"] .main-v .tit01{ font-size:2.1rem; font-weight:700; letter-spacing:3px; font-style:italic; }
body[data-ve="creative-4"] .main-v .tit02{ font-size:4rem; font-weight:900; font-style:italic; letter-spacing:-1px; }
body[data-ve="creative-4"] .main-v .tit03{ font-size:2rem; font-weight:600; font-style:italic; }
body[data-ve="creative-4"] .main-v .typing-cursor{ width:3px; height:.85em; display:inline-block; transform:skewX(-15deg); animation:wzBlinkFast .6s step-end infinite; }

/* ── creative-5: 스피디 미니멀 ── */
body[data-ve="creative-5"] .main-v .tit01{ font-size:1.8rem; font-weight:700; letter-spacing:5px; text-transform:uppercase; }
body[data-ve="creative-5"] .main-v .tit02{ font-size:4.2rem; font-weight:900; letter-spacing:-2px; }
body[data-ve="creative-5"] .main-v .tit03{ font-size:2.1rem; font-weight:600; }
body[data-ve="creative-5"] .main-v .typing-cursor{ width:3px; height:.85em; animation:wzBlinkFast .4s step-end infinite; }

/* ── parallax: 유려한 와이드 ── */
body[data-ve="parallax"] .main-v .tit01{ font-size:1.7rem; font-weight:300; letter-spacing:12px; text-transform:uppercase; }
body[data-ve="parallax"] .main-v .tit02{ font-size:4.5rem; font-weight:800; letter-spacing:-2px; }
body[data-ve="parallax"] .main-v .tit03{ font-size:2rem; font-weight:300; letter-spacing:5px; }
body[data-ve="parallax"] .main-v .typing-cursor{ width:3px; height:.9em; background:rgba(255,255,255,.6); animation:wzBlinkSoft 2.5s ease-in-out infinite; }

/* ── blind: 수평 스와이프 ── */
body[data-ve="blind"] .main-v .tit01{ font-size:2rem; font-weight:700; letter-spacing:4px; text-transform:uppercase; }
body[data-ve="blind"] .main-v .tit02{ font-size:4.8rem; font-weight:900; letter-spacing:-3px; }
body[data-ve="blind"] .main-v .tit03{ font-size:2.1rem; font-weight:600; letter-spacing:1px; }
body[data-ve="blind"] .main-v .typing-cursor{ width:.85em; height:3px; background:var(--visual-txt); vertical-align:2px; margin-left:4px; border-radius:0; animation:wzBlink .8s step-end infinite; }

/* ── zoom-out: 원근 확대 ── */
body[data-ve="zoom-out"] .main-v .tit01{ font-size:2.2rem; font-weight:300; letter-spacing:5px; }
body[data-ve="zoom-out"] .main-v .tit02{ font-size:4.2rem; font-weight:700; letter-spacing:-1px; }
body[data-ve="zoom-out"] .main-v .tit03{ font-size:2.1rem; font-weight:400; }
body[data-ve="zoom-out"] .main-v .typing-cursor{ width:.45em; height:.45em; border-radius:50%; background:var(--visual-txt); vertical-align:middle; margin-left:6px; animation:wzBounceBlinkDot .9s ease-in-out infinite; }

/* ── rotate-in: 회전 역동 ── */
body[data-ve="rotate-in"] .main-v .tit01{ font-size:2.2rem; font-weight:600; font-style:italic; letter-spacing:2px; }
body[data-ve="rotate-in"] .main-v .tit02{ font-size:4rem; font-weight:800; font-style:italic; letter-spacing:-1px; }
body[data-ve="rotate-in"] .main-v .tit03{ font-size:2.1rem; font-weight:500; font-style:italic; }
body[data-ve="rotate-in"] .main-v .typing-cursor{ width:3px; height:.85em; display:inline-block; transform:skewX(-8deg); animation:wzBlink 1s step-end infinite; }

/* ── bounce: 활기찬 팝 ── */
body[data-ve="bounce"] .main-v .tit01{ font-size:2.5rem; font-weight:700; letter-spacing:1px; }
body[data-ve="bounce"] .main-v .tit02{ font-size:4.4rem; font-weight:900; letter-spacing:-1px; }
body[data-ve="bounce"] .main-v .tit03{ font-size:2.3rem; font-weight:600; }
body[data-ve="bounce"] .main-v .typing-cursor{ width:.45em; height:.45em; border-radius:50%; background:var(--visual-txt); vertical-align:middle; margin-left:8px; animation:wzBounceBlinkDot .7s ease-in-out infinite; }

/* ── glitch: 글리치 전환 ── */
body[data-ve="glitch"] .main-v .tit01{ font-size:1.6rem; font-weight:700; letter-spacing:3px; }
body[data-ve="glitch"] .main-v .tit02{ font-size:3.8rem; font-weight:700; letter-spacing:-1px; }
body[data-ve="glitch"] .main-v .tit03{ font-size:1.8rem; font-weight:500; letter-spacing:1px; }
body[data-ve="glitch"] .main-v .typing-cursor{ width:3px; height:.9em; border-radius:0; animation:wzBlink .8s step-end infinite; }

/* ── cinematic: 웅장한 대서사 ── */
body[data-ve="cinematic"] .main-v .tit01{ font-size:1.4rem; font-weight:300; letter-spacing:14px; text-transform:uppercase; }
body[data-ve="cinematic"] .main-v .tit02{ font-size:5.2rem; font-weight:900; letter-spacing:-4px; }
body[data-ve="cinematic"] .main-v .tit03{ font-size:1.7rem; font-weight:300; letter-spacing:8px; text-transform:uppercase; }
body[data-ve="cinematic"] .main-v .typing-cursor{ width:3px; height:1.1em; background:rgba(255,255,255,.7); border-radius:0; animation:wzBlinkVerySlow 2.5s ease-in-out infinite; }

/* ── 모바일 @768px: 전 효과 tit01/02/03 사이즈 조정 ── */
@media all and (max-width:768px){
    body[data-ve="fade"]       .main-v .tit01{ font-size:1.7rem; letter-spacing:3px; }
    body[data-ve="fade"]       .main-v .tit02{ font-size:2.6rem; letter-spacing:-1px; }
    body[data-ve="fade"]       .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="kenburns"]   .main-v .tit01{ font-size:1.2rem; letter-spacing:4px; }
    body[data-ve="kenburns"]   .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="kenburns"]   .main-v .tit03{ font-size:1.3rem; letter-spacing:2px; }

    body[data-ve="coverflow"]  .main-v .tit01{ font-size:1.9rem; }
    body[data-ve="coverflow"]  .main-v .tit02{ font-size:2.5rem; }
    body[data-ve="coverflow"]  .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="slide"]      .main-v .tit01{ font-size:1.6rem; letter-spacing:4px; }
    body[data-ve="slide"]      .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="slide"]      .main-v .tit03{ font-size:1.4rem; letter-spacing:1px; }

    body[data-ve="fade-slide"] .main-v .tit01{ font-size:1.7rem; letter-spacing:1px; }
    body[data-ve="fade-slide"] .main-v .tit02{ font-size:2.5rem; }
    body[data-ve="fade-slide"] .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="cube"]       .main-v .tit01{ font-size:1.6rem; letter-spacing:2px; }
    body[data-ve="cube"]       .main-v .tit02{ font-size:2.6rem; }
    body[data-ve="cube"]       .main-v .tit03{ font-size:1.4rem; }

    body[data-ve="flip"]       .main-v .tit01{ font-size:1.7rem; }
    body[data-ve="flip"]       .main-v .tit02{ font-size:2.6rem; }
    body[data-ve="flip"]       .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="creative-1"] .main-v .tit01{ font-size:1.3rem; letter-spacing:4px; }
    body[data-ve="creative-1"] .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="creative-1"] .main-v .tit03{ font-size:1.4rem; letter-spacing:1px; }

    body[data-ve="creative-2"] .main-v .tit01{ font-size:1.9rem; letter-spacing:2px; }
    body[data-ve="creative-2"] .main-v .tit02{ font-size:2.4rem; }
    body[data-ve="creative-2"] .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="creative-3"] .main-v .tit01{ font-size:1.3rem; letter-spacing:3px; }
    body[data-ve="creative-3"] .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="creative-3"] .main-v .tit03{ font-size:1.3rem; letter-spacing:1px; }

    body[data-ve="fade-zoom"]  .main-v .tit01{ font-size:1.6rem; letter-spacing:3px; }
    body[data-ve="fade-zoom"]  .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="fade-zoom"]  .main-v .tit03{ font-size:1.4rem; letter-spacing:1px; }

    body[data-ve="creative-4"] .main-v .tit01{ font-size:1.7rem; letter-spacing:1px; }
    body[data-ve="creative-4"] .main-v .tit02{ font-size:2.6rem; }
    body[data-ve="creative-4"] .main-v .tit03{ font-size:1.4rem; }

    body[data-ve="creative-5"] .main-v .tit01{ font-size:1.6rem; letter-spacing:2px; }
    body[data-ve="creative-5"] .main-v .tit02{ font-size:2.6rem; letter-spacing:-1px; }
    body[data-ve="creative-5"] .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="parallax"]   .main-v .tit01{ font-size:1.3rem; letter-spacing:5px; }
    body[data-ve="parallax"]   .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="parallax"]   .main-v .tit03{ font-size:1.4rem; letter-spacing:2px; }

    body[data-ve="blind"]      .main-v .tit01{ font-size:1.6rem; letter-spacing:2px; }
    body[data-ve="blind"]      .main-v .tit02{ font-size:2.8rem; letter-spacing:-1px; }
    body[data-ve="blind"]      .main-v .tit03{ font-size:1.4rem; }

    body[data-ve="zoom-out"]   .main-v .tit01{ font-size:1.7rem; letter-spacing:2px; }
    body[data-ve="zoom-out"]   .main-v .tit02{ font-size:2.6rem; }
    body[data-ve="zoom-out"]   .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="rotate-in"]  .main-v .tit01{ font-size:1.7rem; }
    body[data-ve="rotate-in"]  .main-v .tit02{ font-size:2.6rem; }
    body[data-ve="rotate-in"]  .main-v .tit03{ font-size:1.8rem; }

    body[data-ve="bounce"]     .main-v .tit01{ font-size:1.9rem; }
    body[data-ve="bounce"]     .main-v .tit02{ font-size:2.6rem; }
    body[data-ve="bounce"]     .main-v .tit03{ font-size:1.9rem; }

    body[data-ve="glitch"]     .main-v .tit01{ font-size:1.3rem; letter-spacing:3px; }
    body[data-ve="glitch"]     .main-v .tit02{ font-size:2.4rem; letter-spacing:1px; }
    body[data-ve="glitch"]     .main-v .tit03{ font-size:1.3rem; letter-spacing:2px; }

    body[data-ve="cinematic"]  .main-v .tit01{ font-size:1.1rem; letter-spacing:6px; }
    body[data-ve="cinematic"]  .main-v .tit02{ font-size:3rem; letter-spacing:-2px; }
    body[data-ve="cinematic"]  .main-v .tit03{ font-size:1.2rem; letter-spacing:3px; }
}

/* ── 모바일 @480px: 전 효과 추가 축소 ── */
@media all and (max-width:480px){
    body[data-ve="fade"]       .main-v .tit02{ font-size:2rem; }
    body[data-ve="kenburns"]   .main-v .tit02{ font-size:2.2rem; }
    body[data-ve="coverflow"]  .main-v .tit02{ font-size:2rem; }
    body[data-ve="slide"]      .main-v .tit02{ font-size:2.2rem; }
    body[data-ve="fade-slide"] .main-v .tit02{ font-size:2rem; }
    body[data-ve="cube"]       .main-v .tit02{ font-size:2rem; }
    body[data-ve="flip"]       .main-v .tit02{ font-size:2rem; }
    body[data-ve="creative-1"] .main-v .tit02{ font-size:2.2rem; letter-spacing:-1px; }
    body[data-ve="creative-2"] .main-v .tit02{ font-size:2rem; }
    body[data-ve="creative-3"] .main-v .tit02{ font-size:2.2rem; }
    body[data-ve="fade-zoom"]  .main-v .tit02{ font-size:2.2rem; }
    body[data-ve="creative-4"] .main-v .tit02{ font-size:2rem; }
    body[data-ve="creative-5"] .main-v .tit02{ font-size:2rem; }
    body[data-ve="parallax"]   .main-v .tit02{ font-size:2.2rem; }
    body[data-ve="blind"]      .main-v .tit02{ font-size:2.2rem; }
    body[data-ve="zoom-out"]   .main-v .tit02{ font-size:2rem; }
    body[data-ve="rotate-in"]  .main-v .tit02{ font-size:2rem; }
    body[data-ve="bounce"]     .main-v .tit02{ font-size:2rem; }
    body[data-ve="glitch"]     .main-v .tit02{ font-size:2rem; letter-spacing:1px; }
    body[data-ve="cinematic"]  .main-v .tit02{ font-size:2.4rem; letter-spacing:-1px; }
}

/* ============================================================
   body[data-te] — 타이틀 텍스트 효과 (메인 효과와 독립)
   ============================================================ */

/* ── glitch: 노이즈 후 안정화 ── */
@keyframes wzTitleGlitch{
    0%  { opacity:0; transform:translate(0); }
    8%  { opacity:.9; transform:translate(-4px,1px); clip-path:inset(0 3% 0 0); filter:hue-rotate(90deg); }
    16% { opacity:.8; transform:translate(4px,-2px); clip-path:inset(4% 0 0 0); }
    22% { opacity:1; transform:translate(-2px,1px); clip-path:none; filter:none; }
    30% { opacity:1; transform:translate(0); }
    100%{ opacity:1; transform:translate(0); }
}
body[data-te="glitch"] .main-v .swiper-slide .tit{ opacity:0; transition:none !important; }
body[data-te="glitch"] .main-v .swiper-slide-active .tit,
body[data-te="glitch"] .main-v .swiper-slide-duplicate-active .tit{ animation:wzTitleGlitch .9s cubic-bezier(.16,1,.3,1) both; }
body[data-te="glitch"] .main-v .swiper-slide-active .tit01{ animation-delay:.15s; }
body[data-te="glitch"] .main-v .swiper-slide-active .tit02{ animation-delay:.45s; }
body[data-te="glitch"] .main-v .swiper-slide-active .tit03{ animation-delay:.75s; }

/* ── cinema: 자간 확장→압축 ── */
@keyframes wzTitleCinema{
    0%  { opacity:0; letter-spacing:.6em; }
    100%{ opacity:1; letter-spacing:.02em; }
}
body[data-te="cinema"] .main-v .swiper-slide .tit{ opacity:0; transition:none !important; }
body[data-te="cinema"] .main-v .swiper-slide-active .tit,
body[data-te="cinema"] .main-v .swiper-slide-duplicate-active .tit{ animation:wzTitleCinema 1.4s cubic-bezier(.16,1,.3,1) both; }
body[data-te="cinema"] .main-v .swiper-slide-active .tit01{ animation-delay:.1s; }
body[data-te="cinema"] .main-v .swiper-slide-active .tit02{ animation-delay:.5s; }
body[data-te="cinema"] .main-v .swiper-slide-active .tit03{ animation-delay:1s; }
