/*
Art direction: Dreamstate-adjacent cosmic nocturne, made personal for Rave With Us.
Palette: ink-black blue surfaces with ultraviolet, electric cyan, soft pink, and moonlit lavender.
Typography: Clash Display provides sculptural emotion at display size; Satoshi keeps small UI and body copy clear.
Density: spacious and editorial, with a few futuristic signal / orbital moments.
*/

:root {
    --font-display: "Clash Display", "Helvetica Neue", sans-serif;
    --font-body: "Satoshi", "Helvetica Neue", sans-serif;

    --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
    --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
    --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
    --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
    --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
    --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.75rem);
    --text-3xl: clamp(2.85rem, 1.2rem + 5vw, 6.5rem);

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --space-32: 8rem;

    --content-default: 74rem;
    --content-wide: 84rem;

    --radius-sm: 0.5rem;
    --radius-md: 0.75rem;
    --radius-lg: 1.25rem;
    --radius-xl: 1.75rem;
    --radius-full: 999px;

    --bg: #08071c;
    --bg-deep: #040310;
    --surface: rgba(23, 18, 55, 0.74);
    --surface-solid: #171237;
    --surface-alt: #211749;
    --surface-soft: rgba(39, 27, 77, 0.56);
    --text: #f5f2ff;
    --text-muted: #c3bddb;
    --text-faint: #918ab0;
    --line: rgba(225, 216, 255, 0.17);
    --line-strong: rgba(225, 216, 255, 0.32);

    --violet: #a882ff;
    --violet-bright: #cfb6ff;
    --cyan: #74f2f1;
    --cyan-strong: #25d9e1;
    --pink: #f59bd9;
    --pink-soft: #ffc1e7;
    --gold: #ffd98c;

    --glow-violet: 0 0 44px rgba(155, 109, 255, 0.28);
    --glow-cyan: 0 0 36px rgba(72, 233, 236, 0.25);
    --shadow-lg: 0 28px 70px rgba(0, 0, 0, 0.34);
    --transition: 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 7rem;
}

body {
    min-height: 100dvh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 14% 6%, rgba(87, 61, 190, 0.21), transparent 24rem),
        radial-gradient(circle at 82% 18%, rgba(31, 161, 198, 0.13), transparent 28rem),
        var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: 1.58;
}

img,
svg {
    display: block;
    max-width: 100%;
}

button,
input,
textarea,
select {
    color: inherit;
    font: inherit;
}

button {
    cursor: pointer;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
a,
input,
textarea,
select {
    transition:
        color var(--transition),
        background var(--transition),
        border-color var(--transition),
        box-shadow var(--transition),
        transform var(--transition);
}

::selection {
    background: rgba(168, 130, 255, 0.42);
    color: var(--text);
}

:focus-visible {
    outline: 2px solid var(--cyan);
    outline-offset: 4px;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: var(--space-3);
    left: var(--space-3);
    transform: translateY(-160%);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-sm);
    background: var(--cyan);
    color: #051216;
    font-weight: 700;
}

.skip-link:focus {
    transform: translateY(0);
}

.site-shell {
    overflow: visible;
}

.page-width {
    width: min(calc(100% - 2rem), var(--content-default));
    margin-inline: auto;
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--cyan);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.25;
    text-transform: uppercase;
}

.pulse-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--cyan);
    box-shadow: 0 0 0 0 rgba(116, 242, 241, 0.68);
    animation: pulse 2s infinite;
}

.fact-label {
    display: block;
    margin-bottom: var(--space-1);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.section-intro h2,
.journey-copy h2,
.rnr-heading h2,
.final-cta h2 {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.section-intro h2 {
    max-width: 16ch;
    font-size: var(--text-2xl);
}

.section-intro > p:not(.eyebrow) {
    max-width: 48ch;
    margin-top: var(--space-4);
    color: var(--text-muted);
}

.button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    padding: 0.75rem 1.125rem;
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    font-weight: 700;
}

.button:hover {
    transform: translateY(-2px);
}

.button:active {
    transform: translateY(0);
}

.button-primary {
    background: var(--cyan);
    color: #07131c;
    box-shadow: 0 10px 26px rgba(63, 237, 239, 0.18);
}

.button-primary:hover {
    background: #b1ffff;
    box-shadow: 0 14px 34px rgba(63, 237, 239, 0.3);
}

.button-ghost {
    border-color: var(--line-strong);
    background: rgba(9, 7, 28, 0.25);
    color: var(--text);
}

.button-ghost:hover {
    border-color: var(--violet-bright);
    background: rgba(168, 130, 255, 0.13);
}

.button-arrow {
    font-size: 1.2em;
    line-height: 1;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
}

.text-link:hover {
    color: #c0ffff;
}

.text-link:hover span {
    transform: translate(2px, -2px);
}

.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
    display: flex;
    width: min(calc(100% - 2rem), var(--content-wide));
    min-height: 5.5rem;
    align-items: center;
    justify-content: space-between;
    margin-inline: auto;
    border-bottom: 1px solid rgba(233, 228, 255, 0.14);
    background: rgba(8, 7, 28, 0.82);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 10px 30px rgba(3, 2, 13, 0.14);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.brand-mark {
    width: 2.55rem;
    height: 2.55rem;
    flex: 0 0 auto;
    fill: none;
    stroke: var(--cyan);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.3;
    filter: drop-shadow(0 0 8px rgba(116, 242, 241, 0.36));
}

.brand-copy {
    display: grid;
    min-width: 0;
    line-height: 1.1;
}

.brand-copy > span {
    color: var(--text);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.brand-copy small {
    margin-top: 0.2rem;
    color: var(--text-muted);
    font-size: 0.7rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    font-size: var(--text-sm);
    font-weight: 700;
}

.site-nav > a:not(.nav-cta) {
    color: var(--text-muted);
}

.site-nav > a:not(.nav-cta):hover {
    color: var(--text);
}

.nav-cta {
    padding: 0.6rem 0.95rem;
    border: 1px solid rgba(116, 242, 241, 0.58);
    border-radius: var(--radius-full);
    color: var(--cyan);
}

.nav-cta:hover {
    border-color: var(--cyan);
    background: rgba(116, 242, 241, 0.12);
}

.hero {
    position: relative;
    min-height: 48rem;
    padding-top: clamp(var(--space-12), 7vw, var(--space-20));
    padding-bottom: var(--space-16);
    isolation: isolate;
    background:
        linear-gradient(180deg, rgba(4, 3, 16, 0.05) 40%, var(--bg) 100%),
        radial-gradient(circle at 48% 26%, rgba(133, 76, 255, 0.26), transparent 26rem),
        radial-gradient(circle at 80% 49%, rgba(48, 236, 230, 0.13), transparent 22rem);
}

.hero::after {
    position: absolute;
    z-index: -1;
    right: 0;
    bottom: 0;
    left: 0;
    height: 12rem;
    background: linear-gradient(transparent, var(--bg));
    content: "";
}

.hero-starfield,
.rnr-stars,
.final-cta-stars {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.72;
    background-image:
        radial-gradient(circle at 8% 18%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 18% 44%, rgba(255, 255, 255, 0.8) 0 1px, transparent 1.5px),
        radial-gradient(circle at 34% 12%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 55% 26%, rgba(182, 251, 255, 0.86) 0 1px, transparent 1.5px),
        radial-gradient(circle at 73% 8%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 86% 42%, rgba(255, 204, 241, 0.9) 0 1.5px, transparent 2px),
        radial-gradient(circle at 93% 22%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 43% 54%, rgba(255, 255, 255, 0.72) 0 1px, transparent 1.5px);
}

.hero-orbit {
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(171, 144, 255, 0.25);
    border-radius: 50%;
    pointer-events: none;
}

.hero-orbit-one {
    top: 2rem;
    right: -14rem;
    width: 52rem;
    height: 52rem;
    transform: rotate(-22deg);
    box-shadow: inset 0 0 80px rgba(112, 75, 214, 0.1);
}

.hero-orbit-two {
    top: 10rem;
    right: 7%;
    width: 22rem;
    height: 22rem;
    border-color: rgba(110, 244, 242, 0.3);
    transform: rotate(40deg);
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr);
    align-items: center;
    gap: clamp(var(--space-8), 7vw, var(--space-24));
}

.hero-copy h1 {
    max-width: 8.5ch;
    margin-top: var(--space-4);
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 600;
    letter-spacing: -0.065em;
    line-height: 0.92;
}

.hero-text {
    max-width: 39ch;
    margin-top: var(--space-6);
    color: var(--text-muted);
    font-size: var(--text-lg);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-8);
}

.event-sigil {
    position: relative;
    display: grid;
    width: min(100%, 21rem);
    aspect-ratio: 1;
    place-items: center;
    justify-self: end;
    border: 1px solid rgba(210, 195, 255, 0.27);
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 42%, rgba(183, 136, 255, 0.31), transparent 34%),
        radial-gradient(circle at 50% 50%, rgba(49, 32, 103, 0.75), rgba(9, 7, 31, 0.2) 67%);
    box-shadow: var(--shadow-lg), var(--glow-violet);
}

.event-sigil::before,
.event-sigil::after {
    position: absolute;
    border: 1px solid rgba(116, 242, 241, 0.3);
    border-radius: 50%;
    content: "";
}

.event-sigil::before {
    inset: 10%;
}

.event-sigil::after {
    inset: 21%;
    border-color: rgba(245, 155, 217, 0.34);
}

.sigil-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
}

.sigil-ring-outer {
    border: 1px dashed rgba(255, 255, 255, 0.34);
    animation: spin 32s linear infinite;
}

.sigil-ring-inner {
    inset: 15%;
    border: 1px dashed rgba(116, 242, 241, 0.34);
    animation: spin-reverse 22s linear infinite;
}

.sigil-content {
    display: grid;
    z-index: 1;
    place-items: center;
    text-align: center;
}

.sigil-label {
    color: var(--text-muted);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.sigil-number {
    margin-block: -0.45rem;
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(5.5rem, 10vw, 8rem);
    font-weight: 500;
    letter-spacing: -0.09em;
    line-height: 1;
    text-shadow: 0 0 30px rgba(235, 224, 255, 0.34);
}

.sigil-meta {
    position: absolute;
    bottom: 13%;
    display: flex;
    justify-content: center;
    gap: var(--space-2);
    width: 80%;
    color: var(--text-muted);
    font-size: var(--text-xs);
    text-align: center;
}

.hero-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
    margin-top: clamp(var(--space-12), 9vw, var(--space-24));
    padding-top: var(--space-6);
    border-top: 1px solid var(--line);
}

.hero-facts strong {
    display: block;
    max-width: 24ch;
    color: var(--text);
    font-size: var(--text-sm);
    line-height: 1.35;
}

.countdown-section {
    position: relative;
    padding-block: clamp(var(--space-12), 8vw, var(--space-24));
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background:
        linear-gradient(120deg, rgba(48, 28, 110, 0.31), rgba(6, 5, 23, 0.05) 50%),
        rgba(15, 11, 41, 0.62);
}

.countdown-wrap {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    align-items: center;
    gap: var(--space-12);
}

.countdown {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-3);
}

.countdown-unit {
    min-width: 0;
    padding: var(--space-4);
    border: 1px solid rgba(216, 205, 255, 0.16);
    border-radius: var(--radius-md);
    background: rgba(10, 8, 32, 0.46);
    text-align: center;
}

.countdown-number {
    display: block;
    overflow: hidden;
    color: var(--text);
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.45rem);
    font-variant-numeric: tabular-nums;
    font-weight: 500;
    letter-spacing: -0.06em;
    line-height: 1;
}

.countdown-label {
    display: block;
    margin-top: var(--space-2);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.countdown-note {
    grid-column: 2;
    margin-top: calc(var(--space-6) * -1);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.journey-section {
    padding-block: clamp(var(--space-16), 10vw, var(--space-32));
}

.journey-grid {
    display: grid;
    grid-template-columns: minmax(13rem, 0.8fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(var(--space-10), 10vw, var(--space-32));
}

.journey-art {
    position: relative;
    min-height: 25rem;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 35% 36%, rgba(255, 194, 231, 0.38), transparent 6%),
        radial-gradient(circle at 53% 52%, rgba(93, 230, 235, 0.29), transparent 22%),
        radial-gradient(circle at 60% 37%, rgba(129, 92, 255, 0.38), transparent 32%),
        linear-gradient(140deg, #15103a, #0a0823 67%);
    box-shadow: var(--shadow-lg);
}

.journey-art::before {
    position: absolute;
    inset: 0;
    opacity: 0.72;
    background-image:
        radial-gradient(circle at 14% 15%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 73% 18%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 88% 71%, rgba(255, 255, 255, 0.8) 0 1px, transparent 1.5px),
        radial-gradient(circle at 20% 78%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 40% 55%, #fff 0 1px, transparent 1.5px);
    content: "";
}

.journey-planet {
    position: absolute;
    top: 19%;
    left: 19%;
    width: 58%;
    aspect-ratio: 1;
    border: 1px solid rgba(224, 208, 255, 0.48);
    border-radius: 50%;
    background:
        radial-gradient(circle at 31% 28%, rgba(255, 255, 255, 0.8), transparent 3%),
        radial-gradient(circle at 36% 43%, rgba(245, 159, 219, 0.75), transparent 8%),
        radial-gradient(circle at 63% 69%, rgba(85, 236, 238, 0.61), transparent 16%),
        linear-gradient(150deg, rgba(149, 105, 255, 0.74), rgba(26, 20, 72, 0.88));
    box-shadow: inset -1.2rem -1.2rem 2.6rem rgba(4, 2, 17, 0.4), 0 0 50px rgba(150, 102, 255, 0.3);
}

.journey-line {
    position: absolute;
    left: -22%;
    width: 144%;
    height: 42%;
    border: 1px solid rgba(116, 242, 241, 0.4);
    border-radius: 50%;
    transform: rotate(-22deg);
}

.journey-line-one {
    top: 27%;
}

.journey-line-two {
    top: 39%;
    border-color: rgba(255, 181, 226, 0.32);
    transform: rotate(24deg);
}

.journey-star {
    position: absolute;
    color: var(--cyan);
    font-size: 1.7rem;
    text-shadow: var(--glow-cyan);
}

.journey-star-one {
    top: 16%;
    right: 18%;
}

.journey-star-two {
    bottom: 16%;
    left: 16%;
    color: var(--pink);
}

.journey-copy h2 {
    max-width: 16ch;
    margin-top: var(--space-4);
    font-size: var(--text-2xl);
}

.journey-copy > p:not(.eyebrow) {
    max-width: 54ch;
    margin-top: var(--space-5);
    color: var(--text-muted);
}

.dreamers-section {
    padding-block: clamp(var(--space-16), 9vw, var(--space-32));
    border-top: 1px solid var(--line);
    background:
        radial-gradient(circle at 88% 10%, rgba(80, 225, 228, 0.12), transparent 18rem),
        rgba(12, 9, 34, 0.54);
}

.section-heading-row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.crew-empty-state {
    display: grid;
    grid-template-columns: 12rem minmax(0, 1fr);
    align-items: center;
    gap: var(--space-10);
    margin-top: var(--space-10);
    padding: clamp(var(--space-6), 6vw, var(--space-16));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 24% 48%, rgba(116, 242, 241, 0.17), transparent 13rem),
        rgba(24, 17, 57, 0.74);
    box-shadow: var(--shadow-lg);
}

.empty-orbit {
    display: grid;
    width: 10rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px dashed rgba(116, 242, 241, 0.52);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 3rem;
    box-shadow: inset 0 0 32px rgba(116, 242, 241, 0.08);
    animation: spin 24s linear infinite;
}

.crew-empty-state h3 {
    max-width: 22ch;
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.04em;
}

.crew-empty-state p:not(.eyebrow) {
    max-width: 52ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.crew-empty-state .button {
    margin-top: var(--space-6);
}

.profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
    gap: var(--space-5);
    margin-top: var(--space-10);
}

.profile-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(25, 18, 58, 0.76);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
}

.profile-card:hover {
    transform: translateY(-4px);
    border-color: rgba(153, 210, 255, 0.42);
    box-shadow: 0 24px 46px rgba(0, 0, 0, 0.29), var(--glow-violet);
}

.profile-image-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 4.7;
    background: linear-gradient(135deg, #27205a, #131031);
}

.profile-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-image-fallback {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background:
        radial-gradient(circle at 32% 26%, rgba(248, 170, 225, 0.56), transparent 16%),
        linear-gradient(135deg, #7f58d4, #1c1748 72%);
    color: var(--text);
    font-family: var(--font-display);
    font-size: 4rem;
    font-weight: 600;
}

.profile-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding-inline: var(--space-3);
    border: 1px solid rgba(116, 242, 241, 0.54);
    border-radius: var(--radius-full);
    background: rgba(8, 32, 42, 0.72);
    color: #c0ffff;
    font-size: var(--text-xs);
    font-weight: 700;
    line-height: 1;
}

.profile-image-wrap .profile-badge {
    position: absolute;
    right: var(--space-3);
    bottom: var(--space-3);
}

.profile-badge-maybe {
    border-color: rgba(255, 211, 134, 0.62);
    background: rgba(67, 45, 13, 0.75);
    color: #ffe2a6;
}

.profile-card-body {
    padding: var(--space-5);
}

.profile-location {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.profile-card h3 {
    margin-top: var(--space-2);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.035em;
}

.profile-preview {
    display: -webkit-box;
    overflow: hidden;
    margin-top: var(--space-3);
    color: var(--text-muted);
    font-size: var(--text-sm);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.profile-read-more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-5);
    border: 0;
    background: transparent;
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
}

.profile-read-more:hover {
    color: #baffff;
}

.profile-modal {
    position: fixed;
    inset: 0;
    width: min(calc(100% - 2rem), 58rem);
    max-height: min(85dvh, 48rem);
    margin: auto;
    overflow: auto;
    padding: 0;
    border: 1px solid rgba(222, 210, 255, 0.28);
    border-radius: var(--radius-xl);
    background: #120e30;
    color: var(--text);
    box-shadow: var(--shadow-lg);
}

.profile-modal::backdrop {
    background: rgba(2, 1, 11, 0.78);
    backdrop-filter: blur(8px);
}

.profile-modal-inner {
    display: grid;
    grid-template-columns: minmax(14rem, 0.75fr) minmax(0, 1fr);
    min-height: 29rem;
}

.profile-modal-image-wrap {
    min-height: 100%;
    background: #21194d;
}

.profile-modal-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-modal-copy {
    padding: clamp(var(--space-6), 5vw, var(--space-12));
}

.profile-modal-copy h2 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.05em;
}

.modal-copy-block {
    margin-top: var(--space-6);
}

.modal-copy-block h3 {
    color: var(--cyan);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.modal-copy-block p {
    margin-top: var(--space-2);
    color: var(--text-muted);
}

.modal-excited {
    padding: var(--space-4);
    border: 1px solid rgba(245, 155, 217, 0.25);
    border-radius: var(--radius-md);
    background: rgba(107, 46, 112, 0.17);
}

.modal-excited h3 {
    color: var(--pink-soft);
}

.modal-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.instagram-link {
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
}

.instagram-link:hover {
    color: #c0ffff;
}

.modal-close {
    position: absolute;
    z-index: 2;
    top: var(--space-3);
    right: var(--space-3);
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 50%;
    background: rgba(6, 4, 19, 0.8);
    color: var(--text);
    font-size: 2rem;
    line-height: 1;
}

.modal-close:hover {
    background: rgba(52, 39, 101, 0.96);
    color: var(--cyan);
}

.rnr-section {
    position: relative;
    padding-block: clamp(var(--space-16), 10vw, var(--space-32));
    isolation: isolate;
    background:
        radial-gradient(circle at 18% 52%, rgba(255, 163, 223, 0.12), transparent 22rem),
        radial-gradient(circle at 76% 22%, rgba(111, 243, 241, 0.12), transparent 22rem),
        #0c0927;
}

.rnr-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(19rem, 1fr);
    align-items: center;
    gap: clamp(var(--space-8), 8vw, var(--space-24));
}

.rnr-heading h2 {
    max-width: 13ch;
    margin-top: var(--space-3);
    font-size: var(--text-2xl);
}

.rnr-heading > p:not(.eyebrow) {
    max-width: 50ch;
    margin-top: var(--space-5);
    color: var(--text-muted);
}

.rnr-destination {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-8);
    padding-top: var(--space-5);
    border-top: 1px solid var(--line);
}

.destination-mark {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(255, 210, 135, 0.54);
    border-radius: 50%;
    color: var(--gold);
    box-shadow: 0 0 25px rgba(255, 217, 140, 0.14);
}

.rnr-destination strong,
.rnr-destination span:not(.destination-mark) {
    display: block;
}

.rnr-destination strong {
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.035em;
}

.rnr-destination span:last-child {
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.rnr-timeline {
    display: grid;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(28, 20, 65, 0.65);
    box-shadow: var(--shadow-lg);
}

.timeline-item {
    display: grid;
    grid-template-columns: 4.8rem minmax(0, 1fr);
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-5);
    border-bottom: 1px solid var(--line);
}

.timeline-item:last-child {
    border-bottom: 0;
}

.timeline-item-highlight {
    background:
        linear-gradient(90deg, rgba(249, 155, 217, 0.18), rgba(116, 242, 241, 0.08)),
        rgba(52, 30, 94, 0.54);
}

.timeline-day {
    display: grid;
    min-height: 2.6rem;
    place-items: center;
    border: 1px solid rgba(183, 153, 255, 0.45);
    border-radius: var(--radius-sm);
    color: var(--violet-bright);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.timeline-item-highlight .timeline-day {
    border-color: rgba(255, 214, 143, 0.72);
    color: var(--gold);
}

.timeline-item div > span,
.timeline-item strong {
    display: block;
}

.timeline-item div > span {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.timeline-item strong {
    margin-top: 0.15rem;
    color: var(--text);
    font-size: var(--text-base);
}

.rnr-bottom-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
    margin-top: var(--space-8);
}

.rnr-participant-card,
.rnr-logistics-card {
    min-height: 17rem;
    padding: clamp(var(--space-5), 5vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(27, 19, 61, 0.6);
}

.rnr-logistics-card {
    background:
        radial-gradient(circle at 80% 22%, rgba(255, 209, 135, 0.2), transparent 10rem),
        rgba(26, 19, 57, 0.66);
}

.rnr-participant-card h3,
.rnr-logistics-card h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.rnr-muted,
.rnr-logistics-card > p:not(.eyebrow) {
    max-width: 48ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.rnr-participant-card .text-link {
    margin-top: var(--space-6);
}

.rnr-list-group {
    margin-top: var(--space-5);
}

.rnr-list-label {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.name-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-2);
    list-style: none;
}

.name-list li {
    padding: 0.32rem 0.65rem;
    border: 1px solid rgba(116, 242, 241, 0.38);
    border-radius: var(--radius-full);
    color: #c0ffff;
    font-size: var(--text-sm);
}

.name-list-maybe li {
    border-color: rgba(255, 216, 144, 0.48);
    color: #ffe3ab;
}

.logistics-status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-5);
    color: var(--gold);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.logistics-status .pulse-dot {
    background: var(--gold);
    box-shadow: 0 0 0 0 rgba(255, 217, 140, 0.7);
}

.details-section {
    padding-block: clamp(var(--space-16), 9vw, var(--space-32));
}

.details-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-5);
    margin-top: var(--space-10);
}

.detail-card {
    min-height: 17rem;
    padding: var(--space-6);
    border-top: 1px solid var(--line-strong);
    background: linear-gradient(180deg, rgba(29, 22, 66, 0.46), rgba(9, 7, 27, 0));
}

.detail-index {
    color: var(--violet);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.1em;
}

.detail-card h3 {
    margin-top: var(--space-5);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

.detail-card p {
    margin-top: var(--space-3);
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.detail-card .text-link {
    margin-top: var(--space-5);
}

.important-note {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    margin-top: var(--space-8);
    padding: var(--space-5);
    border: 1px solid rgba(116, 242, 241, 0.24);
    border-radius: var(--radius-md);
    background: rgba(19, 58, 73, 0.24);
}

.important-note > span {
    color: var(--cyan);
}

.important-note p {
    color: var(--text-muted);
}

.final-cta {
    position: relative;
    padding-block: clamp(var(--space-20), 12vw, 10rem);
    overflow: hidden;
    border-top: 1px solid var(--line);
    isolation: isolate;
    background:
        radial-gradient(circle at 50% 45%, rgba(139, 92, 255, 0.28), transparent 21rem),
        linear-gradient(180deg, #0a0822, #050411);
    text-align: center;
}

.final-cta-content {
    display: grid;
    place-items: center;
}

.final-cta .eyebrow {
    justify-content: center;
}

.final-cta h2 {
    max-width: 12ch;
    margin-top: var(--space-4);
    font-size: var(--text-2xl);
}

.final-cta p:not(.eyebrow) {
    max-width: 46ch;
    margin-top: var(--space-5);
    color: var(--text-muted);
}

.final-cta .button {
    margin-top: var(--space-8);
}

.site-footer {
    padding-block: var(--space-10);
    border-top: 1px solid var(--line);
    background: #050411;
}

.footer-inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.brand-footer .brand-mark {
    width: 2.1rem;
    height: 2.1rem;
}

.footer-note {
    max-width: 42ch;
    margin-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.footer-year {
    color: var(--text-faint);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    letter-spacing: -0.05em;
}

[data-reveal] {
    opacity: 0;
    transform: translateY(1.25rem);
    transition:
        opacity 700ms cubic-bezier(0.16, 1, 0.3, 1),
        transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes pulse {
    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(116, 242, 241, 0.62);
    }

    50% {
        box-shadow: 0 0 0 0.38rem rgba(116, 242, 241, 0);
    }
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes spin-reverse {
    to {
        transform: rotate(-360deg);
    }
}

@media (max-width: 58rem) {
    .site-header {
        top: 0;
        min-height: 4.8rem;
        background: rgba(8, 7, 28, 0.94);
    }

    .nav-toggle {
        display: inline-flex;
    }

    .site-nav {
        position: absolute;
        top: calc(100% + 0.65rem);
        right: 0;
        display: none;
        width: min(20rem, calc(100vw - 2rem));
        padding: var(--space-3);
        border: 1px solid var(--line);
        border-radius: var(--radius-md);
        background: rgba(14, 10, 38, 0.97);
        box-shadow: var(--shadow-lg);
    }

    .site-nav.is-open {
        display: grid;
        gap: 0;
    }

    .site-nav > a {
        min-height: 2.8rem;
        display: flex;
        align-items: center;
        padding-inline: var(--space-3);
        border-radius: var(--radius-sm);
    }

    .site-nav > a:not(.nav-cta):hover {
        background: rgba(255, 255, 255, 0.06);
    }

    .nav-cta {
        justify-content: center;
        margin-top: var(--space-2);
    }

    .hero {
        min-height: auto;
        padding-top: 8rem;
    }

    .hero-grid,
    .countdown-wrap,
    .journey-grid,
    .rnr-layout {
        grid-template-columns: 1fr;
    }

    .event-sigil {
        justify-self: start;
        width: min(72vw, 19rem);
        margin-top: var(--space-4);
    }

    .hero-facts {
        margin-top: var(--space-10);
    }

    .countdown {
        grid-column: 1;
    }

    .countdown-note {
        grid-column: 1;
        margin-top: 0;
    }

    .journey-art {
        min-height: 20rem;
    }

    .journey-grid {
        gap: var(--space-10);
    }

    .section-heading-row {
        align-items: start;
    }

    .crew-empty-state {
        grid-template-columns: 1fr;
    }

    .rnr-bottom-grid,
    .details-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 40rem) {
    .page-width {
        width: min(calc(100% - 1.5rem), var(--content-default));
    }

    .site-header {
        width: min(calc(100% - 1.5rem), var(--content-wide));
    }

    .brand-copy small {
        display: none;
    }

    .hero-copy h1 {
        max-width: 9.5ch;
    }

    .hero-facts {
        grid-template-columns: 1fr;
        gap: var(--space-4);
    }

    .hero-facts > div {
        padding-bottom: var(--space-4);
        border-bottom: 1px solid var(--line);
    }

    .hero-facts > div:last-child {
        padding-bottom: 0;
        border-bottom: 0;
    }

    .countdown {
        grid-template-columns: repeat(2, 1fr);
    }

    .section-heading-row {
        display: grid;
    }

    .profile-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-3);
    }

    .profile-card-body {
        padding: var(--space-4);
    }

    .profile-card h3 {
        font-size: var(--text-base);
    }

    .profile-preview {
        -webkit-line-clamp: 2;
    }

    .profile-modal {
    width: calc(100% - 1rem);
    max-height: 92dvh;
    margin: auto;
    border-radius: var(--radius-lg);
    }

    .profile-modal-inner {
        grid-template-columns: 1fr;
    }

    .profile-modal-image-wrap {
        min-height: 15rem;
    }

    .profile-modal-image {
        max-height: 20rem;
    }

    .profile-modal-copy {
        padding: var(--space-6);
    }

    .rnr-timeline {
        margin-inline: -0.25rem;
    }

    .timeline-item {
        grid-template-columns: 3.5rem minmax(0, 1fr);
        padding: var(--space-4);
    }

    .footer-inner {
        align-items: start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    [data-reveal] {
        opacity: 1;
        transform: none;
    }
}

/* ==========================================================================
   Join the Dream form + confirmation page
   ========================================================================== */

.join-page {
    background:
        radial-gradient(circle at 8% 8%, rgba(105, 77, 209, 0.2), transparent 24rem),
        radial-gradient(circle at 92% 20%, rgba(44, 204, 211, 0.12), transparent 23rem),
        var(--bg);
}

.join-header {
    position: relative;
    z-index: 20;
    display: flex;
    width: min(calc(100% - 2rem), var(--content-wide));
    min-height: 5.5rem;
    align-items: center;
    justify-content: space-between;
    margin-inline: auto;
    border-bottom: 1px solid var(--line);
}

.back-link {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}

.back-link:hover {
    color: var(--cyan);
}

.join-hero {
    position: relative;
    min-height: calc(100dvh - 5.5rem);
    padding-block: clamp(var(--space-10), 8vw, var(--space-24));
    isolation: isolate;
}

.join-starfield {
    position: absolute;
    inset: 0;
    z-index: -3;
    pointer-events: none;
    opacity: 0.75;
    background-image:
        radial-gradient(circle at 7% 13%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 16% 57%, rgba(255, 255, 255, 0.72) 0 1px, transparent 1.5px),
        radial-gradient(circle at 30% 22%, rgba(207, 182, 255, 0.95) 0 1.5px, transparent 2px),
        radial-gradient(circle at 42% 79%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 61% 18%, rgba(117, 245, 243, 0.9) 0 1px, transparent 1.5px),
        radial-gradient(circle at 76% 70%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 91% 35%, rgba(255, 191, 229, 0.9) 0 1px, transparent 1.5px);
}

.join-orbit,
.thank-you-orbit {
    position: absolute;
    z-index: -2;
    border: 1px solid rgba(168, 130, 255, 0.18);
    border-radius: 50%;
    pointer-events: none;
}

.join-orbit-one {
    top: -27rem;
    left: -21rem;
    width: 51rem;
    height: 51rem;
    transform: rotate(23deg);
}

.join-orbit-two {
    right: -17rem;
    bottom: 4rem;
    width: 39rem;
    height: 39rem;
    border-color: rgba(116, 242, 241, 0.18);
    transform: rotate(-19deg);
}

.join-container {
    display: grid;
    grid-template-columns: minmax(0, 0.65fr) minmax(27rem, 1fr);
    width: min(calc(100% - 2rem), var(--content-wide));
    align-items: start;
    gap: clamp(var(--space-10), 9vw, var(--space-32));
    margin-inline: auto;
}

.join-intro {
    position: sticky;
    top: var(--space-8);
    padding-top: var(--space-8);
}

.join-intro h1 {
    max-width: 9ch;
    margin-top: var(--space-4);
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 600;
    letter-spacing: -0.065em;
    line-height: 0.93;
}

.join-intro > p:not(.eyebrow) {
    max-width: 37ch;
    margin-top: var(--space-6);
    color: var(--text-muted);
    font-size: var(--text-lg);
}

.join-note,
.thank-you-note {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    max-width: 39rem;
    margin-top: var(--space-8);
    padding: var(--space-4);
    border: 1px solid rgba(116, 242, 241, 0.24);
    border-radius: var(--radius-md);
    background: rgba(13, 52, 67, 0.25);
}

.join-note > span,
.thank-you-note > span {
    color: var(--cyan);
}

.join-note p,
.thank-you-note p {
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.join-form-card {
    padding: clamp(var(--space-5), 5vw, var(--space-10));
    border: 1px solid rgba(221, 210, 255, 0.2);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 94% 3%, rgba(129, 93, 246, 0.16), transparent 18rem),
        rgba(22, 16, 52, 0.8);
    box-shadow: var(--shadow-lg);
}

.form-card-heading {
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--line);
}

.form-card-heading h2 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.form-card-heading > p:not(.eyebrow) {
    margin-top: var(--space-3);
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.form-alert {
    margin-top: var(--space-6);
    padding: var(--space-4);
    border: 1px solid rgba(255, 155, 205, 0.54);
    border-radius: var(--radius-md);
    background: rgba(91, 28, 74, 0.43);
}

.form-alert-title {
    color: #ffd3eb;
    font-weight: 700;
}

.form-alert ul {
    margin-top: var(--space-2);
    padding-left: 1.25rem;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.join-form {
    margin-top: var(--space-8);
}

.form-section {
    margin-top: var(--space-8);
    border: 0;
}

.form-section:first-child {
    margin-top: 0;
}

.form-section > legend {
    width: 100%;
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--line);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
    margin-top: var(--space-5);
}

.field {
    margin-top: var(--space-5);
}

.form-grid .field {
    margin-top: 0;
}

.field-full {
    grid-column: 1 / -1;
}

.field label,
.field-label {
    display: block;
    margin-bottom: var(--space-2);
    color: var(--text);
    font-size: var(--text-sm);
    font-weight: 700;
}

.field label > span,
.field-label > span {
    color: var(--pink-soft);
}

.field input:not([type="radio"]):not([type="checkbox"]),
.field textarea {
    width: 100%;
    border: 1px solid rgba(219, 207, 255, 0.25);
    border-radius: var(--radius-sm);
    outline: none;
    background: rgba(7, 5, 24, 0.62);
    color: var(--text);
    font-size: var(--text-base);
}

.field input:not([type="radio"]):not([type="checkbox"]) {
    min-height: 3.1rem;
    padding: 0.75rem var(--space-3);
}

.field textarea {
    min-height: 7rem;
    resize: vertical;
    padding: var(--space-3);
    line-height: 1.55;
}

.field input:not([type="radio"]):not([type="checkbox"])::placeholder,
.field textarea::placeholder {
    color: #78718f;
}

.field input:not([type="radio"]):not([type="checkbox"]):hover,
.field textarea:hover {
    border-color: rgba(205, 187, 255, 0.44);
}

.field input:not([type="radio"]):not([type="checkbox"]):focus,
.field textarea:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(116, 242, 241, 0.13);
}

.field-help {
    margin-top: var(--space-2);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.field-help-top {
    margin-top: calc(var(--space-2) * -1);
    margin-bottom: var(--space-4);
}

.field-counter {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: var(--space-2);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.input-with-prefix {
    position: relative;
}

.input-with-prefix > span {
    position: absolute;
    top: 50%;
    left: var(--space-3);
    color: var(--text-faint);
    transform: translateY(-50%);
}

.input-with-prefix input {
    padding-left: 2rem !important;
}

.photo-upload-wrap {
    position: relative;
    margin-top: var(--space-5);
}

.photo-upload-wrap > input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.photo-upload-label {
    display: flex;
    min-height: 7.25rem;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px dashed rgba(116, 242, 241, 0.48);
    border-radius: var(--radius-md);
    background: rgba(17, 45, 65, 0.24);
    cursor: pointer;
}

.photo-upload-label:hover {
    border-color: var(--cyan);
    background: rgba(21, 70, 85, 0.33);
}

.photo-upload-wrap > input[type="file"]:focus-visible + .photo-upload-label {
    outline: 2px solid var(--cyan);
    outline-offset: 4px;
}

.photo-upload-icon {
    display: grid;
    width: 2.9rem;
    height: 2.9rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(116, 242, 241, 0.54);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 1.75rem;
    line-height: 1;
}

.photo-upload-copy {
    display: grid;
    gap: 0.15rem;
}

.photo-upload-copy strong {
    color: var(--text);
    font-size: var(--text-sm);
}

.photo-upload-copy span {
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.photo-preview {
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr);
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-3);
    padding: var(--space-3);
    border: 1px solid rgba(116, 242, 241, 0.32);
    border-radius: var(--radius-md);
    background: rgba(13, 48, 61, 0.34);
}

.photo-preview[hidden] {
    display: none;
}

.photo-preview img {
    width: 5.25rem;
    height: 5.25rem;
    border-radius: var(--radius-sm);
    object-fit: cover;
}

.photo-preview-meta {
    display: grid;
    gap: var(--space-2);
    min-width: 0;
}

.photo-preview-meta strong {
    overflow: hidden;
    color: var(--text);
    font-size: var(--text-sm);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.photo-preview-meta button {
    justify-self: start;
    border: 0;
    background: transparent;
    color: var(--cyan);
    font-size: var(--text-xs);
    font-weight: 700;
}

.photo-preview-meta button:hover {
    color: #c1ffff;
}

.choice-grid {
    display: grid;
    gap: var(--space-3);
}

.choice-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.choice-grid-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.choice-card {
    position: relative;
    display: block;
    min-height: 6.1rem;
    cursor: pointer;
}

.choice-card input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}

.choice-card-content {
    display: grid;
    height: 100%;
    align-content: center;
    gap: 0.2rem;
    padding: var(--space-4);
    border: 1px solid rgba(219, 207, 255, 0.2);
    border-radius: var(--radius-md);
    background: rgba(8, 6, 25, 0.44);
}

.choice-card-content strong {
    color: var(--text);
    font-size: var(--text-sm);
}

.choice-card-content span {
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.choice-card:hover .choice-card-content {
    border-color: rgba(195, 173, 255, 0.54);
    background: rgba(51, 37, 105, 0.37);
}

.choice-card input:checked + .choice-card-content {
    border-color: var(--cyan);
    background:
        linear-gradient(135deg, rgba(73, 231, 232, 0.18), rgba(111, 72, 191, 0.22)),
        rgba(22, 48, 77, 0.63);
    box-shadow: inset 0 0 0 1px rgba(116, 242, 241, 0.16);
}

.choice-card input:checked + .choice-card-content strong {
    color: #d4ffff;
}

.choice-card input:focus-visible + .choice-card-content {
    outline: 2px solid var(--cyan);
    outline-offset: 3px;
}

.field-rnr {
    margin-top: var(--space-8);
}

.form-consent {
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--line);
}

.consent-check {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    color: var(--text-muted);
    font-size: var(--text-sm);
    line-height: 1.5;
    cursor: pointer;
}

.consent-check input {
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 auto;
    margin-top: 0.15rem;
    accent-color: var(--cyan);
}

.consent-check span > span {
    color: var(--pink-soft);
}

.form-submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
    margin-top: var(--space-8);
}

.form-submit-row > p {
    max-width: 29ch;
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.thank-you-page {
    position: relative;
    display: grid;
    min-height: calc(100dvh - 5.5rem);
    place-items: center;
    padding: var(--space-8) var(--space-4);
    overflow: hidden;
    isolation: isolate;
}

.thank-you-orbit-one {
    top: -23rem;
    right: -13rem;
    width: 47rem;
    height: 47rem;
    border-color: rgba(116, 242, 241, 0.23);
    transform: rotate(25deg);
}

.thank-you-orbit-two {
    bottom: -18rem;
    left: -14rem;
    width: 39rem;
    height: 39rem;
    border-color: rgba(245, 155, 217, 0.21);
    transform: rotate(-28deg);
}

.thank-you-card {
    position: relative;
    z-index: 1;
    width: min(100%, 43rem);
    padding: clamp(var(--space-8), 7vw, var(--space-16));
    border: 1px solid rgba(220, 210, 255, 0.25);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 50% 2%, rgba(121, 95, 247, 0.26), transparent 15rem),
        rgba(20, 15, 48, 0.84);
    box-shadow: var(--shadow-lg);
    text-align: center;
}

.thank-you-sigil {
    display: grid;
    width: 5rem;
    height: 5rem;
    place-items: center;
    margin-inline: auto;
    border: 1px solid rgba(116, 242, 241, 0.54);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 2.2rem;
    box-shadow: var(--glow-cyan);
}

.thank-you-card .eyebrow {
    justify-content: center;
    margin-top: var(--space-6);
}

.thank-you-card h1 {
    max-width: 12ch;
    margin: var(--space-4) auto 0;
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.thank-you-card > p:not(.eyebrow) {
    max-width: 42ch;
    margin: var(--space-5) auto 0;
    color: var(--text-muted);
}

.thank-you-card .thank-you-note {
    margin-inline: auto;
    text-align: left;
}

.thank-you-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-3);
    margin-top: var(--space-8);
}

@media (max-width: 64rem) {
    .join-container {
        grid-template-columns: 1fr;
        max-width: 48rem;
    }

    .join-intro {
        position: static;
        padding-top: 0;
    }

    .join-intro h1 {
        max-width: none;
    }

    .join-intro > p:not(.eyebrow) {
        max-width: 48ch;
    }
}

@media (max-width: 40rem) {
    .join-header {
        width: min(calc(100% - 1.5rem), var(--content-wide));
        min-height: 4.8rem;
    }

    .back-link {
        font-size: var(--text-xs);
    }

    .back-link span {
        font-size: 1.1rem;
    }

    .join-container {
        width: min(calc(100% - 1.5rem), var(--content-wide));
    }

    .join-form-card {
        padding: var(--space-5);
        border-radius: var(--radius-lg);
    }

    .form-grid,
    .choice-grid-two,
    .choice-grid-three {
        grid-template-columns: 1fr;
    }

    .form-submit-row {
        align-items: stretch;
        flex-direction: column;
    }

    .form-submit-row .button {
        width: 100%;
    }

    .field-counter {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-1);
    }

    .thank-you-card {
        padding: var(--space-8) var(--space-5);
        border-radius: var(--radius-lg);
    }

    .thank-you-actions {
        display: grid;
    }

    .thank-you-actions .button {
        width: 100%;
    }
}

/* ==========================================================================
   Dreamstate admin dashboard
   ========================================================================== */

.admin-login-page,
.admin-page {
    background:
        radial-gradient(circle at 10% 5%, rgba(115, 80, 216, 0.15), transparent 25rem),
        radial-gradient(circle at 90% 15%, rgba(56, 210, 215, 0.09), transparent 24rem),
        #090719;
}

.admin-login-main {
    position: relative;
    display: grid;
    min-height: calc(100dvh - 5.5rem);
    place-items: center;
    padding: var(--space-8) var(--space-4);
    overflow: hidden;
    isolation: isolate;
}

.admin-login-orbit {
    position: absolute;
    z-index: -2;
    border: 1px solid rgba(168, 130, 255, 0.2);
    border-radius: 50%;
    pointer-events: none;
}

.admin-login-orbit-one {
    top: -21rem;
    left: -15rem;
    width: 43rem;
    height: 43rem;
    transform: rotate(18deg);
}

.admin-login-orbit-two {
    right: -13rem;
    bottom: -18rem;
    width: 37rem;
    height: 37rem;
    border-color: rgba(116, 242, 241, 0.2);
    transform: rotate(-25deg);
}

.admin-login-card {
    position: relative;
    z-index: 1;
    width: min(100%, 29rem);
    padding: clamp(var(--space-6), 6vw, var(--space-10));
    border: 1px solid rgba(220, 210, 255, 0.24);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 50% 0%, rgba(124, 88, 231, 0.23), transparent 14rem),
        rgba(20, 15, 47, 0.88);
    box-shadow: var(--shadow-lg);
}

.admin-lock-mark {
    display: grid;
    width: 3.5rem;
    height: 3.5rem;
    place-items: center;
    border: 1px solid rgba(116, 242, 241, 0.52);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 1.4rem;
    box-shadow: var(--glow-cyan);
}

.admin-login-card h1 {
    margin-top: var(--space-4);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.055em;
}

.admin-login-copy {
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.admin-login-form {
    margin-top: var(--space-8);
}

.admin-login-button {
    width: 100%;
    margin-top: var(--space-6);
}

.admin-header {
    position: sticky;
    z-index: 30;
    top: 0;
    border-bottom: 1px solid var(--line);
    background: rgba(9, 7, 25, 0.9);
    backdrop-filter: blur(16px);
}

.admin-header-inner {
    display: flex;
    width: min(calc(100% - 2rem), var(--content-wide));
    min-height: 5.25rem;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6);
    margin-inline: auto;
}

.admin-nav {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    font-size: var(--text-sm);
    font-weight: 700;
}

.admin-nav a,
.admin-nav button {
    color: var(--text-muted);
}

.admin-nav a:hover,
.admin-nav button:hover,
.admin-nav a.is-active {
    color: var(--cyan);
}

.admin-nav form {
    display: inline;
}

.admin-nav button {
    border: 0;
    background: transparent;
    font-size: inherit;
    font-weight: inherit;
}

.admin-nav-count {
    display: inline-grid;
    min-width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    margin-left: 0.2rem;
    border-radius: var(--radius-full);
    background: rgba(245, 155, 217, 0.2);
    color: var(--pink-soft);
    font-size: 0.7rem;
}

.admin-main {
    min-height: calc(100dvh - 5.25rem);
    padding-block: clamp(var(--space-8), 6vw, var(--space-16));
}

.admin-page-width {
    width: min(calc(100% - 2rem), var(--content-wide));
    margin-inline: auto;
}

.admin-page-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.admin-page-heading h1 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.055em;
}

.admin-page-heading > div > p:not(.eyebrow) {
    max-width: 46ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.admin-page-heading-compact {
    align-items: center;
}

.admin-flash {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-top: var(--space-6);
    padding: var(--space-4);
    border-radius: var(--radius-md);
}

.admin-flash-success {
    border: 1px solid rgba(116, 242, 241, 0.38);
    background: rgba(17, 78, 78, 0.27);
    color: #c9ffff;
}

.admin-flash-error {
    border: 1px solid rgba(255, 154, 201, 0.44);
    background: rgba(95, 29, 73, 0.35);
    color: #ffe0ef;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-10);
}

.admin-stat-card {
    min-height: 10rem;
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background:
        linear-gradient(145deg, rgba(39, 29, 86, 0.62), rgba(13, 9, 34, 0.68));
}

.admin-stat-card > span {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.admin-stat-card strong {
    display: block;
    margin-top: var(--space-3);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 500;
    letter-spacing: -0.06em;
    line-height: 1;
}

.admin-stat-card p {
    margin-top: var(--space-3);
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.admin-panel {
    margin-top: var(--space-10);
    padding: clamp(var(--space-5), 4vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background: rgba(19, 14, 47, 0.64);
}

.admin-panel-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-5);
}

.admin-panel-heading h2,
.admin-next-steps h2 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-empty-state {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    margin-top: var(--space-6);
    padding: var(--space-6);
    border: 1px dashed rgba(181, 164, 235, 0.28);
    border-radius: var(--radius-md);
    background: rgba(10, 8, 29, 0.32);
}

.admin-empty-state-small {
    min-height: 12rem;
}

.admin-empty-mark {
    display: grid;
    width: 3.6rem;
    height: 3.6rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(116, 242, 241, 0.42);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 1.4rem;
}

.admin-empty-state h3 {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

.admin-empty-state p {
    margin-top: var(--space-1);
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.admin-pending-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.admin-pending-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(8, 6, 25, 0.42);
}

.admin-pending-image {
    overflow: hidden;
    aspect-ratio: 1 / 0.8;
    background: #21194d;
}

.admin-pending-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-image-fallback {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background:
        radial-gradient(circle at 34% 30%, rgba(244, 160, 219, 0.55), transparent 13%),
        linear-gradient(140deg, #7959cc, #1a153f 72%);
    color: var(--text);
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 600;
}

.admin-pending-copy {
    padding: var(--space-4);
}

.admin-pending-copy h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

.admin-pending-copy > p {
    margin-top: var(--space-1);
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.admin-pending-copy .text-link {
    margin-top: var(--space-4);
}

.admin-status {
    display: inline-flex;
    min-height: 1.6rem;
    align-items: center;
    padding-inline: var(--space-2);
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: 700;
    line-height: 1;
}

.admin-status-pending {
    border-color: rgba(255, 217, 140, 0.5);
    background: rgba(92, 65, 14, 0.29);
    color: #ffe4ab;
}

.admin-status-approved {
    border-color: rgba(116, 242, 241, 0.44);
    background: rgba(14, 77, 79, 0.34);
    color: #c1ffff;
}

.admin-status-hidden {
    border-color: rgba(190, 183, 216, 0.3);
    background: rgba(64, 58, 84, 0.4);
    color: #d0c9df;
}

.admin-rnr-label {
    display: inline-flex;
    margin-top: var(--space-3);
    padding: 0.25rem 0.5rem;
    border: 1px solid rgba(116, 242, 241, 0.35);
    border-radius: var(--radius-full);
    color: #c1ffff;
    font-size: var(--text-xs);
    font-weight: 700;
}

.admin-rnr-label-maybe {
    border-color: rgba(255, 217, 140, 0.45);
    color: #ffe4ab;
}

.admin-next-steps {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
    margin-top: var(--space-10);
    padding: clamp(var(--space-5), 5vw, var(--space-8));
    border-top: 1px solid var(--line);
}

.admin-next-steps p:not(.eyebrow) {
    max-width: 58ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.admin-filter-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-8);
}

.admin-filter-tabs a {
    display: inline-flex;
    min-height: 2.6rem;
    align-items: center;
    gap: var(--space-2);
    padding-inline: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-full);
    color: var(--text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}

.admin-filter-tabs a:hover,
.admin-filter-tabs a.is-active {
    border-color: rgba(116, 242, 241, 0.54);
    background: rgba(24, 85, 90, 0.3);
    color: var(--cyan);
}

.admin-filter-tabs span {
    display: inline-grid;
    min-width: 1.3rem;
    height: 1.3rem;
    place-items: center;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.1);
    color: inherit;
    font-size: 0.7rem;
}

.admin-profiles-layout {
    display: grid;
    grid-template-columns: minmax(17rem, 0.78fr) minmax(25rem, 1.22fr);
    align-items: start;
    gap: var(--space-6);
    margin-top: var(--space-6);
}

.admin-profile-list-panel,
.admin-profile-review-panel {
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(18, 13, 45, 0.66);
}

.admin-profile-list-panel {
    overflow: hidden;
}

.admin-list-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5);
    border-bottom: 1px solid var(--line);
}

.admin-list-heading h2 {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.035em;
}

.admin-list-heading span {
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.admin-profile-list {
    max-height: 42rem;
    overflow-y: auto;
}

.admin-profile-row {
    display: grid;
    grid-template-columns: 3.65rem minmax(0, 1fr);
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid rgba(219, 207, 255, 0.1);
}

.admin-profile-row:last-child {
    border-bottom: 0;
}

.admin-profile-row:hover,
.admin-profile-row.is-selected {
    background: rgba(91, 70, 164, 0.22);
}

.admin-profile-row.is-selected {
    box-shadow: inset 3px 0 0 var(--cyan);
}

.admin-profile-thumb {
    overflow: hidden;
    width: 3.65rem;
    height: 3.65rem;
    border-radius: var(--radius-sm);
    background: #21194d;
}

.admin-profile-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-profile-row-copy {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.admin-profile-row-copy h3 {
    overflow: hidden;
    color: var(--text);
    font-size: var(--text-sm);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-profile-row-copy p {
    overflow: hidden;
    margin-top: 0.1rem;
    color: var(--text-faint);
    font-size: var(--text-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-profile-review-panel {
    min-height: 32rem;
    padding: clamp(var(--space-5), 4vw, var(--space-8));
}

.admin-review-placeholder {
    display: grid;
    min-height: 24rem;
    place-content: center;
    justify-items: center;
    text-align: center;
}

.admin-review-placeholder h2 {
    margin-top: var(--space-5);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-review-placeholder p {
    max-width: 31ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.admin-review-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-4);
}

.admin-review-heading h2 {
    margin-top: var(--space-2);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-review-photo {
    overflow: hidden;
    aspect-ratio: 16 / 8;
    margin-top: var(--space-6);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #21194d;
}

.admin-review-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-review-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
    padding-block: var(--space-5);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.admin-review-meta dt {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.admin-review-meta dd {
    margin-top: var(--space-1);
    color: var(--text);
    font-size: var(--text-sm);
}

.admin-review-copy-block {
    margin-top: var(--space-6);
}

.admin-review-copy-block h3,
.admin-action-section > h3 {
    color: var(--cyan);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.admin-review-copy-block p {
    margin-top: var(--space-2);
    color: var(--text-muted);
}

.admin-review-copy-highlight {
    padding: var(--space-4);
    border: 1px solid rgba(245, 155, 217, 0.25);
    border-radius: var(--radius-md);
    background: rgba(105, 45, 112, 0.17);
}

.admin-review-copy-highlight h3 {
    color: var(--pink-soft);
}

.admin-action-section {
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--line);
}

.admin-action-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.button-admin-secondary {
    border-color: rgba(204, 192, 247, 0.4);
    background: rgba(49, 37, 94, 0.65);
    color: var(--text);
}

.button-admin-secondary:hover {
    border-color: var(--violet-bright);
    background: rgba(85, 64, 152, 0.68);
}

.button-admin-danger {
    border-color: rgba(255, 152, 201, 0.55);
    background: rgba(98, 29, 69, 0.56);
    color: #ffd7ea;
}

.button-admin-danger:hover {
    border-color: #ff99cb;
    background: rgba(135, 36, 83, 0.72);
}

.admin-action-note {
    margin-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

@media (max-width: 70rem) {
    .admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-profiles-layout {
        grid-template-columns: 1fr;
    }

    .admin-profile-list {
        max-height: 24rem;
    }
}

@media (max-width: 52rem) {
    .admin-header-inner,
    .admin-page-width {
        width: min(calc(100% - 1.5rem), var(--content-wide));
    }

    .admin-header-inner {
        min-height: auto;
        align-items: start;
        flex-direction: column;
        gap: var(--space-3);
        padding-block: var(--space-3);
    }

    .admin-nav {
        width: 100%;
        flex-wrap: wrap;
        gap: var(--space-3);
        padding-bottom: var(--space-1);
    }

    .admin-page-heading,
    .admin-next-steps {
        align-items: start;
        flex-direction: column;
    }
}

@media (max-width: 34rem) {
    .admin-stats,
    .admin-review-meta {
        grid-template-columns: 1fr;
    }

    .admin-pending-grid {
        grid-template-columns: 1fr;
    }

    .admin-profile-row-copy {
        align-items: start;
        flex-direction: column;
    }

    .admin-action-grid,
    .admin-action-grid form,
    .admin-action-grid .button {
        width: 100%;
    }

    .admin-action-grid .button {
        justify-content: center;
    }
}

/* ==========================================================================
   Admin profile editor + public content controls
   ========================================================================== */

.admin-editor-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}

.admin-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    align-items: start;
    gap: var(--space-6);
    margin-top: var(--space-8);
}

.admin-editor-main,
.admin-editor-sidebar,
.admin-content-form {
    display: grid;
    gap: var(--space-6);
}

.admin-editor-section {
    margin: 0;
    padding: clamp(var(--space-5), 4vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(19, 14, 47, 0.66);
}

fieldset.admin-editor-section {
    min-inline-size: 0;
}

.admin-editor-section > legend {
    width: 100%;
    padding: 0 0 var(--space-4);
    border-bottom: 1px solid var(--line);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-editor-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-4);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--line);
}

.admin-editor-section-heading h2 {
    margin-top: var(--space-2);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-editor-photo-preview {
    overflow: hidden;
    aspect-ratio: 4 / 5;
    margin-top: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #21194d;
}

.admin-editor-photo-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.crop-controls {
    margin-top: var(--space-6);
    padding-top: var(--space-5);
    border-top: 1px solid var(--line);
}

.crop-controls h3 {
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

.crop-controls > p {
    margin-top: var(--space-2);
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.crop-input-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
}

.crop-input-grid .field {
    margin-top: var(--space-4);
}

.admin-editor-save-panel {
    position: sticky;
    top: calc(5.25rem + var(--space-4));
    display: grid;
    gap: var(--space-3);
    padding: var(--space-5);
    border: 1px solid rgba(116, 242, 241, 0.24);
    border-radius: var(--radius-lg);
    background: rgba(15, 35, 58, 0.74);
}

.admin-editor-save-panel .button {
    width: 100%;
}

.admin-edit-profile-button {
    margin-top: var(--space-4);
}

.admin-content-form {
    margin-top: var(--space-8);
}

.admin-content-save-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
    padding-top: var(--space-2);
}

.admin-content-save-row p {
    max-width: 42ch;
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.admin-content-form select {
    width: 100%;
    min-height: 3.1rem;
    padding: 0.75rem var(--space-3);
    border: 1px solid rgba(219, 207, 255, 0.25);
    border-radius: var(--radius-sm);
    outline: none;
    background: rgba(7, 5, 24, 0.62);
    color: var(--text);
    font-size: var(--text-base);
}

.admin-content-form select:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(116, 242, 241, 0.13);
}

@media (max-width: 70rem) {
    .admin-editor-layout {
        grid-template-columns: 1fr;
    }

    .admin-editor-save-panel {
        position: static;
    }

    .admin-editor-photo-section {
        max-width: 36rem;
    }
}

@media (max-width: 40rem) {
    .admin-editor-topline,
    .admin-content-save-row {
        align-items: stretch;
        flex-direction: column;
    }

    .crop-input-grid {
        grid-template-columns: 1fr;
    }

    .admin-content-save-row .button {
        width: 100%;
    }
}
/* ==========================================================================
   Crew links + lineup poster
   ========================================================================== */

.nav-whatsapp {
    display: inline-flex;
    min-height: 2.45rem;
    align-items: center;
    gap: var(--space-2);
    padding-inline: var(--space-3);
    border: 1px solid rgba(116, 242, 241, 0.42);
    border-radius: var(--radius-full);
    color: var(--cyan);
    font-size: var(--text-xs);
    white-space: nowrap;
}

.nav-whatsapp:hover {
    border-color: var(--cyan);
    background: rgba(116, 242, 241, 0.11);
    color: #c3ffff;
}

.whatsapp-mark {
    display: grid;
    width: 1rem;
    height: 1rem;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-size: 0.8rem;
    line-height: 1;
}

.crew-links-section {
    padding-block: clamp(var(--space-12), 8vw, var(--space-24));
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background:
        radial-gradient(circle at 12% 50%, rgba(116, 242, 241, 0.1), transparent 20rem),
        radial-gradient(circle at 88% 35%, rgba(245, 155, 217, 0.1), transparent 19rem),
        rgba(15, 11, 40, 0.56);
}

.crew-links-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(19rem, 1.15fr);
    align-items: center;
    gap: clamp(var(--space-8), 8vw, var(--space-24));
}

.crew-links-copy h2 {
    max-width: 14ch;
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.05em;
}

.crew-links-copy > p:not(.eyebrow) {
    max-width: 48ch;
    margin-top: var(--space-5);
    color: var(--text-muted);
}

.crew-links-actions {
    display: grid;
    gap: var(--space-4);
}

.crew-link-card {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-4);
    min-height: 6rem;
    padding: var(--space-4);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(23, 17, 57, 0.7);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

.crew-link-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 38px rgba(0, 0, 0, 0.24);
}

.crew-link-whatsapp:hover {
    border-color: rgba(116, 242, 241, 0.64);
    background: rgba(16, 72, 78, 0.35);
}

.crew-link-album:hover {
    border-color: rgba(245, 155, 217, 0.62);
    background: rgba(87, 36, 95, 0.34);
}

.crew-link-icon {
    display: grid;
    width: 3.25rem;
    height: 3.25rem;
    place-items: center;
    border: 1px solid rgba(116, 242, 241, 0.54);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 1.35rem;
}

.crew-link-album .crew-link-icon {
    border-color: rgba(245, 155, 217, 0.55);
    color: var(--pink-soft);
}

.crew-link-card strong,
.crew-link-card small {
    display: block;
}

.crew-link-card strong {
    color: var(--text);
    font-size: var(--text-base);
}

.crew-link-card small {
    margin-top: 0.15rem;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.crew-link-arrow {
    color: var(--cyan);
    font-size: 1.4rem;
}

.crew-link-album .crew-link-arrow {
    color: var(--pink-soft);
}

.lineup-section {
    position: relative;
    padding-block: clamp(var(--space-16), 10vw, var(--space-32));
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 72% 46%, rgba(132, 86, 255, 0.16), transparent 26rem),
        radial-gradient(circle at 18% 12%, rgba(112, 239, 239, 0.1), transparent 18rem),
        #08061d;
}

.lineup-stars {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.6;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 10% 22%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 24% 72%, rgba(188, 251, 255, 0.85) 0 1px, transparent 1.5px),
        radial-gradient(circle at 43% 15%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 62% 78%, rgba(255, 194, 231, 0.86) 0 1px, transparent 1.5px),
        radial-gradient(circle at 82% 30%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 93% 68%, rgba(212, 189, 255, 0.82) 0 1.5px, transparent 2px);
}

.lineup-layout {
    display: grid;
    grid-template-columns: minmax(14rem, 0.7fr) minmax(0, 1fr);
    align-items: center;
    gap: clamp(var(--space-8), 9vw, var(--space-32));
}

.lineup-poster-wrap {
    width: min(100%, 26rem);
    justify-self: center;
    overflow: hidden;
    border: 1px solid rgba(217, 204, 255, 0.27);
    border-radius: var(--radius-lg);
    background: #171139;
    box-shadow: var(--shadow-lg), var(--glow-violet);
}

.lineup-poster {
    width: 100%;
    height: auto;
}

.lineup-poster-fallback {
    display: grid;
    min-height: 31rem;
    place-content: center;
    padding: var(--space-6);
    background:
        radial-gradient(circle at 50% 32%, rgba(255, 169, 224, 0.43), transparent 10%),
        radial-gradient(circle at 48% 54%, rgba(107, 239, 240, 0.3), transparent 26%),
        linear-gradient(145deg, #7555c6, #120f32 70%);
    color: var(--text);
    text-align: center;
}

.lineup-poster-fallback span {
    font-size: var(--text-lg);
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}

.lineup-poster-fallback strong {
    font-family: var(--font-display);
    font-size: clamp(5rem, 12vw, 8rem);
    font-weight: 600;
    letter-spacing: -0.09em;
    line-height: 1;
}

.lineup-copy h2 {
    max-width: 12ch;
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.055em;
}

.lineup-copy > p:not(.eyebrow):not(.lineup-credit) {
    max-width: 50ch;
    margin-top: var(--space-5);
    color: var(--text-muted);
    font-size: var(--text-lg);
}

.lineup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-8);
}

.lineup-status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-6);
    color: var(--gold);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.lineup-status .pulse-dot {
    background: var(--gold);
    box-shadow: 0 0 0 0 rgba(255, 217, 140, 0.65);
}

.lineup-credit {
    max-width: 48ch;
    margin-top: var(--space-5);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

@media (max-width: 70rem) {
    .crew-links-layout,
    .lineup-layout {
        grid-template-columns: 1fr;
    }

    .lineup-poster-wrap {
        justify-self: start;
        width: min(100%, 21rem);
    }
}

@media (max-width: 58rem) {
    .nav-whatsapp {
        justify-content: flex-start;
        padding-inline: var(--space-3);
        border-radius: var(--radius-sm);
    }
}

@media (max-width: 40rem) {
    .crew-link-card {
        grid-template-columns: 2.85rem minmax(0, 1fr) auto;
        gap: var(--space-3);
    }

    .crew-link-icon {
        width: 2.85rem;
        height: 2.85rem;
    }

    .crew-link-card small {
        font-size: var(--text-xs);
    }

    .lineup-poster-wrap {
        width: min(100%, 18rem);
    }
}
/* ==========================================================================
   Public accommodations + admin accommodations manager
   ========================================================================== */

.accommodations-section {
    position: relative;
    padding-block: clamp(var(--space-16), 10vw, var(--space-32));
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 14% 18%, rgba(116, 242, 241, 0.12), transparent 21rem),
        radial-gradient(circle at 85% 72%, rgba(245, 155, 217, 0.1), transparent 21rem),
        rgba(12, 9, 35, 0.68);
}

.accommodations-stars {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.58;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 9% 17%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 22% 68%, rgba(116, 242, 241, 0.85) 0 1px, transparent 1.5px),
        radial-gradient(circle at 41% 27%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 66% 13%, rgba(255, 194, 231, 0.82) 0 1px, transparent 1.5px),
        radial-gradient(circle at 82% 51%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 95% 84%, rgba(205, 185, 255, 0.82) 0 1.5px, transparent 2px);
}

.accommodations-heading-row {
    align-items: start;
}

.accommodation-group-list {
    display: grid;
    gap: var(--space-6);
    margin-top: var(--space-10);
}

.accommodation-group-card {
    padding: clamp(var(--space-5), 5vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 90% 12%, rgba(104, 236, 237, 0.12), transparent 17rem),
        rgba(24, 18, 57, 0.76);
    box-shadow: var(--shadow-lg);
}

.accommodation-group-card-rnr {
    background:
        radial-gradient(circle at 90% 12%, rgba(255, 203, 138, 0.13), transparent 17rem),
        rgba(37, 22, 62, 0.78);
}

.accommodation-group-top {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-5);
}

.accommodation-group-top h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.accommodation-address {
    margin-top: var(--space-2);
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.accommodation-map-link {
    display: inline-flex;
    min-height: 2.75rem;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--space-2);
    padding-inline: var(--space-3);
    border: 1px solid rgba(116, 242, 241, 0.42);
    border-radius: var(--radius-full);
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
}

.accommodation-map-link:hover {
    border-color: var(--cyan);
    background: rgba(116, 242, 241, 0.1);
}

.accommodation-dates {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-5);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.room-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.room-card {
    min-height: 10rem;
    padding: var(--space-4);
    border: 1px solid rgba(222, 211, 255, 0.15);
    border-radius: var(--radius-md);
    background: rgba(8, 6, 26, 0.4);
}

.room-label {
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.room-member-list {
    display: grid;
    gap: var(--space-2);
    margin-top: var(--space-4);
    list-style: none;
}

.room-member-list li {
    color: var(--text);
    font-size: var(--text-sm);
}

.room-member-list li::before {
    margin-right: var(--space-2);
    color: var(--violet);
    content: "✦";
}

.room-empty,
.accommodation-no-rooms {
    margin-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-sm);
}

.accommodation-rnr-divider {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--space-4);
    margin-top: clamp(var(--space-12), 8vw, var(--space-20));
}

.accommodation-rnr-divider span {
    height: 1px;
    background: var(--line);
}

.accommodation-rnr-divider p {
    color: var(--gold);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.accommodation-rnr-placeholder,
.accommodations-empty {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    margin-top: var(--space-8);
    padding: var(--space-5);
    border: 1px dashed rgba(196, 178, 246, 0.3);
    border-radius: var(--radius-md);
    background: rgba(14, 10, 36, 0.42);
}

.accommodation-rnr-placeholder {
    margin-top: var(--space-8);
}

.accommodation-rnr-placeholder > span,
.accommodations-empty > span {
    color: var(--gold);
    font-size: 1.3rem;
}

.accommodation-rnr-placeholder p,
.accommodations-empty p {
    color: var(--text-muted);
}

.accommodations-empty h3 {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

.admin-accommodation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
    gap: var(--space-5);
    margin-top: var(--space-8);
}

.admin-accommodation-card {
    display: flex;
    min-height: 15rem;
    flex-direction: column;
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background:
        linear-gradient(150deg, rgba(39, 28, 88, 0.64), rgba(13, 10, 36, 0.7));
}

.admin-accommodation-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
}

.admin-segment-label {
    display: inline-flex;
    min-height: 1.6rem;
    align-items: center;
    padding-inline: var(--space-2);
    border: 1px solid rgba(116, 242, 241, 0.4);
    border-radius: var(--radius-full);
    color: var(--cyan);
    font-size: var(--text-xs);
    font-weight: 700;
}

.admin-segment-rnr {
    border-color: rgba(255, 216, 142, 0.48);
    color: var(--gold);
}

.admin-accommodation-card h2 {
    margin-top: var(--space-5);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-accommodation-address {
    margin-top: var(--space-2);
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.admin-accommodation-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-5);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.admin-accommodation-card .text-link {
    margin-top: auto;
    padding-top: var(--space-6);
}

.admin-accommodation-editor {
    display: grid;
    gap: var(--space-6);
    margin-top: var(--space-8);
}

.admin-rooms-manager {
    margin-top: var(--space-10);
    padding: clamp(var(--space-5), 4vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background: rgba(18, 13, 47, 0.66);
}

.admin-add-room {
    margin-top: var(--space-6);
    padding: var(--space-5);
    border: 1px solid rgba(116, 242, 241, 0.2);
    border-radius: var(--radius-md);
    background: rgba(14, 48, 65, 0.24);
}

.admin-add-room form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 10rem auto;
    align-items: end;
    gap: var(--space-4);
}

.admin-add-room .field {
    margin-top: 0;
}

.admin-room-list {
    display: grid;
    gap: var(--space-5);
    margin-top: var(--space-6);
}

.admin-room-card {
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: rgba(9, 7, 28, 0.45);
}

.admin-room-card-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-4);
}

.admin-room-card-heading > div > span {
    display: block;
    margin-top: var(--space-1);
    color: var(--text-faint);
    font-size: var(--text-xs);
}

.admin-inline-delete {
    border: 0;
    background: transparent;
    color: var(--pink-soft);
    font-size: var(--text-xs);
    font-weight: 700;
}

.admin-inline-delete:hover {
    color: #ffb6dd;
}

.admin-room-empty {
    margin-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-sm);
}

.admin-room-member-list {
    display: grid;
    gap: var(--space-2);
    margin-top: var(--space-4);
    list-style: none;
}

.admin-room-member-list li {
    display: flex;
    min-height: 2.35rem;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: 1px solid rgba(220, 210, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(39, 28, 83, 0.36);
    color: var(--text);
    font-size: var(--text-sm);
}

.admin-room-member-list button {
    width: 1.7rem;
    height: 1.7rem;
    border: 0;
    border-radius: 50%;
    background: rgba(141, 47, 96, 0.44);
    color: #ffd2e9;
    font-size: 1.2rem;
    line-height: 1;
}

.admin-room-member-list button:hover {
    background: rgba(187, 56, 117, 0.64);
}

.admin-add-member-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto;
    align-items: end;
    gap: var(--space-3);
    margin-top: var(--space-5);
    padding-top: var(--space-5);
    border-top: 1px solid var(--line);
}

.admin-add-member-form .field {
    margin-top: 0;
}

.admin-member-or {
    padding-bottom: 0.8rem;
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
}

.admin-danger-zone {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
    margin-top: var(--space-10);
    padding: var(--space-6);
    border: 1px solid rgba(255, 152, 201, 0.28);
    border-radius: var(--radius-lg);
    background: rgba(74, 22, 55, 0.25);
}

.admin-danger-zone h2 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.admin-danger-zone p:not(.eyebrow) {
    max-width: 50ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

@media (max-width: 70rem) {
    .room-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-add-room form,
    .admin-add-member-form {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .admin-member-or {
        padding-bottom: 0;
        text-align: center;
    }
}

@media (max-width: 40rem) {
    .accommodation-group-top,
    .admin-danger-zone {
        align-items: stretch;
        flex-direction: column;
    }

    .accommodation-map-link {
        justify-content: center;
    }

    .room-grid {
        grid-template-columns: 1fr;
    }

    .admin-accommodation-grid {
        grid-template-columns: 1fr;
    }
}
/* ==========================================================================
   Full lineup browser + crew favorites
   ========================================================================== */

.lineup-intro-layout {
    display: grid;
    grid-template-columns: minmax(15rem, 25rem) minmax(0, 1fr);
    align-items: center;
    gap: clamp(var(--space-8), 7vw, var(--space-20));
}

.featured-lineup {
    margin-top: clamp(var(--space-12), 9vw, var(--space-24));
    padding-top: var(--space-8);
    border-top: 1px solid var(--line);
}

.featured-lineup-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.featured-lineup-heading h3,
.lineup-browser-top h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.featured-lineup-heading > p {
    max-width: 32ch;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.featured-artist-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.featured-artist-card {
    position: relative;
    min-height: 10.5rem;
    overflow: hidden;
    padding: var(--space-5);
    border: 1px solid rgba(116, 242, 241, 0.35);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 84% 16%, rgba(116, 242, 241, 0.2), transparent 9rem),
        linear-gradient(145deg, rgba(40, 31, 91, 0.75), rgba(12, 9, 35, 0.85));
}

.featured-artist-star {
    display: block;
    color: var(--cyan);
    font-size: 1.3rem;
    text-shadow: var(--glow-cyan);
}

.featured-artist-card h4 {
    max-width: 18ch;
    margin-top: var(--space-5);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.035em;
    line-height: 1.1;
}

.artist-meta-row,
.artist-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.artist-meta-row span,
.artist-card-meta span {
    padding: 0.2rem 0.45rem;
    border: 1px solid rgba(220, 208, 255, 0.2);
    border-radius: var(--radius-full);
    color: var(--text-muted);
    font-size: var(--text-xs);
}

.lineup-browser {
    margin-top: clamp(var(--space-12), 9vw, var(--space-24));
    padding: clamp(var(--space-5), 5vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 93% 3%, rgba(167, 122, 255, 0.14), transparent 18rem),
        rgba(18, 13, 48, 0.72);
    box-shadow: var(--shadow-lg);
}

.lineup-browser-top {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.lineup-browser-count {
    color: var(--text-faint);
    font-size: var(--text-sm);
}

.lineup-browser-count span {
    color: var(--cyan);
    font-weight: 700;
}

.lineup-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-5);
    margin-top: var(--space-6);
    padding-top: var(--space-6);
    border-top: 1px solid var(--line);
}

.lineup-search {
    position: relative;
    display: block;
}

.lineup-search-icon {
    position: absolute;
    top: 50%;
    left: var(--space-4);
    color: var(--text-faint);
    font-size: 1.25rem;
    transform: translateY(-50%);
}

.lineup-search input {
    width: 100%;
    min-height: 3.1rem;
    padding: 0.75rem var(--space-4) 0.75rem 2.9rem;
    border: 1px solid rgba(220, 208, 255, 0.25);
    border-radius: var(--radius-full);
    outline: none;
    background: rgba(7, 5, 24, 0.64);
    color: var(--text);
    font-size: var(--text-base);
}

.lineup-search input::placeholder {
    color: var(--text-faint);
}

.lineup-search input:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(116, 242, 241, 0.12);
}

.lineup-filter-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
}

.lineup-filter {
    min-height: 2.65rem;
    padding-inline: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-full);
    background: rgba(12, 9, 34, 0.45);
    color: var(--text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}

.lineup-filter:hover:not(:disabled),
.lineup-filter.is-active {
    border-color: rgba(116, 242, 241, 0.58);
    background: rgba(20, 81, 88, 0.35);
    color: var(--cyan);
}

.lineup-filter:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.lineup-filter span {
    margin-left: var(--space-1);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 400;
}

.lineup-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.lineup-artist-card {
    display: flex;
    min-height: 11rem;
    flex-direction: column;
    padding: var(--space-4);
    border: 1px solid rgba(220, 208, 255, 0.13);
    border-radius: var(--radius-md);
    background: rgba(8, 6, 26, 0.44);
}

.lineup-artist-card[hidden] {
    display: none;
}

.lineup-artist-card:hover {
    border-color: rgba(181, 156, 255, 0.42);
    background: rgba(48, 34, 102, 0.48);
    transform: translateY(-2px);
}

.lineup-artist-card-top {
    display: flex;
    min-height: 1.55rem;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-2);
}

.artist-index {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.artist-featured-label {
    display: inline-flex;
    min-height: 1.5rem;
    align-items: center;
    padding-inline: var(--space-2);
    border: 1px solid rgba(116, 242, 241, 0.42);
    border-radius: var(--radius-full);
    color: var(--cyan);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.artist-external-link {
    color: var(--cyan);
    font-size: 1.1rem;
    line-height: 1;
}

.artist-external-link:hover {
    color: #c5ffff;
    transform: translate(1px, -1px);
}

.lineup-artist-card h4 {
    margin-top: var(--space-4);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.artist-card-meta {
    margin-top: auto;
    padding-top: var(--space-4);
}

.artist-card-coming {
    margin-top: auto;
    padding-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-xs);
    line-height: 1.4;
}

.lineup-no-results {
    display: grid;
    place-items: center;
    gap: var(--space-3);
    margin-top: var(--space-6);
    padding: var(--space-10);
    border: 1px dashed rgba(176, 156, 240, 0.3);
    border-radius: var(--radius-md);
    color: var(--text-muted);
    text-align: center;
}

.lineup-no-results span {
    color: var(--cyan);
    font-size: 1.7rem;
}

@media (max-width: 70rem) {
    .featured-artist-grid,
    .lineup-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lineup-controls {
        grid-template-columns: 1fr;
    }

    .lineup-filter-row {
        justify-content: flex-start;
    }
}

@media (max-width: 52rem) {
    .featured-lineup-heading,
    .lineup-browser-top {
        align-items: start;
        flex-direction: column;
    }

    .featured-artist-grid,
    .lineup-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 34rem) {
    .featured-artist-grid,
    .lineup-grid {
        grid-template-columns: 1fr;
    }

    .lineup-filter-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lineup-filter {
        width: 100%;
    }
}

.lineup-day-switcher-label {
    grid-column: 1 / -1;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: calc(var(--space-2) * -1);
}

.lineup-day-switcher-label > span {
    color: var(--text);
    font-size: var(--text-sm);
    font-weight: 700;
}

.lineup-day-switcher-label small {
    color: var(--text-faint);
    font-size: var(--text-xs);
}

@media (max-width: 44rem) {
    .lineup-day-switcher-label {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--space-1);
    }
}

/* ==========================================================================
   Searchable Dreamstate lineup browser
   ========================================================================== */

.lineup-browser {
    margin-top: clamp(var(--space-12), 9vw, var(--space-24));
    padding: clamp(var(--space-5), 5vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 93% 3%, rgba(167, 122, 255, 0.14), transparent 18rem),
        rgba(18, 13, 48, 0.72);
    box-shadow: var(--shadow-lg);
}

.lineup-browser-top {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-6);
}

.lineup-browser-top h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.lineup-browser-count {
    color: var(--text-faint);
    font-size: var(--text-sm);
}

.lineup-browser-count span {
    color: var(--cyan);
    font-weight: 700;
}

.lineup-controls {
    display: grid;
    grid-template-columns: minmax(15rem, 1fr) auto;
    align-items: center;
    gap: var(--space-5);
    margin-top: var(--space-6);
    padding-top: var(--space-6);
    border-top: 1px solid var(--line);
}

.lineup-search {
    position: relative;
    display: block;
}

.lineup-search-icon {
    position: absolute;
    top: 50%;
    left: var(--space-4);
    color: var(--text-faint);
    font-size: 1.25rem;
    transform: translateY(-50%);
}

.lineup-search input {
    width: 100%;
    min-height: 3.1rem;
    padding: 0.75rem var(--space-4) 0.75rem 2.9rem;
    border: 1px solid rgba(220, 208, 255, 0.25);
    border-radius: var(--radius-full);
    outline: none;
    background: rgba(7, 5, 24, 0.64);
    color: var(--text);
    font-size: var(--text-base);
}

.lineup-search input::placeholder {
    color: var(--text-faint);
}

.lineup-search input:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(116, 242, 241, 0.12);
}

.lineup-filter-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--space-2);
}

.lineup-filter {
    min-height: 2.65rem;
    padding-inline: var(--space-3);
    border: 1px solid var(--line);
    border-radius: var(--radius-full);
    background: rgba(12, 9, 34, 0.45);
    color: var(--text-muted);
    font-size: var(--text-sm);
    font-weight: 700;
}

.lineup-filter:hover:not(:disabled),
.lineup-filter.is-active {
    border-color: rgba(116, 242, 241, 0.58);
    background: rgba(20, 81, 88, 0.35);
    color: var(--cyan);
}

.lineup-filter:disabled {
    cursor: not-allowed;
    opacity: 0.48;
}

.lineup-filter span {
    margin-left: var(--space-1);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 400;
}

.lineup-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-6);
}

.lineup-artist-card {
    display: flex;
    min-height: 11rem;
    flex-direction: column;
    padding: var(--space-4);
    border: 1px solid rgba(220, 208, 255, 0.13);
    border-radius: var(--radius-md);
    background: rgba(8, 6, 26, 0.44);
}

.lineup-artist-card[hidden] {
    display: none;
}

.lineup-artist-card:hover {
    border-color: rgba(181, 156, 255, 0.42);
    background: rgba(48, 34, 102, 0.48);
    transform: translateY(-2px);
}

.lineup-artist-card-top {
    display: flex;
    min-height: 1.55rem;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-2);
}

.artist-index {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
}

.artist-featured-label {
    display: inline-flex;
    min-height: 1.5rem;
    align-items: center;
    padding-inline: var(--space-2);
    border: 1px solid rgba(116, 242, 241, 0.42);
    border-radius: var(--radius-full);
    color: var(--cyan);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.lineup-artist-card h4 {
    margin-top: var(--space-4);
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-base);
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.artist-card-coming {
    margin-top: auto;
    padding-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-xs);
    line-height: 1.4;
}

.lineup-no-results {
    display: grid;
    place-items: center;
    gap: var(--space-3);
    margin-top: var(--space-6);
    padding: var(--space-10);
    border: 1px dashed rgba(176, 156, 240, 0.3);
    border-radius: var(--radius-md);
    color: var(--text-muted);
    text-align: center;
}

.lineup-no-results span {
    color: var(--cyan);
    font-size: 1.7rem;
}

@media (max-width: 70rem) {
    .lineup-controls {
        grid-template-columns: 1fr;
    }

    .lineup-filter-row {
        justify-content: flex-start;
    }

    .lineup-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 52rem) {
    .lineup-browser-top {
        align-items: start;
        flex-direction: column;
    }

    .lineup-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 34rem) {
    .lineup-grid {
        grid-template-columns: 1fr;
    }

    .lineup-filter-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lineup-filter {
        width: 100%;
    }
}
/* Emergency reveal fallback ... keeps page content visible if JavaScript fails */
[data-reveal] {
    opacity: 1 !important;
    transform: none !important;
}
/* ==========================================================================
   Mobile lineup emergency layout correction
   ========================================================================== */

.lineup-intro-layout,
.lineup-copy,
.lineup-copy > * {
    min-width: 0;
}

@media (max-width: 46rem) {
    .lineup-intro-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-8);
    }

    .lineup-poster-wrap {
        justify-self: center;
        width: min(100%, 20rem);
        max-width: 100%;
    }

    .lineup-copy {
        width: 100%;
        max-width: 100%;
    }

    .lineup-copy h2 {
        max-width: 12ch;
        overflow-wrap: anywhere;
    }

    .lineup-copy > p:not(.eyebrow):not(.lineup-credit) {
        max-width: 100%;
    }

    .lineup-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .lineup-actions .button {
        width: 100%;
        max-width: 100%;
        white-space: normal;
    }

    .lineup-status,
    .lineup-credit {
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}
/* ==========================================================================
   Public accommodations
   ========================================================================== */

.accommodations-section {
    position: relative;
    padding-block: clamp(var(--space-16), 10vw, var(--space-32));
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 14% 18%, rgba(116, 242, 241, 0.12), transparent 21rem),
        radial-gradient(circle at 85% 72%, rgba(245, 155, 217, 0.1), transparent 21rem),
        rgba(12, 9, 35, 0.68);
}

.accommodations-stars {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.58;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 9% 17%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 22% 68%, rgba(116, 242, 241, 0.85) 0 1px, transparent 1.5px),
        radial-gradient(circle at 41% 27%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 66% 13%, rgba(255, 194, 231, 0.82) 0 1px, transparent 1.5px),
        radial-gradient(circle at 82% 51%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 95% 84%, rgba(205, 185, 255, 0.82) 0 1.5px, transparent 2px);
}

.accommodations-heading-row {
    align-items: start;
}

.accommodation-group-list {
    display: grid;
    gap: var(--space-6);
    margin-top: var(--space-10);
}

.accommodation-group-card {
    padding: clamp(var(--space-5), 5vw, var(--space-8));
    border: 1px solid var(--line);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 90% 12%, rgba(104, 236, 237, 0.12), transparent 17rem),
        rgba(24, 18, 57, 0.76);
    box-shadow: var(--shadow-lg);
}

.accommodation-group-card-rnr {
    background:
        radial-gradient(circle at 90% 12%, rgba(255, 203, 138, 0.13), transparent 17rem),
        rgba(37, 22, 62, 0.78);
}

.accommodation-group-top {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--space-5);
}

.accommodation-group-top h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.accommodation-address {
    margin-top: var(--space-2);
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.accommodation-map-link {
    display: inline-flex;
    min-height: 2.75rem;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--space-2);
    padding-inline: var(--space-3);
    border: 1px solid rgba(116, 242, 241, 0.42);
    border-radius: var(--radius-full);
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
}

.accommodation-map-link:hover {
    border-color: var(--cyan);
    background: rgba(116, 242, 241, 0.1);
}

.accommodation-dates {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-5);
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.room-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
}

.room-card {
    min-height: 10rem;
    padding: var(--space-4);
    border: 1px solid rgba(222, 211, 255, 0.15);
    border-radius: var(--radius-md);
    background: rgba(8, 6, 26, 0.4);
}

.room-label {
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.room-member-list {
    display: grid;
    gap: var(--space-2);
    margin-top: var(--space-4);
    list-style: none;
}

.room-member-list li {
    color: var(--text);
    font-size: var(--text-sm);
}

.room-member-list li::before {
    margin-right: var(--space-2);
    color: var(--violet);
    content: "✦";
}

.room-empty,
.accommodation-no-rooms {
    margin-top: var(--space-4);
    color: var(--text-faint);
    font-size: var(--text-sm);
}

.accommodation-rnr-divider {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: var(--space-4);
    margin-top: clamp(var(--space-12), 8vw, var(--space-20));
}

.accommodation-rnr-divider span {
    height: 1px;
    background: var(--line);
}

.accommodation-rnr-divider p {
    color: var(--gold);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.accommodation-rnr-placeholder,
.accommodations-empty {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    margin-top: var(--space-8);
    padding: var(--space-5);
    border: 1px dashed rgba(196, 178, 246, 0.3);
    border-radius: var(--radius-md);
    background: rgba(14, 10, 36, 0.42);
}

.accommodation-rnr-placeholder > span,
.accommodations-empty > span {
    color: var(--gold);
    font-size: 1.3rem;
}

.accommodation-rnr-placeholder p,
.accommodations-empty p {
    color: var(--text-muted);
}

.accommodations-empty h3 {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
}

@media (max-width: 70rem) {
    .room-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 40rem) {
    .accommodation-group-top {
        align-items: stretch;
        flex-direction: column;
    }

    .accommodation-map-link {
        justify-content: center;
    }

    .room-grid {
        grid-template-columns: 1fr;
    }
}
/* ==========================================================================
   Prevent accidental mobile horizontal scrolling
   ========================================================================== */

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

.site-shell,
main,
section,
.page-width {
    max-width: 100%;
}

/* ==========================================================================
   Lineup progressive disclosure drawer
   ========================================================================== */

.lineup-drawer {
    margin-top: clamp(var(--space-10), 8vw, var(--space-20));
    border: 1px solid rgba(116, 242, 241, 0.2);
    border-radius: var(--radius-xl);
    background:
        radial-gradient(circle at 92% 22%, rgba(106, 235, 237, 0.1), transparent 17rem),
        rgba(15, 11, 42, 0.58);
    overflow: hidden;
}

.lineup-drawer-intro {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-8);
    padding: clamp(var(--space-5), 5vw, var(--space-8));
}

.lineup-drawer-intro h3 {
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    letter-spacing: -0.045em;
}

.lineup-drawer-intro > div > p:not(.eyebrow) {
    max-width: 51ch;
    margin-top: var(--space-3);
    color: var(--text-muted);
}

.button-lineup-toggle {
    flex: 0 0 auto;
    border-color: rgba(116, 242, 241, 0.58);
    background: rgba(18, 81, 88, 0.32);
    color: var(--cyan);
}

.button-lineup-toggle:hover {
    border-color: var(--cyan);
    background: rgba(25, 107, 114, 0.46);
}

.lineup-drawer .lineup-browser {
    margin-top: 0;
    border-top: 1px solid var(--line);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: none;
}

.lineup-close-link {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-6);
    border: 0;
    background: transparent;
    color: var(--cyan);
    font-size: var(--text-sm);
    font-weight: 700;
}

.lineup-close-link:hover {
    color: #c4ffff;
}

@media (max-width: 52rem) {
    .lineup-drawer-intro {
        align-items: stretch;
        flex-direction: column;
        gap: var(--space-5);
    }

    .button-lineup-toggle {
        width: 100%;
    }
}
/* ==========================================================================
   R&R: The Sunday Side Quest
   Sunrise afterglow + celestial roller coaster visual system
   ========================================================================== */

.rnr-section {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 15% 22%, rgba(255, 190, 135, 0.22), transparent 22rem),
        radial-gradient(circle at 84% 70%, rgba(102, 232, 228, 0.16), transparent 25rem),
        radial-gradient(circle at 53% 105%, rgba(255, 123, 162, 0.22), transparent 27rem),
        linear-gradient(145deg, #231335 0%, #4b2c58 48%, #76505e 100%);
}

.rnr-section::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.34;
    pointer-events: none;
    background:
        linear-gradient(
            180deg,
            rgba(10, 7, 27, 0.18) 0%,
            transparent 26%,
            rgba(255, 205, 148, 0.08) 100%
        );
    content: "";
}

.rnr-stars {
    opacity: 0.48;
    background-image:
        radial-gradient(circle at 8% 19%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 19% 47%, rgba(255, 235, 188, 0.95) 0 1px, transparent 1.5px),
        radial-gradient(circle at 37% 11%, rgba(196, 255, 251, 0.86) 0 1.5px, transparent 2px),
        radial-gradient(circle at 57% 29%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 76% 13%, rgba(255, 206, 235, 0.9) 0 1px, transparent 1.5px),
        radial-gradient(circle at 91% 48%, #fff 0 1.5px, transparent 2px);
}

.rnr-coaster-scene {
    position: absolute;
    z-index: -1;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.rnr-sunrise-glow {
    position: absolute;
    top: 3rem;
    right: 8%;
    width: clamp(12rem, 27vw, 25rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(255, 237, 185, 0.4) 0%, rgba(255, 183, 122, 0.22) 30%, rgba(255, 132, 170, 0.05) 62%, transparent 72%);
    filter: blur(1px);
}

.rnr-coaster-track {
    position: absolute;
    width: 115%;
    height: clamp(13rem, 30vw, 26rem);
    border: 1px solid rgba(255, 223, 160, 0.38);
    border-radius: 50%;
    transform-origin: center;
}

.rnr-coaster-track-main {
    top: -5rem;
    left: -14%;
    box-shadow:
        0 0 0 1px rgba(119, 244, 236, 0.08),
        0 0 28px rgba(255, 207, 143, 0.12);
    transform: rotate(-14deg);
}

.rnr-coaster-track-secondary {
    top: 4rem;
    left: -10%;
    height: clamp(10rem, 20vw, 18rem);
    border-color: rgba(130, 243, 237, 0.26);
    transform: rotate(12deg);
}

.rnr-coaster-track-main::before,
.rnr-coaster-track-secondary::before {
    position: absolute;
    top: -0.22rem;
    right: 8%;
    left: 8%;
    height: 0.32rem;
    border-radius: var(--radius-full);
    background:
        repeating-linear-gradient(
            90deg,
            rgba(255, 231, 180, 0.7) 0 0.22rem,
            transparent 0.22rem 1rem
        );
    content: "";
}

.rnr-coaster-track-secondary::before {
    background:
        repeating-linear-gradient(
            90deg,
            rgba(127, 245, 239, 0.6) 0 0.2rem,
            transparent 0.2rem 0.9rem
        );
}

.rnr-coaster-star {
    position: absolute;
    color: #ffe5a4;
    text-shadow: 0 0 18px rgba(255, 216, 145, 0.52);
}

.rnr-coaster-star-one {
    top: 12%;
    left: 14%;
    font-size: 1.5rem;
}

.rnr-coaster-star-two {
    top: 30%;
    right: 22%;
    color: #b8ffff;
    font-size: 1.15rem;
}

.rnr-coaster-star-three {
    top: 56%;
    left: 8%;
    color: #ffc3e6;
    font-size: 1rem;
}

.rnr-coaster-car {
    position: absolute;
    width: 0.56rem;
    height: 0.56rem;
    border-radius: 50%;
    background: #fff0b8;
    box-shadow:
        0 0 0 0.2rem rgba(255, 205, 134, 0.13),
        0 0 14px rgba(255, 221, 157, 0.78);
}

.rnr-coaster-car-one {
    top: 20%;
    left: 32%;
}

.rnr-coaster-car-two {
    top: 16%;
    left: 34%;
    background: #baffff;
    box-shadow:
        0 0 0 0.2rem rgba(122, 247, 240, 0.12),
        0 0 14px rgba(125, 245, 239, 0.7);
}

.rnr-coaster-car-three {
    top: 19%;
    left: 36%;
    background: #ffcae7;
    box-shadow:
        0 0 0 0.2rem rgba(255, 185, 223, 0.12),
        0 0 14px rgba(255, 185, 223, 0.72);
}

.rnr-heading {
    position: relative;
}

.rnr-kicker {
    color: #ffe1a4;
}

.rnr-heading h2 {
    max-width: 12ch;
    color: #fff4eb;
    text-shadow: 0 8px 30px rgba(45, 20, 61, 0.24);
}

.rnr-lead {
    color: #f2d9df !important;
}

.rnr-heading .rnr-destination {
    border-top-color: rgba(255, 229, 177, 0.31);
}

.rnr-heading .destination-mark {
    border-color: rgba(255, 221, 152, 0.72);
    background: rgba(134, 85, 62, 0.21);
    color: #ffe2a0;
    box-shadow: 0 0 25px rgba(255, 203, 130, 0.2);
}

.rnr-heading .fact-label {
    color: #e4bfc8;
}

.rnr-heading .rnr-destination strong {
    color: #fff3e8;
}

.rnr-heading .rnr-destination span:last-child {
    color: #f1d4d9;
}

.rnr-timeline {
    border-color: rgba(255, 219, 166, 0.24);
    background: rgba(59, 31, 69, 0.62);
}

.rnr-timeline .timeline-item {
    border-bottom-color: rgba(255, 230, 194, 0.16);
}

.rnr-timeline .timeline-day {
    border-color: rgba(255, 218, 158, 0.52);
    background: rgba(104, 60, 85, 0.3);
    color: #ffe3a8;
}

.rnr-timeline .timeline-item div > span {
    color: #e8bdc6;
}

.rnr-timeline .timeline-item strong {
    color: #fff3ec;
}

.rnr-timeline .timeline-item-highlight {
    background:
        linear-gradient(
            90deg,
            rgba(255, 185, 133, 0.24),
            rgba(118, 239, 233, 0.12)
        ),
        rgba(113, 61, 85, 0.54);
}

.rnr-timeline .timeline-item-highlight .timeline-day {
    border-color: rgba(255, 236, 179, 0.8);
    background: rgba(151, 86, 79, 0.4);
    color: #fff0b8;
}

.rnr-participant-card,
.rnr-logistics-card {
    border-color: rgba(255, 224, 173, 0.2);
    background:
        radial-gradient(circle at 90% 18%, rgba(255, 196, 145, 0.13), transparent 12rem),
        rgba(57, 31, 70, 0.58);
}

.rnr-logistics-card {
    background:
        radial-gradient(circle at 84% 17%, rgba(123, 245, 237, 0.15), transparent 11rem),
        rgba(53, 29, 66, 0.62);
}

.rnr-participant-card h3,
.rnr-logistics-card h3 {
    color: #fff2e9;
}

.rnr-participant-card .eyebrow,
.rnr-logistics-card .eyebrow {
    color: #ffe1a4;
}

.rnr-muted,
.rnr-logistics-card > p:not(.eyebrow) {
    color: #ead0d8;
}

.rnr-list-label {
    color: #e8bdc6;
}

.rnr-section .name-list li {
    border-color: rgba(130, 246, 239, 0.4);
    background: rgba(24, 89, 90, 0.18);
    color: #cafffb;
}

.rnr-section .name-list-maybe li {
    border-color: rgba(255, 221, 152, 0.5);
    background: rgba(101, 62, 53, 0.25);
    color: #ffe5b0;
}

.rnr-section .text-link {
    color: #bafff8;
}

.rnr-section .text-link:hover {
    color: #ebffff;
}

.rnr-section .logistics-status {
    color: #ffe4a7;
}

.rnr-section .logistics-status .pulse-dot {
    background: #ffe4a7;
    box-shadow: 0 0 0 0 rgba(255, 228, 167, 0.65);
}

@media (max-width: 52rem) {
    .rnr-coaster-track-main {
        top: -3rem;
        left: -32%;
        width: 158%;
    }

    .rnr-coaster-track-secondary {
        top: 7rem;
        left: -34%;
        width: 150%;
    }

    .rnr-sunrise-glow {
        top: 5rem;
        right: -4rem;
        width: 17rem;
    }

    .rnr-coaster-car-one {
        top: 17%;
        left: 33%;
    }

    .rnr-coaster-car-two {
        top: 14%;
        left: 35%;
    }

    .rnr-coaster-car-three {
        top: 16%;
        left: 37%;
    }
}

@media (max-width: 40rem) {
    .rnr-section {
        background:
            radial-gradient(circle at 18% 9%, rgba(255, 194, 141, 0.2), transparent 15rem),
            radial-gradient(circle at 87% 48%, rgba(110, 240, 234, 0.12), transparent 17rem),
            linear-gradient(155deg, #29163e 0%, #55325a 54%, #77525f 100%);
    }

    .rnr-coaster-track-main {
        top: 0;
        left: -52%;
        width: 205%;
        height: 13rem;
    }

    .rnr-coaster-track-secondary {
        top: 4rem;
        left: -48%;
        width: 190%;
        height: 10rem;
    }

    .rnr-coaster-star-one {
        top: 9%;
        left: 12%;
    }

    .rnr-coaster-star-two {
        top: 18%;
        right: 11%;
    }

    .rnr-coaster-star-three {
        display: none;
    }

    .rnr-heading h2 {
        max-width: 11ch;
    }
}
/* ==========================================================================
   Crew Toolkit
   Compact trip utilities: conversation, memories, official info, travel
   ========================================================================== */

.crew-toolkit-section {
    position: relative;
    overflow: hidden;
    padding-block: clamp(var(--space-16), 9vw, var(--space-28));
    isolation: isolate;
    border-top: 1px solid var(--line);
    background:
        radial-gradient(circle at 9% 18%, rgba(116, 242, 241, 0.1), transparent 20rem),
        radial-gradient(circle at 92% 70%, rgba(168, 130, 255, 0.13), transparent 22rem),
        rgba(11, 8, 31, 0.72);
}

.crew-toolkit-stars {
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.5;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 8% 27%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 22% 69%, rgba(116, 242, 241, 0.85) 0 1px, transparent 1.5px),
        radial-gradient(circle at 39% 16%, #fff 0 1.5px, transparent 2px),
        radial-gradient(circle at 58% 78%, rgba(207, 182, 255, 0.8) 0 1px, transparent 1.5px),
        radial-gradient(circle at 76% 24%, #fff 0 1px, transparent 1.5px),
        radial-gradient(circle at 91% 48%, rgba(255, 194, 231, 0.78) 0 1px, transparent 1.5px);
}

.crew-toolkit-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-8);
}

.crew-toolkit-heading h2 {
    max-width: 14ch;
    margin-top: var(--space-3);
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: 600;
    letter-spacing: -0.055em;
}

.crew-toolkit-heading > p {
    max-width: 38ch;
    color: var(--text-muted);
}

.crew-toolkit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-8);
}

.toolkit-card {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) auto;
    min-height: 9.5rem;
    align-items: start;
    gap: var(--space-4);
    padding: var(--space-5);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    background: rgba(22, 16, 52, 0.66);
}

a.toolkit-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

.toolkit-card-whatsapp:hover {
    border-color: rgba(116, 242, 241, 0.6);
    background: rgba(18, 75, 79, 0.36);
}

.toolkit-card-album:hover {
    border-color: rgba(245, 155, 217, 0.58);
    background: rgba(91, 37, 101, 0.33);
}

.toolkit-card-official:hover {
    border-color: rgba(184, 159, 255, 0.6);
    background: rgba(62, 44, 117, 0.35);
}

.toolkit-card-notes {
    background:
        radial-gradient(circle at 88% 20%, rgba(255, 216, 145, 0.12), transparent 11rem),
        rgba(33, 23, 61, 0.68);
}

.toolkit-card-icon {
    display: grid;
    width: 3rem;
    height: 3rem;
    place-items: center;
    border: 1px solid rgba(116, 242, 241, 0.47);
    border-radius: 50%;
    color: var(--cyan);
    font-size: 1.25rem;
}

.toolkit-card-album .toolkit-card-icon {
    border-color: rgba(245, 155, 217, 0.5);
    color: var(--pink-soft);
}

.toolkit-card-official .toolkit-card-icon {
    border-color: rgba(184, 159, 255, 0.52);
    color: var(--violet-bright);
}

.toolkit-card-notes .toolkit-card-icon {
    border-color: rgba(255, 217, 140, 0.5);
    color: var(--gold);
}

.toolkit-card-copy {
    display: grid;
    gap: var(--space-1);
    min-width: 0;
}

.toolkit-card-kicker {
    color: var(--text-faint);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.toolkit-card strong {
    color: var(--text);
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.toolkit-card small {
    max-width: 45ch;
    color: var(--text-muted);
    font-size: var(--text-sm);
    line-height: 1.45;
}

.toolkit-card-arrow {
    color: var(--cyan);
    font-size: 1.35rem;
    line-height: 1;
}

.toolkit-card-album .toolkit-card-arrow {
    color: var(--pink-soft);
}

.toolkit-card-official .toolkit-card-arrow {
    color: var(--violet-bright);
}

.crew-toolkit-update {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-top: var(--space-5);
    padding: var(--space-4) var(--space-5);
    border: 1px solid rgba(116, 242, 241, 0.2);
    border-radius: var(--radius-md);
    background: rgba(13, 52, 67, 0.2);
}

.crew-toolkit-update > span {
    color: var(--cyan);
}

.crew-toolkit-update p {
    color: var(--text-muted);
    font-size: var(--text-sm);
}

@media (max-width: 60rem) {
    .crew-toolkit-heading {
        align-items: start;
        flex-direction: column;
        gap: var(--space-4);
    }
}

@media (max-width: 44rem) {
    .crew-toolkit-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 34rem) {
    .toolkit-card {
        grid-template-columns: 2.7rem minmax(0, 1fr) auto;
        gap: var(--space-3);
        min-height: 0;
        padding: var(--space-4);
    }

    .toolkit-card-icon {
        width: 2.7rem;
        height: 2.7rem;
    }

    .toolkit-card strong {
        font-size: var(--text-base);
    }

    .toolkit-card small {
        font-size: var(--text-xs);
    }
}
/* Only show the lineup empty-state when JavaScript explicitly removes [hidden] */
.lineup-no-results[hidden] {
    display: none !important;
}
/* ==========================================================================
   Lineup day assignments
   ========================================================================== */

.artist-day-badge {
    display: inline-flex;
    min-height: 1.5rem;
    align-items: center;
    padding-inline: var(--space-2);
    border: 1px solid transparent;
    border-radius: var(--radius-full);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
}

.artist-day-friday {
    border-color: rgba(116, 242, 241, 0.48);
    background: rgba(16, 80, 87, 0.28);
    color: #bafffb;
}

.artist-day-saturday {
    border-color: rgba(245, 155, 217, 0.48);
    background: rgba(104, 39, 96, 0.28);
    color: #ffd0ed;
}

.lineup-artist-card-top {
    align-items: flex-start;
}

.lineup-artist-card-top .artist-featured-label,
.lineup-artist-card-top .artist-index {
    margin-left: auto;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon {
    background: transparent;
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before {
    top: 0;
    background: var(--cyan);
    transform: rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after {
    top: 0;
    background: var(--cyan);
    transform: rotate(-45deg);
}
/* ==========================================================================
   Final mobile hamburger override
   This intentionally overrides older duplicate nav-toggle rules above.
   ========================================================================== */

@media (max-width: 58rem) {
    button.nav-toggle {
        position: relative !important;
        display: grid !important;
        width: 2.9rem !important;
        height: 2.9rem !important;
        place-items: center !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    button.nav-toggle .nav-toggle-icon {
        position: relative !important;
        display: block !important;
        width: 1.3rem !important;
        height: 2px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: var(--text) !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    button.nav-toggle .nav-toggle-icon::before,
    button.nav-toggle .nav-toggle-icon::after {
        position: absolute !important;
        left: 0 !important;
        display: block !important;
        width: 1.3rem !important;
        height: 2px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: var(--text) !important;
        content: "" !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    button.nav-toggle .nav-toggle-icon::before {
        top: -0.42rem !important;
    }

    button.nav-toggle .nav-toggle-icon::after {
        top: 0.42rem !important;
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-icon {
        background: transparent !important;
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before {
        top: 0 !important;
        background: var(--cyan) !important;
        transform: rotate(45deg) !important;
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after {
        top: 0 !important;
        background: var(--cyan) !important;
        transform: rotate(-45deg) !important;
    }
}
/* ==========================================================================
   Final mobile nav icon ... inline SVG version
   ========================================================================== */

@media (max-width: 58rem) {
    button.nav-toggle {
        position: relative !important;
        display: grid !important;
        width: 2.9rem !important;
        height: 2.9rem !important;
        place-items: center !important;
        padding: 0 !important;
    }

    button.nav-toggle .nav-toggle-svg {
        display: block !important;
        width: 1.55rem !important;
        height: 1.55rem !important;
        overflow: visible !important;
    }

    button.nav-toggle .nav-toggle-bar {
        fill: none !important;
        stroke: #f5f2ff !important;
        stroke-width: 2.4 !important;
        stroke-linecap: round !important;
        transform-box: fill-box;
        transform-origin: center;
        transition:
            transform var(--transition),
            opacity var(--transition),
            stroke var(--transition);
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-bar {
        stroke: var(--cyan) !important;
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-bar-top {
        transform: translateY(5px) rotate(45deg);
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-bar-middle {
        opacity: 0;
    }

    button.nav-toggle[aria-expanded="true"] .nav-toggle-bar-bottom {
        transform: translateY(-5px) rotate(-45deg);
    }
}
/* Compact Crew favorites: show more artists without a tall section */
.featured-artist-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: var(--space-3) !important;
    margin-top: var(--space-5) !important;
}

.featured-artist-card {
    display: flex;
    min-height: 4.75rem !important;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) !important;
    border-radius: var(--radius-md) !important;
}

.featured-artist-star {
    flex: 0 0 auto;
    margin: 0;
    font-size: 0.85rem !important;
}

.featured-artist-card h4 {
    max-width: none;
    margin-top: 0 !important;
    font-size: var(--text-sm) !important;
    line-height: 1.1;
}

@media (max-width: 70rem) {
    .featured-artist-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 52rem) {
    .featured-artist-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 34rem) {
    .featured-artist-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .featured-artist-card {
        min-height: 4.5rem !important;
    }
}