/* Movimento nativo, sem dependências. Conteúdo visível antes do JavaScript. */
body.clv-site { --clv-motion-ready: 1; }
.clv-hero.is-enhanced { --clv-pointer-x: 0px; --clv-pointer-y: 0px; }
.clv-slider-stage { display: grid; isolation: isolate; overflow: hidden; }
.clv-hero.is-enhanced .clv-slide { grid-area: 1 / 1; position: relative; min-width: 0; isolation: isolate; }
.clv-hero.is-enhanced .clv-slide:not(.is-active):not(.is-exiting) { opacity: 0; visibility: hidden; pointer-events: none; }
.clv-hero.is-enhanced .clv-slide.is-active { z-index: 2; }
.clv-hero.is-enhanced .clv-slide.is-exiting { z-index: 1; pointer-events: none; }
.clv-hero.is-enhanced .clv-hero-grid { height: 100%; }
.clv-hero.is-enhanced .clv-hero-copy,
.clv-hero.is-enhanced .clv-hero-art { animation: none; }
.clv-title-line { display: inline-block; }
.clv-motion-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Halo e partículas discretas, atrás do conteúdo. */
.clv-ambient { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.clv-ambient::before { content: ''; position: absolute; width: min(72vw,920px); aspect-ratio: 1; right: -18%; top: -60%; border-radius: 50%; background: radial-gradient(circle,#cc98ff2d,transparent 67%); animation: clv-halo-drift 16s ease-in-out infinite alternate; }
.clv-ambient::after { content: ''; position: absolute; width: min(60vw,740px); aspect-ratio: 1; left: -25%; bottom: -85%; border-radius: 50%; background: radial-gradient(circle,#e4af531c,transparent 65%); animation: clv-halo-drift 19s ease-in-out -8s infinite alternate-reverse; }
.clv-slide-2 .clv-ambient::before { background: radial-gradient(circle,#a375cf20,transparent 65%); }
.clv-slide-2 .clv-ambient::after { background: radial-gradient(circle,#bea0dc14,transparent 65%); }
.clv-ambient>span { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #f3d9a7; box-shadow: 0 0 16px #e4af5355; opacity: .45; animation: clv-particle-drift 7s ease-in-out infinite; }
.clv-ambient>span:nth-child(1) { left: 54%; top: 17%; }
.clv-ambient>span:nth-child(2) { left: 93%; top: 38%; width: 6px; height: 6px; animation-delay: -2s; }
.clv-ambient>span:nth-child(3) { left: 48%; top: 75%; animation-delay: -4s; }
.clv-ambient>span:nth-child(4) { left: 88%; top: 87%; width: 3px; height: 3px; animation-delay: -1s; }
.clv-ambient>span:nth-child(5) { left: 61%; top: 8%; width: 3px; height: 3px; animation-delay: -5s; }
.clv-ambient>span:nth-child(6) { left: 97%; top: 66%; animation-delay: -3s; }
.clv-slide-2 .clv-ambient>span { background: #9570b5; box-shadow: none; }

/* Profundidade nas fotos, órbita e placa flutuante. */
.clv-hero.is-enhanced .clv-portrait { transform-origin: 50% 100%; animation: clv-portrait-breathe 10s ease-in-out infinite; translate: var(--clv-pointer-x) var(--clv-pointer-y); transition: translate .65s cubic-bezier(.16,1,.3,1); }
.clv-hero.is-enhanced .clv-portrait-caption { animation: clv-caption-float 6s ease-in-out infinite; }
.clv-hero.is-enhanced .clv-art-asterisk { animation: clv-star-float 8s ease-in-out infinite; }
.clv-orbit-points { position: absolute; inset: -20px; border-radius: 50%; animation: clv-orbit-turn 32s linear infinite; }
.clv-orbit-points::before,.clv-orbit-points::after { content: ''; position: absolute; top: -4px; left: calc(50% - 4px); width: 8px; height: 8px; border-radius: 50%; background: #efd4a1; box-shadow: 0 0 0 6px #efd4a112; }
.clv-orbit-points::after { top: auto; left: 13%; bottom: 13%; width: 5px; height: 5px; background: #ffffffbd; }
.clv-slide-2 .clv-orbit-points::before { background: #7946a3; box-shadow: 0 0 0 6px #7946a30d; }
.clv-slide-2 .clv-orbit-points::after { background: #a481c0; }
.clv-slider-bar { position: relative; z-index: 3; }
.clv-hero.is-enhanced .clv-slider-bar { transition: border-color .65s ease; }
.clv-hero.is-enhanced { transition: background-color .65s ease; }

/* Suspende movimento fora da tela e com a preferência de movimento reduzido. */
.clv-hero.is-motion-paused .clv-portrait,
.clv-hero.is-motion-paused .clv-portrait-caption,
.clv-hero.is-motion-paused .clv-art-asterisk,
.clv-hero.is-motion-paused .clv-orbit-points,
.clv-hero.is-motion-paused .clv-ambient::before,
.clv-hero.is-motion-paused .clv-ambient::after,
.clv-hero.is-motion-paused .clv-ambient>span,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-portrait,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-portrait-caption,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-art-asterisk,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-orbit-points,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-ambient::before,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-ambient::after,
.clv-hero.is-enhanced .clv-slide:not(.is-active) .clv-ambient>span { animation-play-state: paused; }

/* Revelação apenas uma vez ao entrar na tela. */
.clv-reveal { transition: opacity .8s ease, translate .9s cubic-bezier(.16,1,.3,1); transition-delay: var(--clv-reveal-delay,0ms); }
.clv-reveal:not(.is-revealed) { opacity: 0; translate: 0 30px; }
.clv-reveal.is-revealed { opacity: 1; translate: 0 0; }
.clv-section-heading h2 em { background: linear-gradient(#54278912,#54278912) no-repeat left bottom / 0% .15em; transition: background-size 1.1s cubic-bezier(.16,1,.3,1) .4s; }
.clv-section-heading.is-revealed h2 em { background-size: 100% .15em; }
.clv-button { position: relative; overflow: hidden; isolation: isolate; }
.clv-button::after { content: ''; position: absolute; inset: -50% auto -50% -70%; width: 45%; pointer-events: none; transform: skewX(-20deg); background: linear-gradient(90deg,transparent,#ffffff35,transparent); }
.clv-button>.clv-icon:last-child,.clv-card-link>.clv-icon,.clv-event-photo>span { transition: transform .4s cubic-bezier(.16,1,.3,1),background .3s,color .3s; }
.clv-course-card { transition: opacity .8s ease,translate .9s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,border-color .4s; transition-delay: var(--clv-reveal-delay,0ms),var(--clv-reveal-delay,0ms),0ms,0ms,0ms; }
.clv-course-card .clv-icon-box { transition: transform .45s cubic-bezier(.16,1,.3,1),background .3s; }
@media(hover:hover) and (pointer:fine) {
  .clv-button:hover::after { animation: clv-button-shine .75s ease-out; }
  .clv-button:hover>.clv-icon:last-child,.clv-course-card:hover .clv-card-link>.clv-icon { transform: translate(3px,-3px); }
  .clv-course-card:hover { transform: translateY(-7px); border-color: #b996d4; box-shadow: 0 18px 42px #54278912; }
  .clv-course-card:hover .clv-icon-box { transform: rotate(-6deg) scale(1.08); background: #e9def4; }
  .clv-event-card:hover .clv-event-photo>span { transform: rotate(8deg); background: var(--clv-purple); color: #fff; }
  .clv-event-card:hover .clv-event-photo>img { transform: scale(1.065); }
}
@media(max-width:959px) { .clv-orbit-points { inset: -12px; } }
@media(max-width:700px) {
  .clv-ambient::before { width: 120vw; right: -45%; top: 10%; }
  .clv-ambient>span:nth-child(1) { left: 9%; top: 59%; }
  .clv-ambient>span:nth-child(3),.clv-ambient>span:nth-child(5) { display: none; }
  .clv-hero.is-enhanced .clv-portrait { translate: 0 0; }
  .clv-reveal:not(.is-revealed) { translate: 0 22px; }
}
@keyframes clv-halo-drift { from { transform: translate3d(-5%,3%,0) scale(.95); } to { transform: translate3d(12%,15%,0) scale(1.13); } }
@keyframes clv-particle-drift { 0%,100% { transform: translate3d(0,0,0); opacity: .3; } 50% { transform: translate3d(8px,-18px,0); opacity: .75; } }
@keyframes clv-portrait-breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.025); } }
@keyframes clv-caption-float { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-7px,0); } }
@keyframes clv-star-float { 0%,100% { transform: translate3d(0,0,0) rotate(15deg); } 50% { transform: translate3d(0,-10px,0) rotate(38deg); } }
@keyframes clv-orbit-turn { to { transform: rotate(360deg); } }
@keyframes clv-button-shine { to { left: 135%; } }
@media(prefers-reduced-motion:reduce) {
  .clv-hero.is-enhanced *,.clv-hero.is-enhanced *::before,.clv-hero.is-enhanced *::after { animation: none!important; transition: none!important; }
  .clv-reveal,.clv-reveal:not(.is-revealed) { opacity: 1!important; translate: none!important; transition: none!important; }
  .clv-ambient>span { display: none; }
  .clv-hero.is-enhanced .clv-portrait { translate: none; }
}
@media print {
  .clv-reveal,.clv-reveal:not(.is-revealed) { opacity: 1!important; translate: none!important; }
  .clv-hero.is-enhanced .clv-slide:not(.is-active) { display: none!important; }
  .clv-ambient { display: none; }
}
