/* Refined worn lettering and restrained analogue motion. No animation library. */
@font-face { font-family: 'Cormorant Garamond'; src: url('assets/cormorant-garamond-bold-italic.woff2') format('woff2'); font-style: italic; font-weight: 700; font-display: swap; }
.player-view { --aged-violet: #c99ce5; }
.hero-copy h1 em,.experience-body h2 em,.closing-invite p,.hero-tagline {
  font-family: 'Cormorant Garamond',Georgia,serif; font-style: italic; font-weight: 700;
  color: var(--aged-violet); letter-spacing: -.035em;
  text-shadow: 0 0 7px #c284e770,0 0 22px #bb75df55,0 0 44px #a85bd938;
  -webkit-mask: url('assets/aged-ink.svg') repeat; mask: url('assets/aged-ink.svg') repeat;
  -webkit-mask-size: 88px 88px; mask-size: 88px 88px;
}
.hero-copy h1 em { font-size: 1.2em; padding-right: .075em; line-height: .98; }
.experience-body h2 em { font-size: 1.12em; line-height: 1.14; padding-right: .055em; }
.closing-invite p { font-size: 38px; }
.glitch-text::before { color: #ead0ff; }
.glitch-text::after { color: #b27ed3; }
.experience-home h1 .glitch-text::before,.experience-home h2 .glitch-text::before { animation: title-echo 1.3s steps(1,end) infinite; }
.experience-home h1 .glitch-text::after,.experience-home h2 .glitch-text::after { animation: title-echo 1.3s steps(1,end) .08s infinite; }
.experience-home h2 .glitch-text::before { animation-delay: .62s; }
.experience-home h2 .glitch-text::after { animation-delay: .7s; }

/* The moving photographs occupy one continuous, duplicated strip. */
.hero-film { --decor-width: clamp(300px,30vw,450px); --decor-blend: 64px; position: absolute; inset: 0; z-index: -3; overflow: hidden; opacity: .86; }
.decor-track { display: flex; width: max-content; height: 100%; margin-left: calc(-1 * var(--decor-blend)); animation: decor-drift 240s linear infinite; }
.decor-strip { display: flex; flex: none; height: 100%; }
.decor-strip img { display: block; flex: none; width: calc(var(--decor-width) + var(--decor-blend)); margin-right: calc(-1 * var(--decor-blend)); height: 100%; object-fit: cover; object-position: center; -webkit-mask-image: linear-gradient(90deg,transparent,#000 var(--decor-blend)); mask-image: linear-gradient(90deg,transparent,#000 var(--decor-blend)); }
/* Neighboring images overlap under the next image's transparent edge. The two
   identical strips retain the same advance, including their shared junction. */
/* Each damaged strip has a physically narrow, stationary clipping window.
   Only the photograph inside that window shifts. The base track never glitches. */
.film-slice { position: absolute; top: calc(var(--slice-position) * 100%); left: 0; right: 0; height: clamp(6px,.9vw,12px); overflow: hidden; contain: paint; pointer-events: none; }
.film-slice-shift { position: absolute; top: calc(var(--slice-position) * var(--film-height,740px) * -1); left: 0; width: 100%; height: var(--film-height,740px); opacity: 0; filter: contrast(1.2) saturate(1.12); animation: film-slice-offset 1.8s steps(1,end) var(--slice-delay) infinite; }
.cinema-shade { background: linear-gradient(90deg,#08060ce0 3%,#0b071099 35%,#0b071020 75%),linear-gradient(0deg,#09070c 0%,#09070cbd 8%,transparent 40%,#0b071020 85%); }
.player-ambient::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 15%,#09070c66 52%,#09070c 96%); }
.player-view .ambient-halo { opacity: .12; }

/* These fragments sit above the hero, so they are visible at the top too. */
.player-confetti { display: none; }
.player-view .player-confetti { display: block; position: fixed; inset: 0; z-index: 35; pointer-events: none; overflow: hidden; }
.player-confetti i { width: 3px; height: 7px; border-radius: 1px; background: #c4a0df; box-shadow: 0 0 7px #bd87e15c; animation-name: purple-confetti; }
.player-confetti i:nth-child(3n) { width: 2px; height: 4px; background: #b28ec4; }
.player-confetti i:nth-child(4n) { width: 4px; height: 5px; border-radius: 0; }

.player-view .header { background: #0c0810c4; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.header nav a { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.header nav .nav-icon { width: 16px; height: 16px; color: #bfa3cd; }
.header nav .nav-book .nav-icon { color: inherit; }
.player-view nav { gap: 21px; }

/* Light spills outside the violet buttons; a dark inset keeps their depth. */
.player-view .button.primary { box-shadow: 0 0 19px #bb78df59,0 6px 34px #a75edb38,inset 0 0 22px #f1c5ff9c,inset 0 0 42px #79359c66,inset 0 1px #ffffff70; }
.player-view .button.primary:hover:not(:disabled),.player-view .button.primary:focus-visible { box-shadow: 0 0 25px #c18ae97a,0 7px 43px #ad62df4d,inset 0 0 27px #f8dbffc2,inset 0 0 48px #8740b066,inset 0 1px #ffffff90; }
.player-view .button.primary:disabled { box-shadow: 0 0 10px #bb78df20,inset 0 0 18px #31084238; }
.player-view nav .nav-book { box-shadow: 0 0 17px #b779d947,0 4px 27px #9955c62b,inset 0 0 20px #aa65d357,inset 0 0 8px #d5a5ee40; }
.player-view nav .nav-book:hover,.player-view nav .nav-book:focus-visible { box-shadow: 0 0 24px #bc83e46b,0 4px 34px #9955c640,inset 0 0 24px #b77cdd80,inset 0 0 9px #ddb4f566; }

/* A quiet violet-tinted setting, anchored below the calendar controls. */
.player-view .booking-calendar { background-color: #21122e; background-image: linear-gradient(180deg,#2c173dfc 0%,#271334f5 34%,#251331d6 67%,#190d26d9 100%),url('../assets/funeral.webp'); background-position: center,center bottom; background-size: cover,cover; background-repeat: no-repeat; box-shadow: inset 0 1px #e5c5ff0d,0 16px 50px #08040d33; }
.booking-checkout .phone-field { grid-column: 1 / -1; }
.phone-field small { color: #b9a8c5; font-size: 12px; font-weight: 400; }

/* The scenario uses three crossfading photographs with brief signal damage. */
.story-image { border-radius: 17px; border-color: #b18aca50; box-shadow: 0 0 26px #9870b221,0 0 68px #80559c18; }
.story-image::after { border-radius: inherit; z-index: 2; }
.story-screen { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.story-image .story-frame { opacity: 0; object-position: center; transition: opacity .65s ease; }
.story-image .story-frame.is-active { opacity: .91; }
.story-image .image-distortion { background-image: var(--current-decor); background-position: center; background-size: cover; animation: archive-tear 2.35s steps(1,end) infinite; z-index: 2; }
.story-screen.is-switching .image-distortion { animation: archive-switch-tear .65s steps(1,end) both; }
.tv-noise { position: absolute; z-index: 3; inset: -8px; background: url('assets/analogue-grain.svg') repeat; background-size: 128px 128px; opacity: .13; pointer-events: none; animation: television-grain .65s steps(3,end) infinite; }
.tv-noise::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg,#100b1626 0 1px,transparent 1px 4px); }
.story-screen.is-switching .tv-noise { opacity: 0; }
.story-image figcaption { right: 155px; z-index: 4; }
.story-image figcaption span:last-child { line-height: 1.7; }
.story-controls { position: absolute; z-index: 5; bottom: 21px; right: 17px; display: flex; align-items: center; gap: 0; }
.story-dot { width: 25px; height: 38px; padding: 8px; border: 0; background: transparent; cursor: pointer; }
.story-dot span { display: block; width: 6px; height: 6px; border: 1px solid #d1b8df; border-radius: 50%; background: #08060b; }
.story-dot[aria-pressed="true"] span { background: #c4a1d6; box-shadow: 0 0 8px #c4a1d660; }
.motion-toggle { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 8px; border: 1px solid #c19bd235; border-radius: 50%; color: #cbb4d8; background: #0b071390; cursor: pointer; }
.motion-toggle .ui-icon { width: 15px; height: 15px; }
.motion-toggle:hover { border-color: #c19bd2a0; background: #25182ba0; }
.motion-toggle:disabled { opacity: .45; cursor: default; }
.film-toggle { position: absolute; z-index: 3; top: 19px; right: max(25px,calc((100vw - 1176px)/2)); }
.story-dot:focus-visible,.motion-toggle:focus-visible { outline: 2px solid #cbb4d8; outline-offset: 2px; }
[data-motion-area].is-paused *,[data-motion-area].is-offscreen *,[data-motion-area].tab-hidden * { animation-play-state: paused !important; }
.is-paused .image-distortion,.is-offscreen .image-distortion,.is-paused .film-slice-shift { opacity: 0 !important; }

/* A single native selector keeps every answer available without a long list. */
.experience-faq { align-items: start; margin-bottom: 25px; }
.faq-intro { position: static; }
.faq-picker { min-width: 0; padding-top: 4px; }
.faq-picker .field { width: 100%; min-width: 0; margin: 0; color: #beabc8; font-size: 13px; }
.faq-picker select { width: 100%; min-width: 0; max-width: 100%; height: 52px; padding: 13px 36px 13px 15px; font-size: 14px; text-overflow: ellipsis; color: #e1d5e8; background-color: #19111f; border: 1px solid #b38ac14d; border-radius: 7px; }
.faq-answer:not([hidden]) { display: flex; align-items: start; gap: 15px; border-top: 1px solid #b38ac12c; margin-top: 25px; padding-top: 23px; animation: quiet-arrival .3s ease-out both; }
.faq-answer > .ui-icon { width: 23px; height: 23px; margin-top: 2px; color: #b89cc8; }
.faq-answer h3 { font-size: 18px; line-height: 1.5; font-weight: 500; color: #dbc8e5; margin-bottom: 12px; }
.faq-answer p { font-size: 14px; line-height: 1.9; color: #bbaac6; margin: 0; }

@keyframes decor-drift { to { transform: translateX(-50%); } }
@keyframes title-echo { 0%,89%,94%,100% { opacity: 0; transform: none; clip-path: inset(0); } 90% { opacity: .7; transform: translateX(-3px); clip-path: inset(24% 0 69%); } 92% { opacity: .5; transform: translateX(3px); clip-path: inset(68% 0 25%); } }
@keyframes film-slice-offset {
  0%,9%,100% { opacity: 0; transform: none; }
  2% { opacity: .95; transform: translateX(26px); }
  4% { opacity: .85; transform: translateX(-22px); }
  7% { opacity: .65; transform: translateX(16px); }
}
@keyframes purple-confetti {
  0% { opacity: 0; transform: translate3d(0,-15px,0) rotate(0) scale(1); }
  9% { opacity: .48; }
  76% { opacity: .28; }
  93%,100% { opacity: 0; transform: translate3d(var(--drift),105vh,0) rotate(var(--twist)) scale(0); }
}
@keyframes archive-tear { 0%,89%,95%,100% { opacity: 0; transform: none; clip-path: inset(0); } 90% { opacity: .7; transform: translateX(7px); clip-path: inset(25% 0 69%); } 92% { opacity: .55; transform: translateX(-5px); clip-path: inset(60% 0 35%); } 94% { opacity: .3; transform: translateX(3px); clip-path: inset(78% 0 19.5%); } }
@keyframes archive-switch-tear { 0%,24%,47%,73%,100% { opacity: 0; transform: none; clip-path: inset(0); } 6% { opacity: .95; transform: translateX(16px); clip-path: inset(18% 0 75%); } 15% { opacity: .9; transform: translateX(-13px); clip-path: inset(57% 0 38%); } 32% { opacity: .85; transform: translateX(11px); clip-path: inset(36% 0 60%); } 57% { opacity: .7; transform: translateX(-9px); clip-path: inset(79% 0 18%); } }
@keyframes television-grain { 0%,100% { transform: translate(0,0); } 33% { transform: translate(-3px,2px); } 66% { transform: translate(3px,-2px); } }

@media(max-width:1050px) {
  .player-view nav { gap: 14px; }
  .header nav a { gap: 5px; }
  .story-image figcaption { left: 20px; bottom: 66px; right: 20px; }
  .story-controls { left: 12px; right: auto; bottom: 16px; }
}
@media(max-width:760px) {
  .player-view .header { background: #0c0810cb; backdrop-filter: blur(5px); }
  .player-view nav { gap: 0 13px; font-size: 11px; }
  .header nav a { gap: 5px; }
  .header nav .nav-icon { width: 14px; height: 14px; }
  .player-view nav .nav-book { padding: 7px 13px; }
  .player-view nav .team-link { right: 132px; }
  .hero-copy h1 em { font-size: 1.26em; letter-spacing: -.035em; }
  .hero-film { --decor-width: 238px; --decor-blend: 44px; opacity: .75; }
  .decor-track { animation-duration: 240s; }
  .cinema-shade { background: linear-gradient(90deg,#08060cbe,#0b071048),linear-gradient(0deg,#09070c 0%,#09070cac 16%,transparent 60%); }
  .film-toggle { top: 10px; right: 15px; width: 32px; height: 32px; }
  .player-confetti i:nth-child(even) { display: block; }
  .player-confetti i:nth-child(n+12) { display: none; }
  .story-image { border-radius: 14px; }
  .story-image figcaption { right: 130px; bottom: 20px; left: 18px; font-size: 13px; }
  .story-image figcaption span:last-child { font-size: 9px; }
  .story-controls { left: auto; right: 11px; bottom: 20px; }
  .story-dot { width: 22px; padding: 6px; }
  .tv-noise { opacity: .12; animation-duration: 1s; }
  .story-image .image-distortion { animation-duration: 2.7s; }
  .faq-picker select { font-size: 16px; }
  .faq-answer:not([hidden]) { gap: 12px; }
  .faq-answer h3 { font-size: 16px; }
  .closing-invite p { font-size: 33px; }
}
@media(max-width:360px) {
  .player-view nav { font-size: 10px; gap: 0 8px; }
  .header nav .nav-icon { width: 12px; height: 12px; }
  .player-view nav .team-link { right: 127px; }
}
@media(prefers-reduced-motion:reduce) {
  .player-confetti { display: none !important; }
  .hero-film,.decor-track,.tv-noise,.image-distortion { animation: none !important; }
  .film-slice,.image-distortion { display: none !important; }
  .story-frame { transition: none !important; }
  .tv-noise { opacity: .06; }
}

/* The sleep trace reprises the original index, on a quiet instrument grid. */
.hero-whisper { display: block; border: 0; padding: 0; width: 310px; }
.hero-secret { display: flex; align-items: flex-start; gap: 12px; padding-top: 15px; }
.hero-secret > .ui-icon { width: 19px; height: 19px; margin-top: 3px; color: #c38ce5; }
.neuro-strip { position: relative; overflow: hidden; padding: 12px 10px 5px; border: 1px solid #c69fda2b; border-radius: 7px; background: linear-gradient(180deg,#0d0a11ba,#07060a80),repeating-linear-gradient(90deg,transparent 0 23px,#c69fda16 24px),repeating-linear-gradient(0deg,transparent 0 13px,#c69fda13 14px); box-shadow: inset 0 0 26px #622d771f,0 0 24px #9a54c012; }
.neuro-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #cab6d5; font: 500 10px/1.2 ui-monospace,monospace; letter-spacing: .045em; text-transform: uppercase; }
.neuro-meta > span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.neuro-dot { width: 5px; height: 5px; border-radius: 50%; background: #d8ffb3; box-shadow: 0 0 10px #d8ffb388; }
[data-brain-hz] { color: #e2c5ef; white-space: nowrap; }
.neuro-canvas { display: block; width: 100%; height: 58px; }
/* A half-lit first segment is deliberate; the displayed rating is one half out of four. */
.meter-track i.on.half { background: linear-gradient(90deg,#ddb0f1 0 50%,#060409 50%); border-color: #9e77b4; box-shadow: none; }
.meter-track i.on.half::after { right: 50%; background: radial-gradient(ellipse,#d2a3f180,transparent 70%); }

/* One compact surface: a patterned trace rail, contacts, then confirmation. */
.player-view .booking-checkout.summary { position: relative; overflow: hidden; padding: 23px 26px 23px 136px; border-radius: 12px; }
.booking-checkout .checkout-heading { gap: 12px; padding-bottom: 15px; margin-bottom: 15px; }
.booking-checkout .checkout-heading > .ui-icon { width: 29px; height: 29px; }
.experience-home .checkout-heading h2 { font-size: 26px; }
.booking-checkout .checkout-heading .eyebrow { font-size: 10px; margin: 0 0 4px; }
.booking-checkout .checkout-heading > .text-button { font-size: 12px; }
.booking-checkout .checkout-columns { display: block; }
.booking-checkout .checkout-selection { display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,.75fr); gap: 8px 30px; align-items: center; margin-bottom: 15px; padding-bottom: 14px; border-bottom: 1px solid #ffffff12; }
.booking-checkout .cart-line { margin: 0; padding: 0; gap: 15px; border: 0; }
.booking-checkout .cart-line strong { display: block; font-size: 15px; }
.booking-checkout .cart-line small { display: inline-block; margin: 5px 12px 0 0; font-size: 12px; line-height: 1.5; }
.booking-checkout .cart-line .text-button { font-size: 12px; }
.booking-checkout .cart-line > span { font-size: 15px; }
.booking-checkout .secret-checkout { grid-column: 2; grid-row: 1; margin: 0; font-size: 12px; line-height: 1.65; gap: 8px; }
.booking-checkout .secret-checkout .ui-icon { width: 16px; height: 16px; }
.booking-checkout form { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 12px 25px; align-items: center; }
.booking-checkout .fields { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1fr); align-items: start; gap: 15px; }
.booking-checkout .fields .field { margin: 0; font-size: 14px; gap: 6px; }
.booking-checkout .fields input { min-width: 0; width: 100%; min-height: 43px; padding: 10px 12px; }
.booking-checkout .phone-field { grid-column: auto; }
.booking-checkout .phone-field small { font-size: 12px; line-height: 1.4; }
.booking-checkout .code-control { padding: 0; min-width: 0; }
.booking-checkout .code-check { margin: 0; font-size: 13px; line-height: 1.5; }
.booking-checkout #code-field { margin-top: 10px; }
.booking-checkout .code-entry { margin-bottom: 0; }
.booking-checkout .total { margin: 0; padding: 0; border: 0; gap: 12px; }
.booking-checkout .total > span { font-size: 12px; }
.booking-checkout .total strong { font-size: 25px; }
.booking-checkout .check:not(.code-check) { margin: 0; font-size: 13px; line-height: 1.6; }
.booking-checkout .button.primary { min-height: 47px; }
.booking-checkout .form-error { grid-column: 1 / -1; margin: 0; }
.booking-checkout .form-error:empty { display: none; }
@media(max-width:1050px) { .hero-whisper { width: min(440px,100%); } }
@media(max-width:900px) {
 .booking-checkout form { grid-template-columns: minmax(0,1fr) 240px; gap: 12px 20px; }
 .booking-checkout .checkout-selection { gap: 12px 20px; }
 .booking-checkout .cart-line small { display: block; margin: 3px 0; }
}
@media(max-width:760px) {
 .player-view .booking-checkout.summary { padding: 19px 18px 19px 87px; }
 .booking-checkout .checkout-heading { flex-wrap: wrap; gap: 8px; padding-bottom: 12px; margin-bottom: 12px; }
 .booking-checkout .checkout-heading > .ui-icon { width: 24px; height: 24px; }
 .experience-home .checkout-heading h2 { font-size: 23px; }
 .booking-checkout .checkout-heading > .text-button { margin: 2px 0 0 32px; }
 .booking-checkout .checkout-selection { grid-template-columns: minmax(0,1fr); }
 .booking-checkout .secret-checkout { grid-column: auto; grid-row: auto; }
 .booking-checkout .fields { gap: 12px; }
 .booking-checkout .cart-line small { display: inline-block; margin: 4px 10px 0 0; }
}
@media(max-width:600px) {
 .booking-checkout form { grid-template-columns: minmax(0,1fr); gap: 14px; }
 .booking-checkout .fields { grid-template-columns: minmax(0,1fr); gap: 11px; }
 .booking-checkout .fields .field { font-size: 14px; }
 .booking-checkout .fields input { font-size: 16px; }
 .booking-checkout .total { padding-top: 12px; border-top: 1px solid #ffffff12; }
 .booking-checkout .total strong { font-size: 24px; }
 .booking-checkout .code-entry { flex-wrap: wrap; }
 .booking-checkout .code-entry input { width: 100%; flex-basis: 100%; }
}
@media(max-width:360px) {
 .player-view .booking-checkout.summary { padding: 17px 13px 17px 71px; }
 .experience-home .checkout-heading h2 { font-size: 21px; }
 .booking-checkout .cart-line { gap: 6px; }
}

.booking-checkout .checkout-lines { display: grid; gap: 12px; min-width: 0; }

/* Native select behavior, with one consistent inset chevron on every screen. */
select:not([multiple]) { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23cab3d9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-position: right 14px center !important; background-repeat: no-repeat !important; background-size: 12px 8px !important; padding-right: 40px !important; }
.slot .seat-label.no-availability,.date .no-slots { color: #ff9aab; font-weight: 550; }
@media(forced-colors:active) {
 select:not([multiple]) { appearance: auto; -webkit-appearance: auto; background-image: none !important; padding-right: 12px !important; }
}

/* A still wallpaper repeat replaces the animated side trace. */
.checkout-wallpaper { position: absolute; inset: 0 auto 0 0; width: 108px; border-right: 1px solid #d6a8ed4d; background-color: #24142d; background-image: linear-gradient(90deg,#0f061631,transparent 45%,#190b223d),url('assets/conte-vintage-wallpaper.webp'); background-size: 100% 100%,108px 108px; background-repeat: no-repeat,repeat; background-position: center,center top; box-shadow: inset -7px 0 21px #12081a44,inset -1px 0 #e7c2f724; }
.field-caption { display: inline-flex; align-items: center; gap: 7px; }
.field-caption .ui-icon { width: 17px; height: 17px; color: #c7a3dc; }
.player-view .button:not(.primary):not(.ghost) { box-shadow: inset 0 0 16px #bb7bdd29; }
.neuro-dot { animation: neuro-beacon 1.4s ease-in-out infinite; }
.wave-paused .neuro-dot { animation-play-state: paused; }
.neuro-canvas { mask-image: linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
.date .no-slots { display: flex; align-items: center; justify-content: center; }
.date-empty-line { width: min(56px,85%); height: 14px; stroke: #ff9aab; stroke-width: 2; stroke-linecap: round; fill: none; }

/* The four cards take turns with a gentle one-second movement and halo. */
.card-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.card-section-heading h2 { margin: 0; }
.experience-home .experience-levels .card-section-heading h2 { font-size: 35px; }
.card-section-heading .motion-toggle { flex: none; }
.level-card,.practical-card { position: relative; isolation: isolate; }
.card-icon { display: inline-block; position: relative; flex: none; width: 66px; height: 66px; color: #d7afea; }
.card-icon > .ui-icon { display: block; width: 100%; height: 100%; transform-origin: center; }
.practical-card > .card-icon { width: 42px; height: 42px; color: #bd9acf; }
.card-sparks { position: absolute; left: 50%; top: 50%; width: 0; height: 0; pointer-events: none; }
.card-sparks i { position: absolute; width: 3px; height: 4px; border-radius: 1px; opacity: 0; background: #dfb8f5; box-shadow: 0 0 6px #cf93ef80; }
.level-card::before,.practical-card::before { content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; opacity: 0; box-shadow: 0 0 26px #bb7ce65c,0 0 48px #9c4bc43d,inset 0 0 24px #b478d529; border: 1px solid #dbb1ee50; }
.card-awake { animation: card-wobble 1s ease-in-out both; transform-origin: 50% 70%; }
.card-awake::before { animation: card-halo 1s ease-in-out both; }
.card-awake > .card-icon > .ui-icon,.card-awake .level-top .card-icon > .ui-icon { animation: card-icon-sway 1s ease-in-out both; filter: drop-shadow(0 0 8px #c48ae58c); }
.card-awake[data-card-icon="fear"] .card-icon > .ui-icon,.card-awake[data-card-icon="people"] .card-icon > .ui-icon { animation-name: card-icon-float; }
.card-awake[data-card-icon="immersion"] .card-icon > .ui-icon,.card-awake[data-card-icon="clock"] .card-icon > .ui-icon { animation-name: card-icon-breathe; }
.card-awake .card-sparks i { animation: card-speck .6s ease-out var(--spark-delay) both; }
@keyframes neuro-beacon { 0%,100% { opacity: .3; box-shadow: 0 0 3px #d8ffb333; } 45%,65% { opacity: 1; box-shadow: 0 0 13px #d8ffb3aa; } }
@keyframes card-halo { 0%,100% { opacity: 0; } 30%,65% { opacity: 1; } }
@keyframes card-icon-sway { 0%,100% { transform: none; } 28% { transform: translateY(-1px) rotate(-4deg); } 55% { transform: translateY(-1.5px) rotate(3deg) scale(1.03); } 78% { transform: rotate(-1deg); } }
@keyframes card-icon-float { 0%,100% { transform: none; } 30% { transform: translateY(-2px) rotate(-1.5deg); } 65% { transform: translateY(-1px) rotate(1.5deg); } }
@keyframes card-icon-breathe { 0%,100% { transform: none; } 40% { transform: scale(1.07); } 68% { transform: scale(.99); } }
@keyframes card-speck { 0% { opacity: 0; transform: translate(0,0) scale(.6); } 18% { opacity: .85; } 100% { opacity: 0; transform: translate(var(--spark-x),var(--spark-y)) scale(0); } }
@media(max-width:760px) {
 .checkout-wallpaper { width: 68px; background-size: 100% 100%,108px 108px; }
 .card-section-heading { gap: 12px; }
 .experience-home .experience-levels .card-section-heading h2 { font-size: 29px; }
 .card-section-heading h2 { font-size: 29px; }
}
@media(max-width:360px) {
 .checkout-wallpaper { width: 56px; }
 .neuro-meta { font-size: 9px; gap: 7px; letter-spacing: .015em; }
 .card-section-heading h2,.experience-home .experience-levels .card-section-heading h2 { font-size: 25px; }
}
@media(prefers-reduced-motion:reduce) {
 .neuro-dot { animation: none !important; }
 .card-sparks,.level-card::before,.practical-card::before { display: none; }
}

/* The menu belongs to the document flow and leaves the screen on scroll. */
body { padding-top: 0; }
.site-topbar { position: relative; z-index: 50; }
.site-topbar > .header,.player-view .site-topbar > .header { position: relative; top: auto; z-index: auto; width: 100%; max-width: none; margin: 0; background: #0c0810c4; backdrop-filter: blur(8px); }
.skip { position: fixed; }

/* Centered identity above the story invitation, over the original moving film. */
.cinema-hero { flex-direction: column; align-items: center; justify-content: center; gap: 38px; padding-top: 35px; padding-bottom: 48px; }
.hero-brand { position: relative; text-align: center; width: 100%; }
.hero-logo { position: relative; width: clamp(280px,32vw,430px); max-width: 100%; margin: 0 auto; }
.hero-logo img { display: block; width: 100%; height: auto; filter: drop-shadow(0 3px 18px #09060b80); }
.hero-logo .hero-logo-echo { position: absolute; inset: 0; opacity: 0; pointer-events: none; filter: drop-shadow(3px 0 0 #ba7fedb0) drop-shadow(-2px 0 0 #d7c7ec80); animation: hero-logo-glitch 2.7s steps(1,end) infinite; }
.hero-tagline { font-size: clamp(25px,2.65vw,36px); line-height: 1.15; margin: 4px 0 0; padding: 0 3px 4px; }
.hero-tagline::before { animation: title-echo 1.3s steps(1,end) infinite; }
.hero-tagline::after { animation: title-echo 1.3s steps(1,end) .08s infinite; }
.hero-details { display: grid; grid-template-columns: minmax(0,1fr) 310px; align-items: end; gap: 40px; width: 100%; max-width: 1176px; }
.hero-details .hero-copy { width: 100%; min-width: 0; }
.hero-details .hero-copy h1 { font-size: clamp(45px,4.4vw,63px); margin-bottom: 21px; }
.hero-details .hero-whisper { position: static; width: 100%; margin: 0 0 14px; }
.hero-details .hero-promise { font-size: 16px; margin-bottom: 23px; }
.hero-details .hero-location { margin-bottom: 0; }
[data-motion-area].is-paused .hero-tagline::before,[data-motion-area].is-paused .hero-tagline::after,
[data-motion-area].is-offscreen .hero-tagline::before,[data-motion-area].is-offscreen .hero-tagline::after,
[data-motion-area].tab-hidden .hero-tagline::before,[data-motion-area].tab-hidden .hero-tagline::after { animation-play-state: paused; }
@keyframes hero-logo-glitch {
  0%,84%,91%,100% { opacity: 0; transform: none; clip-path: inset(0); }
  85% { opacity: .9; transform: translateX(12px); clip-path: inset(31% 0 64%); }
  87% { opacity: .7; transform: translateX(-10px); clip-path: inset(65% 0 30%); }
  89% { opacity: .8; transform: translateX(7px); clip-path: inset(47% 0 49%); }
}
@media(max-width:1050px) {
  .hero-details { grid-template-columns: minmax(0,1fr) 280px; gap: 28px; }
  .hero-details .hero-copy h1 { font-size: 47px; }
  .hero-details .hero-actions { gap: 15px; flex-wrap: wrap; }
}
@media(max-width:760px) {
  .cinema-hero { gap: 30px; padding-top: 28px; padding-bottom: 38px; }
  .hero-logo { width: min(280px,88%); }
  .hero-tagline { font-size: clamp(23px,6.3vw,31px); }
  .hero-details { grid-template-columns: minmax(0,1fr); gap: 27px; }
  .hero-details .hero-copy h1 { font-size: clamp(40px,8.3vw,58px); }
  .hero-details .hero-whisper { max-width: 440px; margin: 0; }
  .hero-details .hero-promise { font-size: 15px; }
}
@media(max-width:360px) {
  .hero-details .hero-copy h1 { font-size: 37px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-logo .hero-logo-echo,.hero-tagline::before,.hero-tagline::after { display: none; }
}

/* A horizontal repeat of the checkout wallpaper, as tall as the player field. */
.player-view .booking-calendar { position: relative; padding-top: 70px; }
.calendar-wallpaper { position: absolute; inset: 0 0 auto; height: 46px; border-radius: 9px 9px 0 0; border-bottom: 1px solid #d6a8ed4d; background-color: #24142d; background-image: linear-gradient(180deg,#0f061631,transparent 45%,#190b223d),url('assets/conte-vintage-wallpaper.webp'); background-size: 100% 100%,108px 108px; background-repeat: no-repeat,repeat; background-position: center,center center; box-shadow: inset 0 -7px 21px #12081a44,inset 0 -1px #e7c2f724; pointer-events: none; }
@keyframes card-wobble {
  0%,100% { transform: none; }
  22% { transform: translateY(-1.5px) rotate(-.3deg); }
  46% { transform: translateY(-1px) rotate(.25deg); }
  72% { transform: translateY(-.5px) rotate(-.12deg); }
}

/* Luminous, saturated hover surfaces, without a dark flash or black shadow. */
.player-view :is(.button,.date,.slot,.motion-toggle,.nav-book,.team-link) { transition: filter .2s ease,box-shadow .2s ease,border-color .2s ease,transform .2s ease; }
.player-view .button.primary:hover:not(:disabled),.player-view .button.primary:focus-visible:not(:disabled) { background: linear-gradient(115deg,#d7a9ef,#b784d7); filter: saturate(1.55) brightness(1.1); border-color: #f2d6ff; box-shadow: 0 0 27px #c97cfdbd,0 0 58px #b665ef7a,inset 0 0 25px #f9d4ffb3,inset 0 1px #fff9; }
.player-view :is(.button:not(.primary):not(.danger),.nav-book,.team-link,.motion-toggle,.date,.slot):hover:not(:disabled),
.player-view :is(.button:not(.primary):not(.danger),.nav-book,.team-link,.motion-toggle,.date,.slot):focus-visible:not(:disabled) { background: linear-gradient(135deg,#673b87,#452658); filter: saturate(1.3) brightness(1.1); border-color: #ddb0f6; box-shadow: 0 0 24px #c47cf0a1,0 0 48px #a957df66,inset 0 0 18px #c493eb52,inset 0 1px #ebc7ff70; }
.player-view .slot.selected:hover:not(:disabled),.player-view .date.selected:hover:not(:disabled) { border-color: #f6deff; box-shadow: 0 0 0 1px #f2cfff80,0 0 27px #d191ffc2,0 0 56px #b55bea80,inset 0 0 22px #d2a2f463; }
@media(max-width:760px) { .player-view .booking-calendar { padding-top: 64px; } }
@media(prefers-reduced-motion:reduce) { .card-awake { animation: none !important; } }

.hero-distinction { max-width: 540px; margin: -10px 0 23px; color: #dfcaeb; font-size: 14px; line-height: 1.7; }

/* Clear edges distinguish empty, black gauge segments from their backdrop. */
.meter-track i:not(.on) { background: #07040a; border: 1.5px solid #b397c6; box-shadow: 0 0 0 1px #d2b3e51a; }

/* Disabled time slots are subdued; their red time is still identifiable. */
.player-view .slot:disabled { opacity: .5; box-shadow: none; filter: none; }
.player-view .slot:disabled strong { color: #f2a4b2; opacity: .78; text-shadow: none; }
.player-view .slot:disabled .seat-dots { opacity: .55; }
.player-view .slot:disabled .seat-dot { box-shadow: none; }
.player-view .slot:disabled .seat-label { opacity: .75; }

/* Pauses include pseudo-elements, which otherwise keep their title glitches. */
.motion-suspended *, .motion-suspended *::before, .motion-suspended *::after,
.motion-dormant,.motion-dormant::before,.motion-dormant::after,.motion-dormant *,
.motion-dormant *::before,.motion-dormant *::after,
[data-motion-area]:is(.is-paused,.is-offscreen,.tab-hidden) *::before,
[data-motion-area]:is(.is-paused,.is-offscreen,.tab-hidden) *::after { animation-play-state: paused !important; }

/* Retain the moving photos, one sliced glitch and the card sequence on phones. */
.light-effects .film-slice ~ .film-slice { display: none; }
.light-effects .film-slice-shift { filter: none; }
.light-effects .player-confetti i:nth-child(n+7) { display: none; }
.light-effects .player-view .ambient-halo { animation: none; filter: none; }
.light-effects .tv-noise { animation: none; opacity: .08; }
.light-effects .card-sparks i:nth-child(n+4) { display: none; }
.light-effects .player-view .site-topbar > .header { backdrop-filter: none; -webkit-backdrop-filter: none; }
