/* V3.3 世界旅行與跨世界小屋 */
.world-current-chip{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:3px 8px;border-radius:999px;background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.25);color:var(--yellow);font-size:11px}
.world-travel-summary{width:100%;max-width:760px;display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:8px auto 14px}
.world-travel-summary .growth-card{min-width:0}
.world-card-grid{width:100%;max-width:760px;display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px}
.world-card{position:relative;overflow:hidden;border:2px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.07);color:var(--chalk);padding:15px;text-align:left;cursor:pointer;min-height:220px;display:flex;flex-direction:column;gap:8px;transition:transform .18s ease,border-color .18s ease,background .18s ease}
.world-card:hover,.world-card.active{transform:translateY(-2px);border-color:var(--yellow);background:rgba(255,209,102,.10)}
.world-card .world-icon{font-size:42px}
.world-card h3{margin:0;font-size:17px;color:var(--yellow)}
.world-card p{margin:0;color:var(--chalk-dim);font-size:12px;line-height:1.55}
.world-card .world-status{align-self:flex-start;padding:3px 8px;border-radius:999px;font-size:10px;background:rgba(87,199,184,.14);border:1px solid rgba(87,199,184,.32);color:var(--teal)}
.world-card .world-status.preview{color:var(--yellow);border-color:rgba(255,209,102,.35);background:rgba(255,209,102,.10)}
.world-card .world-local{margin-top:auto;font-size:10px;color:var(--chalk-dim);line-height:1.5}
.world-card .btn{width:100%;margin-top:4px}
.carry-rule-box{width:100%;max-width:760px;margin:14px auto 0;padding:13px 15px;border-radius:16px;border:1px dashed rgba(255,255,255,.22);background:rgba(255,255,255,.05);font-size:12px;line-height:1.7;text-align:left}
.carry-rule-box b{color:var(--yellow)}
.world-hub-shell{width:100%;max-width:720px;display:grid;gap:16px;margin:8px auto 0}
.world-hub-scene{position:relative;min-height:290px;border-radius:22px;overflow:hidden;border:2px solid rgba(255,255,255,.16);padding:18px;background:linear-gradient(180deg,#334b77 0 44%,#596a8e 44% 52%,#556b4d 52% 100%)}
.world-hub-scene.equation-city{background:linear-gradient(180deg,#6d87bd 0 40%,#b5c7e6 40% 48%,#6a7180 48% 100%)}
.world-hub-scene.science-continent{background:radial-gradient(circle at 75% 15%,rgba(255,235,158,.28),transparent 18%),radial-gradient(circle at 18% 24%,rgba(126,182,255,.25),transparent 22%),linear-gradient(180deg,#171d3d 0 39%,#343a69 39% 48%,#596476 48% 57%,#394b55 57% 100%)}
.world-hub-scene.science-continent::before{content:"";position:absolute;left:-5%;right:-5%;bottom:42px;height:92px;background:linear-gradient(135deg,transparent 0 8%,rgba(224,231,255,.20) 8% 11%,transparent 11% 22%,rgba(242,211,123,.18) 22% 26%,transparent 26% 41%,rgba(183,165,255,.19) 41% 46%,transparent 46% 62%,rgba(126,199,255,.18) 62% 67%,transparent 67%);opacity:.9;pointer-events:none}
.world-hub-scene.science-continent::after{content:"✦　✧　✦　✧　✦";position:absolute;right:7%;top:26%;color:rgba(255,244,181,.65);font-size:13px;letter-spacing:7px;transform:rotate(-4deg);pointer-events:none}
.world-hub-scene.elementary-world{background:linear-gradient(180deg,#66a7d9 0 42%,#b9dcf0 42% 48%,#65955d 48% 100%)}
.world-hub-sky{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;position:relative;z-index:3}
.world-hub-sky h2{margin:0;color:#fff;font-size:20px}.world-hub-sky small{display:block;margin-top:3px;color:rgba(255,255,255,.78)}
.world-hub-status{padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.25);font-size:10px;color:#fff}
.world-hub-landmarks{position:absolute;inset:0;z-index:2;pointer-events:none}
.world-landmark{min-height:90px;border:none;border-radius:15px;padding:10px;background:rgba(255,255,255,.88);color:#2d3140;text-align:center;box-shadow:0 5px 0 rgba(0,0,0,.12)}
.world-landmark .ico{font-size:31px}.world-landmark b{display:block;font-size:11px;margin-top:2px}.world-landmark small{font-size:9px;color:#666b78;line-height:1.35}
.world-hub-hero{position:absolute;left:46%;bottom:18px;z-index:6;text-align:center;filter:drop-shadow(0 4px 0 rgba(0,0,0,.16));animation:worldHeroFloat 2s ease-in-out infinite;transform:translateX(-50%)}
.world-hub-hero .world-hub-gear{font-size:12px;min-height:14px}.world-hub-hero .hero-face{font-size:0;line-height:1;width:36px;height:46px;display:grid;place-items:end center}.world-hub-hero .hero-face img{width:36px;height:46px;object-fit:contain;object-position:center bottom}.world-hub-hero b{display:block;font-size:9px;color:#fff;background:rgba(0,0,0,.38);padding:2px 6px;border-radius:999px;margin-top:2px}
.world-hub-home{position:absolute;left:7%;bottom:26px;z-index:5;border:none;background:transparent;color:#fff;text-align:center;cursor:pointer}
.world-hub-home .house{font-size:34px;filter:drop-shadow(0 4px 0 rgba(0,0,0,.15))}.world-hub-home b{display:block;font-size:9px;background:rgba(0,0,0,.42);padding:2px 7px;border-radius:999px}
@keyframes worldHeroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.world-hub-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.world-resident-section{padding:13px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.world-resident-section h3{font-size:15px;margin:0 0 9px;color:var(--yellow)}
.world-resident-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.world-resident-card{border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.06);color:var(--chalk);padding:10px;text-align:center}
.world-resident-card .face{font-size:31px}.world-resident-card b{display:block;font-size:12px}.world-resident-card small{display:block;font-size:10px;color:var(--chalk-dim);margin:2px 0 7px}.world-resident-card .bond{font-size:10px;color:#ff9b8b;min-height:17px}.world-resident-card .btn{width:100%;margin-top:6px}
.world-dialog{margin-top:10px;padding:11px 13px;border-radius:13px;background:rgba(255,255,255,.09);border-left:4px solid var(--teal);font-size:12px;line-height:1.6;text-align:left}
.world-hub-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.portable-home-shell{width:100%;max-width:700px;display:grid;gap:12px}
.portable-home-room{position:relative;min-height:310px;border-radius:22px;overflow:hidden;border:2px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#eacda3 0 70%,#a87e56 70% 100%)}
.portable-home-room::before{content:"";position:absolute;left:14%;top:18%;width:72px;height:72px;border:8px solid #f8e9cb;background:linear-gradient(180deg,#8fc8ee,#d8f1ff);box-shadow:0 0 0 3px rgba(87,52,26,.18)}
.portable-home-room.equation-city{background:linear-gradient(180deg,#d8e1f0 0 70%,#7d8797 70% 100%)}
.portable-home-room.science-continent{background:linear-gradient(180deg,#555b81 0 70%,#292d48 70% 100%)}
.portable-home-title{position:absolute;left:16px;top:14px;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.28);color:#fff;font-size:11px}
.portable-home-hero{position:absolute;left:47%;bottom:24px;text-align:center}.portable-home-gear{font-size:16px;min-height:20px}.portable-home-hero .face{font-size:42px}.portable-home-hero b{display:block;font-size:10px;color:#fff;background:rgba(0,0,0,.35);padding:2px 7px;border-radius:999px}
.portable-decor{position:absolute;font-size:31px;filter:drop-shadow(0 3px 0 rgba(0,0,0,.12))}.portable-decor.d0{left:9%;bottom:24px}.portable-decor.d1{left:28%;bottom:31px}.portable-decor.d2{right:28%;bottom:27px}.portable-decor.d3{right:10%;bottom:25px}.portable-decor.d4{right:12%;top:27%}.portable-decor.d5{left:42%;top:24%}
.portable-collection{display:grid;grid-template-columns:1fr 1fr;gap:10px}.portable-list{padding:12px;border-radius:15px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);text-align:left}.portable-list b{color:var(--yellow)}.portable-list p{margin:6px 0 0;color:var(--chalk-dim);font-size:12px;line-height:1.6}
@media(max-width:700px){.world-card-grid{grid-template-columns:1fr}.world-travel-summary,.world-hub-stats{grid-template-columns:1fr 1fr}.world-hub-landmarks{grid-template-columns:repeat(2,1fr);gap:5px}.world-landmark{padding:6px}.world-landmark small{display:none}.world-resident-grid{grid-template-columns:1fr}.portable-collection{grid-template-columns:1fr}}
@media(max-width:420px){.world-hub-scene{min-height:265px}.world-hub-landmarks{bottom:62px}.world-landmark .ico{font-size:25px}.world-hub-home .house{font-size:42px}.world-hub-hero .hero-face{font-size:31px}}

.upper-secondary-pathway{padding:13px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);text-align:left}
.pathway-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.pathway-head b{display:block;color:var(--yellow)}.pathway-head small{display:block;color:var(--chalk-dim);font-size:10px;margin-top:3px}.pathway-head>span{padding:4px 8px;border-radius:999px;background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.28);color:var(--yellow);font-size:10px;white-space:nowrap}
.pathway-route-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.pathway-route-card{border:1px solid rgba(255,255,255,.14);border-radius:13px;padding:9px;background:rgba(255,255,255,.05);color:var(--chalk);text-align:left}.pathway-route-card.active{border-color:var(--yellow);background:rgba(255,209,102,.10)}.pathway-route-card .ico{font-size:26px}.pathway-route-card b{display:block;font-size:11px;margin-top:3px}.pathway-route-card small{display:block;font-size:9px;color:var(--chalk-dim);line-height:1.4;min-height:38px}.pathway-route-card .btn{width:100%;margin-top:7px;font-size:10px;padding:6px}
.pathway-pack-list{margin-top:10px;font-size:11px}.pathway-pack-list>b{color:var(--teal)}#upperSecondaryPackGrid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pathway-pack-chip{padding:4px 7px;border-radius:999px;background:rgba(87,199,184,.10);border:1px solid rgba(87,199,184,.24);color:var(--chalk-dim);font-size:9px}.pathway-pack-chip.unlocked{color:var(--teal);background:rgba(87,199,184,.18)}
@media(max-width:700px){.pathway-route-grid{grid-template-columns:1fr 1fr}.pathway-head{display:block}.pathway-head>span{display:inline-block;margin-top:7px}}

/* V4.5 國中正式課程入口 */
.junior-course-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-radius:18px;background:linear-gradient(135deg,rgba(65,93,150,.42),rgba(43,62,105,.72));border:2px solid rgba(205,224,255,.26)}
.junior-course-panel[hidden]{display:none}
.junior-course-copy{display:grid;gap:5px;min-width:0}
.junior-course-copy b{font-size:18px;color:#fff}
.junior-course-copy small{line-height:1.7;color:rgba(255,255,255,.82)}
.junior-course-kicker{font-size:12px;font-weight:800;color:#ffe078}
.junior-course-panel .btn{flex:0 0 auto}
@media(max-width:620px){.junior-course-panel{align-items:stretch;flex-direction:column}.junior-course-panel .btn{width:100%}}

/* V5.0 主選單世界切換與課程入口 */
.home-world-selector{width:100%;max-width:680px;padding:12px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);display:grid;gap:10px;text-align:left}
.home-world-selector-title{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.home-world-selector-title b{color:var(--yellow)}.home-world-selector-title small{color:var(--chalk-dim);font-size:10px;text-align:right}
.home-world-selector-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.home-world-selector-grid button{border:2px solid transparent;border-radius:15px;padding:10px 8px;background:rgba(255,255,255,.07);color:var(--chalk);cursor:pointer;display:grid;justify-items:center;gap:2px;font:inherit}.home-world-selector-grid button span{font-size:28px}.home-world-selector-grid button b{font-size:14px}.home-world-selector-grid button small{font-size:9px;color:var(--chalk-dim)}.home-world-selector-grid button.active{border-color:var(--yellow);background:rgba(255,209,102,.15);box-shadow:0 0 0 2px rgba(255,209,102,.08) inset}
body.home-world-elementary{--board:#1e3b32;--board-2:#16302a;--yellow:#ffc94a;--teal:#57c7b8}
body.home-world-junior{--board:#273b63;--board-2:#172746;--yellow:#ffe078;--teal:#8ac7ff}
body.home-world-senior{--board:#27254d;--board-2:#17162f;--yellow:#f2d47b;--teal:#b7a5ff}
body.home-world-junior #screen-home .hero-panel{background:linear-gradient(135deg,rgba(106,157,235,.22),rgba(73,87,151,.16))}
body.home-world-senior #screen-home .hero-panel{background:linear-gradient(135deg,rgba(171,139,255,.2),rgba(60,55,111,.2))}
.course-portal-grid{width:100%;max-width:760px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.course-grade-card{border:2px solid rgba(255,255,255,.14);border-radius:18px;padding:14px;background:rgba(255,255,255,.07);text-align:left;display:grid;gap:8px}.course-grade-icon{font-size:34px}.course-grade-card h3{margin:0;color:var(--yellow);font-size:18px}.course-grade-card p{margin:0;color:var(--chalk-dim);font-size:11px;line-height:1.55;min-height:34px}.course-semester-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.course-semester-button{border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:9px 5px;background:rgba(255,255,255,.07);color:var(--chalk);cursor:pointer}.course-semester-button:hover:not(:disabled){border-color:var(--yellow);background:rgba(255,209,102,.12)}.course-semester-button:disabled{opacity:.45;cursor:not-allowed}.course-semester-button b,.course-semester-button small{display:block}.course-semester-button small{font-size:9px;color:var(--chalk-dim);margin-top:3px}
.course-portal-detail{width:100%;max-width:760px;border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:15px;background:rgba(255,255,255,.06);text-align:left}
.senior-route-entry{border:2px solid rgba(255,255,255,.14);border-radius:20px;padding:18px;background:rgba(255,255,255,.07);color:var(--chalk);text-align:left;cursor:pointer;display:grid;gap:7px;min-height:205px}.senior-route-entry:hover{border-color:var(--yellow);transform:translateY(-2px)}.senior-route-entry>span{font-size:46px}.senior-route-entry>b{color:var(--yellow);font-size:20px}.senior-route-entry>small{font-size:11px;line-height:1.6;color:var(--chalk-dim)}.senior-route-entry>em{margin-top:auto;font-style:normal;font-size:11px;color:var(--teal)}
.senior-route-plan-head{display:flex;gap:12px;align-items:flex-start}.senior-route-plan-head>span{font-size:42px}.senior-route-plan h2{margin:0;color:var(--yellow)}.senior-route-plan p{margin:5px 0 0;color:var(--chalk-dim);font-size:12px;line-height:1.6}.senior-stage-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.senior-stage-card{border-radius:13px;padding:11px;background:rgba(255,255,255,.07);border:1px dashed rgba(255,255,255,.18)}.senior-stage-card b{display:block;font-size:12px}.senior-stage-card small{display:block;margin-top:4px;font-size:9px;color:var(--chalk-dim);line-height:1.5}
.world-resident-card .face{min-height:70px;display:flex;align-items:center;justify-content:center}.world-resident-portrait{width:66px;height:66px;object-fit:contain;filter:drop-shadow(0 3px 0 rgba(0,0,0,.14))}
@media(max-width:700px){.course-portal-grid{grid-template-columns:1fr}.senior-stage-list{grid-template-columns:1fr}.home-world-selector-title{display:block}.home-world-selector-title small{display:block;text-align:left;margin-top:3px}}
@media(max-width:430px){.home-world-selector-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home-world-selector-grid button{padding:7px 2px}.home-world-selector-grid button span{font-size:21px}.home-world-selector-grid button b{font-size:11px}.home-world-selector-grid button small{font-size:7px}.course-semester-actions{grid-template-columns:1fr 1fr}}
.upper-secondary-pathway .pathway-route-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:700px){.upper-secondary-pathway .pathway-route-grid{grid-template-columns:1fr}}


/* V5.0B 國中／高中世界居民場景層：每個世界最多八位主要居民 */
.world-hub-npcs{position:absolute;inset:0;z-index:4;pointer-events:none}
.world-scene-npc{pointer-events:auto;display:flex;justify-content:center;align-items:flex-end;min-width:0;filter:drop-shadow(0 3px 0 rgba(0,0,0,.18));transform-origin:center bottom;position:absolute;animation:worldNpcWander var(--wander-duration,12s) ease-in-out infinite;animation-delay:var(--wander-delay,0s);will-change:transform;transform:translateX(-50%)}
.world-scene-npc:nth-child(2n){--npc-scale:.92;--wander-rise:-5px}
.world-scene-npc:nth-child(3n){--npc-scale:.86;--wander-rise:-1px}
.world-scene-npc-img{width:27px;height:34px;object-fit:contain}
.world-scene-npc>span{font-size:25px}
@media(max-width:520px){.world-scene-npc-img{width:22px;height:28px}}
.world-npc-status{position:absolute;right:-1px;top:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.96);color:#2c3650;font-size:10px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.2);pointer-events:none}
.world-npc-status.task{background:#ffefc7;color:#7b5300}.world-npc-status.chat{background:#ffe0ea;color:#8e2f54}.world-npc-status.gift{background:#e7f8ff;color:#1d5f7e}.world-npc-status.done{background:#eaf7ea;color:#2b7a34}.world-npc-status.locked{background:#d9dee7;color:#54606f}
@keyframes worldNpcWander{0%,100%{transform:translate(0,var(--wander-rise,0)) scale(var(--npc-scale,1))}25%{transform:translate(calc(var(--wander-distance,10px) * .35),calc(var(--wander-rise,0) - 3px)) scale(var(--npc-scale,1))}50%{transform:translate(var(--wander-distance,10px),var(--wander-rise,0)) scale(var(--npc-scale,1))}75%{transform:translate(calc(var(--wander-distance,10px) * .2),calc(var(--wander-rise,0) + 2px)) scale(var(--npc-scale,1))}}

/* V5.0B 居民搬入、收藏冊與三世界中央大樹 */
.knowledge-tree{position:absolute;z-index:3;display:grid;justify-items:center;pointer-events:none;transform-origin:center bottom;transition:transform .5s ease,filter .5s ease}
.knowledge-tree img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 3px rgba(0,0,0,.25))}
.knowledge-tree span{margin-top:-12px;padding:3px 8px;border-radius:999px;background:rgba(25,30,45,.72);color:#fff;font-size:9px;white-space:nowrap;border:1px solid rgba(255,255,255,.28)}
.knowledge-tree.stage-0{transform:scale(.68);filter:saturate(.78)}
.knowledge-tree.stage-1{transform:scale(.78);filter:saturate(.92)}
.knowledge-tree.stage-2{transform:scale(.88);filter:saturate(1.05) drop-shadow(0 0 7px rgba(255,225,104,.28))}
.knowledge-tree.stage-3{transform:scale(1);filter:saturate(1.14) drop-shadow(0 0 11px rgba(255,225,104,.45))}
.knowledge-tree.stage-4{transform:scale(1.12);filter:saturate(1.25) drop-shadow(0 0 18px rgba(255,240,155,.75))}
.village-knowledge-tree{left:45%;top:12%;width:105px;height:105px;z-index:3}
.world-hub-knowledge-tree{right:5%;top:39px;width:112px;height:112px;z-index:1}
.world-hub-scene.science-continent .world-hub-knowledge-tree{right:4%;top:43px}
.world-resident-card{position:relative;display:grid;align-content:start}
.world-resident-card.locked{opacity:.68;border-style:dashed;background:rgba(20,23,34,.18)}
.world-resident-card.locked .face{filter:grayscale(1) brightness(.45)}
.world-resident-card .unlock-condition{min-height:34px;font-size:9px;line-height:1.45;color:var(--yellow);margin:3px 0}
.world-resident-card .resident-task-status{font-size:9px;color:var(--teal);min-height:27px;line-height:1.4;margin-top:4px}
.world-resident-card .resident-card-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:auto}
.world-resident-card .resident-card-actions .btn{font-size:9px;padding:6px 3px}
.world-resident-card .new-task-dot{position:absolute;right:7px;top:7px;width:10px;height:10px;border-radius:50%;background:#ff5b5b;box-shadow:0 0 0 3px rgba(255,91,91,.18)}
.resident-status-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:9px;font-weight:800;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:var(--chalk)}
.resident-status-pill.task{background:rgba(255,221,130,.14);border-color:rgba(255,221,130,.42);color:#ffe08b}.resident-status-pill.chat{background:rgba(255,170,195,.12);border-color:rgba(255,170,195,.36);color:#ffd1e3}.resident-status-pill.gift{background:rgba(164,233,255,.12);border-color:rgba(164,233,255,.35);color:#b8ebff}.resident-status-pill.done{background:rgba(159,234,166,.12);border-color:rgba(159,234,166,.35);color:#b9f3bf}.resident-status-pill.locked{background:rgba(210,216,228,.09);border-color:rgba(210,216,228,.3);color:#dce2ee}
.world-resident-card .resident-meta-row{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 1px}
.world-resident-card .resident-journal-tease{font-size:8px;color:var(--chalk-dim);margin-top:2px;line-height:1.4}
.resident-collection-book{grid-column:1/-1;padding:13px;border-radius:17px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.13);display:grid;gap:10px;text-align:left}
.collection-book-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.collection-book-head b{display:block;color:var(--yellow)}.collection-book-head small{display:block;color:var(--chalk-dim);font-size:10px;margin-top:3px}
.collection-world-tabs{display:flex;flex-wrap:wrap;gap:5px}.collection-world-tabs button{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:4px 8px;background:rgba(255,255,255,.05);color:var(--chalk);font-size:9px;cursor:pointer}.collection-world-tabs button.active{border-color:var(--yellow);background:rgba(255,209,102,.14);color:var(--yellow)}
.resident-collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.resident-collection-card{border:1px solid rgba(255,255,255,.14);border-radius:13px;background:rgba(255,255,255,.05);color:var(--chalk);padding:7px;cursor:pointer;text-align:center}.resident-collection-card.obtained{border-color:rgba(255,209,102,.45);background:rgba(255,209,102,.09)}.resident-collection-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.resident-collection-card.locked img{filter:grayscale(1) brightness(.27);opacity:.65}.resident-collection-card b{display:block;font-size:10px;margin-top:5px}.resident-collection-card small{display:block;font-size:8px;color:var(--chalk-dim);margin-top:2px}.resident-collection-card .collection-state{font-size:8px;color:var(--teal);margin-top:3px}.resident-collection-card.locked .collection-state{color:var(--yellow)}
.resident-collection-detail{min-height:76px;border-radius:13px;padding:10px;background:rgba(0,0,0,.18);display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.resident-collection-detail img{width:68px;height:68px;border-radius:12px;object-fit:cover}.resident-collection-detail b{display:block;color:var(--yellow)}.resident-collection-detail span{display:block;color:var(--chalk-dim);font-size:10px;line-height:1.55;margin-top:3px}
@media(max-width:700px){.resident-collection-grid{grid-template-columns:repeat(3,1fr)}.collection-book-head{display:block}.collection-world-tabs{margin-top:8px}.world-hub-knowledge-tree{width:86px;height:86px;right:2%;top:52px}.village-knowledge-tree{width:88px;height:88px;left:43%;top:15%}}
@media(max-width:430px){.resident-collection-grid{grid-template-columns:repeat(2,1fr)}.world-resident-card .resident-card-actions{grid-template-columns:1fr}.village-knowledge-tree{width:72px;height:72px;left:44%;top:18%}}

/* V5.0E 普通高中已開放課程按鈕 */
button.senior-stage-card{font:inherit;color:var(--chalk);text-align:left;width:100%}
.senior-stage-card.available{cursor:pointer;border-style:solid;border-color:rgba(242,212,123,.68);background:linear-gradient(135deg,rgba(242,212,123,.16),rgba(183,165,255,.13));box-shadow:0 0 0 1px rgba(255,255,255,.04) inset}
.senior-stage-card.available:hover{transform:translateY(-2px);border-color:var(--yellow);background:linear-gradient(135deg,rgba(242,212,123,.24),rgba(183,165,255,.2))}
.senior-stage-card.available em{display:block;margin-top:8px;color:var(--yellow);font-size:11px;font-style:normal;font-weight:800}

/* V5.0H 畢業挑戰與大學世界鎖定 */
.graduation-challenge-section{margin-top:18px;padding:16px;border:2px solid rgba(255,210,76,.45);border-radius:18px;background:rgba(56,35,93,.28)}
.graduation-challenge-section h3{margin:0 0 8px;color:#ffe08a}.graduation-challenge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.graduation-card{width:100%;text-align:left;border:2px solid rgba(255,255,255,.18);border-radius:15px;padding:14px;background:rgba(20,26,56,.7);color:#fff;display:flex;flex-direction:column;gap:7px}.graduation-card b{font-size:17px}.graduation-card small{line-height:1.55}.graduation-card em{font-style:normal;color:#ffe08a;font-weight:800}.graduation-card.available{cursor:pointer;border-color:#ffd45f;box-shadow:0 0 0 2px rgba(255,212,95,.12)}.graduation-card.completed{border-color:#7ce9a8;background:rgba(17,92,62,.45)}.graduation-card:disabled{opacity:.58;cursor:not-allowed}.home-world-selector [data-home-world="university"]:disabled{opacity:.55;filter:grayscale(.65)}


/* V5.0N 大學世界路線框架 */
.world-hub-scene.university-campus{background:radial-gradient(circle at 18% 15%,rgba(255,246,190,.5),transparent 22%),radial-gradient(circle at 82% 20%,rgba(171,215,255,.42),transparent 24%),linear-gradient(180deg,#6f9bc7 0 39%,#c9dff1 39% 48%,#748f73 48% 100%)}
.world-hub-scene.university-campus::before{content:"";position:absolute;left:-2%;right:-2%;bottom:41px;height:105px;background:linear-gradient(160deg,transparent 0 8%,rgba(245,239,214,.82) 8% 11%,transparent 11% 23%,rgba(229,235,241,.8) 23% 28%,transparent 28% 43%,rgba(218,227,239,.82) 43% 49%,transparent 49% 64%,rgba(245,239,214,.8) 64% 69%,transparent 69%);opacity:.82;pointer-events:none}
.world-hub-scene.university-campus::after{content:"✦　📚　✦　⚙️　✦";position:absolute;right:5%;top:28%;color:rgba(255,255,235,.8);font-size:14px;letter-spacing:5px;pointer-events:none}
.portable-home-room.university-campus{background:linear-gradient(180deg,#d9e7ef 0 70%,#728a76 70% 100%)}
.university-pathway{padding:13px;border-radius:18px;background:linear-gradient(135deg,rgba(94,126,176,.15),rgba(255,209,102,.08));border:1px solid rgba(186,215,255,.25);text-align:left}
.university-route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:10px}
.university-route-card{border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:11px;background:rgba(255,255,255,.06);color:var(--chalk)}
.university-route-card.active{border-color:#9fd6ff;background:rgba(125,190,240,.14)}
.university-route-card .ico{font-size:30px}.university-route-card b{display:block;font-size:13px;margin-top:3px}.university-route-card small{display:block;min-height:39px;margin-top:3px;color:var(--chalk-dim);font-size:9px;line-height:1.45}.university-route-card .btn{width:100%;margin-top:8px}
.university-track-panel{margin-top:10px;padding:10px;border-radius:13px;background:rgba(0,0,0,.15);border:1px solid rgba(255,255,255,.12)}
.university-track-panel>b{display:block;color:var(--teal)}.university-track-panel>small{display:block;margin-top:3px;color:var(--chalk-dim);font-size:9px}
.university-track-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.university-track-card{border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:9px;background:rgba(255,255,255,.05);color:var(--chalk);text-align:left;cursor:pointer}
.university-track-card.active{border-color:var(--yellow);background:rgba(255,209,102,.1)}.university-track-card.locked{opacity:.5;cursor:not-allowed}.university-track-card span{font-size:25px}.university-track-card b{display:block;font-size:11px}.university-track-card small{display:block;font-size:9px;color:var(--chalk-dim);line-height:1.4;margin-top:3px}.university-track-card em{display:block;margin-top:6px;color:var(--yellow);font-size:9px;font-style:normal}
.university-course-actions{margin-top:10px}.university-course-actions .btn{width:100%}
.university-course-group{margin-top:14px;padding:12px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13)}.university-course-group.locked{opacity:.56;border-style:dashed}.university-course-group-head{display:flex;justify-content:space-between;gap:8px}.university-course-group-head b{color:var(--teal)}.university-course-group-head small{font-size:9px;color:var(--chalk-dim);text-align:right}
@media(max-width:700px){.university-route-grid,.university-track-grid{grid-template-columns:1fr}.world-hub-scene.university-campus .world-hub-knowledge-tree{right:1%;top:53px}}

/* V5.0N 大學科系分流框架 */
.university-field-panel{margin-top:10px;padding:10px;border-radius:13px;background:rgba(0,0,0,.13);border:1px solid rgba(255,255,255,.12)}
.university-field-panel>b{display:block;color:#ffe294}.university-field-panel>small{display:block;margin-top:3px;color:var(--chalk-dim);font-size:9px;line-height:1.45}
.university-field-grid,.university-field-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}
.university-field-card{border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:9px;background:rgba(255,255,255,.055);color:var(--chalk);text-align:left;cursor:pointer;min-width:0}
.university-field-card:hover:not(:disabled){transform:translateY(-1px);border-color:rgba(255,226,148,.7)}
.university-field-card.active{border-color:#ffe294;background:rgba(255,226,148,.12);box-shadow:0 0 0 2px rgba(255,226,148,.07)}
.university-field-card:disabled{opacity:.48;cursor:not-allowed}.university-field-card span{font-size:25px}.university-field-card b{display:block;margin-top:2px;font-size:11px}.university-field-card small{display:block;margin-top:3px;min-height:38px;font-size:9px;line-height:1.42;color:var(--chalk-dim)}.university-field-card em{display:block;margin-top:6px;color:var(--yellow);font-size:9px;font-style:normal;font-weight:800}
.university-field-overview{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}
@media(max-width:700px){.university-field-grid,.university-field-overview{grid-template-columns:1fr}}


/* V5.0R 紀念櫃彈窗與居民互動深化 */
.collection-cabinet-hint{grid-column:1/-1;padding:9px 12px;border-radius:12px;background:rgba(255,230,130,.1);border:1px dashed rgba(255,230,130,.35);color:#ffeaa0;font-size:11px;text-align:center}
.collection-modal-overlay,.resident-interaction-overlay{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;padding:16px;background:rgba(7,13,25,.76);backdrop-filter:blur(5px)}
.collection-modal-overlay[hidden],.resident-interaction-overlay[hidden]{display:none!important}
.resident-collection-modal{position:relative;width:min(960px,96vw);max-height:92vh;overflow:auto;padding:18px;border-radius:24px;background:linear-gradient(155deg,#213853,#18283d);border:2px solid rgba(255,230,142,.45);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.resident-collection-modal .resident-collection-book{background:transparent;border:0;padding:0}
.collection-modal-close{position:absolute;right:10px;top:8px;z-index:4;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:27px;line-height:1;cursor:pointer}.collection-modal-close:hover{background:rgba(255,255,255,.22)}
body.game-modal-open{overflow:hidden}
.resident-interaction-modal{position:relative;width:min(590px,94vw);display:grid;grid-template-columns:130px 1fr;gap:18px;align-items:center;padding:24px;border-radius:24px;background:linear-gradient(145deg,#fff7d9,#eef7ff);color:#26344a;border:3px solid #f4cf69;box-shadow:0 22px 70px rgba(0,0,0,.48)}
.resident-interaction-portrait{width:126px;height:126px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,#dff2ff,#fff0ba);border:3px solid #fff;box-shadow:0 8px 20px rgba(38,52,74,.18);font-size:62px;overflow:hidden}.resident-interaction-portrait img{width:100%;height:100%;object-fit:contain}
.resident-interaction-content h2{margin:3px 38px 7px 0;font-size:23px;color:#293950}.resident-interaction-content p{margin:0;line-height:1.65;font-size:14px}.interaction-kicker{font-size:11px;font-weight:800;color:#a56d16;letter-spacing:.08em}.resident-interaction-reward{margin:12px 0;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #e6d8a3;color:#6d5420;font-size:12px;line-height:1.55}
.world-resident-card.selected{outline:3px solid #ffe47e;transform:translateY(-3px);box-shadow:0 8px 24px rgba(255,221,94,.22)}
.world-scene-npc{cursor:pointer}.world-scene-npc.selected{filter:drop-shadow(0 0 7px #ffe373);z-index:20}.world-scene-npc:focus-visible{outline:3px solid #fff18a;border-radius:15px}
.world-npc-bubble{position:absolute;left:50%;bottom:88%;width:max-content;max-width:155px;transform:translateX(-50%);padding:5px 8px;border-radius:10px;background:#fff;color:#33415b;font-size:8px;font-weight:700;line-height:1.35;box-shadow:0 5px 14px rgba(0,0,0,.28);pointer-events:none;animation:residentBubbleIn .25s ease}.world-npc-bubble::after{content:"";position:absolute;left:50%;bottom:-6px;border:6px solid transparent;border-top-color:#fff;transform:translateX(-50%)}
@keyframes residentBubbleIn{from{opacity:0;transform:translate(-50%,6px) scale(.92)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
.resident-task-status{min-height:30px}
@media(max-width:600px){.resident-interaction-modal{grid-template-columns:82px 1fr;padding:18px 14px;gap:12px}.resident-interaction-portrait{width:80px;height:80px;font-size:42px}.resident-interaction-content h2{font-size:18px}.resident-collection-modal{padding:14px 10px}.collection-modal-close{width:34px;height:34px}.world-npc-bubble{max-width:115px;font-size:7px}}


/* V5.0R 居民搬入演出 */
.resident-interaction-modal.mode-arrival{overflow:hidden;background:linear-gradient(145deg,#fff7cc,#e6f8ff);border-color:#ffd65f;animation:residentArrivalPanel .42s cubic-bezier(.2,.8,.2,1)}
.resident-interaction-modal.mode-arrival::before,.resident-interaction-modal.mode-arrival::after{content:"✨";position:absolute;top:14px;font-size:23px;animation:arrivalSparkle 1.4s ease-in-out infinite;pointer-events:none}
.resident-interaction-modal.mode-arrival::before{left:16px}.resident-interaction-modal.mode-arrival::after{right:52px;animation-delay:.35s}
.resident-interaction-modal.mode-arrival .resident-interaction-portrait{position:relative;animation:residentWalkIntoHome .75s cubic-bezier(.18,.85,.28,1.12);box-shadow:0 0 0 7px rgba(255,214,95,.22),0 10px 24px rgba(38,52,74,.22)}
.resident-interaction-modal.mode-arrival .resident-interaction-portrait::after{content:"🏠";position:absolute;right:-5px;bottom:-7px;font-size:28px;filter:drop-shadow(0 3px 2px rgba(0,0,0,.18))}
.resident-interaction-modal.mode-arrival .interaction-kicker{color:#b7780a}.resident-interaction-modal.mode-arrival h2{color:#7a4b08}
.world-scene-npc.recent-arrival{z-index:30;animation:worldResidentMoveIn 1.35s cubic-bezier(.2,.85,.25,1) both}
@keyframes residentArrivalPanel{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
@keyframes residentWalkIntoHome{0%{opacity:0;transform:translateX(120px) scale(.72)}65%{opacity:1;transform:translateX(-8px) scale(1.05)}100%{transform:none}}
@keyframes worldResidentMoveIn{0%{opacity:0;transform:translateX(130px) scale(.72)}70%{opacity:1;transform:translateX(-5px) scale(1.08)}100%{opacity:1;transform:none}}
@keyframes arrivalSparkle{0%,100%{opacity:.25;transform:scale(.75) rotate(-12deg)}50%{opacity:1;transform:scale(1.15) rotate(12deg)}}
@media(prefers-reduced-motion:reduce){.resident-interaction-modal.mode-arrival,.resident-interaction-modal.mode-arrival .resident-interaction-portrait,.world-scene-npc.recent-arrival{animation:none!important}}


/* V5.0R 國中／高中／大學居民介面與國小一致 */
.world-resident-section{display:grid;gap:10px}
.world-resident-title{max-width:none;margin-top:0}
.world-resident-list{max-width:none;grid-template-columns:repeat(4,minmax(0,1fr))}
.world-resident-list .resident-card{position:relative;min-height:142px;display:grid;align-content:start}
.world-resident-list .resident-card .resident-face{min-height:58px;display:grid;place-items:center}
.world-resident-list .resident-card .resident-status-pill{justify-self:center;margin-top:5px}
.world-resident-list .resident-card .resident-hearts{margin-top:3px}
.world-resident-dialog{width:100%;max-width:none;box-sizing:border-box}
.world-relationship-panel{width:100%;max-width:none;box-sizing:border-box}
.world-bond-actions{grid-template-columns:repeat(3,1fr)}
.world-bond-actions .btn{width:100%}
.world-resident-section .world-dialog{margin-top:0}
@media(max-width:700px){.world-resident-list{grid-template-columns:repeat(2,minmax(0,1fr))}.world-bond-actions{grid-template-columns:1fr}}
@media(max-width:430px){.world-resident-list{grid-template-columns:repeat(2,minmax(0,1fr))}.world-resident-list .resident-card{min-height:132px}}


.world-landmark.enterable{cursor:pointer;position:relative;padding-bottom:24px;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.world-landmark.enterable:hover,.world-landmark.enterable:focus-visible{transform:translateY(-2px);box-shadow:0 7px 0 rgba(0,0,0,.14);background:#fff}
.world-landmark .enter-tag{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);font-size:9px;padding:2px 8px;border-radius:999px;background:rgba(45,49,64,.9);color:#fff}


.village-style-scene{background-size:cover}
.scene-village-buildings .mini-building{position:absolute;pointer-events:auto;width:86px;min-height:74px;padding:10px 7px 20px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(241,235,223,.96));border:2px solid rgba(255,255,255,.82);box-shadow:0 7px 0 rgba(0,0,0,.12);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:3px;transform:translateX(-50%)}
.scene-village-buildings .mini-building::before{content:"";position:absolute;left:14px;right:14px;top:-10px;height:22px;background:linear-gradient(180deg,#b68454,#8c5836);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:4px 4px 0 0}
.scene-village-buildings .mini-building .ico{font-size:25px;line-height:1;margin-top:6px}
.scene-village-buildings .mini-building b{font-size:10px;line-height:1.2}
.scene-village-buildings .mini-building small{display:none}
.scene-village-buildings .mini-building .enter-tag{position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);font-size:8px;padding:2px 7px;border-radius:999px;background:rgba(45,49,64,.92);color:#fff;white-space:nowrap}
.scene-village-npcs .world-scene-npc{z-index:4}
.scene-village-npcs .world-scene-npc.selected{z-index:10}
.village-style-scene .world-hub-status{position:relative;z-index:8}
.village-style-scene .world-hub-sky{z-index:8}
.village-style-scene .world-hub-knowledge-tree{z-index:1}
@media(max-width:700px){
  .scene-village-buildings .mini-building{width:72px;min-height:66px;padding:8px 6px 18px}
  .scene-village-buildings .mini-building .ico{font-size:22px}
  .scene-village-buildings .mini-building b{font-size:9px}
}
@media(max-width:420px){
  .scene-village-buildings .mini-building{width:64px;min-height:60px;padding:7px 5px 16px}
  .scene-village-buildings .mini-building::before{left:10px;right:10px;top:-8px;height:18px}
  .world-hub-home .house{font-size:30px}
}


/* V5.0Z：國中、高中、大學完整參考國小村莊移動操作 */
.world-village-wander-bar{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:-3px auto 1px}
.world-village-wander-bar span{font-size:11px;color:var(--chalk-dim);padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.world-hub-scene.wander-mode{cursor:crosshair;box-shadow:inset 0 0 0 3px rgba(255,209,102,.28)}
.world-hub-hero.traveling{animation:none!important;transition:left .72s ease-in-out,bottom .72s ease-in-out,transform .72s ease-in-out;pointer-events:none}
.world-hub-hero.free-wander{animation:none!important;transition:left .55s ease,bottom .55s ease}
.world-hub-hero.free-wander .hero-face{animation:heroBounce 1.2s ease-in-out infinite}
.world-travel-bubble{z-index:30}
@media(prefers-reduced-motion:reduce){.world-hub-hero.traveling,.world-hub-hero.free-wander{transition:none!important}.world-hub-hero.free-wander .hero-face{animation:none!important}}


/* V5.0AF：國中/高中/大學地圖改為完整比照國小村莊的背景、道路、預定地與移動感 */
.world-scene-decor{position:absolute;inset:0;z-index:1;pointer-events:none}
.world-scene-decor .village-cloud,.world-scene-decor .village-river,.world-scene-decor .village-path-main,.world-scene-decor .village-path-side,.world-scene-decor .village-tree,.world-scene-decor .village-bush{pointer-events:none}
.world-scene-path-secondary{position:absolute;background:#d6c39a;border-radius:999px;box-shadow:0 0 0 3px rgba(100,72,33,.09) inset;z-index:2;opacity:.9}
.world-scene-path-secondary.s1{left:38%;bottom:31%;width:18%;height:14px;transform:rotate(-30deg)}
.world-scene-path-secondary.s2{left:63%;bottom:23%;width:17%;height:14px;transform:rotate(34deg)}
.world-empty-lot{position:absolute;width:68px;height:60px;transform:translateX(-50%);z-index:2;opacity:.92}
.world-empty-lot::before{content:"";position:absolute;left:50%;top:12px;transform:translateX(-50%);width:46px;height:36px;border-radius:12px;background:linear-gradient(180deg,rgba(204,216,224,.28),rgba(137,150,162,.34));border:2px dashed rgba(255,255,255,.38);box-shadow:inset 0 0 0 2px rgba(92,106,120,.10)}
.world-empty-lot .lot-icon{position:absolute;left:50%;top:16px;transform:translateX(-50%);font-size:20px;filter:grayscale(1);opacity:.52}
.world-empty-lot .lot-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);padding:2px 8px;border-radius:999px;background:rgba(61,77,89,.76);color:rgba(255,255,255,.9);font-size:10px;white-space:nowrap}
.world-hub-scene .world-hub-landmarks{z-index:4}
.world-hub-scene .world-hub-home{z-index:5}
.world-hub-scene .world-hub-hero{z-index:7}
.world-hub-scene .world-hub-hero.auto-patrol{animation:worldHeroPatrol 6.8s ease-in-out infinite}
@keyframes worldHeroPatrol{0%,100%{transform:translateX(-50%) translateX(-10px)}50%{transform:translateX(-50%) translateX(12px)}}
.world-scene-npc.path-walk{left:var(--start);bottom:var(--ground);animation:worldNpcPathPosition var(--dur,12s) ease-in-out infinite;animation-delay:var(--delay,0s);transform:translateX(-50%)}
.world-scene-npc.path-walk .world-scene-npc-img,.world-scene-npc.path-walk .world-scene-npc-emoji{animation:worldNpcFacing var(--dur,12s) ease-in-out infinite;animation-delay:var(--delay,0s);transform-origin:center bottom;display:block}
@keyframes worldNpcPathPosition{0%{left:var(--start);transform:translateX(-50%) translateY(0)}22%{transform:translateX(-50%) translateY(-1px)}45%{left:var(--end);transform:translateX(-50%) translateY(0)}50%{left:var(--end);transform:translateX(-50%) translateY(0)}72%{transform:translateX(-50%) translateY(-1px)}95%{left:var(--start);transform:translateX(-50%) translateY(0)}100%{left:var(--start);transform:translateX(-50%) translateY(0)}}
@keyframes worldNpcFacing{0%,49%{transform:scaleX(1)}50%,99%{transform:scaleX(-1)}100%{transform:scaleX(1)}}
.world-hub-scene.equation-city{background:linear-gradient(180deg,#4f83bb 0 43%,#afd0ef 43% 49%,#5f8f5a 49% 100%)}
.world-hub-scene.science-continent{background:linear-gradient(180deg,#4b6b98 0 43%,#bfd5ee 43% 49%,#597c5c 49% 100%)}
.world-hub-scene.science-continent::before{opacity:.28;bottom:36px;height:70px}
.world-hub-scene.science-continent::after{top:18%;right:8%;font-size:12px;letter-spacing:5px}
.world-hub-scene.university-campus{background:linear-gradient(180deg,#5f8fc0 0 43%,#d8ebf5 43% 49%,#658c63 49% 100%)}
.world-hub-scene.university-campus::before{opacity:.35;bottom:40px;height:82px}
.world-hub-scene.university-campus::after{top:18%;font-size:12px;letter-spacing:4px}
.world-hub-hero .hero-face{width:40px;height:52px;display:grid;place-items:end center;overflow:visible}
.world-hub-hero .hero-face img{width:40px;height:52px;object-fit:contain;object-position:center bottom}
@media(max-width:520px){
  .world-empty-lot{width:58px;height:54px}
  .world-empty-lot::before{width:40px;height:32px}
  .world-empty-lot .lot-label{font-size:9px;padding:2px 6px}
  .world-hub-scene .world-hub-hero.auto-patrol{animation-duration:6.4s}
}


/* V5.0AG：四世界村莊地圖改為各自獨立風格，不再只是直接套用國小地板 */
.world-hub-sky{padding:2px 2px 0 2px}
.world-hub-sky h2{font-size:18px;text-shadow:0 2px 6px rgba(0,0,0,.2)}
.world-hub-sky small{font-size:11px;max-width:220px;line-height:1.35}
.world-landmark{width:76px;min-height:84px;border-radius:18px;padding:8px 6px 22px;background:rgba(255,255,255,.92)}
.world-landmark b{font-size:10px;line-height:1.2}.world-landmark small{font-size:8px}
.world-landmark .ico{font-size:26px}
.world-hub-scene .world-hub-home{width:74px}.world-hub-home .house{font-size:36px}
.world-hub-scene .world-hub-hero{min-width:46px}
.world-hub-hero .hero-face{width:46px;height:58px}
.world-hub-hero .hero-face img{width:46px;height:58px;filter:drop-shadow(0 2px 0 rgba(0,0,0,.15))}
.world-scene-npc-img,.world-scene-npc-emoji{width:30px;height:38px}
.world-npc-bubble{max-width:92px;font-size:9px;padding:5px 7px;white-space:normal;text-align:center}
.world-empty-lot::before{background:linear-gradient(180deg,rgba(240,243,247,.32),rgba(144,155,164,.36))}
.world-scene-decor.equation-city .world-empty-lot .lot-label{background:rgba(69,82,102,.82)}
.world-scene-decor.science-continent .world-empty-lot .lot-label{background:rgba(67,76,96,.84)}
.world-scene-decor.university-campus .world-empty-lot .lot-label{background:rgba(57,83,86,.84)}

/* 國中方程城 */
.city-road,.science-avenue,.campus-walk{position:absolute;pointer-events:none;z-index:1;border-radius:999px}
.city-road{background:#d2bf93;box-shadow:inset 0 0 0 3px rgba(134,104,57,.10)}
.city-road.main{left:16%;bottom:12%;width:52%;height:16px}
.city-road.cross{left:46%;bottom:28%;width:16px;height:30%;border-radius:18px}
.city-road.side-a{left:32%;bottom:22%;width:18%;height:14px;transform:rotate(-30deg)}
.city-road.side-b{left:54%;bottom:22%;width:19%;height:14px;transform:rotate(32deg)}
.city-canal{position:absolute;right:0;bottom:0;width:25%;height:42%;background:linear-gradient(180deg,#8fd0f2,#61b8e4);clip-path:polygon(20% 0,100% 0,100% 100%,0 100%);opacity:.95;z-index:1}
.city-bridge{position:absolute;right:18%;bottom:19%;width:16%;height:14px;background:#ceb98f;border-radius:999px;transform:rotate(39deg);box-shadow:inset 0 0 0 3px rgba(130,97,47,.10);z-index:2}
.city-plaza{position:absolute;left:43%;bottom:16%;width:14%;height:14%;background:rgba(240,242,248,.65);border-radius:16px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.28);z-index:1}
.city-bush,.city-tree,.science-garden,.campus-lawn,.campus-tree{position:absolute;z-index:1;pointer-events:none}
.city-bush{width:34px;height:20px;background:radial-gradient(circle at 30% 50%,#9ad06d 0 55%,#6db551 56% 100%);border-radius:999px}
.city-bush.c1{left:34%;bottom:20%}.city-bush.c2{left:57%;bottom:18%}.city-bush.c3{left:66%;bottom:14%}
.city-tree,.campus-tree{width:44px;height:54px}.city-tree::before,.campus-tree::before{content:"";position:absolute;left:15px;bottom:0;width:14px;height:18px;background:#8b5b33;border-radius:4px}.city-tree::after,.campus-tree::after{content:"";position:absolute;left:0;top:0;width:44px;height:36px;background:radial-gradient(circle at 30% 55%,#86c55f 0 50%,#5aa048 51% 100%);border-radius:50% 50% 44% 44%}
.city-tree.t1{left:6%;bottom:12%}.city-tree.t2{left:76%;bottom:13%}
.world-hub-scene.equation-city{background:linear-gradient(180deg,#618fca 0 43%,#d8e4f3 43% 49%,#86b57b 49% 100%)}

/* 高中數理大陸 */
.science-avenue{background:#d9c9a1;box-shadow:inset 0 0 0 3px rgba(144,114,61,.12)}
.science-avenue.main{left:14%;bottom:12%;width:58%;height:15px}
.science-avenue.side-a{left:28%;bottom:22%;width:22%;height:13px;transform:rotate(-26deg)}
.science-avenue.side-b{left:50%;bottom:22%;width:22%;height:13px;transform:rotate(28deg)}
.science-platform{position:absolute;background:rgba(218,229,245,.36);border:2px solid rgba(255,255,255,.25);border-radius:16px;z-index:1}
.science-platform.p1{left:32%;bottom:15%;width:16%;height:12%}.science-platform.p2{left:62%;bottom:15%;width:16%;height:12%}
.science-garden{width:42px;height:28px;background:radial-gradient(circle at 35% 48%,#9ad06d 0 50%,#679f65 52% 100%);border-radius:50%}
.science-garden.g1{left:8%;bottom:18%}.science-garden.g2{left:53%;bottom:17%}.science-garden.g3{left:78%;bottom:20%}
.science-light{position:absolute;z-index:1;color:rgba(255,247,172,.75);font-size:14px}.science-light.l1{left:21%;top:20%}.science-light.l2{left:63%;top:16%}.science-light.l3{left:84%;top:26%}
.world-hub-scene.science-continent{background:radial-gradient(circle at 20% 18%,rgba(255,243,178,.25),transparent 22%),linear-gradient(180deg,#556d9c 0 43%,#dbe6f4 43% 49%,#7aa06f 49% 100%)}
.world-hub-scene.science-continent::before,.world-hub-scene.university-campus::before{display:none}

/* 大學世界 */
.campus-walk{background:#ddd2b0;box-shadow:inset 0 0 0 3px rgba(146,123,81,.10)}
.campus-walk.main{left:12%;bottom:12%;width:58%;height:16px}
.campus-walk.diag-a{left:31%;bottom:23%;width:21%;height:14px;transform:rotate(-30deg)}
.campus-walk.diag-b{left:53%;bottom:23%;width:24%;height:14px;transform:rotate(32deg)}
.campus-plaza{position:absolute;left:44%;bottom:15%;width:12%;height:12%;background:rgba(242,238,226,.78);border-radius:18px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.36);z-index:1}
.campus-pond{position:absolute;right:4%;bottom:3%;width:24%;height:36%;background:linear-gradient(180deg,#8fd5e9,#78c1e1);clip-path:ellipse(48% 45% at 50% 50%);opacity:.82;z-index:1}
.campus-lawn{width:44px;height:24px;background:radial-gradient(circle at 35% 50%,#9fd176 0 52%,#6fae57 54% 100%);border-radius:999px}
.campus-lawn.l1{left:33%;bottom:19%}.campus-lawn.l2{left:57%;bottom:17%}.campus-lawn.l3{left:72%;bottom:14%}
.campus-tree.t1{left:10%;bottom:11%}.campus-tree.t2{left:73%;bottom:12%}
.world-hub-scene.university-campus{background:linear-gradient(180deg,#71a3cf 0 43%,#e2eef6 43% 49%,#87af7d 49% 100%)}
.world-hub-scene.university-campus::after{content:"";display:none}

@media(max-width:520px){
  .world-landmark{width:70px;min-height:80px}
  .world-hub-sky h2{font-size:17px}.world-hub-sky small{font-size:10px;max-width:180px}
  .world-hub-scene .world-hub-home{width:68px}
  .world-scene-npc-img,.world-scene-npc-emoji{width:26px;height:33px}
  .world-npc-bubble{font-size:8px;max-width:82px}
}


/* V5.0AI：國中/高中/大學世界地圖重做為知識村同系統村莊地圖 */
.world-hub-scene{overflow:hidden}
.world-hub-sky{z-index:12;background:linear-gradient(180deg,rgba(16,34,58,.65),rgba(16,34,58,.26));border-radius:18px;padding:10px 12px}
.world-hub-sky small{max-width:220px;display:block}
.world-hub-landmarks,.world-hub-npcs{position:absolute;inset:0}
.world-hub-landmarks{z-index:5}.world-hub-npcs{z-index:7}
.world-hub-scene .world-building{position:absolute;left:var(--x);bottom:var(--y);width:var(--w,80px);z-index:var(--z,5);border:none;background:transparent;padding:0;cursor:pointer;transform:translateX(-50%) scale(.76);transform-origin:center bottom;transition:transform .18s ease,filter .2s ease}
.world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-2px) scale(.82)}
.world-hub-scene .world-building .shadow{position:absolute;left:50%;bottom:-2px;width:78%;height:12px;background:rgba(23,47,20,.22);border-radius:50%;transform:translateX(-50%);z-index:0}
.world-hub-scene .world-building .roof{position:absolute;left:50%;top:12px;width:74%;height:26px;background:linear-gradient(180deg,#e37669,#be5148);clip-path:polygon(50% 0,100% 100%,0 100%);transform:translateX(-50%);z-index:3;box-shadow:0 2px 0 rgba(0,0,0,.12)}
.world-hub-scene .world-building .body{position:absolute;left:50%;top:34px;width:66%;height:48px;background:linear-gradient(180deg,#fff9e8,#dfcfac);transform:translateX(-50%);border-radius:9px;border:2px solid rgba(73,53,28,.22);z-index:2}
.world-hub-scene .world-building .door{position:absolute;left:50%;bottom:12px;width:16px;height:24px;background:#8d6844;border-radius:7px 7px 3px 3px;transform:translateX(-50%);z-index:4}
.world-hub-scene .world-building .window{position:absolute;top:48px;width:12px;height:12px;background:#98ddff;border-radius:4px;z-index:4;box-shadow:0 0 0 2px rgba(80,76,39,.12)}
.world-hub-scene .world-building .window.left{left:24%}.world-hub-scene .world-building .window.right{right:24%}
.world-hub-scene .world-building .icon-badge{position:absolute;right:4px;top:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);font-size:15px;z-index:5;box-shadow:0 2px 0 rgba(0,0,0,.14)}
.world-hub-scene .world-building .name{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);font-size:10px;line-height:1.1;background:rgba(0,0,0,.40);padding:2px 6px;border-radius:999px;white-space:nowrap;color:#fff;z-index:5}
.world-hub-scene .world-building.kind-square .roof{background:linear-gradient(180deg,#f3c560,#d4a33d)}
.world-hub-scene .world-building.kind-square .body{border-radius:50%;width:58%;height:58px;top:30px;background:radial-gradient(circle at 50% 45%,#fbfbf8 0,#d9e1db 60%,#b9c8c2 100%)}
.world-hub-scene .world-building.kind-square .door,.world-hub-scene .world-building.kind-square .window{display:none}
.world-hub-scene .world-building .fountain-ring{position:absolute;left:50%;top:48px;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;border:4px solid #81d9ff;z-index:5}
.world-hub-scene .world-building.kind-workshop .roof{background:linear-gradient(180deg,#818a95,#5b6168)}
.world-hub-scene .world-building.kind-market .roof{background:linear-gradient(180deg,#ff9e92,#ff7e80)}
.world-hub-scene .world-building.kind-school .roof{background:linear-gradient(180deg,#6e84d7,#4d63c1)}
.world-hub-scene .world-building.kind-library .roof{background:linear-gradient(180deg,#8f6ad8,#7042bd)}
.world-hub-scene .world-building.kind-harbor .roof{background:linear-gradient(180deg,#5db8ff,#367dca)}
.world-hub-scene .world-building.kind-castle .roof{background:linear-gradient(180deg,#aab0c9,#7c85a6)}
.world-hub-scene .world-building.kind-castle .body{width:78%;height:58px;top:28px;border-radius:10px 10px 6px 6px;background:linear-gradient(180deg,#eef1f7,#c9cfdd)}
.world-hub-scene .world-building.kind-castle .tower{position:absolute;top:22px;width:18px;height:48px;background:linear-gradient(180deg,#d8deea,#bcc4d4);border-radius:8px 8px 4px 4px;z-index:1;border:2px solid rgba(73,53,28,.14)}
.world-hub-scene .world-building.kind-castle .tower.left{left:6%}.world-hub-scene .world-building.kind-castle .tower.right{right:6%}
.world-hub-scene .world-building.kind-home .chimney{position:absolute;right:12px;top:18px;width:10px;height:24px;background:#7f6251;border-radius:3px;z-index:2}
.world-hub-scene .world-building.kind-harbor .dock{position:absolute;right:-7px;bottom:8px;width:24px;height:6px;background:#7a593b;border-radius:3px;z-index:1}
.world-hub-scene .world-building.kind-school .flag{position:absolute;left:50%;top:10px;width:4px;height:28px;background:#6a5441;transform:translateX(-50%);z-index:4}.world-hub-scene .world-building.kind-school .flag::after{content:"";position:absolute;left:4px;top:3px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:12px solid #ffd25c}
.world-hub-home.world-building{left:9%!important;bottom:11%!important;width:78px;transform:scale(.76)!important}.world-hub-home.world-building:hover,.world-hub-home.world-building.active{transform:translateY(-2px) scale(.82)!important}
.world-scene-residents .world-villager{position:absolute;left:var(--start);bottom:var(--ground);border:none;background:transparent;padding:0;z-index:7;cursor:pointer;animation:walkPathPosition var(--dur,12s) ease-in-out infinite;animation-delay:var(--delay,0s)}
.world-scene-residents .world-villager .body{display:flex;flex-direction:column;align-items:center;gap:1px;filter:drop-shadow(0 3px 0 rgba(0,0,0,.12));transform:scale(.74);transform-origin:center bottom}
.world-scene-residents .world-villager .face{font-size:25px;line-height:1}.world-scene-residents .world-villager .name{font-size:9px;color:#fff;background:rgba(0,0,0,.35);padding:1px 5px;border-radius:999px;opacity:0;transform:translateY(-2px);transition:opacity .18s ease}.world-scene-residents .world-villager:hover .name,.world-scene-residents .world-villager.active .name{opacity:1}
.world-scene-residents .world-villager .role{display:none}.world-scene-residents .world-villager .face{animation:villagerFacing var(--dur,12s) ease-in-out infinite;animation-delay:var(--delay,0s);transform-origin:center bottom}
.world-scene-residents .world-villager.recent-arrival{z-index:35;animation:elementaryResidentMoveIn 1.45s cubic-bezier(.18,.85,.25,1) both!important}
.world-scene-residents .world-villager.recent-arrival .body{filter:drop-shadow(0 0 9px rgba(255,226,105,.95));animation:arrivalResidentGlow 1.45s ease both}
.world-scene-residents .world-villager .speech-bubble{position:absolute;left:50%;bottom:100%;transform:translate(-50%,6px) scale(.96);transform-origin:bottom center;max-width:102px;padding:5px 7px;border-radius:14px;background:rgba(255,255,255,.95);border:2px solid rgba(255,214,120,.95);box-shadow:0 5px 12px rgba(18,25,38,.16);font-size:9px;line-height:1.25;color:#704d19;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .22s ease;white-space:normal;text-align:center}
.world-scene-residents .world-villager .speech-bubble::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:8px solid rgba(255,255,255,.95)}
.world-scene-residents .world-villager .speech-bubble.show{opacity:1;transform:translate(-50%,0) scale(1)}
.world-resident-scene-image{width:40px;height:52px;object-fit:contain;object-position:center bottom}
.world-hub-scene .world-hub-hero{bottom:10%;min-width:46px}
.world-hub-scene .world-hub-hero b{opacity:1}
.world-theme-badge{position:absolute;right:12px;top:56px;padding:6px 10px;border-radius:999px;background:rgba(49,76,117,.52);backdrop-filter:blur(2px);font-size:10px;color:#fff;z-index:2}
.city-road-line,.science-ring,.campus-arch,.campus-banner,.science-board,.city-sign{position:absolute;z-index:2;pointer-events:none}
.city-road-line{background:rgba(255,255,255,.36);height:3px;border-radius:999px}.city-road-line.line-a{left:26%;bottom:15%;width:26%}.city-road-line.line-b{left:48%;bottom:24%;width:22%;transform:rotate(33deg)}
.city-canal{position:absolute;right:-2%;bottom:0;width:32%;height:46%;background:linear-gradient(180deg,rgba(121,219,255,.96),rgba(73,174,236,.95));clip-path:polygon(44% 0,100% 0,100% 100%,0 100%,8% 84%,27% 55%,21% 24%);opacity:.78;z-index:1}.city-bridge{position:absolute;right:18%;bottom:18%;width:15%;height:14px;background:#ceb98f;border-radius:999px;transform:rotate(38deg);box-shadow:inset 0 0 0 3px rgba(130,97,47,.10);z-index:2}
.city-sign{left:40%;top:38%;font-size:16px;color:#314f96;background:rgba(255,255,255,.68);width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.city-sign.sign-b{left:66%;top:28%}
.science-ring{right:4%;top:16%;width:88px;height:88px;border-radius:50%;border:4px solid rgba(205,231,255,.48);box-shadow:0 0 0 10px rgba(255,255,255,.10) inset}.science-board{left:19%;top:30%;padding:6px 10px;border-radius:10px;background:rgba(242,246,255,.78);color:#415581;font-size:12px}
.campus-plaza{position:absolute;left:42%;bottom:15%;width:14%;height:13%;background:rgba(245,240,228,.78);border-radius:18px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.32);z-index:2}.campus-pond{position:absolute;right:4%;bottom:4%;width:24%;height:34%;background:linear-gradient(180deg,#8fd5e9,#78c1e1);clip-path:ellipse(48% 45% at 50% 50%);opacity:.8;z-index:1}.campus-arch{left:14%;top:37%;padding:8px 12px;border-radius:18px 18px 6px 6px;background:rgba(255,255,255,.72);color:#46607f;font-weight:700}.campus-banner{right:7%;top:30%;padding:5px 8px;border-radius:999px;background:rgba(110,78,168,.25);color:#fff;font-size:10px}
.world-hub-scene.equation-city .world-building.kind-school .roof{background:linear-gradient(180deg,#7da6ee,#5076c9)}
.world-hub-scene.equation-city .world-building.kind-workshop .roof{background:linear-gradient(180deg,#8ba1b4,#697988)}
.world-hub-scene.equation-city .world-building.kind-market .roof{background:linear-gradient(180deg,#af8cec,#7a5bc1)}
.world-hub-scene.equation-city .world-building.kind-library .roof{background:linear-gradient(180deg,#cc8b6b,#a95f3f)}
.world-hub-scene.science-continent .world-building.kind-square .roof{background:linear-gradient(180deg,#90b6ff,#6f93dc)}
.world-hub-scene.science-continent .world-building.kind-castle .roof{background:linear-gradient(180deg,#9b85e4,#7862c4)}
.world-hub-scene.science-continent .world-building.kind-workshop .roof{background:linear-gradient(180deg,#7e8e97,#5d6770)}
.world-hub-scene.science-continent .world-building.kind-harbor .roof{background:linear-gradient(180deg,#6bc2c9,#479ba3)}
.world-hub-scene.university-campus .world-building.kind-castle .roof{background:linear-gradient(180deg,#b6a66a,#8f7d44)}
.world-hub-scene.university-campus .world-building.kind-workshop .roof{background:linear-gradient(180deg,#8d98a8,#68727e)}
.world-hub-scene.university-campus .world-building.kind-library .roof{background:linear-gradient(180deg,#8f72c9,#6f52ae)}
.world-hub-scene.university-campus .world-building.kind-square .roof{background:linear-gradient(180deg,#74bb75,#529855)}
@media(max-width:520px){.world-hub-scene .world-building{transform:translateX(-50%) scale(.7)}.world-hub-home.world-building{width:70px}.world-resident-scene-image{width:34px;height:44px}.world-scene-residents .world-villager .body{transform:scale(.70)}.world-hub-sky small{max-width:180px}.world-theme-badge{font-size:9px;top:52px;right:8px}}


/* V5.0AJ：三張世界地圖重新縮小主角、建築與動線，靠近知識村比例 */
.world-hub-scene{min-height:300px;padding:12px 12px 10px}
.world-hub-scene .world-hub-sky{padding:8px 10px;border-radius:16px;background:linear-gradient(180deg,rgba(15,36,56,.55),rgba(15,36,56,.28));z-index:10}
.world-hub-scene .world-hub-sky h2{font-size:16px}
.world-hub-scene .world-hub-sky small{font-size:9px;line-height:1.3;max-width:210px}
.world-hub-scene .world-hub-status{font-size:9px;padding:4px 8px}
.world-hub-scene .world-building{width:74px;transform:translateX(-50%) scale(.68)}
.world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-2px) scale(.73)}
.world-hub-scene .world-building .roof{top:14px;height:22px}
.world-hub-scene .world-building .body{top:31px;width:64%;height:42px;border-radius:8px}
.world-hub-scene .world-building .door{width:14px;height:20px;bottom:15px}
.world-hub-scene .world-building .window{top:42px;width:10px;height:10px}
.world-hub-scene .world-building .icon-badge{width:22px;height:22px;font-size:13px;right:7px}
.world-hub-scene .world-building .name{font-size:9px;bottom:-16px;padding:2px 5px}
.world-hub-home.world-building{width:68px!important;left:10%!important;bottom:12%!important;transform:translateX(-50%) scale(.67)!important}
.world-hub-home.world-building:hover,.world-hub-home.world-building.active{transform:translateX(-50%) translateY(-2px) scale(.72)!important}
.world-hub-scene .world-hub-hero{bottom:9%;min-width:42px;z-index:8}
.world-hub-scene .world-hub-hero .world-hub-gear{font-size:10px;min-height:12px}
.world-hub-scene .world-hub-hero .hero-face{width:34px;height:44px}
.world-hub-scene .world-hub-hero .hero-face img{width:34px;height:44px}
.world-hub-scene .world-hub-hero b{font-size:8px;padding:2px 5px}
.world-scene-residents .world-villager{animation-name:walkPathPosition,worldNpcBob;animation-duration:var(--dur,9s),1.15s;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:alternate,alternate}
.world-scene-residents .world-villager .body{transform:scale(.66)}
.world-scene-residents .world-villager .face{font-size:21px}
.world-scene-residents .world-villager .name{font-size:8px;padding:1px 4px}
.world-resident-scene-image{width:34px;height:44px}
.world-scene-residents .world-villager .speech-bubble{display:none}
.world-empty-lot{transform:scale(.86);transform-origin:center bottom}
.world-empty-lot .lot-label{font-size:8px}
.world-theme-badge{top:50px;right:10px;font-size:9px;padding:5px 8px}
.world-scene-path-secondary{position:absolute;background:#d6c39a;border-radius:999px;box-shadow:0 0 0 3px rgba(100,72,33,.09) inset;z-index:2;opacity:.9}
.world-scene-path-secondary.s1{left:38%;bottom:26%;width:18%;height:13px;transform:rotate(38deg)}
.world-scene-path-secondary.s2{left:55%;bottom:28%;width:16%;height:13px;transform:rotate(-35deg)}
.equation-city .city-road-line{opacity:.42}.equation-city .city-road-line.line-a{left:20%;bottom:16%;width:18%}.equation-city .city-road-line.line-b{left:61%;bottom:17%;width:15%;transform:rotate(-38deg)}
.science-continent .science-board{left:16%;top:34%;font-size:11px}
.university-campus .campus-arch{left:18%;top:35%;font-size:10px}.university-campus .campus-banner{top:29%;right:8%;font-size:9px}
@keyframes worldNpcBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@media(max-width:520px){
  .world-hub-scene{min-height:286px;padding:10px 10px 8px}
  .world-hub-scene .world-building{width:68px;transform:translateX(-50%) scale(.63)}
  .world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-1px) scale(.68)}
  .world-hub-home.world-building{width:62px!important;transform:translateX(-50%) scale(.62)!important}
  .world-hub-scene .world-hub-hero .hero-face,.world-hub-scene .world-hub-hero .hero-face img{width:30px;height:40px}
  .world-resident-scene-image{width:30px;height:40px}
  .world-scene-residents .world-villager .body{transform:scale(.60)}
  .world-hub-scene .world-hub-sky small{max-width:160px}
}


/* V5.0AO：正式回頭重修國中／高中／大學居民地圖，改成更接近知識村的完整場景 */
.world-hub-scene.equation-city,.world-hub-scene.science-continent,.world-hub-scene.university-campus{overflow:hidden}
.world-hub-scene.equation-city{background:linear-gradient(180deg,#5688c0 0 42%,#bfd8ee 42% 49%,#6c9661 49% 100%)}
.world-hub-scene.science-continent{background:linear-gradient(180deg,#5d7ca9 0 42%,#c7d9ef 42% 49%,#648b5f 49% 100%)}
.world-hub-scene.university-campus{background:linear-gradient(180deg,#6a99c9 0 42%,#dcecf7 42% 49%,#6a9366 49% 100%)}
.world-scene-decor .city-road-line{position:absolute;height:7px;border-radius:999px;background:rgba(255,255,255,.55);box-shadow:0 0 0 2px rgba(123,153,182,.16);z-index:2}
.world-scene-decor .city-road-line.line-a{left:6%;bottom:58%;width:88%}
.world-scene-decor .city-road-line.line-b{left:42%;bottom:11%;width:24%;transform:rotate(-32deg);background:rgba(228,211,169,.8);box-shadow:0 0 0 2px rgba(106,84,45,.08)}
.world-scene-decor .city-canal{position:absolute;right:-1%;bottom:-1%;width:24%;height:40%;border-radius:18px 0 0 0;background:linear-gradient(180deg,#8ad0f0,#5ab3e9);opacity:.92;z-index:1}
.world-scene-decor .city-bridge{position:absolute;right:13%;bottom:19%;width:16%;height:12px;border-radius:999px;background:linear-gradient(180deg,#d6c39a,#c0a876);box-shadow:0 0 0 3px rgba(104,72,38,.08) inset;transform:rotate(-2deg);z-index:3}
.world-scene-decor .city-monument{position:absolute;left:69%;bottom:49%;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,245,200,.92);border:3px solid rgba(255,255,255,.7);box-shadow:0 10px 18px rgba(26,36,54,.12);font-size:20px;color:#56697e;z-index:2}
.world-scene-decor .city-monument.second{left:24%;bottom:46%;font-size:18px;background:rgba(231,244,255,.95)}
.world-scene-decor .city-board{position:absolute;left:48%;bottom:53%;padding:5px 8px;border-radius:10px;background:rgba(45,73,104,.82);color:#eef6ff;font-size:10px;z-index:2}
.world-scene-decor .science-ring{position:absolute;left:50%;bottom:56%;width:86px;height:32px;transform:translateX(-50%);border-radius:50%;border:4px solid rgba(255,240,153,.58);opacity:.9;z-index:2}
.world-scene-decor .science-light{position:absolute;font-size:13px;color:#fff4b8;text-shadow:0 0 8px rgba(255,244,184,.85);z-index:2}
.world-scene-decor .science-light.l1{left:20%;top:16%}.world-scene-decor .science-light.l2{left:52%;top:12%}.world-scene-decor .science-light.l3{right:18%;top:18%}
.world-scene-decor .science-board{position:absolute;left:16%;bottom:47%;padding:4px 8px;border-radius:10px;background:rgba(35,57,92,.82);color:#f4f8ff;font-size:11px;z-index:2}
.world-scene-decor .science-observatory{position:absolute;right:9%;bottom:47%;width:54px;height:34px;border-radius:54px 54px 12px 12px;background:linear-gradient(180deg,#ecf2fb,#cad5e8);box-shadow:0 10px 18px rgba(26,36,54,.12);z-index:2}
.world-scene-decor .science-observatory::before{content:"";position:absolute;left:50%;top:-10px;transform:translateX(-50%);width:34px;height:20px;border-radius:34px 34px 0 0;background:linear-gradient(180deg,#d8e3f2,#aab9d7)}
.world-scene-decor .science-observatory::after{content:"";position:absolute;left:28px;top:-2px;width:16px;height:5px;border-radius:999px;background:#7c8bac;transform:rotate(-25deg)}
.world-scene-decor .science-planet{position:absolute;right:17%;top:16%;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe6a6 0,#f5b35d 55%,#cc8044 100%);box-shadow:0 0 0 5px rgba(255,235,173,.18);z-index:2}
.world-scene-decor .campus-plaza{position:absolute;left:39%;bottom:50%;width:22%;height:17px;border-radius:999px;background:rgba(240,238,232,.9);box-shadow:0 0 0 2px rgba(120,124,130,.08);z-index:2}
.world-scene-decor .campus-pond{position:absolute;right:3%;bottom:4%;width:23%;height:37%;border-radius:18px 0 0 0;background:linear-gradient(180deg,#99d9f5,#63bde8);z-index:1;opacity:.94}
.world-scene-decor .campus-arch{position:absolute;left:13%;bottom:47%;padding:6px 10px;border-radius:999px 999px 10px 10px;background:rgba(255,247,224,.95);border:3px solid rgba(168,132,74,.26);font-size:11px;color:#7b5f30;z-index:2}
.world-scene-decor .campus-banner{position:absolute;right:16%;top:16%;padding:5px 10px;border-radius:999px;background:rgba(75,98,143,.86);color:#f5fbff;font-size:10px;z-index:2}
.world-scene-decor .campus-bench{position:absolute;width:22px;height:7px;border-radius:999px;background:#8d694a;z-index:2}
.world-scene-decor .campus-bench::before,.world-scene-decor .campus-bench::after{content:"";position:absolute;bottom:-5px;width:3px;height:6px;background:#6e5138;border-radius:2px}
.world-scene-decor .campus-bench::before{left:4px}.world-scene-decor .campus-bench::after{right:4px}
.world-scene-decor .campus-bench.bench-a{left:43%;bottom:16%}.world-scene-decor .campus-bench.bench-b{left:70%;bottom:19%}
.world-scene-decor .campus-lamp{position:absolute;width:4px;height:24px;background:#6a7486;border-radius:999px;z-index:2}
.world-scene-decor .campus-lamp::before{content:"";position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:rgba(255,243,190,.95);box-shadow:0 0 8px rgba(255,243,190,.7)}
.world-scene-decor .campus-lamp.lamp-a{left:37%;bottom:17%}.world-scene-decor .campus-lamp.lamp-b{left:75%;bottom:22%}
.world-hub-scene .world-building{width:72px;transform:translateX(-50%) scale(.66)}
.world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-2px) scale(.71)}
.world-hub-scene .world-hub-home{left:10%!important;bottom:11%!important}
.world-hub-scene .world-hub-hero{bottom:8.6%;min-width:40px;z-index:8}
.world-hub-scene .world-hub-hero.auto-patrol{animation:worldHeroPatrolAO 7.4s ease-in-out infinite}
@keyframes worldHeroPatrolAO{0%,100%{transform:translateX(-50%) translateX(-14px)}50%{transform:translateX(-50%) translateX(14px)}}
.world-resident-scene-image{width:30px;height:40px;object-fit:contain;object-position:center bottom}
.world-scene-residents .world-villager{z-index:7}
.world-scene-residents .world-villager .body{transform:scale(.64)}
.world-scene-residents .world-villager .name{font-size:8px;padding:1px 4px;opacity:.82}
.world-empty-lot{width:64px;height:58px}
.world-empty-lot::before{width:42px;height:34px}
@media(max-width:520px){
  .world-hub-scene .world-building{width:66px;transform:translateX(-50%) scale(.62)}
  .world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-1px) scale(.67)}
  .world-hub-scene .world-hub-hero .hero-face,.world-hub-scene .world-hub-hero .hero-face img{width:28px;height:38px}
  .world-resident-scene-image{width:28px;height:36px}
  .world-scene-residents .world-villager .body{transform:scale(.58)}
}


/* V5.0AQ：居民地圖第二輪修正，強化知識村式道路與場景配置 */
.world-hub-scene .world-building{width:70px;transform:translateX(-50%) scale(.62)}
.world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-2px) scale(.67)}
.world-hub-scene .world-hub-home{z-index:5}
.world-hub-scene .world-hub-hero{bottom:9.5%;z-index:8}
.world-hub-scene .world-hub-hero.auto-patrol{animation:worldHeroPatrolAQ 8.2s ease-in-out infinite}
@keyframes worldHeroPatrolAQ{0%,100%{transform:translateX(-50%) translate(-12px,0)}50%{transform:translateX(-50%) translate(12px,-1px)}}
.world-scene-decor .scene-path{position:absolute;border-radius:999px;background:linear-gradient(180deg,rgba(233,216,178,.95),rgba(221,196,148,.95));box-shadow:0 2px 0 rgba(127,92,47,.10), inset 0 1px 0 rgba(255,255,255,.45);z-index:2}
.world-scene-decor .scene-path.path-main{left:18%;right:18%;bottom:12%;height:18px}
.world-scene-decor .scene-path.path-left{left:21%;bottom:20%;width:26%;height:14px;transform:rotate(-24deg)}
.world-scene-decor .scene-path.path-mid{left:45%;bottom:24%;width:15%;height:14px;transform:rotate(-90deg)}
.world-scene-decor .scene-path.path-right{right:20%;bottom:20%;width:24%;height:14px;transform:rotate(26deg)}
.world-scene-decor .scene-tree,.world-scene-decor .scene-bush{position:absolute;z-index:2}
.world-scene-decor .scene-tree{width:52px;height:48px}
.world-scene-decor .scene-tree::before{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:10px;height:18px;border-radius:6px;background:#8d5f3f}
.world-scene-decor .scene-tree::after{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:44px;height:34px;border-radius:24px;background:radial-gradient(circle at 35% 35%,#8ed86e 0,#6ab65e 60%,#549649 100%);box-shadow:-10px 8px 0 0 #6db85b, 10px 7px 0 0 #79c25e}
.world-scene-decor .scene-tree.tree-a{left:2%;bottom:7%}
.world-scene-decor .scene-tree.tree-b{right:5%;bottom:26%}
.world-scene-decor .scene-bush{width:38px;height:22px;border-radius:999px;background:radial-gradient(circle at 30% 30%,#9ce27f 0,#79c65d 65%,#63a74d 100%)}
.world-scene-decor .scene-bush.bush-a{left:35%;bottom:20%}
.world-scene-decor .scene-bush.bush-b{right:33%;bottom:17%}
.world-hub-scene.equation-city{background:linear-gradient(180deg,#668fc8 0 41%,#d6e5f6 41% 48%,#7fb06f 48% 100%)}
.world-hub-scene.science-continent{background:linear-gradient(180deg,#7089b4 0 41%,#d9e3f4 41% 48%,#79a66d 48% 100%)}
.world-hub-scene.university-campus{background:linear-gradient(180deg,#78a0cb 0 41%,#dfedf7 41% 48%,#7aa671 48% 100%)}
.world-scene-decor .city-canal{position:absolute;right:-2%;bottom:-1%;width:26%;height:40%;border-radius:22px 0 0 0;background:linear-gradient(180deg,#8bd8fb,#5ab5ea);z-index:1;opacity:.96}
.world-scene-decor .city-bridge{position:absolute;right:11%;bottom:18%;width:16%;height:12px;border-radius:999px;background:linear-gradient(180deg,#e2cda8,#caa978);box-shadow:0 0 0 3px rgba(104,72,38,.08) inset;z-index:3}
.world-scene-decor .city-monument{position:absolute;left:69%;bottom:48%;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,245,200,.95);border:3px solid rgba(255,255,255,.7);box-shadow:0 10px 18px rgba(26,36,54,.12);font-size:20px;color:#56697e;z-index:2}
.world-scene-decor .city-monument.second{left:25%;bottom:45%;font-size:18px;background:rgba(231,244,255,.95)}
.world-scene-decor .city-board{position:absolute;left:48%;bottom:53%;padding:5px 8px;border-radius:10px;background:rgba(45,73,104,.82);color:#eef6ff;font-size:10px;z-index:2}
.world-scene-decor .city-flag{position:absolute;padding:3px 6px;border-radius:10px;background:rgba(255,255,255,.85);font-size:9px;color:#56697e;z-index:2}
.world-scene-decor .city-flag.flag-a{left:10%;bottom:43%}.world-scene-decor .city-flag.flag-b{right:17%;bottom:44%}
.world-scene-decor .science-ring{position:absolute;left:50%;bottom:55%;width:88px;height:34px;transform:translateX(-50%);border-radius:50%;border:4px solid rgba(255,240,153,.60);z-index:2}
.world-scene-decor .science-light{position:absolute;font-size:13px;color:#fff4b8;text-shadow:0 0 8px rgba(255,244,184,.85);z-index:2}
.world-scene-decor .science-light.l1{left:20%;top:15%}.world-scene-decor .science-light.l2{left:52%;top:12%}.world-scene-decor .science-light.l3{right:18%;top:18%}
.world-scene-decor .science-board{position:absolute;left:16%;bottom:46%;padding:4px 8px;border-radius:10px;background:rgba(35,57,92,.82);color:#f4f8ff;font-size:11px;z-index:2}
.world-scene-decor .science-observatory{position:absolute;right:10%;bottom:46%;width:58px;height:36px;border-radius:58px 58px 12px 12px;background:linear-gradient(180deg,#ecf2fb,#cad5e8);box-shadow:0 10px 18px rgba(26,36,54,.12);z-index:2}
.world-scene-decor .science-observatory::before{content:"";position:absolute;left:50%;top:-10px;transform:translateX(-50%);width:36px;height:20px;border-radius:36px 36px 0 0;background:linear-gradient(180deg,#d8e3f2,#aab9d7)}
.world-scene-decor .science-observatory::after{content:"";position:absolute;left:30px;top:-2px;width:16px;height:5px;border-radius:999px;background:#7c8bac;transform:rotate(-25deg)}
.world-scene-decor .science-planet{position:absolute;right:17%;top:15%;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe6a6 0,#f5b35d 55%,#cc8044 100%);box-shadow:0 0 0 5px rgba(255,235,173,.18);z-index:2}
.world-scene-decor .science-banner{position:absolute;padding:4px 8px;border-radius:999px;background:rgba(75,98,143,.86);color:#f5fbff;font-size:9px;z-index:2}
.world-scene-decor .science-banner.banner-a{left:9%;bottom:41%}.world-scene-decor .science-banner.banner-b{right:8%;bottom:34%}
.world-scene-decor .campus-plaza{position:absolute;left:39%;bottom:49%;width:22%;height:18px;border-radius:999px;background:rgba(240,238,232,.9);box-shadow:0 0 0 2px rgba(120,124,130,.08);z-index:2}
.world-scene-decor .campus-pond{position:absolute;right:0;bottom:0;width:26%;height:39%;border-radius:22px 0 0 0;background:linear-gradient(180deg,#99d9f5,#63bde8);z-index:1;opacity:.95}
.world-scene-decor .campus-arch{position:absolute;left:12%;bottom:46%;padding:6px 10px;border-radius:999px 999px 10px 10px;background:rgba(255,247,224,.95);border:3px solid rgba(168,132,74,.26);font-size:11px;color:#7b5f30;z-index:2}
.world-scene-decor .campus-banner{position:absolute;right:16%;top:15%;padding:5px 10px;border-radius:999px;background:rgba(75,98,143,.86);color:#f5fbff;font-size:10px;z-index:2}
.world-scene-decor .campus-bench{position:absolute;width:22px;height:7px;border-radius:999px;background:#8d694a;z-index:2}
.world-scene-decor .campus-bench::before,.world-scene-decor .campus-bench::after{content:"";position:absolute;bottom:-5px;width:3px;height:6px;background:#6e5138;border-radius:2px}
.world-scene-decor .campus-bench::before{left:4px}.world-scene-decor .campus-bench::after{right:4px}
.world-scene-decor .campus-bench.bench-a{left:43%;bottom:15%}.world-scene-decor .campus-bench.bench-b{left:70%;bottom:19%}
.world-scene-decor .campus-lamp{position:absolute;width:4px;height:24px;background:#6a7486;border-radius:999px;z-index:2}
.world-scene-decor .campus-lamp::before{content:"";position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:rgba(255,243,190,.95);box-shadow:0 0 8px rgba(255,243,190,.7)}
.world-scene-decor .campus-lamp.lamp-a{left:37%;bottom:16%}.world-scene-decor .campus-lamp.lamp-b{left:75%;bottom:21%}
.world-scene-decor .campus-kiosk{position:absolute;right:7%;bottom:45%;padding:5px 8px;border-radius:10px;background:rgba(255,255,255,.9);font-size:9px;color:#49636a;z-index:2}
.world-scene-residents .world-villager{z-index:7}
.world-scene-residents .world-villager .body{transform:scale(.60)}
.world-scene-residents .world-villager .name{font-size:8px;padding:1px 4px;opacity:.85}
.world-resident-scene-image{width:28px;height:36px;object-fit:contain;object-position:center bottom}
.world-empty-lot{width:60px;height:56px;z-index:3}
.world-empty-lot::before{width:40px;height:32px;border-radius:11px}
.world-empty-lot .lot-label{font-size:8px;padding:1px 6px}
@media(max-width:520px){
  .world-hub-scene .world-building{width:62px;transform:translateX(-50%) scale(.56)}
  .world-hub-scene .world-building:hover,.world-hub-scene .world-building.active{transform:translateX(-50%) translateY(-1px) scale(.61)}
  .world-hub-scene .world-hub-hero .hero-face,.world-hub-scene .world-hub-hero .hero-face img{width:24px!important;height:32px!important}
  .world-resident-scene-image{width:22px;height:30px}
  .world-scene-residents .world-villager .body{transform:scale(.54)}
  .world-scene-decor .scene-tree{transform:scale(.84)}
  .world-scene-decor .scene-path.path-main{height:15px;left:19%;right:17%}
  .world-empty-lot{width:52px;height:48px}
}


/* V5.0AR resident map redesign */
.world-hub-scene.village-style-scene{overflow:hidden}
.world-hub-scene.village-style-scene .world-hub-sky{z-index:9}
.world-hub-scene.village-style-scene .world-hub-landmarks{position:absolute;inset:0;z-index:6;pointer-events:none}
.world-hub-scene.village-style-scene .world-hub-landmarks .world-building{pointer-events:auto}
.world-hub-scene.village-style-scene .world-hub-npcs{z-index:7}
.world-hub-scene.village-style-scene .world-hub-hero{z-index:8}
.world-hub-scene.village-style-scene .world-hub-hero .hero-face,.world-hub-scene.village-style-scene .world-hub-hero .hero-face img{width:26px!important;height:34px!important}
.world-hub-scene.village-style-scene .world-hub-hero .hero-face img{object-fit:contain;object-position:center bottom}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree{left:50%;top:36%;right:auto;width:126px;height:126px;transform:translateX(-50%);z-index:3}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree span{margin-top:-14px;background:rgba(23,31,53,.76);font-size:9px;padding:4px 9px;box-shadow:0 4px 10px rgba(0,0,0,.14)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree::before{content:"";position:absolute;inset:-12px;border-radius:50%;background:radial-gradient(circle,rgba(255,240,167,.18),rgba(255,240,167,0) 70%);z-index:-1}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree img{filter:drop-shadow(0 8px 9px rgba(0,0,0,.18)) saturate(1.18)}
.world-hub-scene.village-style-scene .world-building{width:72px;transform:translateX(-50%) scale(.62);filter:drop-shadow(0 6px 10px rgba(0,0,0,.10))}
.world-hub-scene.village-style-scene .world-building:hover,.world-hub-scene.village-style-scene .world-building.active{transform:translateX(-50%) translateY(-2px) scale(.67)}
.world-hub-scene.village-style-scene .world-building .name{font-size:9px;bottom:-17px;padding:2px 6px;max-width:88px;text-align:center;white-space:normal;line-height:1.05}
.world-hub-home.world-building{left:10%!important;bottom:16%!important;width:66px!important;transform:translateX(-50%) scale(.60)!important}
.world-hub-home.world-building:hover,.world-hub-home.world-building.active{transform:translateX(-50%) translateY(-2px) scale(.65)!important}
.world-scene-decor{position:absolute;inset:0;z-index:1;pointer-events:none}
.world-scene-decor .village-cloud{position:absolute;font-size:22px;opacity:.8}
.world-scene-decor .village-cloud.c1{left:7%;top:16%}.world-scene-decor .village-cloud.c2{left:46%;top:12%}.world-scene-decor .village-cloud.c3{right:10%;top:18%}
.world-scene-decor .scene-tree,.world-scene-decor .scene-bush{position:absolute;z-index:2}
.world-scene-decor .scene-tree{width:52px;height:48px}
.world-scene-decor .scene-tree::before{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:10px;height:18px;border-radius:6px;background:#8d5f3f}
.world-scene-decor .scene-tree::after{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:44px;height:34px;border-radius:24px;background:radial-gradient(circle at 35% 35%,#90de73 0,#6cb95e 60%,#57984b 100%);box-shadow:-10px 8px 0 0 #74bf5c, 10px 7px 0 0 #7dc560}
.world-scene-decor .scene-bush{width:38px;height:22px;border-radius:999px;background:radial-gradient(circle at 30% 30%,#9ce27f 0,#79c65d 65%,#63a74d 100%)}
.world-scene-decor .scene-tree.tree-a{left:3%;bottom:8%}.world-scene-decor .scene-tree.tree-b{right:5%;bottom:26%}
.world-scene-decor .scene-bush.bush-a{left:40%;bottom:18%}.world-scene-decor .scene-bush.bush-b{right:35%;bottom:16%}
.world-scene-decor .scene-path{position:absolute;border-radius:999px;background:linear-gradient(180deg,#ecd6ab,#d8b988);box-shadow:0 2px 0 rgba(127,92,47,.12), inset 0 1px 0 rgba(255,255,255,.45);z-index:2}
.world-empty-lot{width:58px;height:52px;position:absolute;display:grid;place-items:center;z-index:4}
.world-empty-lot::before{content:"";position:absolute;inset:auto auto 10px 50%;transform:translateX(-50%);width:42px;height:30px;border-radius:11px;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.12));border:2px dashed rgba(255,255,255,.5)}
.world-empty-lot .lot-icon{position:absolute;top:2px;font-size:16px;opacity:.62}.world-empty-lot .lot-label{position:absolute;bottom:-8px;padding:1px 6px;border-radius:999px;background:rgba(41,54,70,.76);font-size:8px;color:#fff}
.world-scene-residents .world-villager .body{transform:scale(.58)}
.world-scene-residents .world-villager .name{font-size:8px;padding:1px 4px;background:rgba(41,54,70,.82)}
.world-resident-scene-image{width:28px;height:36px;object-fit:contain;object-position:center bottom}
.world-hub-scene.equation-city{background:linear-gradient(180deg,#7ea7d6 0 38%,#dce7f5 38% 46%,#91b875 46% 100%)}
.world-hub-scene.equation-city .scene-path.junior.path-main{left:18%;right:15%;bottom:12%;height:18px}
.world-hub-scene.equation-city .scene-path.junior.path-left{left:17%;bottom:22%;width:18%;height:14px;transform:rotate(-38deg)}
.world-hub-scene.equation-city .scene-path.junior.path-mid{left:41%;bottom:23%;width:18%;height:14px;transform:rotate(62deg)}
.world-hub-scene.equation-city .scene-path.junior.path-right{right:15%;bottom:22%;width:20%;height:14px;transform:rotate(38deg)}
.world-hub-scene.equation-city .scene-path.junior.path-loop{left:56%;bottom:45%;width:16%;height:14px;transform:rotate(-35deg)}
.world-hub-scene.equation-city .j-campus-block{position:absolute;border-radius:14px;background:rgba(255,255,255,.35);box-shadow:inset 0 0 0 2px rgba(255,255,255,.28);z-index:1}
.world-hub-scene.equation-city .j-campus-block.block-a{left:10%;bottom:47%;width:23%;height:11%}
.world-hub-scene.equation-city .j-campus-block.block-b{right:14%;bottom:45%;width:24%;height:12%}
.world-hub-scene.equation-city .j-math-gate{position:absolute;left:49%;bottom:46%;transform:translateX(-50%);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(255,247,214,.96);color:#6d5a36;font-size:22px;box-shadow:0 10px 18px rgba(26,36,54,.12);z-index:2}
.world-hub-scene.equation-city .j-math-board{position:absolute;padding:5px 9px;border-radius:12px;background:rgba(44,64,103,.82);color:#eef6ff;font-size:10px;z-index:2}
.world-hub-scene.equation-city .j-math-board.board-a{left:29%;bottom:52%}.world-hub-scene.equation-city .j-math-board.board-b{right:24%;bottom:55%}
.world-hub-scene.equation-city .j-banner{position:absolute;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.9);font-size:10px;color:#53667d;z-index:2}
.world-hub-scene.equation-city .j-banner.banner-a{left:12%;bottom:40%}.world-hub-scene.equation-city .j-banner.banner-b{right:12%;bottom:39%}
.world-hub-scene.science-continent{background:linear-gradient(180deg,#6f88b7 0 38%,#dae5f6 38% 46%,#87a66d 46% 100%)}
.world-hub-scene.science-continent .scene-path.senior.path-main{left:16%;right:16%;bottom:12%;height:18px}
.world-hub-scene.science-continent .scene-path.senior.path-left{left:18%;bottom:21%;width:14%;height:14px;transform:rotate(-35deg)}
.world-hub-scene.science-continent .scene-path.senior.path-mid{left:30%;bottom:30%;width:18%;height:14px;transform:rotate(58deg)}
.world-hub-scene.science-continent .scene-path.senior.path-right{right:18%;bottom:23%;width:18%;height:14px;transform:rotate(36deg)}
.world-hub-scene.science-continent .scene-path.senior.path-upper{left:49%;bottom:48%;width:16%;height:14px;transform:rotate(-32deg)}
.world-hub-scene.science-continent .s-observe-dome{position:absolute;right:12%;bottom:42%;width:58px;height:34px;border-radius:58px 58px 12px 12px;background:linear-gradient(180deg,#ebf2fb,#cad5e8);box-shadow:0 10px 18px rgba(26,36,54,.12);z-index:2}
.world-hub-scene.science-continent .s-observe-dome::before{content:"";position:absolute;left:50%;top:-10px;transform:translateX(-50%);width:36px;height:20px;border-radius:36px 36px 0 0;background:linear-gradient(180deg,#d8e3f2,#aab9d7)}
.world-hub-scene.science-continent .s-observe-dome::after{content:"";position:absolute;left:30px;top:-2px;width:16px;height:5px;border-radius:999px;background:#7c8bac;transform:rotate(-25deg)}
.world-hub-scene.science-continent .s-observe-ring{position:absolute;left:48%;bottom:55%;width:82px;height:32px;transform:translateX(-50%);border-radius:50%;border:4px solid rgba(255,240,153,.60);z-index:2}
.world-hub-scene.science-continent .s-lab-pad{position:absolute;left:13%;bottom:44%;width:60px;height:36px;border-radius:12px;background:rgba(241,246,255,.88);box-shadow:0 8px 16px rgba(26,36,54,.10);z-index:2}
.world-hub-scene.science-continent .s-lab-pad::before{content:"⚗️";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:18px}
.world-hub-scene.science-continent .s-star{position:absolute;font-size:14px;color:#fff4b8;text-shadow:0 0 8px rgba(255,244,184,.85);z-index:2}
.world-hub-scene.science-continent .s-star.star-a{left:24%;top:16%}.world-hub-scene.science-continent .s-star.star-b{left:52%;top:12%}.world-hub-scene.science-continent .s-star.star-c{right:18%;top:18%}
.world-hub-scene.science-continent .s-banner{position:absolute;padding:4px 8px;border-radius:999px;background:rgba(75,98,143,.86);color:#f5fbff;font-size:9px;z-index:2}
.world-hub-scene.science-continent .s-banner.banner-a{left:11%;bottom:39%}.world-hub-scene.science-continent .s-banner.banner-b{right:10%;bottom:34%}
.world-hub-scene.university-campus{background:linear-gradient(180deg,#79a1cb 0 38%,#e0edf8 38% 46%,#84a970 46% 100%)}
.world-hub-scene.university-campus .scene-path.univ.path-main{left:16%;right:15%;bottom:12%;height:18px}
.world-hub-scene.university-campus .scene-path.univ.path-left{left:18%;bottom:22%;width:15%;height:14px;transform:rotate(-38deg)}
.world-hub-scene.university-campus .scene-path.univ.path-mid{left:30%;bottom:30%;width:18%;height:14px;transform:rotate(58deg)}
.world-hub-scene.university-campus .scene-path.univ.path-right{right:16%;bottom:22%;width:18%;height:14px;transform:rotate(38deg)}
.world-hub-scene.university-campus .scene-path.univ.path-upper{left:58%;bottom:44%;width:17%;height:14px;transform:rotate(-30deg)}
.world-hub-scene.university-campus .u-pond{position:absolute;right:-1%;bottom:-1%;width:26%;height:39%;border-radius:24px 0 0 0;background:linear-gradient(180deg,#97daf6,#63bde8);z-index:1;opacity:.95}
.world-hub-scene.university-campus .u-club-kiosk{position:absolute;right:8%;bottom:44%;padding:5px 8px;border-radius:12px;background:rgba(255,255,255,.92);font-size:9px;color:#49636a;z-index:2}
.world-hub-scene.university-campus .u-arch{position:absolute;left:12%;bottom:45%;padding:6px 10px;border-radius:999px 999px 10px 10px;background:rgba(255,247,224,.95);border:3px solid rgba(168,132,74,.26);font-size:11px;color:#7b5f30;z-index:2}
.world-hub-scene.university-campus .u-bench,.world-hub-scene.university-campus .u-lamp{position:absolute;z-index:2}
.world-hub-scene.university-campus .u-bench{width:22px;height:7px;border-radius:999px;background:#8d694a}
.world-hub-scene.university-campus .u-bench::before,.world-hub-scene.university-campus .u-bench::after{content:"";position:absolute;bottom:-5px;width:3px;height:6px;background:#6e5138;border-radius:2px}
.world-hub-scene.university-campus .u-bench::before{left:4px}.world-hub-scene.university-campus .u-bench::after{right:4px}
.world-hub-scene.university-campus .u-bench.bench-a{left:43%;bottom:15%}.world-hub-scene.university-campus .u-bench.bench-b{left:71%;bottom:19%}
.world-hub-scene.university-campus .u-lamp{width:4px;height:24px;background:#6a7486;border-radius:999px}
.world-hub-scene.university-campus .u-lamp::before{content:"";position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:rgba(255,243,190,.95);box-shadow:0 0 8px rgba(255,243,190,.7)}
.world-hub-scene.university-campus .u-lamp.lamp-a{left:37%;bottom:16%}.world-hub-scene.university-campus .u-lamp.lamp-b{left:75%;bottom:21%}
@media(max-width:520px){
  .world-hub-scene.village-style-scene .world-hub-knowledge-tree{width:96px;height:96px;top:38%}
  .world-hub-scene.village-style-scene .world-building{width:64px;transform:translateX(-50%) scale(.58)}
  .world-hub-scene.village-style-scene .world-building:hover,.world-hub-scene.village-style-scene .world-building.active{transform:translateX(-50%) translateY(-1px) scale(.63)}
  .world-hub-scene.village-style-scene .world-hub-hero .hero-face,.world-hub-scene.village-style-scene .world-hub-hero .hero-face img{width:22px!important;height:30px!important}
  .world-resident-scene-image{width:22px;height:30px}
  .world-scene-residents .world-villager .body{transform:scale(.50)}
  .world-empty-lot{width:50px;height:46px}
  .world-empty-lot .lot-label{font-size:7px}
}


/* V5.0AT resident illustrated maps */
.world-hub-scene.illustrated-map-scene{
  background-image:var(--scene-map-image);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  background-color:#cfe1ee;
}
.world-hub-scene.illustrated-map-scene::before,
.world-hub-scene.illustrated-map-scene::after{display:none!important}
.world-hub-scene.illustrated-map-scene .world-scene-decor{z-index:1}
.world-hub-scene.illustrated-map-scene .world-scene-soften{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,0) 18%,rgba(13,18,33,0) 62%,rgba(18,23,34,.16) 100%)}
.world-hub-scene.illustrated-map-scene .world-scene-corner-tag{position:absolute;left:14px;top:12px;padding:6px 12px;border-radius:999px;background:rgba(27,35,58,.72);color:#fff;font-size:11px;border:1px solid rgba(255,255,255,.24);box-shadow:0 8px 16px rgba(0,0,0,.12)}
.world-hub-scene.illustrated-map-scene .world-scene-bottom-fade{position:absolute;left:0;right:0;bottom:0;height:76px;background:linear-gradient(180deg,rgba(20,26,38,0),rgba(20,26,38,.18))}

.resident-map-sites{position:absolute;inset:0;z-index:5;pointer-events:none}
.resident-map-sites .resident-map-site{position:absolute;left:var(--x);bottom:var(--y);width:var(--w,100px);transform:translateX(-50%);pointer-events:auto;border:none;background:transparent;padding:0;cursor:pointer;z-index:var(--z,6);transition:transform .18s ease,filter .18s ease}
.resident-map-sites .resident-map-site:hover{transform:translateX(-50%) translateY(-2px);filter:drop-shadow(0 8px 14px rgba(0,0,0,.16))}
.resident-map-sites .resident-map-site .site-icon{position:absolute;right:-2px;top:-8px;width:24px;height:24px;border-radius:999px;background:rgba(255,255,255,.95);display:grid;place-items:center;font-size:14px;box-shadow:0 4px 10px rgba(0,0,0,.14)}
.resident-map-sites .resident-map-site .site-owner{position:absolute;left:50%;top:-10px;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(240,233,221,.96));display:grid;place-items:center;box-shadow:0 5px 12px rgba(0,0,0,.15);overflow:hidden;border:2px solid rgba(255,255,255,.92)}
.resident-map-owner-image{width:100%;height:100%;object-fit:cover;object-position:center top}
.resident-map-owner-emoji{font-size:18px;line-height:1}
.resident-map-sites .resident-map-site .site-plaque{display:grid;gap:2px;justify-items:center;padding:18px 9px 8px;border-radius:16px;background:linear-gradient(180deg,rgba(255,250,239,.98),rgba(244,235,217,.96));border:2px solid rgba(126,85,43,.24);box-shadow:0 10px 18px rgba(45,33,18,.16);min-height:52px}
.resident-map-sites .resident-map-site .site-plaque b{font-size:11px;line-height:1.05;color:#5a3919}
.resident-map-sites .resident-map-site .site-plaque small{font-size:9px;line-height:1.15;color:#614f3c}
.resident-map-sites .resident-map-site .site-plaque .site-status{font-size:8px;line-height:1.1;margin-top:1px;padding:1px 6px;border-radius:999px;background:rgba(43,57,74,.08);color:#32455f}
.resident-map-sites .resident-map-site.locked .site-lot-sign{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;background:rgba(93,76,55,.90);color:#fff;font-size:10px;box-shadow:0 6px 12px rgba(0,0,0,.12)}
.resident-map-sites .resident-map-site.locked{filter:drop-shadow(0 6px 12px rgba(0,0,0,.12))}
.resident-map-sites .resident-map-site.locked .site-lot-title,.resident-map-sites .resident-map-site.locked .site-lot-note,.resident-map-sites .resident-map-site.locked .site-progress,.resident-map-sites .resident-map-site.locked .site-progress-text{display:block}
.resident-map-sites .resident-map-site.locked .site-lot-title{margin-top:6px;font-size:10px;font-weight:700;color:#4d3620}
.resident-map-sites .resident-map-site.locked .site-lot-note{margin-top:4px;padding:6px 8px;border-radius:14px;background:rgba(250,244,232,.95);border:2px dashed rgba(136,109,73,.32);font-size:9px;line-height:1.2;color:#6a5a49}
.resident-map-sites .resident-map-site.locked .site-progress{position:relative;margin-top:5px;height:6px;border-radius:999px;background:rgba(70,78,91,.14);overflow:hidden}
.resident-map-sites .resident-map-site.locked .site-progress i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#76b7ff,#78d38d)}
.resident-map-sites .resident-map-site.locked .site-progress-text{margin-top:3px;font-size:8px;color:#44566a}

.world-hub-scene.village-style-scene .world-hub-knowledge-tree{top:33%;width:132px;height:132px}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-0{transform:translateX(-50%) scale(.74);filter:saturate(.84)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-1{transform:translateX(-50%) scale(.82);filter:saturate(.96)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-2{transform:translateX(-50%) scale(.90);filter:saturate(1.08) drop-shadow(0 0 10px rgba(255,228,113,.28))}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-3{transform:translateX(-50%) scale(.98);filter:saturate(1.18) drop-shadow(0 0 14px rgba(255,228,113,.42))}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-4{transform:translateX(-50%) scale(1.08);filter:saturate(1.30) drop-shadow(0 0 20px rgba(255,236,155,.70))}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree img{opacity:.96}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree span{margin-top:-10px;font-size:10px}

@media(max-width:700px){
  .world-hub-scene.illustrated-map-scene .world-scene-corner-tag{left:10px;top:10px;padding:5px 10px;font-size:10px}
  .resident-map-sites .resident-map-site{width:72px!important}
  .resident-map-sites .resident-map-site .site-owner{width:28px;height:28px;top:-7px}
  .resident-map-sites .resident-map-site .site-plaque{padding:15px 6px 6px;border-radius:14px;min-height:46px}
  .resident-map-sites .resident-map-site .site-plaque b{font-size:9px}
  .resident-map-sites .resident-map-site .site-plaque small{font-size:8px}
  .resident-map-sites .resident-map-site .site-plaque .site-status{display:none}
  .resident-map-sites .resident-map-site.locked .site-lot-title{font-size:9px}
  .resident-map-sites .resident-map-site.locked .site-lot-note{font-size:8px;padding:5px 6px}
  .world-hub-scene.village-style-scene .world-hub-knowledge-tree{width:98px;height:98px;top:35%}
}

/* V5.0AU：四世界居民建築同步解鎖、地圖底圖遮罩與五階段世界樹 */
.world-hub-scene.illustrated-map-scene{
  aspect-ratio:16/9;
  min-height:0;
  background-size:100% 100%;
  background-position:center;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.resident-map-sites .resident-map-site .site-ground-mask{
  position:absolute;
  left:50%;
  top:50%;
  width:var(--mask-w,118px);
  height:var(--mask-h,86px);
  transform:translate(-50%,-48%);
  border-radius:48% 48% 42% 42%;
  background:
    radial-gradient(ellipse at 48% 52%,rgba(224,202,155,.98) 0 43%,rgba(184,155,104,.96) 44% 48%,rgba(111,159,83,.97) 49% 67%,rgba(80,129,68,.92) 68% 100%);
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.22),0 8px 15px rgba(28,47,28,.16);
  z-index:-2;
}
.resident-map-sites .resident-map-site.locked .site-ground-mask{
  filter:saturate(.82) brightness(.98);
}
.resident-map-sites .resident-map-site.unlocked .site-ground-mask{
  filter:saturate(1.02);
}
.resident-map-sites .resident-map-site .site-mini-building{
  position:relative;
  display:block;
  width:72px;
  height:59px;
  margin:0 auto 2px;
  filter:drop-shadow(0 7px 7px rgba(45,36,21,.22));
  z-index:1;
}
.resident-map-sites .resident-map-site .site-mini-building .mini-body{
  position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:54px;height:39px;border-radius:10px 10px 7px 7px;
  background:linear-gradient(180deg,#fff7dc,#e8d2a8);border:2px solid rgba(103,71,39,.32);
}
.resident-map-sites .resident-map-site .site-mini-building .mini-roof{
  position:absolute;left:50%;top:0;transform:translateX(-50%);width:68px;height:29px;
  clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,#e77965,#bc5147);z-index:2;
}
.resident-map-sites .resident-map-site .site-mini-building .mini-door{
  position:absolute;left:50%;bottom:3px;transform:translateX(-50%);width:13px;height:22px;border-radius:7px 7px 2px 2px;background:#8c6544;z-index:3;
}
.resident-map-sites .resident-map-site .site-mini-building .mini-icon{
  position:absolute;right:-1px;top:2px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);font-size:14px;z-index:4;box-shadow:0 3px 8px rgba(0,0,0,.14);
}
.resident-map-sites .resident-map-site .site-mini-building.kind-research .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-data .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-observe .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-core .mini-roof{background:linear-gradient(180deg,#4c8bd0,#315e9f)}
.resident-map-sites .resident-map-site .site-mini-building.kind-studio .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-academic .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-library .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-lecture .mini-roof{background:linear-gradient(180deg,#9a77d3,#6b4ca8)}
.resident-map-sites .resident-map-site .site-mini-building.kind-workshop .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-engineering .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-tech .mini-roof{background:linear-gradient(180deg,#75818d,#4f5860)}
.resident-map-sites .resident-map-site .site-mini-building.kind-care .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-lab .mini-roof{background:linear-gradient(180deg,#70c9c8,#3b9898)}
.resident-map-sites .resident-map-site .site-mini-building.kind-club .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-friend .mini-roof,
.resident-map-sites .resident-map-site .site-mini-building.kind-guide .mini-roof{background:linear-gradient(180deg,#f0b05f,#ca7a38)}
.resident-map-sites .resident-map-site .site-owner{top:-4px;z-index:4}
.resident-map-sites .resident-map-site .site-plaque{position:relative;z-index:2;padding-top:7px;min-height:43px}
.resident-map-sites .resident-map-site .site-icon{display:none}
.resident-map-sites .resident-map-site.locked .site-lot-sign,
.resident-map-sites .resident-map-site.locked .site-lot-title,
.resident-map-sites .resident-map-site.locked .site-lot-note,
.resident-map-sites .resident-map-site.locked .site-progress,
.resident-map-sites .resident-map-site.locked .site-progress-text{position:relative;z-index:2}
.resident-map-sites .resident-map-site.locked .site-lot-sign{margin-top:6px}

.world-hub-scene.village-style-scene .world-hub-knowledge-tree{
  left:50%;top:24%;width:168px;height:168px;z-index:4;
}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree::before{
  content:"";position:absolute;left:50%;bottom:4%;transform:translateX(-50%);width:178px;height:112px;border-radius:50%;
  background:radial-gradient(ellipse at center,#d8c39a 0 40%,#a89a7c 41% 47%,#7ca46a 48% 72%,rgba(95,139,77,.12) 73% 100%);
  box-shadow:0 7px 18px rgba(38,56,35,.18),inset 0 0 0 3px rgba(255,255,255,.20);z-index:-1;
}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-0{transform:translateX(-50%) scale(.68)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-1{transform:translateX(-50%) scale(.76)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-2{transform:translateX(-50%) scale(.84)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-3{transform:translateX(-50%) scale(.92)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree.stage-4{transform:translateX(-50%) scale(1)}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 8px rgba(0,0,0,.18))}
.world-hub-scene.village-style-scene .world-hub-knowledge-tree span{margin-top:-18px;font-size:9px;z-index:5}


/* V5.0BC refined resident map layout */
.world-hub-title, .world-resident-section{position:relative;z-index:2}
.world-hub-scene.illustrated-map-scene{margin-top:6px}
.world-hub-scene.illustrated-map-scene .world-scene-soften{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0) 16%,rgba(13,18,33,0) 68%,rgba(18,23,34,.12) 100%)}
.world-hub-scene.illustrated-map-scene .world-scene-bottom-fade{height:52px;background:linear-gradient(180deg,rgba(20,26,38,0),rgba(20,26,38,.14))}
@media(max-width:700px){
  .world-hub-scene.illustrated-map-scene{aspect-ratio:16/10}
  .resident-map-sites .resident-map-site{width:64px!important}
  .resident-map-sites .resident-map-site .site-ground-mask{width:76px;height:58px}
  .resident-map-sites .resident-map-site .site-mini-building{width:52px;height:44px}
  .resident-map-sites .resident-map-site .site-mini-building .mini-body{width:40px;height:29px}
  .resident-map-sites .resident-map-site .site-mini-building .mini-roof{width:50px;height:22px}
  .resident-map-sites .resident-map-site .site-mini-building .mini-door{width:10px;height:17px}
  .resident-map-sites .resident-map-site .site-mini-building .mini-icon{width:19px;height:19px;font-size:11px}
  .resident-map-sites .resident-map-site .site-owner{width:24px;height:24px;top:0}
  .resident-map-sites .resident-map-site .site-plaque{padding:4px 4px;min-height:30px}
  .resident-map-sites .resident-map-site .site-plaque b{font-size:8px}
  .resident-map-sites .resident-map-site .site-plaque small{font-size:7px}
  .resident-map-sites .resident-map-site.locked .site-lot-note{display:none}
  .resident-map-sites .resident-map-site.locked .site-progress{height:4px;margin-top:3px}
  .resident-map-sites .resident-map-site.locked .site-progress-text{font-size:7px}
  .world-hub-scene.village-style-scene .world-hub-knowledge-tree{width:112px;height:112px;top:26%}
  .world-hub-scene.village-style-scene .world-hub-knowledge-tree::before{width:118px;height:74px}
}

.map-static-cover{position:absolute;width:38px;height:42px;transform:translate(-50%,0);pointer-events:none;z-index:4;filter:drop-shadow(0 4px 4px rgba(36,62,28,.18))}
.map-static-cover.bush::before,.map-static-cover.bush::after,.map-static-cover.flowers::before,.map-static-cover.flowers::after{content:"";position:absolute;border-radius:50%}
.map-static-cover.bush::before{left:1px;bottom:3px;width:30px;height:25px;background:radial-gradient(circle at 34% 30%,#a9e67d 0,#76bd59 58%,#4e8e42 100%);box-shadow:12px 4px 0 #69ad50,-5px 7px 0 #78bd58}
.map-static-cover.bush::after{left:16px;bottom:0;width:6px;height:13px;border-radius:4px;background:#8a6040}
.map-static-cover.flowers::before{left:0;bottom:2px;width:37px;height:23px;border-radius:50%;background:radial-gradient(circle at 25% 55%,#fff6a0 0 7%,transparent 8%),radial-gradient(circle at 53% 30%,#ffb0c4 0 7%,transparent 8%),radial-gradient(circle at 76% 65%,#bee8ff 0 7%,transparent 8%),radial-gradient(ellipse at center,#76bd59 0 58%,#57984b 60% 100%)}
.map-static-cover.flowers::after{left:4px;bottom:0;width:29px;height:8px;border-radius:50%;background:rgba(82,139,69,.45)}
.map-static-cover.bench{width:42px;height:34px}
.map-static-cover.bench::before{content:"";position:absolute;left:3px;bottom:10px;width:36px;height:9px;border-radius:5px;background:linear-gradient(180deg,#b98456,#855a39);box-shadow:0 -8px 0 #a9774b}
.map-static-cover.bench::after{content:"";position:absolute;left:8px;bottom:2px;width:4px;height:11px;background:#6c4a32;box-shadow:22px 0 0 #6c4a32}
@media(max-width:700px){.map-static-cover{transform:translate(-50%,0) scale(.72);transform-origin:center bottom}}


/* V5.0BC compact resident overlays */
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site{filter:drop-shadow(0 6px 12px rgba(0,0,0,.10))}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-owner{width:28px;height:28px;top:-1px;border-width:1.5px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-ground-mask{width:88px;height:66px;border-radius:22px;background:radial-gradient(circle at 50% 55%,rgba(255,255,255,.18),rgba(255,255,255,.02) 65%,rgba(255,255,255,0) 100%)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building{width:56px;height:46px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building .mini-body{width:42px;height:30px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building .mini-roof{width:52px;height:23px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque{padding:5px 5px 4px;min-height:30px;border-radius:12px;background:rgba(251,245,233,.88);backdrop-filter:blur(2px);box-shadow:0 6px 12px rgba(43,31,16,.10)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque b{font-size:9px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque small{font-size:7px;line-height:1.05}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque .site-status{font-size:7px;padding:1px 5px;margin-top:1px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-lot-title{font-size:9px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-lot-note{font-size:7px;line-height:1.15;padding:5px 6px;background:rgba(250,244,232,.86)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-progress-text{font-size:7px}
@media(max-width:700px){
  .world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-ground-mask{width:78px;height:56px}
  .world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building{width:50px;height:40px}
  .world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque b{font-size:8px}
  .world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque small{font-size:6px}
}


/* V5.0BC map layout polish */
.world-hub-scene.illustrated-map-scene{margin-top:10px;border-radius:24px;border:1px solid rgba(255,255,255,.22)}
.world-hub-scene.illustrated-map-scene .world-scene-corner-tag{left:12px;top:12px;padding:4px 9px;border-radius:999px;background:rgba(20,44,78,.68);font-size:10px;letter-spacing:.2px;box-shadow:0 4px 10px rgba(5,14,28,.12)}
.world-hub-scene.illustrated-map-scene .world-scene-bottom-fade{height:40px;background:linear-gradient(180deg,rgba(20,26,38,0),rgba(20,26,38,.10))}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site{filter:drop-shadow(0 4px 10px rgba(0,0,0,.10))}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque{background:rgba(251,245,233,.82);box-shadow:0 4px 10px rgba(43,31,16,.08)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-lot-note{background:rgba(250,244,232,.78)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-progress{height:5px}


/* V5.0BC resident map ultra-compact polish */
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-owner{width:24px;height:24px;top:0}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-ground-mask{width:78px;height:56px;border-radius:20px;background:radial-gradient(circle at 50% 55%,rgba(255,255,255,.14),rgba(255,255,255,.01) 62%,rgba(255,255,255,0) 100%)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building{width:50px;height:40px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building .mini-body{width:38px;height:28px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-mini-building .mini-roof{width:48px;height:20px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque{padding:4px 4px 3px;min-height:28px;border-radius:11px;background:rgba(251,245,233,.78)}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque b{font-size:8px;line-height:1.02}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque small{font-size:6px;line-height:1.02}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque .site-status{display:none}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-lot-sign{padding:3px 8px;font-size:9px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-lot-title{margin-top:4px;font-size:8px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-lot-note{display:none}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-progress{margin-top:4px;height:4px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-progress-text{margin-top:2px;font-size:6px}


/* V5.0BC residents patrol around their own buildings */
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager{z-index:8}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body{transform:scale(.58);transform-origin:center bottom}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .world-resident-scene-image{filter:drop-shadow(0 3px 3px rgba(25,35,30,.20))}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active{animation-play-state:paused!important;z-index:18}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active .body{filter:drop-shadow(0 0 8px rgba(255,224,105,.95));transform:scale(.64)}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active .name{opacity:1;background:rgba(69,54,22,.78);color:#fff6c9}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager:hover .body{transform:scale(.62)}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .speech-bubble{max-width:120px;font-size:9px;padding:4px 7px}
@media(max-width:700px){
  .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body{transform:scale(.48)}
  .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active .body{transform:scale(.54)}
  .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .speech-bubble{display:none}
}


/* V5.0BE：保證國中/高中/大學精美地圖實際顯示 */
.world-hub-scene.illustrated-map-scene{background:none!important}
.world-hub-scene.illustrated-map-scene .world-scene-map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;pointer-events:none}
.world-hub-scene.illustrated-map-scene .world-scene-decor{z-index:1}
.world-hub-scene.illustrated-map-scene .world-hub-landmarks{z-index:5}
.world-hub-scene.illustrated-map-scene .world-hub-npcs{z-index:7}
.world-hub-scene.illustrated-map-scene .world-hub-home,.world-hub-scene.illustrated-map-scene .world-hub-hero{z-index:8}

/* V5.0BE：世界資訊移到數學冒險王主選單的世界選擇區 */
.home-world-summary{display:grid;gap:10px;padding:12px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.055));border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);overflow:hidden}
.home-world-summary-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center}
.home-world-summary-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:25px;background:rgba(255,255,255,.12);box-shadow:0 4px 10px rgba(0,0,0,.10)}
.home-world-summary-head b{display:block;color:var(--yellow);font-size:14px;line-height:1.2}.home-world-summary-head small{display:block;margin-top:3px;color:var(--chalk-dim);font-size:9px;line-height:1.3}.home-world-summary-head em{font-style:normal;font-weight:800;font-size:10px;color:#fff7cf;padding:5px 8px;border-radius:999px;background:rgba(255,209,102,.14);border:1px solid rgba(255,209,102,.26);white-space:nowrap}
.home-world-summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.home-world-summary-stats>div{min-width:0;text-align:center;padding:7px 4px;border-radius:11px;background:rgba(0,0,0,.13);border:1px solid rgba(255,255,255,.10)}.home-world-summary-stats small{display:block;font-size:8px;color:var(--chalk-dim);white-space:nowrap}.home-world-summary-stats b{display:block;margin-top:2px;font-size:11px;color:#ffe083;line-height:1.2;word-break:break-word}
.home-world-summary p{margin:0;color:var(--chalk-dim);font-size:10px;line-height:1.45;text-align:left}.home-world-summary .btn{width:100%;min-height:38px}
.home-world-summary[data-world="juniorHigh"]{border-color:rgba(103,171,255,.34)}.home-world-summary[data-world="seniorHigh"]{border-color:rgba(181,145,255,.35)}.home-world-summary[data-world="university"]{border-color:rgba(255,202,92,.36)}
.home-world-summary.summary-pop{animation:homeWorldSummaryPop .26s ease both}@keyframes homeWorldSummaryPop{0%{opacity:.45;transform:translateY(5px) scale(.985)}100%{opacity:1;transform:none}}
@media(max-width:560px){.home-world-summary{padding:10px;gap:8px}.home-world-summary-head{grid-template-columns:38px minmax(0,1fr) auto}.home-world-summary-icon{width:38px;height:38px;font-size:22px}.home-world-summary-stats{grid-template-columns:1fr 1fr}.home-world-summary-stats>div{padding:6px 4px}.home-world-summary-head b{font-size:13px}.home-world-summary-head em{font-size:9px;padding:4px 6px}}

/* V5.0BF：精美居民地圖移除所有地圖內文字標示，只保留純圖與互動物件 */
.world-hub-scene.illustrated-map-scene .world-hub-sky,
.world-hub-scene.illustrated-map-scene .world-scene-corner-tag,
.world-hub-scene.illustrated-map-scene .world-scene-bottom-fade,
.world-hub-scene.illustrated-map-scene .world-building .name,
.world-hub-scene.illustrated-map-scene .world-hub-home b,
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .name,
.world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree span,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-lot-sign,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-lot-title,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-lot-note,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-progress,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-progress-text,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-status{
  display:none!important;
}

/* 保留地圖上的建築物與預定地底座，但移除文字干擾 */
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site{width:72px!important}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-owner{top:-6px}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site.locked .site-ground-mask{opacity:.96}



/* V5.1：國中／高中／大學精美居民地圖定稿，移除地圖內固定文字並修正比例 */
.world-hub-scene.illustrated-map-scene{position:relative;padding:0!important;min-height:0!important;aspect-ratio:1672 / 941;background:none!important;overflow:hidden}
.world-hub-scene.illustrated-map-scene .world-scene-map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}
.world-hub-scene.illustrated-map-scene .world-hub-sky,
.world-hub-scene.illustrated-map-scene .world-scene-corner-tag,
.world-hub-scene.illustrated-map-scene .world-scene-bottom-fade,
.world-hub-scene.illustrated-map-scene .world-building .name,
.world-hub-scene.illustrated-map-scene .world-hub-home b,
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .name,
.world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree span,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-plaque,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-lot-sign,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-lot-title,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-lot-note,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-progress,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-progress-text,
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-status{display:none!important}
.world-hub-scene.illustrated-map-scene .world-hub-landmarks,.world-hub-scene.illustrated-map-scene .world-hub-npcs{position:absolute;inset:0}
.world-hub-scene.illustrated-map-scene .world-hub-landmarks{z-index:5}.world-hub-scene.illustrated-map-scene .world-hub-npcs{z-index:7}
.world-hub-scene.illustrated-map-scene .world-hub-home,.world-hub-scene.illustrated-map-scene .world-hub-hero{z-index:8}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site{width:68px!important}
.world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-owner{top:-4px;width:26px;height:26px}
.world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{width:122px!important;height:122px!important}
.world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree::before{width:118px!important;height:70px!important}
.world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body{transform:scale(.82);transform-origin:center bottom}
.world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img,.world-hub-scene.illustrated-map-scene .resident-map-owner-image,.world-hub-scene.illustrated-map-scene .world-resident-scene-image{background:transparent!important;mix-blend-mode:multiply}
@media(max-width:700px){
  .world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site{width:52px!important}
  .world-hub-scene.illustrated-map-scene .resident-map-sites .resident-map-site .site-owner{width:22px;height:22px}
  .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{width:92px!important;height:92px!important}
  .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body{transform:scale(.74)}
}

/* V5.1A：四世界居民地圖移除綠色地基圈、世界樹與固定說明 */
#screen-world-hub .world-hub-knowledge-tree,
#screen-world-hub .world-scene-tip,
#screen-world-hub .site-ground-mask,
#screen-world-hub .site-lot-dot{
  display:none !important;
}
#screen-world-hub .resident-map-sites .resident-map-site.locked{opacity:0;pointer-events:none}
#screen-world-hub .resident-map-sites .resident-map-site.unlocked .site-mini-building{transform:scale(.94)}
#screen-world-hub .resident-map-sites .resident-map-site.unlocked .site-owner{top:-2px}


/* V5.1B：恢復四世界居民地圖中央世界樹（僅顯示圖像） */
#screen-world-hub .world-hub-knowledge-tree{display:flex !important;pointer-events:none;}
#screen-world-hub .world-hub-knowledge-tree span{display:none !important;}
#screen-world-hub .site-ground-mask,
#screen-world-hub .site-lot-dot,
#screen-world-hub .world-scene-tip{display:none !important;}

/* V5.1C：三世界乾淨底圖與建築空地對齊 */
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-map-art{
  object-fit:fill !important;
  object-position:center !important;
}
#screen-world-hub .world-hub-knowledge-tree{
  display:grid !important;
  left:50% !important;
  right:auto !important;
  top:34% !important;
  width:148px !important;
  height:148px !important;
  z-index:4 !important;
  pointer-events:none !important;
}
#screen-world-hub .world-hub-knowledge-tree span{display:none !important;}
#screen-world-hub .world-hub-knowledge-tree.stage-0{transform:translateX(-50%) scale(.68) !important;}
#screen-world-hub .world-hub-knowledge-tree.stage-1{transform:translateX(-50%) scale(.76) !important;}
#screen-world-hub .world-hub-knowledge-tree.stage-2{transform:translateX(-50%) scale(.84) !important;}
#screen-world-hub .world-hub-knowledge-tree.stage-3{transform:translateX(-50%) scale(.92) !important;}
#screen-world-hub .world-hub-knowledge-tree.stage-4{transform:translateX(-50%) scale(1) !important;}
#screen-world-hub .resident-map-sites .resident-map-site{width:78px !important;}
#screen-world-hub .resident-map-sites .resident-map-site.unlocked .site-mini-building{transform:scale(1);}
#screen-world-hub .resident-map-sites .resident-map-site.locked{opacity:0 !important;pointer-events:none !important;}
@media(max-width:700px){
  #screen-world-hub .world-hub-knowledge-tree{top:35% !important;width:104px !important;height:104px !important;}
  #screen-world-hub .resident-map-sites .resident-map-site{width:58px !important;}
}


/* V5.1C1：居民列表統一使用完整全身站立圖，避免人物裁切 */
.world-resident-portrait.resident-fullbody-image,
.resident-map-owner-image.resident-fullbody-image{
  object-fit:contain!important;
  object-position:center bottom!important;
  max-width:100%;
  max-height:100%;
}
.world-resident-grid .resident-face{overflow:visible!important;display:flex;align-items:flex-end;justify-content:center;}
.world-resident-grid .resident-face .resident-fullbody-image{width:104px!important;height:126px!important;padding:5px 8px 0;box-sizing:border-box;}
.resident-map-site .site-owner .resident-fullbody-image{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important;}
@media(max-width:700px){.world-resident-grid .resident-face .resident-fullbody-image{width:86px!important;height:104px!important;}}

/* V5.1D：四世界建築解鎖進度列表 */
.building-unlock-panel{
  margin:14px 0 18px;
  padding:16px;
  border-radius:18px;
  background:rgba(248,244,233,.96);
  color:var(--ink);
  border:1px solid rgba(104,86,55,.18);
  box-shadow:0 8px 20px rgba(27,34,28,.10);
}
.building-unlock-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.building-unlock-head>div{display:flex;flex-direction:column;gap:3px}
.building-unlock-head b{font-size:16px;color:#4b412f}
.building-unlock-head small{font-size:11px;color:#766d5d;line-height:1.45}
.building-unlock-head>span{
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  background:#e9dfc7;
  color:#5a4d35;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.building-unlock-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.building-unlock-item{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:52px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid rgba(90,76,48,.18);
  background:rgba(255,255,255,.84);
  color:inherit;
  text-align:left;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.building-unlock-item:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(38,42,33,.10);border-color:rgba(83,119,88,.35)}
.building-unlock-item.locked{background:rgba(235,232,222,.76);filter:none;opacity:1}
.building-unlock-icon{
  width:48px;height:48px;border-radius:13px;
  display:grid;place-items:center;
  font-size:27px;
  background:linear-gradient(180deg,#fff9e6,#eadfc8);
  box-shadow:inset 0 0 0 1px rgba(99,79,45,.12);
}
.building-unlock-item.locked .building-unlock-icon{filter:grayscale(.75);opacity:.62}
.building-unlock-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.building-unlock-copy b{font-size:13px;color:#453c2c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.building-unlock-copy small{font-size:10px;color:#766f62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.building-unlock-condition{font-size:10px;color:#6d624f;line-height:1.35}
.building-unlock-progress{height:6px;border-radius:999px;background:rgba(93,79,53,.13);overflow:hidden;margin-top:2px}
.building-unlock-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#76b985,#4f9666);transition:width .25s ease}
.building-unlock-item.locked .building-unlock-progress i{background:linear-gradient(90deg,#c7ad65,#9f8042)}
.building-unlock-state{
  min-width:65px;
  max-width:92px;
  padding:5px 7px;
  border-radius:10px;
  background:#e3f1e5;
  color:#39724b;
  font-size:10px;
  font-weight:800;
  line-height:1.3;
  text-align:center;
}
.building-unlock-item.locked .building-unlock-state{background:#eee3cc;color:#876928}
.building-unlock-item.home .building-unlock-state{background:#e1e9f7;color:#45618e}
@media(max-width:700px){
  .building-unlock-panel{padding:13px;margin:12px 0 16px}
  .building-unlock-head{align-items:flex-start}
  .building-unlock-list{grid-template-columns:1fr}
  .building-unlock-item{grid-template-columns:46px minmax(0,1fr) auto;padding:10px}
  .building-unlock-icon{width:42px;height:42px;font-size:23px}
}
@media(max-width:430px){
  .building-unlock-head{display:block}
  .building-unlock-head>span{display:inline-block;margin-top:8px}
  .building-unlock-state{min-width:58px;max-width:76px;font-size:9px}
}

/* V5.1E：四世界固定地圖配置與精準到達點 */
#screen-world-hub .world-hub-scene.illustrated-map-scene{
  isolation:isolate;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{
  left:50%!important;
  top:34%!important;
  width:148px!important;
  height:148px!important;
  z-index:4!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-sites{z-index:6}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site{z-index:6!important}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:96px;
  height:82px;
  transform:translate(-50%,-48%);
  border-radius:24px;
  background:transparent;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents{z-index:7}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building{
  left:7%!important;
  bottom:8%!important;
  width:72px!important;
  z-index:8!important;
  transform:translateX(-50%) scale(.67)!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building:hover,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building:focus-visible{
  transform:translateX(-50%) translateY(-2px) scale(.72)!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero{z-index:9!important}
@media(max-width:700px){
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{top:35%!important;width:104px!important;height:104px!important}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site::after{width:72px;height:62px}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building{width:60px!important;transform:translateX(-50%) scale(.60)!important}
}

/* V5.1F：四世界主角之家 Q 版獨立圖面 */
.hero-home-map-art{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  filter:drop-shadow(0 7px 7px rgba(28,42,34,.22));
}
#screen-world-hub .world-hub-home.world-building.custom-home-art{
  width:112px!important;
  height:112px!important;
  padding:0!important;
  overflow:visible;
  transform:translateX(-50%) scale(.78)!important;
  transform-origin:center bottom;
}
#screen-world-hub .world-hub-home.world-building.custom-home-art:hover,
#screen-world-hub .world-hub-home.world-building.custom-home-art:focus-visible{
  transform:translateX(-50%) translateY(-3px) scale(.83)!important;
  filter:brightness(1.04);
}
#screen-world-hub .world-hub-home.custom-home-art .hero-home-map-art{
  position:absolute;
  left:50%;
  bottom:-8px;
  width:128px;
  height:128px;
  transform:translateX(-50%);
}
.building-unlock-home-art{
  width:54px;
  height:54px;
  object-fit:contain;
  filter:drop-shadow(0 3px 3px rgba(48,55,43,.18));
}
.building-unlock-item.home .building-unlock-icon{
  overflow:visible;
  background:linear-gradient(180deg,#edf4ff,#dce8f7);
}
@media(max-width:700px){
  #screen-world-hub .world-hub-home.world-building.custom-home-art{
    width:92px!important;
    height:92px!important;
    transform:translateX(-50%) scale(.70)!important;
  }
  #screen-world-hub .world-hub-home.world-building.custom-home-art:hover,
  #screen-world-hub .world-hub-home.world-building.custom-home-art:focus-visible{
    transform:translateX(-50%) translateY(-2px) scale(.75)!important;
  }
  #screen-world-hub .world-hub-home.custom-home-art .hero-home-map-art{width:108px;height:108px}
  .building-unlock-home-art{width:48px;height:48px}
}

/* V5.1G：建築解鎖列表顯示專屬建築縮圖 */
.building-unlock-art{
  width:56px;
  height:56px;
  object-fit:contain;
  filter:drop-shadow(0 3px 3px rgba(48,55,43,.18));
}
.building-unlock-item .building-unlock-icon{overflow:visible}
.building-unlock-item.locked .building-unlock-art{filter:grayscale(.85);opacity:.66}
@media(max-width:700px){.building-unlock-art{width:49px;height:49px}}

/* V5.1H：國中八棟居民 Q 版專屬建築 */
.world-hub-scene .resident-map-site .resident-building-art{
  display:block;width:92px;height:92px;object-fit:contain;margin:0 auto;
  filter:drop-shadow(0 7px 7px rgba(25,40,48,.22));pointer-events:none;
}
.world-hub-scene .resident-map-site .resident-building-art + .site-owner{top:-3px}
@media(max-width:700px){
  .world-hub-scene .resident-map-site .resident-building-art{width:70px;height:70px}
}

/* V5.1K：四世界居民地圖最終整合與比例微調 */
#screen-world-hub .world-hub-scene.illustrated-map-scene{
  --map-building-size:104px;
  --map-home-size:118px;
  --map-tree-size:132px;
  isolation:isolate;
  touch-action:manipulation;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{
  left:50%!important;top:34%!important;
  width:var(--map-tree-size)!important;height:var(--map-tree-size)!important;
  z-index:4!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site.unlocked{
  width:var(--map-building-size)!important;height:var(--map-building-size)!important;
  transform:translateX(-50%)!important;
  transform-origin:center bottom!important;
  overflow:visible!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site.unlocked:hover,
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site.unlocked:focus-visible{
  transform:translateX(-50%) translateY(-3px) scale(1.055)!important;
  filter:drop-shadow(0 9px 12px rgba(23,39,36,.22));
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-building-art{
  position:absolute!important;left:50%!important;bottom:-4px!important;
  width:116px!important;height:116px!important;margin:0!important;
  transform:translateX(-50%)!important;object-fit:contain!important;object-position:center bottom!important;
  mix-blend-mode:normal!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site .site-owner{display:none!important}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site::after{
  display:block!important;width:112px!important;height:94px!important;top:55%!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art{
  left:9%!important;bottom:8%!important;
  width:var(--map-home-size)!important;height:var(--map-home-size)!important;
  transform:translateX(-50%)!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{
  width:132px!important;height:132px!important;bottom:-5px!important;
  object-position:center bottom!important;mix-blend-mode:normal!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art:hover,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art:focus-visible{
  transform:translateX(-50%) translateY(-3px) scale(1.04)!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body{
  transform:scale(.64)!important;transform-origin:center bottom!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active .body,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager:hover .body{
  transform:scale(.69)!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-resident-scene-image,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img{mix-blend-mode:normal!important}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero{z-index:10!important}
#screen-world-hub .resident-map-site:focus-visible,
#screen-world-hub .world-hub-home:focus-visible{outline:3px solid rgba(255,213,85,.96)!important;outline-offset:3px;border-radius:18px}
.building-unlock-item:focus-visible{outline:3px solid rgba(77,139,91,.55);outline-offset:2px}
.building-unlock-art,.building-unlock-home-art{object-position:center bottom}

@media(max-width:700px){
  #screen-world-hub .world-hub-scene.illustrated-map-scene{
    --map-building-size:72px;--map-home-size:82px;--map-tree-size:94px;
  }
  #screen-world-hub .world-hub-scene.illustrated-map-scene .resident-building-art{width:84px!important;height:84px!important;bottom:-3px!important}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site::after{width:72px!important;height:66px!important}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art{left:12%!important}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:94px!important;height:94px!important}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body{transform:scale(.52)!important}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active .body,
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager:hover .body{transform:scale(.57)!important}
}


/* V5.1L: fixed map plot alignment, cleaner building-only placement */
#screen-world-hub .world-hub-scene.illustrated-map-scene{--map-building-size:108px;--map-home-size:118px;--map-tree-size:124px;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{left:50%!important;top:33%!important;width:var(--map-tree-size)!important;height:var(--map-tree-size)!important;z-index:4!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site{width:var(--w,var(--map-building-size))!important;height:var(--h,var(--map-building-size))!important;overflow:visible!important;background:transparent!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site.unlocked:hover,
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site.unlocked:focus-visible{transform:translateX(-50%) translateY(-3px)!important;filter:drop-shadow(0 8px 12px rgba(24,34,44,.18));}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-building-art{position:absolute!important;left:50%!important;bottom:0!important;width:100%!important;height:100%!important;transform:translateX(-50%)!important;object-fit:contain!important;object-position:center bottom!important;margin:0!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site::after,
#screen-world-hub .world-hub-scene.illustrated-map-scene .site-ground-mask,
#screen-world-hub .world-hub-scene.illustrated-map-scene .site-owner,
#screen-world-hub .world-hub-scene.illustrated-map-scene .site-lot-dot{display:none!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art{left:8.4%!important;bottom:8.2%!important;width:var(--map-home-size)!important;height:var(--map-home-size)!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:124px!important;height:124px!important;bottom:0!important;object-fit:contain!important;object-position:center bottom!important;}
@media(max-width:700px){#screen-world-hub .world-hub-scene.illustrated-map-scene{--map-building-size:78px;--map-home-size:86px;--map-tree-size:96px;}#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-building-art{width:100%!important;height:100%!important;}#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:96px!important;height:96px!important;}}


/* V5.1M final map alignment */
#screen-world-hub .world-hub-scene.illustrated-map-scene{--map-building-size:108px;--map-home-size:62px;--map-tree-size:96px;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art{left:5.4%!important;bottom:4.4%!important;width:var(--map-home-size)!important;height:var(--map-home-size)!important;z-index:6!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:66px!important;height:66px!important;left:50%!important;bottom:0!important;transform:translateX(-50%)!important;object-fit:contain!important;object-position:center bottom!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{left:50%!important;top:37.8%!important;width:var(--map-tree-size)!important;height:var(--map-tree-size)!important;z-index:4!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero{z-index:10!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img{width:30px!important;height:40px!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.hero .body{transform:scale(.58)!important;transform-origin:center bottom!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-map-site.unlocked{width:var(--w,var(--map-building-size))!important;height:var(--h,var(--map-building-size))!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .resident-building-art{left:50%!important;bottom:0!important;width:100%!important;height:100%!important;transform:translateX(-50%)!important;object-fit:contain!important;object-position:center bottom!important;}
@media(max-width:700px){
  #screen-world-hub .world-hub-scene.illustrated-map-scene{--map-home-size:48px;--map-tree-size:78px;--map-building-size:78px;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:52px!important;height:52px!important;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face,
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img{width:26px!important;height:34px!important;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body,
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.hero .body{transform:scale(.52)!important;}
}


/* V5.1N: tree-only art, unified actor size, full-map random roaming */
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{top:28.5%!important;width:104px!important;height:104px!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree::before{display:none!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree img{object-fit:contain!important;object-position:center bottom!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:62px!important;height:62px!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-resident-scene-image{width:48px!important;height:62px!important;object-fit:contain!important;object-position:center bottom!important;}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.hero .body{transform:scale(1)!important;}
.world-scene-residents .world-villager.random-roam{animation:worldNpcRandomRoam var(--roam-dur,22s) ease-in-out infinite!important;animation-delay:var(--roam-delay,0s)!important;transition:none!important;}
@keyframes worldNpcRandomRoam{0%{left:var(--rx1);bottom:var(--ry1)}25%{left:var(--rx2);bottom:var(--ry2)}50%{left:var(--rx3);bottom:var(--ry3)}75%{left:var(--rx4);bottom:var(--ry4)}100%{left:var(--rx1);bottom:var(--ry1)}}
@media(max-width:700px){#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-knowledge-tree{top:28%!important;width:82px!important;height:82px!important;}#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{width:50px!important;height:50px!important;}#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face,#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img,#screen-world-hub .world-hub-scene.illustrated-map-scene .world-resident-scene-image{width:38px!important;height:50px!important;}}

/* V5.1O：四世界共用居民中心；國小不再使用舊版 village UI */
#screen-world-hub .world-hub-shell{
  width:100%;
}
#screen-world-hub .world-hub-stats,
#screen-world-hub .world-building-unlock-panel{
  width:100%;
  box-sizing:border-box;
}
#screen-world-hub .world-hub-stats{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
#screen-world-hub .world-hub-stats .growth-card{
  min-width:0;
  min-height:84px;
  padding:12px 8px;
}
#screen-world-hub .building-unlock-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

/* 地圖上的主角、NPC 與四間主角之家使用同一個可視高度 */
#screen-world-hub .world-hub-scene.illustrated-map-scene{
  --map-entity-height:56px;
  --map-home-height:56px;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art{
  width:92px!important;
  height:var(--map-home-height)!important;
  left:5.5%!important;
  bottom:4.5%!important;
  overflow:visible!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{
  position:absolute!important;
  left:50%!important;
  bottom:0!important;
  width:auto!important;
  max-width:92px!important;
  height:var(--map-home-height)!important;
  transform:translateX(-50%)!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home .name{
  display:none!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .face,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-resident-scene-image{
  width:auto!important;
  height:var(--map-entity-height)!important;
  max-width:76px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager .body,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.active .body,
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager:hover .body{
  transform:none!important;
  transform-origin:center bottom!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero{
  min-width:62px!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .world-hub-gear{
  display:none!important;
}

@media(max-width:700px){
  #screen-world-hub .world-hub-stats{gap:7px;}
  #screen-world-hub .world-hub-stats .growth-card{min-height:76px;padding:10px 5px;}
  #screen-world-hub .building-unlock-list{grid-template-columns:1fr;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene{--map-entity-height:46px;--map-home-height:46px;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.world-building.custom-home-art{width:76px!important;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-home.custom-home-art .hero-home-map-art{max-width:76px!important;}
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero .hero-face img,
  #screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-resident-scene-image{max-width:62px!important;}
}


#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.js-random-roam{
  animation:none!important;
  transition:left var(--move-dur,8500ms) linear,bottom var(--move-dur,8500ms) linear!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-scene-residents .world-villager.js-random-roam .face{
  animation:none!important;
  transition:transform .28s ease!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero.js-random-hero{
  animation:none!important;
  transition:left var(--move-dur,8500ms) linear,bottom var(--move-dur,8500ms) linear!important;
}
#screen-world-hub .world-hub-scene.illustrated-map-scene .world-hub-hero.js-random-hero .hero-face{
  animation:none!important;
  transition:transform .28s ease!important;
}

/* V5.1S world-home test controls */
.world-hub-title-row{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.world-hub-title-row>.title{margin:0}
.world-test-controls{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;padding:6px 8px;border-radius:14px;border:1px solid rgba(94,234,212,.34);background:rgba(13,148,136,.13);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.world-test-controls[hidden]{display:none!important}
.world-test-badge{font-size:11px;font-weight:800;color:#cffff8;white-space:nowrap}
.world-test-controls .btn{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:6px 10px;border-color:rgba(94,234,212,.48);background:rgba(15,118,110,.26)}
.world-test-controls .btn small{font-size:8px;opacity:.78}
body.large-text .world-test-badge{font-size:13px}
@media(max-width:620px){.world-hub-title-row{gap:8px}.world-test-controls{width:min(100%,410px);box-sizing:border-box}.world-test-badge{width:100%;text-align:center}.world-test-controls .btn{flex:1;justify-content:center}}
