/* Open scenery, sequential route, and transparent cast. */
.character-beast-entry{border:0;border-top:1px solid #bfa16b8d;box-shadow:none;background:radial-gradient(ellipse at 18% 70%,#af8a3d32,transparent 35%),linear-gradient(90deg,#102b37,#15333b)}
.character-beast-art{display:block;width:100%;height:225px;min-height:0;object-fit:contain;object-position:center bottom;background:none!important;mask-image:none;filter:drop-shadow(0 11px 9px #03161da8);animation:spiritFloat 4.2s ease-in-out infinite}
.realm-dialog .player-dialog-header{min-height:112px;padding-block:9px;background-position:center 22%}
.realm-dialog .player-dialog-header h2{font-size:clamp(34px,4.5vw,55px)}
.realm-dialog .player-dialog-body{padding-top:12px}
.realm-dialog .realm-travel-summary{margin-bottom:9px;border-bottom:1px solid #c9aa6a54;padding:0 4px 9px}
.realm-dialog .realm-travel-summary>span{background:none;border:0;box-shadow:none;padding:0;min-height:0}
.realm-dialog .realm-mode-tabs{margin-bottom:9px}
.realm-dialog .realm-mode-tabs button{min-height:36px;border:0;border-bottom:1px solid #b69b6288;background:transparent;box-shadow:none}
.realm-dialog .realm-mode-tabs button[aria-pressed="true"]{background:linear-gradient(180deg,#c197503b,transparent);border-color:#f5d999;color:#ffe1a0;box-shadow:inset 0 -2px #f5d999}
.realm-dialog .realm-primary-action{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;margin:0 0 12px;padding:8px 22px;border-block:1px solid #c3a36b80;background:linear-gradient(90deg,#1a3644d9,#1026329c)}
.realm-dialog .realm-primary-action>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 16px}
.realm-dialog .realm-primary-action small{width:100%;color:#beaa7f;letter-spacing:.13em;font-size:10px}
.realm-dialog .realm-primary-action strong{color:#f8dfa4;font:700 27px/1.15 var(--display)}
.realm-dialog .realm-primary-action span{color:#cbd1c1;font-size:12px}
.realm-dialog .realm-enter-primary{flex:none;min-width:250px;padding:11px 22px;border:1px solid #ffe3a1;clip-path:polygon(7% 0,93% 0,100% 50%,93% 100%,7% 100%,0 50%);background:linear-gradient(115deg,#e8c478,#9c7138);color:#24190b;font:700 20px/1.3 var(--display);letter-spacing:.09em;cursor:pointer;box-shadow:0 0 22px #d8ad5c80}
.realm-dialog .realm-enter-primary:not(:disabled):hover{filter:brightness(1.18)}
.realm-dialog .realm-enter-primary:disabled{background:#3a4546;color:#b9b4a5;border-color:#928467;box-shadow:none;cursor:default;clip-path:none;font-size:15px}
.realm-dialog .realm-map-stage{min-height:550px;border:0;border-radius:0;box-shadow:0 18px 30px #0008;background-position:center 54%}
.realm-dialog .realm-map-stage::after{display:none}
.realm-dialog .realm-map-heading{left:24px;top:18px;max-width:56%;border:0;padding:4px 11px}
.realm-dialog .realm-route-node.is-locked{opacity:.48;filter:grayscale(.75)}
.realm-dialog .realm-route-node.is-locked:hover,.realm-dialog .realm-route-node.is-locked:focus-visible{opacity:.85;filter:grayscale(.3)}
.realm-dialog .realm-route-node.is-locked .realm-route-glyph{border-color:#92a0a0;box-shadow:0 0 0 3px #0b2730bb;background:#112a36;color:#a5aea9}
.realm-dialog .realm-route-label{border:0;box-shadow:0 3px 8px #000a;background:#071b29b4}
.realm-dialog .realm-selected-panel{position:relative;right:auto;bottom:auto;width:auto;max-height:none;overflow:visible;margin:16px 0 0;border-top:1px solid #caad73a3;background:linear-gradient(100deg,#102b38d7,#0a202bd9)}
.realm-dialog .realm-selected-panel .realm-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,25%);grid-template-areas:'heading art' 'description art' 'state art' 'details art' 'action art';gap:3px 24px;min-height:300px;padding:18px 22px;border:0;border-radius:0;background:none;box-shadow:none}
.realm-dialog .realm-selected-panel .realm-card::before,.realm-dialog .realm-selected-panel .realm-card::after{display:none}
.realm-dialog .realm-selected-panel .realm-card-heading{grid-area:heading}
.realm-dialog .realm-selected-panel .realm-description{grid-area:description;margin:3px 0;color:#d8d0b8}
.realm-dialog .realm-selected-panel .realm-card-state{grid-area:state;border-top:1px solid #b8a07165;padding-top:8px}
.realm-dialog .realm-selected-panel .realm-details{grid-area:details}
.realm-dialog .realm-selected-panel .realm-start{grid-area:action;justify-self:start;min-width:230px;max-width:320px;margin-top:10px}
.realm-dialog .realm-villain-preview{grid-area:art;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:265px;margin:0;border:0;background:none;box-shadow:none;overflow:visible}
.realm-dialog .realm-villain-preview::before{content:'';position:absolute;inset:12% 6% 4%;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--realm-accent) 34%,transparent),transparent 66%);filter:blur(12px)}
.realm-dialog .realm-villain-art{position:relative;width:100%;height:205px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 9px #010e18b8);mask-image:none;animation:villainPreview 4.8s ease-in-out infinite}
.realm-dialog .realm-villain-copy{position:relative;display:flex;align-items:center;gap:6px;padding:0;text-align:center}
.realm-dialog .realm-villain-copy small,.realm-dialog .realm-villain-copy em{display:none}
.realm-dialog .realm-villain-copy strong{font-size:18px;margin:0}
.realm-dialog .realm-villain-copy a{font-size:11px;margin:0;padding:0}
.realm-dialog .realm-mobile-stages{display:none}
body.battle-mode .enemy-info{left:auto;right:clamp(25px,4vw,80px);width:clamp(230px,23vw,340px);border-left:1px solid #b58c6680;border-right:3px solid #c9906e;border-radius:17px 3px 3px 17px;background:linear-gradient(255deg,#081e2de8,#123344af 67%,#102e3909);text-align:right}
body.battle-mode .enemy-info>div:first-child{align-items:flex-end}
body.battle-mode .enemy-meta{justify-content:flex-end}
body.battle-mode .ally-row{left:clamp(25px,4vw,80px);right:auto;width:min(24vw,310px)}
body.battle-mode #allyRow .ally,body.battle-mode #allyRow .ally:only-child{border-right:1px solid #d5b5799c;border-left:3px solid #f2cf89;border-radius:3px 17px 17px 3px;background:linear-gradient(105deg,#0b2737f0,#123b49dc 75%,#0a2736a1)}
body.battle-mode #allyRow .ally.selected{border-left-color:#ffdc99}
body.battle-mode .enemy-art.has-villain-portrait{left:64%;top:27%;width:min(31vw,420px);height:min(57vh,450px);background-size:contain;background-position:center bottom;border:0;border-radius:0;box-shadow:none;overflow:visible;filter:drop-shadow(0 18px 16px #020c13bb);animation:villainFloat 4.9s ease-in-out infinite}
body.battle-mode .enemy-art.has-villain-portrait:after{border:0;box-shadow:0 0 20px #d6b37a6a}
.battle-spirit-companion{position:absolute;z-index:5;left:34%;bottom:28%;width:clamp(120px,15vw,195px);height:clamp(165px,23vw,270px);display:flex;align-items:end;justify-content:center;pointer-events:none;filter:drop-shadow(0 15px 12px #051720bb);animation:spiritFloat 3.8s ease-in-out infinite}
.battle-spirit-companion img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.battle-spirit-companion span{display:none}
.battle-spirit-companion strong{display:block;font:700 14px var(--display);white-space:nowrap}
.battle-spirit-companion small{display:block;font:10px/1.3 var(--body);white-space:nowrap}
body.battle-mode .battlefield.battle-impact .enemy-art.has-villain-portrait{animation:villainHit .55s ease-out}
body.battle-mode .battlefield.battle-impact .battle-spirit-companion{animation:spiritPulse .6s ease-out}
@keyframes villainFloat{50%{transform:translateY(-7px) scale(1.015)}}
@keyframes villainHit{35%{transform:translateX(10px) rotate(1deg);filter:brightness(1.7) drop-shadow(0 0 24px #f8c782)}80%{transform:translateX(-3px)}}
@keyframes villainPreview{50%{transform:translateY(-7px)}}
@keyframes spiritFloat{50%{transform:translateY(-9px) rotate(-1.5deg)}}
@keyframes spiritPulse{40%{transform:scale(1.1);filter:brightness(1.4)}}
@media(max-width:1050px){body.battle-mode .enemy-info{left:auto;right:16px;width:260px}body.battle-mode .ally-row{left:16px;right:auto;width:265px}}
@media(max-width:760px){
  .character-beast-art{height:180px}
  .realm-dialog .player-dialog-header{min-height:102px}
  .realm-dialog .realm-primary-action{padding:8px 10px;gap:8px}
  .realm-dialog .realm-primary-action strong{font-size:21px}
  .realm-dialog .realm-primary-action span{display:none}
  .realm-dialog .realm-enter-primary{min-width:150px;padding:9px;font-size:14px;clip-path:none}
  .realm-dialog .realm-map-stage{height:250px;min-height:250px;padding:0;background-size:cover}
  .realm-dialog .realm-route-line,.realm-dialog .realm-route-nodes{display:none}
  .realm-dialog .realm-mobile-stages{display:flex;gap:8px;overflow-x:auto;padding:12px 0 14px;scrollbar-color:#b79a61 #0b2431}
  .realm-dialog .realm-mobile-step{flex:none;padding:7px 10px;border:0;border-bottom:1px solid #a48c61;background:none;color:#e5d0a3;font-size:12px}
  .realm-dialog .realm-mobile-step small{display:block;color:#bda26f}
  .realm-dialog .realm-mobile-step.is-selected{border-color:#ffe2a0;color:#ffe2a0;background:#be984131}
  .realm-dialog .realm-mobile-step.is-locked{opacity:.55}
  .realm-dialog .realm-selected-panel{margin:0}
  .realm-dialog .realm-selected-panel .realm-card{grid-template-columns:minmax(0,1fr) 115px;gap:3px 8px;padding:14px 10px;min-height:0}
  .realm-dialog .realm-villain-preview{min-height:180px;justify-content:center}
  .realm-dialog .realm-villain-art{height:150px}
  .realm-dialog .realm-villain-copy{display:block}
  .realm-dialog .realm-villain-copy strong{font-size:14px}
  .realm-dialog .realm-villain-copy a{display:none}
  .realm-dialog .realm-selected-panel .realm-card-heading h3{font-size:18px;white-space:normal}
  .realm-dialog .realm-selected-panel .realm-description{font-size:11px}
  .realm-dialog .realm-selected-panel .realm-start{min-width:0;width:100%}
  body.battle-mode .enemy-info{top:75px;left:auto;right:8px;width:46%;border-radius:11px 3px 3px 11px}
  body.battle-mode .ally-row{top:75px;left:8px;right:auto;width:48%}
  body.battle-mode #allyRow .ally,body.battle-mode #allyRow .ally:only-child{border-radius:3px 11px 11px 3px}
  body.battle-mode .enemy-art.has-villain-portrait{top:177px;left:75%;width:45%;height:280px}
  .battle-spirit-companion{left:34%;bottom:auto;top:325px;width:110px;height:150px}
  .battle-spirit-companion strong{font-size:11px}
  .battle-spirit-companion small{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.realm-dialog .realm-villain-art,body.battle-mode .enemy-art.has-villain-portrait,.battle-spirit-companion{animation:none!important}}
