.planet-hero{position:relative;min-height:390px;overflow:hidden;margin-bottom:18px;padding:0;background:#0f3240 url('/assets/world-planet-v1.png') center/cover no-repeat}.planet-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,34,43,.88),rgba(7,34,43,.25) 55%,transparent)}.planet-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;width:min(560px,80%);min-height:390px;padding:45px;color:#fff}.planet-copy>span{font-size:10px;letter-spacing:.22em;color:#a8e9d9}.planet-copy h2{margin:10px 0;font:700 clamp(28px,4vw,46px)/1.15 Georgia,"Songti SC",serif}.planet-copy p{margin:0;color:rgba(255,255,255,.72);line-height:1.8}.planet-copy>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.planet-copy>div b{padding:8px 11px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.1);font-size:10px}.region-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;padding:6px;border-radius:18px;background:#e6efeb}.region-tabs button{padding:11px;border:0;border-radius:13px;background:transparent;color:#667873;font-weight:700;cursor:pointer}.region-tabs button.active{background:#fff;color:#2d6759;box-shadow:0 6px 20px rgba(43,79,69,.1)}.habitat-scene{position:relative;min-height:520px;overflow:hidden;margin-bottom:14px;background-image:linear-gradient(rgba(9,40,45,.02),rgba(9,40,45,.16)),var(--scene-image);background-position:center;background-size:cover}.habitat-scene::after{content:"";position:absolute;inset:0;pointer-events:none}.habitat-scene.season-spring::after{background:linear-gradient(120deg,rgba(255,191,219,.1),transparent 35%)}.habitat-scene.season-summer::after{background:linear-gradient(120deg,rgba(255,216,84,.11),transparent 40%)}.habitat-scene.season-autumn::after{background:linear-gradient(120deg,rgba(210,112,47,.15),transparent 45%)}.habitat-scene.season-winter::after{background:linear-gradient(120deg,rgba(206,236,255,.24),transparent 48%)}.scene-hud{position:absolute;z-index:5;top:18px;left:18px;display:grid;gap:3px;padding:12px 15px;border:1px solid rgba(255,255,255,.35);border-radius:16px;color:#fff;background:rgba(13,43,43,.58);backdrop-filter:blur(12px)}.scene-hud span{font-size:9px;letter-spacing:.18em}.scene-hud b{font-size:15px}.scene-hud small{color:rgba(255,255,255,.7)}.habitat-pet-wrap{position:absolute;z-index:4;left:50%;bottom:50px;width:260px;height:340px;transform:translateX(-50%);display:grid;place-items:center}.habitat-pet-wrap .pet-art.character-portrait{width:210px;height:300px;border:0;background:transparent;box-shadow:none;filter:drop-shadow(0 20px 18px rgba(18,44,40,.32))}.habitat-pet-wrap .pet-art.character-portrait .animal-kind{display:none}.pet-held-item,.pet-worn-item{position:absolute;z-index:12;display:grid;place-items:center;filter:drop-shadow(0 5px 5px rgba(0,0,0,.24));pointer-events:none}.pet-held-item{right:17px;bottom:82px;font-size:48px;transform:rotate(-18deg)}.pet-worn-item{left:50%;top:32px;transform:translateX(-50%);font-size:40px}.scene-activity{position:absolute;z-index:6;right:18px;bottom:18px;display:grid;grid-template-columns:48px minmax(0,260px);gap:12px;align-items:center;padding:12px 14px;border:1px solid rgba(255,255,255,.38);border-radius:17px;color:#fff;background:rgba(14,48,48,.68);backdrop-filter:blur(12px)}.scene-activity>span{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.16);font-size:22px}.scene-activity small{color:#add9ce}.scene-activity b{display:block;margin:2px 0}.scene-activity p{margin:0;color:rgba(255,255,255,.72);font-size:10px;line-height:1.5}.resource-ribbon{display:flex;gap:9px;overflow-x:auto;margin-bottom:16px;padding:11px}.resource-ribbon>div{display:grid;grid-template-columns:42px auto;gap:8px;align-items:center;min-width:112px;padding:7px 10px;border-radius:14px;background:#f5f8f6}.resource-ribbon>div>span{display:flex;flex-direction:column}.resource-ribbon small{color:#7a8984;font-size:9px}.resource-ribbon b{color:#355f55}.atlas-item,.resource-glyph{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background-color:#e8f3ee}.atlas-item{background-image:url('/assets/world-props-atlas-v1.png');background-size:400% 300%;background-position:var(--atlas-position);background-repeat:no-repeat}.resource-glyph{color:#557f74;font-style:normal;font-size:19px}.invasion-banner{display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;margin-bottom:16px;padding:16px 18px;border-color:#e5a37f;background:linear-gradient(135deg,#fff0e7,#fff8ef)}.invasion-banner>span{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#d96d45;color:#fff;font-size:24px}.invasion-banner b{color:#7c402c}.invasion-banner p{margin:3px 0 0;color:#9b6d5a;font-size:11px}.habitat-actions{padding:24px;margin-bottom:16px}.habitat-action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.habitat-action-grid button{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:105px;padding:14px 8px;border:1px solid #d9e7e1;border-radius:17px;background:#fff;color:#36584f;cursor:pointer}.habitat-action-grid button:hover:not(:disabled){border-color:#7db9a8;transform:translateY(-2px);box-shadow:0 10px 26px rgba(48,85,75,.1)}.habitat-action-grid button:disabled{opacity:.38;cursor:default}.habitat-action-grid span{font-size:25px}.habitat-action-grid small{color:#84918c;text-align:center;font-size:9px}.habitat-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.fixed-skill-list{display:grid;gap:9px}.fixed-skill-list article{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid #dbe7e2;border-radius:14px}.fixed-skill-list article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#e7f5ef;color:#3f7869}.fixed-skill-list b{color:#385a52}.fixed-skill-list p{margin:3px 0 0;color:#7a8984;font-size:10px}.fixed-skill-list em{font-style:normal;color:#7a66ad;font-size:9px}.route-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.route-grid button{display:grid;grid-template-columns:34px 1fr;gap:3px 9px;align-items:center;padding:11px;border:1px solid #dbe7e2;border-radius:14px;background:#fff;text-align:left;color:#3b5a52;cursor:pointer}.route-grid button.active{border-color:#6cb49f;background:#e9f7f1}.route-grid button>span{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#f0f4f2}.route-grid small{color:#7c8a85;font-size:9px;line-height:1.4}.house-panel{margin-bottom:16px}.house-panel .card-head>.button{display:flex;flex-direction:column;gap:2px}.house-panel .card-head>.button small{font-size:8px;opacity:.72}.facility-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.facility-grid article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;border:1px solid #dbe7e2;border-radius:15px}.facility-grid article.built{background:#edf8f3;border-color:#a9d4c7}.facility-grid article>span{font-size:25px}.facility-grid b,.facility-grid small,.facility-grid em{display:block}.facility-grid b{color:#38594f}.facility-grid small{color:#768680;font-size:9px}.facility-grid em{color:#9b8063;font-size:9px;font-style:normal}.facility-grid strong{color:#4a8977;font-size:10px}.farm-state,.family-home{display:grid;grid-template-columns:56px 1fr;gap:13px;align-items:center;min-height:115px;padding:16px;border:1px solid #dae7e2;border-radius:17px;background:linear-gradient(135deg,#f5faf7,#fff)}.farm-state>span,.family-home>span{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;background:#e6f4ed;color:#3b7566;font-size:21px;font-weight:700}.farm-state.mature{background:#fff9e9;border-color:#edda9d}.family-home:not(.empty){background:#fff4f5;border-color:#edced3}.farm-state b,.family-home b{color:#3b5c53}.farm-state p,.family-home p{margin:4px 0 0;color:#7b8a85;font-size:10px;line-height:1.6}.equipment-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.equipment-card{display:flex;flex-direction:column;gap:6px;align-items:center;padding:14px 10px;border:1px solid #dce7e3;border-radius:17px;background:#fff;text-align:center}.equipment-card.equipped{border-color:#72b9a5;background:#eaf8f2;box-shadow:0 0 0 3px rgba(96,181,156,.12)}.equipment-card.locked{filter:saturate(.3);opacity:.65}.equipment-card b{color:#38594f;font-size:12px}.equipment-card small{min-height:31px;color:#7b8984;font-size:9px;line-height:1.45}.equipment-card em{color:#9a8068;font-size:8px;font-style:normal}.equipment-icon,.equipment-sprite{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:#edf5f1;font-size:30px}.equipment-sprite{background-image:url('/assets/world-props-atlas-v1.png');background-size:400% 300%;background-repeat:no-repeat;font-size:0}.equipment-sprite.weapon-none{background-image:none;font-size:22px}.equipment-sprite.weapon-wood_blade{background-position:0 100%}.equipment-sprite.weapon-stone_axe{background-position:33.333% 100%}.equipment-sprite.weapon-crystal_spear{background-position:66.666% 100%}.equipment-sprite.weapon-guardian_shield{background-position:100% 100%}.habitat-log{margin-top:16px}.habitat-log>div:last-child{display:grid;gap:5px}.habitat-log p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:9px 11px;border-radius:10px;background:#f5f8f6;color:#536a63;font-size:10px}.habitat-log small{color:#909c98;white-space:nowrap}
/* The same 32 pet sheets gain activity silhouettes without replacing their identity. */
.habitat-action-walk{animation:habitatWalk 3.4s ease-in-out infinite!important}.habitat-action-chop{animation:habitatChop .7s ease-in-out infinite!important}.habitat-action-mine{animation:habitatMine .62s ease-in-out infinite!important}.habitat-action-farm{animation:habitatFarm 1.3s ease-in-out infinite!important}.habitat-action-fish{animation:habitatFish 1.8s ease-in-out infinite!important}.habitat-action-dive{animation:habitatDive 2.1s ease-in-out infinite!important}.habitat-action-cloud{animation:habitatCloud 2.4s ease-in-out infinite!important}.habitat-action-read{animation:habitatRead 2.2s ease-in-out infinite!important}.habitat-action-build{animation:habitatBuild .75s ease-in-out infinite!important}.habitat-action-battle{animation:habitatBattle .5s ease-in-out infinite!important}.habitat-action-equip{animation:habitatEquip 1.2s ease-in-out 2!important}@keyframes habitatWalk{0%,100%{transform:translateX(-35px) translateY(0)}50%{transform:translateX(35px) translateY(-8px)}}@keyframes habitatChop{0%,100%{transform:rotate(-3deg) translateX(-5px)}55%{transform:rotate(8deg) translateX(8px)}}@keyframes habitatMine{0%,100%{transform:translateY(0) rotate(0)}55%{transform:translateY(7px) rotate(-5deg)}}@keyframes habitatFarm{0%,100%{transform:translateY(0)}50%{transform:translateY(12px) scale(.97)}}@keyframes habitatFish{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg) translateY(-3px)}}@keyframes habitatDive{0%,100%{transform:translate(0,4px) rotate(-3deg)}50%{transform:translate(18px,-10px) rotate(4deg)}}@keyframes habitatCloud{0%,100%{transform:translateY(8px)}50%{transform:translateY(-16px)}}@keyframes habitatRead{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px) scale(1.01)}}@keyframes habitatBuild{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(6deg) translateY(5px)}}@keyframes habitatBattle{0%,100%{transform:translateX(-5px) rotate(-2deg)}50%{transform:translateX(12px) rotate(4deg)}}@keyframes habitatEquip{50%{filter:drop-shadow(0 0 28px #fff) brightness(1.25)}}
@media(max-width:1000px){.habitat-action-grid{grid-template-columns:repeat(4,1fr)}.equipment-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.planet-hero,.planet-copy{min-height:300px}.planet-copy{width:100%;padding:28px}.habitat-scene{min-height:430px}.habitat-pet-wrap{bottom:38px;transform:translateX(-50%) scale(.8)}.scene-activity{left:12px;right:12px;bottom:10px}.habitat-columns{grid-template-columns:1fr}.facility-grid{grid-template-columns:1fr}.equipment-grid{grid-template-columns:repeat(2,1fr)}.habitat-action-grid{grid-template-columns:repeat(3,1fr)}.invasion-banner{grid-template-columns:48px 1fr}.invasion-banner .button{grid-column:1/-1}.resource-ribbon>div{min-width:100px}}
@media(max-width:480px){.region-tabs{grid-template-columns:repeat(2,1fr)}.habitat-action-grid{grid-template-columns:repeat(2,1fr)}.equipment-grid{grid-template-columns:1fr 1fr}.route-grid{grid-template-columns:1fr}.house-panel .card-head{align-items:flex-start;flex-direction:column}.habitat-log p{flex-direction:column}.planet-copy p{font-size:11px}}

/* Layered 2D world: seasonal atlases, depth motion, weather and action feedback. */
.habitat-scene.scene-v2{isolation:isolate;background:#102f38;box-shadow:0 28px 70px rgba(21,54,52,.18)}
.scene-v2 .scene-depth,.scene-v2 .scene-lighting,.scene-v2 .scene-particles{position:absolute;inset:0;pointer-events:none}
.scene-v2 .scene-back{z-index:0;inset:-2%;background-image:var(--scene-image);background-repeat:no-repeat;background-size:200% 200%;background-position:var(--scene-x) var(--scene-y);animation:sceneCameraBreath 18s ease-in-out infinite;transition:background-position 1.1s cubic-bezier(.2,.8,.2,1)}
.scene-v2.region-home .scene-back{background-size:cover;background-position:center}
.scene-v2 .scene-mid{z-index:1;inset:-4%;mix-blend-mode:screen;opacity:.34;animation:sceneMidDrift 13s ease-in-out infinite alternate}
.scene-v2.region-land .scene-mid{background:radial-gradient(circle at 18% 70%,rgba(170,226,145,.46),transparent 20%),radial-gradient(circle at 76% 62%,rgba(255,220,126,.27),transparent 24%)}
.scene-v2.region-ocean .scene-mid{background:repeating-radial-gradient(ellipse at 45% 55%,rgba(212,252,255,.16) 0 2px,transparent 4px 34px),linear-gradient(115deg,transparent 30%,rgba(180,245,255,.22) 49%,transparent 64%)}
.scene-v2.region-sky .scene-mid{background:radial-gradient(ellipse at 12% 18%,rgba(255,255,255,.48),transparent 18%),radial-gradient(ellipse at 84% 34%,rgba(255,255,255,.32),transparent 22%)}
.scene-v2 .scene-front{z-index:2;top:52%;background-repeat:no-repeat;opacity:.68;animation:sceneFrontSway 8s ease-in-out infinite alternate;transform-origin:50% 100%}
.scene-v2.region-land .scene-front{background:linear-gradient(160deg,transparent 58%,rgba(18,55,39,.34)),radial-gradient(ellipse at 5% 100%,rgba(28,82,47,.9),transparent 24%),radial-gradient(ellipse at 95% 110%,rgba(29,75,47,.82),transparent 28%)}
.scene-v2.region-ocean .scene-front{background:radial-gradient(ellipse at 12% 110%,rgba(21,103,111,.72),transparent 27%),radial-gradient(ellipse at 88% 110%,rgba(15,82,102,.68),transparent 30%)}
.scene-v2.region-sky .scene-front{background:radial-gradient(ellipse at 8% 115%,rgba(235,249,255,.78),transparent 25%),radial-gradient(ellipse at 91% 112%,rgba(224,243,255,.72),transparent 28%)}
.scene-v2 .scene-lighting{z-index:3;transition:background 1.2s ease,opacity 1.2s ease}
.scene-v2.time-dawn .scene-lighting{background:linear-gradient(115deg,rgba(255,180,132,.22),transparent 48%)}
.scene-v2.time-day .scene-lighting{background:radial-gradient(circle at 72% 8%,rgba(255,249,207,.2),transparent 35%)}
.scene-v2.time-dusk .scene-lighting{background:linear-gradient(115deg,rgba(254,139,83,.28),rgba(83,55,124,.16))}
.scene-v2.time-night .scene-lighting{background:linear-gradient(rgba(16,34,83,.26),rgba(5,22,50,.45));mix-blend-mode:multiply}
.scene-v2.weather-mist .scene-lighting{background:linear-gradient(rgba(222,244,244,.2),rgba(224,242,238,.28))}
.scene-v2.weather-storm .scene-lighting{animation:sceneLightning 7s linear infinite;background:rgba(26,39,68,.32)}
.scene-v2 .scene-particles{z-index:3;overflow:hidden}
.scene-v2 .scene-particles i{--x:50%;--delay:0s;--scale:1;position:absolute;left:var(--x);top:-8%;display:block;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.7);opacity:0;transform:scale(var(--scale));animation:particleFall 9s linear infinite var(--delay)}
.scene-v2 .scene-particles i:nth-child(1){--x:4%;--delay:-1s;--scale:.7}.scene-v2 .scene-particles i:nth-child(2){--x:11%;--delay:-6s;--scale:1.2}.scene-v2 .scene-particles i:nth-child(3){--x:18%;--delay:-3s;--scale:.5}.scene-v2 .scene-particles i:nth-child(4){--x:27%;--delay:-8s;--scale:1}.scene-v2 .scene-particles i:nth-child(5){--x:34%;--delay:-4s;--scale:.8}.scene-v2 .scene-particles i:nth-child(6){--x:42%;--delay:-7s;--scale:1.4}.scene-v2 .scene-particles i:nth-child(7){--x:49%;--delay:-2s;--scale:.65}.scene-v2 .scene-particles i:nth-child(8){--x:56%;--delay:-5s;--scale:1}.scene-v2 .scene-particles i:nth-child(9){--x:63%;--delay:-9s;--scale:.75}.scene-v2 .scene-particles i:nth-child(10){--x:69%;--delay:-2.5s;--scale:1.3}.scene-v2 .scene-particles i:nth-child(11){--x:75%;--delay:-6.5s;--scale:.55}.scene-v2 .scene-particles i:nth-child(12){--x:81%;--delay:-4.5s;--scale:1}.scene-v2 .scene-particles i:nth-child(13){--x:87%;--delay:-8.5s;--scale:.8}.scene-v2 .scene-particles i:nth-child(14){--x:92%;--delay:-3.5s;--scale:1.4}.scene-v2 .scene-particles i:nth-child(15){--x:96%;--delay:-7.5s;--scale:.6}.scene-v2 .scene-particles i:nth-child(16){--x:52%;--delay:-10s;--scale:1.1}
.scene-v2.weather-clear .scene-particles i,.scene-v2.weather-breeze .scene-particles i{width:5px;height:11px;border-radius:70% 20% 70% 20%;background:#ffd1dd;animation-name:petalDrift;animation-duration:12s}
.scene-v2.season-autumn .scene-particles i{width:7px;height:12px;border-radius:80% 10% 80% 15%;background:#e49c42;animation-name:leafDrift}
.scene-v2.season-winter .scene-particles i{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff;animation-name:snowDrift;animation-duration:11s}
.scene-v2.weather-rain .scene-particles i,.scene-v2.weather-storm .scene-particles i{width:2px;height:30px;border-radius:2px;background:linear-gradient(transparent,rgba(205,240,255,.85));animation-name:rainFall;animation-duration:1.1s}
.scene-v2.weather-stars .scene-particles i{top:18%;width:4px;height:4px;background:#eefcff;box-shadow:0 0 10px #b9efff;animation:starPulse 2.8s ease-in-out infinite var(--delay)}
.scene-v2 .scene-hud{z-index:8}.scene-v2 .scene-activity{z-index:8}
.scene-v2.region-ocean.weather-clear .scene-particles i,.scene-v2.region-ocean.weather-breeze .scene-particles i{top:auto;bottom:-8%;width:7px;height:7px;border:1px solid rgba(224,255,255,.85);border-radius:50%;background:transparent;animation:bubbleRise 8s ease-in infinite var(--delay)}
.scene-v2 .habitat-pet-wrap{z-index:5;transform-origin:50% 100%;animation:characterIdleLayer 4.2s ease-in-out infinite}
.scene-v2 .habitat-pet-wrap .pet-art{z-index:4;will-change:transform,filter}
.pet-ground-shadow{position:absolute;z-index:1;left:50%;bottom:48px;width:150px;height:30px;border-radius:50%;background:radial-gradient(ellipse,rgba(9,28,29,.48),transparent 70%);transform:translateX(-50%);filter:blur(3px);animation:groundShadowBreath 4.2s ease-in-out infinite}
.pet-motion-trail{position:absolute;z-index:2;left:50%;bottom:80px;width:180px;height:170px;border-radius:50%;transform:translateX(-50%);opacity:0;pointer-events:none}
.pet-action-prop{position:absolute;z-index:9;right:12px;bottom:92px;display:block;width:76px;height:76px;filter:drop-shadow(0 8px 8px rgba(0,0,0,.28));transform-origin:25% 80%;pointer-events:none}
.pet-action-prop.prop-atlas{background-image:url('/assets/world-props-atlas-v1.png');background-size:400% 300%;background-repeat:no-repeat}
.pet-action-prop.prop-axe,.pet-action-prop.prop-stone_axe{background-position:33.333% 100%}.pet-action-prop.prop-wood_blade{background-position:0 100%}.pet-action-prop.prop-crystal_spear{background-position:66.666% 100%}.pet-action-prop.prop-guardian_shield{background-position:100% 100%}
.pet-action-prop.prop-symbol{display:grid;place-items:center;font-size:48px;text-shadow:0 5px 12px rgba(0,0,0,.25)}
.scene-v2 .pet-held-item{opacity:.72}.scene-v2.action-chop .pet-held-item,.scene-v2.action-mine .pet-held-item,.scene-v2.action-battle .pet-held-item,.scene-v2.action-farm .pet-held-item,.scene-v2.action-fish .pet-held-item,.scene-v2.action-read .pet-held-item,.scene-v2.action-build .pet-held-item{opacity:0}
.scene-v2.action-chop .pet-action-prop{animation:toolChop .78s cubic-bezier(.35,0,.65,1) infinite}.scene-v2.action-mine .pet-action-prop{animation:toolMine .68s cubic-bezier(.35,0,.6,1) infinite}.scene-v2.action-fish .pet-action-prop{animation:rodCast 2.4s ease-in-out infinite}.scene-v2.action-read .pet-action-prop{animation:bookGlow 2.6s ease-in-out infinite}.scene-v2.action-build .pet-action-prop{animation:toolBuild .72s ease-in-out infinite}.scene-v2.action-battle .pet-action-prop{animation:weaponStrike .62s ease-in-out infinite}
.scene-v2.action-chop .pet-motion-trail,.scene-v2.action-mine .pet-motion-trail,.scene-v2.action-build .pet-motion-trail{opacity:.75;background:radial-gradient(circle at 70% 68%,rgba(255,224,140,.8) 0 2px,transparent 4px),radial-gradient(circle at 78% 76%,rgba(255,245,204,.75) 0 3px,transparent 5px);animation:impactDust .75s ease-out infinite}
.scene-v2.action-fish .pet-motion-trail,.scene-v2.action-dive .pet-motion-trail{opacity:.75;border:2px solid rgba(190,248,255,.55);animation:waterRipple 2s ease-out infinite}
.scene-v2.action-cloud .pet-motion-trail{opacity:.7;background:radial-gradient(ellipse,rgba(255,255,255,.72),transparent 68%);animation:cloudPulse 2.2s ease-in-out infinite}
.scene-v2.action-battle .pet-motion-trail{opacity:.8;background:conic-gradient(from 20deg,transparent,rgba(255,226,131,.75),transparent 28%);animation:battleArc .62s ease-out infinite}
.scene-v2 .habitat-action-walk{animation:petWalk2D 3.2s ease-in-out infinite!important}.scene-v2 .habitat-action-chop{animation:petChop2D .78s cubic-bezier(.35,0,.65,1) infinite!important}.scene-v2 .habitat-action-mine{animation:petMine2D .68s cubic-bezier(.35,0,.6,1) infinite!important}.scene-v2 .habitat-action-farm{animation:petFarm2D 1.45s ease-in-out infinite!important}.scene-v2 .habitat-action-fish{animation:petFish2D 2.4s ease-in-out infinite!important}.scene-v2 .habitat-action-dive{animation:petDive2D 2.2s ease-in-out infinite!important}.scene-v2 .habitat-action-cloud{animation:petCloud2D 2.6s ease-in-out infinite!important}.scene-v2 .habitat-action-read{animation:petRead2D 2.6s ease-in-out infinite!important}.scene-v2 .habitat-action-build{animation:petBuild2D .72s ease-in-out infinite!important}.scene-v2 .habitat-action-battle{animation:petBattle2D .62s cubic-bezier(.25,.7,.4,1) infinite!important}
@keyframes sceneCameraBreath{0%,100%{transform:scale(1.035) translate3d(-.3%,0,0)}50%{transform:scale(1.075) translate3d(.7%,-.7%,0)}}
@keyframes sceneMidDrift{from{transform:translate3d(-1.2%,.3%,0)}to{transform:translate3d(1.3%,-.7%,0)}}@keyframes sceneFrontSway{from{transform:scale(1.03) translateX(-.7%)}to{transform:scale(1.06) translateX(.8%)}}
@keyframes sceneLightning{0%,92%,96%,100%{opacity:1}93%,95%{opacity:.1;background:rgba(235,248,255,.78)}}
@keyframes petalDrift{0%{opacity:0;transform:translate3d(0,-30px,0) rotate(0)}12%{opacity:.8}100%{opacity:0;transform:translate3d(120px,600px,0) rotate(520deg)}}@keyframes leafDrift{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}15%{opacity:.9}100%{opacity:0;transform:translate3d(-90px,600px,0) rotate(400deg)}}@keyframes snowDrift{0%{opacity:0;transform:translate3d(0,-20px,0)}15%{opacity:.9}100%{opacity:0;transform:translate3d(55px,590px,0)}}@keyframes rainFall{0%{opacity:0;transform:translate3d(20px,-40px,0) rotate(8deg)}20%{opacity:.85}100%{opacity:0;transform:translate3d(-70px,620px,0) rotate(8deg)}}@keyframes starPulse{0%,100%{opacity:.1;transform:scale(.7)}50%{opacity:1;transform:scale(1.5)}}@keyframes bubbleRise{0%{opacity:0;transform:translate3d(0,0,0)}15%{opacity:.8}100%{opacity:0;transform:translate3d(28px,-570px,0)}}
@keyframes characterIdleLayer{0%,100%{translate:0 0}50%{translate:0 -4px}}@keyframes groundShadowBreath{0%,100%{transform:translateX(-50%) scale(1);opacity:.55}50%{transform:translateX(-50%) scale(.88);opacity:.38}}
@keyframes petWalk2D{0%,100%{transform:translateX(-42px) translateY(0) rotate(-1deg)}25%{transform:translateX(-20px) translateY(-9px) rotate(1deg)}50%{transform:translateX(10px) translateY(0) rotate(-1deg)}75%{transform:translateX(38px) translateY(-9px) rotate(1deg)}}@keyframes petChop2D{0%,38%,100%{transform:translate(-5px,0) rotate(-3deg)}58%{transform:translate(10px,5px) rotate(7deg)}68%{transform:translate(5px,1px) rotate(2deg)}}@keyframes petMine2D{0%,35%,100%{transform:translateY(0) rotate(1deg)}55%{transform:translateY(9px) rotate(-6deg)}66%{transform:translateY(3px) rotate(-2deg)}}@keyframes petFarm2D{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(12px) scale(.97)}65%{transform:translateY(8px) scale(.98)}}@keyframes petFish2D{0%,100%{transform:rotate(-2deg) translateY(0)}42%{transform:rotate(3deg) translateY(-4px)}55%{transform:rotate(-1deg) translateY(-9px)}}@keyframes petDive2D{0%,100%{transform:translate(-18px,6px) rotate(-4deg)}50%{transform:translate(22px,-14px) rotate(5deg)}}@keyframes petCloud2D{0%,100%{transform:translateY(10px) rotate(-1deg)}50%{transform:translateY(-18px) rotate(2deg)}}@keyframes petRead2D{0%,100%{transform:translateY(1px) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg);filter:drop-shadow(0 14px 15px rgba(18,44,40,.3)) brightness(1.04)}}@keyframes petBuild2D{0%,40%,100%{transform:rotate(-2deg) translateY(0)}58%{transform:rotate(6deg) translateY(6px)}}@keyframes petBattle2D{0%,35%,100%{transform:translateX(-8px) rotate(-3deg)}55%{transform:translateX(17px) rotate(5deg)}70%{transform:translateX(7px) rotate(1deg)}}
@keyframes toolChop{0%,38%,100%{transform:rotate(-38deg)}58%{transform:rotate(42deg)}}@keyframes toolMine{0%,35%,100%{transform:rotate(-48deg)}55%{transform:rotate(33deg)}}@keyframes rodCast{0%,100%{transform:rotate(-14deg)}45%{transform:rotate(12deg) translateY(-8px)}}@keyframes bookGlow{0%,100%{transform:scale(.94);filter:drop-shadow(0 5px 8px rgba(0,0,0,.2))}50%{transform:scale(1.06);filter:drop-shadow(0 0 16px rgba(255,244,168,.9))}}@keyframes toolBuild{0%,40%,100%{transform:rotate(-35deg)}58%{transform:rotate(30deg)}}@keyframes weaponStrike{0%,35%,100%{transform:rotate(-35deg) translateX(-5px)}55%{transform:rotate(35deg) translateX(8px)}}
@keyframes impactDust{0%{transform:translateX(-50%) scale(.45);filter:blur(0);opacity:0}55%{opacity:.9}100%{transform:translateX(-50%) scale(1.2);filter:blur(3px);opacity:0}}@keyframes waterRipple{0%{transform:translateX(-50%) scale(.35);opacity:0}35%{opacity:.8}100%{transform:translateX(-50%) scale(1.25);opacity:0}}@keyframes cloudPulse{0%,100%{transform:translateX(-50%) scale(.8);opacity:.4}50%{transform:translateX(-50%) scale(1.08);opacity:.8}}@keyframes battleArc{0%{transform:translateX(-50%) rotate(-18deg) scale(.5);opacity:0}50%{opacity:.9}100%{transform:translateX(-50%) rotate(18deg) scale(1.1);opacity:0}}
@media(max-width:760px){.scene-v2 .scene-back{inset:-5%}.scene-v2 .scene-hud{top:10px;left:10px}.scene-v2 .habitat-pet-wrap{bottom:54px}.pet-action-prop{right:18px;bottom:82px;transform:scale(.88)}}
@media(prefers-reduced-motion:reduce){.scene-v2 *{animation-duration:.001ms!important;animation-iteration-count:1!important}.scene-v2 .scene-back{transform:scale(1.04)}}

/* Free-roaming 2.5D island map. */
.roaming-card{overflow:hidden;margin-bottom:18px;background:#102d35}.roaming-head{margin:0;padding:22px 24px;color:#fff;background:linear-gradient(110deg,#183f46,#24584f)}.roaming-head .eyebrow{color:#93ddce;font-size:9px;letter-spacing:.2em}.roaming-head h2{margin:6px 0 4px;font:700 25px/1.2 Georgia,"Songti SC",serif}.roaming-head p{max-width:720px;margin:0;color:rgba(255,255,255,.7);font-size:11px;line-height:1.7}.roaming-head .status-pill{color:#d6fff4;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.1)}
.roaming-viewport{position:relative;height:min(72vh,680px);min-height:520px;overflow:hidden;cursor:crosshair;touch-action:none;user-select:none;background:#73c8dc}.roaming-viewport::after{content:"";position:absolute;z-index:12;inset:0;pointer-events:none;box-shadow:inset 0 0 90px rgba(7,30,35,.34)}.roaming-viewport.season-spring::after{background:linear-gradient(135deg,rgba(255,191,216,.09),transparent 35%)}.roaming-viewport.season-summer::after{background:linear-gradient(135deg,rgba(255,219,112,.06),transparent 38%)}.roaming-viewport.season-autumn::after{background:linear-gradient(135deg,rgba(210,111,48,.13),transparent 44%)}.roaming-viewport.season-winter::after{background:linear-gradient(135deg,rgba(199,229,255,.2),rgba(40,74,106,.08))}.roaming-viewport.time-night::after{background:linear-gradient(rgba(15,32,73,.2),rgba(6,25,47,.35))}.roaming-viewport.weather-rain::before,.roaming-viewport.weather-storm::before{content:"";position:absolute;z-index:11;inset:-70px 0 0;pointer-events:none;background:repeating-linear-gradient(100deg,transparent 0 18px,rgba(221,247,255,.34) 19px 20px,transparent 21px 38px);animation:mapRain .8s linear infinite}
.roaming-world{position:absolute;z-index:1;left:0;top:0;width:1900px;height:1900px;transform-origin:0 0;background:#7ac8d4 url('/assets/world-roaming-map-v1.png') center/100% 100% no-repeat;will-change:transform}.roaming-world::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 48%,transparent 45%,rgba(13,49,52,.08))}
.map-landmark{--poi-x:50%;--poi-y:50%;position:absolute;z-index:5;left:var(--poi-x);top:var(--poi-y);display:grid;grid-template-columns:36px auto;gap:0 8px;align-items:center;min-width:142px;padding:7px 10px 7px 7px;border:1px solid rgba(255,255,255,.7);border-radius:15px;color:#214c45;background:rgba(249,255,252,.9);box-shadow:0 8px 20px rgba(10,39,38,.2);backdrop-filter:blur(8px);transform:translate(-50%,-50%) scale(.84);transform-origin:50% 100%;cursor:pointer;transition:.2s}.map-landmark:hover,.map-landmark:focus-visible{z-index:10;transform:translate(-50%,-50%) scale(1);box-shadow:0 13px 28px rgba(10,39,38,.28)}.map-landmark>span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#dff1e9;font-size:19px}.map-landmark b{font-size:11px;text-align:left}.map-landmark small{max-width:120px;overflow:hidden;color:#657d76;font-size:8px;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.roaming-pet{position:absolute;z-index:9;width:112px;height:150px;translate:-50% -75%;transform-origin:50% 82%;will-change:left,top}.roaming-pet.facing-left{transform:scaleX(-1)}.roaming-pet.facing-left .roaming-name{transform:translateX(-50%) scaleX(-1)}.roaming-pet.facing-up .map-pet-art{filter:drop-shadow(0 14px 13px rgba(18,44,40,.32)) brightness(.94)}.roaming-pet .map-pet-art{position:absolute;z-index:3;left:6px;bottom:8px;width:100px;height:132px;border:0;background:transparent;filter:drop-shadow(0 15px 13px rgba(18,44,40,.38));animation:mapPetBreathe 2.8s ease-in-out infinite}.roaming-pet .map-pet-art .animal-kind{display:none}.roaming-pet.is-moving .map-pet-art{animation:mapPetStride .44s ease-in-out infinite!important}.roaming-shadow{position:absolute;z-index:1;left:50%;bottom:6px;width:72px;height:18px;border-radius:50%;background:radial-gradient(ellipse,rgba(6,24,23,.55),transparent 70%);transform:translateX(-50%);filter:blur(2px)}.roaming-pet.is-moving .roaming-shadow{animation:mapShadowStride .44s ease-in-out infinite}.roaming-name{position:absolute;z-index:5;left:50%;bottom:-9px;translate:-50% 0;padding:3px 7px;border-radius:999px;color:#fff;background:rgba(13,48,47,.78);box-shadow:0 3px 8px rgba(0,0,0,.18);font-size:8px;white-space:nowrap}
.roaming-status,.map-nearby,.map-help{position:absolute;z-index:15;color:#fff;border:1px solid rgba(255,255,255,.27);background:rgba(9,39,43,.72);box-shadow:0 9px 25px rgba(4,26,31,.18);backdrop-filter:blur(12px)}.roaming-status{left:14px;top:14px;display:grid;gap:2px;padding:10px 13px;border-radius:14px}.roaming-status span{color:#9addd1;font-size:8px;letter-spacing:.14em}.roaming-status b{font-size:13px}.roaming-status small{color:rgba(255,255,255,.65);font-size:8px}.map-nearby{right:14px;top:14px;display:grid;grid-template-columns:auto auto;gap:3px 10px;align-items:center;max-width:260px;padding:10px 12px;border-radius:15px}.map-nearby span,.map-nearby small{grid-column:1}.map-nearby span{font-size:11px;font-weight:800}.map-nearby small{color:rgba(255,255,255,.67);font-size:8px}.map-nearby .button{grid-column:2;grid-row:1/3}.map-help{left:50%;bottom:14px;padding:7px 11px;border-radius:999px;translate:-50% 0;color:rgba(255,255,255,.74);font-size:8px}
.map-minimap{position:absolute;z-index:15;right:14px;bottom:14px;width:142px;height:142px;overflow:hidden;border:2px solid rgba(255,255,255,.8);border-radius:20px;background:#77c8da url('/assets/world-roaming-map-v1.png') center/cover no-repeat;box-shadow:0 12px 30px rgba(3,28,33,.3)}.map-minimap::after{content:"";position:absolute;inset:0;border-radius:18px;box-shadow:inset 0 0 28px rgba(4,33,36,.3)}.minimap-dot{position:absolute;z-index:3;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#ef775a;box-shadow:0 0 0 4px rgba(239,119,90,.28),0 3px 8px rgba(0,0,0,.3);translate:-50% -50%;transition:left .08s linear,top .08s linear}
.map-dpad{position:absolute;z-index:16;left:18px;bottom:18px;display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:6px}.map-dpad button{display:grid;place-items:center;border:1px solid rgba(255,255,255,.43);border-radius:14px;color:#fff;background:rgba(9,45,48,.72);box-shadow:0 7px 17px rgba(5,30,34,.22);backdrop-filter:blur(10px);cursor:pointer}.map-dpad button:active{background:#68b5a4;transform:scale(.94)}.map-dpad [data-map-direction="up"]{grid-column:2}.map-dpad [data-map-direction="left"]{grid-column:1;grid-row:2}.map-dpad [data-map-direction="down"]{grid-column:2;grid-row:2}.map-dpad [data-map-direction="right"]{grid-column:3;grid-row:2}
@keyframes mapPetBreathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes mapPetStride{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-10px) rotate(1.5deg)}}@keyframes mapShadowStride{0%,100%{transform:translateX(-50%) scale(1);opacity:.6}50%{transform:translateX(-50%) scale(.76);opacity:.36}}@keyframes mapRain{from{transform:translate3d(0,-40px,0)}to{transform:translate3d(-28px,65px,0)}}
@media(max-width:760px){.roaming-head{padding:18px}.roaming-head .status-pill{display:none}.roaming-viewport{height:560px;min-height:500px}.roaming-world{width:1500px;height:1500px}.map-landmark{min-width:0;padding:5px;border-radius:50%;transform:translate(-50%,-50%) scale(.82)}.map-landmark>span{grid-row:auto;width:31px;height:31px}.map-landmark b,.map-landmark small{display:none}.map-nearby{left:12px;right:12px;top:auto;bottom:92px;max-width:none}.map-minimap{right:12px;bottom:12px;width:105px;height:105px;border-radius:16px}.map-dpad{left:12px;bottom:12px;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(2,40px);gap:5px}.map-help{display:none}.roaming-pet{width:92px;height:128px}.roaming-pet .map-pet-art{left:5px;width:82px;height:112px}.roaming-status{left:10px;top:10px}}
@media(max-width:430px){.roaming-viewport{height:500px}.roaming-world{width:1350px;height:1350px}.map-minimap{width:90px;height:90px}.map-dpad{grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px)}.roaming-head h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.roaming-world,.roaming-pet,.roaming-pet *{animation:none!important}.minimap-dot{transition:none}}

/* Full 3D open-world homestead. */
.world3d-card{overflow:hidden;margin-bottom:20px;border:1px solid rgba(41,91,86,.24);background:#0e252a;box-shadow:0 22px 60px rgba(10,39,42,.22)}
.world3d-head{margin:0;padding:22px 24px;color:#fff;background:linear-gradient(112deg,#102e34 0%,#1e544e 54%,#17434d 100%)}
.world3d-head .eyebrow{display:block;color:#80e2d0;font-size:9px;font-weight:800;letter-spacing:.22em}
.world3d-head h2{margin:7px 0 5px;font:700 27px/1.2 Georgia,"Songti SC",serif}
.world3d-head p{max-width:790px;margin:0;color:rgba(255,255,255,.7);font-size:11px;line-height:1.75}
.world3d-head-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.world3d-head .status-pill{color:#d8fff6;border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.1)}
.world3d-stage{position:relative;height:min(76vh,760px);min-height:580px;overflow:hidden;isolation:isolate;background:linear-gradient(#8ecfe0 0 55%,#6b9d6a 55%);touch-action:none;user-select:none}
.world3d-stage::after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;box-shadow:inset 0 0 100px rgba(3,23,29,.3)}
.world3d-stage.time-night::after{background:linear-gradient(rgba(8,22,64,.18),rgba(3,17,37,.42));mix-blend-mode:multiply}
.world3d-stage.time-dusk::after{background:linear-gradient(120deg,rgba(252,150,82,.12),rgba(48,38,91,.15))}
.world3d-canvas{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;outline:0;cursor:grab}
.world3d-canvas:active{cursor:grabbing}
.world3d-loading{position:absolute;z-index:2;left:50%;top:50%;display:grid;place-items:center;gap:5px;color:#eafff8;text-align:center;transform:translate(-50%,-50%);transition:.45s ease}
.world3d-loading span{width:42px;height:42px;border:3px solid rgba(255,255,255,.25);border-top-color:#86e2cf;border-radius:50%;animation:world3dSpin .8s linear infinite}
.world3d-loading b{font-size:13px}.world3d-loading small{color:rgba(255,255,255,.6);font-size:9px}
.world3d-stage.is-ready .world3d-loading{visibility:hidden;opacity:0;transform:translate(-50%,-45%)}
.world3d-fallback{position:absolute;z-index:20;left:50%;top:50%;max-width:420px;padding:18px 22px;border:1px solid rgba(255,255,255,.28);border-radius:18px;color:#fff;background:rgba(9,36,41,.88);box-shadow:0 20px 50px rgba(0,0,0,.3);text-align:center;transform:translate(-50%,-50%);backdrop-filter:blur(14px)}
.world3d-hud{position:absolute;z-index:6;left:14px;top:14px;display:flex;gap:7px;pointer-events:none}
.world3d-hud>div{display:grid;gap:2px;min-width:110px;padding:9px 12px;border:1px solid rgba(255,255,255,.25);border-radius:13px;color:#fff;background:rgba(7,34,39,.7);box-shadow:0 8px 24px rgba(2,20,25,.18);backdrop-filter:blur(12px)}
.world3d-hud small{color:#8ee0d1;font-size:8px;letter-spacing:.08em}.world3d-hud b{font-size:11px}
.world3d-interact{position:absolute;z-index:8;left:50%;bottom:24px;display:grid;grid-template-columns:36px auto;gap:0 8px;align-items:center;min-width:190px;padding:9px 14px 9px 10px;border:1px solid rgba(255,255,255,.48);border-radius:17px;color:#173d38;background:rgba(248,255,248,.93);box-shadow:0 14px 35px rgba(2,27,30,.3);transform:translateX(-50%);backdrop-filter:blur(12px);cursor:pointer;animation:world3dPrompt 2s ease-in-out infinite}
.world3d-interact[hidden]{display:none}.world3d-interact span{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#dff3e9;font-size:18px}.world3d-interact b{font-size:11px;text-align:left}.world3d-interact small{color:#69817b;font-size:8px;text-align:left}
.world3d-minimap{position:absolute;z-index:7;right:14px;top:14px;width:170px;padding:9px;border:1px solid rgba(255,255,255,.38);border-radius:18px;color:#fff;background:rgba(7,34,39,.76);box-shadow:0 12px 34px rgba(2,22,28,.27);backdrop-filter:blur(13px)}
.world3d-minimap-title{display:flex;justify-content:space-between;align-items:end;margin:0 2px 7px}.world3d-minimap-title b{font-size:11px}.world3d-minimap-title small{color:#8ed9cd;font-size:7px;letter-spacing:.08em}
.world3d-minimap-field{position:relative;height:150px;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:12px;background:radial-gradient(circle at 51% 56%,#5dabc0 0 9%,transparent 10%),radial-gradient(ellipse at 50% 53%,#82a964 0 55%,#d4bd7e 56% 64%,#409bb5 65% 100%);box-shadow:inset 0 0 28px rgba(1,25,31,.28)}
.world3d-minimap-field::before{content:"";position:absolute;inset:10% 11%;border:2px dashed rgba(239,220,159,.55);border-radius:46% 54% 44% 57%;transform:rotate(-8deg)}
.world3d-minimap-field button{position:absolute;z-index:2;left:var(--mini-x);top:var(--mini-y);display:grid;place-items:center;width:23px;height:23px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:8px;color:#173832;background:rgba(248,255,248,.9);box-shadow:0 3px 8px rgba(3,30,34,.23);transform:translate(-50%,-50%);cursor:pointer}
.world3d-minimap-field button:hover,.world3d-minimap-field button:focus-visible{z-index:5;transform:translate(-50%,-50%) scale(1.2)}
.world3d-minimap-field button span{font-size:11px}.world3d-minimap-dot{position:absolute;z-index:6;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#ef6f55;box-shadow:0 0 0 4px rgba(239,111,85,.28);transform:translate(-50%,-50%);transition:left .12s linear,top .12s linear}
.world3d-dpad{position:absolute;z-index:8;left:18px;bottom:18px;display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(2,46px);gap:6px}
.world3d-dpad button{display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.43);border-radius:15px;color:#fff;background:rgba(7,35,40,.73);box-shadow:0 8px 22px rgba(1,22,28,.24);font-size:13px;backdrop-filter:blur(12px);cursor:pointer}
.world3d-dpad button:active{background:#5ea996;transform:scale(.93)}.world3d-dpad [data-world3d-direction="up"]{grid-column:2}.world3d-dpad [data-world3d-direction="left"]{grid-column:1;grid-row:2}.world3d-dpad [data-world3d-direction="down"]{grid-column:2;grid-row:2}.world3d-dpad [data-world3d-direction="right"]{grid-column:3;grid-row:2}
.world3d-camera{position:absolute;z-index:8;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;padding:7px 8px 7px 11px;border:1px solid rgba(255,255,255,.25);border-radius:14px;color:#fff;background:rgba(7,34,39,.7);box-shadow:0 8px 22px rgba(1,22,28,.2);backdrop-filter:blur(12px)}
.world3d-camera button{padding:7px 10px;border:1px solid rgba(255,255,255,.33);border-radius:10px;color:#fff;background:rgba(255,255,255,.1);font-size:9px;cursor:pointer}.world3d-camera small{color:rgba(255,255,255,.65);font-size:8px}
@keyframes world3dSpin{to{transform:rotate(360deg)}}@keyframes world3dPrompt{0%,100%{translate:0 0}50%{translate:0 -4px}}
@media(max-width:900px){.world3d-stage{height:680px}.world3d-hud>div:nth-child(3){display:none}.world3d-minimap{width:145px}.world3d-minimap-field{height:130px}.world3d-camera small{display:none}}
@media(max-width:760px){.world3d-head{padding:18px}.world3d-head h2{font-size:22px}.world3d-head-badges .status-pill:last-child{display:none}.world3d-stage{height:620px;min-height:540px}.world3d-hud{left:10px;top:10px}.world3d-hud>div{min-width:0;padding:8px 9px}.world3d-hud>div:nth-child(2){display:none}.world3d-minimap{right:10px;top:10px;width:118px;padding:7px}.world3d-minimap-title small{display:none}.world3d-minimap-field{height:106px}.world3d-minimap-field button{width:19px;height:19px;border-radius:6px}.world3d-minimap-field button span{font-size:9px}.world3d-dpad{left:12px;bottom:12px;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:5px}.world3d-camera{right:12px;bottom:12px}.world3d-interact{bottom:88px}}
@media(max-width:430px){.world3d-head-badges{display:none}.world3d-stage{height:560px;min-height:520px}.world3d-minimap{width:100px}.world3d-minimap-field{height:92px}.world3d-hud>div{padding:7px 9px}.world3d-dpad{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,38px)}.world3d-interact{min-width:170px}}
@media(prefers-reduced-motion:reduce){.world3d-loading span,.world3d-interact{animation:none!important}.world3d-minimap-dot{transition:none}}
