/* Wild One Safari: golden hour on the hero (the grass sways, the sun breathes, birds flap, the babies bob).
   The film lives in film.css; the CLASSIC opening below (.op-sfwild) only plays if the film can't load.
   Only transform and opacity animate. */
[data-theme="safari"] .title, [data-theme="safari"] .card h2, [data-theme="safari"] .age-badge b { font-family: "Lilita One", "Nunito", sans-serif; font-weight: 400; font-synthesis: none; }
[data-theme="safari"] .title { color: #4a3426; letter-spacing: .01em; text-shadow: 0 3px 0 rgba(255, 242, 204, .8); }
[data-theme="safari"] .eyebrow { color: var(--ink); font-weight: 800; }
[data-theme="safari"] .card { border-radius: 22px; box-shadow: 0 10px 28px rgba(74, 52, 38, .12), inset 0 0 0 1px #ecdcbc; }
[data-theme="safari"] .btn { border-radius: 16px; }
[data-theme="safari"] .btn, [data-theme="safari"] .card h2, [data-theme="safari"] .title, [data-theme="safari"] .eyebrow { overflow-wrap: anywhere; }

/* the hero's savanna */
[data-theme="safari"] .hero-art .sf-sunny { transform-box: fill-box; transform-origin: center; animation: sfi-breathe 6s ease-in-out infinite; }
[data-theme="safari"] .hero-art .sf-bird { transform-box: fill-box; transform-origin: center; animation: sfi-flap .9s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.25s); }
[data-theme="safari"] .hero-art .sf-sway { transform-box: fill-box; transform-origin: 50% 100%; animation: sfi-sway 5s ease-in-out infinite; }
[data-theme="safari"] .hero-art .sf-sway2 { animation-duration: 4s; animation-delay: -1.5s; }
[data-theme="safari"] .hero-art .sf-hpop { animation: sfi-bob 3.4s ease-in-out infinite; }
[data-theme="safari"] .hero-art .sf-hpop2 { animation-delay: -1.1s; }
[data-theme="safari"] .hero-art .sf-hpop3 { animation-delay: -2.2s; }
[data-theme="safari"] .hero-art .sf-wheel { transform-box: fill-box; transform-origin: center; }

/* the kid's photo: a travel stamp with a terracotta edge */
[data-theme="safari"] .kp-stamp .kp-win { box-shadow: 0 0 0 3px #fffaf0, 0 0 0 6px #cf7a4f; }

/* the Safari pass: canvas khaki with a stitched edge */
[data-theme="safari"] .ticket { background: linear-gradient(180deg, #fbf1dc, #efdcb2); color: #3d2a1f; border-radius: 16px; box-shadow: 0 10px 24px rgba(74, 52, 38, .2), inset 0 0 0 4px #efdcb2, inset 0 0 0 5.5px #b8804f; }
[data-theme="safari"] .ticket .t-main { border-right: 2px dashed #c99a6a; }
[data-theme="safari"] .ticket b { font-family: "Lilita One", sans-serif; font-weight: 400; color: #a5532c; }
[data-theme="safari"] .ticket small { color: #6b5544; letter-spacing: .16em; }
[data-theme="safari"].tv-slide h1, [data-theme="safari"].tv-slide h2 { font-family: "Lilita One", sans-serif; font-weight: 400; }

/* the CLASSIC opening (only if the film can't load): the sun rises, the grass sways, the babies pop up */
[data-theme="safari"] .op-card { background: rgba(255, 250, 240, .9); color: var(--cardInk); box-shadow: 0 18px 50px rgba(74, 52, 38, .2); }
[data-theme="safari"] .op-eyebrow { color: #9a4a25; }
[data-theme="safari"] .op-sfwild .op-line { color: var(--ink); text-shadow: 0 2px 0 rgba(255, 242, 204, .8); }
[data-theme="safari"] .op-sfwild.op-run .sf-sunny { animation: sfi-rise 2.8s .2s cubic-bezier(.2, .8, .2, 1) both; }
[data-theme="safari"] .op-sfwild.op-run .sf-hpop { animation: sfi-pop .8s calc(1.8s + var(--i, 0) * .2s) cubic-bezier(.3, 1.5, .5, 1) both; }
[data-theme="safari"] .op-sfwild.op-run .op-pal svg { transform-origin: 50% 100%; animation: sfi-pop .7s calc(2.8s + var(--i) * .18s) cubic-bezier(.3, 1.5, .5, 1) both; }

@keyframes sfi-breathe { 50% { scale: 1.04; } }
@keyframes sfi-flap { to { scale: 1 .55; } }
@keyframes sfi-sway { 0%, 100% { rotate: 0deg; } 50% { rotate: .6deg; } }
@keyframes sfi-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -2px; } }
@keyframes sfi-rise { from { opacity: .4; translate: 0 50px; } }
@keyframes sfi-pop { from { opacity: 0; translate: 0 14px; scale: .6; } }

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