/* Walkable neighborhoods. All controls stay inside the game, with no automatic camera motion outside this view. */
.walkabout{--walk-accent:#a3c69b;--walk-ink:#44634d;margin:28px 0 34px;color:#233d30}.walk-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.walk-intro h2{font-size:clamp(27px,3.2vw,43px);letter-spacing:-1.5px;line-height:1.1;margin:8px 0}.walk-intro h2 em{font-family:Georgia,serif;color:var(--walk-ink);font-weight:400}.walk-intro p{font-size:14px;line-height:1.5;margin:0;color:#687769}.walk-collection{display:grid;grid-template-columns:auto auto;column-gap:9px;align-items:center;border-left:1px solid #d5dccb;padding-left:26px;flex-shrink:0}.walk-collection b{font-size:33px;letter-spacing:-2px;grid-row:1/3}.walk-collection span{font-size:9px;font-weight:800;letter-spacing:1px}.walk-collection small{font-size:11px;color:#6b7869}.walk-resident-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:15px}.walk-resident-row>span{font-size:11px;font-weight:700;margin-right:5px}.walk-resident-row button{display:flex;align-items:center;gap:6px;min-height:42px;padding:4px 12px 4px 5px;border:1px solid #d0d8c6;border-radius:30px;background:#f6f5e9;color:#4e6252;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer}.walk-resident-row button.active{border-color:var(--walk-ink);background:#e4ecda;box-shadow:0 0 0 1px var(--walk-ink)}.walk-resident-row .portrait{width:31px;height:31px;flex:0 0 31px}.walk-resident-row>small{margin-left:auto;color:#7d8878;font-size:10px}.walk-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;border:1px solid #cbd4c0;border-radius:23px;overflow:hidden;background:#f8f7ec;box-shadow:0 12px 35px #30472f0b}.walk-view-wrap{min-width:0;border-right:1px solid #cbd4c0}.walk-stage{height:clamp(390px,46vw,550px);position:relative;overflow:hidden;background:#a8c693;isolation:isolate;touch-action:manipulation;outline-offset:-4px}.walk-stage:focus-visible{outline:3px solid #ffe594}.walk-world{position:absolute;left:0;top:0;width:960px;height:680px;transform-origin:0 0;overflow:hidden;user-select:none;will-change:transform}.walk-scenery{position:absolute;inset:0;width:960px;height:680px;z-index:0}.walk-player,.walk-npc{position:absolute;width:82px;height:125px;transform:translate(-50%,-100%);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.walk-player:before,.walk-npc:before{content:'';position:absolute;width:56px;height:15px;border-radius:50%;bottom:-4px;background:#243e3329;z-index:-1}.walk-sprite{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 1px #293b2c26);pointer-events:none}.walk-player.face-left .walk-sprite{transform:scaleX(-1)}.walk-player.is-walking .walk-sprite{animation:walk-bob .32s infinite alternate ease-in-out}.walk-player.face-left.is-walking .walk-sprite{animation-name:walk-bob-left}.walk-name{position:absolute;bottom:-27px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#fffdef;font-size:11px;font-weight:700;background:#314c3bde;border:1px solid #fff9;border-radius:18px;padding:5px 8px;box-shadow:0 3px 8px #253b2820}.walk-name b{font-size:8px;color:#e1f6b3;border-left:1px solid #ffffff54;margin-left:4px;padding-left:5px}.walk-npc{background:none;border:0;padding:0;cursor:pointer;pointer-events:auto}.walk-npc .walk-sprite{transition:translate .2s}.walk-npc:hover .walk-sprite{translate:0 -3px}.walk-npc .walk-name{background:#f5efcf;color:#46624d}.walk-npc .walk-name b{color:#496850;border-color:#506b4d50}.walk-fallback{display:none;position:absolute;left:5px;bottom:0;width:72px;height:83px;border-radius:45% 45% 30% 30%;border:3px solid #f5e7ae;background-image:var(--face-image);background-repeat:no-repeat;background-size:calc(1024 / var(--face-w) * 72px) calc(1536 / var(--face-h) * 72px);background-position:calc(var(--face-x) / var(--face-w) * -72px) calc(var(--face-y) / var(--face-h) * -72px);box-shadow:0 5px 0 #51754e}.walk-fallback.show{display:block}.walk-object{position:absolute;transform:translate(-50%,-100%);z-index:550}.walk-object button{background:none;border:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0;cursor:pointer;color:#f8f0cf}.walk-object small{background:#44624a;white-space:nowrap;font-size:9px;font-weight:800;letter-spacing:1px;padding:6px 9px;border:2px solid #d9d5b5;border-radius:7px}.walk-gate{z-index:570}.walk-gate button>span{height:48px;width:47px;background:#91a072;border:4px solid #ece4c4;display:grid;place-items:center;font-size:27px;font-weight:800;border-radius:7px}.walk-cart button{width:90px;height:103px}.walk-cart-roof{position:absolute;top:7px;width:92px;height:24px;background:repeating-linear-gradient(90deg,#c2d588 0 16px,#f4e3b8 16px 31px);border:3px solid #7a875b;border-radius:9px 9px 3px 3px}.walk-cart-box{position:absolute;bottom:25px;width:76px;height:42px;border:4px solid #96805b;background:#c4ae7a;font-size:22px;color:#496444;display:grid;place-items:center}.walk-cart button>i{position:absolute;bottom:19px;left:14px;background:#6b7054;border:3px solid #d3bf8b;border-radius:50%;width:17px;height:17px}.walk-cart button>i+i{left:59px}.walk-cart small{position:absolute;bottom:0}.walk-arcade{z-index:290}.walk-arcade button{width:72px;height:106px;background:#655c80;border:4px solid #e1c896;border-radius:10px 10px 2px 2px;box-shadow:4px 5px #354d4426}.walk-arcade button>span{height:54px;width:46px;background:#a8c3aa;border:4px solid #433c62;color:#f9e6a9;display:grid;place-items:center;font-size:30px}.walk-arcade small{font-size:8px;padding:4px 5px;background:#8c819a;border:0}.walk-plant{position:absolute;width:162px;height:168px;padding:0;border:0;transform:translate(-50%,-100%);background:none;cursor:pointer;z-index:335;outline-offset:0;overflow:visible}.walk-plant:nth-of-type(n+4){z-index:500}.walk-plant svg{height:160px;width:160px;transition:filter .15s}.walk-plant:hover svg,.walk-plant.is-chosen svg{filter:drop-shadow(0 0 4px #fff7c9)}.walk-plant.is-chosen:after{content:'';position:absolute;bottom:5px;left:10px;width:140px;height:43px;border:3px dashed #f8edb0;border-radius:50%;z-index:-1}.walk-plot-number{position:absolute;bottom:10px;left:30px;font-size:10px;color:#f8efcf;line-height:18px;border-radius:50%;width:18px;height:18px;background:#567547a8}.walk-plant-badge{position:absolute;left:88px;bottom:15px;font-size:9px;letter-spacing:1px;background:#fff6ce;box-shadow:1px 2px #47604226;padding:4px 5px;border-radius:5px;line-height:1;min-width:14px;color:#45613e;font-weight:800}.walk-plant.ready .walk-plant-badge{background:#e5f4aa}.walk-plant.infested .walk-plant-badge{background:#e7d8ef}.walk-plant.locked{width:141px;height:74px;border:2px dashed #6c87565a;border-radius:50%;background:#8ba97830;transform:translate(-50%,-60%)}.walk-locked{font-size:33px;display:block;color:#f2e7b6;line-height:39px}.walk-plant.locked small{font-size:8px;letter-spacing:1px;color:#4b6840}.walk-plant.locked .walk-plant-badge{bottom:-14px;left:49px}.walk-destination{position:absolute;transform:translate(-50%,-65%);color:#fffbd7;font-size:36px;z-index:210;text-shadow:0 2px 6px #4e6a44;pointer-events:none}.walk-camera-note{position:absolute;top:13px;left:13px;font-size:10px;font-weight:700;letter-spacing:.5px;background:#fff8dfdd;color:#4d6852;padding:7px 10px;border-radius:20px;box-shadow:0 2px 5px #31513b10;pointer-events:none}.walk-nearby{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;background:#324e3fe6;color:#fff6d3;border-radius:20px;padding:8px 12px;white-space:nowrap;pointer-events:none}.walk-nearby:empty{display:none}.walk-controls{display:flex;gap:12px;align-items:center;padding:13px 16px;background:#f4f4e5;border-top:1px solid #d2dcc4}.walk-dpad{display:grid;grid-template-columns:35px 35px 35px;grid-template-rows:32px 32px;gap:3px;flex:0 0 111px;touch-action:none}.walk-dpad button{border:1px solid #b7c7a8;border-bottom-width:3px;background:#e4ebd7;border-radius:8px;font-size:19px;line-height:24px;font-weight:700;color:#526c4f;padding:0;cursor:pointer;touch-action:none}.walk-dpad button:active{background:#ccdcb7;translate:0 1px;border-bottom-width:1px}.walk-dpad button:first-child{grid-column:2}.walk-dpad button:nth-child(2){grid-column:1;grid-row:2}.walk-dpad button:nth-child(3){grid-column:2;grid-row:2}.walk-dpad button:nth-child(4){grid-column:3;grid-row:2}.walk-control-copy{flex:1}.walk-control-copy b{display:block;font-size:12px}.walk-control-copy span{display:block;font-size:10px;line-height:1.5;margin-top:3px;color:#7d8874}.walk-interact{border:1px solid #bdc9ab;border-radius:20px;background:#edf1dd;min-height:39px;font-size:10px;font-weight:700;color:#4f6748;padding:8px 13px;cursor:pointer}.walk-interact span{margin-left:6px}.walk-shortcuts{display:flex;align-items:center;gap:9px;padding:10px 16px;border-top:1px solid #e0e6d4;flex-wrap:wrap}.walk-shortcuts button{font-size:10px;font-weight:700;border:0;border-bottom:1px solid #a6b797;padding:3px 0;background:none;color:#607456;cursor:pointer}.walk-shortcuts>span{font-size:10px;color:#7b876d;margin-left:auto}.walk-panel{padding:23px 21px;min-height:420px}.walk-panel-head{display:flex;flex-direction:column;gap:6px}.walk-panel-head>span+span{font-size:9px;letter-spacing:1px;color:#8d927b}.walk-panel-plant{height:123px;margin:7px 0 9px;display:flex;justify-content:center}.walk-panel-plant svg{width:140px;height:140px;align-self:flex-end}.walk-panel-plant>span{font-size:72px;color:#93ab78}.walk-panel h3{font-size:25px;letter-spacing:-.8px;line-height:1.15;margin:7px 0 9px}.walk-panel p{font-size:12px;line-height:1.65;color:#78806c;margin:0 0 13px}.walk-growth-meter{height:5px;border-radius:5px;background:#e0e5cc;overflow:hidden;margin-top:15px}.walk-growth-meter i{display:block;height:100%;background:#91ad6f;border-radius:5px;transition:width 1s linear}.walk-timer{display:block;font-size:8px;letter-spacing:1px;font-weight:800;color:#889775;margin:7px 0 14px}.walk-care-actions{display:flex;flex-direction:column;gap:8px}.walk-panel button{font-family:inherit;font-size:11px;font-weight:700;color:#486044;min-height:42px;padding:9px 12px;border:1px solid #ccd7b8;border-radius:10px;background:#ecf0df;cursor:pointer}.walk-panel button:disabled{opacity:.4;cursor:default}.walk-panel button.main-action{background:#345841;color:#fff7d9;border-color:#345841}.walk-care-actions button{display:flex;justify-content:space-between;align-items:center;gap:7px;text-align:left}.walk-care-actions button>span{font-size:9px;font-weight:400}.walk-all-good,.walk-happy{font-size:10px;line-height:1.6;color:#8c957e}.walk-maturity{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:7px 0}.walk-maturity span{display:flex;gap:3px}.walk-maturity i{font-size:10px;font-style:normal;color:#d7ddc7}.walk-maturity i.done{color:#91aa75}.walk-maturity small{font-size:9px;color:#829171}.walk-panel-tip{border-top:1px solid #e0e5d2;margin-top:17px;padding-top:14px}.walk-panel-tip b{font-size:8px;letter-spacing:1px;display:block;margin-bottom:6px;color:#839074}.walk-panel-tip small{display:block;font-size:10px;line-height:1.7;color:#8a927d}.walk-panel-welcome{padding-top:10px}.walk-panel-icon{display:flex;align-items:center;justify-content:center;margin:0 0 25px;height:83px;width:83px;background:#e4ebd7;color:#829d65;border:1px dashed #b4c59b;border-radius:50%;font-size:50px}.walk-panel-welcome h3{font-size:29px;margin:12px 0}.walk-panel-welcome ol{margin:20px 0;padding-left:17px;color:#7d8a6f;font-size:11px;line-height:1.8}.walk-panel-welcome button{margin-top:8px;width:100%;display:flex;justify-content:space-between}.walk-note{font-size:11px;line-height:1.7;color:#8a917f;max-width:820px;margin:14px 0}.walk-conversation>.portrait{width:80px;height:80px;display:block;margin-bottom:24px}.walk-conversation blockquote{font-family:Georgia,serif;font-size:22px;line-height:1.4;margin:23px 0;color:#5e7755}.walk-conversation small{font-size:9px;color:#87977c;display:block;margin-bottom:25px}.district-garden-details{margin-top:25px;border-top:1px solid #dce2ce;padding-top:17px}.district-garden-details>summary{font-size:12px;font-weight:700;color:#728066;cursor:pointer}.district-garden-details .plots-grid{margin-top:20px}.walk-mission-summary{margin:28px 0;background:#f0f0df;border:1px solid #d8e0c7;border-radius:16px;padding:22px 25px;display:flex;align-items:center;gap:22px}.walk-mission-summary>span{height:48px;width:48px;flex-shrink:0;background:#ddd7e6;color:#7c6998;display:grid;place-items:center;border-radius:50%;font-size:29px}.walk-mission-summary>div{flex:1}.walk-mission-summary h3{font-size:20px;margin:5px 0;letter-spacing:-.5px}.walk-mission-summary p{font-size:12px;line-height:1.5;color:#89917a;margin:0}.walk-mission-summary .primary-button{font-size:11px;min-height:42px;white-space:nowrap}.walkabout button:focus-visible{outline:3px solid #dcbb68;outline-offset:3px}.walkabout .needs-water{filter:saturate(.55)}
@keyframes walk-bob{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}@keyframes walk-bob-left{from{transform:translateY(0) scaleX(-1) rotate(-2deg)}to{transform:translateY(-5px) scaleX(-1) rotate(2deg)}}
@media(min-width:1550px){.walk-layout{grid-template-columns:minmax(0,1fr) 300px}.walk-stage{height:590px}}
@media(max-width:1050px){.walk-layout{grid-template-columns:minmax(0,1fr) 235px}.walk-panel{padding:20px 17px}.walk-control-copy{display:none}.walk-interact{margin-left:auto}.walk-intro p{max-width:440px}.walk-shortcuts>span{width:100%;margin:0}}
@media(max-width:740px){.walkabout{margin-top:21px}.walk-intro{gap:14px;align-items:flex-start}.walk-intro h2{font-size:32px;letter-spacing:-1px}.walk-intro p{font-size:12px}.walk-collection{padding-left:12px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.walk-collection b{font-size:28px}.walk-collection span{font-size:7px}.walk-collection small{font-size:8px;max-width:80px;line-height:1.4}.walk-layout{display:flex;flex-direction:column;border-radius:17px}.walk-view-wrap{border:0}.walk-stage{height:425px}.walk-panel{min-height:0;padding:21px;border-top:1px solid #cbd4c0}.walk-panel-welcome{display:grid;grid-template-columns:65px 1fr;column-gap:18px;padding:0}.walk-panel-icon{grid-row:1/4;width:64px;height:64px;font-size:40px;margin:0}.walk-panel-welcome>.eyebrow{grid-column:2;font-size:8px}.walk-panel-welcome h3{font-size:24px;margin:8px 0;grid-column:2}.walk-panel-welcome h3 br{display:none}.walk-panel-welcome p{grid-column:2;margin-bottom:4px}.walk-panel-welcome ol{display:none}.walk-panel-welcome button{grid-column:2}.walk-resident-row{gap:6px}.walk-resident-row>small{width:100%;margin:2px 0 0;font-size:9px}.walk-resident-row>span{font-size:10px}.walk-resident-row button{font-size:10px;min-height:39px;padding-right:9px}.walk-resident-row .portrait{width:27px;height:27px;flex-basis:27px}.walk-panel-plant{float:right;width:95px;height:100px;margin:0}.walk-panel-plant svg{width:115px;height:115px}.walk-panel-head{max-width:66%}.walk-panel h3{font-size:25px;margin-top:11px}.walk-panel p{max-width:75%}.walk-panel-tip{clear:both}.walk-controls{padding:11px 13px}.walk-interact{min-height:44px;font-size:11px;padding:10px 15px}.walk-dpad{grid-template-columns:40px 40px 40px;grid-template-rows:36px 36px;flex-basis:126px}.walk-shortcuts>span{width:auto;margin-left:auto}.walk-shortcuts{padding:10px 13px;gap:12px}.walk-note{font-size:10px}.walk-mission-summary{padding:17px;gap:13px;flex-wrap:wrap}.walk-mission-summary>div{min-width:180px}.walk-mission-summary h3{font-size:18px}.walk-mission-summary>button{width:100%;justify-content:space-between}}
@media(max-width:380px){.walk-stage{height:390px}.walk-shortcuts>span{width:100%;margin:0}.walk-intro h2{font-size:28px}.walk-interact{font-size:10px;padding:9px 11px}.walk-nearby{font-size:9px;max-width:92%;text-overflow:ellipsis;overflow:hidden}.walk-panel{padding:18px}.walk-resident-row>span{width:100%}}
@media(prefers-reduced-motion:reduce){.walk-player .walk-sprite{animation:none!important}.walk-plant svg{transition:none}}
/* The app-wide pressed-button transform must not replace world-coordinate anchors.
   Otherwise a plant jumps away between pointerdown and pointerup and never clicks. */
.walk-plant:active,.walk-npc:active{transform:translate(-50%,-100%)}
.walk-plant.locked:active{transform:translate(-50%,-60%)}
.walk-plant>*,.walk-npc>*{pointer-events:none}
.district-pin:active{transform:translate(-50%,-50%)}
