/* A continuously articulated puppet. The avatar keeps its original footprint. */
.dragon-preview-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;padding:20px 24px!important}
.dragon-preview-controls h2{margin:5px 0;font-size:23px}.dragon-preview-controls p{margin:6px 0;font-size:13px}
.dragon-preview-actions{display:flex;gap:9px;flex-wrap:wrap;max-width:590px;align-items:center}
.dragon-preview-actions button[aria-pressed=true]{outline:2px solid #c7a561;outline-offset:3px}
body.watercolor-home .profile.has-flying-dragon,body.watercolor-home .profile.has-flying-dragon .avatar-stage{overflow:visible!important}
.dragon-airspace{position:absolute;inset:0;z-index:5;pointer-events:none;--dragon-growth:.9;isolation:isolate}
.dragon-pet{position:absolute!important;inset:auto -3px 0 auto!important;width:94px!important;height:92px!important;min-height:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;overflow:visible!important;cursor:pointer;pointer-events:auto;touch-action:manipulation}
.dragon-pet::before,.dragon-pet::after{content:none!important}.dragon-pet:focus-visible{outline:1px dashed #b59b63;outline-offset:3px;border-radius:50%}
.dragon-flight-path{display:block;position:relative;width:94px;height:92px;transform-origin:65% 65%;animation:dragon-soar-v12 6.8s cubic-bezier(.45,0,.55,1) infinite;filter:drop-shadow(1px 5px 3px #062b3345)}
.dragon-puppet{position:absolute;width:160px;height:160px;left:-35px;top:-33px;transform:scale(calc(.66 * var(--dragon-growth)));transform-origin:60% 68%;opacity:1;transition:opacity .4s ease}
.dragon-puppet img{position:absolute!important;display:block!important;object-fit:contain!important;max-width:none!important;pointer-events:none;user-select:none;filter:none!important}
.dragon-body{left:20px;top:10px;width:120px!important;height:120px!important;z-index:3}
.dragon-wing-near{left:-9px;top:-17px;width:96px!important;height:96px!important;transform-origin:94% 80%;z-index:2;animation:dragon-wing-v12 1.75s cubic-bezier(.45,0,.55,1) infinite}
.dragon-wing-far{position:absolute;left:78px;top:1px;width:76px;height:76px;z-index:1;transform-origin:6% 80%;animation:dragon-far-v12 1.75s cubic-bezier(.45,0,.55,1) infinite;animation-delay:-.08s}
.dragon-wing-far img{width:100%!important;height:100%!important;transform:scaleX(-1);opacity:.94}
.dragon-emotion-sprite{position:absolute;inset:0;background:url('/static/student/assets/watercolor/dragon-v11/emotions-sheet.png') 0 0/200% 200% no-repeat;transform:scale(var(--dragon-growth));transform-origin:60% 75%;opacity:0;transition:opacity .4s ease}
.dragon-mood-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.dragon-sleep-sign,.dragon-affection{display:none;position:absolute;right:11px;bottom:101px;font:italic 20px Georgia;color:#dab87b;pointer-events:none;text-shadow:0 1px 2px #17363b}
.dragon-sleep-sign span{position:absolute;top:-12px;left:13px;font-size:13px}
.dragon-airspace[data-dragon-mood=missing] .dragon-emotion-sprite{opacity:1;background-position:100% 0}
.dragon-airspace[data-dragon-mood=sleepy] .dragon-emotion-sprite{opacity:1;background-position:0 100%}
.dragon-airspace[data-dragon-mood=greeting] .dragon-emotion-sprite{opacity:1;background-position:100% 100%}
.dragon-airspace:not([data-dragon-mood=happy]) .dragon-puppet{opacity:0}
.dragon-airspace:not([data-dragon-mood=happy]) :is(.dragon-wing-near,.dragon-wing-far){animation-play-state:paused}
.dragon-airspace:is([data-dragon-mood=missing],[data-dragon-mood=sleepy]) .dragon-flight-path{animation:dragon-rest-v12 6s ease-in-out infinite}
.dragon-airspace[data-dragon-mood=greeting] .dragon-flight-path{animation:dragon-greeting-v12 3s ease-in-out infinite}
.dragon-airspace[data-dragon-mood=sleepy] .dragon-sleep-sign,.dragon-airspace[data-dragon-mood=greeting] .dragon-affection{display:block;animation:dragon-wish-v12 2.6s ease-out infinite}
.dragon-airspace[data-paused=true] *,.dragon-airspace.dragon-offscreen *{animation-play-state:paused!important}
@keyframes dragon-wing-v12{0%,100%{transform:rotate(-12deg) scaleY(1) scaleX(1)}50%{transform:rotate(19deg) scaleY(.42) scaleX(.89)}}
@keyframes dragon-far-v12{0%,100%{transform:rotate(12deg) scaleY(.98)}50%{transform:rotate(-19deg) scaleY(.42)}}
@keyframes dragon-soar-v12{0%,100%{transform:translate(0,-1px) rotate(-3deg)}50%{transform:translate(-5px,-8px) rotate(2deg)}}
@keyframes dragon-rest-v12{0%,100%{transform:translate(0,2px) rotate(-3deg)}50%{transform:translate(0,-1px) rotate(-1deg)}}
@keyframes dragon-greeting-v12{0%,100%{transform:translate(0,-1px) rotate(-3deg)}50%{transform:translate(-2px,-7px) rotate(3deg)}}
@keyframes dragon-wish-v12{0%{opacity:0;transform:translateY(8px) scale(.8)}25%{opacity:.9}100%{opacity:0;transform:translateY(-16px) scale(1.1)}}
@media(max-width:760px){.dragon-preview-controls{display:block;padding:18px!important}.dragon-preview-actions{margin-top:16px;gap:10px}.dragon-preview-actions button{font-size:12px!important}.dragon-pet{right:2px!important;bottom:3px!important}}
@media(prefers-reduced-motion:reduce){.dragon-airspace *{animation:none!important;transition:none!important}.dragon-sleep-sign,.dragon-affection{display:none!important}}
html[data-motion=off] .dragon-airspace *{animation:none!important;transition:none!important}
