.map-section:after{display:none}.map-canvas{inset:0;cursor:grab;touch-action:none}.city-webgl{width:100%;height:100%;display:block;outline:none}.city-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.city-label{position:absolute;left:0;top:0;pointer-events:auto;padding:4px 8px;background:#fffdf1eb;border:1px solid #f8f6e8;border-radius:12px;box-shadow:0 2px 8px #30514612;font-size:9px;max-width:132px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;transition:background .2s}.city-label:hover{background:#fff;color:#b3714f;z-index:3}.mayor-label{position:absolute;top:0;left:0;pointer-events:auto;font-size:10px;font-weight:700;white-space:nowrap;background:#31574b;color:#fff7d7;padding:6px 10px;border-radius:15px;box-shadow:0 3px 10px #35574430;z-index:4}.mayor-label:hover{background:#426c59;color:white}.map-heading{top:26px;left:30px;z-index:2}.map-heading h1{font-size:30px;line-height:1.4}.map-heading .map-intro{font-size:11px;margin-top:8px}.map-heading .eyebrow{margin-bottom:10px}.map-caption{display:none}.city-tools{position:absolute;top:26px;right:24px;z-index:3;display:flex;align-items:center;gap:5px;background:#fbfcf2eb;border:1px solid #fff8;padding:6px;border-radius:28px;box-shadow:0 4px 20px #3454480b}.city-tools button{font-size:11px;padding:8px 10px;white-space:nowrap}.city-tools button+button{border-left:1px solid #dce4d5}.city-badge{display:flex;align-items:center;gap:5px;padding:0 9px;font:9px monospace;letter-spacing:1px;color:#617f6b}.city-badge i{width:5px;height:5px;background:#80aa73;border-radius:50%}.map-modes{top:84px;right:24px;padding:3px}.population{position:absolute;top:135px;right:26px;display:flex;align-items:center;gap:8px;font-size:9px;color:#5d8371;pointer-events:none}.population i{width:3px;height:3px;background:#91ab91;border-radius:50%}.city-loading{position:absolute;inset:50% 30px auto;text-align:center;font-size:13px;line-height:1.9;z-index:4;color:#466957;pointer-events:none}.actor-card{position:absolute;left:25px;bottom:100px;width:265px;background:#fffcf0f5;border:1px solid #fff8;border-radius:16px;padding:22px;box-shadow:0 10px 40px #264a4425;z-index:5}.actor-card .eyebrow{font-size:8px;margin-bottom:10px}.actor-card h3{font-size:22px;margin:0 0 10px;outline:none}.actor-card p:not(.eyebrow){font-size:11px;line-height:1.9;color:#6c7d64;margin:0 0 10px}.actor-card small{font-size:9px;color:#9a9f8e}.actor-card #actor-close{position:absolute;right:10px;top:6px;font-size:22px}.actor-card #actor-policy{display:block;margin-top:17px;padding:10px 0 0;border-top:1px solid #e0e5d5;width:100%;text-align:left;font-size:11px}.map-hint{max-width:65%}.map-disclaimer{font-size:9px}.map-bottom{pointer-events:none}.map-bottom>div{pointer-events:auto}
@media(max-width:1100px){.city-tools{top:23px;right:16px;flex-wrap:wrap;max-width:170px;border-radius:14px;justify-content:center}.city-badge{display:none}.city-tools button{font-size:10px;padding:6px}.city-tools button:last-child{border-left:0}.map-modes{top:109px;right:17px}.population{top:155px;right:18px;flex-direction:column;gap:4px}.population i{display:none}.map-heading h1{font-size:26px}}
@media(max-width:760px){.map-section{height:600px}.map-canvas{inset:0}.map-heading{top:20px;left:20px}.map-heading h1{font-size:24px}.map-heading .map-intro{font-size:9px}.city-tools{top:auto;bottom:95px;right:15px;left:15px;max-width:none;border-radius:25px;flex-wrap:nowrap;gap:5px}.city-tools button{font-size:11px;padding:8px}.city-tools button:last-child{border-left:1px solid #dce4d5}.city-badge{display:flex;font-size:8px;padding:0 5px}.map-modes{top:20px;right:12px}.population{top:110px;right:12px;font-size:8px}.actor-card{left:15px;bottom:153px;width:240px;padding:18px}.actor-card h3{font-size:20px}.actor-card p:not(.eyebrow){font-size:10px}.map-bottom{bottom:36px}.map-disclaimer{font-size:8px;left:15px}.city-label{font-size:8px;max-width:100px;padding:3px 5px}.map-hint{max-width:calc(100% - 120px)}.mayor-label{font-size:9px}.city-loading{font-size:12px}}
@media(max-width:760px){.actor-card{left:15px;bottom:145px;width:calc(100% - 30px);padding:12px 16px}.actor-card .eyebrow,.actor-card p:not(.eyebrow){display:none}.actor-card h3{font-size:17px;margin:0 0 4px}.actor-card small{font-size:8px}.actor-card #actor-policy{margin-top:8px;padding-top:8px}.actor-card #actor-close{right:9px;top:3px}}
