[hidden] { display: none !important; }

/* Leave room for the fixed playback controls below the animation. */
.viz-main .viz-canvas-container { min-height: 0; padding-bottom: 7rem !important; }

@media screen and (max-width: 896px) and (orientation: portrait) {
    .viz-main .viz-scene-header {
        padding-top: calc(4rem + env(safe-area-inset-top, 0px));
    }
}

.viz-resources {
    width: min(100%, 48rem);
    margin: 0 auto;
    padding: 2rem 1rem 6rem;
}
.viz-resources ul { list-style: none; padding: 0; }
.resource-card {
    display: block;
    margin: 0.75rem 0;
    padding: 1rem;
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
    background: var(--bg-surface);
    color: var(--text-primary);
    text-decoration: none;
}
.resource-card:hover, .resource-card:focus-visible {
    border-color: var(--color-success);
    outline: 2px solid var(--color-success);
    outline-offset: 2px;
}
.resource-card strong, .resource-card span { display: block; }
.resource-card span { color: var(--text-secondary); margin-top: 0.25rem; }
.site-footer { text-align: center; padding: 1rem 1rem 5rem; color: var(--text-secondary); }
.site-footer a { color: var(--text-primary); }
.privacy-content { max-width: 48rem; margin: auto; padding: 2rem 1rem; }
.privacy-content h2 { margin-top: 2rem; }
.privacy-content a { color: var(--color-success); }
