/* Celestial Starlight (Signature Collection): the invite, the Star chart pass, the orbit photo frame and Party TV.
   The opening film's styles live in film.css. */
[data-theme="celestial"] { --cs-gold: #efd689; --cs-brass: #c99a4a; }
[data-theme="celestial"] .title, [data-theme="celestial"] .card h2, [data-theme="celestial"] .divider, [data-theme="celestial"] .age-badge b { font-family: "Marcellus", Georgia, serif; font-weight: 400; font-synthesis: none; }
[data-theme="celestial"] .title { letter-spacing: .02em; text-shadow: 0 0 18px rgba(255, 236, 180, .35); }
[data-theme="celestial"] .eyebrow { font-family: "Jost", sans-serif; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; font-size: .78rem; }
[data-theme="celestial"] .card { border-radius: 20px; box-shadow: var(--shadow), inset 0 0 0 1px rgba(201, 154, 74, .35); }
[data-theme="celestial"] .divider::before, [data-theme="celestial"] .divider::after { height: 1px; opacity: .8; background: linear-gradient(90deg, transparent, var(--cs-gold)); }
[data-theme="celestial"] .divider::after { background: linear-gradient(90deg, var(--cs-gold), transparent); }
[data-theme="celestial"] .hero-art .cs-tw { animation: csi-tw 3.2s ease-in-out infinite; animation-delay: calc(var(--i) * -.45s); }
@keyframes csi-tw { 50% { opacity: .35; } }

/* the kid's photo: the Kid Photo hook's glow ring (theme.photo.frame "circle"), with an orbit and a
   star node here, like the moon in the film. Sizing, crop and the host's frame pick stay with the hook. */
[data-theme="celestial"] .kp-circle .kp-win { box-shadow: 0 0 0 2px var(--cs-gold), 0 0 0 calc(var(--kp-w) * .09) rgba(239, 214, 137, .12), 0 0 0 calc(var(--kp-w) * .1) rgba(239, 214, 137, .5), 0 0 calc(var(--kp-w) * .3) calc(var(--kp-w) * .07) rgba(255, 240, 200, .35); }
[data-theme="celestial"] .kp-circle::after { content: ""; position: absolute; right: calc(var(--kp-w) * -.08); top: calc(var(--kp-w) * .07); width: calc(var(--kp-w) * .1); aspect-ratio: 1; border-radius: 50%; background: #fff6d6; box-shadow: 0 0 8px 2px rgba(255, 246, 214, .8); pointer-events: none; }

/* the pass: a Star chart, midnight paper with brass rules and a constellation */
[data-theme="celestial"] .ticket { background: radial-gradient(120% 140% at 80% 10%, #2a2c66, #0d1435 70%); color: #f0f6fc; border-radius: 12px;
  box-shadow: 0 12px 26px rgba(7, 13, 37, .4), inset 0 0 0 1.5px var(--cs-brass), inset 0 0 0 5px rgba(13, 20, 53, 0), inset 0 0 0 6px rgba(239, 214, 137, .35); }
[data-theme="celestial"] .ticket .t-main { border-right: 1px dashed rgba(239, 214, 137, .45); }
[data-theme="celestial"] .ticket small { color: var(--cs-gold); letter-spacing: .24em; font-family: "Jost", sans-serif; font-weight: 700; }
[data-theme="celestial"] .ticket b { font-family: "Marcellus", Georgia, serif; font-weight: 400; color: #fff6d6; }
[data-theme="celestial"] .ticket .t-stub { background: radial-gradient(circle at 30% 30%, rgba(255, 246, 214, .9) 0 1.5px, transparent 2px) 0 0 / 23px 19px, radial-gradient(circle, rgba(255, 246, 214, .6) 0 1px, transparent 1.5px) 7px 9px / 17px 23px; }

/* Party TV */
[data-theme="celestial"].tv-slide h1, [data-theme="celestial"].tv-slide h2 { font-family: "Marcellus", Georgia, serif; font-weight: 400; letter-spacing: .02em; text-shadow: 0 0 24px rgba(255, 236, 180, .45); }
[data-theme="celestial"].tv-slide .tv-big { font-family: "Jost", sans-serif; font-weight: 500; color: var(--cs-gold); }

@media (prefers-reduced-motion: reduce) { [data-theme="celestial"] .hero-art * { animation: none !important; } }
