.aidir-settings-pending .banner-hero img,
.aidir-settings-pending .hero-title,
.aidir-settings-pending .hero-subtitle,
.aidir-settings-pending nav.nav .hidden.md\:flex {
    visibility: hidden;
}

.aidir-settings-ready .banner-hero img,
.aidir-settings-ready .hero-title,
.aidir-settings-ready .hero-subtitle,
.aidir-settings-ready nav.nav .hidden.md\:flex {
    animation: settings-reveal .18s ease-out both;
}

@keyframes settings-reveal {
    from { opacity: 0; }
    to { opacity: 1; }
}

.site-announcement {
    position: relative;
    z-index: 70;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    height: 34px;
    min-height: 34px;
    padding: 5px 16px;
    border-bottom: 1px solid #1b252c;
    color: #cbd5dd;
    background: #07090b;
    font-size: 12px;
    line-height: 1.5;
    overflow: hidden;
}

.site-announcement strong {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    color: #53e5cb;
    font-size: 10px;
    letter-spacing: .08em;
}

.site-announcement strong::before {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    margin-right: 7px;
    background: #53e5cb;
    box-shadow: 0 0 10px rgba(83, 229, 203, .55);
}

.site-announcement-viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}

.site-announcement-track {
    display: flex;
    width: max-content;
    animation: announcement-scroll 9s linear infinite;
}

.site-announcement-track span {
    min-width: max-content;
    padding-right: 72px;
    white-space: nowrap;
}

.site-announcement:hover .site-announcement-track,
.site-announcement:focus-within .site-announcement-track {
    animation-play-state: paused;
}

.site-announcement-close {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    color: #aebbc8;
    background: transparent;
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
}

.site-announcement-close:hover,
.site-announcement-close:focus-visible {
    color: #fff;
    outline: 1px solid rgba(91, 220, 255, 0.55);
}

@keyframes announcement-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .site-announcement-track { animation: none; }
}

@media (max-width: 767px) {
    .site-announcement {
        align-items: center;
        min-height: 34px;
        padding: 5px 10px;
    }
}

.site-qr-modal {
    position: fixed;
    z-index: 200;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(0,0,0,.84);
}
.site-qr-modal[hidden] { display: none; }
.site-qr-modal img { width: min(360px,80vw); height: auto; max-height: 80vh; border-radius: 6px; background: #fff; }
.site-qr-modal button { position: fixed; top: 20px; right: 20px; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; color: #fff; background: #111; font-size: 24px; line-height: 1; }

.site-footer-content { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:28px; width:100%; }
.site-footer-main { min-width:0; }
.site-footer-copyright { margin:12px 0 0; color:rgba(255,255,255,.4); font-size:13px; line-height:1.6; letter-spacing:0; }
.site-footer-qr { display:flex; gap:18px; }
.site-footer-qr-button { display:grid; justify-items:center; gap:7px; padding:0; border:0; color:rgba(255,255,255,.48); background:none; font-size:11px; cursor:pointer; }
.site-footer-qr-button img { width:64px; height:64px; border-radius:4px; object-fit:cover; background:#fff; }
.site-footer-qr-button:hover { color:#fff; }
.site-footer-qr-button:focus-visible { outline:1px solid #66dcff; outline-offset:5px; }

@media (max-width:700px) {
    .site-footer-content { grid-template-columns:1fr; align-items:start; }
    .site-footer-qr { width:100%; justify-content:flex-start; }
}
