/* Seasonal layer. Removing .amandan-halloween restores the original theme. */
body.amandan-halloween {
  --night: #050e14;
  --night-soft: #0b1922;
  --gold: #ffac59;
  --gold-light: #ffd39b;
  --teal: #67e1dc;
  --paper: #0c1921;
  --paper-deep: #11232b;
  color: #eef4ef;
  background: #071219;
}

body.amandan-halloween .site-header.is-scrolled {
  background: rgba(5, 14, 20, .96);
  box-shadow: 0 1px 0 rgba(103, 225, 220, .2), 0 10px 45px #0006;
}
body.amandan-halloween .primary-nav .nav-cta {
  border-color: #eab47780;
  background: #54294a80;
}
body.amandan-halloween .primary-nav .nav-cta:hover { color: #10191d; background: #ffd39b; }
body.amandan-halloween .hero::before {
  background:
    linear-gradient(90deg, rgba(3, 14, 22, .93), rgba(4, 23, 31, .53) 58%, rgba(17, 5, 33, .38)),
    linear-gradient(0deg, #050e14, transparent 70%),
    var(--hero-image) center 28% / cover no-repeat;
}
body.amandan-halloween .hero::after {
  background:
    radial-gradient(ellipse at 85% 60%, #42e4dc28, transparent 45%),
    radial-gradient(ellipse at 36% 8%, #8655cd33, transparent 52%);
}
body.amandan-halloween .page-hero {
  background-image: linear-gradient(90deg, #03121bea, #07232b8a 60%, #160e2d66), linear-gradient(180deg, #0b162521, #06151ed4), var(--hero-image);
}
body.amandan-halloween .page-hero::after { background: radial-gradient(circle at 76% 24%, #79dbd92e, transparent 32%); }
body.amandan-halloween .page-hero-orbit { border-color: #71d8d430; box-shadow: 0 0 0 70px #79bcc207, 0 0 0 140px #a177cf06; }
body.amandan-halloween .hero h1 span:last-child { color: #70e3de; text-shadow: 0 0 45px #41d4d72b; }
body.amandan-halloween .hero-ambient { border-color: #80e5e633; box-shadow: 0 0 0 9vw #6ee8e809, 0 0 0 18vw #bd88ef08; }
body.amandan-halloween .hero-meta { background: #061820b3; border-color: #7bd3cd38; }
body.amandan-halloween .section {
  --ink: #eef4ef;
  --ink-soft: #d0dcdd;
  --muted: #b7c9cc;
  --wine: #ddbbff;
  --line: rgba(159, 222, 221, .19);
  color: #eef4ef;
}
body.amandan-halloween :is(.services-section, .services-page-section, .contact-section, .classes-page-section, .legal-section) {
  background: radial-gradient(ellipse at 95% 5%, #31505c36, transparent 40%), #0c1921;
}
body.amandan-halloween :is(.classes-feature, .process-section, .audience-section) {
  background: radial-gradient(ellipse at 0% 35%, #283e664f, transparent 50%), linear-gradient(135deg, #11242c, #080e19 66%, #19152a);
}
body.amandan-halloween .contact-cta { background: radial-gradient(ellipse at 0% 90%, #983e3833, transparent 58%), #192030; }
body.amandan-halloween .services-section::before { color: #78ced707; }
body.amandan-halloween :is(.feature-panel, .classes-page-grid .feature-panel, .cta-panel, .contact-card, .legal-document address, .legal-document table) {
  color: #eef4ef;
  background: #10242cf2;
  border-color: #8bd6d636;
}
body.amandan-halloween :is(.class-item, .class-item:hover) { background: #06181ec9; border-color: #8bd6d636; }
body.amandan-halloween .class-day { background: linear-gradient(145deg, #643965, #283e59); }
body.amandan-halloween .contact-icon { background: #583257; }
body.amandan-halloween .contact-cta .eyebrow { color: #ffbf7b; }
body.amandan-halloween .legal-document th { background: #4d345f; }
body.amandan-halloween .button-dark:hover { background: #543861; }
body.amandan-halloween .service-page-link { color: #89e7df; background: #112a32; border-color: #87cfcb38; }
body.amandan-halloween .service-seo-aside { background: #223148; }
body.amandan-halloween :is(.contact-form-shell, .service-details) {
  background: radial-gradient(ellipse at 100% 0%, #3c716c38, transparent 55%), #06151e;
}
body.amandan-halloween .site-footer { background: #050d14; border-top: 1px solid #74d7d42b; }
body.amandan-halloween .footer-glow { background: #64429044; }
body.amandan-halloween .section .button-primary { color: #111b20; }

/* Events, the calculator and class registration have their own component tokens. */
body.amandan-halloween :is(.amup-hero, .aest-hero) {
  background: radial-gradient(ellipse at 80% 25%, #35606c5c, transparent 45%), radial-gradient(ellipse at 12% 100%, #6045744f, transparent 40%), linear-gradient(135deg, #07151d, #172336 70%, #100f21);
}
body.amandan-halloween :is(.amup-list, .aest-section) { background: #0c1921; }
body.amandan-halloween .amup-card { color: #eef4ef; border-color: #8bd6d636; background: #10242c; }
body.amandan-halloween .amup-type { color: #ffc28c; background: #48342c; }
body.amandan-halloween :is(.amup-meta, .amup-copy > p) { color: #c6d2d5; }
body.amandan-halloween .amup-button { color: #85e9e1; border-color: #85e9e170; }
body.amandan-halloween .amup-empty { color: #c6d2d5; border-color: #82bdc34d; }
body.amandan-halloween .amup-orb { background: radial-gradient(circle, #6fd6d335, transparent 65%); }
body.amandan-halloween .aest-root {
  --aest-wine: #c2a1eb;
  --aest-wine-dark: #12212b;
  --aest-gold: #ffbd77;
  --aest-cream: #f3f5ed;
  --aest-paper: #0c1921;
  --aest-ink: #eef4ef;
  --aest-muted: #c0cdd0;
  --aest-line: #8bd6d636;
}
body.amandan-halloween :is(.aest-service-card, .aest-service-panel) { background: #11242c; color: #eef4ef; }
body.amandan-halloween .aest-service-card:has(input:checked) { background: linear-gradient(145deg, #50385b, #153444); border-color: #b698d8; }
body.amandan-halloween :is(.aest-step, .aest-service-check) { border-color: #91c9cc78; }
body.amandan-halloween .aest-question { color: #c8d7da; }
body.amandan-halloween :is(.aest-question select, .aest-question input, .aest-event-details input) { color: #eef4ef; background: #081820; border-color: #78999f; color-scheme: dark; }
body.amandan-halloween :is(.aest-question select, .aest-question input, .aest-event-details input):focus-visible { outline: 3px solid #70e3de; outline-offset: 3px; }
body.amandan-halloween .aest-service-card:has(input:focus-visible) { outline: 3px solid #70e3de; outline-offset: 3px; }
body.amandan-halloween :is(.aest-event-details, .aest-summary) { background: radial-gradient(ellipse at 95% 0, #72477840, transparent 55%), #081720; }
body.amandan-halloween .amandan-workshop-wrap {
  --accent: #81e2d9;
  --accent-2: #ffb777;
  --accent-3: #edc4ff;
  --text: #edf3ec;
  --bg: #07151c;
  --bg-2: #152837;
  --bg-3: #171326;
  --card-bg: linear-gradient(135deg, #1a363b, #1f263b);
  --card-border: #85d4d04d;
  --card-hover-b: #d5acf485;
  --input-border: #9ec9cb80;
  --input-focus-s: 0 0 0 3px #77e0da38;
  --btn-grad: linear-gradient(135deg, #ffd196, #ffad66);
  --btn-text: #142329;
  --section-grad: linear-gradient(180deg, #07151c, #11252e 60%, #0a1621);
  --reg-grad: linear-gradient(180deg, #0a1621, #18162a 70%, #081720);
  --footer-border: #8dd5cb33;
  --hero-fade: linear-gradient(to bottom, transparent, #07151c);
}
body.amandan-halloween .amandan-workshop-wrap .amandan-shimmer { background-image: linear-gradient(90deg, #81e2d9, #eff8e8, #eebcfc, #81e2d9); }
body.amandan-halloween .amandan-sparkles { display: none; }
body.amandan-halloween .amandan-workshop-wrap .ah-control-row { margin-top: 22px; }
body.amandan-halloween .amandan-workshop-wrap .ah-control { padding: 8px 13px; line-height: 1.4; }
body.amandan-halloween .amh-registration-intro { position: relative; isolation: isolate; overflow: hidden; padding-bottom: 75px; }
body.amandan-halloween .amh-registration-intro > :not(.ah-stage) { position: relative; z-index: 2; }

/* Full-screen cinematic decoration sits below navigation and dialogs. */
.ah-stage {
  position: fixed;
  inset: 0;
  z-index: 40;
  overflow: hidden;
  contain: strict;
  pointer-events: none !important;
  user-select: none;
  isolation: isolate;
  perspective: 1000px;
}
.ah-stage *, .ah-stage *::before, .ah-stage *::after { pointer-events: none !important; }
.ah-weather-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ah-edge-vignette { position: absolute; inset: 0; box-shadow: inset 0 0 90px 12px #01060a30; }
.ah-mist {
  position: absolute;
  width: 130%;
  height: 30%;
  left: -15%;
  bottom: -13%;
  opacity: .34;
  background: radial-gradient(ellipse at 25% 60%, #8baaad2b, transparent 42%), radial-gradient(ellipse at 68% 76%, #a0b8ba32, transparent 45%), radial-gradient(ellipse at 92% 38%, #73818e26, transparent 39%);
  filter: blur(15px);
  animation: ah-mist-drift 32s ease-in-out infinite alternate;
}
.ah-mist--far { bottom: 24%; height: 18%; opacity: .12; animation-duration: 43s; animation-direction: alternate-reverse; }
.ah-resting-pumpkin { position: absolute; right: -4px; bottom: 115px; width: clamp(62px, 8vw, 122px); opacity: .72; filter: drop-shadow(0 12px 13px #000b); }
.ah-resting-photo { width: 100%; height: auto; }
.ah-resting-pumpkin::after { content: ''; position: absolute; inset: 45% 20% 15%; background: #da7911; opacity: .08; filter: blur(18px); animation: ah-coal-breath 5s ease-in-out infinite alternate; }

/* Photographic full-body apparition, with a recessed timber doorway. */
.ah-encounter {
  position: absolute;
  right: 0;
  bottom: 105px;
  width: clamp(235px, 29vw, 440px);
  height: min(66vh, 600px);
  opacity: 0;
  visibility: hidden;
  perspective: 900px;
}
.ah-encounter::before { content: ''; position: absolute; inset: auto -10% -4% -10%; height: 20%; background: radial-gradient(ellipse, #687b8777, transparent 68%); filter: blur(14px); }
.ah-doorway {
  position: absolute;
  right: -5px;
  bottom: 3%;
  width: 43%;
  height: 86%;
  border: 8px solid #192324;
  border-bottom: 0;
  border-radius: 4px 4px 1px 1px;
  background: radial-gradient(ellipse at 60% 55%, #53646d, #15232f 45%, #03050c 78%);
  box-shadow: -5px 0 8px #0009, inset 0 0 35px #010208, 0 0 38px #6d94a626;
  perspective: 800px;
}
.ah-doorway::before { content: ''; position: absolute; inset: -16px -17px 0; border: 4px solid #5a60574d; border-radius: inherit; box-shadow: inset -3px 0 6px #000b, 0 0 1px 1px #111b20; }
.ah-door-haze { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; background: radial-gradient(ellipse at 40% 80%, #acb9b544, transparent 45%); }
.ah-door-haze::before { content: ''; position: absolute; inset: 65% -25% -20%; background: #b2c7ca38; filter: blur(20px); animation: ah-mist-drift 8s ease-in-out infinite alternate; }
.ah-door {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border: 2px solid #51584d;
  border-radius: inherit;
  transform-origin: 100% 50%;
  background: radial-gradient(ellipse at 26% 49%, #403d30 0 2%, transparent 3%), repeating-linear-gradient(87deg, #352f250e 0 2px, #8d847713 3px 4px, #090f140e 5px 7px), repeating-linear-gradient(90deg, transparent 0 24%, #070c118c 24.4% 25.4%), linear-gradient(105deg, #333933, #182021 60%, #0a121a);
  box-shadow: inset 3px 0 6px #a3a28a26, inset -4px 0 8px #000b;
}
.ah-door-photo { display: block; position: absolute; left: -15.3%; top: -3.05%; width: 130.6%; max-width: none; height: 106.2%; object-fit: fill; transform: scaleX(-1); filter: brightness(.82) saturate(.7); }
.ah-witch { position: absolute; inset: 0 auto 0 -9%; width: 85%; opacity: 0; transform-origin: 55% 96%; }
.ah-witch-breath { position: absolute; inset: 0; transform-origin: 50% 83%; filter: drop-shadow(4px 7px 15px #000b); }
.ah-witch-photo, .ah-witch-gaze { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
.ah-witch-gaze { opacity: 0; filter: brightness(1.2); mask-image: radial-gradient(ellipse 16% 6% at 50% 14%, #000 10%, transparent 100%); }
.ah-stage.is-encounter .ah-encounter { visibility: visible; animation: ah-encounter 14s ease-in-out both; }
.ah-stage.is-encounter .ah-witch { animation: ah-witch-arrival 14s ease-in-out both; }
.ah-stage.is-encounter .ah-witch-breath { animation: ah-witch-breathe 4.8s ease-in-out infinite; }
.ah-stage.is-encounter .ah-door { animation: ah-door-open 14s ease-in-out both; }
.ah-stage.is-encounter .ah-witch-gaze { animation: ah-witch-gaze 14s ease-in-out both; }

/* A real pumpkin crosses the room, approaches the lens, then passes below it. */
.ah-pumpkin-flight { position: absolute; left: 0; top: 0; width: clamp(90px, 18vw, 225px); aspect-ratio: 1; opacity: 0; visibility: hidden; transform-origin: 50% 55%; will-change: auto; }
.ah-flight-photo { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 10px 13px #000b) drop-shadow(0 0 8px #ec690b22); }
.ah-stage.is-flight .ah-pumpkin-flight { visibility: visible; will-change: transform, opacity, filter; animation: ah-pumpkin-approach 7s cubic-bezier(.33,.05,.5,1) both; }

/* Inline controls plus an always-reachable pause, opposite the voice assistant. */
.ah-control-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 22px; }
.ah-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  max-width: 100%;
  padding: 8px 13px;
  border: 1px solid #a4cec459;
  border-radius: 8px;
  color: #dbece7;
  background: #081820f2;
  font: inherit;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  text-align: left;
}
.ah-control:hover { border-color: #72dbd9; background: #18333d; }
.ah-control:focus-visible { outline: 3px solid #70e3de; outline-offset: 4px; }
.ah-control:disabled, body.amandan-halloween .ah-control:disabled { cursor: default; opacity: .8; }
.ah-control-icon { font-size: 1rem; line-height: 1; }
body.amandan-halloween .ah-control-row .ah-control { color: #dbece7; }
.ah-control-row--floating { position: fixed; left: max(12px, env(safe-area-inset-left)); bottom: max(12px, env(safe-area-inset-bottom)); z-index: 90; max-width: min(230px, calc(100vw - 125px)); margin: 0; }
.ah-control--floating { border-color: #a4cec479; box-shadow: 0 3px 18px #0007; backdrop-filter: blur(12px); }

/* A pause cancels moving layers immediately, keeping only the seasonal palette. */
body.amandan-halloween:is(.ah-paused, .ah-dormant, .ah-interacting, .nav-open) .ah-stage { visibility: hidden; }
body.amandan-halloween:is(.ah-paused, .ah-dormant, .ah-interacting, .nav-open) .ah-stage *,
body.amandan-halloween:is(.ah-paused, .ah-dormant, .ah-interacting, .nav-open) .ah-stage *::before,
body.amandan-halloween:is(.ah-paused, .ah-dormant, .ah-interacting, .nav-open) .ah-stage *::after { animation-play-state: paused !important; }
body.amandan-halloween:is(.ah-paused, .ah-dormant, .ah-interacting, .nav-open) .ah-encounter,
body.amandan-halloween:is(.ah-paused, .ah-dormant, .ah-interacting, .nav-open) .ah-pumpkin-flight { visibility: hidden; }
body.amandan-halloween.nav-open .ah-control-row--floating { visibility: hidden; }
body.amandan-halloween.ah-paused :is(.hero::before, .hero-ambient, .page-hero-orbit, .amandan-shimmer, .amandan-cta-text) { animation-play-state: paused; }

@keyframes ah-mist-drift { from { transform: translate3d(-5%, 0, 0) scaleY(.9); } to { transform: translate3d(5%, -13%, 0) scaleY(1.15); } }
@keyframes ah-coal-breath { from { opacity: .025; } to { opacity: .095; } }
@keyframes ah-witch-breathe { 0%, 100% { transform: translateY(1px) scaleX(.995); } 50% { transform: translateY(-2px) scaleX(1.008); } }
@keyframes ah-encounter { 0%, 100% { opacity: 0; } 11%, 91% { opacity: 1; } }
@keyframes ah-witch-arrival {
  0%, 4% { opacity: 0; filter: blur(9px); transform: translate3d(35px, 20px, 0) scale(.9); }
  24%, 55% { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) scale(1); }
  65% { opacity: 1; filter: blur(0); transform: translate3d(18%, -1%, 0) scale(.97) rotateY(-12deg); }
  81% { opacity: .88; filter: blur(.4px); transform: translate3d(61%, -3%, 0) scale(.71) rotateY(-42deg); }
  90%, 100% { opacity: 0; filter: blur(3px); transform: translate3d(70%, -5%, 0) scale(.54) rotateY(-57deg); }
}
@keyframes ah-door-open { 0%, 54% { transform: rotateY(0); } 67%, 86% { transform: rotateY(76deg); } 96%, 100% { transform: rotateY(0); } }
@keyframes ah-witch-gaze { 0%, 22%, 65%, 100% { opacity: 0; } 35%, 52% { opacity: .35; } }
@keyframes ah-pumpkin-approach {
  0% { opacity: 0; filter: blur(2px); transform: translate3d(var(--flight-start, -30vw), 61vh, 0) scale(.14) rotate(-28deg); }
  16% { opacity: .9; filter: blur(.3px); transform: translate3d(var(--flight-pass, 6vw), 54vh, 0) scale(.28) rotate(-14deg); }
  42% { opacity: 1; filter: blur(0); transform: translate3d(var(--flight-turn, 76vw), 29vh, 0) scale(.52) rotate(17deg); }
  61% { opacity: 1; filter: blur(0); transform: translate3d(var(--flight-close, 48vw), 37vh, 0) scale(1.15) rotate(-9deg); }
  80% { opacity: 1; filter: blur(0); transform: translate3d(calc(var(--flight-close, 48vw) - 12vw), 27vh, 0) scale(2.85) rotate(3deg); }
  87% { opacity: .92; filter: blur(1px); transform: translate3d(calc(var(--flight-close, 48vw) - 10vw), 38vh, 0) scale(3.05) rotate(9deg); }
  100% { opacity: 0; filter: blur(11px); transform: translate3d(70vw, 105vh, 0) scale(3.8) rotate(36deg); }
}
@media (max-width: 1080px) {
  body.amandan-halloween .primary-nav { background: #06151ef5; border-color: #61c5c440; }
  .ah-encounter { width: 300px; height: min(57vh, 480px); }
}
@media (max-width: 700px) {
  .ah-encounter { width: 205px; height: min(48vh, 355px); bottom: 98px; right: -3px; }
  .ah-doorway { border-width: 5px; }
  .ah-resting-pumpkin { width: 66px; bottom: 100px; opacity: .66; }
  .ah-mist { opacity: .21; }
  .ah-edge-vignette { box-shadow: inset 0 0 50px 5px #01060a24; }
  .ah-control-row { margin-top: 17px; }
  .ah-control-row--floating { margin-top: 0; }
  .ah-control { font-size: .7rem; }
}
@media (max-width: 600px) {
  body.amandan-halloween .hero::before { background-image: linear-gradient(90deg, #031017e8, #0717228a), linear-gradient(0deg, #050e14, transparent 75%), var(--hero-image-mobile, var(--hero-image)); }
}
@media (prefers-reduced-motion: reduce) {
  body.amandan-halloween .ah-stage { display: none !important; }
  body.amandan-halloween .ah-stage *, body.amandan-halloween .ah-stage *::before, body.amandan-halloween .ah-stage *::after, body.amandan-halloween .hero::before, body.amandan-halloween .hero-ambient { animation: none !important; }
}
@media print { .ah-stage, .ah-control-row { display: none !important; } }
