/**
 * IPE MyIELTS — Animated Doorway & Running Figure Logout Button (Aaron Iker)
 * Authentically styled for IELTS Red (#ef4444 / #dc2626)
 *
 * @package IPE_MyIELTS
 * @since   2.3.0
 */

.myielts-logout-wrapper {
    display: inline-flex;
    align-items: center;
}

.logoutButton {
    --figure-duration: 100ms;
    --transform-figure: none;
    --walking-duration: 100ms;
    --transform-arm1: none;
    --transform-wrist1: none;
    --transform-arm2: none;
    --transform-wrist2: none;
    --transform-leg1: none;
    --transform-calf1: none;
    --transform-leg2: none;
    --transform-calf2: none;

    background: none;
    border: 0;
    color: #fef2f2;
    cursor: pointer;
    display: block;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    height: 38px;
    outline: none;
    padding: 0 0 0 16px;
    perspective: 100px;
    position: relative;
    text-align: left;
    width: 125px;
    -webkit-tap-highlight-color: transparent;
    box-sizing: border-box;
}

/* Background pill of button */
.logoutButton::before {
    background-color: #1f1717;
    border-radius: 6px;
    content: '';
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    transform: none;
    transition: transform 50ms ease;
    width: 100%;
    z-index: 2;
    box-shadow: 0 2px 8px rgba(220, 38, 38, 0.25);
}

.logoutButton:hover .door {
    transform: rotateY(20deg);
}

.logoutButton:active::before {
    transform: scale(0.96);
}

.logoutButton:active .door {
    transform: rotateY(28deg);
}

/* Button was clicked */
.logoutButton.clicked::before {
    transform: none;
}

.logoutButton.clicked .door {
    transform: rotateY(35deg);
}

/* Close the door */
.logoutButton.door-slammed .door {
    transform: none;
    transition: transform 100ms ease-in 250ms;
}

/* The figure is falling */
.logoutButton.falling {
    animation: myieltsShake 200ms linear;
}

.logoutButton.falling .bang {
    animation: myieltsFlash 300ms linear;
}

.logoutButton.falling .figure {
    animation: myieltsSpin 1000ms infinite linear;
    bottom: -1080px;
    opacity: 0;
    right: 1px;
    transition: transform calc(var(--figure-duration) * 1ms) linear,
        bottom calc(var(--figure-duration) * 1ms) cubic-bezier(0.7, 0.1, 1, 1) 100ms,
        opacity calc(var(--figure-duration) * 0.25ms) linear calc(var(--figure-duration) * 0.75ms);
    z-index: 1;
}

/* Light modifier variant for Dark Theme surfaces */
.logoutButton--light::before {
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.logoutButton--light .button-text {
    color: #1f1717;
}

.logoutButton--light .door,
.logoutButton--light .doorway {
    fill: #1f1717;
}

.logoutButton .button-text {
    color: #fef2f2;
    font-weight: 600;
    position: relative;
    z-index: 10;
    line-height: 38px;
    user-select: none;
}

.logoutButton svg {
    display: block;
    position: absolute;
}

.logoutButton .figure {
    bottom: 4px;
    fill: #ef4444;
    right: 16px;
    transform: var(--transform-figure);
    transition: transform calc(var(--figure-duration) * 1ms) cubic-bezier(0.2, 0.1, 0.80, 0.9);
    width: 28px;
    height: 28px;
    z-index: 4;
}

.logoutButton .door,
.logoutButton .doorway {
    bottom: 4px;
    fill: #fef2f2;
    right: 10px;
    width: 30px;
    height: 30px;
}

.logoutButton .door {
    transform: rotateY(20deg);
    transform-origin: 100% 50%;
    transform-style: preserve-3d;
    transition: transform 200ms ease;
    z-index: 5;
}

.logoutButton .door path {
    fill: #ef4444;
    stroke: #ef4444;
    stroke-width: 4;
}

.logoutButton .door circle {
    fill: #ffffff;
}

.logoutButton .doorway {
    z-index: 3;
}

.logoutButton .bang {
    opacity: 0;
}

.logoutButton .arm1,
.logoutButton .wrist1,
.logoutButton .arm2,
.logoutButton .wrist2,
.logoutButton .leg1,
.logoutButton .calf1,
.logoutButton .leg2,
.logoutButton .calf2 {
    transition: transform calc(var(--walking-duration) * 1ms) ease-in-out;
}

.logoutButton .arm1 {
    transform: var(--transform-arm1);
    transform-origin: 52% 45%;
}

.logoutButton .wrist1 {
    transform: var(--transform-wrist1);
    transform-origin: 59% 55%;
}

.logoutButton .arm2 {
    transform: var(--transform-arm2);
    transform-origin: 47% 43%;
}

.logoutButton .wrist2 {
    transform: var(--transform-wrist2);
    transform-origin: 35% 47%;
}

.logoutButton .leg1 {
    transform: var(--transform-leg1);
    transform-origin: 47% 64.5%;
}

.logoutButton .calf1 {
    transform: var(--transform-calf1);
    transform-origin: 55.5% 71.5%;
}

.logoutButton .leg2 {
    transform: var(--transform-leg2);
    transform-origin: 43% 63%;
}

.logoutButton .calf2 {
    transform: var(--transform-calf2);
    transform-origin: 41.5% 73%;
}

@keyframes myieltsSpin {
    from { transform: rotate(0deg) scale(0.94); }
    to { transform: rotate(359deg) scale(0.94); }
}

@keyframes myieltsShake {
    0% { transform: rotate(-1deg); }
    50% { transform: rotate(2deg); }
    100% { transform: rotate(-1deg); }
}

@keyframes myieltsFlash {
    0% { opacity: 0.4; }
    100% { opacity: 0; }
}
