:root {
    color-scheme: dark;
    --vv-bg: #050507;
    --vv-surface: #0c0b10;
    --vv-text: #f4f1ec;
    --vv-muted: #aaa4af;
    --vv-violet: #9d72ff;
    --vv-violet-secondary: #6b43bd;
    --vv-heading-font: "Montserrat", Arial, sans-serif;
    --vv-body-font: "Montserrat", Arial, sans-serif;
    --vv-brand-font: "Vina Sans", "Montserrat", Arial, sans-serif;
    --vv-heading-weight: 600;
    --vv-body-weight: 400;
    --vv-body-size: 26px;
    --vv-display-size: 88px;
    --vv-title-size: 58px;
    --vv-brand-size: 24px;
    --vv-body-line-height: 1.55;
    --vv-gutter: clamp(1.15rem, 3vw, 3rem);
    --vv-content-vw: 40vw;
    --vv-fade-top: 18vh;
    --vv-fade-bottom: 18vh;
    --vv-focal-x: 50%;
    --vv-focal-y: 50%;
    --vv-mobile-focal-x: 50%;
    --vv-mobile-focal-y: 50%;
}

.primary-navigation {
    display: flex;
    align-items: center;
    gap: clamp(0.7rem, 1.5vw, 1.6rem);
    margin-left: auto;
    margin-right: 1.5rem;
}

.primary-navigation a {
    color: rgba(255, 255, 255, 0.76);
    font: 500 0.66rem/1 "Montserrat", sans-serif;
    letter-spacing: 0.05em;
    text-decoration: none;
    text-transform: uppercase;
}

.primary-navigation a:hover,
.primary-navigation a:focus-visible { color: #fff; }

.site-menu-toggle {
    display: none;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.25);
    border-radius: 999px;
    padding: 0.55rem 0.8rem;
    font: 600 0.65rem/1 "Montserrat", sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

@media (max-width: 1050px) {
    .site-menu-toggle { display: inline-flex; margin-left: auto; }
    .primary-navigation {
        position: absolute;
        top: calc(100% + 0.6rem);
        left: 1rem;
        right: 1rem;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin: 0;
        padding: 0.7rem;
        border: 1px solid rgba(157, 114, 255, 0.28);
        border-radius: 1rem;
        background: rgba(5, 5, 7, 0.96);
        backdrop-filter: blur(18px);
    }
    .primary-navigation.is-open { display: flex; }
    .primary-navigation a { padding: 0.8rem; }
    .header-booking-cta { margin-left: 0.65rem; }
}

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

html {
    background: var(--vv-bg);
    color: var(--vv-text);
    font-family: var(--vv-body-font);
    scroll-behavior: auto;
}

body {
    margin: 0;
    min-width: 320px;
    background: var(--vv-bg);
    color: var(--vv-text);
    font-size: 20px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    text-shadow:
        0 2px 4px rgba(0, 0, 0, 1),
        0 0 12px rgba(0, 0, 0, 0.98),
        0 0 26px rgba(0, 0, 0, 0.9);
}

body.cinematic-page,
body.public-page {
    text-transform: uppercase;
}

body.cinematic-page *,
body.public-page * {
    text-transform: uppercase !important;
}

body.is-loading {
    overflow: hidden;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: inherit;
}

img,
video {
    display: block;
    max-width: 100%;
}

.skip-link {
    position: fixed;
    z-index: 10000;
    top: 0.75rem;
    left: 0.75rem;
    padding: 0.7rem 1rem;
    background: var(--vv-text);
    color: #050507;
    transform: translateY(-180%);
    transition: transform 160ms ease;
}

.skip-link:focus {
    transform: translateY(0);
}

:focus-visible {
    outline: 2px solid var(--vv-violet);
    outline-offset: 4px;
}

.loader {
    position: fixed;
    z-index: 9000;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #020203;
    opacity: 1;
    visibility: visible;
    transition: opacity 900ms cubic-bezier(0.22, 0.75, 0.16, 1), visibility 900ms;
}

.loader.is-complete {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.loader-edge {
    position: absolute;
    inset: -35%;
    background: radial-gradient(ellipse at center, transparent 35%, rgba(92, 49, 154, 0.08) 58%, rgba(157, 114, 255, 0.54) 76%, transparent 78%);
    animation: loader-breathe 2400ms ease-in-out infinite;
    pointer-events: none;
}

@keyframes loader-breathe {
    0%, 100% { opacity: 0.35; transform: scale(0.98); }
    50% { opacity: 1; transform: scale(1.045); }
}

.loader-inner {
    position: relative;
    width: min(74vw, 28rem);
    text-align: center;
}

.loader-mark {
    width: clamp(4rem, 8vw, 6.5rem);
    height: clamp(7rem, 15vw, 11.5rem);
    margin: 0 auto 2.5rem;
    overflow: hidden;
    clip-path: inset(100% 0 0);
    animation: loader-reveal 2200ms 180ms cubic-bezier(0.22, 0.75, 0.16, 1) forwards;
}

.loader-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: grayscale(1) brightness(1.5);
}

@keyframes loader-reveal {
    to { clip-path: inset(0 0 0); }
}

.loader-message {
    min-height: 1.5em;
    margin: 0 0 1.25rem;
    color: rgba(244, 241, 236, 0.8);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    transition: opacity 180ms ease, transform 180ms ease;
}

.loader-message.is-changing {
    opacity: 0;
    transform: translateY(5px);
}

.loader-bar {
    height: 1px;
    overflow: hidden;
    background: rgba(255,255,255,0.15);
}

.loader-bar span {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, var(--vv-violet-secondary), #c5aaff);
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform;
}

.loader-skip {
    margin-top: 1.2rem;
    border: 0;
    background: transparent;
    color: rgba(244,241,236,0.65);
    cursor: pointer;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    opacity: 0;
    text-transform: uppercase;
    transition: opacity 300ms;
}

.loader.can-skip .loader-skip {
    opacity: 1;
}

.fixed-media {
    position: fixed;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    background: #030304;
}

.background-video,
.background-poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--vv-focal-x) var(--vv-focal-y);
}

.background-video {
    z-index: 0;
    opacity: 1;
}

.background-poster {
    z-index: 1;
    opacity: 1;
    transition: opacity 1000ms cubic-bezier(0.22, 0.75, 0.16, 1);
}

.fixed-media.video-visible .background-poster {
    opacity: 0;
}

.media-vignette {
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.2), transparent 20%, transparent 76%, rgba(0,0,0,0.34)),
        radial-gradient(ellipse at center, transparent 35%, rgba(0,0,0,0.28) 100%);
}

.site-header {
    --page-progress: 0;
    position: fixed;
    z-index: 100;
    top: 0;
    right: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.3rem var(--vv-gutter);
    transition: background 300ms, border-color 300ms;
}

.site-header::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #7b3bd1, #a96cff, #d2b3ff);
    box-shadow:
        0 0 10px rgba(158, 91, 255, 0.88),
        0 0 22px rgba(158, 91, 255, 0.46);
    content: "";
    transform: scaleX(var(--page-progress));
    transform-origin: left center;
    transition: transform 90ms linear;
}

.site-header.is-scrolled,
.public-page .site-header {
    border-bottom: 1px solid rgba(255,255,255,0.08);
    background: rgba(5,5,7,0.76);
    backdrop-filter: blur(18px);
}

.site-credit {
    position: fixed;
    z-index: 105;
    bottom: 1rem;
    left: 1rem;
    display: inline-block;
    max-width: none;
    background: linear-gradient(100deg, #ffffff, #cdb5ff, #8f5bea, #ffffff);
    background-clip: text;
    background-size: 240% 100%;
    color: transparent;
    font-size: clamp(1rem, 1.25vw, 1.2rem);
    font-weight: 700;
    letter-spacing: 0.055em;
    opacity: 1;
    text-shadow:
        0 2px 5px #000,
        0 0 14px #000,
        0 0 24px rgba(157, 114, 255, 0.58);
    text-decoration: none;
    white-space: nowrap;
    animation: site-credit-gradient 7s ease-in-out infinite;
    transition: opacity 180ms, transform 180ms;
}

.site-credit:hover,
.site-credit:focus-visible {
    opacity: 1;
    transform: translateY(-1px);
}

@keyframes site-credit-gradient {
    0%, 100% { background-position: 0 50%; }
    50% { background-position: 100% 50%; }
}

.wordmark {
    color: var(--vv-text);
    font-family: var(--vv-brand-font);
    font-size: clamp(1.9rem, 3vw, calc(var(--vv-brand-size) * 1.65));
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 1;
    text-decoration: none;
}

.header-booking-cta {
    display: inline-flex;
    min-height: 2.65rem;
    align-items: center;
    justify-content: center;
    padding: 0.7rem 1.15rem;
    border: 1px solid rgba(224, 205, 255, 0.76);
    border-radius: 999px;
    background: linear-gradient(125deg, #8f5bea, #6b36bd);
    box-shadow:
        0 12px 34px rgba(31, 8, 66, 0.48),
        inset 0 1px 0 rgba(255,255,255,0.24),
        0 0 28px rgba(157,114,255,0.24);
    color: #fff;
    font-size: clamp(0.64rem, 0.78vw, 0.78rem);
    font-weight: 650;
    letter-spacing: 0.025em;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    transition: background 180ms, border-color 180ms, box-shadow 180ms, transform 180ms;
}

.header-booking-cta:hover {
    border-color: #fff;
    background: linear-gradient(125deg, #a978ff, #7c43d1);
    box-shadow:
        0 15px 40px rgba(31, 8, 66, 0.58),
        0 0 34px rgba(183, 139, 255, 0.48);
    transform: translateY(-1px);
}

.section-scroll-controls {
    --autoplay-pause-progress: 0;
    position: fixed;
    z-index: 110;
    bottom: clamp(0.9rem, 2.4vh, 1.5rem);
    left: 50%;
    display: flex;
    gap: 0.55rem;
    padding: 0.35rem;
    border: 1px solid rgba(218, 193, 255, 0.24);
    border-radius: 999px;
    background: rgba(12, 6, 24, 0.42);
    box-shadow: 0 16px 40px rgba(10, 2, 24, 0.38);
    transform: translateX(-50%);
    backdrop-filter: blur(14px);
}

.section-scroll-controls::before {
    position: absolute;
    z-index: 3;
    inset: -3px;
    padding: 2px;
    border-radius: inherit;
    background:
        conic-gradient(
            from -90deg,
            #d7bdff 0turn,
            #9d72ff calc(var(--autoplay-pause-progress) * 1turn),
            rgba(157, 114, 255, 0.08) calc(var(--autoplay-pause-progress) * 1turn),
            rgba(157, 114, 255, 0.08) 1turn
        );
    content: "";
    filter: drop-shadow(0 0 7px rgba(177, 126, 255, 0.82));
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
    -webkit-mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask:
        linear-gradient(#000 0 0) content-box,
        linear-gradient(#000 0 0);
    mask-composite: exclude;
}

.section-scroll-controls.is-autoplay-counting::before {
    opacity: 1;
}

.autoplay-settings {
    position: absolute;
    right: 0;
    bottom: calc(100% + 0.75rem);
    width: 14rem;
    padding: 0.9rem;
    border: 1px solid rgba(218, 193, 255, 0.38);
    border-radius: 1rem;
    background: rgba(18, 8, 34, 0.94);
    box-shadow: 0 18px 55px rgba(8, 2, 20, 0.68), 0 0 30px rgba(157,114,255,0.18);
    text-align: left;
    backdrop-filter: blur(18px);
}

.autoplay-settings[hidden] {
    display: none;
}

.autoplay-settings > span {
    display: block;
    margin-bottom: 0.55rem;
    color: rgba(255,255,255,0.72);
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.autoplay-settings label {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.autoplay-settings input {
    width: 5.5rem;
    min-height: 2.35rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid rgba(229,211,255,0.38);
    border-radius: 0.65rem;
    background: rgba(5,2,12,0.65);
    outline: none;
}

.autoplay-settings small,
.autoplay-settings p {
    color: rgba(255,255,255,0.58);
    font-size: 0.68rem;
}

.autoplay-settings p {
    margin: 0.55rem 0 0;
    line-height: 1.35;
}

.section-scroll-button {
    position: relative;
    display: grid;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 1px solid rgba(218, 193, 255, 0.72);
    border-radius: 50%;
    background: rgba(28, 12, 52, 0.68);
    box-shadow:
        0 12px 34px rgba(10, 2, 24, 0.48),
        inset 0 1px 0 rgba(255,255,255,0.18),
        0 0 24px rgba(157,114,255,0.2);
    color: #fff;
    cursor: pointer;
    opacity: 1;
    place-items: center;
    transition: opacity 180ms, transform 180ms, background 180ms, border-color 180ms;
}

.section-autoplay-button .autoplay-pause-icon,
.section-autoplay-button.is-active .autoplay-play-icon {
    display: none;
}

.section-autoplay-button.is-active .autoplay-pause-icon {
    display: block;
}

.section-autoplay-button.is-active {
    border-color: #fff;
    background: linear-gradient(145deg, rgba(158,91,255,0.92), rgba(91,41,171,0.92));
    box-shadow:
        0 12px 34px rgba(10, 2, 24, 0.48),
        inset 0 1px 0 rgba(255,255,255,0.22),
        0 0 32px rgba(185,137,255,0.58);
}

.section-settings-button svg {
    width: 1.05rem;
    height: 1.05rem;
}

.section-scroll-button svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.section-scroll-button:hover {
    border-color: #fff;
    background: rgba(112, 65, 190, 0.82);
}

.section-previous-button:hover {
    transform: translateY(-3px);
}

.section-next-button:hover {
    transform: translateY(3px);
}

.section-scroll-button.is-jumping {
    animation: section-button-pop 520ms cubic-bezier(0.2, 0.9, 0.25, 1);
}

.section-previous-button.is-jumping svg {
    animation: section-arrow-up 520ms cubic-bezier(0.2, 0.9, 0.25, 1);
}

.section-next-button.is-jumping svg {
    animation: section-arrow-down 520ms cubic-bezier(0.2, 0.9, 0.25, 1);
}

@keyframes section-button-pop {
    0%, 100% { box-shadow: 0 12px 34px rgba(10, 2, 24, 0.48), 0 0 24px rgba(157,114,255,0.2); }
    42% { box-shadow: 0 12px 34px rgba(10, 2, 24, 0.48), 0 0 40px rgba(189,151,255,0.82); }
}

@keyframes section-arrow-up {
    0% { transform: translateY(0); }
    45% { transform: translateY(-8px); }
    70% { transform: translateY(3px); }
    100% { transform: translateY(0); }
}

@keyframes section-arrow-down {
    0% { transform: translateY(0); }
    45% { transform: translateY(8px); }
    70% { transform: translateY(-3px); }
    100% { transform: translateY(0); }
}

.section-scroll-button.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.76);
}

body.is-loading .section-scroll-controls {
    opacity: 0;
    pointer-events: none;
}

.cinematic-main {
    position: relative;
    z-index: 4;
}

.cinematic-scene {
    position: relative;
    height: calc(100vh + var(--scene-content-height, 20rem));
    margin-bottom: calc(var(--scene-spacing-height, 20rem) - 100vh);
}

.scene-pin,
.performer-pin {
    position: sticky;
    top: 0;
    display: grid;
    width: 100%;
    height: 100vh;
    place-items: center;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0,
        #000 var(--vv-fade-top),
        #000 calc(100% - var(--vv-fade-bottom)),
        transparent 100%
    );
    mask-image: linear-gradient(
        to bottom,
        transparent 0,
        #000 var(--vv-fade-top),
        #000 calc(100% - var(--vv-fade-bottom)),
        transparent 100%
    );
}

.reveal-content {
    width: clamp(21rem, max(var(--vv-content-vw), 56vw), 68rem);
    margin: 0;
    opacity: 0;
    transform: translate3d(0, 34vh, 0);
    will-change: transform, opacity;
}

.hero-content {
    width: min(88vw, 76rem);
    text-align: center;
}

.mobile-hero-stack {
    display: none;
}

.hero-content h1 {
    width: max-content;
    max-width: 96vw;
    margin: 0 auto;
    font-family: var(--vv-brand-font);
    font-size: clamp(6.1rem, 12vw, calc(var(--vv-display-size) * 1.7));
    font-weight: 400;
    letter-spacing: 0.005em;
    line-height: 0.96;
    white-space: nowrap;
}

.hero-content h1,
.editorial-content h2,
.video-intro-overlay h2,
.inquiry-heading h2 {
    text-align: center;
}

.hero-subtitle {
    width: max-content;
    max-width: 96vw;
    margin: 1.5rem auto 0;
    color: var(--vv-violet);
    font-size: clamp(0.55rem, 2.7vw, 1.75rem);
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
}

.hero-services {
    width: max-content;
    max-width: 96vw;
    margin: 1.15rem auto 0;
    color: #fff;
    font-size: clamp(0.88rem, 1.15vw, 1.08rem);
    font-weight: 500;
    letter-spacing: 0.075em;
    line-height: 1.5;
    text-transform: uppercase;
    white-space: nowrap;
}

.quote-content {
    width: clamp(21rem, 58vw, 62rem);
    text-align: center;
}

.quote-content blockquote {
    width: max-content;
    max-width: 96vw;
    margin: 0 auto;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.8rem, 5.4vw, var(--vv-display-size));
    font-weight: var(--vv-heading-weight);
    letter-spacing: -0.035em;
    line-height: 1;
    text-align: center;
}

.quote-content blockquote span {
    display: block;
    white-space: nowrap;
}

.quote-content figcaption {
    display: flex;
    justify-content: center;
    margin-top: 2.4rem;
    color: rgba(244,241,236,0.72);
    font-family: var(--vv-body-font);
    font-size: 1rem;
    font-weight: 500;
}

.quote-content figcaption > span {
    display: grid;
    gap: 0.4rem;
    justify-items: center;
    text-align: center;
}

.quote-content figcaption strong {
    color: var(--vv-text);
    font-family: var(--vv-heading-font);
    font-size: clamp(1.65rem, 2.4vw, 2.25rem);
    font-weight: 600;
    font-style: normal;
    line-height: 1;
}

.quote-content figcaption small {
    color: var(--vv-violet);
    font-size: clamp(0.92rem, 1.3vw, 1.18rem);
    font-weight: 650;
    font-style: normal;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.quote-content figcaption::before {
    content: none;
}

.performer-sequence {
    position: relative;
    height: var(--logo-scroll-height, 366vh);
}

.performer-content {
    width: min(74vw, 64rem);
    text-align: center;
    will-change: transform, opacity;
}

.performer-content h2 {
    max-width: 18ch;
    margin: 0 auto 4rem;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.5rem, 4.8vw, var(--vv-title-size));
    font-weight: var(--vv-heading-weight);
    letter-spacing: -0.02em;
    line-height: 0.98;
    text-wrap: balance;
}

.logo-stage {
    position: relative;
    width: min(62vw, 42rem);
    height: clamp(8rem, 22vh, 15rem);
    margin: 0 auto;
}

.logo-stage img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    max-width: min(var(--logo-max-width), 100%);
    height: auto;
    max-height: min(var(--logo-max-height), 100%);
    opacity: 0;
    filter: grayscale(1) brightness(4);
    object-fit: contain;
    transform: translate(-50%, -46%) scale(0.98);
    transition: none;
    will-change: opacity, transform;
}

.sequence-counter {
    margin: 2.2rem 0 0;
    color: rgba(244,241,236,0.42);
    font-size: 0.68rem;
    letter-spacing: 0.18em;
}

.editorial-content {
    width: min(84vw, 74rem);
    text-align: center;
}

.editorial-content h2 {
    width: 100%;
    max-width: none;
    margin: 0 auto 1.4rem;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.4rem, 4.8vw, var(--vv-title-size));
    font-weight: var(--vv-heading-weight);
    letter-spacing: -0.03em;
    line-height: 1.04;
    white-space: nowrap;
}

.editorial-content p {
    max-width: var(--vv-body-max-width, 52ch);
    margin: 0 auto 1em;
    color: rgba(244,241,236,0.9);
    font-size: var(--vv-body-size);
    font-weight: var(--vv-body-weight);
    line-height: var(--vv-body-line-height);
}

.video-scrub-scene {
    position: relative;
    min-height: 500vh;
}

.video-intro-overlay {
    position: sticky;
    z-index: 7;
    top: 0;
    display: grid;
    width: 100%;
    height: 100vh;
    padding: var(--vv-gutter);
    place-items: center;
    opacity: 0;
    pointer-events: none;
    text-align: center;
    transition: opacity 90ms linear, transform 90ms linear;
    will-change: opacity, transform;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0,
        #000 var(--vv-fade-top),
        #000 calc(100% - var(--vv-fade-bottom)),
        transparent 100%
    );
    mask-image: linear-gradient(
        to bottom,
        transparent 0,
        #000 var(--vv-fade-top),
        #000 calc(100% - var(--vv-fade-bottom)),
        transparent 100%
    );
}

.music-player {
    position: fixed;
    z-index: 120;
    right: 1rem;
    bottom: 1rem;
    display: grid;
    grid-template-columns: 4.3rem minmax(0, 1fr);
    gap: 0.65rem;
    align-items: center;
    width: min(23rem, calc(100vw - 2rem));
    min-height: 5rem;
    padding: 0.55rem;
    border: 1px solid rgba(224, 205, 255, 0.42);
    border-radius: 1.35rem;
    background:
        radial-gradient(circle at 12% 0%, rgba(206,170,255,0.24), transparent 42%),
        linear-gradient(145deg, rgba(41,18,74,0.94), rgba(12,6,25,0.94));
    box-shadow:
        0 20px 60px rgba(6,2,16,0.66),
        inset 0 1px 0 rgba(255,255,255,0.14),
        0 0 38px rgba(146,87,239,0.22);
    backdrop-filter: blur(18px);
    transition: border-color 220ms, box-shadow 220ms, opacity 300ms, transform 300ms, visibility 300ms;
}

body.is-loading .music-player {
    opacity: 0;
    pointer-events: none;
    transform: translateY(1rem);
    visibility: hidden;
}

.music-player.is-awaiting-gesture {
    border-color: rgba(235,220,255,0.82);
    animation: music-player-beacon 1800ms ease-in-out infinite;
}

body.is-inquiry-active .music-player,
body.is-inquiry-active .site-credit {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

@keyframes music-player-beacon {
    0%, 100% {
        box-shadow: 0 20px 60px rgba(6,2,16,0.66), 0 0 22px rgba(146,87,239,0.24);
        transform: translateY(0);
    }
    50% {
        box-shadow: 0 20px 60px rgba(6,2,16,0.66), 0 0 48px rgba(190,144,255,0.72);
        transform: translateY(-3px);
    }
}

.music-power {
    position: relative;
    display: grid;
    width: 4.3rem;
    height: 4.3rem;
    padding: 0;
    border: 1px solid rgba(236,221,255,0.72);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(152,92,239,0.96), rgba(77,35,142,0.98));
    color: #fff;
    cursor: pointer;
    place-items: center;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.3), 0 0 24px rgba(170,112,255,0.46);
}

.music-power svg {
    width: 1.45rem;
    height: 1.45rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.music-power > span:last-child {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 50%;
    width: max-content;
    padding: 0.28rem 0.48rem;
    border-radius: 999px;
    background: rgba(8,3,18,0.92);
    font-size: 0.55rem;
    font-weight: 650;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    transform: translateX(-50%);
}

.music-power-orbit {
    position: absolute;
    inset: -0.3rem;
    border: 1px solid rgba(210,177,255,0.54);
    border-radius: 50%;
    animation: music-orbit 2400ms linear infinite;
}

.music-power-orbit::after {
    position: absolute;
    top: 0.2rem;
    left: 50%;
    width: 0.35rem;
    height: 0.35rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 12px #c9a6ff;
    content: "";
}

@keyframes music-orbit {
    to { transform: rotate(360deg); }
}

.music-console {
    min-width: 0;
    padding-right: 0.35rem;
}

.music-heading {
    display: grid;
    min-width: 0;
}

.music-heading span {
    color: var(--vv-violet);
    font-size: 0.54rem;
    font-weight: 650;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.music-heading strong {
    overflow: hidden;
    margin-top: 0.1rem;
    font-size: 0.72rem;
    font-weight: 550;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.music-progress-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 0.55rem;
    align-items: center;
    margin-top: 0.42rem;
}

.music-progress-row input {
    width: 100%;
    height: 2px;
    margin: 0;
    accent-color: var(--vv-violet);
}

.music-progress-row span {
    color: rgba(255,255,255,0.58);
    font-size: 0.58rem;
    font-variant-numeric: tabular-nums;
}

.music-controls {
    display: flex;
    gap: 0.35rem;
    align-items: center;
    margin-top: 0.4rem;
}

.music-controls button {
    display: grid;
    width: 1.65rem;
    height: 1.65rem;
    padding: 0;
    border: 1px solid rgba(225,205,255,0.28);
    border-radius: 50%;
    background: rgba(15,7,28,0.5);
    color: rgba(255,255,255,0.82);
    cursor: pointer;
    place-items: center;
}

.music-controls button:hover {
    border-color: rgba(245,235,255,0.9);
    background: rgba(118,65,203,0.7);
}

.music-controls svg {
    width: 0.85rem;
    height: 0.85rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
}

.music-play-toggle .music-pause-icon,
.music-player.is-playing .music-play-icon,
.music-player:not(.is-muted) .music-muted-icon,
.music-player.is-muted .music-volume-icon {
    display: none;
}

.music-player.is-playing .music-pause-icon,
.music-player.is-muted .music-muted-icon {
    display: block;
}

.music-equalizer {
    display: flex;
    height: 1.3rem;
    gap: 0.15rem;
    align-items: end;
    margin-left: auto;
}

.music-equalizer i {
    width: 2px;
    height: 22%;
    border-radius: 2px;
    background: linear-gradient(#ddc7ff, #8c54e8);
}

.music-player.is-playing .music-equalizer i {
    animation: music-level 680ms ease-in-out infinite alternate;
}

.music-player.is-playing .music-equalizer i:nth-child(2) { animation-delay: -180ms; }
.music-player.is-playing .music-equalizer i:nth-child(3) { animation-delay: -420ms; }
.music-player.is-playing .music-equalizer i:nth-child(4) { animation-delay: -260ms; }
.music-player.is-playing .music-equalizer i:nth-child(5) { animation-delay: -520ms; }

@keyframes music-level {
    from { height: 22%; }
    to { height: 100%; }
}

.video-intro-overlay h2 {
    width: max-content;
    max-width: calc(100vw - (var(--vv-gutter) * 2));
    margin: 0 auto;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.4rem, 4.8vw, var(--vv-title-size));
    font-weight: var(--vv-heading-weight);
    letter-spacing: -0.03em;
    line-height: 1.04;
    text-align: center;
    white-space: normal;
}

.video-intro-overlay h2 span {
    display: block;
    white-space: nowrap;
}

.video-intro-overlay p {
    max-width: 44ch;
    margin: 1.4rem auto 0;
    color: rgba(244,241,236,0.9);
    font-size: var(--vv-body-size);
    font-weight: var(--vv-body-weight);
    line-height: var(--vv-body-line-height);
    text-wrap: balance;
}

.scrub-indicator {
    display: none;
}

.scrub-indicator div {
    width: min(18vw, 18rem);
    height: 1px;
    background: rgba(255,255,255,0.18);
}

.scrub-indicator i {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--vv-violet);
    transform: scaleX(0);
    transform-origin: left;
}

.closing-sequence {
    position: relative;
    margin-top: var(--post-video-overlap, 0);
}

.numbered-chapter {
    display: block;
    text-align: center;
}

.chapter-number {
    display: block;
    margin: 0 auto 1rem;
    color: var(--vv-violet);
    font-size: 0.67rem;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.numbered-chapter h2,
.numbered-chapter p {
    grid-column: auto;
    margin-right: auto;
    margin-left: auto;
}

.homepage-authority {
    position: relative;
    z-index: 8;
    width: min(90vw, 76rem);
    margin: clamp(16rem, 38vh, 28rem) auto 0;
    padding: clamp(2rem, 5vw, 4.5rem);
    border: 1px solid rgba(218, 195, 255, 0.24);
    border-radius: clamp(1.4rem, 3vw, 2.8rem);
    background:
        radial-gradient(circle at 12% 0%, rgba(153, 91, 255, 0.22), transparent 35rem),
        linear-gradient(150deg, rgba(22, 11, 40, 0.94), rgba(8, 6, 14, 0.96));
    box-shadow: 0 45px 140px rgba(0, 0, 0, 0.48), inset 0 1px rgba(255, 255, 255, 0.08);
}

.homepage-authority > header { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.65fr); gap: 1.5rem 3rem; align-items: end; }
.homepage-authority > header > p { grid-column: 1 / -1; margin: 0; color: var(--vv-violet); font-size: 0.67rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.homepage-authority h2 { max-width: 11ch; margin: 0; font-family: var(--vv-heading-font); font-size: clamp(2.8rem, 6vw, 6.5rem); font-weight: var(--vv-heading-weight); letter-spacing: -0.045em; line-height: 0.9; }
.homepage-authority > header > div { max-width: 38ch; color: rgba(244, 241, 236, 0.72); font-size: clamp(0.95rem, 1.45vw, 1.15rem); line-height: 1.65; }
.homepage-authority-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(2.5rem, 6vw, 5rem); border-top: 1px solid rgba(218, 195, 255, 0.2); border-left: 1px solid rgba(218, 195, 255, 0.2); }
.homepage-authority-grid a { min-height: 20rem; padding: clamp(1.5rem, 3vw, 2.8rem); border-right: 1px solid rgba(218, 195, 255, 0.2); border-bottom: 1px solid rgba(218, 195, 255, 0.2); color: inherit; text-decoration: none; transition: background 250ms ease, transform 250ms ease; }
.homepage-authority-grid a:hover { background: rgba(157, 114, 255, 0.1); transform: translateY(-0.25rem); }
.homepage-authority-grid span { color: var(--vv-violet); font-size: 0.65rem; letter-spacing: 0.12em; }
.homepage-authority-grid h3 { max-width: 13ch; margin: 2.8rem 0 1rem; font-family: var(--vv-heading-font); font-size: clamp(1.8rem, 3vw, 3.25rem); font-weight: var(--vv-heading-weight); line-height: 0.95; }
.homepage-authority-grid p { max-width: 43ch; color: rgba(244, 241, 236, 0.68); line-height: 1.6; }
.homepage-authority-grid strong { display: inline-block; margin-top: 2rem; color: #fff; font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.homepage-authority > nav { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 2rem; }
.homepage-authority > nav a { padding: 0.65rem 0.9rem; border: 1px solid rgba(218, 195, 255, 0.25); border-radius: 999px; color: rgba(244, 241, 236, 0.78); font-size: 0.68rem; letter-spacing: 0.04em; text-decoration: none; text-transform: uppercase; }
.analytics-consent { position: fixed; z-index: 90; right: 1rem; bottom: 1rem; left: 1rem; display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; max-width: 70rem; margin: 0 auto; padding: 1rem 1.2rem; border: 1px solid rgba(218, 195, 255, 0.35); border-radius: 1rem; background: rgba(10, 7, 16, 0.96); box-shadow: 0 20px 80px rgba(0, 0, 0, 0.55); backdrop-filter: blur(18px); }
.analytics-consent[hidden] { display: none; }
.analytics-consent strong { font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; }
.analytics-consent p { max-width: 65ch; margin: 0.35rem 0 0; color: rgba(244, 241, 236, 0.7); font-size: 0.72rem; line-height: 1.5; }
.analytics-consent > div:last-child { display: flex; flex: 0 0 auto; gap: 0.5rem; }
.analytics-consent button { padding: 0.65rem 0.85rem; border: 1px solid rgba(218, 195, 255, 0.35); border-radius: 999px; background: transparent; color: #fff; cursor: pointer; font-size: 0.68rem; }
.analytics-consent [data-analytics-allow] { background: var(--vv-violet); border-color: var(--vv-violet); }

.inquiry-section {
    position: relative;
    z-index: 8;
    width: min(92vw, 64rem);
    margin: clamp(8rem, 20vh, 16rem) auto 0;
    padding: 0 0 clamp(10rem, 28vh, 16rem);
    background: transparent;
    transition: opacity 220ms linear, transform 220ms linear;
    will-change: opacity, transform;
}

.inquiry-heading {
    display: block;
    max-width: 50rem;
    margin: 0 auto 0.85rem;
    padding-top: 0;
    text-align: center;
}

.inquiry-heading h2 {
    max-width: 24ch;
    margin: 0 auto 0.7rem;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.6rem, 5vw, var(--vv-title-size));
    font-weight: var(--vv-heading-weight);
    letter-spacing: -0.035em;
    line-height: 1;
    white-space: nowrap;
}

.inquiry-heading > p:last-child {
    max-width: 60ch;
    margin: 0 auto;
    color: rgba(244, 241, 236, 0.84);
    font-size: 22px;
    line-height: 1.5;
}

.inquiry-form,
.form-success {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    width: 100%;
    max-width: 64rem;
    margin: 0 auto;
    padding: clamp(1.15rem, 2vw, 1.55rem);
    border: 1px solid rgba(224, 206, 255, 0.56);
    border-radius: clamp(1.4rem, 3vw, 2.25rem);
    background:
        radial-gradient(circle at 8% 0%, rgba(226, 201, 255, 0.28), transparent 30%),
        radial-gradient(circle at 94% 100%, rgba(91, 39, 177, 0.58), transparent 38%),
        linear-gradient(145deg, rgba(119, 66, 211, 0.97), rgba(42, 17, 82, 0.98));
    box-shadow:
        0 32px 100px rgba(21, 5, 48, 0.72),
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        inset 0 0 80px rgba(145, 92, 238, 0.12),
        0 0 65px rgba(139, 84, 238, 0.3);
    backdrop-filter: blur(20px);
}

.inquiry-form::before,
.form-success::before {
    position: absolute;
    z-index: 0;
    top: 0;
    left: 8%;
    width: 84%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(229, 207, 255, 0.95), transparent);
    content: "";
}

.inquiry-form::after,
.form-success::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 32px 32px;
    content: "";
    mask-image: linear-gradient(145deg, rgba(0,0,0,0.7), transparent 74%);
    pointer-events: none;
}

.inquiry-form > *,
.form-success > * {
    position: relative;
    z-index: 1;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.7rem 0.9rem;
}

.field {
    position: relative;
    grid-column: span 3;
}

.field-first_name,
.field-last_name,
.field-company,
.field-email,
.field-phone,
.field-event_name,
.field-event_date,
.field-venue_name,
.field-expected_attendance {
    grid-column: span 2;
}

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

.field label {
    display: block;
    margin-bottom: 0.38rem;
    color: rgba(255,255,255,0.78);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.field-group-label {
    display: block;
    margin-bottom: 0.45rem;
    color: rgba(255,255,255,0.78);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.service-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.7rem;
}

.service-option {
    margin: 0 !important;
    cursor: pointer;
}

.service-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

.service-option span {
    display: grid;
    min-height: 2.5rem;
    padding: 0.52rem 0.7rem;
    align-items: center;
    border: 1px solid rgba(236, 221, 255, 0.26);
    border-radius: 0.9rem;
    background: rgba(10, 4, 24, 0.35);
    color: rgba(255,255,255,0.84);
    font-size: 0.82rem;
    font-weight: 550;
    letter-spacing: 0.015em;
    line-height: 1.25;
    text-align: center;
    text-transform: none;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
    transition: border-color 180ms, background 180ms, box-shadow 180ms, color 180ms, transform 180ms;
}

.service-option input:focus-visible + span {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.service-option input:checked + span {
    border-color: rgba(245, 235, 255, 0.92);
    background:
        radial-gradient(circle at 15% 0%, rgba(255,255,255,0.2), transparent 42%),
        linear-gradient(125deg, rgba(166, 105, 255, 0.92), rgba(100, 49, 184, 0.92));
    color: #fff;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.22),
        0 10px 28px rgba(25, 5, 56, 0.34),
        0 0 24px rgba(201, 164, 255, 0.2);
    transform: translateY(-1px);
}

.field input:not([type="checkbox"]),
.field textarea,
.field select {
    width: 100%;
    min-height: 2.5rem;
    padding: 0.48rem 0.8rem;
    border: 1px solid rgba(236, 221, 255, 0.24);
    border-radius: 0.85rem;
    background-color: rgba(10, 4, 24, 0.42);
    color: var(--vv-text);
    font-size: 1rem;
    outline: none;
    text-shadow: 0 1px 6px rgba(0,0,0,0.55);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.055),
        0 10px 30px rgba(18, 5, 41, 0.18);
    transition: border-color 180ms, background-color 180ms, box-shadow 180ms, transform 180ms;
}

.field textarea {
    resize: vertical;
}

.field select {
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, var(--vv-muted) 50%), linear-gradient(135deg, var(--vv-muted) 50%, transparent 50%);
    background-position: calc(100% - 15px) 50%, calc(100% - 10px) 50%;
    background-repeat: no-repeat;
    background-size: 5px 5px;
}

.field input:focus,
.field textarea:focus,
.field select:focus {
    border-color: rgba(235, 220, 255, 0.85);
    background-color: rgba(8, 4, 18, 0.46);
    box-shadow:
        0 0 0 3px rgba(221, 196, 255, 0.14),
        0 0 28px rgba(200, 164, 255, 0.18);
    transform: translateY(-1px);
}

.field-check {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.field-check input {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0.12rem 0 0;
    accent-color: var(--vv-violet);
}

.field-check label {
    margin: 0;
    text-transform: none;
}

.field-error {
    margin: 0.5rem 0 0;
    color: #ff9eaf;
    font-size: 0.78rem;
}

.error-summary {
    margin-bottom: 3rem;
    padding: 1.3rem 1.5rem;
    border-left: 2px solid #ff6a83;
    background: rgba(255, 70, 100, 0.08);
}

.error-summary h3 {
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: 1.5rem;
    font-weight: 400;
}

.error-summary ul {
    margin-bottom: 0;
}

.submit-button {
    display: inline-flex;
    align-items: center;
    gap: 2rem;
    margin-top: 0.8rem;
    padding: 0.68rem 0.95rem 0.68rem 1.15rem;
    border: 1px solid rgba(239, 225, 255, 0.62);
    border-radius: 999px;
    background: linear-gradient(120deg, rgba(255,255,255,0.2), rgba(178,127,255,0.2));
    box-shadow: 0 12px 34px rgba(20, 4, 47, 0.28);
    cursor: pointer;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    transition: background 180ms, color 180ms;
}

.submit-button svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
}

.submit-button:hover {
    background: linear-gradient(120deg, #fff, #d9c0ff);
    color: #050507;
    box-shadow: 0 16px 42px rgba(22, 5, 51, 0.42), 0 0 28px rgba(218, 187, 255, 0.38);
}

.form-note {
    max-width: none;
    margin: 0.65rem 0 0;
    color: rgba(255,255,255,0.58);
    font-size: 0.64rem;
    white-space: nowrap;
}

.form-success {
    min-height: 28rem;
    display: grid;
    align-content: center;
}

.form-success span {
    color: var(--vv-violet);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.form-success h3 {
    max-width: 18ch;
    margin: 1rem 0;
    font-family: var(--vv-heading-font);
    font-size: clamp(3rem, 6vw, 6rem);
    font-weight: 400;
    line-height: 0.9;
}

.honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
}

.noscript-message {
    position: fixed;
    z-index: 10001;
    right: 1rem;
    bottom: 1rem;
    max-width: 30rem;
    padding: 1rem;
    background: #fff;
    color: #111;
}

.standard-main {
    min-height: 100vh;
    padding: 10rem var(--vv-gutter) 6rem;
    background:
        radial-gradient(circle at 78% 12%, rgba(114,72,180,0.12), transparent 30rem),
        var(--vv-bg);
}

.standard-hero {
    display: grid;
    grid-template-columns: 0.25fr 1fr 0.62fr;
    gap: clamp(1.5rem, 4vw, 5rem);
    align-items: end;
    max-width: 88rem;
    min-height: 58vh;
    margin: 0 auto;
    padding: 4rem 0 6rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.standard-hero > p:first-child {
    align-self: start;
    color: var(--vv-violet);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.standard-hero h1 {
    max-width: 10ch;
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: clamp(4rem, 8.5vw, 9rem);
    font-weight: 400;
    letter-spacing: -0.055em;
    line-height: 0.82;
}

.standard-hero > div {
    padding-bottom: 0.7rem;
    color: var(--vv-muted);
}

.text-link,
.inventory-card a {
    display: inline-block;
    margin-top: 1rem;
    color: var(--vv-text);
    text-decoration-color: var(--vv-violet);
    text-underline-offset: 0.4rem;
}

.prose-band,
.split-story,
.record-list,
.inventory-grid,
.inventory-search {
    max-width: 88rem;
    margin-right: auto;
    margin-left: auto;
}

.prose-band {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 4rem;
    padding: 8rem 0;
}

.prose-band h2,
.split-story h2 {
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: clamp(3rem, 6vw, 6rem);
    font-weight: 400;
    line-height: 0.9;
}

.prose-band p,
.split-story p {
    max-width: 52ch;
    color: var(--vv-muted);
    font-size: 1.05rem;
}

.split-story {
    display: grid;
    grid-template-columns: minmax(18rem, 0.75fr) 1fr;
    gap: 7vw;
    align-items: center;
    padding: 8rem 0;
}

.split-story img {
    width: 100%;
    max-height: 52rem;
    object-fit: contain;
    filter: grayscale(1);
}

.record-list {
    padding: 5rem 0;
}

.record-list article {
    display: grid;
    grid-template-columns: 9rem 1fr 0.4fr;
    gap: 2rem;
    align-items: baseline;
    padding: 2rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.record-list h2 {
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 400;
}

.record-list time,
.record-list p {
    color: var(--vv-muted);
    font-size: 0.78rem;
}

.empty-state {
    grid-column: 1 / -1;
    min-height: 20rem;
    display: grid;
    align-content: center;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.empty-state h2 {
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.8rem, 5vw, 5rem);
    font-weight: 400;
}

.empty-state p {
    color: var(--vv-muted);
}

.inventory-search {
    display: grid;
    grid-template-columns: auto minmax(12rem, 28rem) auto;
    gap: 1rem;
    align-items: center;
    padding: 3rem 0;
}

.inventory-search label {
    color: var(--vv-muted);
    font-size: 0.72rem;
    text-transform: uppercase;
}

.inventory-search input {
    min-height: 2.8rem;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.25);
    background: transparent;
}

.inventory-search button {
    padding: 0.75rem 1.2rem;
    border: 1px solid var(--vv-violet);
    border-radius: 999px;
    background: transparent;
}

.inventory-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.1);
}

.inventory-card {
    min-height: 29rem;
    background: var(--vv-bg);
}

.inventory-card img {
    width: 100%;
    height: 16rem;
    object-fit: cover;
}

.inventory-card > div {
    padding: 1.5rem;
}

.inventory-card h2 {
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: 2rem;
    font-weight: 400;
}

.inventory-card p {
    color: var(--vv-muted);
    font-size: 0.86rem;
}

.inventory-card strong {
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
}

.contract-public {
    min-height: 100vh;
    padding: 2rem var(--vv-gutter) 6rem;
    background: #08070a;
}

.contract-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 72rem;
    margin: 0 auto;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.contract-header span {
    color: var(--vv-muted);
    font-size: 0.7rem;
    letter-spacing: 0.12em;
}

.contract-document {
    max-width: 72rem;
    margin: 0 auto;
}

.contract-title {
    padding: 10vh 0;
}

.contract-title > p {
    color: var(--vv-violet);
    font-size: 0.68rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.contract-title h1 {
    max-width: 14ch;
    margin: 0 0 3rem;
    font-family: var(--vv-heading-font);
    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 400;
    letter-spacing: -0.05em;
    line-height: 0.86;
}

.contract-title dl {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.contract-title dl div {
    padding-top: 1rem;
    border-top: 1px solid rgba(255,255,255,0.16);
}

.contract-title dt {
    color: var(--vv-muted);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.contract-title dd {
    margin: 0.45rem 0 0;
}

.contract-section {
    display: grid;
    grid-template-columns: 0.65fr 1.35fr;
    gap: 4rem;
    padding: 4rem 0;
    border-top: 1px solid rgba(255,255,255,0.12);
}

.contract-section h2,
.signature-form h2,
.contract-status h2 {
    margin: 0;
    font-family: var(--vv-heading-font);
    font-size: clamp(2.4rem, 4vw, 4.5rem);
    font-weight: 400;
    line-height: 0.9;
}

.contract-section > p {
    max-width: 58ch;
    margin: 0;
    color: var(--vv-muted);
}

.contract-lines > div {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.contract-lines strong {
    white-space: nowrap;
}

.contract-lines .contract-total {
    padding-top: 2rem;
    font-size: 1.3rem;
}

.signature-form {
    display: grid;
    gap: 1.5rem;
    margin-top: 5rem;
    padding: clamp(1.5rem, 5vw, 5rem);
    border: 1px solid rgba(157,114,255,0.28);
    background: #0c0b0f;
}

.signature-form label:not(.signature-accept) {
    display: grid;
    gap: 0.5rem;
    color: var(--vv-muted);
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.signature-form input:not([type=checkbox]) {
    min-height: 3rem;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.22);
    background: transparent;
    color: var(--vv-text);
    font-size: 1rem;
}

.signature-accept {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.signature-form button {
    width: fit-content;
    padding: 0.9rem 1.4rem;
    border: 1px solid var(--vv-violet);
    border-radius: 999px;
    background: var(--vv-violet);
    color: #08070a;
    cursor: pointer;
}

.signature-form > p {
    max-width: 70ch;
    color: var(--vv-muted);
    font-size: 0.72rem;
}

.contract-status {
    padding: 6rem 0;
}

.result-page {
    display: grid;
    min-height: 100vh;
    padding: var(--vv-gutter);
    place-items: center;
    background: radial-gradient(circle at 65% 35%, rgba(157,114,255,0.15), transparent 35rem), #050507;
}

.result-page > div {
    max-width: 55rem;
}

.result-page > div > p:first-child {
    color: var(--vv-violet);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.result-page h1 {
    margin: 0.8rem 0 1.4rem;
    font-family: var(--vv-heading-font);
    font-size: clamp(4rem, 9vw, 9rem);
    font-weight: 400;
    letter-spacing: -0.055em;
    line-height: 0.82;
}

.result-page p {
    max-width: 50ch;
    color: var(--vv-muted);
}

@media (max-width: 900px) {
    :root {
        --vv-content-vw: 78vw;
    }

    .quote-content {
        width: min(86vw, 42rem);
    }

    .performer-content {
        width: 88vw;
    }

    .logo-stage {
        width: 80vw;
    }

    .inquiry-heading,
    .standard-hero {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .inquiry-heading {
        gap: 1.5rem;
    }

    .standard-hero {
        min-height: 68vh;
        gap: 1.6rem;
    }

    .standard-hero h1 {
        max-width: 9ch;
    }

    .prose-band,
    .split-story {
        grid-template-columns: 1fr;
    }

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

@media (max-width: 600px) {
    :root {
        --vv-content-vw: 88vw;
        --vv-fade-top: 14vh;
        --vv-fade-bottom: 14vh;
    }

    .site-header {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    .wordmark {
        font-size: 1.7rem;
    }

    .header-booking-cta {
        max-width: 9.75rem;
        min-height: 2.6rem;
        padding: 0.55rem 0.75rem;
        font-size: 0.56rem;
        line-height: 1.2;
    }

    .section-scroll-button {
        width: 2.65rem;
        height: 2.65rem;
    }

    .section-scroll-controls {
        bottom: 2.8rem;
        gap: 0.32rem;
        padding: 0.28rem;
    }

    body.is-inquiry-active .section-scroll-controls {
        top: 4.8rem;
        bottom: auto;
    }

    .autoplay-settings {
        right: 0;
        width: min(14rem, calc(100vw - 2rem));
    }

    .music-player {
        display: none !important;
    }

    .music-power {
        width: 3.65rem;
        height: 3.65rem;
    }

    .music-power > span:last-child {
        top: calc(100% + 0.35rem);
        font-size: 0.48rem;
    }

    .music-heading strong {
        font-size: 0.66rem;
    }

    .music-controls {
        gap: 0.28rem;
    }

    .site-credit {
        bottom: 0.72rem;
        left: 50%;
        width: min(12rem, calc(100vw - 2rem));
        max-width: min(12rem, calc(100vw - 2rem));
        overflow: hidden;
        font-size: clamp(0.52rem, 2.25vw, 0.62rem);
        letter-spacing: 0.045em;
        line-height: 1.2;
        text-align: center;
        text-overflow: ellipsis;
        transform: translateX(-50%);
    }

    .site-credit:hover,
    .site-credit:focus-visible {
        transform: translateX(-50%) translateY(-1px);
    }

    .quote-content blockquote {
        font-size: clamp(1.35rem, 5.4vw, 3.8rem);
    }

    .performer-content h2 {
        font-size: clamp(2.25rem, 10vw, 3.4rem);
    }

    .editorial-content h2 {
        font-size: clamp(2.15rem, 9.5vw, 3.25rem);
    }

    .editorial-content p {
        font-size: clamp(1.2rem, 5vw, 1.4rem);
        line-height: 1.52;
    }

    .hero-content {
        width: 88vw;
    }

    .mobile-hero-stack {
        display: block;
        width: clamp(7rem, 30vw, 8.75rem);
        max-height: 28vh;
        margin: 0 auto 0.45rem;
        object-fit: contain;
        filter: drop-shadow(0 0 1.35rem rgba(157, 114, 255, 0.48));
    }

    .hero-content h1 {
        font-size: clamp(5.1rem, 24vw, 8.2rem);
    }

    .hero-subtitle {
        margin-top: 1.2rem;
        font-size: clamp(0.5rem, 2.7vw, 1.35rem);
    }

    .hero-services {
        max-width: 96vw;
        font-size: 0.82rem;
        line-height: 1.7;
    }

    .video-intro-overlay h2 {
        font-size: clamp(1rem, 4.8vw, 3.25rem);
    }

    .video-intro-overlay p {
        max-width: 34ch;
        font-size: clamp(1.15rem, 5vw, 1.35rem);
        line-height: 1.48;
    }

    .scrub-indicator {
        grid-template-columns: auto 5rem auto;
    }

    .scrub-indicator div {
        width: 5rem;
    }

    .inquiry-section {
        width: auto;
        margin-top: clamp(7rem, 18vh, 12rem);
        margin-right: 1rem;
        margin-left: 1rem;
        padding-top: 0;
        padding-bottom: 8vh;
    }

    .homepage-authority { width: auto; margin: clamp(10rem, 28vh, 18rem) 1rem 0; padding: 1.4rem; }
    .homepage-authority > header { grid-template-columns: 1fr; }
    .homepage-authority > header > p { grid-column: auto; }
    .homepage-authority-grid { grid-template-columns: 1fr; }
    .homepage-authority-grid a { min-height: 16rem; }
    .analytics-consent { align-items: stretch; flex-direction: column; gap: 0.8rem; }
    .analytics-consent > div:last-child { justify-content: stretch; }
    .analytics-consent button { flex: 1; }

    .inquiry-heading {
        padding-right: 0.25rem;
        padding-left: 0.25rem;
    }

    .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem 0.65rem;
    }

    .field {
        grid-column: 1 / -1;
    }

    .field[data-mobile-pair] {
        grid-column: span 1;
    }

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

    .service-options[data-mobile-layout="two-by-two"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .inquiry-form {
        padding: 1.25rem;
    }

    .form-note {
        white-space: normal;
    }

    .standard-main {
        padding-top: 7rem;
    }

    .record-list article {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .inventory-search {
        grid-template-columns: 1fr;
    }

    .inventory-grid {
        grid-template-columns: 1fr;
    }

    .contract-title dl,
    .contract-section {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

@media (max-width: 767px) {
    .background-video,
    .background-poster {
        top: var(--vv-mobile-focal-y);
        right: auto;
        bottom: auto;
        left: var(--vv-mobile-focal-x);
        width: auto;
        min-width: 100%;
        max-width: none;
        height: 100vh;
        height: 100dvh;
        min-height: 100%;
        object-fit: cover;
        object-position: center;
        transform: translate(
            calc(-1 * var(--vv-mobile-focal-x)),
            calc(-1 * var(--vv-mobile-focal-y))
        );
    }
}

@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;
    }

    .loader {
        display: none;
    }

    body.is-loading {
        overflow: auto;
    }

    .cinematic-scene {
        height: auto;
        margin-bottom: 0;
        min-height: 100vh;
    }

    .scene-pin {
        position: relative;
        min-height: 100vh;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .reveal-content {
        opacity: 1 !important;
        transform: none !important;
    }

    .performer-sequence {
        height: auto;
        padding: 30vh 0;
    }

    .performer-pin {
        position: relative;
        height: auto;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .logo-stage {
        display: grid;
        height: auto;
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }

    .logo-stage img {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        max-height: 6rem;
        opacity: 1 !important;
        transform: none !important;
    }

    .video-scrub-scene {
        min-height: 100vh !important;
    }
}
