/* ============================================================
   oneshot-clean v1-trust — Section Motion Layer
   - data-motion="..." 으로 reveal 모션 지정
   - data-stagger 부모면 자식에 --i 인덱스로 순차 지연
   - prefers-reduced-motion 준수
   ============================================================ */

:root{
  --motion-dur: 700ms;
  --motion-dur-slow: 1100ms;
  --motion-ease: cubic-bezier(.22,1,.36,1);
  --motion-stagger: 70ms;
}

/* base — 미발사 상태 */
[data-motion]{
  opacity:0;
  will-change:transform, opacity, filter, clip-path;
  transition:
    opacity var(--motion-dur) var(--motion-ease),
    transform var(--motion-dur) var(--motion-ease),
    filter var(--motion-dur) var(--motion-ease),
    clip-path var(--motion-dur) var(--motion-ease);
  transition-delay: calc(var(--i, 0) * var(--motion-stagger));
}

/* ── 9가지 motion variant ────────────────────────────────── */
[data-motion="fade-up"]      { transform: translateY(28px); }
[data-motion="fade-down"]    { transform: translateY(-28px); }
[data-motion="fade-left"]    { transform: translateX(36px); }   /* 우측에서 슬라이드 */
[data-motion="fade-right"]   { transform: translateX(-36px); }  /* 좌측에서 슬라이드 */
[data-motion="zoom-in"]      { transform: scale(.9); }
[data-motion="zoom-out"]     { transform: scale(1.08); }
[data-motion="clip-up"]      { clip-path: inset(100% 0 0 0); transform: translateY(20px); }
[data-motion="tilt-in"]      { transform: perspective(800px) rotateX(14deg) translateY(20px); transform-origin: 50% 100%; }
[data-motion="blur-in"]      { filter: blur(14px); transform: scale(1.02); }
[data-motion="text-rise"]    { transform: translateY(120%); opacity:1; }

/* fired — is-in 추가 시 풀려서 정 위치로 */
[data-motion].is-in{
  opacity:1;
  transform:none;
  clip-path: inset(0);
  filter:none;
}
[data-motion="text-rise"].is-in{ transform: translateY(0); }

/* ── 섹션 듀레이션 미세 조정 ─────────────────────────────── */
[data-motion="blur-in"]{ transition-duration: var(--motion-dur-slow); }
[data-motion="clip-up"]{ transition-duration: var(--motion-dur-slow); }
[data-motion="text-rise"]{ transition-duration: 900ms; }

/* ── 부모가 data-stagger 면 자식 transition-delay 가
       --i 인덱스에 따라 순차 발화 (motion.js가 부여) ──── */
[data-stagger] > *[data-motion],
[data-stagger] > *[data-motion-child]{
  transition-delay: calc(var(--i, 0) * var(--motion-stagger));
}

/* text-rise 컨테이너: 자식 글자가 mask-aware 하게 잘려서 위로 올라옴 */
.tc-text-rise{ display:inline-block; overflow:hidden; vertical-align:bottom; }

/* ── 항상 켜진 ambient motion (트렌디) ───────────────────── */

/* Hero panel: 빛이 천천히 회전하는 ambient glow */
.tc-hero__panel{ position:relative; }
.tc-hero__panel::before{ animation: tcAmbientPulse 9s ease-in-out infinite; }

/* CTA band: glow ring 천천히 회전 */
@keyframes tcCtaGlow {
  0%,100% { transform: rotate(0deg) scale(1); opacity:.55; }
  50%     { transform: rotate(180deg) scale(1.06); opacity:.85; }
}
.tc-cta-band::before{ animation: tcCtaGlow 14s linear infinite; }
.tc-cta-band::after { animation: tcCtaGlow 18s linear reverse infinite; }

/* CTA 버튼 화살표 슬라이드 */
.tc-cta-band__btn{ position:relative; overflow:hidden; }
.tc-cta-band__btn::after{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.28) 50%, transparent 70%);
  transform:translateX(-110%);
  transition: transform .6s var(--motion-ease);
  pointer-events:none;
}
.tc-cta-band__btn:hover::after{ transform:translateX(110%); }

/* Service / Stats / Guard 카드: 호버 시 미세 lift + 그림자 */
.tc-svc__card, .tc-stats__item, .tc-guard__card, .tc-proc__step{
  transition: transform .35s var(--motion-ease), box-shadow .35s var(--motion-ease), border-color .25s;
}

/* Process chip 호버 시 살짝 위로 떠오름 (트렌디 micro-interaction) */
.tc-proc__chip{ transition: border-color .22s, box-shadow .22s, transform .22s var(--motion-ease) !important; }
.tc-proc__chip:hover{ transform: translateY(-2px); }

/* FAQ summary 호버 micro */
.tc-faq summary{ transition: color .22s var(--motion-ease); }
.tc-faq details:hover summary{ color: var(--accent); }

/* Section title 좌측 살짝 떠오르는 dot accent (모든 idx) */
.tc-sec__idx{ position:relative; }
.tc-sec__idx::after{
  content:""; display:inline-block; width:4px; height:4px; margin-left:6px;
  border-radius:50%; background: var(--accent);
  animation: tcIdxBlink 2.4s ease-in-out infinite;
  vertical-align: middle;
}
@keyframes tcIdxBlink{
  0%,100%{ opacity:.35; transform:scale(1); }
  50%    { opacity:1;   transform:scale(1.4); }
}

/* Highlight 1분. — 부드러운 색상 호흡 */
.tc-cta-band__highlight{
  background: linear-gradient(90deg, #ff8a3d 0%, #ffb074 50%, #ff8a3d 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: tcHighlightShimmer 4s ease-in-out infinite;
}
@keyframes tcHighlightShimmer{
  0%,100% { background-position: 0% 50%; }
  50%     { background-position: 100% 50%; }
}

/* Marquee disable — Footer 아이콘들 부드러운 호버 회전 (트렌디) */
.tc-footer a{ transition: color .22s var(--motion-ease), transform .35s var(--motion-ease); }
.tc-footer a:hover{ transform: translateY(-2px); }

/* ── prefers-reduced-motion: 모든 모션 즉시 종착 ─────────── */
@media (prefers-reduced-motion: reduce){
  [data-motion]{
    opacity:1 !important; transform:none !important;
    clip-path: inset(0) !important; filter:none !important;
    transition: none !important;
  }
  .tc-cta-band::before, .tc-cta-band::after, .tc-cta-band__highlight, .tc-sec__idx::after,
  .tc-hero__panel::before { animation:none !important; }
}
