[hidden]{display:none!important}
.project-view-bar{display:flex;margin:8px 0 16px;flex-shrink:0}.view-switch{display:flex;border:1px solid var(--red)}
.view-switch button{background:transparent;color:var(--red);border:0;min-height:44px;min-width:65px;padding:8px 15px;font-size:.8rem}.view-switch button[aria-pressed=true]{background:var(--red);color:#fff}
.chapter-mode .map-view .section-marker,.chapter-mode .map-view .projects-heading>p,.chapter-mode .map-view .project-toolbar,.chapter-mode .map-view .project-note{display:none}
.chapter-mode .map-view .projects-heading{margin:0 0 10px;display:block;padding-right:220px}.chapter-mode .map-view .projects-heading h2{font-size:clamp(1.8rem,3vw,3rem);line-height:1.15}
.chapter-mode .map-view .project-view-bar{position:absolute;top:25px;right:var(--gutter);margin:0;width:auto}.chapter-mode main>.map-view{padding-top:25px;padding-bottom:16px;overflow:hidden}
.project-map{display:flex;flex-direction:column;flex:1;min-height:0;--map-ease:cubic-bezier(.22,.68,.2,1)}
.state-map-intro{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:6px;flex-shrink:0}.state-map-intro p{font-size:.85rem;color:var(--muted)}.state-map-intro>div{display:flex;align-items:center;gap:12px;flex-shrink:0}.state-map-intro label{font-size:.75rem;color:var(--muted)}
.state-map-intro select{min-height:44px;padding:8px 28px 8px 12px;border:1px solid var(--rule);background:transparent;font:inherit;font-size:.8rem;max-width:200px}
.map-region-tabs{display:none;gap:20px;border-bottom:1px solid var(--rule);flex-shrink:0;margin-bottom:8px}.map-region-tabs button{min-height:44px;padding:8px 0;background:none;border:0;border-bottom:2px solid transparent;font-size:.8rem;color:var(--muted)}.map-region-tabs button[aria-pressed=true]{border-bottom-color:var(--red);color:var(--red)}
.state-map-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0fr);gap:0;flex:1;min-height:0;position:relative;overflow:hidden;transition:grid-template-columns .48s var(--map-ease),gap .48s var(--map-ease)}
.state-map-visual{min-height:0;min-width:0;display:flex;flex-direction:column}.state-map-regions{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);flex:1;min-height:0;transition:grid-template-columns .48s var(--map-ease)}
.state-region{position:relative;min-height:0;min-width:0;overflow:hidden;transition:opacity .25s ease}.state-region svg{position:absolute;inset:25px 0 0;width:100%;height:calc(100% - 25px);overflow:hidden}.region-caption{position:absolute;left:10px;top:5px;font-size:.65rem;color:var(--muted);letter-spacing:.08em;white-space:nowrap}
.state-shape{fill:#deded6;stroke:#f9f9f7;stroke-width:1.5;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .25s ease,stroke .25s ease}.state-shape.has-projects{fill:#dba6a6}.state-shape:hover,.state-shape:focus-visible,.state-shape.is-hovered,.state-shape.is-selected{fill:var(--red);stroke:#7a1820;outline:none}
.state-callout{cursor:pointer;outline:none}.state-label-box{fill:#efefec;fill-opacity:.95}.state-name{font-family:Arial,sans-serif;font-size:20px;fill:#494941}.state-callout.with-projects .state-name{fill:#72131c;font-weight:600}.state-count-box{fill:var(--red)}.state-count-text{fill:white;font-size:18px;font-family:Arial,sans-serif;font-weight:700}.state-leader{fill:none;stroke:#74746b;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.state-anchor{fill:#74746b;pointer-events:none}
.state-callout:hover .state-label-box,.state-callout.is-selected .state-label-box,.state-callout:focus-visible .state-label-box{fill:var(--red);fill-opacity:1}.state-callout:hover .state-name,.state-callout.is-selected .state-name,.state-callout:focus-visible .state-name{fill:#fff}.state-callout:focus-visible .state-label-box{stroke:#17191a;stroke-width:2}
.state-legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:.7rem;color:var(--muted);padding:8px 0 10px;flex-shrink:0}.state-legend span{display:flex;gap:7px;align-items:center}.state-legend i{width:10px;height:10px;background:#deded6;border:1px solid #aaa}.state-legend .legend-project{background:#dba6a6;border-color:#dba6a6}.state-legend .legend-selected{background:var(--red);border-color:var(--red)}
.map-attribution{font-size:.65rem;color:var(--muted);line-height:1.45!important;padding-top:8px;border-top:1px solid var(--rule);flex-shrink:0}.map-attribution a{text-decoration:underline;text-underline-offset:2px}
.has-selection .state-map-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px}.has-selection:not(.selected-east) .state-map-regions{grid-template-columns:minmax(0,1fr) minmax(0,0fr)}.has-selection.selected-east .state-map-regions{grid-template-columns:minmax(0,0fr) minmax(0,1fr)}.has-selection:not(.selected-east) #borneo-region,.has-selection.selected-east #peninsula-region{opacity:0;pointer-events:none}
.state-project-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--paper);border-top:3px solid var(--red);padding:18px 20px 12px;overflow:hidden;opacity:0;visibility:hidden;transform:translateX(35px);transition:opacity .25s ease,transform .48s var(--map-ease),visibility .48s}
.has-selection .state-project-panel{opacity:1;visibility:visible;transform:translateX(0)}
.state-panel-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;padding-bottom:16px;flex-shrink:0}.state-panel-heading p{font-size:.65rem;letter-spacing:.05em;color:var(--red);margin-bottom:7px}.state-panel-heading h3{font-size:1.8rem;letter-spacing:-.04em;line-height:1.1;outline:none}.state-panel-heading button{background:none;border:0;color:var(--red);min-height:44px;padding:0 2px;font-size:.8rem;white-space:nowrap}
.state-table-scroll{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:var(--red) transparent}.state-table-scroll table{border-collapse:collapse;width:100%;font-size:.75rem;text-align:left;table-layout:fixed}.state-table-scroll th{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--ink);padding:10px 5px;font-size:.65rem;font-weight:500;z-index:1}.state-table-scroll th:first-child{width:58px}.state-table-scroll th:last-child{width:108px;text-align:right}.state-table-scroll td{vertical-align:top;padding:15px 5px;border-bottom:1px solid var(--rule);line-height:1.45}.state-table-scroll summary{min-height:44px;font-size:.85rem;font-weight:600;cursor:pointer;line-height:1.4;list-style:none;padding:0 0 7px;color:var(--ink)}.state-table-scroll summary::after{content:' +';color:var(--red)}.state-table-scroll details[open] summary::after{content:' −'}.state-table-scroll details p{font-size:.75rem;margin:8px 0;color:var(--muted)}
.table-area,.table-category{display:block;font-size:.65rem;color:var(--muted);margin-top:4px}.table-value{text-align:right;font-variant-numeric:tabular-nums;font-size:.7rem;white-space:nowrap}.table-year{font-size:.7rem;color:var(--muted)}.state-table-note{font-size:.65rem;line-height:1.45!important;color:var(--muted);padding-top:12px;flex-shrink:0}#state-empty{font-size:.9rem;padding:25px 0;line-height:1.6}
@media(max-width:950px),(max-height:700px){.map-region-tabs{display:flex}.state-map-intro label{display:none}.region-caption{display:none}.state-region svg{inset:0;height:100%}.state-map-regions{grid-template-columns:minmax(0,1fr) minmax(0,0fr)}.view-east .state-map-regions{grid-template-columns:minmax(0,0fr) minmax(0,1fr)}.project-map:not(.view-east) #borneo-region,.project-map.view-east #peninsula-region{opacity:0;pointer-events:none}.state-map-workspace,.has-selection .state-map-workspace{display:block}.state-map-visual{height:100%;transition:height .48s var(--map-ease)}.has-selection .state-map-visual{height:40%}.state-project-panel{position:absolute;bottom:0;left:0;right:0;height:60%;transform:translateY(45px);padding:14px 16px 10px}.has-selection .state-project-panel{transform:translateY(0)}.has-selection .state-legend{display:none}.has-selection .state-callout:not(.is-selected){opacity:0;pointer-events:none}.has-selection .state-callout{transition:opacity .2s ease}.state-panel-heading{padding-bottom:8px}.state-panel-heading h3{font-size:1.5rem}}
@media(max-width:700px){.chapter-mode main>.map-view{padding:20px 20px 12px}.chapter-mode .map-view .projects-heading{padding:0;margin:0 0 12px}.chapter-mode .map-view .projects-heading h2{font-size:1.8rem}.chapter-mode .map-view .project-view-bar{position:static;width:100%;margin:0 0 6px}.state-map-intro{margin-bottom:0;display:block}.state-map-intro p{font-size:.75rem;margin-bottom:3px}.state-map-intro>div{display:block;position:absolute;top:65px;right:20px;z-index:2}.state-map-intro select{max-width:clamp(112px,calc(100vw - 204px),160px);font-size:.7rem}.view-switch button{padding:8px 12px;font-size:.75rem;min-width:52px}.map-region-tabs{gap:18px}.map-region-tabs button{font-size:.75rem}.state-legend{gap:10px;font-size:.6rem;padding:3px 0 8px}.map-attribution{font-size:.55rem}.state-project-panel{padding:12px 8px}.state-table-scroll th:first-child{width:46px}.state-table-scroll th:last-child{width:92px}.state-table-scroll td{padding:12px 3px}.state-table-scroll summary{font-size:.75rem}.state-table-scroll th{font-size:.6rem}.table-value{font-size:.65rem}.state-table-note{font-size:.6rem}}
@media(max-width:950px) and (max-height:680px){.state-project-panel{height:75%}.has-selection .state-map-visual{height:25%}.state-table-note{display:none}.state-panel-heading h3{font-size:1.2rem}.state-panel-heading p{font-size:.55rem}}
@media(prefers-reduced-motion:reduce){.project-map *{transition:none!important}}
