.platform-choice-modal {
    position: fixed;
    inset: 0;
    z-index: 70000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(0, 0, 0, 0.82);
    backdrop-filter: blur(5px);
    color: var(--main-ui, var(--verde-base, #4d9eff));
    font-family: 'Share Tech Mono', monospace;
    animation: platform-overlay-enter 260ms ease-out both;
}

.platform-choice-window {
    position: relative;
    overflow: hidden;
    width: min(100%, 460px);
    border: 1px solid var(--main-ui, var(--verde-base, #4d9eff));
    background: var(--third-ui, var(--bg-negro, #080a0e));
    box-shadow: 0 0 28px var(--main-dim, rgba(77, 158, 255, 0.2));
    animation: platform-window-enter 420ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.platform-choice-window::after {
    position: absolute;
    top: -45%;
    left: 0;
    width: 100%;
    height: 35%;
    background: linear-gradient(180deg, transparent, var(--main-dim, rgba(77, 158, 255, 0.18)), transparent);
    content: "";
    pointer-events: none;
    animation: platform-scan 1.8s ease-in-out 420ms both;
}

.platform-choice-modal.is-closing {
    pointer-events: none;
    animation: platform-overlay-exit 180ms ease-in both;
}

.platform-choice-modal.is-closing .platform-choice-window {
    animation: platform-window-exit 180ms ease-in both;
}

.platform-choice-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--main-ui, var(--verde-base, #4d9eff));
    background: rgba(0, 0, 0, 0.3);
    color: var(--second-ui, var(--verde-high, #cceecc));
    font-size: 0.75rem;
}

.platform-choice-header span:last-child {
    opacity: 0.6;
}

.origin-platform-indicator {
    display: inline-block;
    margin-left: 12px;
    padding: 3px 7px;
    border: 1px solid currentColor;
    color: var(--second-ui, var(--verde-high, #cceecc));
    font-size: 0.65rem;
    line-height: 1.2;
    vertical-align: middle;
    white-space: nowrap;
}

.platform-choice-body {
    padding: 28px;
}

.platform-choice-body h1 {
    margin: 0 0 10px;
    color: var(--second-ui, var(--verde-high, #cceecc));
    font-size: 1.2rem;
    font-weight: 400;
}

.platform-choice-body p {
    margin: 0 0 22px;
    color: var(--white, var(--gris-dim, #a0a0a0));
    font-size: 0.85rem;
    line-height: 1.5;
    opacity: 0.75;
}

.platform-choice-options {
    display: grid;
    gap: 10px;
}

.platform-choice-button {
    min-height: 46px;
    padding: 10px 14px;
    border: 1px solid var(--main-ui, var(--verde-base, #4d9eff));
    background: transparent;
    color: var(--main-ui, var(--verde-base, #4d9eff));
    font: inherit;
    text-align: left;
    cursor: pointer;
    opacity: 0;
    animation: platform-option-enter 300ms ease-out forwards;
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}

.platform-choice-button:nth-child(2) {
    animation-delay: 70ms;
}

.platform-choice-button:nth-child(3) {
    animation-delay: 140ms;
}

.floppy-destination-janitor {
    border-color: #cc97e6;
    color: #cc97e6;
}

.floppy-destination-saucepan {
    border-color: #e6bf97;
    color: #e6bf97;
}

.platform-choice-button:hover,
.platform-choice-button:focus-visible {
    outline: none;
    background: var(--main-dim, rgba(77, 158, 255, 0.16));
    color: var(--second-ui, var(--verde-high, #cceecc));
}

@keyframes platform-choice-enter {
    from { opacity: 0; transform: translateY(8px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes platform-overlay-enter {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes platform-overlay-exit {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes platform-window-enter {
    from { opacity: 0; transform: translateY(18px) scale(0.94) rotateX(5deg); filter: blur(5px); }
    to { opacity: 1; transform: translateY(0) scale(1) rotateX(0); filter: blur(0); }
}

@keyframes platform-window-exit {
    from { opacity: 1; transform: translateY(0) scale(1); }
    to { opacity: 0; transform: translateY(8px) scale(0.97); }
}

@keyframes platform-option-enter {
    from { opacity: 0; transform: translateX(12px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes platform-scan {
    from { top: -45%; }
    to { top: 120%; }
}

@media (max-width: 520px) {
    .platform-choice-body {
        padding: 22px;
    }

    .platform-choice-header {
        font-size: 0.65rem;
    }
}