.bee-ambient { isolation: isolate; }

.bee-ambient-layer {
    position: fixed;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}

.bee-ambient-layer::before,
.bee-ambient-layer::after {
    content: "";
    position: absolute;
}

.bee-ambient-layer::before {
    inset: 0;
    background: linear-gradient(153deg, #101d34 0%, transparent 46%, #08101d80 100%);
}

.bee-ambient-layer::after {
    inset: -12%;
    background:
        radial-gradient(ellipse at 16% 16%, #2360a444, transparent 34%),
        radial-gradient(ellipse at 86% 58%, #225fc340, transparent 36%),
        radial-gradient(ellipse at 59% 100%, #18396f32, transparent 47%);
}

.theme-light .bee-ambient-layer::before { opacity: .08; }
.theme-light .bee-ambient-layer { opacity: .5; }

.bee-snowflake {
    position: absolute;
    z-index: 1;
    left: var(--snow-x);
    top: -20px;
    width: var(--snow-size);
    height: var(--snow-size);
    opacity: var(--snow-opacity);
    background: #e3f2ff;
    border-radius: 50%;
    box-shadow: 0 0 6px #91c6ffbc;
    animation: bee-snow-fall var(--snow-duration) var(--snow-delay) linear infinite;
}

.bee-snow-paused .bee-snowflake { animation-play-state: paused; }

.bee-snow-toggle {
    position: fixed;
    z-index: 5;
    inset-inline-end: 1rem;
    inset-block-end: 1rem;
    padding: .45rem .65rem;
    border: 1px solid #557b99;
    border-radius: .55rem;
    background: #102237;
    color: #e8f7ff;
    font: inherit;
    font-size: .82rem;
}

.bee-snow-toggle:hover { background: #1d3a53; }
.bee-snow-toggle:focus-visible { outline: 2px solid #b7e7ff; outline-offset: 3px; }

.theme-light .bee-snowflake {
    background: #3b6ca1;
    box-shadow: none;
}

section.bee-home {
    border-color: #3561a0;
    box-shadow: inset 0 -2px #428cffaa, 0 10px 46px #134b9629;
}

.bee-home .bee-home-copy { z-index: 1; }

.bee-home::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 37%, #297cff28 44%, #408eff66 48%, #a9dcffbb 50%, #3f8bff56 52%, transparent 63%);
    opacity: 0;
}

@keyframes bee-ecu-sweep {
    0% { opacity: 0; transform: translateX(-105%); }
    20%, 74% { opacity: .88; }
    100% { opacity: 0; transform: translateX(105%); }
}

@media (prefers-reduced-motion: reduce) {
    .bee-home::after {
        background: radial-gradient(ellipse at 80% 62%, #408eff60, transparent 62%);
        animation: bee-ecu-glow 2.1s ease-out both;
    }
}

@keyframes bee-ecu-glow {
    from { opacity: 0; }
    to { opacity: .7; }
}

@media (prefers-reduced-motion: no-preference) {
    .bee-ambient-layer::after { animation: bee-ambient-drift 11s ease-in-out infinite alternate; }
    .bee-home::after { animation: bee-ecu-sweep 2.1s ease-in-out both; }
    .bee-home-actions a, .bee-item-actions button, .qty-btn {
        transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, scale .15s ease;
    }

    .bee-home-actions a:active, .bee-item-actions button:active, .qty-btn:active {
        scale: .96;
    }

    .bee-home-actions .bee-home-primary:hover {
        box-shadow: 0 0 24px #437dff65;
    }

    .bee-item-actions [aria-pressed="true"] span {
        display: inline-block;
        animation: bee-heart .32s ease-out;
    }

    @keyframes bee-heart {
        45% { transform: scale(1.5); }
    }
}

@keyframes bee-snow-fall {
    to { transform: translate3d(var(--snow-drift), calc(100vh + 16px), 0); }
}

@keyframes bee-ambient-drift {
    from { transform: translate3d(-3%, -2%, 0); opacity: .72; }
    to { transform: translate3d(4%, 4%, 0); opacity: 1; }
}
