/* v14: an open map, tiny stops, and short scrollable information sheets. */
.policy-pin{transform:translate(-50%,-50%);width:24px;height:24px;padding:0}
.policy-pin:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--pin);border:1.5px solid #fffdf5;box-shadow:0 1px 3px #254f4345}
.policy-pin span,.policy-pin i{display:none}
.policy-pin.selected:before{display:none}
.policy-pin.selected{width:40px;height:40px;transform:translate(-50%,-100%)}
.policy-pin.selected span{display:grid;min-width:29px;height:29px;font-size:15px;outline:2px solid #f6c14b;outline-offset:2px;transform:none}
.policy-pin.selected i{display:block;top:34px;left:20px;height:7px}
.policy-pin:focus-visible{outline:2px solid #077f6b;border-radius:50%}
/* Policy browsing stays available while the dice walk is running. */
.neighbor-pin{min-height:40px;padding:4px 7px}.neighbor-pin span{font-size:13px;color:#617866;background:#fffdf5b8;padding:3px 6px;border:1px solid #cad7c380;letter-spacing:0}
.neighbor-pin:hover span,.neighbor-pin:focus-visible span{background:#fffdf5;color:#087d68}
.region-areas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}
.region-areas path{fill:transparent;pointer-events:fill;cursor:pointer;stroke:none}
.region-areas path:hover{fill:#e5f1d438}
.header-actions .dice-button{display:grid;place-items:center;width:46px;padding:0;color:#087d68;border:1px solid #bbd3bf;border-radius:13px;font-family:Arial,sans-serif}
#diceFace{font-size:34px;line-height:1}
.dice-button.rolling #diceFace{animation:dice-bob .65s ease-in-out infinite alternate}.dice-button:disabled{cursor:wait;opacity:.8}
@keyframes dice-bob{to{transform:rotate(12deg) scale(.9)}}
.dice-status{position:absolute;z-index:31;top:75px;right:24px;margin:0;background:#fffdf5ee;color:#126b58;border:1px solid #c9dbc7;border-radius:10px;padding:7px 11px;font-size:15px;pointer-events:none}
#explorer,#explorer[data-reader-view]{inset:auto 20px 92px auto;width:410px;max-width:calc(100% - 24px);height:auto;max-height:33dvh;overflow:hidden;border-radius:18px;box-sizing:border-box}
#explorer[open]{display:flex;flex-direction:column}
#explorer .drawer-header{position:relative;flex:0 0 auto;min-height:44px;padding:4px 12px;border-bottom:1px solid #e6ebdf;gap:10px}
#explorer .drawer-brand{font-size:15px;font-weight:600;line-height:1.3;padding:4px 0;color:#64816b}
#explorer .icon-button{width:38px;height:38px;min-height:38px;font-size:22px;line-height:1;flex:0 0 38px}
#drawerContent{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:10px 16px 15px;scrollbar-width:thin}
#explorer .drawer-heading{margin-bottom:10px}
#explorer .drawer-heading h2,#explorer .detail-title{font-size:22px;line-height:1.4;margin:3px 0 7px}
#explorer .drawer-heading p:not(.eyebrow),#explorer .detail-summary{font-size:17px;line-height:1.7;margin:6px 0}
#explorer .eyebrow{margin:0 0 4px;line-height:1.4}
#explorer .back-link{margin:0 0 5px;font-size:15px}
#explorer .policy-search{margin:8px 0}.filter-row{flex-wrap:nowrap;overflow-x:auto;margin:8px 0;padding-bottom:4px}.filter-row button{flex:0 0 auto;white-space:nowrap;font-size:15px;min-height:36px;padding:5px 10px}
.policy-card{padding:10px 12px 10px 49px;margin:7px 0}.policy-card-number{left:10px;top:15px}.policy-card h3{margin:3px 0;font-size:18px;line-height:1.5}.result-count{margin:7px 0}
.route-card{padding:10px 12px;margin:8px 0}.route-card strong{font-size:19px;margin:4px 0;line-height:1.5}
.object-caption{margin:4px 0}.audience-card{margin:10px 0;padding:10px 12px}.detail-section{margin:14px 0;padding-top:12px}.metric-card{padding:12px}.detail-section p,.policy-bullets{font-size:17px}
.region-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.region-list button{display:flex;align-items:center;justify-content:space-between;gap:6px;background:#edf3e5;border-radius:8px;padding:9px;font-size:17px;min-height:42px}.region-list span{font-size:14px;color:#789679}
.team-row{display:grid;grid-template-columns:68px 1fr;align-items:baseline;gap:9px;padding:9px 0;border-bottom:1px solid #e5eadf}.team-row:last-child{border:0}.team-row strong{font-size:18px;line-height:1.4;white-space:nowrap}.team-row>span{font-size:15px;line-height:1.5;color:#647b66}
.compact-team .empty{padding:5px 0;margin:0;font-size:17px}
.arrival-heading{display:flex;align-items:center;gap:12px}.arrival-heading>b{display:grid;place-items:center;background:var(--pin);color:white;border-radius:50%;width:34px;height:34px;flex-shrink:0;font-size:17px}.arrival-heading h2{font-size:21px;line-height:1.45;margin:2px 0}.arrival-summary{font-size:17px;line-height:1.7;margin:9px 0}.arrival-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.arrival-footer>span{font-size:14px;line-height:1.5;color:#71846c}.arrival-footer button{flex-shrink:0;background:#087e69;color:white;border-radius:9px;min-height:42px;padding:8px 12px;font-size:16px}
.place-panel,.place-panel.expanded{top:auto;bottom:92px;max-height:33dvh;overflow:auto}.bottom-dock{max-height:33dvh;overflow:auto;box-sizing:border-box;padding:12px;gap:7px}.tools-heading{position:sticky;top:-12px;z-index:2;background:#fffdf5}.tools-heading strong{font-size:18px}
.reader-open .view-tools{right:24px;bottom:calc(33dvh + 104px)}.reader-open .map-compass{right:30px;bottom:calc(33dvh + 158px)}.reader-open .map-main-actions,.reader-open .active-route{left:calc(50% + 55px)}
@media(max-width:799px){
 .header-actions .dice-button{width:40px;min-height:40px;border-radius:12px}#diceFace{font-size:30px}
 .home-mark small{font-size:10px}.island-header{gap:4px}.header-actions{gap:4px}
 #explorer,#explorer[data-reader-view]{inset:auto 10px 78px;width:calc(100% - 20px);max-width:none;max-height:33dvh;border:1px solid #d6e2d2;border-radius:18px}
 #explorer[open][data-reader-view=arrival]{bottom:0;border-bottom:0;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}
 #drawerContent{padding:9px 14px 13px}#explorer .drawer-header{padding:3px 11px;min-height:42px}#explorer .drawer-heading h2,#explorer .detail-title{font-size:21px}
 .reader-open .view-tools{right:14px;top:auto;bottom:calc(33dvh + 89px)}.reader-open .map-compass{right:18px;top:102px;bottom:auto}.reader-open .map-main-actions{left:12px}.reader-open .active-route{left:14px}
 .dice-status{right:14px;top:81px;font-size:14px;max-width:calc(100% - 90px)}
 .place-panel,.place-panel.expanded{max-height:33dvh;bottom:78px}.bottom-dock{max-height:33dvh;bottom:78px;padding:10px 12px;gap:6px}.bottom-dock .time-tools{padding:2px}.time-tools button{font-size:16px;padding:5px 7px;min-height:37px}.bottom-dock>button,.travel-pop>button,.drag-modes{height:40px;min-height:40px}.bottom-dock #motionToggle,.drag-modes button,.travel-pop>button{font-size:16px}.tools-heading button{width:36px;height:36px}
 .policy-pin{width:24px;height:24px}.policy-pin:before{width:6px;height:6px}.neighbor-pin span{font-size:12px;padding:2px 5px}.neighbor-pin{padding:3px}
}
@media(prefers-reduced-motion:reduce){.dice-button.rolling #diceFace{animation:none}}

#travelControls{position:static;width:100%;margin-top:5px;display:grid;grid-template-columns:1fr 1fr;padding:4px;box-shadow:none}#travelControls button{font-size:15px;padding:7px 4px;text-align:center}
#mapHelp{max-height:45dvh;padding:15px 19px;overflow:auto}#tourArt{display:none}#helpTitle{font-size:22px;line-height:1.45;margin:7px 0}#tourText{font-size:17px;line-height:1.65;margin:8px 0}.tour-footer{margin-top:12px}.tour-footer button{min-height:42px;padding:8px 14px;font-size:17px}

#explorer[data-reader-view=arrival] .drawer-header{position:absolute;right:6px;top:5px;padding:0;min-height:0;background:none;border:0}#explorer[data-reader-view=arrival] .drawer-brand{display:none}#explorer[data-reader-view=arrival] #drawerContent{padding:13px 15px}.arrival-heading{padding-right:32px}.arrival-heading h2{font-size:20px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.arrival-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:9px 0;font-size:17px;line-height:1.65}.arrival-footer>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.policy-pin.selected{width:24px;height:24px;transform:translate(-50%,-50%)}.policy-pin.selected:before{display:block}.policy-pin.selected span{position:absolute;left:29px;bottom:14px}.policy-pin.selected i{display:none}

/* Scenery stays secondary to the city and its small policy stops. */
.nature-labels{position:absolute;inset:0;pointer-events:none;z-index:4}.nature-labels span{position:absolute;transform:translate(-50%,-50%);font-size:13px;color:#758c7c;letter-spacing:.08em;background:#f2f6e8b0;border-radius:6px;padding:2px 6px;white-space:nowrap}.view-tools button:disabled{opacity:.4;cursor:default}#travelToggle:disabled{opacity:1;cursor:default;background:#edf2e3}.dice-status{font-size:14px}
@media(max-width:799px){.nature-labels span{font-size:12px}.dice-status{font-size:13px;padding:7px 9px}}

/* v21: small visible dots, generous touch targets and data-backed region access. */
.policy-pin,.policy-pin.selected{width:44px;height:44px}
.policy-pin.selected span{left:40px;bottom:25px}
.policy-pin:before{pointer-events:none}
.region-areas path{pointer-events:none;cursor:inherit}
.region-areas path:hover{fill:transparent}
.region-areas path.is-interactive{pointer-events:fill;cursor:pointer}
.region-areas path.is-interactive:hover{fill:#fff9d736}
.neighbor-pin.is-inactive{pointer-events:none;cursor:inherit}
.region-list button:disabled{color:#718273;background:#e8eee3;cursor:default}
.region-list button:disabled span{font-size:11px;white-space:nowrap}
