/* ================= DM Tavern — the living dragon ================= */
.dragon-rig { width: 100%; height: 100%; }
.dragon-rig svg { width: 100%; height: 100%; display: block; overflow: visible; }
.dragon-rig .dr-eye { filter: drop-shadow(0 0 2px #ffc030); }
.dragon-slot { display: block; width: 100%; aspect-ratio: 505 / 430; }
.tfx-boss-sil .dragon-slot { width: 112%; margin-left: -6%; }

/* the fly-by */
.fx .flyby3 { width: 0; height: 0; }
.fb3-move { position: absolute; left: 0; top: 0; filter: drop-shadow(0 14px 18px rgba(0,0,0,.5)); }
.fb3-shadow { position: absolute; left: 0; top: 0; width: 180px; height: 30px; border-radius: 50%; background: radial-gradient(ellipse, rgba(0,0,0,.75), transparent 70%); filter: blur(5px); opacity: 0; }

/* the roar */
.roar4-box svg { width: 100%; height: 100%; display: block; overflow: visible; filter: drop-shadow(0 0 34px rgba(255,80,20,.5)); }
.roar4-box.flip svg { transform: scaleX(-1); }
.roar4-box .dh-eye { filter: drop-shadow(0 0 5px #ffc030); }
.roar4 .roar3-glow { animation-duration: 4.9s; }
.db-jet.off { transition: opacity .3s; opacity: 0; }
.roar4-jet i { animation-duration: 1.4s !important; }

/* the 3D dragon's canvases */
.dragon3d-canvas { position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; pointer-events: none; display: block; }
.tfx .dragon3d-canvas { position: absolute; width: 100%; height: 100%; }
.dragon3d-slot { display: block; width: 100%; height: 100%; }
.dragon-slot:has(.dragon3d-slot) { aspect-ratio: 1; }
