/* Vector lion motion (fieldmerit-lion.js). Transform and opacity only; no SVG filters.
   Idle breathing on a 5 s loop, part swaps spring in about 220 ms, the listening nod follows --lion-nod.
   Reduced motion: parts still swap, nothing loops or springs. */
.fm-lion{display:block;width:100%;height:100%;overflow:visible}
.fm-lion .fm-lion-headgroup{transform-box:fill-box;transform-origin:50% 88%;transform:rotate(var(--lion-nod,0deg));transition:transform .12s ease-out}
.fm-lion .lid-move{transition:transform .09s ease-in}
.fm-lion .iris-look{transition:transform .22s cubic-bezier(.3,1.35,.5,1)}
.fm-lion [data-brow]{transition:transform .22s cubic-bezier(.3,1.35,.5,1)}
.fm-lion-body .fm-lion-bodygroup{transform-box:fill-box;transform-origin:50% 100%;animation:fmLionBreath 5s ease-in-out infinite}
.fm-lion-head{animation:fmLionFloat 5s ease-in-out infinite}
.fm-lion[data-state="wince"] .fm-lion-headgroup{transform:translate(0,6px) rotate(-3deg)}
.fm-lion[data-pose="cheer"] .fm-lion-bodygroup{animation:fmLionCheer .6s cubic-bezier(.3,1.5,.5,1) 1 both}
@keyframes fmLionBreath{50%{transform:scale(1.012,1.018)}}
@keyframes fmLionFloat{50%{transform:translateY(-2px)}}
@keyframes fmLionCheer{0%{transform:translateY(18px) scale(.96)}60%{transform:translateY(-10px) scale(1.02)}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.fm-lion *,.fm-lion{animation:none!important;transition:none!important}}
html.reduce-motion .fm-lion,html.reduce-motion .fm-lion *{animation:none!important;transition:none!important}
/* Branding > Lion colour (Night Shift flag): preview on the dark stage plate the rep screen uses. */
.fcb-lion-row{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
.fcb-lion-preview{flex:none;width:120px;height:120px;border-radius:50%;background:radial-gradient(closest-side,#1c1f2a,#0a0b10);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
/* Each choice is its own pill with a clear ring, spaced apart; the preview is pinned to the top so picking Custom never moves it. */
.fcb-lion-options{display:grid;gap:10px;min-width:min(100%,240px)}
.fcb-lion-options label{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 16px 0 12px;border:1.5px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:14px;white-space:nowrap;cursor:pointer}
.fcb-lion-options label:has(input:checked){border-color:var(--fc-brand-primary-border,var(--fc-brand-primary,currentColor));background:color-mix(in srgb,var(--fc-brand-primary,#3090c0) 12%,transparent)}
.fieldcraft-branding .fcb-lion-options input[type="radio"]{appearance:none;-webkit-appearance:none;position:relative;width:22px;height:22px;min-height:0;margin:0;padding:0;flex:none;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 70%,transparent);background:transparent;cursor:pointer}
.fieldcraft-branding .fcb-lion-options input[type="radio"]:checked{border-color:var(--fc-brand-primary-border,var(--fc-brand-primary,currentColor))}
.fieldcraft-branding .fcb-lion-options input[type="radio"]:checked::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--fc-brand-primary-border,var(--fc-brand-primary,currentColor))}
.fieldcraft-branding .fcb-lion-options input[type="radio"]:focus-visible{outline:3px solid var(--fc-brand-focus,currentColor);outline-offset:2px}
.fieldcraft-branding .fcb-lion-options input[type="radio"]:disabled{opacity:.5;cursor:default}
.fcb-lion-custom[hidden]{display:none}
.fcb-lion-options .fcb-lion-custom{border-style:dashed;justify-content:space-between}
.fcb-lion-custom input{width:56px;height:40px}
/* One lion per viewer (fieldmerit-lion-spots.js): a placeholder that takes the place (and classes) of a paper-cut image. */
.fm-vlion{display:block;position:relative;aspect-ratio:1;object-fit:contain}
.fm-vlion>.fm-lion{position:absolute;inset:0;width:100%;height:100%}
.fm-vlion.is-unavailable{visibility:hidden}
