/* Original Lionheart city: natural wind versus artificial steam. */
.lionheart-scene { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; background: radial-gradient(ellipse at 30% 15%, #47645e, transparent 65%), #142724; --lionheart-accent: #dab47c; }
.lionheart-city, .lionheart-natural, .lionheart-artificial { position: absolute; inset: 0; width: 100%; height: 100%; }
.lionheart-city { opacity: .8; transition: transform 1.2s, opacity 1s; }
.lionheart-natural, .lionheart-artificial { opacity: 0; transition: opacity .7s, transform 1s; }
.lionheart-gate { position: absolute; inset: 0; display: flex; justify-content: space-between; }
.lionheart-gate i { width: 50%; height: 100%; background: repeating-linear-gradient(90deg, #514334 0 45px, #6c5740 46px 49px); box-shadow: inset 0 0 70px #101b18; transition: transform 1s ease; }
.lionheart-pressure { position: absolute; left: 42%; top: 40%; width: 16%; aspect-ratio: 1; border: 3px solid var(--lionheart-accent); border-radius: 50%; background: #243a32; opacity: 0; transition: opacity .4s; }
.lionheart-pressure i { position: absolute; width: 40%; height: 3px; top: 50%; left: 50%; background: #ebc895; transform-origin: left; transform: rotate(-140deg); transition: transform .9s; }
.lionheart-steam { position: absolute; inset: 20% -25% -15%; background: radial-gradient(ellipse, #a7beb65c, transparent 58%); opacity: .1; transition: transform 1s, opacity 1s; }
.lionheart-steam--left { transform: translateX(-25%); }.lionheart-steam--right { transform: translateX(25%); }
.lionheart-vignette { position: absolute; inset: 0; background: linear-gradient(#07171355, transparent 35%, #071713c9), radial-gradient(ellipse, transparent 25%, #07171355); }
.lionheart-roots { opacity: 0; }
:is(.dream-debut-overlay, .dream-bloom-overlay)[data-animation=lionheart_inverse_oath], .summon-reveal-overlay.is-lionheart-reveal { background: #142724; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath] .lionheart-gate i:first-child { animation: lionheart-gate-left 1.4s both; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath] .lionheart-gate i:last-child { animation: lionheart-gate-right 1.4s both; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath]:not(.is-reduced) .lionheart-natural { animation: lionheart-research var(--pool-scene-duration,3264ms) both; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath]:not(.is-reduced) .lionheart-artificial { animation: lionheart-inverse var(--pool-scene-duration,3264ms) both; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath] .dream-debut-copy { position: absolute; z-index: 3; bottom: 15%; left: 0; right: 0; padding: 0 18px; margin: 0; max-width: none; width: 100%; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath] .dream-debut-line { color: #f2dfb7; text-shadow: 0 2px 12px #000; font-size: clamp(20px, 3vw, 32px); max-width: 92vw; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath].is-ready .dream-debut-line__seg { opacity: 1; filter: none; transform: none; animation: none; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath] .dream-bloom-omen { display: none; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath]:is([data-phase=mirrorRipple], [data-phase=rarityOmen], [data-phase=bloom], [data-phase=revealing], [data-phase=summary]) .lionheart-gate i:first-child { transform: translateX(-100%); }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath]:is([data-phase=mirrorRipple], [data-phase=rarityOmen], [data-phase=bloom]) .lionheart-pressure { opacity: 1; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath]:is([data-phase=rarityOmen], [data-phase=bloom]) .lionheart-pressure i { transform: rotate(-25deg); }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath]:is([data-phase=mirrorRipple], [data-phase=rarityOmen], [data-phase=bloom], [data-phase=revealing], [data-phase=summary]) .lionheart-gate i:last-child { transform: translateX(100%); }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath][data-phase=bloom] .lionheart-steam { opacity: .65; transform: translateY(-20%); }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath][data-omen=N] .lionheart-scene { --lionheart-accent: #b7c8b0; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath][data-omen=R] .lionheart-scene { --lionheart-accent: #8bc5cb; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath][data-omen=SR] .lionheart-scene { --lionheart-accent: #b4a0c5; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath][data-omen=SSR] .lionheart-scene { --lionheart-accent: #ecd197; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath][data-omen=UR] .lionheart-scene { --lionheart-accent: #f0a96c; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath] .dream-bloom-stage { z-index: 2; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath] .dream-bloom-seal { background: #1b302aee; border: 1px solid #b89c6b; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath] :is(.dream-bloom-seal__reflect, .dream-bloom-seal__petal) { display: none; }
.dream-bloom-overlay[data-animation=lionheart_inverse_oath] .dream-bloom-summary { background: #142724ee; border: 1px solid #b89c6b; border-radius: 16px; padding: 20px; }
.is-lionheart-reveal::after { display: none; }
.is-lionheart-reveal :is(.summon-reveal-pool, .summon-reveal-ring, .summon-reveal-aura, .summon-reveal-particles) { display: none; }
.is-lionheart-reveal .lionheart-gate { display: none; }
.is-lionheart-reveal .lionheart-scene { z-index: auto; }
.lionheart-reveal-wind, .lionheart-wind-motes, .lionheart-reveal-steam { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.lionheart-reveal-wind { width: 100%; height: 100%; opacity: .75; }
.lionheart-wind-trails path { stroke-width: 3; stroke-dasharray: 145 65 28 1450; animation: lionheart-gust 2.8s linear infinite; animation-delay: var(--gust-delay); }
.lionheart-wind-trails path:nth-child(even) { stroke-width: 1.5; opacity: .55; }
.lionheart-wind-motes i { position: absolute; left: -8%; top: var(--mote-y); width: 22px; height: 3px; border-radius: 100%; background: #dfedce; animation: lionheart-wind-mote 3s linear infinite; animation-delay: var(--mote-delay); }
.lionheart-reveal-steam { left: 50%; width: min(100%, 900px); transform: translateX(-50%); }
.lionheart-steam-jet { position: absolute; bottom: -3%; width: 0; height: 0; }
.lionheart-steam-jet--left { left: 15%; }.lionheart-steam-jet--right { left: 85%; }
.lionheart-steam-jet::before { content: ''; position: absolute; bottom: 0; left: -25px; width: 50px; height: 32vh; background: linear-gradient(0deg, #e4f3ee99, #cde3df44 55%, transparent); clip-path: polygon(42% 100%, 58% 100%, 100% 0, 0 0); filter: blur(3px); animation: lionheart-steam-pressure 1.1s ease-in-out infinite; }
.lionheart-steam-jet i { position: absolute; bottom: 0; left: calc(var(--steam-size) / -2); width: var(--steam-size); height: calc(var(--steam-size) * 1.25); border-radius: 45%; background: radial-gradient(ellipse at 35% 40%, #eff6f2b3, transparent 60%), radial-gradient(ellipse at 65% 55%, #c6dad7a6, transparent 64%); filter: blur(5px); opacity: 0; animation: lionheart-steam-rise 2.6s linear infinite; animation-delay: var(--steam-delay); will-change: transform, opacity; }
.is-lionheart-reveal .summon-reveal-stage { position: relative; z-index: 2; }
.is-lionheart-reveal .summon-reveal-card { background: #142724e8; border: 1px solid #be9e68; border-radius: 16px; padding: 16px; max-width: 88vw; animation: lionheart-card 2.2s both; }
.is-lionheart-reveal:is([data-theme=lionheart_griffin], [data-theme=lionheart_chimera]):not(.is-ready):not(.is-reduced) .summon-reveal-card { animation: lionheart-ur-card 4.5s both; }
.is-lionheart-reveal .summon-reveal-pet-frame { width: min(68vw, 390px); height: min(68vw, 390px); background: transparent; }
.is-lionheart-reveal :is(.summon-reveal-name, .summon-reveal-caption, .summon-reveal-rarity) { color: #f2dfb7; }
.is-lionheart-reveal .summon-reveal-pet-image.is-loaded { opacity: 1; }
.is-lionheart-reveal.is-ready .summon-reveal-card { opacity: 1; transform: none; animation: none; }
.lionheart-scene[data-motif=griffin] :is(.lionheart-artificial, .lionheart-pressure, .lionheart-gear, .lionheart-steam) { display: none; }
.lionheart-scene[data-motif=griffin] .lionheart-natural { opacity: .6; animation: lionheart-wings 4.5s both; }
.lionheart-scene[data-motif=griffin] .lionheart-cloud { animation: lionheart-cloud 4.5s both; }
.lionheart-scene[data-motif=chimera] .lionheart-natural { display: none; }
.lionheart-scene[data-motif=chimera] .lionheart-artificial { opacity: .65; animation: lionheart-machine 4.5s both; }
.lionheart-scene[data-motif=chimera] .lionheart-pistons { animation: lionheart-breath 1.2s 3; }
.lionheart-scene[data-motif=chimera] .lionheart-steam { animation: lionheart-vent 4.5s both; }
.lionheart-scene[data-motif=bridge] .lionheart-bridge { animation: lionheart-anchor 2.5s both; }
.lionheart-scene[data-motif=roots] .lionheart-roots { opacity: 1; animation: lionheart-roots 2.5s both; }
.lionheart-scene[data-motif=roots] .lionheart-steam { animation: lionheart-vent 2.5s both; }
@keyframes lionheart-gate-left { to { transform: translateX(-100%); } }
@keyframes lionheart-gate-right { to { transform: translateX(100%); } }
@keyframes lionheart-research { 0%, 15% { opacity: 0; } 30%, 48% { opacity: .6; transform: scale(.8); } 65%, 100% { opacity: .35; transform: translateX(-22%) scale(.55); } }
@keyframes lionheart-inverse { 0%, 48% { opacity: 0; transform: scale(.7); } 70%, 100% { opacity: .4; transform: translateX(24%) scale(.6); } }
@keyframes lionheart-card { from { opacity: 0; transform: translateY(22px); } 75%, to { opacity: 1; transform: none; } }
/* Hold the fully opened wings before the card fades in; then soften the backdrop. */
@keyframes lionheart-ur-card { 0%, 44% { opacity: 0; transform: translateY(22px); } 64%, 100% { opacity: 1; transform: none; } }
@keyframes lionheart-wings { 0% { opacity: 0; transform: scaleX(.3); } 28%, 42% { opacity: .9; transform: scaleX(1); } 64%, 100% { opacity: .45; transform: scaleX(1); } }
@keyframes lionheart-machine { 0% { opacity: 0; transform: translateY(45px) scaleX(.45); } 28%, 42% { opacity: .9; transform: none; } 64%, 100% { opacity: .5; transform: none; } }
@keyframes lionheart-cloud { to { transform: translateY(-70px); opacity: .08; } }
@keyframes lionheart-breath { 50% { transform: translateY(-10px); } }
@keyframes lionheart-vent { 0% { opacity: .1; } 45% { opacity: .7; } 100% { opacity: .15; transform: translateY(-25%); } }
@keyframes lionheart-anchor { from { transform: translateY(18px); opacity: .3; } 65%, to { transform: none; opacity: 1; } }
@keyframes lionheart-roots { from { stroke-dasharray: 600; stroke-dashoffset: 600; } to { stroke-dasharray: 600; stroke-dashoffset: 0; } }
@keyframes lionheart-gust { from { stroke-dashoffset: 1688; } to { stroke-dashoffset: 0; } }
@keyframes lionheart-wind-mote { 0% { opacity: 0; transform: translate(0, 35px) rotate(-12deg); } 15%, 75% { opacity: .65; } 100% { opacity: 0; transform: translate(112vw, -100px) rotate(-22deg); } }
@keyframes lionheart-steam-pressure { 50% { opacity: .5; transform: scaleX(1.2); } }
@keyframes lionheart-steam-rise { 0% { opacity: 0; transform: translate(0, 0) scale(.35); } 12% { opacity: .75; } 48% { opacity: .5; } 100% { opacity: 0; transform: translate(var(--steam-drift), -105vh) scale(2.7); } }
:is(.dream-debut-overlay, .dream-bloom-overlay)[data-animation=lionheart_inverse_oath].is-reduced .lionheart-scene *, .is-lionheart-reveal.is-reduced * { animation: none !important; transition: none !important; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath]:is(.is-reduced, .is-skipped) .lionheart-gate { display: none; }
.dream-debut-overlay[data-animation=lionheart_inverse_oath]:is(.is-reduced, .is-skipped) .lionheart-natural { opacity: .35; transform: translateX(-22%) scale(.55); }
.dream-debut-overlay[data-animation=lionheart_inverse_oath]:is(.is-reduced, .is-skipped) .lionheart-artificial { opacity: .4; transform: translateX(24%) scale(.6); }
.is-lionheart-reveal.is-reduced .summon-reveal-card { opacity: 1; transform: none; }
.is-lionheart-reveal.is-reduced :is(.lionheart-reveal-wind, .lionheart-wind-motes, .lionheart-reveal-steam) { display: none; }
.gacha-panel[data-pool-theme=lionheart_inverse_oath] {
  --pool-text-primary: #f6e7cb;
  --pool-text-secondary: #c9d7d8;
  --pool-accent: #e0b678;
  --pool-border: #c4975d88;
  --pool-surface: #283c48;
  --pool-surface-strong: #1c2d3a;
  background: var(--pool-surface-strong);
  color: var(--pool-text-primary);
}
/* Match the selector that supplies themed surfaces in every app theme. */
body[data-theme] #view-gacha #gacha-panel[data-pool-theme=lionheart_inverse_oath] {
  background: radial-gradient(ellipse at 15% 0%, #a67a3f38, transparent 60%),
    radial-gradient(ellipse at 95% 65%, #527e8540, transparent 65%), var(--pool-surface-strong);
}
.gacha-panel[data-pool-theme=lionheart_inverse_oath] :is(.gacha-theme-stage__atmosphere, .gacha-pool) { display: none; }
.gacha-panel[data-pool-theme=lionheart_inverse_oath] :is(.gacha-theme-stage__name, .gacha-theme-stage__tagline, .gacha-theme-stage__eyebrow, .gacha-theme-hero__name, .gacha-theme-details, .gacha-theme-featured__item) { color: var(--pool-text-primary); }
@media (prefers-reduced-motion: reduce) { .lionheart-scene *, .is-lionheart-reveal * { animation: none !important; transition: none !important; } .is-lionheart-reveal .summon-reveal-card { opacity: 1; transform: none; } :is(.lionheart-reveal-wind, .lionheart-wind-motes, .lionheart-reveal-steam) { display: none; } }
@media (max-width: 480px) { .dream-bloom-overlay[data-animation=lionheart_inverse_oath] .dream-bloom-summary { padding: 14px; } .is-lionheart-reveal .summon-reveal-name { font-size: clamp(17px, 4.8vw, 23px); } }
