/* Hover flourishes are one-shot; the original icons remain still at rest. */
@property --woodland-moon-hole{syntax:'<percentage>';inherits:false;initial-value:49%}
.woodland-theme-icon--night{mask:radial-gradient(circle at 75% 25%,transparent var(--woodland-moon-hole,49%),#000 calc(var(--woodland-moon-hole,49%) + 3%))}
.woodland-sound-bars::before,.woodland-sound-bars::after{content:'';position:absolute;border-right:1.5px solid currentColor;border-radius:50%;opacity:0;pointer-events:none}
.woodland-sound-bars::before{right:-4px;top:0;width:14px;height:20px}
.woodland-sound-bars::after{right:0;top:4px;width:8px;height:12px}
.woodland-sound-bars i{--sound-rest:6px;--sound-peak:15px}
.woodland-sound-bars i:nth-child(2){--sound-rest:11px;--sound-peak:19px}
.woodland-sound-bars i:nth-child(3){--sound-rest:16px;--sound-peak:11px}
.sound-toggle[aria-pressed=false] .woodland-sound-bars i{--sound-rest:4px}
@media(prefers-reduced-motion:no-preference){
 .is-hover-animating .woodland-theme-icon--day{animation:woodland-sun-turn 1000ms cubic-bezier(.4,0,.2,1) both}
 .is-hover-animating .woodland-theme-icon--night{animation:woodland-moon-phase 1050ms cubic-bezier(.4,0,.2,1) both}
 .woodland-controls .sound-toggle.is-hover-animating .woodland-sound-bars{opacity:1}
 .woodland-controls .sound-toggle.is-hover-animating .woodland-sound-bars i{animation:woodland-equalizer 760ms ease-in-out both}
 .woodland-controls .sound-toggle.is-hover-animating .woodland-sound-bars i:nth-child(2){animation-delay:65ms}
 .woodland-controls .sound-toggle.is-hover-animating .woodland-sound-bars i:nth-child(3){animation-delay:130ms}
 .sound-toggle.is-hover-animating .woodland-sound-bars::before{animation:woodland-sound-echo 700ms 200ms ease-out both}
 .sound-toggle.is-hover-animating .woodland-sound-bars::after{animation:woodland-sound-echo 700ms 70ms ease-out both}
 .woodland-toggle[aria-expanded=false].is-hover-animating .woodland-burger i{animation:woodland-burger-step 650ms cubic-bezier(.2,.7,.2,1) both}
 .woodland-toggle[aria-expanded=false].is-hover-animating .woodland-burger i:nth-child(2){animation-name:woodland-burger-answer;animation-delay:60ms}
 .woodland-toggle[aria-expanded=true].is-hover-animating .woodland-burger{animation:woodland-close-turn 700ms cubic-bezier(.2,.7,.2,1) both}
 .woodland-menu__nav a.is-hover-animating>span{animation:woodland-letter-lift 720ms cubic-bezier(.2,.7,.2,1) both;transform-origin:50% 75%}
 .woodland-menu__nav a.is-hover-animating .woodland-menu__arrow{animation:woodland-arrow-nudge 720ms ease-out both}
 .music-credits-link.is-hover-animating{animation:woodland-credit-nod 650ms ease both}
 .woodland-volume input::-webkit-slider-thumb{transition:transform 180ms ease,box-shadow 180ms ease}
 .woodland-volume input::-moz-range-thumb{transition:transform 180ms ease,box-shadow 180ms ease}
 .woodland-volume input:hover::-webkit-slider-thumb,.woodland-volume input:focus-visible::-webkit-slider-thumb{transform:scale(1.15);box-shadow:0 0 0 1px #f4511e,0 0 0 5px #f4511e1a}
 .woodland-volume input:hover::-moz-range-thumb,.woodland-volume input:focus-visible::-moz-range-thumb{transform:scale(1.15);box-shadow:0 0 0 4px #f4511e1a}
}
@keyframes woodland-sun-turn{0%{transform:scale(.68) rotate(0)}40%{transform:scale(.83) rotate(150deg)}70%{transform:scale(.72) rotate(285deg)}100%{transform:scale(.68) rotate(360deg)}}
@keyframes woodland-moon-phase{0%,100%{--woodland-moon-hole:49%;transform:rotate(0) scale(1)}40%,55%{--woodland-moon-hole:-3%;transform:rotate(-12deg) scale(1.12)}}
@keyframes woodland-equalizer{0%,100%{height:var(--sound-rest)}22%,65%{height:var(--sound-peak)}43%,82%{height:calc(var(--sound-peak) * .45)}}
@keyframes woodland-sound-echo{0%{opacity:0;transform:scale(.55)}25%{opacity:.7}100%{opacity:0;transform:scale(1.12)}}
@keyframes woodland-burger-step{0%,100%{translate:0 0;scale:1 1}30%{translate:3px -1px;scale:.86 1}65%{translate:-1px 0;scale:1.04 1}}
@keyframes woodland-burger-answer{0%,100%{translate:0 0;scale:1 1}30%{translate:-2px 1px;scale:1.1 1}65%{translate:1px 0;scale:.95 1}}
@keyframes woodland-close-turn{0%,100%{rotate:0}45%{rotate:18deg}75%{rotate:-5deg}}
@keyframes woodland-chevron-hop{0%,100%{translate:0 var(--chevron-rest)}35%{translate:0 calc(var(--chevron-rest) + 4px)}65%{translate:0 calc(var(--chevron-rest) - 1px)}}
@keyframes woodland-letter-lift{0%,100%{transform:translateY(0) rotate(0) scale(1)}40%{transform:translateY(-3px) rotate(-.7deg) scale(1.012)}70%{transform:translateY(1px) rotate(.2deg) scale(1)}}
@keyframes woodland-arrow-nudge{0%,100%{translate:0 0}40%{translate:5px 0}70%{translate:-1px 0}}
@keyframes woodland-credit-nod{0%,100%{translate:0 0}40%{translate:0 -2px}75%{translate:0 1px}}

@media(prefers-reduced-motion:no-preference){
 .woodland-toggle[aria-expanded=true].is-hover-animating .woodland-burger i{animation:woodland-close-stroke 750ms cubic-bezier(.2,.7,.2,1) both}
 .woodland-toggle[aria-expanded=true].is-hover-animating .woodland-burger i:nth-child(2){animation-name:woodland-close-stroke-answer;animation-delay:65ms}
 .woodland-toggle[aria-expanded=true].is-hover-animating [data-menu-label]{animation:woodland-credit-nod 750ms ease both}
 .woodland-volume-step.is-hover-animating{animation:woodland-credit-nod 650ms ease both}
}
@keyframes woodland-close-stroke{0%,100%{rotate:0;scale:1;translate:0 0}38%{rotate:20deg;scale:1.17;translate:1px 0}70%{rotate:-7deg;scale:.97;translate:0 0}}
@keyframes woodland-close-stroke-answer{0%,100%{rotate:0;scale:1;translate:0 0}38%{rotate:-20deg;scale:1.17;translate:-1px 0}70%{rotate:7deg;scale:.97;translate:0 0}}

@media(prefers-reduced-motion:no-preference){
 .woodland-volume-toggle.is-hover-animating .woodland-volume-speaker:not(.woodland-volume-sliders){animation:woodland-credit-nod 750ms ease both}
 .woodland-volume-toggle.is-hover-animating .woodland-volume-speaker__wave{animation:woodland-speaker-wave 750ms ease-in-out both}
 .woodland-volume-toggle.is-hover-animating .woodland-volume-speaker__wave:last-child{animation-delay:100ms}
}
@keyframes woodland-speaker-wave{0%,100%{opacity:1}25%{opacity:.2}55%{opacity:1}78%{opacity:.45}}

/* The live speaker and slider icons share the sun/moon's short, playful motion. */
.sound-toggle__speaker{transform-box:fill-box;transform-origin:center}
.sound-toggle__waves,.sound-toggle__mute{stroke-dasharray:32;stroke-dashoffset:0}
.woodland-volume-knob{--knob-rest:0px}
@media(prefers-reduced-motion:no-preference){
 .woodland-volume-knob{translate:var(--knob-rest) 0;transition:translate 420ms cubic-bezier(.2,.7,.2,1)}
 .woodland-volume-toggle[aria-expanded=true] .woodland-volume-knob--upper{--knob-rest:4px}
 .woodland-volume-toggle[aria-expanded=true] .woodland-volume-knob--lower{--knob-rest:-4px}
 .sound-toggle.is-hover-animating .sound-toggle__speaker{animation:woodland-speaker-rock 760ms cubic-bezier(.2,.7,.2,1) both}
 .sound-toggle.is-hover-animating .sound-toggle__waves{animation:woodland-wave-draw 820ms ease both}
 .sound-toggle.is-hover-animating .sound-toggle__waves--outer{animation-delay:100ms}
 .sound-toggle.is-hover-animating .sound-toggle__mute{animation:woodland-mute-draw 720ms ease both}
 .woodland-volume-toggle.is-hover-animating .woodland-volume-knob--upper{animation:woodland-slider-upper 900ms cubic-bezier(.2,.7,.2,1) both}
 .woodland-volume-toggle.is-hover-animating .woodland-volume-knob--lower{animation:woodland-slider-lower 900ms 70ms cubic-bezier(.2,.7,.2,1) both}
}
@keyframes woodland-speaker-rock{0%,100%{transform:rotate(0) scale(1)}28%{transform:rotate(-9deg) scale(1.08)}58%{transform:rotate(5deg) scale(.98)}80%{transform:rotate(-2deg) scale(1.02)}}
@keyframes woodland-wave-draw{0%,100%{stroke-dashoffset:0;opacity:1}22%{stroke-dashoffset:32;opacity:.15}68%{stroke-dashoffset:0;opacity:1}}
@keyframes woodland-mute-draw{0%,100%{stroke-dashoffset:0}25%{stroke-dashoffset:32}70%{stroke-dashoffset:0}}
@keyframes woodland-slider-upper{0%,100%{translate:var(--knob-rest) 0}32%{translate:5px 0}68%{translate:-2px 0}}
@keyframes woodland-slider-lower{0%,100%{translate:var(--knob-rest) 0}32%{translate:-5px 0}68%{translate:2px 0}}
