/* Woodland Friends: fireflies drift and glow, ferns sway, the sign rocks a little on its ropes and the
   friends blink. The classic opening ("intowoods", only if the film can't load): the forest eases in
   from close up, the fireflies light and the friends pop up. Only transform and opacity animate;
   reduced motion shows the finished forest, still. */
[data-theme="woodland"] { --wd-trail: repeating-linear-gradient(90deg, #9cb88f 0 14px, #c8643b 14px 20px, #9cb88f 20px 34px, #f2c25b 34px 40px); }
[data-theme="woodland"] .hero-sky .hero-art { overflow: visible; }
[data-theme="woodland"] .hero-art .wd-ff, [data-theme="woodland"].tv-bd .wd-ff { transform-box: fill-box; transform-origin: center; animation: wd-float 5s ease-in-out infinite alternate, wd-glow 2.4s ease-in-out infinite; animation-delay: calc(var(--i) * -1.1s), calc(var(--i) * -.6s); }
[data-theme="woodland"] .hero-art .wd-sway, [data-theme="woodland"].tv-bd .wd-sway { transform-box: fill-box; transform-origin: 50% 100%; animation: wd-sway 4.6s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -1.2s); }
[data-theme="woodland"] .hero-art .wd-sg { transform-box: fill-box; transform-origin: 50% -40%; animation: wd-rock 5s ease-in-out infinite alternate; }
[data-theme="woodland"] .card { border-radius: 24px; box-shadow: var(--shadow), inset 0 0 0 1.5px rgba(94, 125, 74, .22); }
[data-theme="woodland"] .btn { border-radius: 999px; }
[data-theme="woodland"] .title { letter-spacing: .005em; text-shadow: 0 2px 0 rgba(255, 255, 255, .7), 0 0 18px rgba(242, 194, 91, .35); }
[data-theme="woodland"] .eyebrow { color: var(--ink); letter-spacing: .08em; }
[data-theme="woodland"] .divider::before, [data-theme="woodland"] .divider::after { background: var(--wd-trail); height: 3px; border-radius: 3px; }
[data-theme="woodland"] .btn, [data-theme="woodland"] .card h2, [data-theme="woodland"] .title, [data-theme="woodland"] .eyebrow { overflow-wrap: anywhere; }

/* the kid's photo: a log slice with tree rings */
[data-theme="woodland"] .kp-circle .kp-win { box-shadow: 0 0 0 3px #fbf4e4, 0 0 0 calc(var(--kp-w) * .06) #d9b47e, 0 0 0 calc(var(--kp-w) * .085) #7d5a42, 0 10px 24px rgba(37, 48, 31, .25); }

/* the Forest pass: cream paper, a sage stub with toadstool dots, a stitched perforation */
[data-theme="woodland"] .ticket { background: linear-gradient(115deg, #fffcf3 0%, #f3f0e2 50%, #e8efdf 100%); color: #25301f; border-radius: 18px; box-shadow: 0 12px 26px rgba(37, 48, 31, .16), inset 0 0 0 1.5px rgba(94, 125, 74, .4); }
[data-theme="woodland"] .ticket .t-main { border-right: 2px dashed rgba(125, 90, 66, .55); }
[data-theme="woodland"] .ticket small { color: #4f6b3d; letter-spacing: .2em; font-weight: 800; }
[data-theme="woodland"] .ticket b { font-family: "Grandstander", sans-serif; font-weight: 800; color: #25301f; }
[data-theme="woodland"] .ticket .t-stub { background: radial-gradient(circle at 50% 50%, #fbf4e4 0 14%, #b3405f 15% 30%, transparent 32%) 0 0 / 24px 24px, linear-gradient(180deg, #c9d8b6, #9cb88f); }

/* the classic opening (only if the film can't load) */
[data-theme="woodland"] .op-art svg { overflow: visible; }
[data-theme="woodland"] .op-card:not(.fm-cta) { background: rgba(255, 252, 243, .93); color: var(--cardInk); box-shadow: 0 18px 50px rgba(37, 48, 31, .22); }
[data-theme="woodland"] .op-intowoods .op-line { color: #25301f; text-shadow: 0 1px 0 #fff, 0 0 14px rgba(255, 255, 255, .9); }
[data-theme="woodland"] .op-intowoods.op-run .wd-ff { animation: wd-in 1s calc(1.4s + var(--i) * .16s) cubic-bezier(.22, 1, .36, 1) both, wd-float 5s 2.6s ease-in-out infinite alternate; }
[data-theme="woodland"] .op-art { transform: scale(1.35); transform-origin: 50% 60%; transition: opacity 1.2s ease, transform 4.6s cubic-bezier(.22, 1, .36, 1); }
[data-theme="woodland"] .op-pal { transform: translateY(40vh) scale(.6); opacity: 0; transition-property: transform, opacity; transition-timing-function: cubic-bezier(.34, 1.4, .64, 1); }
[data-theme="woodland"] .op-run .op-art, [data-theme="woodland"] .op-run .op-pal { opacity: 1; transform: none; }
[data-theme="woodland"] .op-final .op-art, [data-theme="woodland"] .op-final .op-pal { opacity: 1; transform: none; transition: none; }
[data-theme="woodland"] .critter .cr-eye { transform-box: fill-box; transform-origin: center; animation: wd-blink 5.4s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.3s - .7s); }
@media (max-aspect-ratio: 4/5) { [data-theme="woodland"] .op-art svg { transform: scale(1.3); transform-origin: 50% 100%; } }

@keyframes wd-float { from { transform: translate(0, 0); } 50% { transform: translate(4px, -6px); } to { transform: translate(-3px, 3px); } }
@keyframes wd-glow { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
@keyframes wd-sway { from { transform: rotate(-3deg); } to { transform: rotate(3deg); } }
@keyframes wd-rock { from { transform: rotate(-1.5deg); } to { transform: rotate(1.5deg); } }
@keyframes wd-in { from { opacity: 0; transform: scale(.2); } }
@keyframes wd-blink { 0%, 93%, 100% { transform: scaleY(1); } 95.5% { transform: scaleY(.08); } }
@media (prefers-reduced-motion: reduce) {
  [data-theme="woodland"] .hero-art *, [data-theme="woodland"] .critter .cr-eye, [data-theme="woodland"] .op-art *, [data-theme="woodland"].tv-bd * { animation: none !important; }
}
