:root {
    --hue-rose: #fff6f9;
    --hue-blush: #ffdce6;
    --hue-soft: #ffb3c6;
    --hue-coral: #ff6f91;
    --hue-berry: #c9184a;
    --space-2xs: 0.25rem;
    --space-xs: 0.5rem;
    --space-sm: 0.75rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2rem;
    --space-2xl: 3rem;
    --space-3xl: 4.5rem;
    --radius-sm: 0.5rem;
    --radius-md: 1rem;
    --radius-lg: 1.75rem;
    --radius-pill: 999px;
    --shadow-soft: 0 0.35rem 1.2rem rgba(201, 24, 74, 0.12);
    --shadow-lift: 0 0.75rem 2rem rgba(201, 24, 74, 0.18);
    --font-display: "Fraunces", Georgia, serif;
    --font-body: "Plus Jakarta Sans", system-ui, sans-serif;
    --fs-xs: 0.7rem;
    --fs-sm: 0.8rem;
    --fs-base: 0.9rem;
    --fs-md: 1rem;
    --fs-lg: 1.25rem;
    --fs-xl: 1.6rem;
    --fs-2xl: 2rem;
    --fs-3xl: 2.5rem;
    --line-tight: 1.25;
    --line-body: 1.55;
    --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --dur-fast: 0.22s;
    --dur-med: 0.45s;
    --dur-slow: 0.85s;
    --max-read: 42rem;
    --header-h: 3.25rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--fs-base);
    line-height: var(--line-body);
    color: var(--hue-berry);
    background: var(--hue-rose);
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--hue-berry);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.2em;
    transition: color var(--dur-fast) var(--ease-out),
        opacity var(--dur-fast) var(--ease-out);
}

a:hover {
    color: var(--hue-coral);
}

h1,
h2,
h3,
h4 {
    font-family: var(--font-display);
    font-weight: 600;
    line-height: var(--line-tight);
    letter-spacing: -0.02em;
}

h1 {
    font-size: clamp(var(--fs-xl), 4vw, var(--fs-3xl));
}

h2 {
    font-size: clamp(var(--fs-lg), 2.8vw, var(--fs-2xl));
}

h3 {
    font-size: var(--fs-lg);
}

p {
    margin: 0 0 var(--space-md);
}

.shell {
    width: min(100% - var(--space-lg), 72rem);
    margin-inline: auto;
    padding-block: var(--space-xl);
}

.shell-tight {
    width: min(100% - var(--space-lg), 56rem);
    margin-inline: auto;
}

[data-header] {
    position: relative;
    z-index: 40;
    transition: transform var(--dur-med) var(--ease-out),
        opacity var(--dur-med) var(--ease-out);
}

[data-header][data-hidden] {
    transform: translateY(-120%);
    opacity: 0;
    pointer-events: none;
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    min-height: var(--header-h);
    padding: var(--space-sm) var(--space-md);
    background: linear-gradient(135deg,
            rgba(255, 246, 249, 0.92),
            rgba(255, 220, 230, 0.88));
    backdrop-filter: blur(12px);
    border-radius: var(--radius-pill);
    box-shadow: var(--shadow-soft);
    margin: var(--space-md) auto 0;
    width: min(calc(100% - var(--space-lg)), 52rem);
}

.logo-text {
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--hue-berry);
    text-decoration: none;
}

.logo-text:hover {
    color: var(--hue-coral);
}

.nav-row {
    display: none;
    align-items: center;
    gap: var(--space-sm);
}

@media (min-width: 48rem) {
    .nav-row {
        display: flex;
    }
}

.nav-row a {
    font-size: var(--fs-xs);
    text-decoration: none;
    padding: var(--space-2xs) var(--space-sm);
    border-radius: var(--radius-pill);
    background: transparent;
}

.nav-row a:hover {
    background: rgba(255, 111, 145, 0.15);
}

[data-nav-toggle] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: none;
    border-radius: var(--radius-md);
    background: var(--hue-blush);
    color: var(--hue-berry);
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease-out),
        transform var(--dur-fast) var(--ease-spring);
}

[data-nav-toggle]:hover {
    background: var(--hue-soft);
    transform: scale(1.03);
}

@media (min-width: 48rem) {
    [data-nav-toggle] {
        display: none;
    }
}

[data-nav-panel] {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(255, 246, 249, 0.97);
    backdrop-filter: blur(14px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-lg);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dur-med) var(--ease-out);
}

[data-nav-panel][data-open="1"] {
    opacity: 1;
    pointer-events: auto;
}

[data-nav-panel] a {
    font-family: var(--font-display);
    font-size: var(--fs-xl);
    text-decoration: none;
}

.hero-wrap {
    position: relative;
    min-height: min(78vh, 36rem);
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

#hero-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.hero-overlay {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: var(--space-xl) var(--space-md);
    max-width: 38rem;
}

.hero-overlay h1 {
    margin: 0 0 var(--space-sm);
    animation: riseIn var(--dur-slow) var(--ease-out) both;
}

.hero-overlay p {
    margin: 0 0 var(--space-lg);
    font-size: var(--fs-sm);
    animation: riseIn var(--dur-slow) var(--ease-out) 0.12s both;
}

@keyframes riseIn {
    from {
        opacity: 0;
        transform: translateY(1.25rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes floatSoft {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-0.35rem);
    }
}

@keyframes driftX {
    0% {
        transform: translateX(0) rotate(-1deg);
    }

    50% {
        transform: translateX(0.5rem) rotate(0.5deg);
    }

    100% {
        transform: translateX(0) rotate(-1deg);
    }
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    font-family: var(--font-body);
    font-size: var(--fs-xs);
    font-weight: 600;
    padding: var(--space-sm) var(--space-lg);
    border-radius: var(--radius-pill);
    border: none;
    cursor: pointer;
    text-decoration: none;
    color: var(--hue-rose);
    background: linear-gradient(135deg, var(--hue-coral), var(--hue-berry));
    box-shadow: var(--shadow-lift);
    transition: transform var(--dur-fast) var(--ease-spring),
        box-shadow var(--dur-fast) var(--ease-out);
    animation: riseIn var(--dur-slow) var(--ease-out) 0.22s both;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 1rem 2.2rem rgba(201, 24, 74, 0.22);
}

.btn-ghost {
    background: transparent;
    color: var(--hue-berry);
    border: 1px solid rgba(201, 24, 74, 0.25);
    box-shadow: none;
}

.btn-ghost:hover {
    background: rgba(255, 179, 198, 0.35);
}

.section-fade {
    opacity: 0;
    transform: translateY(1.5rem);
    transition: opacity var(--dur-slow) var(--ease-out),
        transform var(--dur-slow) var(--ease-out);
}

.section-fade.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.grid-cards {
    display: grid;
    gap: var(--space-md);
    grid-template-columns: 1fr;
}

@media (min-width: 40rem) {
    .grid-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 60rem) {
    .grid-cards.cols-3 {
        grid-template-columns: repeat(3, 1fr);
    }
}

.card-pool {
    background: #fff;
    border-radius: var(--radius-md);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
    transition: transform var(--dur-med) var(--ease-out),
        box-shadow var(--dur-med) var(--ease-out);
}

.card-pool:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lift);
}

.section-fade.is-visible .grid-cards .card-pool {
    animation: riseIn 0.6s var(--ease-out) both;
}

.section-fade.is-visible .grid-cards .card-pool:nth-child(1) {
    animation-delay: 0.06s;
}

.section-fade.is-visible .grid-cards .card-pool:nth-child(2) {
    animation-delay: 0.12s;
}

.section-fade.is-visible .grid-cards .card-pool:nth-child(3) {
    animation-delay: 0.18s;
}

.section-fade.is-visible .grid-cards .card-pool:nth-child(4) {
    animation-delay: 0.24s;
}

.card-pool i {
    font-size: var(--fs-lg);
    color: var(--hue-coral);
    margin-bottom: var(--space-sm);
}

.card-pool h2,
.card-pool h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-md);
    font-family: var(--font-display);
}

.card-pool p {
    margin: 0;
    font-size: var(--fs-sm);
}

.split-img {
    display: grid;
    gap: var(--space-lg);
    align-items: center;
}

@media (min-width: 52rem) {
    .split-img {
        grid-template-columns: 1fr 1fr;
    }
}

.tagline {
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--hue-coral);
    margin-bottom: var(--space-xs);
}

.page-skew {
    position: relative;
    padding-block: var(--space-2xl);
}

.page-skew .skew-block {
    position: relative;
    margin-bottom: var(--space-2xl);
}

.page-skew .skew-block:nth-child(odd) {
    transform: rotate(-0.6deg);
}

.page-skew .skew-block:nth-child(even) {
    transform: rotate(0.5deg);
    margin-left: 0;
}

@media (min-width: 48rem) {
    .page-skew .skew-block:nth-child(even) {
        margin-left: 8%;
        max-width: 88%;
    }

    .page-skew .skew-block:nth-child(odd) .card-pool {
        margin-right: 5%;
    }
}

.overlap-up {
    position: relative;
    z-index: 2;
    margin-top: calc(var(--space-xl) * -1);
}

.angled-band {
    background: linear-gradient(120deg,
            var(--hue-blush) 0%,
            rgba(255, 179, 198, 0.55) 50%,
            var(--hue-rose) 100%);
    padding: var(--space-2xl) var(--space-md);
    transform: skewY(-1.2deg);
    margin-block: var(--space-2xl);
}

.angled-band .shell {
    transform: skewY(1.2deg);
    padding-block: var(--space-md);
}

.contact-stage {
    display: grid;
    gap: var(--space-xl);
}

@media (min-width: 52rem) {
    .contact-stage {
        grid-template-columns: 1.1fr 0.9fr;
        align-items: start;
    }
}

.contact-card {
    background: #fff;
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    box-shadow: var(--shadow-lift);
    position: relative;
    overflow: hidden;
}

.contact-card::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -20%;
    width: 14rem;
    height: 14rem;
    background: radial-gradient(circle,
            rgba(255, 111, 145, 0.25),
            transparent 70%);
    pointer-events: none;
}

.form-row {
    margin-bottom: var(--space-md);
}

.form-row label {
    display: block;
    font-size: var(--fs-xs);
    margin-bottom: var(--space-2xs);
}

.form-row input,
.form-row textarea {
    width: 100%;
    font-family: var(--font-body);
    font-size: var(--fs-sm);
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(201, 24, 74, 0.2);
    background: var(--hue-rose);
}

.form-row textarea {
    min-height: 7rem;
    resize: vertical;
}

.check-row {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    font-size: var(--fs-xs);
}

.check-row input {
    width: auto;
    margin-top: 0.2rem;
}

.map-frame {
    border: 0;
    width: 100%;
    min-height: 14rem;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
}

.site-foot {
    padding: var(--space-md) var(--space-md) var(--space-xl);
    text-align: center;
    font-size: var(--fs-xs);
    color: rgba(201, 24, 74, 0.75);
}

.site-foot a {
    margin: 0 var(--space-xs);
}

.legal-footer {
    max-width: 38rem;
    margin-inline: auto;
    padding: var(--space-sm);
}

.legal-brand {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--fs-sm);
    margin: 0 0 var(--space-xs);
    color: var(--hue-berry);
}

.legal-address,
.legal-contact {
    font-size: var(--fs-xs);
    margin: 0 0 var(--space-xs);
    line-height: var(--line-body);
}

.legal-links {
    margin: var(--space-sm) 0;
}

.legal-links a {
    display: inline-block;
    margin: 0 var(--space-xs);
    text-decoration: none;
}

.legal-copy {
    font-size: var(--fs-xs);
    opacity: 0.88;
    margin: var(--space-sm) 0 0;
}

.legal-disclaimer {
    font-size: 0.62rem;
    line-height: 1.55;
    margin: var(--space-md) auto 0;
    max-width: 42rem;
    opacity: 0.9;
    color: rgba(201, 24, 74, 0.82);
}

.privacy-box p a {
    color: var(--hue-berry);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.privacy-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: var(--space-md);
    background: rgba(40, 10, 20, 0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--dur-med) var(--ease-out);
}

.privacy-overlay[data-visible="1"] {
    opacity: 1;
    pointer-events: auto;
}

.privacy-box {
    background: #fff;
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    max-width: 28rem;
    box-shadow: var(--shadow-lift);
    font-size: var(--fs-sm);
}

.privacy-box p {
    margin-bottom: var(--space-md);
}

.thanks-hero {
    min-height: 50vh;
    display: grid;
    place-items: center;
    text-align: center;
    padding: var(--space-2xl) var(--space-md);
}

.thanks-hero h1 {
    animation: floatSoft 4s var(--ease-out) infinite;
}

.legal-page h2 {
    margin-top: var(--space-xl);
    font-size: var(--fs-md);
}

.doc-rich .doc-panel h2,
.doc-rich .doc-card-mini h3 {
    margin-top: 0;
}

.legal-page p,
.legal-page li {
    font-size: var(--fs-sm);
}

.legal-page ul {
    padding-left: var(--space-lg);
}

.float-icon {
    animation: driftX 6s ease-in-out infinite;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    justify-content: center;
}

.mosaic {
    display: grid;
    gap: var(--space-sm);
}

@media (min-width: 40rem) {
    .mosaic {
        grid-template-columns: 1.2fr 0.8fr;
        grid-template-rows: auto auto;
    }

    .mosaic .wide {
        grid-column: 1 / -1;
    }
}

.img-frame {
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}

.stack-offset {
    position: relative;
}

.stack-offset .img-frame:last-child {
    margin-top: calc(var(--space-lg) * -1);
    margin-left: 12%;
    max-width: 78%;
}

@media (max-width: 47.99rem) {
    .stack-offset .img-frame:last-child {
        margin-left: 0;
        max-width: 100%;
        margin-top: var(--space-md);
    }
}

.doc-wrap {
    width: min(100% - var(--space-lg), 48rem);
    margin-inline: auto;
    padding-block: var(--space-md);
}

.doc-hero {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    padding: var(--space-xl) var(--space-lg);
    margin-bottom: var(--space-xl);
    background: linear-gradient(135deg,
            rgba(255, 111, 145, 0.18),
            rgba(201, 24, 74, 0.12) 45%,
            rgba(255, 220, 230, 0.65));
    box-shadow: var(--shadow-soft);
}

.doc-hero::after {
    content: "";
    position: absolute;
    top: -30%;
    right: -15%;
    width: 55%;
    height: 160%;
    background: radial-gradient(ellipse at center,
            rgba(255, 179, 198, 0.45) 0%,
            transparent 68%);
    pointer-events: none;
    transform: rotate(-12deg);
}

.doc-hero-inner {
    position: relative;
    z-index: 1;
}

.doc-hero h1 {
    margin: 0 0 var(--space-sm);
    max-width: 22ch;
}

.doc-hero .doc-lead {
    margin: 0;
    font-size: var(--fs-sm);
    max-width: 38rem;
    opacity: 0.92;
}

.doc-badge-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-top: var(--space-md);
}

.doc-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: var(--fs-xs);
    padding: var(--space-2xs) var(--space-sm);
    border-radius: var(--radius-pill);
    background: rgba(255, 246, 249, 0.85);
    border: 1px solid rgba(201, 24, 74, 0.12);
    box-shadow: 0 0.15rem 0.5rem rgba(201, 24, 74, 0.06);
}

.doc-badge i {
    color: var(--hue-coral);
    font-size: 0.85em;
}

.doc-panel {
    background: #fff;
    border-radius: var(--radius-md);
    padding: var(--space-lg);
    margin-bottom: var(--space-lg);
    box-shadow: var(--shadow-soft);
    border-left: 4px solid var(--hue-coral);
    position: relative;
}

.doc-panel-alt {
    border-left-color: var(--hue-soft);
    transform: rotate(-0.25deg);
}

.doc-panel-wide {
    margin-left: 0;
    margin-right: 0;
}

@media (min-width: 48rem) {
    .doc-panel-shift {
        margin-left: 4%;
        max-width: 96%;
    }
}

.doc-panel h2 {
    margin: 0 0 var(--space-sm);
    font-size: var(--fs-md);
}

.doc-panel h3 {
    margin: var(--space-md) 0 var(--space-xs);
    font-size: var(--fs-sm);
    font-family: var(--font-body);
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--hue-coral);
}

.doc-panel p,
.doc-panel li {
    font-size: var(--fs-sm);
    margin-bottom: var(--space-sm);
}

.doc-panel p:last-child,
.doc-panel li:last-child {
    margin-bottom: 0;
}

.doc-grid {
    display: grid;
    gap: var(--space-md);
    grid-template-columns: 1fr;
}

@media (min-width: 40rem) {
    .doc-grid.cols-2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

.doc-card-mini {
    background: linear-gradient(180deg, #fff 0%, var(--hue-rose) 100%);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
    border: 1px solid rgba(255, 179, 198, 0.35);
}

.doc-card-mini h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-sm);
    font-family: var(--font-display);
    text-transform: none;
    letter-spacing: 0;
    color: var(--hue-berry);
}

.doc-card-mini p {
    margin: 0;
    font-size: var(--fs-xs);
}

.doc-timeline {
    position: relative;
    padding-left: var(--space-lg);
    margin: var(--space-lg) 0;
}

.doc-timeline::before {
    content: "";
    position: absolute;
    left: 0.45rem;
    top: 0.25rem;
    bottom: 0.25rem;
    width: 2px;
    background: linear-gradient(180deg,
            var(--hue-coral),
            var(--hue-soft),
            transparent);
    border-radius: var(--radius-pill);
}

.doc-step {
    position: relative;
    padding-bottom: var(--space-lg);
}

.doc-step:last-child {
    padding-bottom: 0;
}

.doc-step::before {
    content: "";
    position: absolute;
    left: calc(-1 * var(--space-lg) + 0.2rem);
    top: 0.35rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--hue-berry);
    box-shadow: 0 0 0 3px var(--hue-blush);
}

.doc-step h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-sm);
}

.doc-step p {
    margin: 0;
    font-size: var(--fs-sm);
}

.doc-strip {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-lg);
    margin: var(--space-xl) 0;
    border-radius: var(--radius-md);
    background: linear-gradient(90deg,
            rgba(255, 111, 145, 0.12),
            rgba(255, 220, 230, 0.55));
    border: 1px solid rgba(201, 24, 74, 0.1);
}

.doc-strip p {
    margin: 0;
    font-size: var(--fs-sm);
    flex: 1 1 12rem;
}

.doc-note {
    font-size: var(--fs-xs);
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    background: rgba(255, 179, 198, 0.25);
    border: 1px dashed rgba(201, 24, 74, 0.2);
    margin-top: var(--space-md);
}

.doc-list-plain {
    margin: 0;
    padding-left: var(--space-md);
    font-size: var(--fs-sm);
}

.doc-list-plain li {
    margin-bottom: var(--space-xs);
}

.legal-page.doc-rich h1 {
    margin-bottom: var(--space-md);
}

.thanks-page {
    padding-bottom: var(--space-3xl);
}

.thanks-stage {
    position: relative;
    min-height: min(62vh, 28rem);
    display: grid;
    place-items: center;
    padding: var(--space-2xl) var(--space-md);
    margin-bottom: var(--space-xl);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    background: linear-gradient(165deg,
            var(--hue-blush) 0%,
            var(--hue-rose) 38%,
            rgba(255, 111, 145, 0.22) 100%);
    overflow: hidden;
}

.thanks-stage::before {
    content: "";
    position: absolute;
    inset: -20% -10% auto auto;
    width: 70%;
    height: 120%;
    background: radial-gradient(circle at 70% 30%,
            rgba(255, 179, 198, 0.5) 0%,
            transparent 55%);
    pointer-events: none;
}

.thanks-stage-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 36rem;
}

.thanks-stage .tagline {
    margin-bottom: var(--space-sm);
}

.thanks-stage h1 {
    margin: 0 0 var(--space-md);
    animation: floatSoft 5s ease-in-out infinite;
}

.thanks-stage p {
    margin: 0 0 var(--space-sm);
    font-size: var(--fs-sm);
}

.thanks-ribbon {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: var(--space-lg);
}

.thanks-ribbon span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: #fff;
    color: var(--hue-coral);
    box-shadow: var(--shadow-soft);
    font-size: var(--fs-sm);
}

.thanks-flow {
    width: min(100% - var(--space-lg), 52rem);
    margin-inline: auto;
    display: grid;
    gap: var(--space-md);
    grid-template-columns: 1fr;
}

@media (min-width: 42rem) {
    .thanks-flow {
        grid-template-columns: repeat(3, 1fr);
    }
}

.thanks-card {
    background: #fff;
    border-radius: var(--radius-md);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
    text-align: left;
    border-top: 3px solid var(--hue-coral);
    transition: transform var(--dur-med) var(--ease-out),
        box-shadow var(--dur-med) var(--ease-out);
}

.thanks-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lift);
}

.thanks-card h2 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-sm);
}

.thanks-card p {
    margin: 0;
    font-size: var(--fs-xs);
}

.thanks-card i {
    color: var(--hue-coral);
    margin-bottom: var(--space-xs);
    font-size: var(--fs-lg);
}

.thanks-band {
    width: min(100% - var(--space-lg), 44rem);
    margin: var(--space-xl) auto 0;
    padding: var(--space-lg);
    border-radius: var(--radius-lg);
    background: linear-gradient(-8deg,
            rgba(201, 24, 74, 0.08),
            rgba(255, 179, 198, 0.35));
    text-align: center;
    box-shadow: var(--shadow-soft);
}

.thanks-band h2 {
    margin: 0 0 var(--space-sm);
    font-size: var(--fs-md);
}

.thanks-band p {
    margin: 0 0 var(--space-md);
    font-size: var(--fs-sm);
}

.thanks-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    justify-content: center;
}

.home-veil .veil-hero-shell {
    position: relative;
    isolation: isolate;
}

.home-veil .veil-hero-shell::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    opacity: 0.35;
    background-image: linear-gradient(105deg,
            transparent 0%,
            rgba(255, 246, 249, 0.08) 40%,
            transparent 70%),
        repeating-linear-gradient(-12deg,
            transparent,
            transparent 2rem,
            rgba(201, 24, 74, 0.04) 2rem,
            rgba(201, 24, 74, 0.04) 2.06rem);
}

.home-veil .hero-overlay {
    z-index: 2;
}

.home-veil .veil-hero-eyebrow {
    font-size: var(--fs-xs);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--hue-berry);
    opacity: 0.85;
    margin: 0 0 var(--space-sm);
}

.home-veil .veil-hero-lead {
    font-size: var(--fs-sm);
    max-width: 32rem;
    margin-left: auto;
    margin-right: auto;
}

.home-veil .veil-hero-actions {
    margin-bottom: var(--space-lg);
}

.home-veil .veil-hero-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-sm);
    max-width: 36rem;
    margin-inline: auto;
}

.home-veil .veil-hero-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-md);
    border-radius: var(--radius-pill);
    font-size: var(--fs-xs);
    background: rgba(255, 246, 249, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(14px);
    box-shadow: 0 0.25rem 1rem rgba(201, 24, 74, 0.1);
    transition: transform var(--dur-fast) var(--ease-out),
        box-shadow var(--dur-fast) var(--ease-out);
}

.home-veil .veil-hero-chip:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.4rem 1.2rem rgba(201, 24, 74, 0.14);
}

.home-veil .veil-hero-chip i {
    color: var(--hue-coral);
    font-size: 0.9em;
}

.home-veil .veil-btn-shine {
    position: relative;
    overflow: hidden;
}

.home-veil .veil-btn-shine::after {
    content: "";
    position: absolute;
    inset: -50% auto -50% -40%;
    width: 28%;
    background: linear-gradient(105deg,
            transparent,
            rgba(255, 246, 249, 0.45),
            transparent);
    transform: skewX(-18deg);
    animation: veilShine 4.5s ease-in-out infinite;
}

@keyframes veilShine {

    0%,
    70% {
        left: -35%;
        opacity: 0;
    }

    78% {
        opacity: 1;
    }

    100% {
        left: 120%;
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-veil .veil-btn-shine::after {
        animation: none;
    }
}

.home-veil .veil-marquee-shell {
    overflow: hidden;
    max-width: 100%;
    padding-block: var(--space-sm);
    background: linear-gradient(90deg,
            var(--hue-berry),
            #8f1238 45%,
            var(--hue-coral));
    border-block: 1px solid rgba(255, 246, 249, 0.12);
}

.home-veil .veil-marquee-group {
    display: inline-flex;
    white-space: nowrap;
    animation: veilMarquee 32s linear infinite;
}

@keyframes veilMarquee {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.home-veil .veil-marquee-line {
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    letter-spacing: 0.08em;
    color: rgba(255, 246, 249, 0.92);
    padding-right: var(--space-xl);
}

@media (prefers-reduced-motion: reduce) {
    .home-veil .veil-marquee-group {
        animation: none;
        justify-content: center;
        width: 100%;
        flex-wrap: wrap;
        white-space: normal;
        text-align: center;
    }

    .home-veil .veil-marquee-line:last-child {
        display: none;
    }
}

.home-veil .veil-saloon-head {
    margin-bottom: var(--space-lg);
    max-width: 36rem;
}

.home-veil .veil-saloon-grid {
    display: grid;
    gap: var(--space-xl);
    align-items: start;
}

@media (min-width: 52rem) {
    .home-veil .veil-saloon-grid {
        grid-template-columns: 1.15fr 0.85fr;
        gap: var(--space-2xl);
    }
}

.home-veil .veil-saloon-prose {
    max-width: var(--max-read);
}

.home-veil .veil-drop-cap::first-letter {
    float: left;
    font-family: var(--font-display);
    font-size: 2.75rem;
    line-height: 0.85;
    padding-right: var(--space-sm);
    color: var(--hue-coral);
}

.home-veil .veil-saloon-aside {
    position: relative;
}

.home-veil .veil-saloon-glass {
    padding: var(--space-lg);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(255, 179, 198, 0.45);
    backdrop-filter: blur(16px);
    box-shadow: var(--shadow-lift);
    transform: rotate(0.4deg);
}

.home-veil .veil-saloon-glass h3 {
    margin: 0 0 var(--space-sm);
    font-size: var(--fs-md);
}

.home-veil .veil-saloon-list {
    margin: 0;
    padding-left: var(--space-md);
    font-size: var(--fs-sm);
}

.home-veil .veil-saloon-list li {
    margin-bottom: var(--space-xs);
}

.home-veil .veil-bento {
    display: grid;
    gap: var(--space-md);
    grid-template-columns: 1fr;
}

@media (min-width: 45rem) {
    .home-veil .veil-bento {
        grid-template-columns: repeat(4, 1fr);
        grid-auto-rows: minmax(5.5rem, auto);
    }

    .home-veil .veil-bento-span2 {
        grid-column: span 2;
        grid-row: span 1;
    }

    .home-veil .veil-bento-tall {
        grid-row: span 2;
        grid-column: span 1;
    }

    .home-veil .veil-bento-wide {
        grid-column: span 2;
    }

    .home-veil .veil-bento-accent {
        background: linear-gradient(160deg,
                rgba(255, 111, 145, 0.12),
                #fff 55%);
    }
}

.home-veil .veil-bento-card {
    background: #fff;
    border-radius: var(--radius-md);
    padding: var(--space-md);
    box-shadow: var(--shadow-soft);
    border: 1px solid rgba(255, 179, 198, 0.35);
    transition: transform var(--dur-med) var(--ease-out),
        box-shadow var(--dur-med) var(--ease-out);
}

.home-veil .veil-bento-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lift);
}

.home-veil .veil-bento-card h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-md);
}

.home-veil .veil-bento-card p {
    margin: 0 0 var(--space-sm);
    font-size: var(--fs-sm);
}

.home-veil .veil-bento-card p:last-child {
    margin-bottom: 0;
}

.home-veil .veil-bento-card i {
    color: var(--hue-coral);
    font-size: var(--fs-lg);
    margin-bottom: var(--space-xs);
}

.home-veil .veil-bento-icon {
    width: 2.25rem;
    height: 2.25rem;
    display: grid;
    place-items: center;
    border-radius: var(--radius-sm);
    background: rgba(255, 179, 198, 0.35);
    color: var(--hue-berry);
    margin-bottom: var(--space-sm);
}

.home-veil .veil-chamber {
    position: relative;
    margin-block: var(--space-2xl);
    padding-block: var(--space-3xl);
    background: radial-gradient(ellipse 90% 70% at 20% 40%,
            rgba(255, 111, 145, 0.35),
            transparent 55%),
        radial-gradient(ellipse 70% 50% at 85% 80%,
            rgba(201, 24, 74, 0.45),
            transparent 50%),
        linear-gradient(168deg, #4a0d22 0%, var(--hue-berry) 48%, #7c1234 100%);
    color: rgba(255, 246, 249, 0.94);
    clip-path: polygon(0 3%, 100% 0, 100% 97%, 0 100%);
}

.home-veil .veil-chamber .tagline {
    color: rgba(255, 179, 198, 0.95);
}

.home-veil .veil-chamber h2 {
    color: #fff;
}

.home-veil .veil-chamber-intro {
    max-width: 38rem;
    margin-bottom: var(--space-xl);
}

.home-veil .veil-chamber-intro p {
    font-size: var(--fs-sm);
    opacity: 0.94;
}

.home-veil .veil-chamber-panels {
    display: grid;
    gap: var(--space-md);
    grid-template-columns: 1fr;
}

@media (min-width: 48rem) {
    .home-veil .veil-chamber-panels {
        grid-template-columns: repeat(3, 1fr);
    }
}

.home-veil .veil-chamber-glass {
    padding: var(--space-md);
    border-radius: var(--radius-md);
    background: rgba(255, 246, 249, 0.1);
    border: 1px solid rgba(255, 246, 249, 0.18);
    backdrop-filter: blur(12px);
    transition: background var(--dur-fast) var(--ease-out),
        transform var(--dur-fast) var(--ease-out);
}

.home-veil .veil-chamber-glass:hover {
    background: rgba(255, 246, 249, 0.16);
    transform: translateY(-3px);
}

.home-veil .veil-chamber-glass i {
    font-size: var(--fs-lg);
    color: var(--hue-soft);
    margin-bottom: var(--space-xs);
}

.home-veil .veil-chamber-glass h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-sm);
    color: #fff;
}

.home-veil .veil-chamber-glass p {
    margin: 0;
    font-size: var(--fs-xs);
    opacity: 0.9;
}

.home-veil .veil-split .veil-frame-glow {
    box-shadow: 0 0.5rem 2rem rgba(255, 111, 145, 0.25),
        var(--shadow-soft);
}

.home-veil .veil-scroll-title {
    text-align: center;
    margin-bottom: var(--space-xs);
}

.home-veil .veil-scroll-lead {
    text-align: center;
    font-size: var(--fs-sm);
    max-width: 32rem;
    margin: 0 auto var(--space-lg);
}

.home-veil .veil-scroll-row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(11.5rem, 1fr);
    gap: var(--space-md);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: var(--space-sm);
    scrollbar-color: var(--hue-soft) var(--hue-blush);
}

.home-veil .veil-scroll-card {
    scroll-snap-align: start;
    background: linear-gradient(180deg, #fff 0%, var(--hue-rose) 100%);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    border: 1px solid rgba(255, 179, 198, 0.4);
    box-shadow: var(--shadow-soft);
    min-height: 9rem;
}

.home-veil .veil-scroll-num {
    display: inline-grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    font-family: var(--font-display);
    font-size: var(--fs-sm);
    background: linear-gradient(135deg, var(--hue-coral), var(--hue-berry));
    color: var(--hue-rose);
    margin-bottom: var(--space-sm);
}

.home-veil .veil-scroll-card h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-sm);
}

.home-veil .veil-scroll-card p {
    margin: 0;
    font-size: var(--fs-xs);
}

.home-veil .veil-angled {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.home-veil .veil-mosaic-caption {
    padding: var(--space-md);
    margin-top: var(--space-sm);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(255, 179, 198, 0.35);
    font-size: var(--fs-sm);
}

.home-veil .veil-mosaic-caption p {
    margin: 0;
}

.home-veil .veil-quote-block {
    padding-block: var(--space-xl);
}

.home-veil .veil-quote {
    margin: 0;
    padding: var(--space-xl) var(--space-lg);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg,
            rgba(255, 220, 230, 0.65),
            rgba(255, 246, 249, 0.95));
    border: 1px solid rgba(201, 24, 74, 0.1);
    box-shadow: var(--shadow-soft);
    position: relative;
}

.home-veil .veil-quote::before {
    content: "\201C";
    position: absolute;
    top: var(--space-md);
    left: var(--space-md);
    font-family: var(--font-display);
    font-size: 3.5rem;
    line-height: 1;
    color: rgba(255, 111, 145, 0.35);
    pointer-events: none;
}

.home-veil .veil-quote p {
    margin: 0 0 var(--space-md);
    font-family: var(--font-display);
    font-size: clamp(var(--fs-sm), 2vw, var(--fs-md));
    font-style: italic;
    padding-left: var(--space-lg);
}

.home-veil .veil-quote footer {
    font-size: var(--fs-xs);
    opacity: 0.85;
    padding-left: var(--space-lg);
}

.home-veil .veil-duo {
    display: grid;
    gap: var(--space-lg);
}

@media (min-width: 48rem) {
    .home-veil .veil-duo {
        grid-template-columns: 1fr 1fr;
    }
}

.home-veil .veil-duo-note {
    font-size: var(--fs-xs);
    opacity: 0.88;
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    background: rgba(255, 179, 198, 0.22);
    margin-top: var(--space-md);
}

.home-veil .veil-faq h2 {
    margin-bottom: var(--space-lg);
}

.home-veil .veil-faq-grid {
    display: grid;
    gap: var(--space-md);
}

@media (min-width: 48rem) {
    .home-veil .veil-faq-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.home-veil .veil-faq-item {
    padding: var(--space-md);
    border-radius: var(--radius-md);
    background: #fff;
    border: 1px solid rgba(255, 179, 198, 0.35);
    box-shadow: var(--shadow-soft);
    transition: border-color var(--dur-fast) var(--ease-out);
}

.home-veil .veil-faq-item:hover {
    border-color: rgba(255, 111, 145, 0.45);
}

.home-veil .veil-faq-item h3 {
    margin: 0 0 var(--space-xs);
    font-size: var(--fs-sm);
}

.home-veil .veil-faq-item p {
    margin: 0;
    font-size: var(--fs-xs);
}

.home-veil .veil-date-card {
    padding: var(--space-lg);
    border-radius: var(--radius-lg);
    background: linear-gradient(125deg,
            rgba(255, 179, 198, 0.35),
            #fff 60%);
    border: 1px solid rgba(201, 24, 74, 0.08);
    text-align: center;
}

.home-veil .veil-date-card h2 {
    margin-bottom: var(--space-sm);
}

.home-veil .veil-date-card p {
    margin: 0;
    font-size: var(--fs-sm);
}

@media (max-width: 20rem) {
    .home-veil .veil-hero-chip {
        flex: 1 1 100%;
        justify-content: center;
    }

    .home-veil .veil-marquee-line {
        font-size: var(--fs-xs);
    }

    .home-veil .veil-saloon-glass {
        transform: none;
    }

    .home-veil .veil-chamber {
        clip-path: none;
        padding-block: var(--space-xl);
        margin-block: var(--space-lg);
    }

    .home-veil .veil-scroll-row {
        grid-auto-columns: minmax(10rem, 85%);
    }

    .home-veil .veil-quote::before {
        font-size: 2.5rem;
    }

    .home-veil .veil-quote p {
        padding-left: var(--space-sm);
    }

    .home-veil .veil-quote footer {
        padding-left: var(--space-sm);
    }

    :root {
        --fs-xs: 0.65rem;
        --fs-sm: 0.72rem;
        --fs-base: 0.78rem;
        --fs-md: 0.88rem;
        --fs-lg: 1.05rem;
        --fs-xl: 1.25rem;
        --fs-2xl: 1.45rem;
        --fs-3xl: 1.65rem;
        --space-2xs: 0.2rem;
        --space-xs: 0.35rem;
        --space-sm: 0.55rem;
        --space-md: 0.75rem;
        --space-lg: 1rem;
        --space-xl: 1.25rem;
        --space-2xl: 1.75rem;
        --space-3xl: 2.25rem;
        --radius-sm: 0.35rem;
        --radius-md: 0.65rem;
        --radius-lg: 1.1rem;
        --header-h: 2.75rem;
        --line-body: 1.5;
    }

    html {
        -webkit-text-size-adjust: 100%;
    }

    .shell,
    .shell-tight,
    .doc-wrap {
        width: min(100% - var(--space-sm), 100%);
        padding-inline: var(--space-xs);
    }

    .header-inner {
        width: min(calc(100% - var(--space-sm)), 100%);
        margin-inline: auto;
        padding: var(--space-xs) var(--space-sm);
        gap: var(--space-xs);
        min-height: 2.5rem;
        border-radius: var(--radius-md);
    }

    .logo-text {
        font-size: 0.6rem;
        letter-spacing: 0.03em;
        line-height: 1.2;
        max-width: 11rem;
    }

    [data-nav-toggle] {
        width: 2.15rem;
        height: 2.15rem;
        flex-shrink: 0;
    }

    [data-nav-panel] a {
        font-size: var(--fs-lg);
        padding: var(--space-xs);
    }

    .hero-wrap {
        min-height: min(70vh, 22rem);
        border-radius: 0 0 var(--radius-md) var(--radius-md);
    }

    .hero-overlay {
        padding: var(--space-md) var(--space-sm);
    }

    .btn {
        width: 100%;
        max-width: 100%;
        justify-content: center;
        padding: var(--space-xs) var(--space-md);
        font-size: var(--fs-xs);
    }

    .btn-ghost {
        width: 100%;
    }

    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .angled-band {
        padding: var(--space-lg) var(--space-sm);
        margin-block: var(--space-lg);
    }

    .angled-band .shell {
        padding-block: var(--space-sm);
    }

    .card-pool {
        padding: var(--space-sm);
    }

    .contact-card {
        padding: var(--space-md);
        border-radius: var(--radius-md);
    }

    .map-frame {
        min-height: 11rem;
    }

    .form-row input,
    .form-row textarea {
        padding: var(--space-xs);
        font-size: var(--fs-xs);
    }

    .site-foot {
        padding: var(--space-sm);
        font-size: 0.6rem;
        line-height: 1.45;
    }

    .site-foot a {
        display: inline-block;
        margin: 0 var(--space-2xs);
    }

    .privacy-box {
        padding: var(--space-md);
        max-width: 100%;
        border-radius: var(--radius-md);
    }

    .doc-hero {
        padding: var(--space-md) var(--space-sm);
        border-radius: var(--radius-md);
        margin-bottom: var(--space-md);
    }

    .doc-panel {
        padding: var(--space-md);
        margin-bottom: var(--space-md);
    }

    .doc-strip {
        flex-direction: column;
        align-items: flex-start;
        padding: var(--space-sm);
        gap: var(--space-sm);
    }

    .doc-timeline {
        padding-left: var(--space-md);
    }

    .thanks-stage {
        min-height: min(58vh, 24rem);
        padding: var(--space-lg) var(--space-sm);
    }

    .thanks-ribbon span {
        width: 1.9rem;
        height: 1.9rem;
    }

    .thanks-card {
        padding: var(--space-sm);
    }

    .thanks-band {
        padding: var(--space-md);
        margin-top: var(--space-md);
    }

    .legal-page h2 {
        margin-top: var(--space-lg);
    }

    .page-skew .skew-block:nth-child(even) {
        margin-left: 0;
        max-width: 100%;
    }

    .page-skew .skew-block {
        transform: none;
        margin-bottom: var(--space-lg);
    }

    .mosaic {
        gap: var(--space-xs);
    }

    .stack-offset .img-frame:last-child {
        margin-top: var(--space-sm);
    }

    .crest-hero {
        padding-block: var(--space-lg);
    }

    .crest-hero-grid {
        gap: var(--space-md);
    }

    .lane-hero {
        padding-block: var(--space-lg);
    }

    .lane-title {
        font-size: var(--fs-xl);
    }

    .ripple-glass {
        padding: var(--space-md);
    }

    .ripple-meta {
        flex-direction: column;
        align-items: flex-start;
    }
}

.nova-hero {
    min-height: min(82vh, 38rem);
}

.nova-hero-aurora {
    position: absolute;
    inset: -20%;
    z-index: 1;
    pointer-events: none;
    opacity: 0.45;
    background: conic-gradient(from 180deg at 50% 50%,
            rgba(255, 111, 145, 0.35),
            rgba(255, 220, 230, 0.15),
            rgba(201, 24, 74, 0.2),
            rgba(255, 179, 198, 0.3),
            rgba(255, 111, 145, 0.35));
    animation: novaAurora 22s linear infinite;
    filter: blur(40px);
}

@keyframes novaAurora {
    100% {
        transform: rotate(360deg);
    }
}

.nova-hero-orbs {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
}

.nova-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(0.5px);
    animation: novaOrbFloat 14s ease-in-out infinite;
}

.nova-orb-a {
    width: min(42vw, 14rem);
    height: min(42vw, 14rem);
    left: -5%;
    top: 15%;
    background: radial-gradient(circle,
            rgba(255, 179, 198, 0.55) 0%,
            transparent 70%);
    animation-delay: 0s;
}

.nova-orb-b {
    width: min(35vw, 11rem);
    height: min(35vw, 11rem);
    right: 5%;
    bottom: 20%;
    background: radial-gradient(circle,
            rgba(255, 111, 145, 0.4) 0%,
            transparent 68%);
    animation-delay: -4s;
}

.nova-orb-c {
    width: min(28vw, 9rem);
    height: min(28vw, 9rem);
    left: 40%;
    top: 55%;
    background: radial-gradient(circle,
            rgba(201, 24, 74, 0.18) 0%,
            transparent 65%);
    animation-delay: -7s;
}

@keyframes novaOrbFloat {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    33% {
        transform: translate(4%, -3%) scale(1.05);
    }

    66% {
        transform: translate(-3%, 4%) scale(0.96);
    }
}

.nova-hero-stage {
    position: relative;
    z-index: 2;
}

.nova-hero-stage>* {
    animation: novaRise 1s var(--ease-out) both;
}

.nova-hero-stage>*:nth-child(1) {
    animation-delay: 0.08s;
}

.nova-hero-stage>*:nth-child(2):not(.nova-hero-title) {
    animation-delay: 0.18s;
}

.nova-hero-stage>*:nth-child(3) {
    animation-delay: 0.28s;
}

.nova-hero-stage>*:nth-child(4) {
    animation-delay: 0.38s;
}

.nova-hero-stage>*:nth-child(5) {
    animation-delay: 0.48s;
}

.nova-hero-title {
    background: linear-gradient(125deg,
            var(--hue-berry) 0%,
            var(--hue-coral) 45%,
            #8f1238 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: novaRise 1s var(--ease-out) 0.18s both, novaShimmer 8s ease-in-out infinite;
}

@keyframes novaRise {
    from {
        opacity: 0;
        transform: translateY(1.35rem);
        filter: blur(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

@keyframes novaShimmer {

    0%,
    100% {
        background-position: 0% center;
    }

    50% {
        background-position: 100% center;
    }
}

@media (prefers-reduced-motion: reduce) {

    .nova-hero-aurora,
    .nova-orb {
        animation: none;
    }

    .nova-hero-title {
        animation: none;
        color: var(--hue-berry);
        background: none;
        -webkit-background-clip: unset;
        background-clip: unset;
    }

    .nova-hero-stage>* {
        animation: none;
        opacity: 1;
        filter: none;
    }
}

.page-crest .crest-hero {
    position: relative;
    overflow: hidden;
    padding-block: var(--space-3xl);
    margin-bottom: var(--space-md);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    background: linear-gradient(165deg,
            var(--hue-rose) 0%,
            rgba(255, 220, 230, 0.85) 42%,
            rgba(255, 179, 198, 0.35) 100%);
}

.page-crest .crest-hero-mesh {
    position: absolute;
    inset: 0;
    opacity: 0.55;
    background-image: radial-gradient(circle at 20% 30%,
            rgba(255, 111, 145, 0.35) 0%,
            transparent 45%),
        radial-gradient(circle at 80% 70%,
            rgba(201, 24, 74, 0.15) 0%,
            transparent 50%),
        repeating-linear-gradient(-18deg,
            transparent,
            transparent 1.5rem,
            rgba(255, 246, 249, 0.35) 1.5rem,
            rgba(255, 246, 249, 0.35) 1.52rem);
    animation: crestMeshShift 18s ease-in-out infinite alternate;
}

@keyframes crestMeshShift {
    0% {
        transform: scale(1) translate(0, 0);
    }

    100% {
        transform: scale(1.04) translate(-1%, 1%);
    }
}

.page-crest .crest-hero-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(50px);
    pointer-events: none;
    animation: crestGlowPulse 10s ease-in-out infinite;
}

.page-crest .crest-hero-glow-a {
    width: min(70vw, 24rem);
    height: min(70vw, 24rem);
    top: -15%;
    right: -10%;
    background: rgba(255, 111, 145, 0.35);
}

.page-crest .crest-hero-glow-b {
    width: min(50vw, 16rem);
    height: min(50vw, 16rem);
    bottom: -5%;
    left: -5%;
    background: rgba(255, 179, 198, 0.45);
    animation-delay: -3s;
}

@keyframes crestGlowPulse {

    0%,
    100% {
        opacity: 0.55;
        transform: scale(1);
    }

    50% {
        opacity: 0.85;
        transform: scale(1.08);
    }
}

.page-crest .crest-hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    gap: var(--space-2xl);
    align-items: center;
}

@media (min-width: 52rem) {
    .page-crest .crest-hero-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.page-crest .crest-eyebrow {
    font-size: var(--fs-xs);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--hue-coral);
    margin: 0 0 var(--space-sm);
}

.page-crest .crest-hero-copy h1 {
    margin: 0 0 var(--space-md);
}

.page-crest .crest-lead {
    font-size: var(--fs-sm);
    max-width: 36rem;
    margin: 0 0 var(--space-lg);
}

.page-crest .crest-pills {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.page-crest .crest-pill {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-md);
    font-size: var(--fs-xs);
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, 0.75);
    border: 1px solid rgba(255, 179, 198, 0.45);
    box-shadow: var(--shadow-soft);
    transition: transform var(--dur-fast) var(--ease-out);
}

.page-crest .crest-pill:hover {
    transform: translateY(-2px);
}

.page-crest .crest-pill i {
    color: var(--hue-coral);
}

.page-crest .crest-hero-panel {
    position: relative;
}

.page-crest .crest-panel-frame {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-lift);
    border: 1px solid rgba(255, 255, 255, 0.65);
    transform: rotate(-1.2deg);
    animation: crestFrameTilt 12s ease-in-out infinite;
}

@keyframes crestFrameTilt {

    0%,
    100% {
        transform: rotate(-1.2deg) translateY(0);
    }

    50% {
        transform: rotate(-0.6deg) translateY(-4px);
    }
}

.page-crest .crest-panel-cap {
    margin: var(--space-md) 0 0;
    font-size: var(--fs-xs);
    opacity: 0.88;
    text-align: right;
    padding-right: var(--space-sm);
}

.page-crest .crest-anim {
    animation: crestFadeUp 0.85s var(--ease-out) both;
}

.page-crest .crest-eyebrow.crest-anim {
    animation-delay: 0.05s;
}

.page-crest .crest-hero-copy h1.crest-anim {
    animation-delay: 0.12s;
}

.page-crest .crest-lead.crest-anim {
    animation-delay: 0.2s;
}

.page-crest .crest-pills .crest-pill:nth-child(1) {
    animation-delay: 0.28s;
}

.page-crest .crest-pills .crest-pill:nth-child(2) {
    animation-delay: 0.34s;
}

.page-crest .crest-pills .crest-pill:nth-child(3) {
    animation-delay: 0.4s;
}

.page-crest .crest-hero-panel.crest-anim {
    animation-delay: 0.22s;
}

@keyframes crestFadeUp {
    from {
        opacity: 0;
        transform: translateY(1.5rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {

    .page-crest .crest-hero-mesh,
    .page-crest .crest-hero-glow {
        animation: none;
    }

    .page-crest .crest-panel-frame {
        animation: none;
        transform: rotate(0);
    }

    .page-crest .crest-anim {
        animation: none;
        opacity: 1;
    }
}

.page-lane .lane-hero {
    position: relative;
    overflow: hidden;
    padding-block: var(--space-3xl);
    margin-bottom: var(--space-md);
    background: linear-gradient(180deg,
            #fff 0%,
            var(--hue-rose) 55%,
            rgba(255, 220, 230, 0.65) 100%);
    border-bottom: 1px solid rgba(255, 179, 198, 0.35);
}

.page-lane .lane-hero-lines {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    pointer-events: none;
    opacity: 0.35;
}

.page-lane .lane-line {
    display: block;
    height: 2px;
    margin: 0 8%;
    border-radius: var(--radius-pill);
    background: linear-gradient(90deg,
            transparent,
            var(--hue-coral),
            var(--hue-soft),
            transparent);
    transform-origin: left center;
    animation: laneSweep 5s ease-in-out infinite;
}

.page-lane .lane-line:nth-child(1) {
    animation-delay: 0s;
}

.page-lane .lane-line:nth-child(2) {
    animation-delay: 0.4s;
}

.page-lane .lane-line:nth-child(3) {
    animation-delay: 0.8s;
}

.page-lane .lane-line:nth-child(4) {
    animation-delay: 1.2s;
}

.page-lane .lane-line:nth-child(5) {
    animation-delay: 1.6s;
}

@keyframes laneSweep {

    0%,
    100% {
        transform: scaleX(0.35);
        opacity: 0.4;
    }

    50% {
        transform: scaleX(1);
        opacity: 0.9;
    }
}

.page-lane .lane-hero-shine {
    position: absolute;
    top: -30%;
    left: 50%;
    width: 120%;
    height: 80%;
    transform: translateX(-50%);
    background: linear-gradient(105deg,
            transparent 30%,
            rgba(255, 246, 249, 0.65) 50%,
            transparent 70%);
    animation: laneShine 6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes laneShine {

    0%,
    100% {
        opacity: 0.2;
        transform: translateX(-50%) translateY(0);
    }

    50% {
        opacity: 0.55;
        transform: translateX(-48%) translateY(4%);
    }
}

.page-lane .lane-hero-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 44rem;
    margin-inline: auto;
}

.page-lane .lane-eyebrow {
    font-size: var(--fs-xs);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--hue-coral);
    margin: 0 0 var(--space-md);
}

.page-lane .lane-icon-row {
    display: flex;
    justify-content: center;
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
}

.page-lane .lane-icon-ring {
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    border: 2px solid rgba(255, 111, 145, 0.35);
    color: var(--hue-berry);
    box-shadow: var(--shadow-soft);
    animation: laneBob 3.5s ease-in-out infinite;
}

.page-lane .lane-icon-ring:nth-child(2) {
    animation-delay: -0.4s;
}

.page-lane .lane-icon-ring:nth-child(3) {
    animation-delay: -0.8s;
}

@keyframes laneBob {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-6px);
    }
}

.page-lane .lane-title {
    margin: 0 0 var(--space-md);
}

.page-lane .lane-lead {
    font-size: var(--fs-sm);
    margin: 0 0 var(--space-lg);
}

.page-lane .lane-cta {
    margin-top: var(--space-sm);
}

.page-lane .lane-anim {
    animation: laneReveal 0.75s var(--ease-out) both;
}

.page-lane .lane-hero-top {
    animation: laneReveal 0.75s var(--ease-out) both;
}

.page-lane .lane-title.lane-anim {
    animation-delay: 0.12s;
}

.page-lane .lane-lead.lane-anim {
    animation-delay: 0.22s;
}

.page-lane .lane-cta.lane-anim {
    animation-delay: 0.32s;
}

@keyframes laneReveal {
    from {
        opacity: 0;
        transform: translateY(1.1rem) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {

    .page-lane .lane-line,
    .page-lane .lane-hero-shine,
    .page-lane .lane-icon-ring {
        animation: none;
    }

    .page-lane .lane-anim,
    .page-lane .lane-hero-top {
        animation: none;
        opacity: 1;
    }
}

.page-ripple .ripple-hero {
    position: relative;
    overflow: hidden;
    padding-block: var(--space-3xl);
    margin-bottom: var(--space-md);
    background: radial-gradient(ellipse 80% 60% at 50% -10%,
            rgba(255, 179, 198, 0.55) 0%,
            transparent 55%),
        linear-gradient(180deg, var(--hue-blush) 0%, var(--hue-rose) 100%);
}

.page-ripple .ripple-hero-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 30% 80%,
            rgba(255, 111, 145, 0.2) 0%,
            transparent 45%);
    animation: rippleBg 16s ease-in-out infinite alternate;
}

@keyframes rippleBg {
    0% {
        opacity: 0.7;
    }

    100% {
        opacity: 1;
    }
}

.page-ripple .ripple-hero-circles {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
}

.page-ripple .ripple-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 246, 249, 0.45);
    animation: rippleExpand 5s ease-out infinite;
}

.page-ripple .ripple-ring-1 {
    width: min(40vw, 12rem);
    height: min(40vw, 12rem);
    animation-delay: 0s;
}

.page-ripple .ripple-ring-2 {
    width: min(60vw, 20rem);
    height: min(60vw, 20rem);
    animation-delay: 0.6s;
    opacity: 0.65;
}

.page-ripple .ripple-ring-3 {
    width: min(85vw, 30rem);
    height: min(85vw, 30rem);
    animation-delay: 1.2s;
    opacity: 0.4;
}

@keyframes rippleExpand {
    0% {
        transform: scale(0.85);
        opacity: 0.5;
    }

    70% {
        opacity: 0.15;
    }

    100% {
        transform: scale(1.35);
        opacity: 0;
    }
}

.page-ripple .ripple-hero-inner {
    position: relative;
    z-index: 2;
}

.page-ripple .ripple-glass {
    padding: var(--space-xl) var(--space-lg);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(18px);
    box-shadow: 0 1rem 3rem rgba(201, 24, 74, 0.12);
    max-width: 40rem;
    margin-inline: auto;
    text-align: center;
}

.page-ripple .ripple-eyebrow {
    font-size: var(--fs-xs);
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--hue-coral);
    margin: 0 0 var(--space-sm);
}

.page-ripple .ripple-glass h1 {
    margin: 0 0 var(--space-md);
}

.page-ripple .ripple-lead {
    font-size: var(--fs-sm);
    margin: 0 0 var(--space-lg);
}

.page-ripple .ripple-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-md);
    font-size: var(--fs-xs);
}

.page-ripple .ripple-meta-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    text-decoration: none;
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-pill);
    background: rgba(255, 246, 249, 0.85);
    border: 1px solid rgba(255, 179, 198, 0.4);
    transition: transform var(--dur-fast) var(--ease-out),
        box-shadow var(--dur-fast) var(--ease-out);
}

.page-ripple .ripple-meta-link:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-soft);
}

.page-ripple .ripple-meta-span {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    opacity: 0.9;
}

.page-ripple .ripple-anim {
    animation: rippleContent 0.8s var(--ease-out) both;
}

.page-ripple .ripple-anim:nth-child(2) {
    animation-delay: 0.1s;
}

.page-ripple .ripple-anim:nth-child(3) {
    animation-delay: 0.18s;
}

.page-ripple .ripple-anim:nth-child(4) {
    animation-delay: 0.26s;
}

@keyframes rippleContent {
    from {
        opacity: 0;
        transform: translateY(0.75rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {

    .page-ripple .ripple-hero-bg,
    .page-ripple .ripple-ring {
        animation: none;
    }

    .page-ripple .ripple-ring {
        opacity: 0.2;
        transform: none;
    }

    .page-ripple .ripple-anim {
        animation: none;
        opacity: 1;
    }
}