/* REVAMED MANSION — CHARACTER MODEL V3 */

.player-model-v3 {
    transform-origin: 50% 100%;
}

/* Dynamic Directional Shadow */
.player-v3-shadow {
    position: absolute;
    bottom: -14%;
    left: -15%;
    width: 130%;
    height: 28%;
    border-radius: 50%;
    background: radial-gradient(ellipse at center, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.2) 60%, transparent 80%);
    z-index: -2;
    transform: scale(1);
    transition: transform 0.3s ease;
}

/* Trenchcoat tails & sway */
.player-v3-coat-tail {
    position: absolute;
    bottom: -8%;
    width: 44%;
    height: 48%;
    background: linear-gradient(180deg, #1b383b 0%, #112426 100%);
    border: 1px solid rgba(8, 22, 24, 0.7);
    border-radius: 0 0 4px 6px;
    z-index: 2;
    transform-origin: top center;
    transition: transform 0.25s ease-out;
}

.player-v3-coat-left {
    left: 4%;
    transform: rotate(3deg);
}

.player-v3-coat-right {
    right: 4%;
    transform: rotate(-3deg);
}

.player-v3-trenchcoat {
    position: absolute;
    top: 25%;
    left: 40%;
    width: 20%;
    height: 45%;
    z-index: 7;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
}

.player-v3-button {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #d1aa62 0%, #735324 100%);
    box-shadow: 0 1px 2px rgba(0,0,0,0.6);
}

/* Lantern & Flame Illumination */
.player-v3-lantern {
    position: absolute;
    right: -24%;
    top: 42%;
    width: 16px;
    height: 22px;
    border-radius: 3px;
    background: linear-gradient(180deg, #3d2b1f 0%, #1a100a 100%);
    border: 1px solid #c98a53;
    z-index: 10;
    box-shadow: 0 0 12px rgba(201, 138, 83, 0.6);
}

.player-v3-lantern-flame {
    position: absolute;
    top: 25%;
    left: 25%;
    width: 50%;
    height: 50%;
    border-radius: 50% 50% 30% 30%;
    background: #ffd685;
    box-shadow: 0 0 8px #ff9e3b;
    animation: player-v3-flicker 1.8s ease-in-out infinite alternate;
}

.player-v3-lantern-glow {
    position: absolute;
    top: -40px;
    right: -40px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 170, 70, 0.25) 0%, rgba(201, 138, 83, 0.08) 45%, transparent 70%);
    pointer-events: none;
    z-index: 11;
}

/* Step Ripple Effect when walking */
.player-v3-step-ripple {
    position: absolute;
    bottom: -18%;
    left: 20%;
    width: 60%;
    height: 20%;
    border-radius: 50%;
    border: 1.5px solid rgba(201, 138, 83, 0.4);
    opacity: 0;
    transform: scale(0.4);
    pointer-events: none;
}

/* Hat rim & rim lighting */
.player-v3-rim-light {
    position: absolute;
    inset: -1px;
    border-radius: 50%;
    box-shadow: inset 2px 2px 4px rgba(255, 235, 200, 0.25);
    pointer-events: none;
}

/* Movement animations */
.player-model-v3-moving .player-v3-coat-left {
    animation: player-v3-sway-left 0.27s ease-in-out infinite alternate;
}

.player-model-v3-moving .player-v3-coat-right {
    animation: player-v3-sway-right 0.27s ease-in-out infinite alternate;
}

.player-model-v3-moving .player-v3-step-ripple {
    animation: player-v3-ripple-expand 0.54s ease-out infinite;
}

.player-model-v3-moving .player-v3-shadow {
    transform: scale(0.92, 1.08);
}

@keyframes player-v3-flicker {
    0% { opacity: 0.85; transform: scale(0.95); }
    50% { opacity: 1; transform: scale(1.1); }
    100% { opacity: 0.9; transform: scale(1); }
}

@keyframes player-v3-sway-left {
    from { transform: rotate(14deg) skewX(4deg); }
    to { transform: rotate(-6deg) skewX(-2deg); }
}

@keyframes player-v3-sway-right {
    from { transform: rotate(-14deg) skewX(-4deg); }
    to { transform: rotate(6deg) skewX(2deg); }
}

@keyframes player-v3-ripple-expand {
    0% { opacity: 0.8; transform: scale(0.3); }
    100% { opacity: 0; transform: scale(1.8); }
}

/* Velvet Graves V3 detail pass */
#duck-incident-root .velvet-model-v3 .velvet-v3-spectral-aura {
    fill: radial-gradient(circle, rgba(160, 80, 200, 0.22) 0%, rgba(90, 20, 120, 0.08) 60%, transparent 80%);
    animation: velvet-v3-pulse 3.2s ease-in-out infinite alternate;
}

#duck-incident-root .velvet-v3-lace {
    fill: none;
    stroke: rgba(235, 190, 255, 0.55);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-dasharray: 2 3;
}

@keyframes velvet-v3-pulse {
    0% { transform: scale(0.96); opacity: 0.6; }
    100% { transform: scale(1.04); opacity: 0.95; }
}

/* Vector Duck V3 specular pass */
#duck-incident-root .duck-prop-v3 .duck-v3-specular {
    fill: rgba(255, 255, 255, 0.65);
    filter: blur(1px);
}

#duck-incident-root .duck-prop-v3 .duck-v3-squeak-ripple {
    fill: none;
    stroke: rgba(255, 220, 100, 0.6);
    stroke-width: 1.5;
    opacity: 0;
}

#duck-incident-root[data-phase="duck"] .duck-prop-v3 .duck-v3-squeak-ripple {
    animation: duck-v3-squeak 0.4s ease-out 1;
}

@keyframes duck-v3-squeak {
    0% { opacity: 1; transform: scale(1); }
    100% { opacity: 0; transform: scale(18); }
}

@media (prefers-reduced-motion: reduce) {
    .player-model-v3,
    .player-model-v3 *,
    #duck-incident-root .velvet-model-v3 *,
    #duck-incident-root .duck-prop-v3 * {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
