/* Inline controls below the hero; visitors control only their own audio/effects. */
.theme-controls { position:relative; z-index:2; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px; width:100%; padding:14px 16px; color:var(--lux-text); font:600 13px/1.5 "Exo 2",sans-serif; }
.theme-controls .theme-option, .theme-controls select { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:9px 14px; border:1px solid var(--lux-rule); border-radius:6px; background:var(--lux-page,#202020); color:var(--lux-text); font:inherit; cursor:pointer; }
.theme-controls .theme-option[aria-pressed="true"] { border-color:var(--lux-title); color:var(--lux-title); }
.theme-controls button:disabled { opacity:.5; cursor:not-allowed; }
.theme-controls :is(button,select):focus-visible { outline:2px solid var(--lux-title); outline-offset:3px; }
.theme-admin { display:flex; align-items:center; gap:8px; }
.theme-admin[hidden] { display:none; }
.theme-status { flex-basis:100%; text-align:center; margin:0; font-size:12px; color:var(--lux-muted); }
.theme-status:empty { display:none; }
.wiki-layout > .theme-controls { grid-column:1 / -1; }
.theme-particles {
    position: fixed;
    inset: 0;
    z-index: 20;
    overflow: hidden;
    pointer-events: none;
    contain: strict;
}
.theme-particles > span {
    position: absolute;
    top: -48px;
    left: var(--particle-x);
    width: var(--particle-size);
    height: var(--particle-size);
    opacity: 0;
    animation: theme-fall var(--particle-duration) var(--particle-delay) linear infinite;
    will-change: transform;
}
.theme-particles img { display: block; width: 100%; height: 100%; filter: drop-shadow(0 0 5px #b796e74d); }
@keyframes theme-fall {
    0% { transform: translate3d(0, 0, 0) rotate(-10deg); opacity: 0; }
    10% { opacity: var(--particle-opacity); }
    45% { transform: translate3d(var(--particle-sway), 47vh, 0) rotate(12deg); }
    85% { opacity: var(--particle-opacity); }
    100% { transform: translate3d(0, calc(100vh + 96px), 0) rotate(-8deg); opacity: 0; }
}

.theme-background-video { position:fixed; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; z-index:0; pointer-events:none; }
