.senora-season {
    --season-accent: #8a641e;
    --season-soft: #fff8df;
    display: none;
    position: fixed;
    inset: 0;
    z-index: 40;
    pointer-events: none;
}

.senora-season.is-ready { display: block; }
.senora-season[data-effect="none"] .senora-season-particles { display: none; }
.senora-season[data-effect="petals"] { --season-accent: #a04873; --season-soft: #fff4f8; }
.senora-season[data-effect="bamboo"] { --season-accent: #3d704a; --season-soft: #f2f8f1; }
.senora-season[data-effect="ginkgo"] { --season-accent: #8a641e; --season-soft: #fff8df; }
.senora-season[data-effect="snow"] { --season-accent: #53788b; --season-soft: #f0f7fa; }
.senora-season-particles { position: absolute; inset: 0; overflow: hidden; }

.senora-season-particle {
    --left: 4%;
    --size: 30px;
    --duration: 26s;
    --delay: -9s;
    --sway: 7s;
    --turn: -24deg;
    --opacity: .72;
    position: absolute;
    top: -70px;
    left: var(--left);
    width: calc(var(--size) * 1.3);
    animation: senora-leaf-fall var(--duration) var(--delay) linear infinite;
}

.senora-season-particle > span {
    display: block;
    animation: senora-leaf-sway var(--sway) var(--delay) ease-in-out infinite alternate;
}

.senora-season-particle img {
    display: block;
    width: 100%;
    height: auto;
    animation: senora-leaf-turn 11s var(--delay) ease-in-out infinite alternate;
}

.senora-season-particle:nth-child(2) { --left: 93%; --size: 34px; --duration: 30s; --delay: -23s; --sway: 9s; --turn: 38deg; }
.senora-season-particle:nth-child(3) { --left: 13%; --size: 23px; --duration: 24s; --delay: -18s; --sway: 6s; --turn: 115deg; --opacity: .58; }
.senora-season-particle:nth-child(4) { --left: 85%; --size: 26px; --duration: 28s; --delay: -5s; --turn: -65deg; }
.senora-season-particle:nth-child(5) { --left: 69%; --size: 21px; --duration: 31s; --delay: -16s; --sway: 8s; --turn: 60deg; --opacity: .48; }
.senora-season-particle:nth-child(6) { --left: 26%; --size: 25px; --duration: 29s; --delay: -2s; --turn: -90deg; --opacity: .5; }
.senora-season-particle:nth-child(7) { --left: 45%; --size: 19px; --duration: 33s; --delay: -26s; --sway: 10s; --turn: 150deg; --opacity: .38; }
.senora-season-particle:nth-child(8) { --left: 97%; --size: 22px; --duration: 27s; --delay: -13s; --turn: 20deg; --opacity: .6; }
.senora-season-particle:nth-child(9) { --left: 20%; --size: 29px; --duration: 32s; --delay: -21s; --sway: 8s; --turn: -45deg; --opacity: .55; }
.senora-season-particle:nth-child(10) { --left: 58%; --size: 21px; --duration: 28s; --delay: -8s; --sway: 9s; --turn: 85deg; --opacity: .4; }
.senora-season-particle:nth-child(11) { --left: 77%; --size: 24px; --duration: 34s; --delay: -29s; --sway: 7s; --turn: -110deg; --opacity: .52; }
.senora-season-particle:nth-child(12) { --left: 36%; --size: 20px; --duration: 30s; --delay: -12s; --sway: 10s; --turn: 135deg; --opacity: .4; }

@keyframes senora-leaf-fall {
    0% { transform: translate3d(0, 0, 0); opacity: 0; }
    8%, 86% { opacity: var(--opacity); }
    100% { transform: translate3d(-24px, calc(100vh + 140px), 0); opacity: 0; }
}

@keyframes senora-leaf-sway {
    from { transform: translate3d(-10px, 0, 0); }
    to { transform: translate3d(18px, 0, 0); }
}

@keyframes senora-leaf-turn {
    from { transform: rotate(var(--turn)) scaleX(.8); }
    to { transform: rotate(calc(var(--turn) + 100deg)) scaleX(1); }
}

.senora-season-toggle {
    position: absolute;
    bottom: calc(20px + env(safe-area-inset-bottom, 0px));
    left: 20px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--season-accent);
    border-radius: 50%;
    background: #fff;
    color: var(--season-accent);
    box-shadow: 0 2px 10px #0000000d;
    font-size: 17px;
    cursor: pointer;
    pointer-events: auto;
}

.senora-season-toggle[hidden] { display: none; }
.senora-season-toggle:hover { background: var(--season-soft); }
.senora-season-toggle:focus-visible { outline: 2px solid var(--senora-red, #8a151b); outline-offset: 4px; }
.senora-season[data-mode="off"] .senora-season-toggle { color: #666; border-color: #ccc; }

.senora-season-menu {
    position: absolute;
    left: 20px;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    width: min(248px, calc(100vw - 40px));
    max-height: calc(100dvh - 100px - env(safe-area-inset-bottom, 0px));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px;
    box-sizing: border-box;
    border: 1px solid #e3dccb;
    border-radius: 8px;
    background: #fff;
    color: #292823;
    box-shadow: 0 8px 32px #0000001a;
    pointer-events: auto;
    font: 400 14px/1.5 var(--senora-font-body, sans-serif);
    letter-spacing: 0;
}
.senora-season-menu[hidden] { display: none; }
.senora-season-menu-heading { display: block; padding: 8px 10px 12px; font-weight: 600; }
.senora-season-menu button {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 44px;
    padding: 10px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    text-align: left;
    font: inherit;
    letter-spacing: 0;
    overflow-wrap: anywhere;
    cursor: pointer;
}
.senora-season-menu button:hover { background: #f4f5f6; }
.senora-season-menu button[aria-checked="true"] { background: var(--season-soft); color: var(--season-accent); font-weight: 600; }
.senora-season-menu button:focus-visible { outline: 2px solid var(--season-accent); outline-offset: -2px; }
.senora-season-menu button[data-season-choice="off"] { border-top: 1px solid #ececec; margin-top: 4px; }
.senora-season-selected { visibility: hidden; }
.senora-season-menu button[aria-checked="true"] .senora-season-selected { visibility: visible; }

.senora-season-tooltip {
    position: absolute;
    left: 54px;
    padding: 8px 12px;
    width: max-content;
    max-width: min(300px, calc(100vw - 92px));
    overflow-wrap: anywhere;
    text-align: left;
    border-radius: 4px;
    background: #292823;
    color: #fff;
    font: 400 13px/1.5 var(--senora-font-body, sans-serif);
    letter-spacing: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.senora-season-toggle:hover .senora-season-tooltip,
.senora-season-toggle:focus-visible .senora-season-tooltip { opacity: 1; visibility: visible; }
.senora-season.is-menu-open .senora-season-tooltip { visibility: hidden; opacity: 0; }
.senora-season.is-suspended .senora-season-particle,
.senora-season.is-suspended .senora-season-particle > span,
.senora-season.is-suspended .senora-season-particle img,
.senora-modal-lock .senora-season-particle,
.senora-modal-lock .senora-season-particle > span,
.senora-modal-lock .senora-season-particle img { animation-play-state: paused; }
.senora-modal-lock .senora-season { visibility: hidden; }

.senora-season[data-effect="petals"] .senora-season-particle img { width: 72%; }
.senora-season[data-effect="bamboo"] .senora-season-particle img { width: 68%; }
.senora-season[data-effect="snow"] .senora-season-particle img { width: 64%; }
.senora-season[data-effect="snow"] .senora-season-particle { --opacity: .85; }
.senora-season-background {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .4;
}
.senora-season-background[hidden] { display: none; }
.senora-page.has-season-background .senora-cinematic-bg { opacity: 1; }
.senora-page.has-season-background .senora-cinematic-image { opacity: 0; }

@media (max-width: 767px) {
    .senora-season-particle { --size: 22px; --opacity: .55; }
    .senora-season-particle:nth-child(2) { --left: 95%; --size: 24px; --opacity: .55; }
    .senora-season-particle:nth-child(3) { --left: 7%; --size: 18px; --opacity: .4; }
    .senora-season-particle:nth-child(4) { --left: 82%; --size: 22px; --opacity: .45; }
    .senora-season-particle:nth-child(5) { --left: 52%; --size: 18px; --opacity: .35; }
    .senora-season-particle:nth-child(n+6),
    .senora-season[data-density="light"] .senora-season-particle:nth-child(n+4) { display: none; }
    .senora-season-toggle { left: 12px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
    .senora-season-menu { left: 12px; bottom: calc(72px + env(safe-area-inset-bottom, 0px)); width: min(248px, calc(100vw - 24px)); }
}

@media (prefers-reduced-motion: reduce) {
    .senora-season-particles { display: none; }
    .senora-season-particle, .senora-season-particle > span, .senora-season-particle img { animation: none; }
}
