/* ============================================================
   AOX TOWN — PHASE 4.1 MODERN MAP
   「かわいい街」→「今っぽく、少しリアルで、親しみやすい街」。道・歩道・建物・木・広場・水辺・小物が一体の街。
   昼=爽やか / 夕方=オレンジ / 夜=ネオンと窓明かり / 深夜前=静か。キャラは2頭身のまま。
   （town.css の後に読み込む上書き専用）
   ============================================================ */
body{--ground:#dde8e0;--ground2:#cfe0d6;--walk:#f4f1ea;--curb:#d9d4c8;--pave:#ebe7de;--pave-l:rgba(255,255,255,.55);--asphalt:#666c80;--asphalt2:#5b6075;--lane:#f6ecb6;--cwc:#fff;
  --glass1:#a9dcf3;--glass2:#e6f5fc;--glass-line:rgba(255,255,255,.75);--win-on:rgba(255,236,170,0);--lawn1:#a5dc8f;--lawn2:#86c874;--water1:#8fd0ee;--water2:#6bb8e2;
  --leaf1:#7ccb6a;--leaf2:#4ea64a;--leaf3:#3b8a3e;--shade:rgba(30,40,70,.18);--lampglow:0;--neon:0;--wall-d:.0}
body[data-tone=dusk]{--ground:#ecdcc8;--ground2:#e2cdb8;--walk:#f5e6d4;--curb:#e0c9ae;--pave:#eddcc6;--asphalt:#6d6277;--asphalt2:#625870;--glass1:#f7c59a;--glass2:#ffe9cf;--lawn1:#b2cf86;--lawn2:#97bb74;--water1:#f0b996;--water2:#d99aa0;
  --leaf1:#98b95e;--leaf2:#6f9a4a;--leaf3:#557c3f;--win-on:rgba(255,214,140,.45);--lampglow:.55;--neon:.6;--shade:rgba(70,40,40,.2)}
body[data-tone=night]{--ground:#42506c;--ground2:#3a4660;--walk:#6a7391;--curb:#59627f;--pave:#59638a;--pave-l:rgba(255,255,255,.12);--asphalt:#2f3550;--asphalt2:#292e47;--lane:#c9c07e;--cwc:#cfd2e6;--glass1:#ffd98a;--glass2:#ffe9b0;--glass-line:rgba(255,255,255,.35);
  --lawn1:#3f6f5a;--lawn2:#355d4d;--water1:#3a5c9e;--water2:#2c4880;--leaf1:#3f7a58;--leaf2:#2f6248;--leaf3:#244d3a;--win-on:rgba(255,214,120,.9);--lampglow:1;--neon:1;--shade:rgba(8,10,30,.35)}
body[data-tone=late]{--ground:#3a4560;--ground2:#333d56;--walk:#5d6684;--curb:#50597a;--pave:#505a7e;--pave-l:rgba(255,255,255,.1);--asphalt:#2a2f49;--asphalt2:#252a41;--lane:#a8a06c;--cwc:#aeb1c8;--glass1:#e0b46c;--glass2:#f0cf8e;--glass-line:rgba(255,255,255,.25);
  --lawn1:#375f50;--lawn2:#2f5144;--water1:#33538f;--water2:#27427a;--leaf1:#386b50;--leaf2:#2b5842;--leaf3:#21463a;--win-on:rgba(255,205,110,.55);--lampglow:.8;--neon:.55;--shade:rgba(8,10,30,.4)}
body[data-tone=dawn]{--ground:#e6e6dc;--walk:#f5efe6;--glass1:#f3cdb0;--glass2:#fff0e0;--win-on:rgba(255,220,160,.2)}

/* ---- マップ全体: 枠なし・一枚の街。少しだけ近づく(1.06) ---- */
#stage{background:var(--ground)}
.map{inset:0;border:0;border-radius:0;box-shadow:none;background:var(--ground);overflow:visible;scale:1.055;transform-origin:50% 44%;transition:scale 2.6s cubic-bezier(.4,.1,.2,1),background 2s}
.map::before{display:none}
.map.campre{scale:1.11;transform-origin:50% 62%}
.map.camlive{scale:1.24;transform-origin:50% 66%}
.ground{position:absolute;inset:-6%;background:radial-gradient(circle at 22% 30%,rgba(255,255,255,.28) 0 70px,transparent 71px),radial-gradient(circle at 80% 70%,rgba(255,255,255,.2) 0 90px,transparent 91px),linear-gradient(var(--ground),var(--ground2));transition:background 2s}
.blk{position:absolute;border-radius:16px;background:var(--walk);box-shadow:inset 0 0 0 2.5px var(--curb),0 3px 0 var(--shade);transition:background 2s}
.blk-in{position:absolute;inset:6px;border-radius:11px;background:
  linear-gradient(90deg,var(--pave-l) 1px,transparent 1px) 0 0/20px 20px,linear-gradient(var(--pave-l) 1px,transparent 1px) 0 0/20px 20px,var(--pave)}
.blk.lawn .blk-in{background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.2) 0 22px,transparent 23px),linear-gradient(var(--lawn1),var(--lawn2))}
.blk.top .blk-in{background:linear-gradient(180deg,var(--pave) 0 70%,var(--walk) 70%)}
.blk.prom .blk-in{background:linear-gradient(var(--pave) 0 55%,var(--walk) 55%)}
/* ---- 道路・歩道・横断歩道 ---- */
.road{position:absolute;background:var(--asphalt);border-radius:7px;box-shadow:0 0 0 2.5px var(--curb),0 4px 0 var(--shade);height:16px;transition:background 2s}
.road.v{height:auto;width:16px}
.road.h{height:16px}
.road::after{content:"";position:absolute;opacity:.9}
.road.h::after{left:8px;right:8px;top:7px;height:2px;background:repeating-linear-gradient(90deg,var(--lane) 0 9px,transparent 9px 18px)}
.road.v::after{top:8px;bottom:8px;left:7px;width:2px;background:repeating-linear-gradient(0deg,var(--lane) 0 9px,transparent 9px 18px)}
.cw{position:absolute;z-index:1;pointer-events:none}
.cwh{width:13px;height:16px;background:repeating-linear-gradient(0deg,var(--cwc) 0 2.4px,transparent 2.4px 4.8px);opacity:.92}
.cwv{width:16px;height:13px;background:repeating-linear-gradient(90deg,var(--cwc) 0 2.4px,transparent 2.4px 4.8px);opacity:.92}
.tplaza{position:absolute;width:98px;height:46px;margin:-23px 0 0 -49px;border-radius:12px;z-index:1;box-shadow:inset 0 0 0 3px var(--curb),0 3px 0 var(--shade);
  background:conic-gradient(var(--pave) 0 25%,var(--pave-l) 0 50%,var(--pave) 0 75%,var(--pave-l) 0) 0 0/16px 16px,var(--pave)}
.tplaza.sm{width:84px;height:34px;margin:-17px 0 0 -42px}
.fount{position:absolute;z-index:2;font-style:normal;font-size:24px;margin:-16px 0 0 -12px;filter:drop-shadow(0 4px 0 var(--shade))}
.water{position:absolute;border-radius:9px;background:repeating-linear-gradient(100deg,rgba(255,255,255,.28) 0 6px,transparent 6px 20px),linear-gradient(var(--water1),var(--water2));box-shadow:inset 0 0 0 2.5px var(--curb),inset 0 6px 0 rgba(255,255,255,.18);overflow:hidden;animation:ripple 7s linear infinite;background-size:80px 100%,100% 100%}
@keyframes ripple{to{background-position:80px 0,0 0}}
.bridge{position:absolute;width:44px;height:15px;border-radius:5px;z-index:2;background:repeating-linear-gradient(90deg,#d8c8a8 0 5px,#cbb88f 5px 10px);box-shadow:0 0 0 2px #a99569,0 4px 0 var(--shade)}
.bridge::before,.bridge::after{content:"";position:absolute;left:0;right:0;height:3px;background:#a99569;border-radius:2px}
.bridge::before{top:-1px}.bridge::after{bottom:-1px}
/* ---- 街路樹・ベンチ・自販機・駐輪・植栽・外灯・バス停 ---- */
.tree{position:absolute;z-index:3;width:0;height:0;pointer-events:none;--z:1}
.tree::before{content:"";position:absolute;left:calc(-11px*var(--z));top:calc(-27px*var(--z));width:calc(22px*var(--z));height:calc(22px*var(--z));border-radius:50%;
  background:radial-gradient(circle at 34% 30%,var(--leaf1),var(--leaf2) 62%,var(--leaf3));box-shadow:0 calc(5px*var(--z)) 0 var(--shade);transform-origin:50% 100%;animation:treeSway 6s ease-in-out infinite}
.tree::after{content:"";position:absolute;left:calc(-2px*var(--z));top:calc(-8px*var(--z));width:calc(4px*var(--z));height:calc(9px*var(--z));background:#8a6a4e;border-radius:2px;z-index:-1}
.tree.s::before{background:radial-gradient(circle at 34% 30%,#ffd9e6,#f6a9c6 62%,#e68aae)}
.tree:nth-of-type(2n)::before{animation-delay:-2.4s}
.bench{position:absolute;z-index:3;width:24px;height:7px;margin:-3px 0 0 -12px;border-radius:2px;background:linear-gradient(#d2a46c,#b98550);box-shadow:0 3px 0 #6f5a45,0 6px 0 var(--shade)}
.bench::before{content:"";position:absolute;left:0;right:0;top:-6px;height:5px;border-radius:2px;background:#e3b97f;box-shadow:inset 0 -1px 0 rgba(0,0,0,.12)}
.vend{position:absolute;z-index:3;width:12px;height:19px;margin:-14px 0 0 -6px;border-radius:3px;background:linear-gradient(#ff6d63,#d9453d);box-shadow:0 0 0 1px rgba(0,0,0,.12),0 4px 0 var(--shade)}
.vend::before{content:"";position:absolute;left:2px;right:2px;top:2px;height:9px;border-radius:2px;background:repeating-linear-gradient(90deg,#fff6c9 0 2px,#8ad0ff 2px 4px,#ffe3a0 4px 6px);box-shadow:0 0 calc(7px*var(--lampglow)) calc(1px*var(--lampglow)) rgba(255,236,160,.9)}
.vend::after{content:"";position:absolute;left:3px;right:3px;bottom:2px;height:3px;border-radius:1px;background:#8d2a24}
.vend:nth-of-type(2n){background:linear-gradient(#5ea8ff,#3b7fd8)}
.bikes{position:absolute;z-index:3;width:30px;height:9px;margin:-5px 0 0 -15px;background:radial-gradient(circle at 5px 5px,transparent 2.4px,#59627f 2.4px 3.6px,transparent 3.8px) 0 0/10px 9px;opacity:.85}
.planter{position:absolute;z-index:3;width:18px;height:8px;margin:-6px 0 0 -9px;border-radius:3px 3px 5px 5px;background:linear-gradient(#78c964 0 55%,#9a7a5e 55%);box-shadow:0 3px 0 var(--shade)}
.busstop{position:absolute;z-index:3;width:36px;height:22px;margin:-18px 0 0 -18px;border-radius:3px;background:linear-gradient(rgba(190,225,245,.75),rgba(230,245,252,.6));border:2px solid #7d88a8;box-shadow:0 4px 0 var(--shade)}
.busstop::before{content:"";position:absolute;left:-2px;right:-2px;top:-5px;height:5px;border-radius:2px;background:#4c6fd1}
.busstop b{position:absolute;right:3px;bottom:2px;width:10px;height:8px;background:#e2e8ff;border-radius:1px}
.lamp{position:absolute;z-index:4;width:3px;height:22px;margin:-22px 0 0 -1.5px;background:linear-gradient(90deg,#6d7596,#4f567a);border-radius:2px;pointer-events:none}
.lamp::before{content:"";position:absolute;left:-5px;top:-5px;width:13px;height:7px;border-radius:7px 7px 3px 3px;background:#f6f2cf;box-shadow:0 0 calc(14px*var(--lampglow)) calc(8px*var(--lampglow)) rgba(255,226,130,.75);transition:box-shadow 1.2s}
.lamp::after{content:"";position:absolute;left:-14px;top:0;width:31px;height:26px;background:radial-gradient(ellipse at 50% 0,rgba(255,232,150,calc(.5*var(--lampglow))),transparent 70%);pointer-events:none}
body[data-night="1"] .lamp::before{background:#fff0a0}
/* ---- 建物: 立体感・ガラス・窓の反射・看板 ---- */
.map .bld{width:27%}
.map .bld .vol{position:relative;transform-style:flat}
.map .bld .body{height:80px;border-radius:4px 4px 3px 3px;overflow:visible;background:linear-gradient(color-mix(in srgb,var(--wall) 82%,#fff),var(--wall));box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55),0 5px 0 rgba(30,35,75,.22),0 12px 13px var(--shade)}
.map .bld .body::before,.map .bld .body::after{display:none}
.map .bld .rf{position:absolute;left:-4px;right:-4px;top:-9px;height:13px;border-radius:3px 3px 2px 2px;background:linear-gradient(color-mix(in srgb,var(--roof) 75%,#fff),var(--roof));box-shadow:0 3px 0 rgba(0,0,0,.2),inset 0 2px 0 rgba(255,255,255,.35);z-index:3}
.map .bld .rf::after{content:"";position:absolute;right:10px;top:-5px;width:12px;height:6px;border-radius:2px;background:#cfd5e6;box-shadow:inset 0 -2px 0 rgba(0,0,0,.12),-18px 1px 0 -1px #c4cadb}
.map .bld .side{position:absolute;right:-9px;top:-4px;width:9px;height:82px;background:linear-gradient(90deg,color-mix(in srgb,var(--wall) 62%,#000),color-mix(in srgb,var(--wall) 48%,#000));transform:skewY(-30deg);transform-origin:0 0;border-radius:0 3px 3px 0;z-index:0}
.map .bld .gl{position:absolute;left:7%;right:7%;top:30%;bottom:22%;border-radius:3px;overflow:hidden;background:linear-gradient(115deg,rgba(255,255,255,.0) 0 22%,rgba(255,255,255,.5) 22% 30%,rgba(255,255,255,0) 30% 52%,rgba(255,255,255,.32) 52% 57%,rgba(255,255,255,0) 57%),linear-gradient(var(--glass1),var(--glass2));box-shadow:inset 0 0 0 2px var(--glass-line),inset 0 -6px 8px rgba(40,60,110,.12);transition:background 1.5s}
.map .bld .gl::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 46%,transparent 56%);background-size:260% 100%;animation:sheen 9s ease-in-out infinite}
@keyframes sheen{0%,35%{background-position:130% 0}70%,100%{background-position:-30% 0}}
.map .bld .wins{position:absolute;left:7%;right:7%;top:30%;bottom:22%;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1.5px),rgba(255,255,255,.85) calc(25% - 1.5px) 25%),linear-gradient(0deg,transparent 0 calc(50% - 1px),rgba(255,255,255,.7) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px));pointer-events:none;border-radius:3px}
.map .bld.night .gl,body[data-tone=night] .map .bld:not(.closed) .gl,body[data-tone=late] .map .bld:not(.closed) .gl,body[data-tone=dusk] .map .bld:not(.closed) .gl{box-shadow:inset 0 0 0 2px var(--glass-line),inset 0 0 14px 2px var(--win-on),0 0 calc(10px*var(--lampglow)) rgba(255,214,120,.55)}
.map .bld .door{position:absolute;left:41%;bottom:0;width:18%;height:22%;border-radius:3px 3px 0 0;background:linear-gradient(rgba(60,78,120,.78),rgba(40,52,92,.85));box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55)}
body[data-tone=night] .map .bld:not(.closed) .door,body[data-tone=dusk] .map .bld:not(.closed) .door{background:linear-gradient(#ffe7a6,#ffd37a)}
.map .bld .ico{position:absolute;left:auto;right:6px;top:-27px;font-size:20px;filter:drop-shadow(0 3px 0 var(--shade));z-index:4}
.map .bld .nm{position:absolute;left:50%;top:6px;right:auto;transform:translateX(-50%);padding:1px 7px;border-radius:3px;background:var(--roof);color:#fff;font-size:9px;letter-spacing:.7px;line-height:1.35;box-shadow:0 2px 0 rgba(0,0,0,.2);white-space:nowrap;z-index:4;margin:0;text-shadow:0 1px 0 rgba(0,0,0,.2)}
body[data-tone=night] .map .bld:not(.closed) .nm,body[data-tone=late] .map .bld:not(.closed) .nm{box-shadow:0 0 calc(8px*var(--neon)) 1px var(--roof)}
.map .bld .awn{left:5%;right:5%;top:25%;height:9px;border-radius:0 0 6px 6px;z-index:3}
.map .bld.closed .body{filter:grayscale(.75) brightness(.92)}
.map .bld.closed .gl{background:linear-gradient(#a4aec2,#c4ccdb)}
.map .bld .hrs{margin-top:9px;background:rgba(255,255,255,.72);border-radius:999px;padding:0 7px;display:inline-block;font-size:9px}
.map .bld .in{top:-34px;z-index:6}
/* 施設ごとの外観 */
.f-cafe .menu{position:absolute;left:9%;bottom:3px;width:13%;height:20%;border-radius:2px;background:#3b3f55;box-shadow:inset 0 0 0 1.5px #d9b98b}
.f-cafe .terr{position:absolute;bottom:-12px;width:15px;height:15px;z-index:5}
.f-cafe .terr::before{content:"";position:absolute;left:-5px;top:-11px;width:25px;height:11px;border-radius:50% 50% 2px 2px;background:repeating-conic-gradient(from 0deg at 50% 100%,#fff 0 18deg,#ef7a5a 18deg 36deg);box-shadow:0 3px 0 var(--shade)}
.f-cafe .terr::after{content:"";position:absolute;left:3px;top:0;width:9px;height:9px;border-radius:50%;background:#f4e6cf;box-shadow:0 3px 0 #b49d7e}
.f-cafe .t1{left:-8px}.f-cafe .t2{right:-8px}
.f-cafe .plant{position:absolute;left:-14px;bottom:2px;width:9px;height:12px;border-radius:50% 50% 3px 3px;background:radial-gradient(circle at 50% 30%,var(--leaf1),var(--leaf3));z-index:5}
.f-shop .mann{position:absolute;bottom:23%;width:7px;height:25px;border-radius:5px 5px 1px 1px;background:linear-gradient(#f0d9c6 0 22%,var(--c,#c85a8b) 22%);z-index:2;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.f-shop .m1{left:22%;--c:#b24f8d}.f-shop .m2{left:68%;--c:#3f7fb8}
.f-shop .wdsp{position:absolute;left:8%;right:8%;top:30%;height:3px;background:rgba(255,255,255,.9);box-shadow:0 0 calc(8px*var(--neon)) rgba(255,255,255,.9);z-index:2;border-radius:2px}
.f-food .lbar,.f-conv .lbar{position:absolute;left:5%;right:5%;top:25%;height:5px;border-radius:3px;background:#fff;box-shadow:0 0 calc(10px*var(--lampglow) + 3px) 2px rgba(255,255,255,.85);z-index:2}
.f-conv .lbar{background:linear-gradient(90deg,#2fa79b 0 33%,#fff 33% 66%,#ff7a3d 66%)}
.f-food .auto,.f-conv .auto{position:absolute;left:34%;bottom:0;width:32%;height:26%;border-radius:3px 3px 0 0;background:linear-gradient(90deg,rgba(170,215,240,.9) 0 49%,rgba(60,78,120,.5) 49% 51%,rgba(170,215,240,.9) 51%);box-shadow:inset 0 0 0 1.5px #fff;z-index:2}
.f-food .door,.f-conv .door{display:none}
.f-food .cart,.f-conv .cart{position:absolute;right:-3px;bottom:-6px;width:12px;height:8px;border-radius:2px 2px 4px 4px;border:1.5px solid #8b93b3;border-top:0;background:repeating-linear-gradient(90deg,transparent 0 2px,rgba(139,147,179,.5) 2px 3px);z-index:5}
.f-music .poster{position:absolute;top:34%;width:12%;height:30%;border-radius:2px;background:linear-gradient(135deg,var(--p1,#ff6b9a),var(--p2,#6a5cff));z-index:2;box-shadow:0 0 0 1.5px #fff}
.f-music .p1{left:11%}.f-music .p2{left:27%;--p1:#ffd25e;--p2:#ff6b5e}.f-music .p3{right:11%;--p1:#4de0c1;--p2:#2f6df6}
.f-music .gl{left:46%;right:7%}.f-music .wins{left:46%;right:7%}
.f-arcade .ledb{position:absolute;inset:-3px;border-radius:5px;border:3px solid transparent;background:linear-gradient(var(--wall),var(--wall)) padding-box,conic-gradient(from 0deg,#ff4fa0,#ffcf3e,#4de0c1,#6a5cff,#ff4fa0) border-box;animation:ledSpin 6s linear infinite;z-index:0;filter:saturate(1.2);opacity:calc(.55 + var(--neon)*.45)}
.f-arcade .body{overflow:visible}
@keyframes ledSpin{to{filter:hue-rotate(360deg) saturate(1.2)}}
.f-arcade .claw{position:absolute;right:11%;bottom:4px;width:12%;height:22%;border-radius:3px;background:linear-gradient(#ff8fbf,#e84f93);z-index:2;box-shadow:inset 0 0 0 1.5px #fff}
.f-studio .mirrors{position:absolute;left:8%;right:8%;top:30%;bottom:22%;background:repeating-linear-gradient(105deg,rgba(255,255,255,.55) 0 7px,rgba(200,220,240,.35) 7px 14px);z-index:2;border-radius:3px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}
.f-studio .gl,.f-studio .wins{display:none}
.f-studio .sstripe{position:absolute;left:0;right:0;bottom:0;height:14%;background:repeating-linear-gradient(90deg,#3b3f55 0 5px,#58607f 5px 10px);border-radius:0 0 3px 3px;z-index:2}
.f-studio .door{z-index:3}
.f-live{--wall:#2b2750!important}
.f-live .body{background:linear-gradient(#3a3568,#221f45)!important}
.f-live .gl{background:linear-gradient(#1b1a3a,#3a3568);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.f-live .gl::after{background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.3) 46%,transparent 56%);background-size:260% 100%}
.f-live .wins{background:none}
.f-live .led{position:absolute;left:7%;right:7%;top:30%;bottom:22%;border-radius:3px;z-index:2;background:radial-gradient(circle,rgba(255,79,160,.95) 1.3px,transparent 2.1px) 0 0/8px 8px,radial-gradient(circle,rgba(110,200,255,.9) 1.3px,transparent 2.1px) 4px 4px/8px 8px;opacity:calc(.35 + var(--neon)*.65);animation:ledFlow 3s linear infinite}
@keyframes ledFlow{to{background-position:16px 0,20px 4px}}
.f-live .marq{position:absolute;left:12%;right:12%;top:-23px;height:9px;border-radius:5px;background:#ff4fa0;box-shadow:0 0 calc(10px*var(--neon) + 2px) 2px #ff4fa0;z-index:5;animation:neon 1.6s ease-in-out infinite}
.f-live.busy .marq{background:#ffe14d;box-shadow:0 0 14px 4px #ffe14d;animation:neon .5s ease-in-out infinite}
.f-live .stan{position:absolute;bottom:-14px;width:3px;height:10px;background:#d4d8ea;border-radius:2px;z-index:5;box-shadow:0 2px 0 var(--shade)}
.f-live .s1{left:6%}.f-live .s2{left:30%}.f-live .s3{left:54%}.f-live .s4{left:78%}
.f-live .rope{position:absolute;left:6%;right:22%;bottom:-11px;height:2px;background:repeating-linear-gradient(90deg,#ff4fa0 0 18%,transparent 18% 25%);z-index:5;opacity:.9}
.f-live .door{background:linear-gradient(#ff4fa0,#d1307f)!important}
.f-park .vol,.f-park .rf,.f-park .side,.f-park .gl,.f-park .wins,.f-park .door{display:none}
.f-park .body{height:68px;border-radius:50%;background:radial-gradient(ellipse at 50% 55%,var(--lawn1) 0 62%,transparent 63%),radial-gradient(ellipse at 50% 60%,var(--water1) 0 22%,transparent 23%)!important;box-shadow:none;border:0;overflow:visible}
.f-park .vol{display:block}
.f-park .nm{top:2px;background:#3f8f3a}
.f-park .ico{right:auto;left:50%;top:-8px;transform:translateX(-50%);font-size:26px}
/* 夜のネオン・窓明かり */
body[data-tone=night] .bld .neon,body[data-tone=late] .bld .neon{opacity:var(--neon)}
.bld .neon{left:8%;right:8%;top:26%;height:3px;z-index:3}
/* ---- 家: 街の建物と統一感のある小さなモダン住宅 ---- */
.map .house{width:15.5%}
.map .house .roof{height:11px;clip-path:none;border-radius:3px 3px 1px 1px;background:linear-gradient(color-mix(in srgb,var(--roof) 70%,#fff),var(--roof));margin:0 -3px;box-shadow:0 3px 0 rgba(0,0,0,.18),inset 0 2px 0 rgba(255,255,255,.35);position:relative;z-index:2}
.map .house .chim{display:none}
.map .house .wall{height:30px;border-radius:2px 2px 4px 4px;background:linear-gradient(color-mix(in srgb,var(--wall) 85%,#fff),var(--wall));box-shadow:0 5px 0 rgba(35,38,82,.26),0 10px 10px var(--shade),inset 0 0 0 1.5px rgba(255,255,255,.5)}
.map .house .wall::after{left:42%;width:16%;height:56%;background:linear-gradient(rgba(60,78,120,.8),rgba(40,52,92,.9));border-radius:2px 2px 0 0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.map .house .wall .win{top:6px;width:11px;height:11px;border-radius:2px;background:linear-gradient(var(--glass1),var(--glass2));box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.8)}
.map .house.night .wall .win{background:#ffe27a;box-shadow:0 0 9px rgba(255,226,122,.9),inset 0 0 0 1.5px rgba(255,255,255,.6)}
.map .house .pot{display:none}
.map .house .nm{font-size:9.5px;margin-top:4px}
.map .house.night .wall{background-image:none}
/* ---- 立体物の落ち影・NPC・吹き出し ---- */
.map .actor{z-index:12}
.fan .rig{filter:drop-shadow(0 2px 0 rgba(30,35,75,.18))}
/* ---- ハプニング: 頭上アイコン・吹き出し・街の演出 ---- */
.bub.hp{background:#fff7d6;border:2px solid #ffc83a;animation:bubPulse .6s ease-in-out infinite alternate;font-size:19px}
.bub.hp.in{animation:bubIn .42s cubic-bezier(.2,1.7,.4,1) both,bubPulse .6s ease-in-out .42s infinite alternate}
.bub.txt.hp{background:#fffdf0;border:2px solid #ffc83a;animation:none;font-size:12px}
.actor.hpact .rig{filter:drop-shadow(0 0 6px rgba(255,200,58,.75))}
.hpfx{position:absolute;z-index:11;margin:-12px 0 0 -12px;font-size:22px;line-height:1;background:none;border:0;padding:0;filter:drop-shadow(0 3px 0 var(--shade));animation:hpBob 1.6s ease-in-out infinite;pointer-events:none}
.hpfx.t-item{pointer-events:auto;cursor:pointer;font-size:24px;animation:hpBounce .9s ease-in-out infinite;padding:8px;margin:-20px 0 0 -20px}
.hpfx.t-item::after{content:"";position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:2px solid #ffc83a;animation:hpRing 1.4s ease-out infinite}
.hpfx.t-rainbow{font-size:64px;margin:-18px 0 0 -32px;opacity:.9;z-index:9}
.hpfx.t-star{font-size:30px;z-index:9;animation:starFall 2.4s linear infinite}
.hpfx.t-crowd,.hpfx.t-bench,.hpfx.t-rumor{font-size:19px}
@keyframes hpBob{50%{translate:0 -4px}}
@keyframes hpBounce{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes hpRing{from{scale:.5;opacity:.9}to{scale:1.5;opacity:0}}
@keyframes starFall{from{translate:30px -20px;opacity:0}20%{opacity:1}to{translate:-60px 40px;opacity:0}}
.bld.sway .vol{animation:swayS .5s ease-in-out 6}
@keyframes swayS{0%,100%{rotate:0deg}25%{rotate:-1.6deg}75%{rotate:1.6deg}}
.bld.crowd .hrs{background:#ffe9a8}
#stage.drizzle::after{content:'';position:absolute;inset:0;z-index:9;pointer-events:none;background:repeating-linear-gradient(105deg,transparent 0 14px,rgba(120,150,220,.2) 14px 15px);background-size:80px 80px;animation:rainf .8s linear infinite}
.hpstrip{margin:8px 0;padding:8px 10px;border-radius:16px;background:#fff7d6;border:2px solid #ffc83a}
.hpstrip .hpt{font-weight:900;font-size:14px;margin-bottom:6px}
.hpstrip .hpb{display:flex;gap:6px;flex-wrap:wrap}
.hpstrip .hpb button{background:#fff;border:2px solid #ffc83a;border-radius:14px;padding:7px 11px;font-weight:800;font-size:14px;min-height:40px}
.hpdone{background:#fff3c4;border:2px solid #ffc83a;border-radius:14px;padding:6px 10px;font-weight:900;text-align:center;margin:6px 0}
@media (prefers-reduced-motion:reduce){.tree::before,.hpfx,.f-live .marq,.f-live .led,.f-arcade .ledb,.map .bld .gl::after,.water{animation:none!important}}
