/* Event palettes and artwork are injected by the registry, never core tokens. */
body[data-seasonal-theme] {
    --seasonal-chat: var(--seasonal-chat-dark);
    --seasonal-surface: var(--seasonal-surface-dark);
    --seasonal-accent: var(--seasonal-accent-dark);
    --seasonal-border: var(--seasonal-border-dark);
}
body.theme-light[data-seasonal-theme] {
    --seasonal-chat: var(--seasonal-chat-light);
    --seasonal-surface: var(--seasonal-surface-light);
    --seasonal-accent: var(--seasonal-accent-light);
    --seasonal-border: var(--seasonal-border-light);
}
body[data-seasonal-theme] .chat-area { background: var(--seasonal-chat); isolation: isolate; }
body[data-seasonal-theme] .messages { position: relative; z-index: 1; background: transparent; }
body[data-seasonal-theme] .chat-header,
body[data-seasonal-theme] .input-area,
body[data-seasonal-theme] .chat-sections { position: relative; z-index: 2; }
body[data-seasonal-theme] .sidebar,
body[data-seasonal-theme] .chat-header,
body[data-seasonal-theme] .workspace-tabs,
body[data-seasonal-theme] .settings-rail { background: var(--seasonal-surface); border-color: var(--seasonal-border); }
body[data-seasonal-theme] .sidebar { isolation: isolate; }
body[data-seasonal-theme] .input-area { background: var(--seasonal-chat); border-top-color: var(--seasonal-border); }
body[data-seasonal-theme] .message-day-separator span {
    color: var(--color-text-secondary);
    background: var(--seasonal-surface);
    border: 1px solid var(--seasonal-border);
}
body[data-seasonal-theme] .message-input-container:focus-within { border-color: var(--seasonal-accent); }
.seasonal-layer { pointer-events: none; user-select: none; }
.seasonal-backdrop, .seasonal-trim { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.seasonal-backdrop { inset: 64px 0 128px; }
.seasonal-trim { z-index: 1; }
.seasonal-decoration { display: block; position: absolute; width: var(--decor-size); height: var(--decor-size); object-fit: contain; pointer-events: none; }
.seasonal-decoration--float {
    opacity: .12;
    animation: seasonal-drift var(--decor-duration, 28s) ease-in-out var(--decor-delay, 0s) infinite alternate;
}
.seasonal-decoration--corner { opacity: .2; }
.seasonal-decoration--anchor, .seasonal-decoration--accent { opacity: .6; }
.seasonal-decoration[data-edge="top-right"] { top: 0; right: 0; }
.seasonal-decoration[data-edge="top-left"] { top: 0; left: 0; transform: scaleX(-1); }
.seasonal-decoration[data-edge="bottom-left"] { bottom: 16px; left: var(--decor-offset, 18px); }
.seasonal-decoration[data-edge="bottom-right"] { bottom: 24px; right: 18px; }
.seasonal-trim .seasonal-decoration--accent { opacity: .35; bottom: 94px; }
.seasonal-emblem { position: relative; width: 28px; height: 28px; flex: none; }
.seasonal-emblem .seasonal-decoration { position: static; }
[data-seasonal-entry][hidden] { display: none !important; }
body[data-seasonal-paused] .seasonal-decoration--float { animation-play-state: paused; }
body[data-seasonal-static] .seasonal-decoration--float { animation: none; }
body.theme-light .seasonal-decoration--float { opacity: .22; }
@keyframes seasonal-drift {
    0% { transform: translate3d(-8px, 16px, 0) rotate(-7deg); }
    50% { transform: translate3d(24px, -22px, 0) rotate(5deg); }
    100% { transform: translate3d(-4px, -58px, 0) rotate(-3deg); }
}
@media(max-width:640px) {
    .seasonal-backdrop .seasonal-decoration--float:nth-child(n+4) { display: none; }
    .seasonal-emblem { display: none; }
    .seasonal-backdrop { bottom: 116px; }
}
@media(prefers-reduced-motion:reduce) { .seasonal-decoration--float { animation: none; } }
