/* Quiet gallery motion, independent of gameplay and resource calculation. */
.idle-art{position:relative;isolation:isolate;overflow:hidden;margin:0;--art-color:#9bcebd;--art-glow:#9bcebd26}
.idle-art .art-aura{position:absolute;inset:10% 12%;border-radius:50%;background:radial-gradient(ellipse,var(--art-glow),transparent 69%);pointer-events:none}
.idle-art .art-ring{position:absolute;width:70%;aspect-ratio:1;border:1px solid #d7bd7433;border-radius:50%;left:15%;top:15%;pointer-events:none}
.idle-art .art-ring:after{content:"";position:absolute;inset:8%;border:1px dashed #d7bd7426;border-radius:50%}
.art-character,.art-relic{position:relative;z-index:1;display:block;object-fit:contain;pointer-events:none}
.companion-art{display:grid;grid-template-columns:minmax(170px,.85fr) minmax(0,1fr);align-items:center;min-height:240px;margin:18px 0;border:1px solid #53645a66;border-radius:14px;background:radial-gradient(ellipse at 25% 45%,#2b51413b,transparent 65%),linear-gradient(125deg,#172728,#142023)}
.companion-art .art-character{width:100%;height:300px;object-position:center top;transform-origin:50% 90%;animation:art-breathe 7s ease-in-out infinite}
.art-healer .art-character,.art-poison-practiced .art-character,.art-poison-mastered .art-character{filter:saturate(.76) brightness(.94)}
.art-auctioneer{--art-color:#b99b80;--art-glow:#9d6e6824;background:radial-gradient(ellipse at 25% 45%,#65414728,transparent 65%),linear-gradient(125deg,#1e2829,#1b2225)}
.art-wind-sword{--art-color:#92b5b0;--art-glow:#729f9a24;background:radial-gradient(ellipse at 25% 45%,#36545029,transparent 65%),linear-gradient(125deg,#1b292b,#172326)}
.art-ancient-ember{--art-color:#c4b698;--art-glow:#a19a6d24;background:radial-gradient(ellipse at 25% 45%,#5b526e24,transparent 65%),linear-gradient(125deg,#20282b,#1b2228)}
.art-wind-sword .art-character{animation-duration:8s}.art-auctioneer .art-character{animation-duration:7.8s}.art-ancient-ember .art-character{animation-duration:7.2s}
.companion-art .art-aura{inset:8% 48% 7% 0}
.companion-art .art-ring{width:42%;left:1%;top:7%;border-color:#aec3b62b}
.art-caption{position:relative;z-index:2;padding:24px 24px 24px 10px}
.art-caption h4{font-size:clamp(20px,2vw,26px);font-weight:500;line-height:1.5;color:var(--gold,#e0bc7a);margin:8px 0 12px}
.art-caption p{line-height:1.9;color:var(--muted,#a4b5b4)}
.art-caption .eyebrow{letter-spacing:.15em;font-size:12px}
.art-state{display:inline-block;border:1px solid #7c9c863b;color:#b9d4c4;border-radius:5px;padding:5px 9px;font-size:12px;line-height:1.65}
.art-poison-practiced{--art-color:#beb1e4;--art-glow:#a7a0da36}
.art-poison-mastered{--art-color:#dbc1ed;--art-glow:#ba98e04a;background:radial-gradient(ellipse at 25% 45%,#57638447,transparent 66%),linear-gradient(125deg,#172728,#1e2230)}
.art-poison-mastered .art-ring{border-color:#bfaae95c}
.art-poison-mastered .art-mote-one{background:#c5e7d5}.art-poison-mastered .art-mote-two{background:#d3c5ed}.art-poison-mastered .art-mote-three{background:#edceb9}
.art-mote{position:absolute;z-index:2;width:4px;height:4px;border-radius:50%;background:var(--art-color);opacity:0;pointer-events:none;animation:art-drift 7s ease-in-out infinite}
.art-mote-one{left:19%;bottom:15%;animation-delay:-1.5s}.art-mote-two{left:55%;bottom:22%;animation-delay:-4s}.art-mote-three{left:77%;bottom:30%;animation-delay:-6s}
.relic-art{height:190px;display:grid;place-items:center;margin:0 0 18px;border-radius:10px;background:radial-gradient(ellipse at 50% 68%,#344b3929,transparent 72%)}
.relic-art .art-relic{width:180px;height:180px;max-width:85%;animation:art-levitate 6.5s ease-in-out infinite;filter:drop-shadow(0 7px 8px #0004)}
.relic-art .art-ring{width:145px;left:calc(50% - 72.5px);top:25px;border-color:#beab6e33}
.relic-art-book{--art-color:#e1c080;--art-glow:#c49b4730}
.relic-art-book .art-relic{animation-delay:-2s}
.relic-art-banner{--art-color:#ce917d;--art-glow:#b65d452b;background:radial-gradient(ellipse at 50% 68%,#713a2d2a,transparent 72%)}
.relic-art-wheel{--art-color:#b1e1d4;--art-glow:#67b7aa2b}
.relic-art-key{--art-color:#e3cc98;--art-glow:#c7a34435}
.relic-art-seal{--art-color:#a7d0a8;--art-glow:#80a86c30}
.relic-art-banner .art-relic{animation-delay:-1s}.relic-art-wheel .art-relic{animation-delay:-3s}.relic-art-key .art-relic{animation-delay:-4s}.relic-art-seal .art-relic{animation-delay:-5s}
.relic-art.art-awakened{--art-color:#e6c8ee;--art-glow:#b995d840}
.art-sealed{filter:grayscale(.7);opacity:.65}.art-memorial{filter:grayscale(1);--art-glow:transparent}
.companion-portrait.portrait-art{position:relative;overflow:hidden;padding:0;background:#233637}
.portrait-art img{position:absolute;width:300%;height:450%;max-width:none;left:-100%;top:0;display:block;object-fit:contain;object-position:50% 0}
.flame-art{width:100%;height:125px;display:grid;place-items:center;margin-bottom:12px;--flame-main:#d0a151;--flame-inner:#f2d09c;--flame-heart:#fff2d6;--art-glow:#cbaa5430}
.flame-art svg{width:92px;height:108px;overflow:visible}
.flame-art .art-aura{inset:8% calc(50% - 64px)}
.flame-soul{transform-origin:48px 94px;animation:art-fire 3.5s ease-in-out infinite}
.flame-outer,.flame-petal,.flame-tide{fill:var(--flame-main)}
.flame-inner{fill:var(--flame-inner)}.flame-heart{fill:var(--flame-heart)}
.flame-petal,.flame-tide{opacity:.6}.flame-base{stroke:var(--flame-main);stroke-width:1.3;opacity:.5}
.flame-art-lotus{--flame-main:#5ea98d;--flame-inner:#b0e0c0;--flame-heart:#e6fbe9;--art-glow:#74c7a337}
.flame-art-sea{--flame-main:#4876b8;--flame-inner:#8fbadf;--flame-heart:#d6ebff;--art-glow:#6389d533}
.flame-art-sea .flame-soul{animation-duration:4.5s}.flame-art-lotus .flame-soul{animation-delay:-1s}
.flame-art-active svg{filter:drop-shadow(0 0 7px var(--flame-main))}
.idle-art .art-character,.idle-art .art-relic,.idle-art .art-mote,.idle-art .flame-soul{animation-play-state:paused}
.idle-art[data-art-visible="true"] .art-character,.idle-art[data-art-visible="true"] .art-relic,.idle-art[data-art-visible="true"] .art-mote,.idle-art[data-art-visible="true"] .flame-soul{animation-play-state:running}
.idle-art.art-sealed .art-relic,.idle-art.art-sealed .art-mote,.idle-art.art-memorial .art-character,.idle-art.art-memorial .art-mote{animation-play-state:paused}
@keyframes art-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.008)}}
@keyframes art-levitate{0%,100%{transform:translateY(2px) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes art-drift{0%,100%{transform:translateY(0);opacity:0}30%{opacity:.6}65%{transform:translate(5px,-25px);opacity:.35}85%{transform:translate(7px,-33px);opacity:0}}
@keyframes art-fire{0%,100%{transform:scale(.98,1)}50%{transform:scale(1.025,1.035) translateY(-1px)}}
@media(max-width:600px){.companion-art{grid-template-columns:minmax(120px,.8fr) minmax(0,1fr);min-height:210px}.companion-art .art-character{height:230px}.art-caption{padding:16px 14px 16px 5px}.art-caption h4{font-size:19px}.art-caption p{font-size:13px;margin:8px 0}.art-caption .eyebrow{font-size:10px;letter-spacing:.06em}.art-state{font-size:11px;padding:4px 6px}.relic-art{height:165px}.relic-art .art-relic{width:155px;height:155px}}
@media(max-width:370px){.companion-art{grid-template-columns:minmax(0,1fr);text-align:center}.companion-art .art-character{height:220px;max-width:180px;margin:auto}.companion-art .art-aura{inset:0 8% 32%}.companion-art .art-ring{width:80%;left:10%;top:4%}.companion-art .art-caption{padding:0 16px 18px}.companion-art .art-caption h4{margin:5px 0 8px}}
@media(prefers-reduced-motion:reduce){.idle-art .art-character,.idle-art .art-relic,.idle-art .art-mote,.idle-art .flame-soul{animation:none!important}.art-mote{opacity:.25}}
