/* QVIRO 0.6 — redesigned three-dimensional city and sanctuary */
#city>.row{margin-bottom:10px}
#city>.row h2{margin:6px 0 0;font-size:27px}
#city .scene{height:min(51dvh,480px);min-height:310px;border-radius:20px;box-shadow:0 15px 35px #00111188,inset 0 0 35px #102e30;background:radial-gradient(ellipse at 60% 7%,#51786e,#123337 60%,#081c21)}
#city .scene.qv-3d-ready>.scape,#city .scene.qv-3d-ready>.hot,#city .scene.qv-3d-ready>.cityhint{display:none}
#city .scene-head{left:14px;top:17px;pointer-events:none}
#city .scene-head strong{font-size:24px;text-shadow:0 2px 7px #001b1b}
#city .scene-head small{letter-spacing:.08em}
#city .qv-city-caption{position:absolute;bottom:11px;left:12px;right:12px;z-index:5;padding:9px 11px;border-radius:12px;display:flex;gap:7px;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#0c2726ed,#0d2c2b91);border:1px solid #739f8055;font-size:11px;color:#dfede3;pointer-events:none}
.qv-webgl{display:block;width:100%;height:100%;touch-action:pan-y}
#city .qv-webgl{position:absolute;inset:0;z-index:1;touch-action:none}
.qv-game-locations{margin:12px 0 16px}
.qv-locations-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.qv-locations-heading h3{margin:0;font-size:15px}
.qv-locations-heading span{color:#87b2a7;font-size:10px}
.qv-place-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.qv-place-grid .qv-place{display:flex;gap:9px;align-items:center;min-height:68px;background:linear-gradient(128deg,#1e403d,#112c2d);border:1px solid #456962;border-radius:14px;color:#dfeee4;text-align:left;padding:9px 10px;min-width:0;box-shadow:0 3px 9px #03171a65}
.qv-place-grid .qv-place:last-child{grid-column:span 2}
.qv-place .qv-placeicon{flex:0 0 34px;height:34px;display:grid;place-items:center;background:#2c5650;border:1px solid #669888;border-radius:10px}
.qv-place .qv-placeicon svg{width:24px;height:24px}
.qv-place .qv-placetext{min-width:0;flex:1}
.qv-place .qv-placetext b{display:block;font-size:12px}
.qv-place .qv-placetext small{display:block;margin-top:3px;font-size:10px;color:#a3c3b8;line-height:1.2}
.qv-place:active{background:#315a52}
#hero .qv-webgl-hero{position:absolute;inset:0;z-index:1;touch-action:none}
#qv-avatararea.qv-3d-ready>#qv-avatar-image{display:none}
#qv-avatararea.qv-3d-ready .qv-level{z-index:2;pointer-events:none}
#battle .battle-art.qv-3d-ready{background:radial-gradient(ellipse at 50% 40%,#345764,#0f2932 80%);position:relative}
#battle .battle-art.qv-3d-ready>#qv-fighter,
#battle .battle-art.qv-3d-ready>#enemyart{display:none}
#battle .battle-art .qv-webgl-battle{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
#battle .battle-art.qv-3d-ready .qv-hit-ring{z-index:4}
#battle .battle-art.qv-3d-ready:after{display:none}
#qv-fauna-canvas{height:220px;position:relative;border-radius:14px;overflow:hidden;background:radial-gradient(ellipse at 54% 43%,#3a6760,#0d292f 85%);border:1px solid #48685d}
#qv-fauna-canvas .qv-webgl-fauna{position:absolute;inset:0;z-index:1;touch-action:none}
#qv-fauna-canvas.qv-3d-ready .qv-no3d{display:none}
#qv-fauna-stage{position:relative;margin:12px 0;padding:0;border-radius:16px;overflow:hidden;border:1px solid #456d60;background:#0d2829}
#qv-fauna-stage .qv-stage-top{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-size:10px;color:#a6d0c1;letter-spacing:.08em}
.qv-fauna-header{display:flex;justify-content:space-between;align-items:center}
.qv-fauna-header strong{font-size:16px}
.qv-fauna-header p{font-size:11px;color:#9ab9ad;margin:4px 0 10px}
.qv-fauna-count{padding:7px 10px;color:#b3e7c9;font-size:12px;border-radius:10px;background:#254e46}
.qv-tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}
.qv-tier-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--rar);background:linear-gradient(#213c38,#102929);border-radius:12px;padding:9px 2px;min-height:60px}
.qv-tier-tile strong{font-size:20px;color:var(--rar)}
.qv-tier-tile span{font-size:10px;color:#b9d1c7;text-align:center}
.qv-animal-card{display:flex;width:100%;align-items:center;gap:11px;padding:12px;margin:8px 0;text-align:left;border-radius:13px;background:linear-gradient(120deg,#1b3636,#10282a);border:1px solid var(--rar);color:#ebf4e8;box-shadow:inset 3px 0 var(--rar)}
.qv-animal-card .qv-animal-emblem{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;background:#214c44;border:1px solid #698e80;border-radius:12px;color:var(--rar);font-size:21px}
.qv-animal-title{display:block;flex:1;min-width:0}
.qv-animal-title b{display:block;font-size:14px}
.qv-animal-title small{display:block;font-size:11px;color:#a7c4b7;margin-top:4px}
.qv-card-chevron{font-size:23px;color:var(--rar)}
.qv-no3d{position:absolute;top:50%;width:100%;text-align:center;transform:translateY(-50%);color:#b4c7b8;font-size:12px}
.qv-tiny{font-size:11px}
#qv-species-rank{color:#e6d1a5}
#qv-fauna-canvas.qv-3d-ready{box-shadow:inset 0 0 30px #0a161a}
#battle .gem.qv-match{animation:qv-tile-fade .13s forwards ease-in}
@keyframes qv-tile-fade{to{opacity:.08;transform:scale(.45);filter:brightness(1.8)}}
#battle .gem.qv-dropping{transition:transform .22s cubic-bezier(.12,.78,.3,1),opacity .22s ease}
#battle .gem.qv-drop-start{transition:none!important}
#battle .qv-chain{color:#ffdd8e;font-weight:700;text-shadow:0 0 8px #efb75c6b}
@media(max-height:730px){#city .scene{height:41dvh;min-height:275px}#qv-fauna-canvas{height:175px}}

.qv-bestiary{margin-top:12px;padding:12px 14px}.qv-bestiary summary{cursor:pointer;font-weight:700;color:#b8dfd0;font-size:13px}.qv-bestiary .sub{font-size:11px;margin:11px 0;line-height:1.6}
