/* Full-screen market and plaza share one world; all menus remain outside its input layer. */
.game-hud{display:none}
body.game-fullscreen{height:100dvh;overflow:hidden!important;overscroll-behavior:none}
body.game-fullscreen #demo-banner{display:none!important}
body.game-fullscreen .header{position:fixed!important;inset:0 0 auto!important;max-width:none!important;width:100%!important;height:65px!important;padding:8px 14px!important;display:flex!important;align-items:center;justify-content:space-between;background:linear-gradient(#faf8eeed,#faf8eea8);border:0!important;z-index:90;gap:10px}
body.game-fullscreen .header .brand{margin:0!important;flex:none}
body.game-fullscreen .header .brand>span:last-child{font-size:15px}
body.game-fullscreen .header .brand small{display:none}
body.game-fullscreen .header .brand-mark{width:36px;height:36px;font-size:27px}
body.game-fullscreen .header nav{display:none!important}
body.game-fullscreen .header #account{margin-left:auto;font-size:12px;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 12px}
body.game-fullscreen .header .notification-toggle{flex:none}
body.game-fullscreen #main{margin:0!important;padding:0!important;max-width:none!important;width:100%!important}
body.game-fullscreen #main>.hero,body.game-fullscreen .region-selector,body.game-fullscreen .region-panel,body.game-fullscreen .feature-strip,body.game-fullscreen footer,body.game-fullscreen .market-heading,body.game-fullscreen .market-session-controls,body.game-fullscreen .mobile-browse-tools,body.game-fullscreen .mode-switch,body.game-fullscreen .filters,body.game-fullscreen .market-bottom{display:none!important}
body.game-fullscreen .workspace,body.game-fullscreen .explore-grid,body.game-fullscreen .market-panel{display:block!important;margin:0!important;padding:0!important;max-width:none!important;min-height:0!important;height:auto!important}
body.game-fullscreen .explore-grid>aside,body.game-fullscreen .explore-grid>.region-picker{display:none!important}
body.game-fullscreen #market-content,body.game-fullscreen #plaza-content{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;min-height:0!important;max-height:none!important;border:0!important;border-radius:0!important;overflow:hidden;background:#e8efdc}
body.game-fullscreen .walk-viewport{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;border:0!important;border-radius:0!important;overflow:auto!important;scrollbar-width:none;overscroll-behavior:none;touch-action:none}
body.game-fullscreen .walk-viewport::-webkit-scrollbar{display:none}
body.game-fullscreen .walk-help,body.game-fullscreen .character-picker,body.game-fullscreen .walk-controls .dpad,body.game-fullscreen .walk-near>small,body.game-fullscreen .walk-near>strong{display:none!important}
body.game-fullscreen .game-hud{position:fixed;inset:73px 12px auto;display:flex;justify-content:space-between;gap:8px;z-index:70;pointer-events:none}
.game-hud>div{display:flex;gap:6px;flex-wrap:wrap;pointer-events:auto}
.game-hud button{min-height:38px;padding:8px 12px;background:#fffdf4ee;box-shadow:0 3px 10px #284e3d15;font-size:12px;border-radius:13px}
body.game-fullscreen #street-pagination{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);width:auto;display:flex!important;gap:10px;z-index:60;background:#fffdf4ed;border:1px solid #d2ddc4;border-radius:20px;padding:5px 10px;margin:0;font-size:11px;white-space:nowrap}
body.game-fullscreen #street-pagination button{font-size:11px;min-height:30px;padding:4px 8px}
body.game-fullscreen .animal-controls{position:fixed;top:121px;left:50%;transform:translateX(-50%);z-index:50;max-width:calc(100vw - 28px);width:max-content;border-radius:20px;background:#fffdf4ed;box-shadow:0 3px 10px #284e3d12;font-size:11px;padding:7px 13px;display:flex;gap:8px;flex-wrap:wrap}
body.game-fullscreen .walk-controls{position:static!important;display:block!important;padding:0!important;border:0!important;height:0!important;min-height:0!important}
body.game-fullscreen .walk-near #near-enter{position:fixed;bottom:62px;right:15px;z-index:65;min-height:44px;border-radius:16px;max-width:160px;white-space:normal}
body.game-fullscreen .walker-speech-form{display:none!important}
body.game-fullscreen.show-game-speech .walker-speech-form{position:fixed!important;left:50%!important;transform:translateX(-50%);bottom:100px!important;width:min(480px,calc(100vw - 32px))!important;background:#fffdf4;padding:10px;border-radius:16px;display:flex!important;z-index:85!important;box-shadow:0 8px 40px #284e3d30}
body.game-fullscreen .walker-speech-form input{min-width:0;flex:1}
body.game-fullscreen .floating-analog-joystick{top:auto!important;bottom:65px!important;left:15px!important;z-index:75!important;width:104px;height:104px}
body.game-fullscreen .mobile-shortcuts{display:block!important;position:fixed!important;z-index:1000!important}
body.game-fullscreen .community-toggle{z-index:1000!important}
body.game-fullscreen .community-panel{z-index:1100!important}
body.game-fullscreen #mobile-shortcut-panel{max-height:calc(100dvh - 130px);overflow:auto;min-width:220px}
body.game-fullscreen .market-empty,body.game-fullscreen #market-content>.loading,body.game-fullscreen #market-content>.error-box{margin:175px 20px 20px;min-height:200px}
body[data-view="plaza"] #near-enter{display:none!important}
.plaza-terrain{position:absolute;inset:0;pointer-events:none;overflow:hidden;color:#355c4c}
.plaza-square{position:absolute;inset:150px 170px 90px;border-radius:45%;background:repeating-linear-gradient(90deg,#ece3c940 0 44px,#c9c3a838 45px 46px),repeating-linear-gradient(0deg,#e5dabe 0 44px,#d1c6aa 45px 46px);border:12px solid #b7c49f}
.plaza-stage{position:absolute;left:455px;top:130px;width:410px;height:200px;border:12px solid #c4aa85;border-bottom-width:24px;border-radius:90px 90px 12px 12px;background:repeating-linear-gradient(90deg,#ccba99 0 38px,#bdab8d 39px 41px);box-shadow:0 15px 0 #a68e73,0 20px 0 #c3b28d;text-align:center;padding:24px;color:#315444}
.plaza-stage:before,.plaza-stage:after{content:'♫';position:absolute;bottom:25px;font-size:45px;color:#6c7f68}
.plaza-stage:before{left:20px}.plaza-stage:after{right:20px}
.plaza-stage span{display:block;letter-spacing:5px;background:#456a59;color:#fff4d1;margin:-25px -10px 15px;padding:12px;border-radius:25px 25px 8px 8px}
.plaza-stage strong{font-size:18px}.plaza-stage i{display:block;width:250px;height:70px;border:2px dashed #f9efcf80;border-radius:50%;margin:20px auto}
.plaza-tree{position:absolute;left:135px;top:325px;width:250px;height:200px;text-align:center}
.plaza-crown{font-size:155px;line-height:1.1;filter:drop-shadow(0 10px 0 #34553d18)}
.plaza-tree>span{display:block;background:#fff8df;width:max-content;padding:5px 14px;border-radius:20px;margin:auto;font-size:13px}
.plaza-flowers{position:absolute;inset:10px 25px auto;font-size:31px;line-height:1.8;transform:rotate(-10deg)}
.plaza-tree.bloomed .plaza-flowers{animation:plaza-bloom 1s ease-out}
.plaza-pond{position:absolute;left:900px;top:330px;width:310px;height:210px;border-radius:48% 42% 40% 55%;border:15px solid #a8baa3;box-shadow:0 0 0 6px #e4dcc0;background:radial-gradient(ellipse at 45% 40%,#9bcbd0,#5b99a7);padding:35px;color:#2c5864;text-align:center}
.plaza-pond span{position:absolute;bottom:-32px;left:75px;border-radius:20px;background:#fff8df;padding:6px 12px;font-size:13px}
.plaza-pond i{position:absolute;opacity:.6;font-style:normal;font-size:48px;color:#c2e1d8}.plaza-pond i:nth-of-type(1){top:20px;left:50px}.plaza-pond i:nth-of-type(2){top:90px;left:100px}.plaza-pond i:nth-of-type(3){top:50px;right:30px}
.plaza-bench{position:absolute;top:640px;font-size:60px}.plaza-bench.left{left:400px}.plaza-bench.right{right:400px}
.plaza-path{position:absolute;left:0;right:0;top:720px;text-align:center;letter-spacing:5px;font-size:14px;opacity:.65}
.plaza-dock{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:70;background:#fffdf4ed;border:1px solid #d1dcc4;border-radius:18px;padding:9px 12px;width:max-content;max-width:calc(100vw - 24px);box-shadow:0 5px 25px #284e3d19}
.plaza-summary{font-size:11px;text-align:center;margin-bottom:7px;color:#456453}
.plaza-dock-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.plaza-dock button{padding:8px 12px;font-size:12px;min-height:38px}
.plaza-dance-list{display:grid;gap:10px}.plaza-dance-list button{display:flex;justify-content:space-between;padding:14px}.plaza-dance-list small{opacity:.7}
.plaza-match{padding:14px;border:1px solid #d5dfca;border-radius:14px;margin:12px 0}.plaza-match button{margin:4px}.plaza-invite{display:block;width:100%;margin:8px 0}
.plaza-watering:after{content:'🚿 💦';position:absolute;left:28px;top:8px;width:80px;pointer-events:none;animation:plaza-water .7s ease-in-out infinite;font-size:26px}
.plaza-casting:after,.plaza-reeling:after{content:'🎣';position:absolute;left:25px;top:-10px;font-size:50px;transform-origin:0 100%;pointer-events:none}
.plaza-casting:after{animation:plaza-cast .8s ease-out}.plaza-reeling:after{animation:plaza-reel .7s ease-in-out 2}
.fishing-illustration{height:180px;position:relative;overflow:hidden;background:linear-gradient(#f1efdf 50%,#91c4c9 50%);border-radius:18px}
.fish-angler{position:absolute;left:20%;top:15%;font-size:65px;animation:plaza-cast .8s ease-out}.fish-silhouette{position:absolute;right:12%;bottom:18%;font-size:calc(22px * var(--fish-size));filter:drop-shadow(0 5px 2px #315c6422)}
.fishing-meter{position:relative;height:33px;background:linear-gradient(90deg,#cf7c6b 0 40%,#75a575 40% 60%,#cf7c6b 60%);border-radius:12px;margin:24px 4px;overflow:visible}
.fishing-meter>i{position:absolute;top:-6px;bottom:-6px;width:5px;background:#254c42;border:1px solid #fffdf1;border-radius:4px;transform:translateX(-50%)}
.fishing-meter:after{content:'成功區';position:absolute;inset:8px 40% auto;text-align:center;font-size:11px;color:#173e27;white-space:nowrap}
.fishing-reel{width:100%;min-height:52px}.fish-result{font-size:28px;text-align:center;padding:35px 0}
@keyframes plaza-bounce{0%,100%{transform:translateY(0)}25%{transform:translate(-6px,-10px) rotate(-5deg)}75%{transform:translate(6px,-10px) rotate(5deg)}}
@keyframes plaza-sway{0%,100%{transform:rotate(0)}25%{transform:rotate(-18deg)}75%{transform:rotate(18deg)}}
@keyframes plaza-twirl{0%,100%{transform:scaleX(1)}25%,75%{transform:scaleX(.25)}50%{transform:scaleX(-1) translateY(-8px)}}
@keyframes plaza-slide{0%,100%{transform:translateX(0)}25%{transform:translateX(-22px) rotate(-8deg)}75%{transform:translateX(22px) rotate(8deg)}}
@keyframes plaza-hop{0%,50%,100%{transform:translateY(0) rotate(0)}20%{transform:translateY(-23px) rotate(-12deg)}70%{transform:translateY(-23px) rotate(12deg)}}
@keyframes plaza-water{50%{transform:rotate(15deg) translateY(5px)}}
@keyframes plaza-bloom{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}
@keyframes plaza-cast{0%{transform:rotate(-80deg)}70%{transform:rotate(22deg)}100%{transform:rotate(0)}}
@keyframes plaza-reel{50%{transform:rotate(-35deg) translateY(-8px)}}
@media(max-width:700px){body.game-fullscreen .header{height:57px!important;padding:6px 10px!important}body.game-fullscreen .header .brand>span:last-child{display:none}body.game-fullscreen .header #account{max-width:145px}.game-hud .game-location{max-width:48%}.game-hud .game-tools{max-width:50%;justify-content:flex-end}body.game-fullscreen .game-hud{top:62px;inset-inline:8px}.game-hud button{min-height:34px;font-size:11px;padding:7px 9px}body.game-fullscreen .animal-controls{top:144px;width:max-content;max-width:calc(100vw - 18px);padding:6px 10px;gap:5px}body.game-fullscreen #street-pagination{bottom:10px;max-width:calc(100vw - 20px);gap:5px;font-size:10px}body.game-fullscreen #street-pagination button{font-size:10px;padding:4px}body.game-fullscreen .walk-near #near-enter{bottom:62px;right:12px;font-size:12px;max-width:130px}body.game-fullscreen .floating-analog-joystick{width:94px;height:94px;bottom:64px!important;left:12px!important}.plaza-dock{bottom:10px;padding:7px 9px;width:calc(100vw - 20px)}.plaza-dock button{padding:6px 8px;font-size:11px;min-height:36px}.plaza-summary{font-size:10px}body[data-view="plaza"] .floating-analog-joystick{bottom:120px!important}body.game-fullscreen.show-game-speech .walker-speech-form{bottom:120px!important}}
@media(prefers-reduced-motion:reduce){[data-dance]>svg,.plaza-watering:after,.plaza-casting:after,.plaza-reeling:after,.fish-angler,.plaza-flowers{animation:none!important}}
body.game-fullscreen .mobile-shortcuts{right:14px;bottom:20px;left:auto;top:auto}
body.game-fullscreen #mobile-menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:54px;height:57px;background:#315b48;color:#fffdf1;border:1px solid #fffdf1;border-radius:15px;box-shadow:0 4px 15px #23453330;font-size:23px}
body.game-fullscreen #mobile-menu-toggle span{font-size:11px}
body.game-fullscreen #mobile-shortcut-panel{position:absolute;right:0;bottom:68px;width:220px;padding:9px;display:grid;gap:5px;background:#fffef9;border:1px solid #dce2d0;border-radius:14px;box-shadow:0 8px 28px #23453325}
body.game-fullscreen #mobile-shortcut-panel[hidden]{display:none!important}
body.game-fullscreen #mobile-shortcut-panel button{min-height:42px;text-align:left;padding:9px 12px;border:0;border-radius:8px;background:#f1f4e9;font-size:13px}
body.game-fullscreen .header>.community-toggle{position:fixed;bottom:18px;left:14px;right:auto;top:auto;margin:0;min-height:38px;font-size:12px;box-shadow:0 4px 15px #23453325}
body.game-fullscreen .header>#account{margin-left:0!important;order:3}
body.game-fullscreen .header>.notification-toggle{margin-left:auto;order:2}
.plaza-terrain{z-index:1}
body[data-view="plaza"] .walk-player,body[data-view="plaza"] .walk-peers{z-index:5}
body[data-view="plaza"] .walk-world{background:var(--scene-grass,#e8efdc)}
@media(max-width:700px){body.game-fullscreen .mobile-shortcuts{bottom:14px;right:12px}body.game-fullscreen .header>.community-toggle{bottom:14px;left:12px;font-size:11px;min-height:35px}body[data-view="plaza"] .plaza-dock{bottom:75px}body[data-view="plaza"] .floating-analog-joystick{bottom:180px!important}}
.plaza-stage-fx{position:absolute;inset:-80px -55px -30px;pointer-events:none;z-index:3;overflow:hidden;border-radius:75px}
.plaza-stage-fx span{position:absolute;left:calc(5% + var(--particle) * 5%);top:5%;opacity:0;pointer-events:none}
.plaza-stage-fx[data-effect="stars"] span:after{content:'✦';color:#fff5af;font-size:30px;text-shadow:0 0 15px #ffeda9}
.plaza-stage-fx[data-effect="stars"] span{top:calc(10% + var(--row) * 20%);animation:stage-star 2s ease-in-out 5;animation-delay:calc(var(--effect-delay,0ms) + var(--particle) * -110ms)}
.plaza-stage-fx[data-effect="fireflies"] span{width:9px;height:9px;border-radius:50%;background:#f7ef8b;box-shadow:0 0 18px 7px #eef59755;top:50%;animation:stage-firefly 2.5s ease-in-out 4;animation-delay:calc(var(--effect-delay,0ms) + var(--particle) * -130ms)}
.plaza-stage-fx[data-effect="petals"] span:after{content:'🌸';font-size:23px}
.plaza-stage-fx[data-effect="petals"] span{animation:stage-fall 2s ease-in-out 5;animation-delay:calc(var(--effect-delay,0ms) + var(--particle) * -100ms)}
.plaza-stage-fx[data-effect="confetti"] span{width:9px;height:17px;background:hsl(calc(var(--particle) * 31) 70% 74%);animation:stage-confetti 1.6s linear 7;animation-delay:calc(var(--effect-delay,0ms) + var(--particle) * -80ms)}
.plaza-stage-fx[data-effect="beams"]{background:conic-gradient(from 185deg at 50% 100%,transparent 0 14deg,#d9c0ff55 16deg 28deg,transparent 30deg 42deg,#ffe89766 44deg 58deg,transparent 60deg 80deg,#addbe966 82deg 96deg,transparent 98deg);animation:stage-beams 2s ease-in-out 5;animation-delay:var(--effect-delay,0ms);transform-origin:50% 100%}
@keyframes stage-star{0%,100%{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(70deg)}}
@keyframes stage-firefly{0%,100%{opacity:0;transform:translate(-15px,30px)}35%,65%{opacity:1;transform:translate(20px,-45px)}}
@keyframes stage-fall{0%{opacity:0;transform:translate(-30px,-15px) rotate(0)}20%,80%{opacity:1}100%{opacity:0;transform:translate(30px,240px) rotate(150deg)}}
@keyframes stage-confetti{0%{opacity:0;transform:translateY(-10px) rotate(0)}15%,80%{opacity:1}100%{opacity:0;transform:translateY(270px) rotate(360deg)}}
@keyframes stage-beams{0%,100%{opacity:.35;transform:rotate(-12deg)}50%{opacity:1;transform:rotate(12deg)}}
@media(prefers-reduced-motion:reduce){.plaza-stage-fx[data-effect] span{animation:none!important;opacity:.8;top:calc(15% + var(--row) * 18%)}.plaza-stage-fx[data-effect="beams"]{animation:none!important}}
body.game-fullscreen .game-hud{align-items:flex-start}
.game-hud .game-tools{align-items:flex-start}
.game-hud button{white-space:nowrap}
.friend-person-heading .friend-avatar{width:108px;height:125px}
.friend-person-heading .friend-avatar>svg{width:100px;height:115px}
.friend-row .friend-avatar{width:68px;height:82px;flex-basis:68px}
.friend-row .friend-avatar>svg{width:62px;height:76px}
/* v96: one compact toolbar, explicit edge travel, and a bounded shortcut menu. */
body.game-fullscreen .game-hud{position:fixed;top:12px;left:180px;right:270px;bottom:auto;display:flex;align-items:center;justify-content:flex-start;gap:16px;z-index:95}
body.game-fullscreen .game-hud>div{flex-wrap:nowrap;align-items:center;gap:6px}
body.game-fullscreen .game-hud button{font-size:12px;min-height:38px;padding:8px 11px;white-space:nowrap;background:#fffdf4}
body.game-fullscreen .game-hud .game-tools{margin-left:auto}
body.game-fullscreen .animal-controls{top:77px;max-width:calc(100vw - 36px);padding:7px 13px;box-shadow:0 4px 16px #172f2815}
body.game-fullscreen .walk-stage{background:var(--scene-grass,#344f50)}
body.game-fullscreen #market-content{background:var(--scene-grass,#344f50)}
body.game-fullscreen #street-pagination{font-size:11px;gap:7px;padding:4px 9px;z-index:65}
.pager-arrow{font-size:18px;vertical-align:middle;margin:0 4px}
.street-edge-prompt{position:fixed;bottom:76px;left:50%;transform:translateX(-50%);z-index:85;background:#fffdf4;border:1px solid #c4d3b8;border-radius:18px;padding:6px;box-shadow:0 6px 25px #203f3525;max-width:calc(100vw - 30px)}
.street-edge-prompt[hidden]{display:none!important}
.street-edge-prompt button{padding:12px 22px;min-height:46px;border-radius:13px;font-size:14px;white-space:nowrap}
body.game-fullscreen #mobile-shortcut-panel{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px;min-width:0;width:340px;max-width:calc(100vw - 24px);max-height:min(480px,calc(100dvh - 180px));background:#fffdf4;z-index:1100}
body.game-fullscreen #mobile-shortcut-panel .shortcut-close{grid-column:1/-1;background:transparent;text-align:right;min-height:32px;padding:3px 6px;font-size:12px}
body.game-fullscreen #mobile-shortcut-panel button{display:flex;align-items:center;min-height:48px;padding:9px 11px;font-size:12px;line-height:1.4;white-space:normal}
body.game-fullscreen #mobile-shortcut-panel [data-login]{display:none}
.quick-list,.quick-speech{display:none}
body.game-fullscreen #mobile-shortcut-panel .quick-speech{display:flex}
body.game-fullscreen[data-view="explore"] #mobile-shortcut-panel .quick-list{display:flex}
body.game-fullscreen .walker-bubble{max-width:150px}
@media(min-width:701px) and (max-width:1150px){body.game-fullscreen .game-hud{left:145px;right:225px;gap:8px}body.game-fullscreen .game-hud button{font-size:11px;padding:7px 9px}body.game-fullscreen .game-hud .game-personal-action,body.game-fullscreen .game-hud [data-game-speech],body.game-fullscreen .game-hud [data-mode]{display:none}body.game-fullscreen .header #account{max-width:135px}}
@media(max-width:700px){
 body.game-fullscreen .header{height:56px!important;background:#faf8eef5;box-shadow:0 1px 0 #45624b18;gap:7px!important}
 body.game-fullscreen .header #account{max-width:143px!important}
 body.game-fullscreen .game-hud{top:64px;left:10px;right:10px;bottom:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:start;z-index:80}
 body.game-fullscreen .game-hud .game-location,body.game-fullscreen .game-hud .game-tools{display:contents;margin:0;max-width:none}
 body.game-fullscreen .game-hud .game-desktop-action{display:none!important}
 body.game-fullscreen .game-hud button{width:100%;min-width:0;min-height:36px;padding:7px 5px;font-size:11px;overflow:hidden;text-overflow:ellipsis;border-radius:11px;background:#fffdf4f5}
 body.game-fullscreen .animal-controls{top:109px;left:12px;right:12px;transform:none;width:auto;max-width:none;padding:6px 10px;gap:5px;align-items:center;border-radius:13px;font-size:11px;min-height:31px}
 body.game-fullscreen .animal-controls>span{flex:1 1 155px;font-size:11px;min-width:0}
 body.game-fullscreen .animal-controls .animal-find{font-size:11px;min-height:26px;padding:3px 4px;white-space:nowrap}
 body.game-fullscreen .animal-countdown{font-size:10px;padding:3px 5px;flex:none}
 body.game-fullscreen #street-pagination{max-width:calc(100vw - 146px);bottom:14px;gap:3px;border-radius:15px;padding:3px 5px;background:#fffdf4ee;font-size:10px}
 body.game-fullscreen #street-pagination .pager-label{display:none}
 body.game-fullscreen #street-pagination>span{white-space:nowrap;font-size:10px}
 body.game-fullscreen #street-pagination button{padding:0;min-height:32px;min-width:30px;border:0;background:transparent}
 body.game-fullscreen #street-pagination .pager-arrow{margin:0;font-size:22px}
 body.game-fullscreen .community-toggle{font-size:11px;max-width:155px;min-height:36px}
 body.game-fullscreen .street-edge-prompt{bottom:67px;left:50%;z-index:90}
 body.game-fullscreen .street-edge-prompt button{font-size:13px;padding:10px 16px;min-height:44px}
 body.game-fullscreen #mobile-shortcut-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:min(480px,calc(100dvh - 180px));border-radius:18px}
 body.game-fullscreen #mobile-shortcut-panel button{font-size:12px;min-height:47px}
 body.game-fullscreen.show-game-speech .walker-speech-form{bottom:112px!important;z-index:95!important}
}
/* 花光庭園：保留共享座標，擴充步道與細節。 */
.plaza-square{inset:115px 65px 70px;border-radius:170px;border:10px solid #b5bd94;background:radial-gradient(circle at 50% 45%,#fff9e5aa,transparent 65%),repeating-linear-gradient(90deg,transparent 0 63px,#c5bda337 64px 65px),repeating-linear-gradient(0deg,#e6dcc0 0 63px,#cfc3a4 64px 65px);box-shadow:0 0 0 8px #536e5930,inset 0 0 50px #b7ad8b55}
.plaza-stage{left:400px;top:110px;width:520px;height:230px;border-radius:100px 100px 16px 16px;border-color:#bba580;background:repeating-linear-gradient(90deg,#d4c09c 0 32px,#bcaa8844 33px 35px);box-shadow:0 12px #9c8768,0 23px #cab994,0 28px 18px #223f3928}
.plaza-stage>span{background:linear-gradient(100deg,#3b6155,#5f8070,#3b6155);border:2px solid #c9be88;box-shadow:0 4px 12px #34534430;letter-spacing:6px;font-size:15px}
.plaza-stage>strong{font-size:15px;letter-spacing:2px;color:#5e6b54}.plaza-stage>i{border-color:#f7edcd;width:300px;height:80px;background:radial-gradient(ellipse,#f5e6b740,transparent 70%)}
.plaza-stage:before,.plaza-stage:after{content:'';width:28px;height:65px;background:radial-gradient(circle at 50% 32%,#82918a 0 8px,#334c46 9px 12px,transparent 13px),radial-gradient(circle at 50% 76%,#82918a 0 10px,#334c46 11px 14px,transparent 15px),#3e5550;border-radius:6px;bottom:22px;box-shadow:2px 4px 0 #293e3930}
.plaza-tree{top:310px;left:110px;width:300px;height:240px}.plaza-crown{width:270px;height:240px;margin:auto;font-size:0}.plaza-crown svg{width:100%;height:100%;overflow:visible}.tree-trunk,.tree-leaves{transform-origin:120px 222px;transition:transform 2s cubic-bezier(.2,.65,.3,1),opacity 1.8s,fill 2s}.tree-blossoms{opacity:0;transform-origin:120px 110px;transform:scale(.1);transition:opacity 2.5s,transform 3s cubic-bezier(.2,.9,.3,1)}
[data-growth="0"] .tree-trunk{transform:scale(.25,.28)}[data-growth="0"] .tree-leaves{transform:scale(.22,.2)}[data-growth="1"] .tree-trunk{transform:scale(.45,.55)}[data-growth="1"] .tree-leaves{transform:scale(.42,.4)}[data-growth="2"] .tree-trunk{transform:scale(.72,.8)}[data-growth="2"] .tree-leaves{transform:scale(.72,.7)}[data-growth="4"] .tree-blossoms{opacity:1;transform:scale(1)}.plaza-flowers{display:none!important}
.plaza-pond{left:870px;top:325px;width:375px;height:245px;border:18px solid #a4b79f;box-shadow:0 0 0 7px #f2e6c8,0 10px 0 #82967f55,inset 0 0 24px #426f8044;background:repeating-radial-gradient(ellipse at 35% 40%,#88bec2 0 24px,#a3ced033 25px 27px,#88bec2 28px 50px)}
.plaza-pond:after{content:'';position:absolute;left:12px;top:45px;width:46px;height:30px;background:#69966e;border-radius:50%;box-shadow:35px 80px #7da77e,215px 100px #69966e}.plaza-pond i{animation:garden-ripples 5s ease-in-out infinite}.plaza-pond i:nth-of-type(2){animation-delay:-2s}
.garden-plant{position:absolute;width:105px;height:70px;border-radius:50%;background:radial-gradient(ellipse,#7f9c6d 0 48%,#9bb487 49% 65%,transparent 66%);color:#f0c8b5;font-size:55px;line-height:65px;text-align:center;box-shadow:0 8px 0 #36554218}
.garden-fountain{position:absolute;left:545px;top:940px;width:235px;height:170px;border:16px solid #b2baa2;border-radius:50%;background:repeating-radial-gradient(ellipse,#92c6c5 0 18px,#bce0cf 20px,#92c6c5 23px 34px);box-shadow:0 8px #879882,0 12px 0 #d7d1b5;color:#e5f3df;text-align:center;font-size:90px}.garden-fountain small{display:block;font-size:13px;letter-spacing:5px;color:#496d5d;margin-top:20px}
.garden-lamp{position:absolute;top:600px;width:8px;height:140px;background:#657967;border-radius:5px;box-shadow:2px 3px #314d4220}.garden-lamp:before{content:'';position:absolute;left:-14px;top:-23px;width:36px;height:45px;border:5px solid #718471;border-radius:15px 15px 8px 8px;background:#f8e4a4;box-shadow:0 0 45px 17px #f5df8f30}.lamp-a{left:165px}.lamp-b{left:1150px}.garden-seat{position:absolute;top:770px;width:125px;height:48px;border:8px solid #6c826b;border-top:14px double #6c826b;background:repeating-linear-gradient(#bfa581 0 8px,#e0c39d 9px 12px);border-radius:6px;box-shadow:0 12px 0 -4px #56735e}.seat-a{left:315px;transform:rotate(12deg)}.seat-b{right:315px;transform:rotate(-12deg)}.plaza-path{top:1220px;font-size:16px}.plaza-bench{display:none}
.plaza-dock{bottom:22px;width:340px;max-width:calc(100vw - 150px);padding:12px 16px;border:1px solid #d5ddc5;background:#fffdf3f5;box-shadow:0 6px 24px #203f3b20;transition:opacity .2s,transform .2s}.plaza-dock-actions{display:none}.plaza-dock.has-near .plaza-dock-actions{display:flex}.plaza-near-title{width:100%;font-size:15px;text-align:center}.plaza-summary{line-height:1.5;margin:0}.plaza-dock.has-near .plaza-summary{margin-bottom:8px}.plaza-dock:has(.plaza-dock-actions button:focus-visible){outline:2px solid #789d79}
/* 整段特效 10 秒：漸入、展開、收束；粒子也有自己的生命週期。 */
.plaza-stage-fx[data-effect]:not([data-effect=""]){animation:garden-show 10s ease-in-out both;animation-delay:var(--effect-delay,0ms);overflow:visible}
.plaza-stage-fx[data-effect]:not([data-effect=""]) span{margin:0;padding:0;border:0;letter-spacing:0;border-radius:50%;box-shadow:0 0 12px currentColor;animation:garden-particle 3s ease-in-out infinite;animation-delay:calc(var(--particle)*-.19s + var(--effect-delay,0ms));background:radial-gradient(circle,#fff8df 0 18%,currentColor 25%,transparent 72%);opacity:0}
.plaza-stage-fx[data-effect="beams"] span{border-radius:80% 80% 0 0;mix-blend-mode:screen;animation:garden-beam 4s ease-in-out infinite;animation-delay:calc(var(--particle)*-.23s + var(--effect-delay,0ms));background:linear-gradient(0deg,currentColor,transparent);box-shadow:none;transform-origin:50% 100%}
.plaza-stage-fx[data-effect="confetti"] span{border-radius:2px;box-shadow:none;background:currentColor;animation-name:garden-fall}.plaza-stage-fx[data-effect="petals"] span{border-radius:80% 0 80% 20%;background:linear-gradient(135deg,#ffe9dc,#dea6b1);box-shadow:none;animation-name:garden-fall}.plaza-stage-fx[data-effect="fireflies"] span{filter:blur(.7px);animation-duration:4s}
@keyframes garden-show{0%{opacity:0;filter:brightness(.6);transform:scale(.75)}15%{opacity:1;filter:brightness(1);transform:scale(1)}80%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(1.12)}}
@keyframes garden-particle{0%,100%{opacity:0;transform:translateY(22px) scale(.15)}35%{opacity:.85;transform:translateY(-20px) scale(1)}70%{opacity:.55;transform:translate(12px,-45px) scale(.6)}}
@keyframes garden-beam{0%,100%{opacity:0;transform:rotate(-25deg) scaleY(.3)}40%{opacity:.3;transform:rotate(8deg) scaleY(1)}70%{opacity:.15;transform:rotate(25deg) scaleY(.85)}}
@keyframes garden-fall{0%{opacity:0;transform:translate(-15px,-80px) rotate(0) scale(.3)}20%{opacity:.9}75%{opacity:.75}100%{opacity:0;transform:translate(35px,70px) rotate(210deg) scale(.8)}}
@keyframes garden-ripples{50%{opacity:.25;transform:translateX(8px) scale(1.08)}}
@media(max-width:700px){.plaza-dock{bottom:22px;padding:10px;max-width:calc(100vw - 150px);left:calc(50% + 12px);font-size:11px}.plaza-near-title{font-size:13px}.plaza-dock button{min-height:36px}body[data-view="plaza"] .floating-analog-joystick{bottom:70px!important}}
@media(prefers-reduced-motion:reduce){.plaza-stage-fx,.plaza-stage-fx span,.plaza-pond i{animation:none!important}.tree-trunk,.tree-leaves,.tree-blossoms{transition:none}.plaza-stage-fx[data-effect]:not([data-effect=""]) span{opacity:.6}}
.plaza-stage-fx span{display:block!important;margin:0!important;padding:0!important;border:0!important;background:none;opacity:0;width:12px;height:12px;letter-spacing:0;box-shadow:none}
.plaza-stage-fx[data-effect]:not([data-effect=""]) span{color:hsl(calc(35 + var(--particle)*21) 65% 80%)}
.plaza-stage-fx[data-effect="beams"]:not([data-effect=""]) span{width:35px;height:230px;top:0;animation-name:garden-beam;animation-duration:4s;background:linear-gradient(0deg,currentColor,transparent);border-radius:80% 80% 0 0;box-shadow:none}
.plaza-stage-fx[data-effect="petals"]:not([data-effect=""]) span,.plaza-stage-fx[data-effect="confetti"]:not([data-effect=""]) span{animation-name:garden-fall;background:currentColor;box-shadow:none}
.plaza-stage-fx[data-effect="petals"] span:after{content:none}.plaza-stage-fx[data-effect="petals"]:not([data-effect=""]) span{border-radius:90% 5% 80% 20%;color:#f0b5c1}
.plaza-stage-fx[data-effect="fireflies"]:not([data-effect=""]) span{color:#e5ee9b;animation-duration:4s}
.garden-plant:nth-of-type(7),.garden-plant:nth-of-type(8){opacity:.8}
/* 常駐發話列：和搖桿、分頁、浮動選單使用不同區域。 */
body.game-fullscreen .walker-speech-form,body.game-fullscreen.show-game-speech .walker-speech-form{position:fixed!important;display:flex!important;left:50%!important;bottom:12px!important;transform:translateX(-50%);width:min(460px,calc(100vw - 160px))!important;min-height:44px;padding:5px!important;gap:5px;background:#fffdf4f5;border:1px solid #d6dfcd;border-radius:14px;z-index:80!important;box-shadow:0 4px 20px #284e3d20}
body.game-fullscreen .walker-speech-form input{min-width:0!important;flex:1;font-size:14px;padding:8px!important;border:0;background:transparent}
body.game-fullscreen .walker-speech-form button{flex:none;font-size:12px;min-height:34px;padding:5px 9px}
body.game-fullscreen #street-pagination{bottom:70px!important}
body.game-fullscreen .street-edge-prompt{bottom:118px}
body[data-view="plaza"] .plaza-dock{bottom:95px}
@media(max-width:700px){body.game-fullscreen .walker-speech-form,body.game-fullscreen.show-game-speech .walker-speech-form{bottom:12px!important;left:10px!important;transform:none;width:calc(100vw - 84px)!important}body.game-fullscreen .floating-analog-joystick,body[data-view="plaza"] .floating-analog-joystick{bottom:110px!important}body.game-fullscreen #street-pagination{bottom:65px!important;left:50%!important;max-width:calc(100vw - 30px)}body[data-view="plaza"] .plaza-dock{top:114px;bottom:auto;left:50%;max-width:calc(100vw - 26px);width:290px}body.game-fullscreen .game-hud:has([data-return-market]){grid-template-columns:1fr 1fr}}
/* v98：固定導覽順序；新增小店集中於我的小店。 */
.header{display:flex!important;align-items:center!important;gap:10px!important;max-width:none!important;width:100%!important;padding:8px 12px!important;min-height:64px!important;flex-wrap:nowrap!important}
.header .brand{flex:none!important}.header .brand>span:last-child{font-size:13px!important}.header .brand small{display:none!important}.header .brand-mark{width:34px!important;height:34px!important;font-size:25px!important}
.header-left,.header-market-tools,.header-right{display:flex!important;align-items:center;gap:5px;flex-wrap:nowrap!important;min-width:0}
.header-left{flex:none}.header .header-right,body.game-fullscreen .header nav.header-right{display:flex!important;margin-left:auto!important;gap:4px;flex:none}
.header button{font-size:11px!important;padding:8px 9px!important;min-height:34px;white-space:nowrap;border-radius:10px;border:1px solid #dce2d1;background:#fffdf4;color:#315b48}
.header [hidden]{display:none!important}.header-account-actions{display:flex!important;align-items:center;gap:5px!important;flex:none!important;margin-left:0!important}.header #account{max-width:125px!important;margin-left:0!important}.header .notifications-toggle{width:34px!important;padding:7px!important;flex:none}
.mobile-market-tools{display:none}#mobile-shortcut-panel .mobile-menu-item{display:none!important}#mobile-shortcut-panel [hidden]{display:none!important}body.game-fullscreen #mobile-shortcut-panel{grid-template-columns:1fr;width:240px}body.game-fullscreen #mobile-shortcut-panel .shortcut-close{grid-column:auto}
@media(min-width:701px) and (max-width:1250px){.header{gap:5px!important;padding:7px!important}.header .brand>span:last-child{display:none!important}.header button{font-size:10px!important;padding:7px 6px!important}.header-left,.header-market-tools{gap:3px}.header #account{max-width:85px!important}.header .header-right{gap:2px!important}}
@media(max-width:700px){.header,body.game-fullscreen .header{position:fixed!important;inset:0 0 auto!important;height:56px!important;min-height:56px!important;padding:6px 8px!important;gap:5px!important;z-index:90!important}.header .brand>span:last-child{display:none!important}.header .brand-mark{width:30px!important;height:30px!important;font-size:23px!important}.header-left{flex:1!important;gap:4px!important}.header-left>button{max-width:86px;overflow:hidden;text-overflow:ellipsis;font-size:11px!important;padding:6px!important}.header .header-market-tools,.header .header-right,body.game-fullscreen .header nav.header-right{display:none!important}.header-account-actions{gap:4px!important}.header #account{max-width:84px!important;font-size:10px!important;padding:6px!important}.header .notifications-toggle{width:30px!important;min-height:30px!important;padding:6px!important}.mobile-market-tools{position:fixed;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));left:8px;right:8px;top:63px;gap:6px;z-index:75}.mobile-market-tools button{min-width:0;min-height:36px;border:1px solid #d8e1cc;border-radius:11px;background:#fffdf4f5;color:#315b48;font-size:12px;padding:6px}.mobile-market-tools{display:none}body.game-fullscreen .mobile-market-tools{display:grid}#mobile-shortcut-panel .mobile-menu-item{display:block!important}#mobile-shortcut-panel .mobile-menu-item[hidden]{display:none!important}body.game-fullscreen #mobile-shortcut-panel{grid-template-columns:repeat(2,minmax(0,1fr));width:340px}body.game-fullscreen #mobile-shortcut-panel .shortcut-close{grid-column:1/-1}body:not(.game-fullscreen){padding-top:60px}body.game-fullscreen .animal-controls{top:109px!important}}
.header .mobile-refresh{display:none!important}
.plaza-meet{position:fixed;right:18px;top:120px;z-index:72;background:#fffdf4f5;border:1px solid #d4dfc9;padding:12px;border-radius:16px;box-shadow:0 5px 20px #234e3b20;display:flex;gap:10px;align-items:center;font-size:13px}.plaza-meet[hidden]{display:none!important}
@media(max-width:700px){.plaza-meet{top:220px;right:12px;max-width:calc(100vw - 24px);font-size:12px}.plaza-meet button{min-height:38px;padding:7px 10px}}
/* 內容頁仍能使用快捷返回市集。 */
.mobile-shortcuts{display:block;position:fixed;right:14px;bottom:18px;z-index:150}
#mobile-menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:54px;height:57px;background:#315b48;color:#fffdf1;border:1px solid #fffdf1;border-radius:15px;box-shadow:0 4px 15px #23453330;font-size:23px}#mobile-menu-toggle span{font-size:11px}
#mobile-shortcut-panel{position:absolute;right:0;bottom:68px;display:grid;grid-template-columns:1fr;width:240px;padding:9px;gap:5px;background:#fffef9;border:1px solid #dce2d0;border-radius:14px;box-shadow:0 8px 28px #23453325;max-height:calc(100dvh - 150px);overflow:auto}#mobile-shortcut-panel[hidden]{display:none!important}#mobile-shortcut-panel button{min-height:42px;text-align:left;padding:9px 12px;border:0;border-radius:8px;background:#f1f4e9;font-size:13px}
@media(max-width:700px){#mobile-shortcut-panel{grid-template-columns:repeat(2,minmax(0,1fr));width:min(340px,calc(100vw - 24px))}#mobile-shortcut-panel .shortcut-close{grid-column:1/-1}}
.street-loading-notice{position:absolute;top:120px;left:50%;transform:translateX(-50%);z-index:60;max-width:calc(100% - 24px);background:#fff9e9f5;color:#5d654d;border-radius:12px;padding:9px 12px;font-size:12px}.street-loading-notice button{margin-left:6px;min-height:34px}
/* v100：功能列固定在發話列正上方，不遮住場景。 */
.plaza-stage{top:30px}
.plaza-dock,body[data-view="plaza"] .plaza-dock{position:fixed;top:auto;bottom:68px;left:50%;transform:translateX(-50%);width:min(460px,calc(100vw - 160px));max-width:none;padding:6px 9px;border-radius:12px;z-index:72}
.plaza-dock[hidden]{display:none!important}.plaza-dock .plaza-summary{font-size:10px;line-height:1.3;margin:0 0 4px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plaza-dock .plaza-dock-actions{flex-wrap:nowrap;justify-content:space-between;gap:8px;align-items:center}.plaza-dock .plaza-near-title{width:auto;font-size:12px;white-space:nowrap}.plaza-dock button{min-height:32px;padding:5px 12px;font-size:12px}
.plaza-meet{top:auto;bottom:122px;right:50%;transform:translateX(50%);padding:6px 10px;gap:8px;border-radius:12px}.plaza-meet button{min-height:32px;font-size:12px}
@media(max-width:700px){body[data-view="plaza"] .plaza-dock{top:auto;bottom:68px;left:10px;transform:none;width:calc(100vw - 84px);max-width:none;padding:6px 8px}.plaza-meet{top:auto;bottom:136px;left:114px;right:12px;transform:none;max-width:none;justify-content:space-between;font-size:11px}.plaza-dock .plaza-near-title{font-size:11px}.plaza-dock button{min-height:32px;padding:5px 9px}}
@media(max-width:700px){body[data-view="plaza"] .floating-analog-joystick{bottom:170px!important}}
.fish-mystery{position:absolute;right:20%;bottom:20%;font-size:40px;letter-spacing:7px;color:#e4f0de;animation:garden-ripples 2s ease-in-out infinite}.fish-result+p{text-align:center;line-height:1.7;font-size:17px;color:#315b48}
.plaza-stage{top:55px}
/* 使用 top layer，包含 modal dialog 開啟時仍可讀取操作通知。 */
#toast,#toast.show{position:fixed;inset:auto;top:max(12px,env(safe-area-inset-top));bottom:auto;left:50%;right:auto;transform:translateX(-50%);margin:0;max-width:min(560px,calc(100vw - 24px));width:max-content;padding:12px 18px;border:1px solid #e8efd9;border-radius:14px;background:#294f43;color:#fffdf1;box-shadow:0 5px 24px #17382e40;z-index:2147483647;font-size:14px;line-height:1.5;text-align:center;pointer-events:none}
#toast:not(.show){opacity:0}#toast.show{opacity:1}#toast::backdrop{background:transparent;pointer-events:none}
@media(max-width:700px){#toast,#toast.show{top:max(9px,env(safe-area-inset-top));font-size:13px;padding:10px 14px}}
.market-camera{display:none}body.game-fullscreen .market-camera{position:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;right:14px;bottom:92px;width:48px;height:52px;gap:1px;background:#fffdf4f5;color:#315b48;border:1px solid #cbd8bd;border-radius:14px;box-shadow:0 3px 15px #284c3c20;z-index:90;font-size:21px}.market-camera span{font-size:10px}.market-photo-dialog{width:min(880px,calc(100vw - 24px))}.market-photo-preview{display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain;border-radius:12px;background:#e8eddf}.market-photo-dialog .action-row{margin-top:14px}.market-photo-dialog .section-hint{font-size:12px}body.game-fullscreen .walk-near #near-enter{right:76px!important;bottom:93px!important;max-width:170px}
@media(max-width:700px){body.game-fullscreen .market-camera{right:12px;bottom:88px;width:46px;height:48px}body.game-fullscreen .walk-near #near-enter{right:12px!important;bottom:147px!important;max-width:120px}}
