/* ================= DARK ELF ================= */

.dark-elf-3D {
    width: 600px;
    max-width: 100%;
    margin: 0 auto;
    padding: 20px;
    top: 40px;
    position: relative;
}

.boss-model3D img {
    width: 600px;
    max-width: 100%;
    height: auto;
    opacity: 0;
    animation: elfEnter 1.8s ease-out forwards;
}

@keyframes elfEnter {
    from { opacity: 0; transform: translateY(60px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ================= ORBS ================= */

.orb-left,
.orb-right {
    opacity: 0;
    animation:
        orbAppear 0.7s ease-out forwards,
        orbIdle 6s ease-in-out infinite;
    animation-delay: 4.4s, 4.4s;
}

@keyframes orbAppear {
    from { opacity: 0; transform: scale(.5); }
    to { opacity: 1; transform: scale(1); }
}

.orb-left.show,
.orb-right.show {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

/* ================= ORB LEFT ================= */
.orb-left {
    position: absolute;
    background: url("../imgs/left.png") no-repeat center/contain;
    width: 200px;
    height: 200px;
    top: 30px;
    margin-left: -40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    filter: brightness(1.15) contrast(1.1);
}

.orb-left::before {
    content: "";
    position: absolute;
    inset: 82%;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 60%, rgba(0,134,216,.6), rgba(0,134,216,.15), transparent 10%);
    animation: orbGlow 4s ease-in-out infinite;
}

.orb-left::after {
    content: "";
    position: absolute;
    inset: 6%;
    border-radius: 50%;
    background: conic-gradient(transparent, rgba(0,134,216,.35), transparent 30%);
    animation: orbSpin 12s linear infinite;
    mix-blend-mode: screen;
}

.orb-left span h1 {
    font-family: "Cinzel", serif;
    color: #dce6ef;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.5px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .9);
    margin-bottom: -30px;
    text-align: center;
}

.orb-left span h2 {
    font-family: "Cinzel", serif;
    color: #dce6ef;
    font-weight: 600;
    font-size: 35px;
    letter-spacing: 0.5px;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .9);
}

/* ================= ORB RIGHT ================= */
.orb-right {
    position: absolute;
    right: 0;
    background: url("../imgs/right.png") no-repeat center/contain;
    width: 200px;
    height: 200px;
    top: 30px;
    margin-right: -40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    filter: brightness(1.15) contrast(1.1);
}

.orb-right::before {
    content: "";
    position: absolute;
    inset: 82%;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 60%, rgba(95,17,17,.6), rgba(141,38,38,.15), transparent 10%);
    animation: orbGlow 4s ease-in-out infinite;
}

.orb-right::after {
    content: "";
    position: absolute;
    inset: 6%;
    border-radius: 50%;
    background: conic-gradient(transparent, rgba(95,17,17,.6), transparent 30%);
    animation: orbSpin 12s linear infinite;
    mix-blend-mode: screen;
}

.orb-right span h1 {
    font-family: "Cinzel", serif;
    color: #dce6ef;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: 0.5px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .9);
    margin-bottom: -30px;
    text-align: center;
}

.orb-right span h2 {
    font-family: "Cinzel", serif;
    color: #dce6ef;
    font-weight: 600;
    font-size: 35px;
    letter-spacing: 0.5px;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .9);
}

/* ================= LIQUID ================= */

.orb-liquid {
    position: absolute;
    width: 150px;
    height: 150px;
    top: 25px;
    border-radius: 50%;
    overflow: hidden;
    pointer-events: none;
    animation: liquidRise 10s linear infinite;
}

.orb-liquid::before {
    content: "";
    position: absolute;
    inset: -80%;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255,255,255,.15) 6%, transparent 7%),
        radial-gradient(circle, rgba(255,255,255,.12) 5%, transparent 6%),
        radial-gradient(circle, rgba(255,255,255,.1) 4%, transparent 5%);
    background-size: 40px 40px, 55px 55px, 70px 70px;
    animation: bubbles 8s linear infinite;
}

/* ================= KEYFRAMES ================= */

@keyframes orbGlow {
    0%,100% { opacity: .6; }
    50% { opacity: 1; }
}

@keyframes orbSpin {
    from { transform: rotate(0); }
    to { transform: rotate(360deg); }
}

@keyframes orbIdle {
    0% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0); }
}

@keyframes liquidRise {
    from { background-position: center bottom; }
    to { background-position: center top; }
}

@keyframes bubbles {
    from { transform: translateY(120px); }
    to { transform: translateY(-120px); }
}

/* ================= SUPERNOVA BASE ================= */

.supernova {
    position: absolute;
    width: 200px;
    height: 200px;
    top: 30px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
}

.supernova.blue { left: -40px; }
.supernova.red { right: -40px; }

/* ================= CORE ================= */

.supernova .core {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    transform: scale(0);
    opacity: 0;
}

/* CORES */
.supernova.blue .core {
    background: radial-gradient(circle,
        rgba(160,220,255,1),
        rgba(80,170,255,.7),
        rgba(80,170,255,.2),
        transparent 70%);
}

.supernova.red .core {
    background: radial-gradient(circle,
        rgba(255,160,160,1),
        rgba(255,80,80,.7),
        rgba(255,80,80,.2),
        transparent 70%);
}

/* ================= PARTICULAS ================= */

.supernova .particles span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
}

.supernova.blue .particles span {
    background: rgba(160,220,255,.95);
    box-shadow: 0 0 12px rgba(120,200,255,.9);
}

.supernova.red .particles span {
    background: rgba(255,160,160,.95);
    box-shadow: 0 0 12px rgba(255,120,120,.9);
}

/* ================= MEDIA QUERIES - MOBILE ================= */

/* Tablets */
@media screen and (max-width: 1024px) {
    .dark-elf-3D {
        width: 500px;
        padding: 18px;
        top: 35px;
    }

    .boss-model3D img {
        width: 500px;
    }

    .orb-left,
    .orb-right {
        width: 180px;
        height: 180px;
        top: 25px;
    }

    .orb-left {
        margin-left: -35px;
    }

    .orb-right {
        margin-right: -35px;
    }

    .orb-left span h1,
    .orb-right span h1 {
        font-size: 14px;
        margin-bottom: -28px;
    }

    .orb-left span h2,
    .orb-right span h2 {
        font-size: 32px;
    }

    .orb-liquid {
        width: 135px;
        height: 135px;
        top: 22px;
    }

    .supernova {
        width: 180px;
        height: 180px;
        top: 25px;
    }

    .supernova.blue { left: -35px; }
    .supernova.red { right: -35px; }
}

/* Smartphones */
@media screen and (max-width: 768px) {
    .dark-elf-3D {
        width: 400px;
        padding: 15px;
        top: 25px;
    }

    .boss-model3D img {
        width: 400px;
    }

    .orb-left,
    .orb-right {
        width: 150px;
        height: 150px;
        top: 20px;
    }

    .orb-left {
        margin-left: -25px;
    }

    .orb-right {
        margin-right: -25px;
    }

    .orb-left span h1,
    .orb-right span h1 {
        font-size: 12px;
        margin-bottom: -24px;
    }

    .orb-left span h2,
    .orb-right span h2 {
        font-size: 28px;
    }

    .orb-liquid {
        width: 115px;
        height: 115px;
        top: 18px;
    }

    .orb-liquid::before {
        background-size: 35px 35px, 48px 48px, 60px 60px;
    }

    .supernova {
        width: 150px;
        height: 150px;
        top: 20px;
    }

    .supernova.blue { left: -25px; }
    .supernova.red { right: -25px; }

    .supernova .particles span {
        width: 5px;
        height: 5px;
    }

    @keyframes orbIdle {
        0% { transform: translateY(0); }
        50% { transform: translateY(-8px); }
        100% { transform: translateY(0); }
    }
}

/* Smartphones médios */
@media screen and (max-width: 480px) {
    .dark-elf-3D {
        width: 320px;
        padding: 12px;
        top: 20px;
    }

    .boss-model3D img {
        width: 320px;
    }

    .orb-left,
    .orb-right {
        width: 120px;
        height: 120px;
        top: 15px;
    }

    .orb-left {
        margin-left: -15px;
    }

    .orb-right {
        margin-right: -15px;
    }

    .orb-left span h1,
    .orb-right span h1 {
        font-size: 10px;
        margin-bottom: -20px;
        letter-spacing: 0.3px;
    }

    .orb-left span h2,
    .orb-right span h2 {
        font-size: 24px;
        letter-spacing: 0.3px;
    }

    .orb-liquid {
        width: 92px;
        height: 92px;
        top: 14px;
    }

    .orb-liquid::before {
        background-size: 30px 30px, 42px 42px, 52px 52px;
    }

    .supernova {
        width: 120px;
        height: 120px;
        top: 15px;
    }

    .supernova.blue { left: -15px; }
    .supernova.red { right: -15px; }

    .supernova .particles span {
        width: 4px;
        height: 4px;
    }

    @keyframes orbIdle {
        0% { transform: translateY(0); }
        50% { transform: translateY(-6px); }
        100% { transform: translateY(0); }
    }

    @keyframes bubbles {
        from { transform: translateY(100px); }
        to { transform: translateY(-100px); }
    }
}

/* Smartphones pequenos */
@media screen and (max-width: 360px) {
    .dark-elf-3D {
        width: 280px;
        padding: 10px;
        top: 15px;
    }

    .boss-model3D img {
        width: 280px;
    }

    .orb-left,
    .orb-right {
        width: 100px;
        height: 100px;
        top: 12px;
    }

    .orb-left {
        margin-left: -10px;
    }

    .orb-right {
        margin-right: -10px;
    }

    .orb-left span h1,
    .orb-right span h1 {
        font-size: 9px;
        margin-bottom: -18px;
        letter-spacing: 0.2px;
    }

    .orb-left span h2,
    .orb-right span h2 {
        font-size: 20px;
        letter-spacing: 0.2px;
    }

    .orb-liquid {
        width: 78px;
        height: 78px;
        top: 11px;
    }

    .orb-liquid::before {
        background-size: 25px 25px, 35px 35px, 45px 45px;
    }

    .supernova {
        width: 100px;
        height: 100px;
        top: 12px;
    }

    .supernova.blue { left: -10px; }
    .supernova.red { right: -10px; }

    .supernova .particles span {
        width: 3px;
        height: 3px;
    }

    @keyframes orbIdle {
        0% { transform: translateY(0); }
        50% { transform: translateY(-5px); }
        100% { transform: translateY(0); }
    }

    @keyframes bubbles {
        from { transform: translateY(80px); }
        to { transform: translateY(-80px); }
    }
}

/* Landscape mode - smartphones deitados */
@media screen and (max-height: 600px) and (orientation: landscape) {
    .dark-elf-3D {
        width: 350px;
        padding: 10px;
        top: 10px;
    }

    .boss-model3D img {
        width: 350px;
    }

    .orb-left,
    .orb-right {
        width: 110px;
        height: 110px;
        top: 10px;
    }

    .orb-left {
        margin-left: -12px;
    }

    .orb-right {
        margin-right: -12px;
    }

    .orb-left span h1,
    .orb-right span h1 {
        font-size: 9px;
        margin-bottom: -18px;
    }

    .orb-left span h2,
    .orb-right span h2 {
        font-size: 22px;
    }

    .orb-liquid {
        width: 85px;
        height: 85px;
        top: 12px;
    }

    .supernova {
        width: 110px;
        height: 110px;
        top: 10px;
    }

    .supernova.blue { left: -12px; }
    .supernova.red { right: -12px; }
}

/* Ajuste fino para telas muito pequenas */
@media screen and (max-width: 320px) {
    .dark-elf-3D {
        width: 100%;
        padding: 8px;
    }

    .boss-model3D img {
        width: 100%;
    }

    .orb-left,
    .orb-right {
        width: 90px;
        height: 90px;
        top: 10px;
    }

    .orb-left {
        margin-left: -8px;
    }

    .orb-right {
        margin-right: -8px;
    }

    .orb-left span h1,
    .orb-right span h1 {
        font-size: 8px;
        margin-bottom: -16px;
    }

    .orb-left span h2,
    .orb-right span h2 {
        font-size: 18px;
    }

    .orb-liquid {
        width: 70px;
        height: 70px;
        top: 10px;
    }

    .supernova {
        width: 90px;
        height: 90px;
        top: 10px;
    }

    .supernova.blue { left: -8px; }
    .supernova.red { right: -8px; }
}