/* =========================================================
   PALLADIUM - LANDING PAGE V3
   Clean editorial redesign, isolated from legacy home styles.
========================================================= */

.home-redesign {
    --landing-paper: #f4f0e8;
    --landing-paper-2: #ebe5da;
    --landing-ink: #171715;
    --landing-muted: #6f6b64;
    --landing-dark: #11110f;
    --landing-dark-2: #191815;
    --landing-gold: #c4a76e;
    --landing-line: rgba(23, 23, 21, 0.13);
    --landing-line-light: rgba(255, 255, 255, 0.12);
    --landing-space: clamp(78px, 7.2vw, 118px);

    background: var(--landing-paper);
    color: var(--landing-ink);
}

.home-redesign .site-footer {
    margin-top: 0;
}

.home-redesign h1,
.home-redesign h2,
.home-redesign h3,
.home-redesign p {
    margin-top: 0;
}

.home-redesign figure,
.home-redesign dl,
.home-redesign dd,
.home-redesign blockquote {
    margin: 0;
}

.home-redesign section[id] {
    scroll-margin-top: 28px;
}

/* ---------------------------------------------------------
   SMALL SHARED ELEMENTS
--------------------------------------------------------- */

.landing-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
    color: #888178;
    font-size: 0.66rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.19em;
    text-transform: uppercase;
}

.landing-kicker::before {
    content: "";
    width: 34px;
    height: 1px;
    flex: 0 0 auto;
    background: var(--landing-gold);
}

.landing-kicker--light {
    color: rgba(255, 255, 255, 0.55);
}

.landing-text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 7px 0 6px;
    border-bottom: 1px solid rgba(23, 23, 21, 0.32);
    color: var(--landing-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.2;
    transition:
        color 180ms var(--ease),
        border-color 180ms var(--ease);
}

.landing-text-link > span {
    transition: transform 180ms var(--ease);
}

.landing-text-link:hover > span,
.landing-text-link:focus-visible > span {
    transform: translate(3px, -2px);
}

.landing-text-link--light {
    color: #fff;
    border-bottom-color: rgba(255, 255, 255, 0.33);
}

.landing-text-link--light:hover,
.landing-text-link--light:focus-visible {
    border-bottom-color: rgba(255, 255, 255, 0.85);
}

.landing-section-head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(290px, 0.55fr);
    gap: clamp(46px, 7vw, 112px);
    align-items: end;
    margin-bottom: clamp(44px, 5vw, 68px);
}

.landing-section-head h2 {
    max-width: 880px;
    margin: 0;
    font-size: clamp(2.8rem, 4.7vw, 5rem);
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.048em;
}

.landing-section-head__side {
    display: grid;
    gap: 20px;
    justify-items: start;
}

.landing-section-head__side > p {
    max-width: 520px;
    margin: 0;
    color: var(--landing-muted);
    font-size: 0.9rem;
    line-height: 1.75;
}

.landing-section-head--light h2 {
    color: #fff;
}

.landing-section-head--light .landing-section-head__side > p {
    color: rgba(255, 255, 255, 0.55);
}

.landing-empty {
    grid-column: 1 / -1;
    padding: 34px;
    border: 1px solid var(--landing-line);
    color: var(--landing-muted);
}

.landing-empty--dark {
    border-color: var(--landing-line-light);
    color: rgba(255, 255, 255, 0.55);
}

/* =========================================================
   NAVBAR
   Deliberately NOT fixed/sticky on the landing page.
   It stays inside the hero and scrolls away, so it cannot
   overlap headings or text in later sections.
========================================================= */

.home-redesign .landing-nav {
    position: absolute !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 90;
    width: 100%;
    min-height: 82px;
    padding: 0 max(var(--gutter), calc((100vw - 1560px) / 2 + 24px));
    transform: none !important;
    background:
        linear-gradient(
            180deg,
            rgba(8, 8, 7, 0.76) 0%,
            rgba(8, 8, 7, 0.34) 66%,
            transparent 100%
        ) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    backdrop-filter: none;
    transition: none;
}

.home-redesign .landing-nav.is-scrolled,
.home-redesign .landing-nav.is-hidden {
    transform: none !important;
    background:
        linear-gradient(
            180deg,
            rgba(8, 8, 7, 0.76) 0%,
            rgba(8, 8, 7, 0.34) 66%,
            transparent 100%
        ) !important;
}

.home-redesign .landing-nav .navbar__brand {
    position: relative;
    z-index: 92;
    gap: 11px;
}

.home-redesign .landing-nav .navbar__logo {
    width: 50px;
    height: 50px;
    max-width: 50px;
    max-height: 50px;
    object-fit: contain;
}

.home-redesign .landing-nav .navbar__name {
    max-width: 220px;
    color: #fff;
    font-size: 0.87rem;
    font-weight: 720;
    letter-spacing: 0.055em;
}

.home-redesign .landing-nav .navbar__links {
    gap: clamp(15px, 1.5vw, 25px);
    font-size: 0.72rem;
}

.home-redesign .landing-nav .navbar__links a {
    padding: 30px 0 27px;
    color: rgba(255, 255, 255, 0.73);
}

.home-redesign .landing-nav .navbar__links a::after {
    bottom: 21px;
    background: var(--landing-gold);
}

.home-redesign .landing-nav .navbar__cta {
    min-height: 40px;
    padding: 0 18px;
    border-color: rgba(255, 255, 255, 0.34);
    color: #fff;
    font-size: 0.7rem;
}

.home-redesign .landing-nav .navbar__toggle {
    position: relative;
    z-index: 92;
}

.home-redesign .landing-mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 85;
    padding: 110px var(--gutter) 40px;
    background: rgba(12, 12, 11, 0.985);
}

.landing-mobile-menu__eyebrow {
    margin-bottom: 12px;
    color: rgba(255, 255, 255, 0.36);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

/* =========================================================
   HERO
========================================================= */

.landing-hero {
    position: relative;
    min-height: max(760px, 100vh);
    min-height: max(760px, 100dvh);
    display: flex;
    align-items: flex-end;
    isolation: isolate;
    overflow: hidden;
    background: #0d0d0c;
    color: #fff;
}

.landing-hero__media,
.landing-hero__media img,
.landing-hero__overlay,
.landing-hero__grain {
    position: absolute;
    inset: 0;
}

.landing-hero__media {
    z-index: -4;
}

.landing-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 45%;
    transform: scale(1.01);
}

.landing-hero__overlay {
    z-index: -3;
    background:
        linear-gradient(
            90deg,
            rgba(5, 5, 4, 0.88) 0%,
            rgba(5, 5, 4, 0.62) 42%,
            rgba(5, 5, 4, 0.24) 72%,
            rgba(5, 5, 4, 0.12) 100%
        ),
        linear-gradient(
            180deg,
            rgba(5, 5, 4, 0.36) 0%,
            rgba(5, 5, 4, 0.02) 38%,
            rgba(5, 5, 4, 0.62) 100%
        );
}

.landing-hero__grain {
    z-index: -2;
    opacity: 0.13;
    pointer-events: none;
    background-image:
        radial-gradient(rgba(255, 255, 255, 0.25) 0.55px, transparent 0.55px);
    background-size: 6px 6px;
    mix-blend-mode: soft-light;
}


/* Decorative fireworks live only inside the homepage hero. */
.landing-hero__fireworks {
    --firework-gold: #e5bd55;
    --firework-champagne: #f5dda2;
    --firework-ivory: #fff9e8;
    --firework-rose: #e9b8a4;
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    pointer-events: none;
    user-select: none;
}

.hero-firework-burst,
.hero-firework-burst::before,
.hero-firework-burst::after {
    --particle-size: clamp(1.7px, 0.22vmin, 3.5px);
    --burst-rotation-offset: 0deg;
    content: "";
    position: absolute;
    width: var(--firework-size, 320px);
    aspect-ratio: 1;
    border-radius: 50%;
    opacity: 0;
    background:
        radial-gradient(circle at 50% 1%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 78% 9%, var(--firework-champagne) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 94% 30%, var(--firework-ivory) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 99% 53%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 88% 78%, var(--firework-rose) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 67% 94%, var(--firework-champagne) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 48% 99%, var(--firework-ivory) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 27% 91%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 9% 73%, var(--firework-champagne) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 1% 49%, var(--firework-ivory) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 11% 25%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 30% 8%, var(--firework-rose) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 64% 18%, var(--firework-ivory) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 83% 42%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 77% 68%, var(--firework-champagne) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 55% 82%, var(--firework-ivory) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 32% 76%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 18% 56%, var(--firework-champagne) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 24% 33%, var(--firework-ivory) var(--particle-size), transparent calc(var(--particle-size) + 0.7px)),
        radial-gradient(circle at 47% 20%, var(--firework-gold) var(--particle-size), transparent calc(var(--particle-size) + 0.7px));
    background-repeat: no-repeat;
    filter:
        drop-shadow(0 0 5px rgba(245, 221, 162, 0.9))
        drop-shadow(0 0 14px rgba(229, 189, 85, 0.42));
    mix-blend-mode: screen;
    transform:
        translate(-50%, -50%)
        scale(0.035)
        rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset)));
    transform-origin: center;
    animation: hero-firework-burst var(--firework-duration, 2400ms) cubic-bezier(0.2, 0.7, 0.25, 1) both;
    will-change: transform, opacity;
}

.hero-firework-burst {
    left: var(--firework-x, 50%);
    top: var(--firework-y, 28%);
}

.hero-firework-burst::before,
.hero-firework-burst::after {
    top: 50%;
    left: 50%;
}

.hero-firework-burst::before {
    --burst-rotation-offset: 31deg;
    --particle-size: clamp(1.45px, 0.18vmin, 3px);
    opacity: 0.86;
}

.hero-firework-burst::after {
    --burst-rotation-offset: 67deg;
    --particle-size: clamp(1.25px, 0.16vmin, 2.7px);
    opacity: 0.72;
}

.hero-firework-burst--palette-0 {
    --firework-gold: #e5bd55;
    --firework-champagne: #f5dda2;
    --firework-ivory: #fff9e8;
    --firework-rose: #e9b8a4;
}

.hero-firework-burst--palette-1 {
    --firework-gold: #f0ca68;
    --firework-champagne: #ffe8b2;
    --firework-ivory: #fffdf5;
    --firework-rose: #edc9b8;
}

.hero-firework-burst--palette-2 {
    --firework-gold: #d9a936;
    --firework-champagne: #f4d793;
    --firework-ivory: #fff7dd;
    --firework-rose: #dfad98;
}

.hero-firework-burst--palette-3 {
    --firework-gold: #c98b4b;
    --firework-champagne: #f0c982;
    --firework-ivory: #fff4d6;
    --firework-rose: #d99c84;
}

@keyframes hero-firework-burst {
    0%, 4% {
        opacity: 0;
        transform:
            translate(-50%, -50%)
            scale(0.025)
            rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset)));
    }
    9% {
        opacity: 0.98;
    }
    28% {
        opacity: 0.92;
    }
    64% {
        opacity: 0.48;
        transform:
            translate(-50%, -50%)
            scale(0.9)
            rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset) + 2deg));
    }
    100% {
        opacity: 0;
        transform:
            translate(-50%, -50%)
            scale(1)
            rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset) + 4deg));
    }
}

@media (max-width: 900px) {
    .hero-firework-burst,
    .hero-firework-burst::before,
    .hero-firework-burst::after {
        --particle-size: clamp(1.35px, 0.2vmin, 2.7px);
        filter:
            drop-shadow(0 0 4px rgba(245, 221, 162, 0.72))
            drop-shadow(0 0 10px rgba(229, 189, 85, 0.3));
    }
}

@media (max-width: 620px) {
    .hero-firework-burst,
    .hero-firework-burst::before,
    .hero-firework-burst::after {
        --particle-size: clamp(1.15px, 0.3vmin, 2.2px);
    }
}

.landing-hero__inner {
    position: relative;
    z-index: 5;
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
    gap: clamp(62px, 8vw, 132px);
    align-items: end;
    padding-top: 170px;
    padding-bottom: clamp(108px, 12vh, 150px);
}

.landing-hero__copy {
    max-width: 920px;
}

.landing-hero__copy h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-size: clamp(3.7rem, 6.7vw, 7rem);
    font-weight: 610;
    line-height: 0.91;
    letter-spacing: -0.057em;
}

.landing-hero__lead {
    max-width: 650px;
    margin: 28px 0 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: clamp(1rem, 1.35vw, 1.14rem);
    line-height: 1.75;
}

.landing-hero__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 34px;
}

.landing-hero__info {
    align-self: end;
    background: rgba(14, 14, 13, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.13);
    backdrop-filter: blur(14px);
}

.landing-hero__info-head {
    display: grid;
    gap: 5px;
    padding: 20px 22px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.landing-hero__info-head span,
.landing-hero__info dt {
    color: rgba(255, 255, 255, 0.39);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.landing-hero__info-head strong {
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.86rem;
    font-weight: 620;
}

.landing-hero__info dl {
    margin: 0;
}

.landing-hero__info dl > div {
    display: grid;
    gap: 5px;
    padding: 18px 22px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.landing-hero__info dl > div:last-child {
    border-bottom: 0;
}

.landing-hero__info dd {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.82rem;
    line-height: 1.5;
}

.landing-hero__info a:hover {
    color: var(--gold-soft);
}

.landing-hero__scroll {
    position: absolute;
    left: max(var(--gutter), calc((100vw - 1480px) / 2));
    bottom: 28px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.landing-hero__scroll i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 50%;
    font-style: normal;
    transition:
        transform 180ms var(--ease),
        border-color 180ms var(--ease);
}

.landing-hero__scroll:hover i {
    transform: translateY(3px);
    border-color: rgba(255, 255, 255, 0.5);
}

/* =========================================================
   INTRO
========================================================= */

.landing-intro {
    padding: var(--landing-space) 0;
    background: #fff;
}

.landing-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.7fr);
    gap: clamp(60px, 9vw, 150px);
    align-items: start;
}

.landing-intro h2 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(2.9rem, 4.8vw, 5.1rem);
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.landing-intro__side > p {
    max-width: 580px;
    margin: 0;
    color: var(--landing-muted);
    font-size: 0.96rem;
    line-height: 1.8;
}

.landing-intro__points {
    margin-top: 40px;
    border-top: 1px solid var(--landing-line);
}

.landing-intro__points > div {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 18px;
    padding: 15px 0;
    border-bottom: 1px solid var(--landing-line);
}

.landing-intro__points span {
    color: #a39d94;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.landing-intro__points strong {
    color: #302e2a;
    font-size: 0.82rem;
    font-weight: 600;
}

/* =========================================================
   ABOUT
========================================================= */

.landing-about {
    padding: var(--landing-space) 0;
    background: var(--landing-paper);
}

.landing-about__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
    gap: clamp(56px, 8vw, 124px);
    align-items: center;
}

.landing-about__media {
    position: relative;
    min-height: clamp(500px, 58vw, 680px);
    max-height: 720px;
    overflow: hidden;
    background: var(--landing-paper-2);
    box-shadow: 0 24px 65px rgba(33, 27, 18, 0.08);
}

.landing-about__media > img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    object-position: center;
    transition: transform 800ms var(--ease);
}

.landing-about__media:hover > img {
    transform: scale(1.02);
}

.landing-about__placeholder {
    min-height: inherit;
    display: grid;
    place-items: center;
    background:
        linear-gradient(135deg, #ddd6c9, #cfc6b7);
    color: rgba(23, 23, 21, 0.32);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.landing-about__media figcaption {
    position: absolute;
    left: 20px;
    bottom: 20px;
    min-width: 210px;
    padding: 16px 18px;
    background: rgba(16, 16, 14, 0.91);
    color: #fff;
    backdrop-filter: blur(12px);
}

.landing-about__media figcaption span,
.landing-about__media figcaption strong {
    display: block;
}

.landing-about__media figcaption span {
    margin-bottom: 5px;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.landing-about__media figcaption strong {
    font-size: 0.92rem;
    font-weight: 620;
}

.landing-about__copy {
    max-width: 660px;
}

.landing-about__copy h2 {
    margin: 0;
    font-size: clamp(2.9rem, 4.6vw, 4.9rem);
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.landing-about__text {
    max-width: 590px;
    margin-top: 28px;
    color: var(--landing-muted);
    font-size: 0.94rem;
    line-height: 1.82;
}

.landing-about__text p {
    margin-bottom: 14px;
}

.landing-about__text p:last-child {
    margin-bottom: 0;
}

.landing-about__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 22px;
    margin-top: 31px;
}

.landing-about__notes {
    margin-top: 44px;
    border-top: 1px solid var(--landing-line);
}

.landing-about__notes p {
    display: grid;
    grid-template-columns: 38px minmax(130px, 0.55fr) minmax(0, 1fr);
    gap: 16px;
    align-items: baseline;
    margin: 0;
    padding: 14px 0;
    border-bottom: 1px solid var(--landing-line);
}

.landing-about__notes span {
    color: #a69f95;
    font-size: 0.6rem;
    font-weight: 800;
}

.landing-about__notes strong {
    font-size: 0.8rem;
    font-weight: 700;
}

.landing-about__notes small {
    color: #858078;
    font-size: 0.72rem;
    line-height: 1.55;
}

/* =========================================================
   EVENTS
========================================================= */

.landing-events {
    padding: var(--landing-space) 0;
    background: var(--landing-dark);
    color: #fff;
}

.landing-events__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.landing-event-card {
    min-width: 0;
}

.landing-event-card > a {
    position: relative;
    min-height: 520px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: #25231f;
}

.landing-event-card__media,
.landing-event-card__shade {
    position: absolute;
    inset: 0;
}

.landing-event-card__media img,
.landing-event-card__placeholder {
    width: 100%;
    height: 100%;
}

.landing-event-card__media img {
    object-fit: cover;
    object-position: center;
    transition: transform 750ms var(--ease);
}

.landing-event-card__placeholder {
    display: grid;
    place-items: center;
    background: #25231f;
    color: rgba(255, 255, 255, 0.2);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.landing-event-card__shade {
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, transparent 36%, rgba(0, 0, 0, 0.82) 100%);
}

.landing-event-card:hover .landing-event-card__media img {
    transform: scale(1.035);
}

.landing-event-card__topline,
.landing-event-card__body {
    position: relative;
    z-index: 2;
}

.landing-event-card__topline {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.59rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.landing-event-card__body {
    padding: 28px 26px;
}

.landing-event-card__body h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(2rem, 3.1vw, 3.25rem);
    font-weight: 590;
    line-height: 0.98;
    letter-spacing: -0.04em;
}

.landing-event-card__body p {
    max-width: 450px;
    margin: 14px 0 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.8rem;
    line-height: 1.65;
}

/* =========================================================
   PRINCIPLES
========================================================= */

.landing-principles {
    padding: var(--landing-space) 0;
    background: #fff;
}

.landing-principles__grid {
    display: grid;
    grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.22fr);
    gap: clamp(70px, 9vw, 150px);
    align-items: start;
}

.landing-principles__intro {
    position: sticky;
    top: 34px;
    max-width: 560px;
}

.landing-principles__intro h2 {
    margin: 0;
    font-size: clamp(2.7rem, 4.2vw, 4.5rem);
    font-weight: 600;
    line-height: 0.99;
    letter-spacing: -0.047em;
}

.landing-principles__intro > p:last-child {
    max-width: 480px;
    margin: 26px 0 0;
    color: var(--landing-muted);
    font-size: 0.9rem;
    line-height: 1.75;
}

.landing-principles__list {
    border-top: 1px solid var(--landing-line);
}

.landing-principles__list article {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 24px;
    padding: 30px 0;
    border-bottom: 1px solid var(--landing-line);
}

.landing-principles__list article > span {
    padding-top: 5px;
    color: #a39d94;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.landing-principles__list h3 {
    margin: 0;
    font-size: clamp(1.5rem, 2vw, 2rem);
    font-weight: 620;
    line-height: 1.1;
}

.landing-principles__list p {
    max-width: 600px;
    margin: 10px 0 0;
    color: var(--landing-muted);
    font-size: 0.84rem;
    line-height: 1.7;
}

/* =========================================================
   MENUS
========================================================= */

.landing-menus {
    padding: var(--landing-space) 0;
    background: var(--landing-paper);
}

.landing-menus__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.landing-menu-card {
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    border: 1px solid rgba(23, 23, 21, 0.1);
    background: #fff;
    transition:
        transform 260ms var(--ease),
        box-shadow 260ms var(--ease),
        border-color 260ms var(--ease);
}

.landing-menu-card:hover {
    transform: translateY(-4px);
    border-color: rgba(23, 23, 21, 0.18);
    box-shadow: 0 20px 52px rgba(35, 28, 18, 0.09);
}

.landing-menu-card__media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #d8d0c4;
}

.landing-menu-card__media img,
.landing-menu-card__placeholder {
    width: 100%;
    height: 100%;
}

.landing-menu-card__media img {
    object-fit: cover;
    object-position: center;
    transition: transform 650ms var(--ease);
}

.landing-menu-card:hover .landing-menu-card__media img {
    transform: scale(1.025);
}

.landing-menu-card__placeholder {
    display: grid;
    place-items: center;
    background: #ddd5c9;
    color: rgba(23, 23, 21, 0.3);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.landing-menu-card__badge {
    position: absolute;
    top: 16px;
    left: 16px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.93);
    color: var(--landing-ink);
    font-size: 0.58rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.landing-menu-card__body {
    display: flex;
    flex-direction: column;
    padding: 24px 24px 22px;
}

.landing-menu-card__eyebrow {
    color: #9b948b;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.landing-menu-card__body h3 {
    margin: 8px 0 0;
    font-size: clamp(1.65rem, 2.4vw, 2.5rem);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.035em;
}

.landing-menu-card__body > p {
    margin: 14px 0 0;
    color: var(--landing-muted);
    font-size: 0.79rem;
    line-height: 1.65;
}

.landing-menu-card__footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-top: auto;
    padding-top: 22px;
    border-top: 1px solid var(--landing-line);
}

.landing-menu-card__footer strong {
    font-size: 0.78rem;
    font-weight: 720;
}

.landing-menu-card__footer > span {
    transition: transform 180ms var(--ease);
}

.landing-menu-card:hover .landing-menu-card__footer > span {
    transform: translate(3px, -3px);
}

/* =========================================================
   PORTFOLIO PREVIEW
========================================================= */

.landing-portfolio {
    padding: var(--landing-space) 0;
    background: var(--landing-dark-2);
    color: #fff;
}

.landing-portfolio__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.landing-portfolio-card {
    position: relative;
    min-width: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #282621;
}

.landing-portfolio-card__media,
.landing-portfolio-card__shade {
    position: absolute;
    inset: 0;
}

.landing-portfolio-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms var(--ease);
}

.landing-portfolio-card__shade {
    background:
        linear-gradient(180deg, transparent 34%, rgba(0, 0, 0, 0.8) 100%);
}

.landing-portfolio-card:hover .landing-portfolio-card__media img {
    transform: scale(1.03);
}

.landing-portfolio-card__body {
    position: absolute;
    z-index: 2;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 24px;
    color: #fff;
}

.landing-portfolio-card__body > span {
    display: block;
    margin-bottom: 7px;
    color: rgba(255, 255, 255, 0.54);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.landing-portfolio-card__body h3 {
    max-width: 80%;
    margin: 0;
    font-size: clamp(1.45rem, 2.2vw, 2.4rem);
    font-weight: 590;
    line-height: 1.02;
    letter-spacing: -0.034em;
}

.landing-portfolio-card__body i {
    position: absolute;
    right: 24px;
    bottom: 24px;
    font-style: normal;
    transition: transform 180ms var(--ease);
}

.landing-portfolio-card:hover .landing-portfolio-card__body i {
    transform: translate(3px, -3px);
}

/* =========================================================
   TESTIMONIALS
========================================================= */

.landing-testimonials {
    padding: var(--landing-space) 0;
    background: #fff;
}

.landing-testimonials__head {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: clamp(38px, 7vw, 100px);
    align-items: start;
    margin-bottom: clamp(42px, 5vw, 64px);
}

.landing-testimonials__head h2 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(2.7rem, 4.5vw, 4.8rem);
    font-weight: 600;
    line-height: 0.99;
    letter-spacing: -0.048em;
}

.landing-testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--landing-line);
    border-left: 1px solid var(--landing-line);
}

.landing-testimonial {
    min-height: 330px;
    display: flex;
    flex-direction: column;
    padding: 28px;
    border-right: 1px solid var(--landing-line);
    border-bottom: 1px solid var(--landing-line);
}

.landing-testimonial__mark {
    height: 55px;
    color: var(--landing-gold);
    font-family: var(--premium-font-display, var(--font-display));
    font-size: 4.6rem;
    line-height: 0.72;
    opacity: 0.7;
}

.landing-testimonial blockquote {
    margin: 30px 0 38px;
    color: #3b3833;
    font-family: var(--premium-font-display, var(--font-display));
    font-size: 1.03rem;
    line-height: 1.72;
}

.landing-testimonial footer {
    display: grid;
    gap: 4px;
    margin-top: auto;
}

.landing-testimonial footer strong {
    font-size: 0.8rem;
}

.landing-testimonial footer span {
    color: #8b857c;
    font-size: 0.66rem;
}

/* =========================================================
   CONTACT / FINAL CTA
========================================================= */

.landing-contact {
    padding: var(--landing-space) 0;
    background: #11110f;
    color: #fff;
}

.landing-contact__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.7fr);
    gap: clamp(70px, 10vw, 160px);
    align-items: start;
}

.landing-contact__copy {
    max-width: 820px;
}

.landing-contact__copy h2 {
    margin: 0;
    font-size: clamp(3rem, 5vw, 5.4rem);
    font-weight: 590;
    line-height: 0.96;
    letter-spacing: -0.053em;
}

.landing-contact__copy > p:not(.landing-kicker) {
    max-width: 590px;
    margin: 26px 0 0;
    color: rgba(255, 255, 255, 0.56);
    font-size: 0.9rem;
    line-height: 1.75;
}

.landing-contact__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 22px;
    margin-top: 32px;
}

.landing-contact__details {
    border-top: 1px solid var(--landing-line-light);
}

.landing-contact__details > div {
    display: grid;
    gap: 6px;
    padding: 20px 0;
    border-bottom: 1px solid var(--landing-line-light);
}

.landing-contact__details span {
    color: rgba(255, 255, 255, 0.36);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.landing-contact__details strong,
.landing-contact__details a {
    color: rgba(255, 255, 255, 0.87);
    font-size: clamp(0.95rem, 1.5vw, 1.22rem);
    font-weight: 560;
    line-height: 1.5;
    word-break: break-word;
}

.landing-contact__details a:hover {
    color: var(--gold-soft);
}

/* =========================================================
   HOME-SPECIFIC FOOTER + WHATSAPP
========================================================= */

.home-redesign .site-footer {
    background: #0b0b0a;
}

.home-redesign .whatsapp-floating {
    right: 20px;
    bottom: 20px;
    min-height: 46px;
    padding: 0 17px;
    border-color: rgba(23, 23, 21, 0.08);
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.16);
}

/* =========================================================
   REVEAL
========================================================= */

.home-redesign [data-reveal] {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity 680ms var(--ease),
        transform 680ms var(--ease);
}

.home-redesign [data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1180px) {
    .landing-hero__inner {
        grid-template-columns: minmax(0, 1.25fr) minmax(250px, 0.55fr);
        gap: 54px;
    }

    .landing-events__grid,
    .landing-menus__grid,
    .landing-portfolio__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-testimonials__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .home-redesign .landing-nav {
        min-height: 72px;
    }

    .landing-hero {
        min-height: max(620px, 100vh);
        min-height: max(620px, 100dvh);
    }

    .landing-hero__inner {
        grid-template-columns: 1fr;
        gap: 38px;
        padding-top: 150px;
        padding-bottom: 100px;
    }

    .landing-hero__info {
        display: grid;
        grid-template-columns: 0.7fr 1.3fr;
    }

    .landing-hero__info-head {
        border-right: 1px solid rgba(255, 255, 255, 0.12);
        border-bottom: 0;
    }

    .landing-hero__info dl {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .landing-hero__info dl > div {
        border-right: 1px solid rgba(255, 255, 255, 0.1);
        border-bottom: 0;
    }

    .landing-hero__info dl > div:last-child {
        border-right: 0;
    }

    .landing-intro__grid,
    .landing-about__grid,
    .landing-section-head,
    .landing-principles__grid,
    .landing-contact__grid {
        grid-template-columns: 1fr;
    }

    .landing-intro__grid,
    .landing-about__grid,
    .landing-principles__grid,
    .landing-contact__grid {
        gap: 48px;
    }

    .landing-principles__intro {
        position: static;
        max-width: 760px;
    }

    .landing-about__copy {
        max-width: 760px;
    }

    .landing-about__media {
        min-height: 560px;
        max-height: none;
    }

    .landing-section-head {
        gap: 24px;
    }

    .landing-section-head__side {
        max-width: 650px;
    }

    .landing-testimonials__head {
        grid-template-columns: 1fr;
        gap: 14px;
    }
}

@media (max-width: 760px) {
    .home-redesign .landing-nav .navbar__links,
    .home-redesign .landing-nav .navbar__cta {
        display: none;
    }

    .home-redesign .landing-nav .navbar__toggle {
        display: block;
    }

    .landing-hero__media img {
        object-position: center;
    }

    .landing-hero__overlay {
        background:
            linear-gradient(
                180deg,
                rgba(5, 5, 4, 0.55) 0%,
                rgba(5, 5, 4, 0.2) 28%,
                rgba(5, 5, 4, 0.84) 100%
            );
    }

    .landing-hero__inner {
        padding-top: 132px;
        padding-bottom: 78px;
    }

    .landing-hero__copy h1 {
        max-width: 700px;
        font-size: clamp(3.2rem, 13vw, 5rem);
    }

    .landing-hero__info,
    .landing-hero__scroll {
        display: none;
    }

    .landing-events__grid,
    .landing-menus__grid,
    .landing-portfolio__grid,
    .landing-testimonials__grid {
        grid-template-columns: 1fr;
    }

    .landing-event-card > a {
        min-height: 480px;
    }

    .landing-menu-card__media,
    .landing-portfolio-card {
        aspect-ratio: 16 / 11;
    }
}

@media (max-width: 600px) {
    .home-redesign {
        --landing-space: 74px;
    }

    .home-redesign .landing-nav {
        min-height: 66px;
        padding: 0 20px;
    }

    .home-redesign .landing-nav .navbar__logo {
        width: 43px;
        height: 43px;
        max-width: 43px;
        max-height: 43px;
    }

    .home-redesign .landing-nav .navbar__name {
        max-width: 160px;
        font-size: 0.78rem;
    }

    .home-redesign .landing-mobile-menu {
        padding: 96px 20px 28px;
    }

    .landing-kicker {
        margin-bottom: 14px;
        font-size: 0.59rem;
        letter-spacing: 0.16em;
    }

    .landing-kicker::before {
        width: 27px;
    }

    .landing-hero {
        min-height: max(580px, 100vh);
        min-height: max(580px, 100dvh);
    }

    .landing-hero__inner {
        width: calc(100% - 40px);
        padding-top: 116px;
        padding-bottom: 58px;
    }

    .landing-hero__copy h1 {
        font-size: clamp(3rem, 15.2vw, 4.35rem);
        line-height: 0.92;
    }

    .landing-hero__lead {
        margin-top: 20px;
        font-size: 0.92rem;
        line-height: 1.62;
    }

    .landing-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        margin-top: 27px;
    }

    .landing-hero__actions .button {
        width: 100%;
    }

    .landing-intro h2,
    .landing-about__copy h2,
    .landing-section-head h2,
    .landing-principles__intro h2,
    .landing-testimonials__head h2,
    .landing-contact__copy h2 {
        font-size: clamp(2.5rem, 11vw, 3.65rem);
        line-height: 0.99;
    }

    .landing-intro__grid,
    .landing-about__grid,
    .landing-principles__grid,
    .landing-contact__grid {
        gap: 38px;
    }

    .landing-intro__side > p,
    .landing-about__text,
    .landing-principles__intro > p:last-child,
    .landing-contact__copy > p:not(.landing-kicker) {
        font-size: 0.86rem;
    }

    .landing-about__media {
        min-height: 420px;
    }

    .landing-about__media figcaption {
        left: 14px;
        right: 14px;
        bottom: 14px;
        min-width: 0;
    }

    .landing-about__actions,
    .landing-contact__actions {
        align-items: stretch;
        flex-direction: column;
        gap: 14px;
    }

    .landing-about__actions .button,
    .landing-contact__actions .button {
        width: 100%;
    }

    .landing-about__notes {
        margin-top: 34px;
    }

    .landing-about__notes p {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 10px 14px;
    }

    .landing-about__notes small {
        grid-column: 2;
    }

    .landing-event-card > a {
        min-height: 430px;
    }

    .landing-event-card__topline {
        padding: 17px 18px;
    }

    .landing-event-card__body {
        padding: 24px 20px;
    }

    .landing-event-card__body h3 {
        font-size: clamp(2.1rem, 10vw, 3rem);
    }

    .landing-principles__list article {
        grid-template-columns: 40px minmax(0, 1fr);
        gap: 16px;
        padding: 24px 0;
    }

    .landing-menu-card__media,
    .landing-portfolio-card {
        aspect-ratio: 4 / 3;
    }

    .landing-menu-card__body,
    .landing-portfolio-card__body {
        padding: 21px 19px;
    }

    .landing-testimonial {
        min-height: 300px;
        padding: 24px 20px;
    }

    .landing-contact__details > div {
        padding: 17px 0;
    }

    .home-redesign .whatsapp-floating {
        right: 14px;
        bottom: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-redesign [data-reveal] {
        opacity: 1;
        transform: none;
    }

    .landing-hero__media img,
    .landing-about__media > img,
    .landing-event-card__media img,
    .landing-menu-card__media img,
    .landing-portfolio-card__media img {
        transition: none;
    }
}

/* =========================================================
   PREMIUM MOTION V3 · NAVBAR MORPH
========================================================= */

.home-redesign .landing-nav {
    position: fixed !important;
    transition:
        min-height 360ms var(--ease),
        padding 360ms var(--ease),
        background-color 360ms ease,
        border-color 360ms ease,
        box-shadow 360ms ease,
        backdrop-filter 360ms ease !important;
}

.home-redesign .landing-nav .navbar__logo,
.home-redesign .landing-nav .navbar__links a,
.home-redesign .landing-nav .navbar__cta {
    transition:
        width 360ms var(--ease),
        height 360ms var(--ease),
        padding 360ms var(--ease),
        min-height 360ms var(--ease),
        color 260ms ease,
        border-color 260ms ease,
        background-color 260ms ease;
}

.home-redesign .landing-nav.is-compact {
    min-height: 66px;
    background: rgba(13, 13, 12, 0.83) !important;
    border-bottom-color: rgba(230, 195, 105, 0.2);
    box-shadow: 0 14px 42px rgba(0, 0, 0, 0.16);
    backdrop-filter: blur(18px) saturate(1.12) !important;
}

.home-redesign .landing-nav.is-compact .navbar__logo {
    width: 38px;
    height: 38px;
}

.home-redesign .landing-nav.is-compact .navbar__links a {
    padding-block: 22px 19px;
}

.home-redesign .landing-nav.is-compact .navbar__links a::after {
    bottom: 14px;
}

.home-redesign .landing-nav.is-compact .navbar__cta {
    min-height: 38px;
}

/* =========================================================
   PREMIUM MOTION V3 · REAL STATS + STICKY STORYTELLING
========================================================= */

.landing-stats {
    position: relative;
    z-index: 2;
    padding: 0 0 clamp(28px, 3vw, 42px);
    background: var(--landing-paper);
}

.landing-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--landing-line);
    border-left: 1px solid var(--landing-line);
}

.landing-stats__grid article {
    min-height: 130px;
    display: grid;
    align-content: center;
    gap: 6px;
    padding: 22px clamp(18px, 2.6vw, 36px);
    border-right: 1px solid var(--landing-line);
    border-bottom: 1px solid var(--landing-line);
    background: rgba(255, 255, 255, 0.28);
}

.landing-stats__grid strong {
    color: var(--landing-ink);
    font-family: var(--premium-font-display, var(--font-display));
    font-size: clamp(2.3rem, 4vw, 4.2rem);
    font-weight: 600;
    line-height: 0.92;
}

.landing-stats__grid span {
    color: #817a70;
    font-size: 0.62rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

@media (min-width: 1025px) {
    .landing-about__grid[data-storytelling] {
        align-items: start;
    }

    .landing-about__media[data-story-media] {
        position: sticky;
        top: 100px;
        transition:
            transform 720ms var(--ease),
            box-shadow 720ms var(--ease),
            filter 520ms ease;
    }

    .landing-about__grid[data-storytelling]:has([data-story-step]:nth-child(2).is-story-active) .landing-about__media[data-story-media] {
        transform: translate3d(0, -4px, 0) scale(1.008);
        filter: saturate(1.035) contrast(1.012);
    }

    .landing-about__grid[data-storytelling]:has([data-story-step]:nth-child(3).is-story-active) .landing-about__media[data-story-media] {
        transform: translate3d(0, -7px, 0) scale(1.014);
        box-shadow: 0 34px 88px rgba(33, 27, 18, 0.15);
        filter: saturate(1.06) contrast(1.018);
    }

    .landing-about__notes [data-story-step] {
        position: relative;
        opacity: 0.48;
        transform: translate3d(0, 8px, 0);
        transition:
            opacity 380ms ease,
            transform 520ms var(--ease),
            padding-left 520ms var(--ease);
    }

    .landing-about__notes [data-story-step]::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 0;
        height: 1px;
        background: var(--landing-gold);
        transition: width 520ms var(--ease);
    }

    .landing-about__notes [data-story-step].is-story-active {
        opacity: 1;
        transform: translate3d(0, 0, 0);
        padding-left: 22px;
    }

    .landing-about__notes [data-story-step].is-story-active::before {
        width: 14px;
    }
}

@media (max-width: 900px) {
    .landing-stats__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-about__media[data-story-media] {
        position: relative;
        top: auto;
    }
}

@media (max-width: 520px) {
    .landing-stats__grid {
        grid-template-columns: 1fr 1fr;
    }

    .landing-stats__grid article {
        min-height: 108px;
        padding: 18px 16px;
    }
}

/* =========================================================
   PREMIUM MOTION V3 · FIREWORK FAMILIES
========================================================= */
.hero-firework-instance {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.hero-firework-instance .hero-firework-burst {
    animation-delay: 430ms;
}

.hero-firework-launch {
    position: absolute;
    left: var(--firework-x, 50%);
    top: var(--firework-y, 28%);
    width: 3px;
    height: clamp(54px, 9vh, 100px);
    border-radius: 999px;
    opacity: 0;
    background: linear-gradient(
        to bottom,
        rgba(255, 249, 232, 0),
        rgba(245, 221, 162, 0.34) 36%,
        rgba(229, 189, 85, 0.98) 88%,
        #fff9e8
    );
    box-shadow:
        0 0 8px rgba(245, 221, 162, 0.78),
        0 0 18px rgba(229, 189, 85, 0.34);
    transform-origin: 50% 100%;
    animation: hero-firework-launch 520ms cubic-bezier(0.18, 0.72, 0.2, 1) both;
    will-change: transform, opacity;
}

.hero-firework-burst--chrysanthemum {
    filter:
        drop-shadow(0 0 6px rgba(245, 221, 162, 0.92))
        drop-shadow(0 0 15px rgba(229, 189, 85, 0.44));
}

.hero-firework-burst--ring {
    --particle-size: clamp(2px, 0.25vmin, 3.8px);
    filter:
        drop-shadow(0 0 5px rgba(255, 249, 232, 0.94))
        drop-shadow(0 0 16px rgba(229, 189, 85, 0.36));
}

.hero-firework-burst--ring::before {
    transform: translate(-50%, -50%) scale(0.72) rotate(19deg);
}

.hero-firework-burst--ring::after {
    opacity: 0.38;
    transform: translate(-50%, -50%) scale(1.08) rotate(51deg);
}

.hero-firework-burst--willow,
.hero-firework-burst--willow::before,
.hero-firework-burst--willow::after {
    animation-name: hero-firework-willow;
    animation-timing-function: cubic-bezier(0.16, 0.68, 0.28, 1);
}

.hero-firework-burst--willow {
    filter:
        drop-shadow(0 0 7px rgba(240, 201, 130, 0.88))
        drop-shadow(0 12px 18px rgba(201, 139, 75, 0.26));
}

.hero-firework-burst--double::after {
    animation-delay: 760ms;
    animation-duration: calc(var(--firework-duration, 2400ms) * 0.72);
    filter: drop-shadow(0 0 10px rgba(255, 249, 232, 0.92));
}

@keyframes hero-firework-launch {
    0% {
        opacity: 0;
        transform: translate3d(-50%, clamp(210px, 38vh, 390px), 0) scaleY(0.35);
    }
    16% {
        opacity: 0.95;
    }
    72% {
        opacity: 0.74;
    }
    100% {
        opacity: 0;
        transform: translate3d(-50%, 0, 0) scaleY(0.72);
    }
}

@keyframes hero-firework-willow {
    0%, 4% {
        opacity: 0;
        transform:
            translate(-50%, -50%)
            scale(0.025)
            rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset)));
    }
    12% {
        opacity: 1;
    }
    58% {
        opacity: 0.65;
        transform:
            translate(-50%, -47%)
            scale(0.82)
            rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset) + 2deg));
    }
    100% {
        opacity: 0;
        transform:
            translate(-50%, -35%)
            scale(1.02)
            rotate(calc(var(--burst-rotation, 0deg) + var(--burst-rotation-offset) + 5deg));
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-firework-instance,
    .hero-firework-launch,
    .hero-firework-burst,
    .hero-firework-burst::before,
    .hero-firework-burst::after {
        display: none !important;
        animation: none !important;
        transition: none !important;
    }
}

/* =========================================================
   PREMIUM MOTION V3 · HORIZONTAL PORTFOLIO
========================================================= */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
    .landing-portfolio.is-horizontal-active {
        position: relative;
        padding: 0;
        overflow: clip;
    }

    .landing-portfolio.is-horizontal-active .landing-portfolio__sticky[data-horizontal-showcase-sticky] {
        position: sticky;
        top: 0;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        justify-content: center;
        overflow: visible;
        padding-top: clamp(78px, 8vh, 112px);
        padding-bottom: clamp(64px, 7vh, 96px);
    }

    .landing-portfolio.is-horizontal-active .landing-section-head {
        flex: 0 0 auto;
        margin-bottom: clamp(28px, 4vh, 54px);
    }

    .landing-portfolio.is-horizontal-active [data-horizontal-showcase-track] {
        display: flex;
        width: max-content;
        max-width: none;
        gap: clamp(18px, 1.8vw, 30px);
        transform: translate3d(var(--horizontal-showcase-x, 0px), 0, 0);
        transition: none;
        will-change: transform;
    }

    .landing-portfolio.is-horizontal-active .landing-portfolio-card {
        flex: 0 0 clamp(420px, 52vw, 760px);
        width: clamp(420px, 52vw, 760px);
        min-height: min(58vh, 560px);
        aspect-ratio: 16 / 10;
    }

    .landing-portfolio.is-horizontal-active .landing-portfolio-card__body h3 {
        font-size: clamp(1.9rem, 3vw, 3.2rem);
    }
}

@media (max-width: 1024px), (hover: none), (pointer: coarse) {
    .landing-portfolio[data-horizontal-showcase] {
        height: auto !important;
    }

    .landing-portfolio [data-horizontal-showcase-track] {
        transform: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .landing-portfolio[data-horizontal-showcase] {
        height: auto !important;
    }

    .landing-portfolio [data-horizontal-showcase-track] {
        transform: none !important;
        transition: none !important;
    }
}
