/* Map world life: every layer uses the artwork's native 1983 x 793 coordinates. */
.map-effects .world-wave{stroke-width:1.4;stroke-linecap:round;opacity:.08;animation:world-wave var(--wave-time) ease-in-out var(--wave-delay) infinite;animation-play-state:paused}
@keyframes world-wave{0%,100%{opacity:.03;transform:translateX(-3px)}50%{opacity:.34;transform:translateX(7px)}}
.map-effects .world-ship{transform-box:view-box;transform-origin:var(--pivot-x) var(--pivot-y);animation:world-small-ship var(--ship-time) ease-in-out var(--ship-delay) infinite;animation-play-state:paused}
.map-effects .world-ship.large{animation-name:world-large-ship}
@keyframes world-small-ship{0%,100%{transform:translate(-3px,3px) rotate(-2deg)}28%{transform:translate(3px,-3px) rotate(1.7deg)}63%{transform:translate(5px,1px) rotate(-1deg)}}
@keyframes world-large-ship{0%,100%{transform:translate(-2px,2px) rotate(-1.15deg)}34%{transform:translate(2px,-2px) rotate(1deg)}70%{transform:translate(3px,0) rotate(-.7deg)}}
.map-effects .ship-fabric{transform-box:view-box;transform-origin:var(--sail-x) var(--sail-y);animation:world-sail-wave var(--sail-time) ease-in-out var(--sail-delay) infinite;animation-play-state:paused}
@keyframes world-sail-wave{0%,100%{transform:skewX(-1.7deg) scaleX(.98);filter:brightness(.96)}48%{transform:skewX(2deg) scaleX(1.03);filter:brightness(1.12)}}
.map-effects .ship-moving-wake{stroke-width:2.4;stroke-linecap:round;stroke-dasharray:18 11;opacity:.36;animation:world-wake var(--ship-time) ease-in-out var(--ship-delay) infinite;animation-play-state:paused}
@keyframes world-wake{0%,100%{opacity:.23;stroke-dashoffset:0}50%{opacity:.6;stroke-dashoffset:-18}}
.map-effects .shore-base{opacity:.075}
.map-effects .shore-traveler{opacity:.25;animation:world-shore-travel 27s linear -9s infinite;animation-play-state:paused}
@keyframes world-shore-travel{from{transform:translateX(-150px)}to{transform:translateX(2133px)}}
.map-effects .fall-light{opacity:.09;animation:world-fall-glow 3.5s ease-in-out infinite alternate;animation-play-state:paused}
.map-effects .fall-streak{stroke-width:2;stroke-linecap:round;opacity:.22;animation:world-fall-stream 2.2s linear infinite;animation-play-state:paused}
.map-effects .fall-streak:nth-child(even){animation-delay:-1.1s}
.map-effects .fall-mist{fill:#bde8ec;opacity:.1;filter:blur(3px);animation:world-mist 4.2s ease-in-out infinite alternate;animation-play-state:paused}
@keyframes world-fall-glow{to{opacity:.31}}
@keyframes world-fall-stream{from{stroke-dasharray:5 8;stroke-dashoffset:0;opacity:.16}to{stroke-dasharray:5 8;stroke-dashoffset:-26;opacity:.48}}
@keyframes world-mist{to{transform:translate(3px,-4px) scale(1.3);opacity:.27}}
.map-effects .fall-ribbon{stroke-linecap:round;stroke-dasharray:9 7;opacity:.42;filter:drop-shadow(0 0 3px #d6f6ff);animation:central-water 1.8s linear var(--fall-delay) infinite;animation-play-state:paused}
.map-effects .fall-droplet{opacity:0;filter:drop-shadow(0 0 2px #d6f6ff);animation:central-drop 2.1s ease-in var(--fall-delay) infinite;animation-play-state:paused}
.map-effects .fall-plume{opacity:.14;filter:blur(5px);transform-box:fill-box;transform-origin:center;animation:central-plume 3.4s ease-in-out infinite alternate;animation-play-state:paused}
.map-effects .fall-splash{opacity:0;transform-box:fill-box;transform-origin:center;animation:central-splash 2.7s ease-out var(--fall-delay) infinite;animation-play-state:paused}
@keyframes central-water{0%{stroke-dashoffset:0;opacity:.35}50%{opacity:.68}100%{stroke-dashoffset:-32;opacity:.38}}
@keyframes central-drop{0%,13%{opacity:0;transform:translateY(0)}25%{opacity:.8}83%{opacity:.5;transform:translateY(27px)}100%{opacity:0;transform:translateY(34px)}}
@keyframes central-plume{to{opacity:.3;transform:translateY(-4px) scale(1.2)}}
@keyframes central-splash{0%{opacity:0;transform:scale(.6)}20%{opacity:.58}100%{opacity:0;transform:scale(1.75)}}
.map-effects .lava-embers{opacity:.13;animation:world-lava-pulse 5.8s ease-in-out infinite alternate;animation-play-state:paused}
.map-effects .lava-traveler{opacity:.28;animation:world-lava-flow 13s linear infinite;animation-play-state:paused}
.map-effects .volcano-glow{opacity:.28;mix-blend-mode:screen;filter:blur(4px) drop-shadow(0 0 9px #ff7e32);transform-box:fill-box;transform-origin:center;animation:world-crater 6.4s ease-in-out var(--eruption-delay) infinite;animation-play-state:paused}
.map-effects .volcano-jet{stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;opacity:0;filter:drop-shadow(0 0 4px #ff762f);animation:world-jet 6.4s ease-out var(--eruption-delay) infinite;animation-play-state:paused}
.map-effects .volcano-spark{opacity:0;filter:drop-shadow(0 0 4px #ff9d4d);animation:world-spark 5.3s ease-out var(--spark-delay) infinite;animation-play-state:paused}
@keyframes world-lava-pulse{20%{opacity:.23}63%{opacity:.1}100%{opacity:.29}}
@keyframes world-lava-flow{from{transform:translateX(-130px)}to{transform:translateX(380px)}}
@keyframes world-crater{0%,100%{opacity:.24;transform:scale(.85)}18%,29%{opacity:.72;transform:scale(1.18)}48%{opacity:.34;transform:scale(.95)}}
@keyframes world-jet{0%,6%{opacity:0;stroke-dashoffset:100}16%{opacity:.9;stroke-dashoffset:42}25%{opacity:1;stroke-dashoffset:0}40%,100%{opacity:0;stroke-dashoffset:-20}}
@keyframes world-spark{0%,7%{opacity:0;transform:translate(0,0)}13%{opacity:1}30%,100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y))}}
.map-effects .world-smoke .smoke-wisp{opacity:0;filter:blur(6px);mix-blend-mode:screen;transform-box:fill-box;transform-origin:center;animation:world-smoke 11s ease-out var(--smoke-delay) infinite;animation-play-state:paused}
.map-effects .world-smoke .smoke-hot{fill:#c28c72}
.map-effects .world-smoke .smoke-ash{fill:#9a9693}
@keyframes world-smoke{0%{opacity:0;transform:translate(0,5px) scale(.7)}18%{opacity:.42}65%{opacity:.27}100%{opacity:0;transform:translate(var(--smoke-drift),var(--smoke-rise)) scale(1.65)}}
.map-effects .world-dragon{animation-play-state:paused}
.map-effects .dragon-1{transform:translate(850px,115px);animation:world-dragon-one 31s linear -6s infinite;animation-play-state:paused}
.map-effects .dragon-2{transform:translate(735px,345px);animation:world-dragon-two 38s linear -17s infinite;animation-play-state:paused}
@keyframes world-dragon-one{0%,100%{transform:translate(850px,115px) rotate(-4deg)}25%{transform:translate(1040px,75px) rotate(-8deg)}52%{transform:translate(1280px,137px) rotate(5deg)}75%{transform:translate(1110px,155px) rotate(2deg)}}
@keyframes world-dragon-two{0%,100%{transform:translate(735px,345px) rotate(3deg)}29%{transform:translate(935px,285px) rotate(-5deg)}56%{transform:translate(1180px,295px) rotate(3deg)}79%{transform:translate(990px,340px) rotate(6deg)}}
.map-effects .dragon-pose,.map-effects .serpent-pose{opacity:0;animation-play-state:paused}
.map-effects .dragon-pose.pose-0,.map-effects .serpent-pose.pose-0{opacity:1}
.map-effects .dragon-1 .dragon-pose{animation-duration:4.8s;animation-delay:-1.6s}
.map-effects .dragon-2 .dragon-pose{animation-duration:5.9s;animation-delay:-3.3s}
.map-effects .dragon-pose.pose-0,.map-effects .serpent-pose.pose-0{animation-name:world-pose-zero}
.map-effects .dragon-pose.pose-1,.map-effects .serpent-pose.pose-1{animation-name:world-pose-one}
.map-effects .dragon-pose.pose-2,.map-effects .serpent-pose.pose-2{animation-name:world-pose-two}
.map-effects .dragon-pose,.map-effects .serpent-pose{animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes world-pose-zero{0%,27%,100%{opacity:1}33%,94%{opacity:0}}
@keyframes world-pose-one{0%,27%,67%,100%{opacity:0}33%,60%{opacity:1}}
@keyframes world-pose-two{0%,60%,100%{opacity:0}67%,94%{opacity:1}}
.map-effects .serpent-1{transform:translate(515px,384px);animation:world-serpent-one 34s ease-in-out -6s infinite;animation-play-state:paused}
.map-effects .serpent-2{transform:translate(615px,695px);animation:world-serpent-two 42s ease-in-out -21s infinite;animation-play-state:paused}
.map-effects .serpent-3{transform:translate(1090px,700px);animation:world-serpent-three 39s ease-in-out -12s infinite;animation-play-state:paused}
.map-effects .serpent-1 .serpent-pose{animation-duration:4.7s;animation-delay:-.9s}
.map-effects .serpent-2 .serpent-pose{animation-duration:5.4s;animation-delay:-2.4s}
.map-effects .serpent-3 .serpent-pose{animation-duration:6.2s;animation-delay:-3.7s}
.map-effects .serpent-ripple{fill:none;stroke:#add8e5;stroke-width:1.5;stroke-dasharray:12 10;opacity:.22;animation:world-ripple 4.6s ease-in-out infinite;animation-play-state:paused}
@keyframes world-ripple{50%{opacity:.48;transform:scale(1.2,.85)}}
@keyframes world-serpent-one{0%,100%{transform:translate(515px,384px);opacity:.85}31%{transform:translate(588px,404px);opacity:1}58%{transform:translate(645px,440px);opacity:.45}79%{transform:translate(575px,421px);opacity:1}}
@keyframes world-serpent-two{0%,100%{transform:translate(615px,695px);opacity:.9}28%{transform:translate(710px,706px);opacity:1}53%{transform:translate(782px,720px);opacity:.37}76%{transform:translate(683px,690px);opacity:1}}
@keyframes world-serpent-three{0%,100%{transform:translate(1090px,700px);opacity:.85}30%{transform:translate(1180px,713px);opacity:1}57%{transform:translate(1280px,730px);opacity:.4}79%{transform:translate(1185px,695px);opacity:1}}
.map-effects.is-active .world-wave,.map-effects.is-active .world-ship,.map-effects.is-active .ship-fabric,.map-effects.is-active .ship-moving-wake,.map-effects.is-active .shore-traveler,.map-effects.is-active .fall-light,.map-effects.is-active .fall-streak,.map-effects.is-active .fall-mist,.map-effects.is-active .fall-ribbon,.map-effects.is-active .fall-droplet,.map-effects.is-active .fall-plume,.map-effects.is-active .fall-splash,.map-effects.is-active .lava-embers,.map-effects.is-active .lava-traveler,.map-effects.is-active .volcano-glow,.map-effects.is-active .volcano-jet,.map-effects.is-active .volcano-spark,.map-effects.is-active .world-smoke .smoke-wisp,.map-effects.is-active .world-dragon,.map-effects.is-active .dragon-pose,.map-effects.is-active .world-serpent,.map-effects.is-active .serpent-pose,.map-effects.is-active .serpent-ripple{animation-play-state:running}
@media(prefers-reduced-motion:reduce){
  .map-effects .world-wave,.map-effects .world-ship,.map-effects .ship-fabric,.map-effects .ship-moving-wake,.map-effects .shore-traveler,.map-effects .fall-light,.map-effects .fall-streak,.map-effects .fall-mist,.map-effects .fall-ribbon,.map-effects .fall-droplet,.map-effects .fall-plume,.map-effects .fall-splash,.map-effects .lava-embers,.map-effects .lava-traveler,.map-effects .volcano-glow,.map-effects .volcano-jet,.map-effects .volcano-spark,.map-effects .world-smoke .smoke-wisp,.map-effects .world-dragon,.map-effects .dragon-pose,.map-effects .world-serpent,.map-effects .serpent-pose,.map-effects .serpent-ripple{animation:none!important}
  .map-effects .dragon-pose.pose-0,.map-effects .serpent-pose.pose-0{opacity:1}
  .map-effects .dragon-pose:not(.pose-0),.map-effects .serpent-pose:not(.pose-0){opacity:0}
  .map-effects .world-smoke .smoke-wisp{opacity:.18}
  .map-effects .volcano-glow{opacity:.24}
  .map-effects .volcano-jet,.map-effects .volcano-spark{opacity:0}
  .map-effects .fall-ribbon{opacity:.28}
  .map-effects .fall-plume{opacity:.17}
  .map-effects .fall-droplet,.map-effects .fall-splash{opacity:0}
}

/* Give INTRO a readable hit area while keeping its label on one line. */
.card-body .open{display:inline-flex;align-items:center;justify-content:center;min-width:52px;white-space:nowrap}
@media (min-width:1201px) and (max-height:800px){.card-body{column-gap:2px}}
