/* Hubbo Prime v40.3.1.7.2.1 - seasonal website design balance and event spectacles */

body.hp-seasonal-theme {
    --prime-bg: var(--prime-seasonal-surface-deep);
    --prime-surface: color-mix(in srgb, var(--prime-seasonal-surface) 82%, transparent);
    --prime-surface-soft: color-mix(in srgb, var(--prime-seasonal-surface-raised) 70%, transparent);
    --prime-surface-raised: color-mix(in srgb, var(--prime-seasonal-surface-raised) 85%, transparent);
    --hp-bg: var(--prime-seasonal-surface-deep);
    --hp-bg-soft: var(--prime-seasonal-surface);
    --hp-panel: var(--prime-seasonal-surface);
    --hp-panel-2: var(--prime-seasonal-surface-raised);
}

body.hp-seasonal-theme .hp-prime-global-bg {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 48%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 92%, transparent) 78%, var(--prime-seasonal-surface-deep)),
        radial-gradient(circle at 14% 10%, rgba(var(--prime-accent-rgb), .22), transparent 34%),
        radial-gradient(circle at 84% 14%, rgba(var(--prime-seasonal-secondary-rgb), .18), transparent 36%),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
    filter: saturate(.96) contrast(1.02);
}

body.hp-seasonal-theme .hp-prime-global-bg::before {
    background:
        linear-gradient(90deg, rgba(0,0,0,.33), rgba(0,0,0,.05) 44%, rgba(0,0,0,.42)),
        radial-gradient(circle at 50% 0%, rgba(var(--prime-seasonal-secondary-rgb), .10), transparent 40%);
}

body.hp-seasonal-theme .hp-prime-global-bg__glow--left { background: rgba(var(--prime-accent-rgb), .58); }
body.hp-seasonal-theme .hp-prime-global-bg__glow--right { background: rgba(var(--prime-seasonal-secondary-rgb), .48); }

body.hp-seasonal-theme .hp-navbar__inner,
body.hp-seasonal-theme .hp-navbar.is-scrolled .hp-navbar__inner {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 80%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 74%, transparent));
    border-color: rgba(255,255,255,.095);
    box-shadow: 0 26px 78px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.08), 0 0 38px rgba(var(--prime-accent-rgb), .08);
}

body.hp-seasonal-theme .hp-navbar__inner::before {
    background:
        radial-gradient(circle at 12% 0%, rgba(var(--prime-accent-rgb), .18), transparent 30%),
        linear-gradient(90deg, rgba(var(--prime-accent-rgb), .08), transparent 24%, transparent 76%, rgba(var(--prime-seasonal-secondary-rgb), .08));
}

body.hp-seasonal-theme .hp-navbar__inner::after {
    content: "";
    position: absolute;
    inset: 0 24px auto;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
    opacity: .42;
    pointer-events: none;
}

body.hp-seasonal-theme .hp-navbar__brand img {
    filter: drop-shadow(0 10px 20px rgba(0,0,0,.52)) drop-shadow(0 0 14px rgba(var(--prime-seasonal-secondary-rgb), .20));
}

body.hp-seasonal-theme--summer .hp-navbar__brand img { height: 62px; }
body.hp-seasonal-theme--christmas .hp-navbar__brand img { height: 54px; }

body.hp-seasonal-theme .hp-action--staff,
body.hp-seasonal-theme .prime-button--primary {
    background: linear-gradient(135deg, var(--prime-accent-hover), var(--prime-accent-strong)) !important;
    border-color: rgba(var(--prime-accent-rgb), .58) !important;
    color: var(--prime-accent-text) !important;
    box-shadow: 0 16px 36px rgba(var(--prime-accent-rgb), .28), inset 0 1px rgba(255,255,255,.30) !important;
}

body.hp-seasonal-theme .prime-card--hero {
    background: linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 86%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 82%, transparent));
    border-color: rgba(var(--prime-accent-rgb), .18);
}

body.hp-seasonal-theme .prime-card--content {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 80%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 76%, transparent));
    border-color: rgba(var(--prime-accent-rgb), .15);
}

body.hp-seasonal-theme .prime-card--media,
body.hp-seasonal-theme .prime-card--secondary,
body.hp-seasonal-theme .prime-card--notice {
    background: color-mix(in srgb, var(--prime-seasonal-surface) 70%, transparent);
    border-color: rgba(var(--prime-seasonal-secondary-rgb), .13);
}

body.hp-seasonal-theme .hp-me2-page {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 28%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 94%, transparent));
}

body.hp-seasonal-theme .hp-me2-page::before {
    background:
        radial-gradient(circle at 13% 8%, rgba(var(--prime-accent-rgb), .20), transparent 30%),
        radial-gradient(circle at 84% 6%, rgba(var(--prime-seasonal-secondary-rgb), .13), transparent 30%),
        linear-gradient(180deg, rgba(3,6,5,.10), color-mix(in srgb, var(--prime-seasonal-surface-deep) 86%, transparent)),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
    filter: saturate(1.02);
    opacity: .94;
}

body.hp-seasonal-theme .hp-me2-today,
body.hp-seasonal-theme .hp-me2-event-card time {
    background: color-mix(in srgb, var(--prime-seasonal-surface-deep) 78%, transparent);
}

body.hp-seasonal-theme .hp-me2-focus {
    background: linear-gradient(135deg, rgba(var(--prime-accent-rgb), .09), color-mix(in srgb, var(--prime-seasonal-surface-raised) 84%, transparent) 42%, color-mix(in srgb, var(--prime-seasonal-surface-deep) 80%, transparent));
}

body.hp-seasonal-theme .hp-identity-card,
body.hp-seasonal-theme .hp-identity-hero,
body.hp-seasonal-theme .hp-identity-nav {
    border-color: rgba(var(--prime-accent-rgb), .18);
    background-color: color-mix(in srgb, var(--prime-seasonal-surface) 78%, transparent);
}

/* Site-wide seasonal surfaces. Accent colors are supplied by the central
   appearance bridge; these variables bring the selected atmosphere into the
   formerly isolated modules without recoloring content art or status badges. */
body.hp-seasonal-theme {
    --unity-bg: var(--prime-seasonal-surface-deep);
    --unity-panel: color-mix(in srgb, var(--prime-seasonal-surface) 76%, transparent);
    --id-bg: var(--prime-seasonal-surface-deep);
    --id-card: color-mix(in srgb, var(--prime-seasonal-surface) 78%, transparent);
    --id-card-2: color-mix(in srgb, var(--prime-seasonal-surface-raised) 75%, transparent);
    --ascend-bg: var(--prime-seasonal-surface-deep);
    --ascend-card: color-mix(in srgb, var(--prime-seasonal-surface) 80%, transparent);
    --ascend-card-2: color-mix(in srgb, var(--prime-seasonal-surface-raised) 76%, transparent);
    --hp-blue: var(--prime-seasonal-secondary);
}

body.hp-seasonal-theme .hp-commerce {
    --commerce-bg: color-mix(in srgb, var(--prime-seasonal-surface) 80%, transparent);
    --commerce-bg-soft: color-mix(in srgb, var(--prime-seasonal-surface-raised) 69%, transparent);
    --commerce-panel: color-mix(in srgb, var(--prime-seasonal-surface) 72%, transparent);
    --commerce-panel-strong: color-mix(in srgb, var(--prime-seasonal-surface-raised) 78%, transparent);
    --commerce-cyan: var(--prime-seasonal-secondary);
}

body.hp-seasonal-theme .hp-origins {
    --origins-surface: color-mix(in srgb, var(--prime-seasonal-surface) 78%, transparent);
    --origins-surface-soft: color-mix(in srgb, var(--prime-seasonal-surface-raised) 70%, transparent);
    --origins-cyan: var(--prime-seasonal-secondary);
}

body.hp-seasonal-theme .hp-marketplace-context {
    --hpm-surface: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 76%, transparent), color-mix(in srgb, var(--prime-seasonal-surface) 82%, transparent));
    --hpm-surface-soft: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 66%, transparent), color-mix(in srgb, var(--prime-seasonal-surface) 72%, transparent));
}

body.hp-seasonal-theme .hp-team-page,
body.hp-seasonal-theme .hp-team-group,
body.hp-seasonal-theme .hp-team-card,
body.hp-seasonal-theme .hp-team-tabs button {
    --team-color: var(--prime-accent) !important;
}

body.hp-seasonal-theme :where(
    .hp-news-card-shell,
    .hp-panel,
    .hp-news-side-card,
    .hp-news-item,
    .hp-frontier-hero,
    .hp-frontier-card,
    .hp-frontier-feature,
    .hp-frontier-room-card,
    .hp-frontier-modes,
    .hp-team-hero,
    .hp-team-tabs,
    .hp-team-search,
    .hp-team-group,
    .hp-team-card,
    .hp-nexus-hero,
    .hp-nexus-card,
    .hp-nexus-tabs,
    .hp-ticket-nav,
    .hp-ticket-hero,
    .hp-ticket-detail-head,
    .hp-ticket-panel,
    .hp-ticket-message,
    .hp-rulebook-hero,
    .hp-rulebook-sidebar,
    .hp-rulebook-rule,
    .hp-ascend-hero,
    .hp-ascend-position,
    .hp-ascend-side-card,
    .hp-ascend-form-card,
    .hp-ascend-empty,
    .hp-marketplace-hero,
    .hp-marketplace-panel,
    .hpm-filter-panel,
    .hpm-detail-panel,
    .hpm-seller-panel,
    .hpm-form-section,
    .hpm-auction-card,
    .hpm-preview-item
) {
    border-color: rgba(var(--prime-accent-rgb), .14);
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--prime-seasonal-surface-raised) 76%, transparent),
        color-mix(in srgb, var(--prime-seasonal-surface) 82%, transparent)
    );
}

body.hp-seasonal-theme .hp-team-group {
    border-color: transparent;
    background: transparent;
}

body.hp-seasonal-theme .hp-team-hero {
    background: linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 82%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 76%, transparent));
}

body.hp-seasonal-theme .hp-team-tabs,
body.hp-seasonal-theme .hp-team-search,
body.hp-seasonal-theme .hp-team-card {
    border-color: rgba(var(--prime-accent-rgb), .12);
    background: color-mix(in srgb, var(--prime-seasonal-surface) 58%, transparent);
    backdrop-filter: blur(14px);
}

body.hp-seasonal-theme :where(
    .hp-news-bg,
    .hp-legacy-bg,
    .hp-frontier-bg,
    .hp-nexus-bg,
    .hp-rulebook-bg,
    .hp-ascend-bg,
    .hp-identity-bg
) {
    background:
        radial-gradient(circle at 15% 9%, rgba(var(--prime-accent-rgb), .18), transparent 34%),
        radial-gradient(circle at 86% 14%, rgba(var(--prime-seasonal-secondary-rgb), .13), transparent 34%),
        linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 66%, transparent), var(--prime-seasonal-surface-deep) 88%),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
}

/* Leaderboards carry category colors from the database. While a season is
   active, the presentation adopts the season accent; online dots stay green. */
body.hp-seasonal-theme .hp-legacy-podium {
    --podium-accent: var(--prime-accent) !important;
}

body.hp-seasonal-theme .hp-legacy-board {
    --legacy-accent: var(--prime-accent) !important;
    --legacy-accent-soft: rgba(var(--prime-accent-rgb), .10) !important;
}

body.hp-seasonal-theme .hp-legacy-hero {
    border-color: rgba(var(--prime-accent-rgb), .16);
    background:
        radial-gradient(circle at 16% 14%, rgba(var(--prime-accent-rgb), .13), transparent 36%),
        linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 84%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 78%, transparent));
    backdrop-filter: blur(16px);
}

body.hp-seasonal-theme .hp-legacy-stat,
body.hp-seasonal-theme .hp-legacy-podium-card,
body.hp-seasonal-theme .hp-legacy-board {
    border-color: rgba(var(--prime-accent-rgb), .14);
    background: color-mix(in srgb, var(--prime-seasonal-surface) 66%, transparent);
    backdrop-filter: blur(15px);
}

body.hp-seasonal-theme .hp-legacy-stat {
    background: color-mix(in srgb, var(--prime-seasonal-surface-deep) 54%, transparent);
}

/* Commerce has independent card gradients. The season controls their surface,
   while payment availability and sufficient-balance states remain green. */
body.hp-seasonal-theme .hp-commerce-hero {
    border-color: rgba(var(--prime-accent-rgb), .15);
    background:
        radial-gradient(circle at 10% 2%, rgba(var(--prime-accent-rgb), .11), transparent 31%),
        radial-gradient(circle at 88% 8%, rgba(var(--prime-seasonal-secondary-rgb), .07), transparent 32%),
        linear-gradient(145deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 84%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 80%, transparent));
    backdrop-filter: blur(18px);
}

body.hp-seasonal-theme :where(
    .hp-commerce-wallet,
    .hp-commerce-categories,
    .hp-commerce-search,
    .hp-commerce-panel,
    .hp-commerce-support,
    .hp-commerce-topup,
    .hp-commerce-voucher
) {
    border-color: rgba(var(--prime-accent-rgb), .13);
    background: color-mix(in srgb, var(--prime-seasonal-surface) 62%, transparent);
    backdrop-filter: blur(15px);
}

body.hp-seasonal-theme .hp-commerce-package {
    border-color: rgba(var(--prime-accent-rgb), .14);
    background:
        radial-gradient(circle at 0 0, rgba(var(--prime-accent-rgb), .055), transparent 32%),
        color-mix(in srgb, var(--prime-seasonal-surface) 68%, transparent);
    backdrop-filter: blur(15px);
}

body.hp-seasonal-theme .hp-commerce-package--primary {
    border-color: rgba(var(--prime-accent-rgb), .20);
    background:
        radial-gradient(circle at 8% 12%, rgba(var(--prime-accent-rgb), .09), transparent 34%),
        color-mix(in srgb, var(--prime-seasonal-surface-raised) 72%, transparent);
}

/* Daily Rewards: readable hero, lighter content cards and untouched completion
   colors. */
body.hp-seasonal-theme .hp-daily-hero {
    border-color: rgba(var(--prime-accent-rgb), .15);
    background:
        radial-gradient(circle at 10% 18%, rgba(var(--prime-accent-rgb), .13), transparent 33%),
        radial-gradient(circle at 84% 18%, rgba(var(--prime-seasonal-secondary-rgb), .08), transparent 30%),
        linear-gradient(145deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 84%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 78%, transparent));
    backdrop-filter: blur(18px);
}

body.hp-seasonal-theme .hp-daily-summary {
    border-color: rgba(var(--prime-accent-rgb), .13);
    background: color-mix(in srgb, var(--prime-seasonal-surface-deep) 58%, transparent);
}

body.hp-seasonal-theme .hp-daily-day {
    border-color: rgba(var(--prime-accent-rgb), .12);
    background:
        radial-gradient(circle at 50% 20%, rgba(var(--prime-accent-rgb), .055), transparent 35%),
        color-mix(in srgb, var(--prime-seasonal-surface) 58%, transparent);
    backdrop-filter: blur(13px);
}

body.hp-seasonal-theme .hp-daily-claim,
body.hp-seasonal-theme .hp-daily-history {
    border-color: rgba(var(--prime-accent-rgb), .13);
    background: color-mix(in srgb, var(--prime-seasonal-surface) 66%, transparent);
    backdrop-filter: blur(15px);
}

body.hp-seasonal-theme .hp-footer,
body.hp-seasonal-theme .hp-footer-prime {
    background: color-mix(in srgb, var(--prime-seasonal-surface-deep) 88%, transparent) !important;
    border-top-color: rgba(var(--prime-seasonal-secondary-rgb), .14) !important;
}

body.hp-seasonal-theme--summer .hp-nav-icon,
body.hp-seasonal-theme--summer .hp-me2-quick-grid b { color: var(--prime-accent-hover); }

body.hp-seasonal-theme--summer .hp-me2-quick-grid > a > i,
body.hp-seasonal-theme--summer .hp-me2-section-head > a,
body.hp-seasonal-theme--summer .hp-theme-preview__eyebrow { color: var(--prime-seasonal-secondary); }

body.hp-seasonal-theme--summer .hp-me2-section-head > div > span,
body.hp-seasonal-theme--summer .hp-me2-event-card time small,
body.hp-seasonal-theme--summer .hp-me2-event-card > span > b,
body.hp-seasonal-theme--summer .hp-me2-news-list > a small {
    color: var(--prime-seasonal-secondary) !important;
}

body.hp-seasonal-theme--summer .hp-me2-event-card {
    border-color: rgba(var(--prime-seasonal-secondary-rgb), .24);
    background: linear-gradient(135deg, rgba(var(--prime-seasonal-secondary-rgb), .09), rgba(var(--prime-accent-rgb), .08), rgba(255,255,255,.03));
}

body.hp-seasonal-theme--christmas .hp-nav-icon,
body.hp-seasonal-theme--christmas .hp-me2-quick-grid > a > i,
body.hp-seasonal-theme--christmas .hp-me2-section-head > a,
body.hp-seasonal-theme--christmas .hp-theme-preview__eyebrow { color: var(--prime-seasonal-secondary); }

body.hp-seasonal-theme--christmas .prime-card {
    box-shadow: 0 24px 70px rgba(0,0,0,.30), 0 0 0 1px rgba(var(--prime-seasonal-secondary-rgb), .025);
}

/* PRIME grand opening: deliberately the hotel’s biggest visual moment.
   This layer is scoped to the one event key and keeps all interactions below
   it available. Residents who disable background effects also disable it. */
body.hp-seasonal-theme--prime_opening .hp-prime-global-bg {
    background:
        linear-gradient(180deg, rgba(1,13,12,.08), rgba(1,11,10,.48) 72%, rgba(2,11,10,.90)),
        radial-gradient(circle at 12% 10%, rgba(var(--prime-accent-rgb), .38), transparent 34%),
        radial-gradient(circle at 88% 8%, rgba(var(--prime-seasonal-secondary-rgb), .34), transparent 40%),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
    filter: saturate(1.30) contrast(1.14) brightness(1.09);
}

body.hp-seasonal-theme--prime_opening .hp-prime-global-bg::before {
    opacity: .82;
    background:
        linear-gradient(112deg, transparent 0 14%, rgba(83,240,215,.24) 18%, rgba(255,237,150,.16) 20%, transparent 25%),
        linear-gradient(66deg, transparent 0 48%, rgba(255,219,94,.23) 52%, transparent 58%),
        linear-gradient(90deg, rgba(0,0,0,.24), transparent 42%, rgba(0,0,0,.28)),
        radial-gradient(circle at 50% 4%, rgba(255,239,176,.34), transparent 28%);
    background-size: 165% 100%, 185% 100%, 100% 100%, 100% 100%;
    background-position: 0 0, 100% 0, center, center;
    mix-blend-mode: screen;
    animation: hp-prime-opening-sweep 8.5s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--prime_opening .hp-prime-global-bg::after {
    opacity: .56;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.96) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(255,215,76,.96) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(70,245,210,.84) 0 1px, transparent 2px);
    background-size: 103px 97px, 157px 149px, 229px 191px;
    background-position: 8px 12px, 52px 66px, 112px 30px;
    mix-blend-mode: screen;
    animation: hp-prime-opening-twinkle 2.2s steps(2,end) infinite;
}

body.hp-seasonal-theme--prime_opening .hp-prime-global-bg__glow {
    width: 42vw;
    height: 128vh;
    top: -18vh;
    border-radius: 0;
    opacity: .34;
    filter: blur(20px);
    clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
    mix-blend-mode: screen;
}

body.hp-seasonal-theme--prime_opening .hp-prime-global-bg__glow--left {
    left: -11vw;
    background: linear-gradient(180deg, rgba(67,246,208,.90), rgba(67,246,208,.04));
    transform-origin: 50% 0;
    animation: hp-prime-opening-beam-left 7.2s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--prime_opening .hp-prime-global-bg__glow--right {
    right: -11vw;
    background: linear-gradient(180deg, rgba(255,213,78,.88), rgba(255,213,78,.04));
    transform-origin: 50% 0;
    animation: hp-prime-opening-beam-right 8.4s ease-in-out infinite alternate;
}

.hp-prime-opening-fx {
    position: fixed;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    pointer-events: none;
}

.hp-prime-opening-fx__beam {
    position: absolute;
    top: -12vh;
    width: 28vw;
    height: 132vh;
    opacity: .20;
    filter: blur(12px);
    clip-path: polygon(47% 0, 53% 0, 100% 100%, 0 100%);
    mix-blend-mode: screen;
    transform-origin: 50% 0;
}

.hp-prime-opening-fx__beam--left {
    left: -9vw;
    background: linear-gradient(180deg, rgba(47,244,207,.86), rgba(47,244,207,0));
    animation: hp-prime-opening-front-left 6.8s ease-in-out infinite alternate;
}

.hp-prime-opening-fx__beam--center {
    left: 37vw;
    opacity: .14;
    background: linear-gradient(180deg, rgba(255,232,128,.94), rgba(255,232,128,0));
    animation: hp-prime-opening-front-center 5.7s ease-in-out infinite alternate;
}

.hp-prime-opening-fx__beam--right {
    right: -9vw;
    background: linear-gradient(180deg, rgba(255,202,70,.88), rgba(255,202,70,0));
    animation: hp-prime-opening-front-right 7.6s ease-in-out infinite alternate;
}

.hp-prime-opening-fx__sparkles {
    position: absolute;
    inset: 0;
    opacity: .54;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.98) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(255,222,94,.96) 0 2px, transparent 3px),
        radial-gradient(circle, rgba(61,243,208,.92) 0 1px, transparent 3px);
    background-size: 119px 127px, 197px 181px, 271px 223px;
    background-position: 17px 32px, 84px 0, 39px 81px;
    mix-blend-mode: screen;
    animation: hp-prime-opening-particles 4.4s linear infinite;
}

.hp-prime-opening-fx__flare {
    position: absolute;
    top: -23vh;
    left: 50%;
    width: 64vw;
    height: 64vw;
    max-width: 1120px;
    max-height: 1120px;
    transform: translateX(-50%);
    border-radius: 50%;
    opacity: .22;
    background: radial-gradient(circle, rgba(255,246,194,.68) 0 2%, rgba(255,211,72,.25) 17%, rgba(62,243,207,.10) 38%, transparent 67%);
    filter: blur(10px);
    mix-blend-mode: screen;
    animation: hp-prime-opening-flare 3.4s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--prime_opening .hp-navbar__inner,
body.hp-seasonal-theme--prime_opening .hp-navbar.is-scrolled .hp-navbar__inner {
    border-color: rgba(var(--prime-seasonal-secondary-rgb), .46);
    box-shadow: 0 26px 78px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.16), 0 0 24px rgba(var(--prime-accent-rgb), .24), 0 0 58px rgba(var(--prime-seasonal-secondary-rgb), .18);
    animation: hp-prime-opening-nav 3.4s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--prime_opening .hp-navbar__brand img {
    filter: drop-shadow(0 10px 20px rgba(0,0,0,.56)) drop-shadow(0 0 13px rgba(var(--prime-accent-rgb), .82)) drop-shadow(0 0 26px rgba(var(--prime-seasonal-secondary-rgb), .52));
    animation: hp-prime-opening-logo 2.8s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--prime_opening .prime-card--hero,
body.hp-seasonal-theme--prime_opening .prime-card--content {
    border-color: rgba(var(--prime-seasonal-secondary-rgb), .27);
    box-shadow: 0 22px 64px rgba(0,0,0,.34), 0 0 28px rgba(var(--prime-accent-rgb), .07), inset 0 1px rgba(255,255,255,.07);
}

body.hp-seasonal-theme--prime_opening .prime-card--hero {
    background: linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 72%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 67%, transparent));
}

body.hp-seasonal-theme--prime_opening .prime-card--content {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 66%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 61%, transparent));
}

body.hp-seasonal-theme--prime_opening .hp-me2-page {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 14%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 72%, transparent));
}

body.hp-seasonal-theme--prime_opening .hp-me2-page::before {
    opacity: .48;
    filter: saturate(1.20) contrast(1.08);
}

body.hp-seasonal-theme--prime_opening .prime-button--primary,
body.hp-seasonal-theme--prime_opening .hp-action--staff {
    box-shadow: 0 14px 34px rgba(var(--prime-accent-rgb), .34), 0 0 18px rgba(var(--prime-seasonal-secondary-rgb), .20), inset 0 1px rgba(255,255,255,.38) !important;
}

@keyframes hp-prime-opening-sweep {
    0% { background-position: 0 0, 100% 0, center, center; }
    100% { background-position: 100% 0, 0 0, center, center; }
}

@keyframes hp-prime-opening-twinkle {
    0%,100% { opacity: .34; transform: translate3d(0,0,0); }
    50% { opacity: .66; transform: translate3d(0,-7px,0); }
}

@keyframes hp-prime-opening-beam-left { from { transform: rotate(-10deg); } to { transform: rotate(14deg); } }
@keyframes hp-prime-opening-beam-right { from { transform: rotate(11deg); } to { transform: rotate(-15deg); } }
@keyframes hp-prime-opening-front-left { from { transform: rotate(-15deg); } to { transform: rotate(20deg); } }
@keyframes hp-prime-opening-front-center { from { transform: rotate(-9deg); } to { transform: rotate(10deg); } }
@keyframes hp-prime-opening-front-right { from { transform: rotate(16deg); } to { transform: rotate(-20deg); } }
@keyframes hp-prime-opening-particles { from { background-position: 17px 32px,84px 0,39px 81px; } to { background-position: 17px 228px,84px 306px,39px 352px; } }
@keyframes hp-prime-opening-flare { from { opacity: .14; transform: translateX(-50%) scale(.90); } to { opacity: .32; transform: translateX(-50%) scale(1.07); } }
@keyframes hp-prime-opening-nav { from { box-shadow: 0 26px 78px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.16), 0 0 16px rgba(var(--prime-accent-rgb), .16), 0 0 36px rgba(var(--prime-seasonal-secondary-rgb), .12); } to { box-shadow: 0 26px 78px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.20), 0 0 32px rgba(var(--prime-accent-rgb), .34), 0 0 72px rgba(var(--prime-seasonal-secondary-rgb), .27); } }
@keyframes hp-prime-opening-logo { from { transform: translateY(0) scale(1); } to { transform: translateY(-1px) scale(1.025); } }

body.hp-seasonal-theme--prime_opening.hp-id-background-effects-off .hp-prime-opening-fx,
body.hp-seasonal-theme--prime_opening.hp-id-simplified .hp-prime-opening-fx { display: none; }

body.hp-seasonal-theme--prime_opening.hp-id-background-effects-off .hp-prime-global-bg::before,
body.hp-seasonal-theme--prime_opening.hp-id-background-effects-off .hp-prime-global-bg::after,
body.hp-seasonal-theme--prime_opening.hp-id-background-effects-off .hp-prime-global-bg__glow,
body.hp-seasonal-theme--prime_opening.hp-id-simplified .hp-prime-global-bg::before,
body.hp-seasonal-theme--prime_opening.hp-id-simplified .hp-prime-global-bg::after,
body.hp-seasonal-theme--prime_opening.hp-id-simplified .hp-prime-global-bg__glow {
    animation: none !important;
    opacity: 0 !important;
}

/* Pride Day Festival Spectacle — a joyful, high-energy hotel-wide celebration.
   It is deliberately independent from the PRIME opening show. */
body.hp-seasonal-theme--pride .hp-prime-global-bg {
    background:
        linear-gradient(180deg, rgba(17,5,37,.06), rgba(9,5,28,.47) 74%, rgba(7,4,20,.90)),
        radial-gradient(circle at 9% 8%, rgba(255,73,170,.34), transparent 34%),
        radial-gradient(circle at 92% 8%, rgba(65,214,255,.36), transparent 38%),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
    filter: saturate(1.38) contrast(1.13) brightness(1.10);
}

body.hp-seasonal-theme--pride .hp-prime-global-bg::before {
    opacity: .80;
    background:
        linear-gradient(116deg, transparent 0 14%, rgba(255,71,162,.25) 18%, rgba(255,213,67,.18) 20%, rgba(70,230,170,.22) 22%, rgba(62,185,255,.18) 24%, transparent 28%),
        linear-gradient(64deg, transparent 0 48%, rgba(151,96,255,.26) 52%, rgba(65,215,255,.20) 54%, transparent 59%),
        linear-gradient(90deg, rgba(5,0,15,.22), transparent 42%, rgba(5,0,15,.26)),
        radial-gradient(circle at 50% 2%, rgba(255,255,255,.26), transparent 27%);
    background-size: 175% 100%, 190% 100%, 100% 100%, 100% 100%;
    background-position: 0 0, 100% 0, center, center;
    mix-blend-mode: screen;
    animation: hp-pride-festival-sweep 7.8s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--pride .hp-prime-global-bg::after {
    opacity: .60;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.96) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(255,83,177,.94) 0 2px, transparent 3px),
        radial-gradient(circle, rgba(76,229,255,.92) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(255,222,66,.92) 0 1px, transparent 3px);
    background-size: 109px 101px, 173px 157px, 233px 211px, 307px 269px;
    background-position: 13px 26px, 76px 2px, 40px 92px, 121px 53px;
    mix-blend-mode: screen;
    animation: hp-pride-festival-twinkle 2.1s steps(2,end) infinite;
}

body.hp-seasonal-theme--pride .hp-prime-global-bg__glow {
    width: 46vw;
    height: 130vh;
    top: -18vh;
    border-radius: 0;
    opacity: .32;
    filter: blur(20px);
    clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%);
    mix-blend-mode: screen;
}

body.hp-seasonal-theme--pride .hp-prime-global-bg__glow--left {
    left: -12vw;
    background: linear-gradient(180deg, rgba(255,74,169,.92), rgba(113,82,255,.34), rgba(113,82,255,.02));
    transform-origin: 50% 0;
    animation: hp-pride-festival-beam-left 7.0s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--pride .hp-prime-global-bg__glow--right {
    right: -12vw;
    background: linear-gradient(180deg, rgba(61,218,255,.92), rgba(68,239,172,.32), rgba(68,239,172,.02));
    transform-origin: 50% 0;
    animation: hp-pride-festival-beam-right 8.2s ease-in-out infinite alternate;
}

.hp-pride-fx {
    position: fixed;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    pointer-events: none;
}

.hp-pride-fx__beam {
    position: absolute;
    top: -12vh;
    width: 30vw;
    height: 134vh;
    opacity: .20;
    filter: blur(12px);
    clip-path: polygon(47% 0, 53% 0, 100% 100%, 0 100%);
    mix-blend-mode: screen;
    transform-origin: 50% 0;
}

.hp-pride-fx__beam--left {
    left: -9vw;
    background: linear-gradient(180deg, rgba(255,70,166,.90), rgba(100,77,255,.52), rgba(100,77,255,0));
    animation: hp-pride-festival-front-left 6.4s ease-in-out infinite alternate;
}

.hp-pride-fx__beam--center {
    left: 36vw;
    opacity: .15;
    background: linear-gradient(180deg, rgba(255,226,77,.88), rgba(59,236,178,.54), rgba(59,236,178,0));
    animation: hp-pride-festival-front-center 5.2s ease-in-out infinite alternate;
}

.hp-pride-fx__beam--right {
    right: -9vw;
    background: linear-gradient(180deg, rgba(63,216,255,.90), rgba(126,88,255,.54), rgba(126,88,255,0));
    animation: hp-pride-festival-front-right 7.4s ease-in-out infinite alternate;
}

.hp-pride-fx__confetti {
    position: absolute;
    inset: 0;
    opacity: .24;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.96) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(255,93,177,.94) 0 2px, transparent 3px),
        radial-gradient(circle, rgba(74,226,255,.92) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(255,221,74,.92) 0 1px, transparent 3px);
    background-size: 151px 173px, 239px 211px, 317px 281px, 419px 347px;
    background-position: 16px 8px, 92px 66px, 47px 118px, 123px 19px;
    mix-blend-mode: screen;
    animation: hp-pride-festival-sparkles 4.8s linear infinite;
}

.hp-pride-fx__aurora {
    position: absolute;
    top: -30vh;
    left: 50%;
    width: 72vw;
    height: 72vw;
    max-width: 1240px;
    max-height: 1240px;
    transform: translateX(-50%);
    border-radius: 50%;
    opacity: .22;
    background: conic-gradient(from 20deg, rgba(255,67,158,.44), rgba(255,150,62,.32), rgba(255,231,72,.38), rgba(64,234,166,.34), rgba(54,194,255,.34), rgba(126,89,255,.40), rgba(255,67,158,.44));
    filter: blur(26px);
    mix-blend-mode: screen;
    animation: hp-pride-festival-aurora 5.2s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--pride .hp-navbar__inner,
body.hp-seasonal-theme--pride .hp-navbar.is-scrolled .hp-navbar__inner {
    border-color: rgba(255,255,255,.30);
    box-shadow: 0 26px 78px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.20), 0 0 26px rgba(255,81,171,.20), 0 0 54px rgba(64,215,255,.18), 0 0 74px rgba(255,221,76,.13);
    animation: hp-pride-festival-nav 3.1s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--pride .hp-navbar__brand img {
    filter: drop-shadow(0 10px 20px rgba(0,0,0,.56)) drop-shadow(0 0 12px rgba(255,82,170,.70)) drop-shadow(0 0 22px rgba(69,214,255,.58)) drop-shadow(0 0 32px rgba(255,221,73,.34));
    animation: hp-pride-festival-logo 2.6s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--pride .prime-card--hero,
body.hp-seasonal-theme--pride .prime-card--content {
    border-color: rgba(255,255,255,.23);
    box-shadow: 0 22px 64px rgba(0,0,0,.34), 0 0 22px rgba(255,80,171,.08), 0 0 32px rgba(67,215,255,.06), inset 0 1px rgba(255,255,255,.10);
}

body.hp-seasonal-theme--pride .prime-card--hero {
    background: linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 70%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 65%, transparent));
}

body.hp-seasonal-theme--pride .prime-card--content {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 64%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 60%, transparent));
}

body.hp-seasonal-theme--pride .hp-me2-page {
    background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 12%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 70%, transparent));
}

body.hp-seasonal-theme--pride .hp-me2-page::before {
    opacity: .46;
    filter: saturate(1.26) contrast(1.10);
}

body.hp-seasonal-theme--pride .prime-button--primary,
body.hp-seasonal-theme--pride .hp-action--staff {
    box-shadow: 0 14px 34px rgba(var(--prime-accent-rgb), .34), 0 0 18px rgba(64,215,255,.20), 0 0 24px rgba(255,221,76,.13), inset 0 1px rgba(255,255,255,.38) !important;
}

@keyframes hp-pride-festival-sweep { 0% { background-position: 0 0,100% 0,center,center; } 100% { background-position: 100% 0,0 0,center,center; } }
@keyframes hp-pride-festival-twinkle { 0%,100% { opacity:.34; transform:translate3d(0,0,0); } 50% { opacity:.70; transform:translate3d(0,-8px,0); } }
@keyframes hp-pride-festival-beam-left { from { transform:rotate(-12deg); } to { transform:rotate(16deg); } }
@keyframes hp-pride-festival-beam-right { from { transform:rotate(13deg); } to { transform:rotate(-17deg); } }
@keyframes hp-pride-festival-front-left { from { transform:rotate(-18deg); } to { transform:rotate(20deg); } }
@keyframes hp-pride-festival-front-center { from { transform:rotate(-10deg); } to { transform:rotate(12deg); } }
@keyframes hp-pride-festival-front-right { from { transform:rotate(17deg); } to { transform:rotate(-21deg); } }
@keyframes hp-pride-festival-sparkles { from { background-position:16px 8px,92px 66px,47px 118px,123px 19px; } to { background-position:16px 158px,92px 236px,47px 278px,123px 219px; } }
@keyframes hp-pride-festival-aurora { from { opacity:.14; transform:translateX(-50%) rotate(-7deg) scale(.90); } to { opacity:.32; transform:translateX(-50%) rotate(8deg) scale(1.08); } }
@keyframes hp-pride-festival-nav { from { box-shadow:0 26px 78px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.20),0 0 16px rgba(255,81,171,.14),0 0 32px rgba(64,215,255,.11); } to { box-shadow:0 26px 78px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.24),0 0 30px rgba(255,81,171,.30),0 0 62px rgba(64,215,255,.25),0 0 80px rgba(255,221,76,.17); } }
@keyframes hp-pride-festival-logo { from { transform:translateY(0) scale(1); } to { transform:translateY(-1px) scale(1.025); } }

body.hp-seasonal-theme--pride.hp-id-background-effects-off .hp-pride-fx,
body.hp-seasonal-theme--pride.hp-id-simplified .hp-pride-fx { display: none; }

body.hp-seasonal-theme--pride.hp-id-background-effects-off .hp-prime-global-bg::before,
body.hp-seasonal-theme--pride.hp-id-background-effects-off .hp-prime-global-bg::after,
body.hp-seasonal-theme--pride.hp-id-background-effects-off .hp-prime-global-bg__glow,
body.hp-seasonal-theme--pride.hp-id-simplified .hp-prime-global-bg::before,
body.hp-seasonal-theme--pride.hp-id-simplified .hp-prime-global-bg::after,
body.hp-seasonal-theme--pride.hp-id-simplified .hp-prime-global-bg__glow {
    animation: none !important;
    opacity: 0 !important;
}

/* Hubbo Festival: a polished night-time light show with restrained motion. */
body.hp-seasonal-theme--hubbo_festival .hp-prime-global-bg {
    background:
        linear-gradient(180deg, rgba(2,12,19,.10), rgba(2,12,19,.57) 70%, rgba(2,12,19,.94)),
        radial-gradient(circle at 18% 12%, rgba(31,200,195,.24), transparent 34%),
        radial-gradient(circle at 82% 10%, rgba(234,191,99,.20), transparent 37%),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
    filter: saturate(1.10) contrast(1.07) brightness(1.02);
}

body.hp-seasonal-theme--hubbo_festival .hp-prime-global-bg::before {
    opacity: .62;
    background:
        linear-gradient(112deg, transparent 0 24%, rgba(52,231,224,.12) 29%, transparent 36%),
        linear-gradient(68deg, transparent 0 63%, rgba(255,206,104,.10) 68%, transparent 74%),
        radial-gradient(circle at 50% 0%, rgba(255,237,183,.13), transparent 31%);
    background-size: 180% 100%, 195% 100%, 100% 100%;
    animation: hp-festival-sweep 11s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--hubbo_festival .hp-prime-global-bg::after {
    opacity: .28;
    background-image:
        radial-gradient(circle, rgba(255,255,255,.92) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(234,191,99,.92) 0 1px, transparent 2px),
        radial-gradient(circle, rgba(53,223,216,.86) 0 1px, transparent 2px);
    background-size: 163px 151px, 257px 229px, 347px 311px;
    mix-blend-mode: screen;
    animation: hp-festival-stars 5.8s linear infinite;
}

body.hp-seasonal-theme--hubbo_festival .hp-navbar__inner,
body.hp-seasonal-theme--hubbo_festival .hp-navbar.is-scrolled .hp-navbar__inner {
    border-color: rgba(var(--prime-seasonal-secondary-rgb), .28);
    box-shadow: 0 26px 78px rgba(0,0,0,.48), inset 0 1px rgba(255,255,255,.13), 0 0 28px rgba(var(--prime-accent-rgb), .14), 0 0 48px rgba(var(--prime-seasonal-secondary-rgb), .10);
}

body.hp-seasonal-theme--hubbo_festival .hp-navbar__brand img {
    max-height: 54px;
    filter: drop-shadow(0 9px 18px rgba(0,0,0,.56)) drop-shadow(0 0 10px rgba(var(--prime-seasonal-secondary-rgb), .42));
}

body.hp-seasonal-theme--hubbo_festival .prime-card--hero,
body.hp-seasonal-theme--hubbo_festival .prime-card--content {
    border-color: rgba(var(--prime-seasonal-secondary-rgb), .19);
    box-shadow: 0 22px 64px rgba(0,0,0,.35), 0 0 26px rgba(var(--prime-accent-rgb), .06), inset 0 1px rgba(255,255,255,.07);
}

body.hp-seasonal-theme--hubbo_festival .prime-card--hero { background: linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 74%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 70%, transparent)); }
body.hp-seasonal-theme--hubbo_festival .prime-card--content { background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 68%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 64%, transparent)); }
body.hp-seasonal-theme--hubbo_festival .hp-me2-page { background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 16%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 76%, transparent)); }
body.hp-seasonal-theme--hubbo_festival .hp-me2-page::before { opacity: .50; filter: saturate(1.12) contrast(1.06); }

.hp-festival-fx { position: fixed; inset: 0; z-index: 2; overflow: hidden; pointer-events: none; }
.hp-festival-fx__beam { position: absolute; top: -16vh; width: 24vw; height: 126vh; opacity: .12; filter: blur(14px); clip-path: polygon(47% 0,53% 0,100% 100%,0 100%); mix-blend-mode: screen; transform-origin: 50% 0; }
.hp-festival-fx__beam--left { left: -8vw; background: linear-gradient(180deg, rgba(37,228,218,.76), rgba(37,228,218,0)); animation: hp-festival-beam-left 9s ease-in-out infinite alternate; }
.hp-festival-fx__beam--center { left: 38vw; opacity: .08; background: linear-gradient(180deg, rgba(255,215,124,.84), rgba(255,215,124,0)); animation: hp-festival-beam-center 11s ease-in-out infinite alternate; }
.hp-festival-fx__beam--right { right: -8vw; background: linear-gradient(180deg, rgba(91,145,255,.66), rgba(91,145,255,0)); animation: hp-festival-beam-right 10s ease-in-out infinite alternate; }
.hp-festival-fx__shimmer { position: absolute; inset: 0; opacity: .18; background: radial-gradient(ellipse at 50% 0%, rgba(255,222,141,.30), transparent 38%), radial-gradient(ellipse at 18% 46%, rgba(25,213,205,.13), transparent 29%), radial-gradient(ellipse at 84% 42%, rgba(74,140,255,.12), transparent 31%); mix-blend-mode: screen; animation: hp-festival-shimmer 7s ease-in-out infinite alternate; }

@keyframes hp-festival-sweep { from { background-position: 0 0,100% 0,center; } to { background-position: 100% 0,0 0,center; } }
@keyframes hp-festival-stars { from { background-position: 12px 8px,84px 61px,39px 119px; } to { background-position: 12px 153px,84px 248px,39px 328px; } }
@keyframes hp-festival-beam-left { from { transform: rotate(-11deg); } to { transform: rotate(12deg); } }
@keyframes hp-festival-beam-center { from { transform: rotate(-5deg); } to { transform: rotate(7deg); } }
@keyframes hp-festival-beam-right { from { transform: rotate(10deg); } to { transform: rotate(-12deg); } }
@keyframes hp-festival-shimmer { from { opacity: .11; transform: scale(.98); } to { opacity: .24; transform: scale(1.03); } }

body.hp-seasonal-theme--hubbo_festival.hp-id-background-effects-off .hp-festival-fx,
body.hp-seasonal-theme--hubbo_festival.hp-id-simplified .hp-festival-fx { display: none; }

body.hp-seasonal-theme--hubbo_festival.hp-id-background-effects-off .hp-prime-global-bg::before,
body.hp-seasonal-theme--hubbo_festival.hp-id-background-effects-off .hp-prime-global-bg::after,
body.hp-seasonal-theme--hubbo_festival.hp-id-simplified .hp-prime-global-bg::before,
body.hp-seasonal-theme--hubbo_festival.hp-id-simplified .hp-prime-global-bg::after { animation: none !important; opacity: 0 !important; }

/* Neon Nights: city light, reflection and rain ambience without visual noise. */
body.hp-seasonal-theme--neon_nights .hp-prime-global-bg {
    background:
        linear-gradient(180deg, rgba(2,7,20,.14), rgba(2,7,20,.60) 72%, rgba(2,7,20,.94)),
        radial-gradient(circle at 14% 12%, rgba(74,229,255,.20), transparent 34%),
        radial-gradient(circle at 86% 9%, rgba(172,123,255,.17), transparent 37%),
        var(--hp-global-bg-image) center top / cover fixed no-repeat;
    filter: saturate(1.12) contrast(1.07) brightness(1.01);
}

body.hp-seasonal-theme--neon_nights .hp-prime-global-bg::before {
    opacity: .52;
    background: linear-gradient(112deg, transparent 0 27%, rgba(74,229,255,.12) 31%, transparent 36%), linear-gradient(72deg, transparent 0 62%, rgba(172,123,255,.10) 67%, transparent 72%);
    background-size: 180% 100%, 200% 100%;
    animation: hp-neon-sweep 13s ease-in-out infinite alternate;
}

body.hp-seasonal-theme--neon_nights .hp-prime-global-bg::after {
    opacity: .22;
    background-image: radial-gradient(circle, rgba(152,238,255,.94) 0 1px, transparent 2px), radial-gradient(circle, rgba(186,142,255,.85) 0 1px, transparent 2px);
    background-size: 191px 163px, 307px 271px;
    mix-blend-mode: screen;
    animation: hp-neon-specks 7s linear infinite;
}

body.hp-seasonal-theme--neon_nights .hp-navbar__inner,
body.hp-seasonal-theme--neon_nights .hp-navbar.is-scrolled .hp-navbar__inner { border-color: rgba(74,229,255,.22); box-shadow: 0 26px 78px rgba(0,0,0,.52), inset 0 1px rgba(255,255,255,.12), 0 0 32px rgba(74,229,255,.12), 0 0 52px rgba(172,123,255,.09); }
body.hp-seasonal-theme--neon_nights .hp-navbar__brand img { max-height: 54px; filter: drop-shadow(0 9px 19px rgba(0,0,0,.60)) drop-shadow(0 0 10px rgba(74,229,255,.34)); }
body.hp-seasonal-theme--neon_nights .prime-card--hero,
body.hp-seasonal-theme--neon_nights .prime-card--content { border-color: rgba(74,229,255,.15); box-shadow: 0 22px 64px rgba(0,0,0,.38), 0 0 25px rgba(74,229,255,.05), inset 0 1px rgba(255,255,255,.06); }
body.hp-seasonal-theme--neon_nights .prime-card--hero { background: linear-gradient(135deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 76%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 70%, transparent)); }
body.hp-seasonal-theme--neon_nights .prime-card--content { background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-raised) 68%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 64%, transparent)); }
body.hp-seasonal-theme--neon_nights .hp-me2-page { background: linear-gradient(180deg, color-mix(in srgb, var(--prime-seasonal-surface-deep) 16%, transparent), color-mix(in srgb, var(--prime-seasonal-surface-deep) 78%, transparent)); }
body.hp-seasonal-theme--neon_nights .hp-me2-page::before { opacity: .49; filter: saturate(1.12) contrast(1.05); }

.hp-neon-fx { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.hp-neon-fx__glow { position:absolute; top:-28vh; width:40vw; height:120vh; opacity:.12; filter:blur(20px); clip-path:polygon(47% 0,53% 0,100% 100%,0 100%); mix-blend-mode:screen; transform-origin:50% 0; }
.hp-neon-fx__glow--left { left:-13vw; background:linear-gradient(180deg,rgba(74,229,255,.78),rgba(74,229,255,0)); animation:hp-neon-left 12s ease-in-out infinite alternate; }
.hp-neon-fx__glow--right { right:-13vw; background:linear-gradient(180deg,rgba(172,123,255,.68),rgba(172,123,255,0)); animation:hp-neon-right 14s ease-in-out infinite alternate; }
.hp-neon-fx__rain { position:absolute; inset:-14% 0; opacity:.052; background-image:linear-gradient(110deg,transparent 49.4%,rgba(158,238,255,.82) 50%,transparent 50.6%); background-size:263px 219px; mix-blend-mode:screen; animation:hp-neon-rain 1.85s linear infinite; }

@keyframes hp-neon-sweep { from { background-position:0 0,100% 0; } to { background-position:100% 0,0 0; } }
@keyframes hp-neon-specks { from { background-position:11px 5px,71px 94px; } to { background-position:11px 168px,71px 305px; } }
@keyframes hp-neon-left { from { transform:rotate(-10deg); } to { transform:rotate(10deg); } }
@keyframes hp-neon-right { from { transform:rotate(11deg); } to { transform:rotate(-9deg); } }
@keyframes hp-neon-rain { from { background-position:0 -219px; } to { background-position:-74px 219px; } }

body.hp-seasonal-theme--neon_nights.hp-id-background-effects-off .hp-neon-fx,
body.hp-seasonal-theme--neon_nights.hp-id-simplified .hp-neon-fx { display:none; }
body.hp-seasonal-theme--neon_nights.hp-id-background-effects-off .hp-prime-global-bg::before,
body.hp-seasonal-theme--neon_nights.hp-id-background-effects-off .hp-prime-global-bg::after,
body.hp-seasonal-theme--neon_nights.hp-id-simplified .hp-prime-global-bg::before,
body.hp-seasonal-theme--neon_nights.hp-id-simplified .hp-prime-global-bg::after { animation:none !important; opacity:0 !important; }

/* Voluntary dashboard offer */
.hp-seasonal-offer {
    display: grid;
    grid-template-columns: 124px minmax(0,1fr) auto 40px;
    align-items: center;
    gap: 18px;
    min-height: 112px;
    padding: 16px 18px;
    border-left-width: 3px;
    overflow: hidden;
}

.hp-seasonal-offer::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 8% 10%, rgba(var(--prime-accent-rgb), .18), transparent 32%), radial-gradient(circle at 88% 50%, rgba(var(--prime-seasonal-secondary-rgb), .10), transparent 28%);
    pointer-events: none;
}

.hp-seasonal-offer > * { position: relative; z-index: 1; }
.hp-seasonal-offer__visual { display: grid; place-items: center; min-height: 76px; border-radius: 17px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.075); }
.hp-seasonal-offer__visual img { max-width: 108px; max-height: 72px; object-fit: contain; }
.hp-seasonal-offer__copy span,.hp-seasonal-offer__copy strong { display: block; }
.hp-seasonal-offer__copy span { color: var(--prime-accent-hover); font-size: 10px; font-weight: 950; letter-spacing: .09em; text-transform: uppercase; }
.hp-seasonal-offer__copy strong { margin-top: 5px; color: #fff; font-size: 18px; }
.hp-seasonal-offer__copy p { max-width: 720px; margin: 6px 0 0; color: #aebbb1; font-size: 12px; line-height: 1.5; }
.hp-seasonal-offer__dismiss { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.09); border-radius: 12px; background: rgba(255,255,255,.045); color: #d8e1da; font-size: 22px; line-height: 1; cursor: pointer; transition: .18s ease; }
.hp-seasonal-offer__dismiss:hover { border-color: rgba(var(--prime-accent-rgb), .30); background: rgba(255,255,255,.075); color: #fff; }

/* Appearance settings */
.hp-seasonal-setting__status { height: 30px; display: inline-flex; align-items: center; padding: 0 11px; border-radius: 999px; background: rgba(255,255,255,.055); color: #98a69b; font-size: 9px; font-weight: 950; text-transform: uppercase; }
.hp-seasonal-setting__status.is-ready { background: rgba(var(--prime-accent-rgb), .12); color: var(--prime-accent-hover); }
.hp-seasonal-setting__preview { display: grid; grid-template-columns: 130px minmax(0,1fr); align-items: center; gap: 18px; min-height: 118px; margin-bottom: 14px; padding: 16px 18px; border: 1px solid rgba(255,255,255,.085); border-radius: 18px; background-position: center; background-size: cover; overflow: hidden; }
.hp-seasonal-setting__preview img { width: 116px; max-height: 76px; object-fit: contain; }
.hp-seasonal-setting__preview small,.hp-seasonal-setting__preview strong,.hp-seasonal-setting__preview span { display: block; }
.hp-seasonal-setting__preview small { color: var(--prime-accent-hover); font-size: 9px; font-weight: 950; text-transform: uppercase; letter-spacing: .08em; }
.hp-seasonal-setting__preview strong { margin-top: 4px; color: #fff; font-size: 19px; }
.hp-seasonal-setting__preview span { margin-top: 4px; color: #c0ccc2; font-size: 11px; line-height: 1.45; }
.hp-seasonal-setting__empty { display: flex; align-items: center; gap: 13px; margin-bottom: 14px; padding: 14px; border: 1px dashed rgba(255,255,255,.10); border-radius: 16px; background: rgba(255,255,255,.025); }
.hp-seasonal-setting__empty > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: rgba(var(--prime-accent-rgb), .08); color: var(--prime-accent-hover); font-style: normal; }
.hp-seasonal-setting__empty strong,.hp-seasonal-setting__empty small { display: block; }
.hp-seasonal-setting__empty small { margin-top: 3px; color: #98a49b; font-size: 10px; line-height: 1.45; }
.hp-seasonal-setting__toggle { margin: 0 !important; }

@media (max-width: 760px) {
    .hp-prime-opening-fx__beam--center { display: none; }
    .hp-prime-opening-fx__beam { width: 44vw; opacity: .14; }
    .hp-prime-opening-fx__sparkles { opacity: .36; }
    .hp-pride-fx__beam--center { display: none; }
    .hp-pride-fx__beam { width: 44vw; opacity: .14; }
    .hp-pride-fx__confetti { opacity: .17; }
    .hp-festival-fx__beam--center { display: none; }
    .hp-festival-fx__beam { width: 42vw; opacity: .09; }
    .hp-neon-fx__glow { width:44vw; opacity:.08; }
    .hp-neon-fx__rain { opacity:.08; }
    body.hp-seasonal-theme--prime_opening .hp-navbar__brand img { max-height: 48px; }
    body.hp-seasonal-theme--pride .hp-navbar__brand img { max-height: 48px; }
    body.hp-seasonal-theme--hubbo_festival .hp-navbar__brand img { max-height: 46px; }
    body.hp-seasonal-theme--neon_nights .hp-navbar__brand img { max-height: 46px; }
    body.hp-seasonal-theme .hp-prime-global-bg,
    body.hp-seasonal-theme .hp-me2-page::before { background-attachment: scroll; }
    body.hp-seasonal-theme--summer .hp-navbar__brand img,
    body.hp-seasonal-theme--christmas .hp-navbar__brand img { max-height: 46px; }
    .hp-seasonal-offer { grid-template-columns: 92px minmax(0,1fr) 38px; gap: 12px; }
    .hp-seasonal-offer__visual { min-height: 64px; }
    .hp-seasonal-offer__visual img { max-width: 82px; max-height: 58px; }
    .hp-seasonal-offer > form:first-of-type { grid-column: 1 / -1; }
    .hp-seasonal-offer > form:first-of-type .prime-button { width: 100%; }
    .hp-seasonal-offer > form:last-of-type { grid-column: 3; grid-row: 1; justify-self: end; }
    .hp-seasonal-offer__copy { padding-right: 34px; }
    .hp-seasonal-setting__preview { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .hp-seasonal-offer *, body.hp-seasonal-theme * { transition-duration: .01ms !important; }
    body.hp-seasonal-theme--prime_opening .hp-prime-global-bg::before,
    body.hp-seasonal-theme--prime_opening .hp-prime-global-bg::after,
    body.hp-seasonal-theme--prime_opening .hp-prime-global-bg__glow,
    body.hp-seasonal-theme--prime_opening .hp-prime-opening-fx,
    body.hp-seasonal-theme--prime_opening .hp-navbar__inner,
    body.hp-seasonal-theme--prime_opening .hp-navbar__brand img,
    body.hp-seasonal-theme--pride .hp-prime-global-bg::before,
    body.hp-seasonal-theme--pride .hp-prime-global-bg::after,
    body.hp-seasonal-theme--pride .hp-prime-global-bg__glow,
    body.hp-seasonal-theme--pride .hp-pride-fx,
    body.hp-seasonal-theme--pride .hp-navbar__inner,
    body.hp-seasonal-theme--pride .hp-navbar__brand img { animation: none !important; }
    body.hp-seasonal-theme--hubbo_festival .hp-prime-global-bg::before,
    body.hp-seasonal-theme--hubbo_festival .hp-prime-global-bg::after,
    body.hp-seasonal-theme--hubbo_festival .hp-festival-fx { animation: none !important; }
    body.hp-seasonal-theme--neon_nights .hp-prime-global-bg::before,
    body.hp-seasonal-theme--neon_nights .hp-prime-global-bg::after,
    body.hp-seasonal-theme--neon_nights .hp-neon-fx { animation: none !important; }
}

/* Hubbo first anniversary: restrained champagne-gold celebration. */
body.hp-seasonal-theme--first_anniversary .hp-prime-global-bg{background:linear-gradient(180deg,rgba(5,10,22,.34),rgba(5,10,22,.88)),radial-gradient(circle at 50% 4%,rgba(242,201,109,.20),transparent 35%),var(--hp-global-bg-image) center top/cover fixed no-repeat;filter:saturate(1.04) contrast(1.04)}
body.hp-seasonal-theme--first_anniversary .hp-prime-global-bg::after{opacity:.28;background-image:radial-gradient(circle,rgba(255,232,171,.95) 0 1px,transparent 2px);background-size:123px 151px;animation:hp-anniversary-sparkle 7s linear infinite}
body.hp-seasonal-theme--first_anniversary .hp-navbar__inner{border-color:rgba(242,201,109,.30);box-shadow:0 15px 40px rgba(0,0,0,.3),0 0 24px rgba(242,201,109,.09)}
body.hp-seasonal-theme--first_anniversary .prime-card--hero,body.hp-seasonal-theme--first_anniversary .prime-card--content{border-color:rgba(242,201,109,.18)}
@keyframes hp-anniversary-sparkle{from{background-position:0 0}to{background-position:0 151px}}
