/*
 * Centuriana Prime — Signature Motion v1.1.0
 * Luxury motion/depth layer. No external animation library required.
 */

:root {
    --cp-motion-fast: 220ms;
    --cp-motion-medium: 650ms;
    --cp-motion-slow: 1100ms;
    --cp-ease-lux: cubic-bezier(.22,.61,.36,1);
    --cp-ease-out: cubic-bezier(.16,1,.3,1);
}

/* ---------- CINEMATIC PAGE LAYER ---------- */
body.centuriana-prime-theme {
    position: relative;
    overflow-x: hidden;
}

body.centuriana-prime-theme::before {
    content: "";
    position: fixed;
    z-index: -2;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 76% 2%, rgba(224,185,74,.095), transparent 25%),
        radial-gradient(circle at 18% 21%, rgba(26,57,103,.23), transparent 31%),
        radial-gradient(circle at 50% 105%, rgba(193,143,24,.06), transparent 32%);
}

body.centuriana-prime-theme::after {
    content: "";
    position: fixed;
    z-index: 9998;
    inset: 0;
    pointer-events: none;
    opacity: .032;
    background-image:
        repeating-radial-gradient(circle at 0 0,
            rgba(255,255,255,.75) 0,
            rgba(255,255,255,.75) .55px,
            transparent .75px,
            transparent 3px);
    mix-blend-mode: soft-light;
}

/* ---------- SCROLL PROGRESS ---------- */
.cp-scroll-progress {
    position: fixed;
    z-index: 99999;
    top: 0;
    left: 0;
    height: 2px;
    width: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    pointer-events: none;
    background: linear-gradient(90deg, #8f6412 0%, #d4af37 38%, #fff0a8 62%, #b58116 100%);
    box-shadow: 0 0 16px rgba(240,210,122,.48);
}

/* ---------- HEADER DEPTH ---------- */
.cp-lux-header {
    transition:
        background var(--cp-motion-fast) ease,
        box-shadow var(--cp-motion-fast) ease,
        border-color var(--cp-motion-fast) ease,
        transform var(--cp-motion-fast) ease;
}

.cp-lux-header::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -1px;
    width: min(1200px, 86vw);
    height: 1px;
    transform: translateX(-50%) scaleX(.22);
    transform-origin: center;
    opacity: .35;
    background: linear-gradient(90deg, transparent, rgba(240,210,122,.72), transparent);
    transition: transform .5s var(--cp-ease-out), opacity .35s ease;
}

.cp-lux-header.cp-is-scrolled {
    background: rgba(3,7,14,.955);
    border-bottom-color: rgba(212,175,55,.22);
    box-shadow: 0 18px 50px rgba(0,0,0,.34);
}

.cp-lux-header.cp-is-scrolled::after {
    transform: translateX(-50%) scaleX(1);
    opacity: .62;
}

.cp-lux-brand img {
    transform-origin: left center;
    transition: transform .5s var(--cp-ease-out), filter .5s ease;
}

.cp-lux-brand:hover img {
    transform: translateY(-1px) scale(1.012);
    filter: drop-shadow(0 7px 18px rgba(212,175,55,.19));
}

/* ---------- METALLIC GOLD ---------- */
.cp-lux-hero h1 em,
.cp-lux-intro h2 strong,
.cp-lux-footer__column h5 {
    background: linear-gradient(
        105deg,
        #aa7816 0%,
        #e5bd4b 22%,
        #fff0a6 45%,
        #d6aa35 62%,
        #9d6d12 100%
    );
    background-size: 220% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
}

.cp-motion-ready .cp-lux-hero h1 em {
    animation: cpGoldSweep 8s ease-in-out 1.3s infinite;
}

@keyframes cpGoldSweep {
    0%, 72%, 100% { background-position: 0% 50%; }
    84% { background-position: 100% 50%; }
}

/* ---------- HERO CINEMATIC MOTION ---------- */
.cp-lux-hero {
    isolation: isolate;
}

.cp-lux-hero::after {
    content: "";
    position: absolute;
    z-index: 0;
    left: -10%;
    right: -10%;
    bottom: -1px;
    height: 160px;
    pointer-events: none;
    background:
        linear-gradient(180deg, transparent, rgba(5,8,17,.78)),
        radial-gradient(ellipse at 52% 100%, rgba(212,175,55,.09), transparent 58%);
}

.cp-lux-hero__aurora {
    will-change: transform;
}

.cp-motion-ready .cp-lux-hero__aurora--one {
    animation: cpAuroraOne 11s ease-in-out infinite alternate;
}

.cp-motion-ready .cp-lux-hero__aurora--two {
    animation: cpAuroraTwo 14s ease-in-out infinite alternate;
}

@keyframes cpAuroraOne {
    from { transform: translate3d(-4%, -3%, 0) scale(.95); opacity: .72; }
    to   { transform: translate3d(9%, 7%, 0) scale(1.12); opacity: 1; }
}

@keyframes cpAuroraTwo {
    from { transform: translate3d(0, 7%, 0) scale(.92); opacity: .7; }
    to   { transform: translate3d(12%, -5%, 0) scale(1.1); opacity: .95; }
}

.cp-lux-hero__copy {
    transform: translate3d(var(--cp-copy-x, 0), var(--cp-copy-y, 0), 0);
    transition: transform .16s linear;
    will-change: transform;
}

.cp-lux-hero-art {
    perspective: 1100px;
    transform-style: preserve-3d;
}

.cp-lux-hero-art__medallion {
    transform:
        rotateX(var(--cp-tilt-x, 0deg))
        rotateY(var(--cp-tilt-y, 0deg))
        translate3d(var(--cp-art-x, 0), var(--cp-art-y, 0), 0);
    transform-style: preserve-3d;
    will-change: transform;
    transition: transform .18s ease-out, box-shadow .45s ease;
}

.cp-lux-hero-art__medallion::before {
    content: "";
    position: absolute;
    z-index: 4;
    inset: 0;
    border-radius: 50%;
    pointer-events: none;
    opacity: .42;
    background:
        linear-gradient(115deg,
            transparent 23%,
            rgba(255,246,192,.03) 39%,
            rgba(255,235,149,.36) 47%,
            rgba(255,255,255,.15) 51%,
            transparent 61%);
    transform: translateX(-125%) rotate(10deg);
}

.cp-motion-ready .cp-lux-hero-art__medallion::before {
    animation: cpMedallionSheen 7.5s ease-in-out 1.5s infinite;
}

.cp-motion-ready .cp-lux-hero-art__medallion img {
    animation: cpMedallionFloat 6.5s ease-in-out infinite;
}

@keyframes cpMedallionSheen {
    0%, 67%, 100% { transform: translateX(-125%) rotate(10deg); opacity: 0; }
    75% { opacity: .5; }
    87% { transform: translateX(125%) rotate(10deg); opacity: .16; }
}

@keyframes cpMedallionFloat {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-7px) scale(1.006); }
}

.cp-motion-ready .cp-lux-hero-art__orbit--one {
    animation: cpOrbitOne 21s linear infinite;
}

.cp-motion-ready .cp-lux-hero-art__orbit--two {
    animation: cpOrbitTwo 15s linear infinite reverse;
}

@keyframes cpOrbitOne {
    from { transform: rotate(-10deg); }
    to   { transform: rotate(350deg); }
}

@keyframes cpOrbitTwo {
    from { transform: rotate(16deg); }
    to   { transform: rotate(376deg); }
}

.cp-lux-hero-art__orbit::before,
.cp-lux-hero-art__orbit::after {
    content: "";
    position: absolute;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #f3d476;
    box-shadow: 0 0 14px rgba(240,210,122,.85);
}

.cp-lux-hero-art__orbit::before { left: 9%; top: 28%; }
.cp-lux-hero-art__orbit::after { right: 13%; bottom: 23%; }

.cp-motion-ready .cp-lux-float--left {
    animation: cpFloatBadge 5s ease-in-out infinite;
}

.cp-motion-ready .cp-lux-float--right {
    animation: cpFloatBadge 5.8s ease-in-out .7s infinite reverse;
}

@keyframes cpFloatBadge {
    0%,100% { transform: translate3d(0,0,0); }
    50% { transform: translate3d(0,-8px,0); }
}

/* Tiny ambient gold points, generated by JS */
.cp-lux-particle-field {
    position: absolute;
    z-index: 1;
    inset: 4% 0 0;
    overflow: hidden;
    pointer-events: none;
    mask-image: radial-gradient(ellipse at center, #000 8%, transparent 80%);
}

.cp-lux-particle {
    position: absolute;
    width: var(--cp-size, 3px);
    height: var(--cp-size, 3px);
    left: var(--cp-left, 50%);
    top: var(--cp-top, 50%);
    border-radius: 50%;
    opacity: var(--cp-opacity, .5);
    background: #f3d271;
    box-shadow: 0 0 11px rgba(240,210,122,.8);
}

.cp-motion-ready .cp-lux-particle {
    animation: cpParticleRise var(--cp-duration, 8s) ease-in-out var(--cp-delay, 0s) infinite;
}

@keyframes cpParticleRise {
    0%,100% { transform: translate3d(0, 6px, 0) scale(.72); opacity: .05; }
    35% { opacity: var(--cp-opacity, .5); }
    68% { transform: translate3d(var(--cp-drift, 8px), -18px, 0) scale(1.15); opacity: .72; }
}

/* ---------- BUTTON LIGHT SWEEP ---------- */
.cp-lux-btn,
.cp-lux-register,
.btn--base,
.btn.btn--base {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.cp-lux-btn::before,
.cp-lux-register::before,
.btn--base::before,
.btn.btn--base::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -2px;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(110deg, transparent 20%, rgba(255,250,217,.58) 48%, transparent 72%);
    transform: translateX(-120%);
}

.cp-lux-btn:hover::before,
.cp-lux-register:hover::before,
.btn--base:hover::before,
.btn.btn--base:hover::before {
    animation: cpButtonSweep .9s var(--cp-ease-out);
}

@keyframes cpButtonSweep {
    0% { transform: translateX(-120%); opacity: 0; }
    25% { opacity: .55; }
    100% { transform: translateX(120%); opacity: 0; }
}

/* ---------- SCROLL REVEAL ---------- */
.cp-reveal {
    opacity: 0;
    transform: translate3d(0, 26px, 0);
    filter: blur(5px);
    transition:
        opacity .8s var(--cp-ease-out),
        transform .9s var(--cp-ease-out),
        filter .8s ease;
    transition-delay: var(--cp-delay, 0ms);
}

.cp-reveal.cp-is-visible {
    opacity: 1;
    transform: translate3d(0,0,0);
    filter: blur(0);
}

.cp-reveal.cp-reveal--left {
    transform: translate3d(-28px, 10px, 0);
}

.cp-reveal.cp-reveal--right {
    transform: translate3d(28px, 10px, 0);
}

.cp-reveal.cp-reveal--left.cp-is-visible,
.cp-reveal.cp-reveal--right.cp-is-visible {
    transform: translate3d(0,0,0);
}

/* Initial hero entrance */
.cp-js .cp-lux-kicker,
.cp-js .cp-lux-hero h1,
.cp-js .cp-lux-hero__copy > p,
.cp-js .cp-lux-hero__actions,
.cp-js .cp-lux-hero__proof,
.cp-js .cp-lux-hero-art {
    opacity: 0;
    transform: translateY(18px);
}

.cp-motion-ready .cp-lux-kicker,
.cp-motion-ready .cp-lux-hero h1,
.cp-motion-ready .cp-lux-hero__copy > p,
.cp-motion-ready .cp-lux-hero__actions,
.cp-motion-ready .cp-lux-hero__proof,
.cp-motion-ready .cp-lux-hero-art {
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity .85s var(--cp-ease-out),
        transform .95s var(--cp-ease-out);
}

.cp-motion-ready .cp-lux-kicker { transition-delay: .08s; }
.cp-motion-ready .cp-lux-hero h1 { transition-delay: .16s; }
.cp-motion-ready .cp-lux-hero__copy > p { transition-delay: .28s; }
.cp-motion-ready .cp-lux-hero__actions { transition-delay: .38s; }
.cp-motion-ready .cp-lux-hero__proof { transition-delay: .48s; }
.cp-motion-ready .cp-lux-hero-art { transition-delay: .18s; }

/* ---------- LUXURY CARD LIGHT / HOVER ---------- */
.cp-motion-card,
.cp-lux-value-grid article,
.plan-item,
.plan-wrapper,
.feature-item,
.choose-item,
.post-item,
.testimonial-single,
.stat-item,
.stat-item-two,
.dashboard-main .card,
.user-sidebar,
.cmn-accordion .card,
.modal-content {
    --cp-mx: 50%;
    --cp-my: 50%;
    position: relative;
    isolation: isolate;
    transition:
        transform .42s var(--cp-ease-out),
        border-color .35s ease,
        box-shadow .42s ease,
        background .35s ease;
}

.cp-motion-card::before,
.cp-lux-value-grid article::before,
.plan-item::before,
.plan-wrapper::before,
.feature-item::before,
.choose-item::before,
.post-item::before,
.testimonial-single::before,
.stat-item::before,
.stat-item-two::before,
.dashboard-main .card::before,
.user-sidebar::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0;
    background:
        radial-gradient(420px circle at var(--cp-mx) var(--cp-my),
            rgba(240,210,122,.10),
            rgba(212,175,55,.035) 34%,
            transparent 68%);
    transition: opacity .4s ease;
}

.cp-motion-card:hover,
.cp-lux-value-grid article:hover,
.plan-item:hover,
.plan-wrapper:hover,
.feature-item:hover,
.choose-item:hover,
.post-item:hover,
.testimonial-single:hover,
.stat-item:hover,
.stat-item-two:hover,
.dashboard-main .card:hover {
    transform: translateY(-6px);
    border-color: rgba(232,196,89,.31) !important;
    box-shadow:
        0 24px 62px rgba(0,0,0,.32),
        0 0 0 1px rgba(212,175,55,.035),
        0 0 38px rgba(212,175,55,.055);
}

.cp-motion-card:hover::before,
.cp-lux-value-grid article:hover::before,
.plan-item:hover::before,
.plan-wrapper:hover::before,
.feature-item:hover::before,
.choose-item:hover::before,
.post-item:hover::before,
.testimonial-single:hover::before,
.stat-item:hover::before,
.stat-item-two:hover::before,
.dashboard-main .card:hover::before,
.user-sidebar:hover::before {
    opacity: 1;
}

/* Assurance bar shimmer */
.cp-lux-assurance {
    overflow: hidden;
}

.cp-lux-assurance::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 28%;
    left: -32%;
    pointer-events: none;
    opacity: .26;
    background: linear-gradient(90deg, transparent, rgba(240,210,122,.16), transparent);
    transform: skewX(-18deg);
}

.cp-motion-ready .cp-lux-assurance::after {
    animation: cpAssuranceSweep 9s ease-in-out 2s infinite;
}

@keyframes cpAssuranceSweep {
    0%,65%,100% { left: -32%; }
    83% { left: 106%; }
}

/* Footer gold horizon */
.cp-lux-footer {
    position: relative;
    overflow: hidden;
}

.cp-lux-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(1100px, 84vw);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, #d4af37, #f4da84, #d4af37, transparent);
    box-shadow: 0 0 24px rgba(212,175,55,.22);
    opacity: .62;
}

/* Dashboard polish */
.dashboard-main .card,
.stat-item,
.stat-item-two {
    backdrop-filter: blur(12px);
}

.stat-item .icon,
.stat-wrapper i {
    transition: transform .45s var(--cp-ease-out), filter .45s ease;
}

.stat-item:hover .icon,
.stat-item:hover .stat-wrapper i {
    transform: translateY(-3px) scale(1.055);
    filter: drop-shadow(0 5px 10px rgba(212,175,55,.22));
}

/* Table focus motion */
table tbody tr {
    transition: transform .24s ease, opacity .24s ease;
}

table tbody tr:hover {
    transform: translateX(2px);
}

/* ---------- ACCESSIBILITY / PERFORMANCE ---------- */
@media (hover: none), (pointer: coarse) {
    .cp-motion-card:hover,
    .cp-lux-value-grid article:hover,
    .plan-item:hover,
    .plan-wrapper:hover,
    .feature-item:hover,
    .choose-item:hover,
    .post-item:hover,
    .testimonial-single:hover,
    .stat-item:hover,
    .stat-item-two:hover,
    .dashboard-main .card:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }

    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
    }

    .cp-reveal,
    .cp-js .cp-lux-kicker,
    .cp-js .cp-lux-hero h1,
    .cp-js .cp-lux-hero__copy > p,
    .cp-js .cp-lux-hero__actions,
    .cp-js .cp-lux-hero__proof,
    .cp-js .cp-lux-hero-art {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }

    .cp-lux-particle-field {
        display: none !important;
    }
}

@media (max-width: 767px) {
    body.centuriana-prime-theme::after { opacity: .018; }

    .cp-lux-hero-art__medallion {
        transform: none !important;
    }

    .cp-lux-particle-field {
        opacity: .65;
    }

    .cp-reveal {
        transform: translate3d(0,16px,0);
    }
}
