.instrument{animation:none;transform:rotateX(45deg);transition:transform .15s ease-out}
.scene{touch-action:none;cursor:grab;aspect-ratio:1.22;margin-top:0}.scene.dragging{cursor:grabbing}.scene.dragging .instrument{transition:none}
.center-figure{position:absolute;left:37%;top:37%;width:26%;height:26%;transform:translateZ(30px);pointer-events:none;color:var(--accent);border:1px solid #7d7152;border-radius:50%;background:#13232d;display:grid;place-items:center;box-shadow:0 8px 0 #263944,0 13px 18px #0005}.center-figure svg{width:93%;height:93%;overflow:visible}
.decan-ring{display:none}.decans-visible .decan-ring{display:initial}.decans-visible .element-label{display:none}[hidden]{display:none!important}
.view-presets{display:flex;gap:5px}.view-presets button{font-size:11px!important;padding:8px 12px!important;width:auto!important}.view-presets button[aria-pressed=true]{border-color:var(--gold);background:#dfbc7914}
.camera-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;width:min(90%,480px);margin:14px 0 2px}.camera-controls label{font-size:11px;color:var(--muted);cursor:pointer}.camera-controls output{float:right;color:var(--text)}.camera-controls input{width:100%;height:30px;accent-color:var(--gold);cursor:pointer;display:block;margin:0}
.camera-controls input{height:44px}
#toggleDecans{margin:2px 0 13px;font-size:12px}#toggleDecans[aria-pressed=true]{border-color:var(--gold);background:#dfbc7910}
.living-section{margin:0 0 18px}.living-section .section-title{margin:17px 0 9px}.living-scene{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 0 10px}.living-scene figure{margin:0;min-width:0;text-align:center;color:var(--accent)}.living-scene figure+figure{border-left:1px solid var(--line)}.living-scene svg{display:block;width:100%;height:auto;overflow:visible}.living-scene figcaption{font-size:10px;color:var(--text);padding:0 2px}.living-scene figcaption span{display:block;text-transform:uppercase;letter-spacing:1px;font-size:8px;color:var(--muted);margin-bottom:3px}.living-caption{color:var(--muted);font-size:10px;line-height:1.6;margin:8px 0}
.ram-charge{animation:charge 3.8s infinite}.ram-head{transform-origin:120px 65px;animation:nod 3.8s infinite}.impact{animation:impact 3.8s infinite}.graze{transform-origin:103px 57px;animation:graze 4s ease-in-out infinite}
.talk-left,.talk-right{transform-box:fill-box;transform-origin:center bottom;animation:converse 4s ease-in-out infinite}.talk-right{animation-delay:-2s}.exchange{animation:exchange 4s infinite}.crab-step{animation:scuttle 4.5s ease-in-out infinite}.claw-left,.claw-right{transform-box:fill-box;transform-origin:center bottom;animation:claw 3s infinite}.claw-right{animation-delay:-1.5s}
.lion-breathe{transform-box:fill-box;transform-origin:center bottom;animation:proud 4s ease-in-out infinite}.roar{animation:impact 4s infinite}.sorter{transform-box:fill-box;transform-origin:center bottom;animation:sorter 3s ease-in-out infinite}.grain-drop{animation:grain 3s infinite}.balance{transform-origin:80px 51px;animation:balance 5s ease-in-out infinite}.sting{transform-origin:100px 89px;animation:sting 4s ease-in-out infinite}.archer{animation:aim 4s ease-in-out infinite}.arrow-flight{animation:arrow 4s infinite}.climb{animation:climb 5s infinite}.pour{transform-origin:104px 33px;animation:pour 4s ease-in-out infinite}.water-flow{stroke-dasharray:5 7;animation:flow 1.5s linear infinite}.fish-orbit{animation:orbit 12s linear infinite}
.sprout{transform-origin:80px 120px;animation:sprout 5s ease-in-out infinite}.root-grow{transform-origin:80px 66px;animation:root 5s ease-in-out infinite}.petals{transform-box:fill-box;transform-origin:center;animation:bloom 5s ease-in-out infinite}.pollen{animation:drift 5s infinite}.canopy{transform-origin:80px 70px;animation:canopy 5s ease-in-out infinite}.droplets{animation:drip 4s infinite}.wheat-sway,.fruit-sway{transform-origin:80px 120px;animation:sway 5s ease-in-out infinite}.falling-leaf{animation:fall 5s infinite}.seed-drift{animation:drift 5s infinite}.seeds-pulse{animation:seed 5s ease-in-out infinite}.seed-soak{transform-origin:80px 108px;animation:soak 5s infinite}
.first-step{animation:step 4s infinite}.watering{transform-origin:86px 42px;animation:pour 4s infinite}.cradle{transform-box:fill-box;transform-origin:center bottom;animation:converse 4.5s infinite}.perform{transform-box:fill-box;transform-origin:center bottom;animation:proud 4s infinite}.grain-sort{animation:grain 3s infinite}.gift{animation:gift 5s ease-in-out infinite}.release{animation:release 5s infinite}.compass{transform-origin:120px 74px;animation:balance 5s infinite}.brick-lift{animation:brick 4s infinite}.builder{animation:sorter 4s infinite}.network{animation:flow 2s linear infinite}.share{animation:converse 5s infinite}.meditate{animation:meditate 6s ease-in-out infinite}.ripple{transform-origin:78px 124px;animation:ripple 6s infinite}
.paused .living-scene *,.paused .center-figure *{animation-play-state:paused!important}
@keyframes charge{0%,25%,80%,100%{transform:translateX(-5px)}45%,65%{transform:translateX(4px)}}
@keyframes nod{0%,25%,80%,100%{transform:rotate(0)}45%,65%{transform:rotate(10deg)}}
@keyframes impact{0%,35%,80%,100%{opacity:.1}50%,65%{opacity:1}}
@keyframes graze{0%,100%{transform:rotate(0)}50%{transform:rotate(22deg) translateY(9px)}}
@keyframes converse{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@keyframes exchange{0%,100%{opacity:.3;transform:translateX(-3px)}50%{opacity:1;transform:translateX(3px)}}
@keyframes scuttle{0%,100%{transform:translateX(-6px)}50%{transform:translateX(6px)}}
@keyframes claw{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(8deg)}}
@keyframes proud{0%,100%{transform:scaleY(.97)}50%{transform:scaleY(1.04)}}
@keyframes sorter{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(7deg)}}
@keyframes grain{0%,15%{transform:translateY(-12px);opacity:0}35%{opacity:1}85%,100%{transform:translateY(10px);opacity:0}}
@keyframes balance{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
@keyframes sting{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(10deg)}}
@keyframes aim{0%,100%{transform:translateX(-2px)}50%{transform:translateX(2px)}}
@keyframes arrow{0%,45%{transform:translateX(-5px);opacity:1}70%,100%{transform:translateX(16px);opacity:0}}
@keyframes climb{0%,100%{transform:translate(-4px,4px)}50%{transform:translate(7px,-7px)}}
@keyframes pour{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(12deg)}}
@keyframes flow{to{stroke-dashoffset:-24}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes sprout{0%,100%{transform:scaleY(.25)}55%,75%{transform:scaleY(1)}}
@keyframes root{0%,100%{transform:scaleY(.85)}50%{transform:scaleY(1.05)}}
@keyframes bloom{0%,100%{transform:scale(.72)}50%{transform:scale(1.05)}}
@keyframes drift{0%{transform:translate(-10px,8px);opacity:0}25%,65%{opacity:1}100%{transform:translate(8px,-10px);opacity:0}}
@keyframes canopy{0%,100%{transform:scaleX(.96)}50%{transform:scaleX(1.04)}}
@keyframes drip{0%,100%{transform:translateY(-5px);opacity:0}40%,70%{transform:translateY(12px);opacity:1}}
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes fall{0%{transform:translateY(-8px);opacity:0}20%,80%{opacity:1}100%{transform:translate(8px,28px);opacity:0}}
@keyframes seed{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes soak{0%,100%{transform:scale(.88)}50%{transform:scale(1.12)}}
@keyframes step{0%,100%{transform:translateX(-5px)}60%{transform:translateX(8px)}}
@keyframes gift{0%,100%{transform:translateX(-12px)}50%{transform:translateX(12px)}}
@keyframes release{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes brick{0%,100%{transform:translate(-14px,-18px)}60%,80%{transform:translate(0,0)}}
@keyframes meditate{0%,100%{transform:translateY(1px)}50%{transform:translateY(-3px)}}
@keyframes ripple{0%{transform:scale(.75);opacity:.3}50%{opacity:1}100%{transform:scale(1.1);opacity:.3}}
@media(max-width:760px){.camera-controls{gap:12px;width:min(100%,440px)}.scene{aspect-ratio:1.2}.living-scene svg{max-height:185px}.living-scene figcaption{font-size:12px}.living-scene figcaption span{font-size:9px}.living-caption{font-size:11px}.wheel-controls{gap:6px}.view-presets button{padding:8px 10px!important}.detail{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
