.structure-frame {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    aspect-ratio: 16 / 9;
    background-color: #f0f2f5;
    border: 2px dashed #d1d9e6;
    border-radius: var(--radius-lg);
    overflow: hidden;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-soft);
    transition: border-color 0.4s ease, background-color 0.4s ease;
}

.structure-frame.is-filled {
    border: 5px solid var(--white);
    background-color: var(--white);
}

.structure-frame img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    animation: fadeIn 0.6s var(--ease-smooth);
}

.blank-state {
    text-align: center;
    color: #aab8c2;
    padding: 20px;
}

.blank-state i {
    font-size: 3rem;
    margin-bottom: 10px;
    animation: floatY 3s ease-in-out infinite;
}

.blank-state p {
    font-size: 1.1rem;
    font-weight: 600;
}

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

@media (max-width: 768px) {
    .structure-frame {
        aspect-ratio: auto;
        height: auto;
        min-height: 220px;
        padding: 15px;
    }

    .structure-frame.is-filled {
        padding: 0;
    }

    .blank-state i {
        font-size: 2.2rem;
    }

    .blank-state p {
        font-size: 0.95rem;
    }
}