.civic-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.civic-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px 0 18px;flex-wrap:wrap}.civic-toolbar .tabs{margin:0;align-items:center;flex-wrap:wrap}.capital-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;align-items:start}.capital-stage{border:1px solid #45655f;border-radius:18px;overflow:hidden;background:#19363f;min-width:0;box-shadow:0 25px 55px #0003}.capital-svg{display:block;width:100%;min-height:380px;max-height:760px}.city-caption{fill:#f1e5c5;font:32px Georgia,serif}.city-plot[role=button]{cursor:pointer;outline:none}.city-plot[role=button]:hover .plot-hit,.city-plot[role=button]:focus-visible .plot-hit{stroke:#e9d49c;fill:#e9d49c22;stroke-width:3px}.city-plot:focus-visible .city-building{filter:brightness(1.2)}.city-plot.is-target .plot-hit{stroke:#badbc4;stroke-width:1.5;stroke-dasharray:5 3}.city-plot.is-selected .city-building{filter:brightness(1.12)}.city-building.is-building{opacity:.68}.capital-detail p{font-size:13px;line-height:1.7;color:var(--muted)}.capital-detail .civic-actions{margin:18px 0}.city-portrait{display:block;width:160px;height:130px;margin:auto}.city-theme-sand .capital-svg .city-building,.city-theme-sand .city-portrait{filter:sepia(.3) saturate(.85)}.city-theme-slate .capital-svg .city-building,.city-theme-slate .city-portrait{filter:hue-rotate(22deg) saturate(.65)}.civic-synergies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0 12px}.civic-synergies>div{padding:18px;background:#152a2f;border:1px solid #344d50;border-radius:12px}.civic-synergies>div.is-active{border-color:#78ad91;background:#1d3935}.civic-synergies span{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#9fb4af}.civic-synergies strong,.civic-synergies small{display:block;margin-top:6px}.civic-synergies strong{font-size:14px}.civic-synergies small{color:var(--muted);font-size:12px}.civic-network-list{padding:18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.civic-network-list button{display:flex;text-align:left;align-items:center;gap:10px;background:#183137;border:1px solid #42615c;color:var(--ink);border-radius:10px;padding:8px}.civic-network-list button.active{border-color:var(--accent)}.civic-network-list svg{width:90px;height:80px;flex-shrink:0}.civic-network-list small{display:block;color:var(--muted);margin-top:5px}.council-brief{display:grid;grid-template-columns:1.1fr 1fr;gap:35px;padding:30px 35px;background:linear-gradient(115deg,#274b46,#19313b);border:1px solid #486b60;border-radius:16px;margin-bottom:15px}.council-brief h2{font:34px Georgia,serif;margin:10px 0}.council-brief p{color:#b8cdc2;max-width:55ch;line-height:1.7}.council-priorities{display:grid;gap:14px}.council-priorities a{display:block;text-decoration:none;color:var(--ink);padding:4px 0}.council-priorities span{display:flex;justify-content:space-between;font-size:13px}.council-priorities progress{width:100%;height:5px;accent-color:#b8c99b;display:block;margin:8px 0}.council-priorities small{color:var(--muted);font-size:11px}.civic-session-strip{display:flex;flex-wrap:wrap;gap:20px;border-bottom:1px solid var(--line);padding:4px 0 20px;margin-bottom:22px;font-size:13px}.civic-session-strip a{margin-left:auto;color:var(--accent)}.civic-dossiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.civic-dossiers h2{font-size:21px}.civic-dossiers p{color:var(--muted);line-height:1.6}.civic-choice{padding:15px;border:1px solid var(--line);border-radius:10px;margin-top:14px}.civic-choice.chosen{border-color:#85b499;background:#203a36}.civic-choice p{margin:8px 0 12px}.civic-journal{margin-top:30px}.civic-journal>h2{font:30px Georgia,serif;margin:10px 0 24px}.civic-journal article{padding:20px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.civic-journal article>div{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.civic-journal time{font-size:11px;color:var(--muted)}.civic-journal h3{font-size:18px;margin:12px 0 8px}.civic-journal p{white-space:pre-wrap;line-height:1.8;max-width:90ch;margin-top:12px}.civic-map-links{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.civic-map-links .btn-game{font-size:11px}.atlas-owned-picker{display:flex;align-items:center;gap:12px;margin-bottom:15px;flex-wrap:wrap}.atlas-owned-picker select{max-width:280px}.atlas-owned-picker a{color:var(--accent);font-size:13px}.national-project-pin{cursor:pointer}.national-project-pin text{font-family:system-ui;font-size:12px;fill:#f7eccb;paint-order:stroke;stroke:#203c40;stroke-width:3px}.national-project-pin circle{fill:#294941;stroke:#d8c78b;stroke-width:1.5px}#modal .civic-synergies{grid-template-columns:1fr}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(min-width:1700px){.capital-layout{grid-template-columns:minmax(0,1fr) 350px}}
@media(max-width:1150px){.capital-layout{grid-template-columns:1fr}.capital-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.capital-detail .eyebrow,.capital-detail h2{grid-column:1/-1}.capital-detail .city-portrait{grid-row:3/6}.council-brief{grid-template-columns:1fr}.civic-network-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.capital-svg{min-height:260px}.capital-detail{display:block}.civic-synergies,.civic-dossiers,.civic-network-list{grid-template-columns:1fr}.council-brief{padding:22px}.council-brief h2{font-size:29px}.civic-toolbar{align-items:start}.civic-network-list button{min-height:82px}.civic-session-strip a{margin-left:0}.capital-stage{border-radius:10px}.civic-synergies>div{padding:12px}.civic-dossiers .panel{padding:18px}}

@media(max-width:700px){.content:has(.capital-layout) .page-heading,.content:has(.civic-dossiers) .page-heading{flex-direction:column;align-items:stretch;gap:16px}.content:has(.capital-layout) .page-heading .civic-actions{flex-direction:row}.content:has(.capital-layout) .page-heading .eyebrow{white-space:normal}}
/* Architectural capital: natural ground, compact urban blocks, unobtrusive edit grid. */
/* A roomy writing desk shared by the capital and the public profile. */
#modal:has(form[data-form="civic_identity"]){width:min(1180px,96vw);max-width:1180px;padding:0;max-height:94dvh}
#modal:has(form[data-form="civic_identity"]) .modal-heading,#modal:has(form[data-form="civic_identity"]) .modal-actions{padding:20px 28px;background:#172c30;position:sticky;z-index:2}
#modal:has(form[data-form="civic_identity"]) .modal-heading{top:0;border-bottom:1px solid var(--line)}
#modal:has(form[data-form="civic_identity"]) .modal-actions{bottom:0;margin:0;border-top:1px solid var(--line)}
#modal:has(form[data-form="civic_identity"]) .modal-body-game{padding:22px 28px}
.identity-intro{color:var(--muted);font-size:14px;line-height:1.7;max-width:85ch;margin:0 0 25px}
.identity-layout{display:grid;grid-template-columns:275px minmax(0,1fr);gap:28px}.identity-layout section{padding:20px;border:1px solid #3d5651;border-radius:12px;background:#1a302f}.identity-layout h3{font:22px Georgia,serif;margin:5px 0 18px}.identity-art,.identity-writing{display:flex;flex-direction:column;gap:20px;min-width:0}.identity-art .field{margin-bottom:12px}.identity-art small,.identity-writing small{font-size:11px;color:var(--muted);line-height:1.6}.identity-details .eyebrow{display:block;margin-bottom:18px}.identity-story>p{color:var(--muted);font-size:13px}.identity-story .community-editor textarea{min-height:360px;width:100%;resize:vertical;padding:18px;font-size:15px;line-height:1.8}.identity-story .community-preview{min-height:150px;max-height:420px;overflow:auto;background:#142724;padding:20px}.identity-story .community-toolbar{gap:6px;flex-wrap:wrap}.shield-colors{display:flex;gap:10px}.shield-colors .field{min-width:0;flex:1}.shield-colors input{padding:3px;width:100%;height:36px}.nation-shield{display:block;width:140px;height:150px;filter:drop-shadow(0 8px 8px #0003)}[data-shield-preview] .nation-shield{margin:0 auto 20px;width:132px}.player-avatar{display:block;width:88px;height:88px;object-fit:cover;border-radius:12px;flex-shrink:0}.avatar-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:15px 0}.avatar-choices label{cursor:pointer;text-align:center;padding:5px;border:1px solid transparent;border-radius:7px;position:relative}.avatar-choices label:has(input:checked){border-color:#d7bb7d;background:#38524a}.avatar-choices label:focus-within{outline:2px solid #d7bb7d}.avatar-choices input{position:absolute;opacity:0;width:100%;height:100%;inset:0;cursor:pointer}.avatar-choices .player-avatar{width:100%;height:auto}.avatar-choices span{display:block;font-size:9px;margin-top:5px}.custom-avatar-choice{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:14px}[data-avatar-preview] .player-avatar{margin:auto;width:104px;height:104px}[data-avatar-upload]{width:100%;font-size:11px!important;padding:9px!important}[data-avatar-status]{font-size:12px;color:var(--accent);overflow-wrap:anywhere}.profile-hero{display:flex;gap:35px;align-items:center;border:1px solid #557063;border-radius:16px;background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--profile-color) 50%,transparent),transparent 75%),#203d38;padding:38px 44px;overflow:hidden}.profile-heraldry .nation-shield{width:160px;height:178px}.profile-identity{min-width:0}.profile-identity h2{font:42px Georgia,serif;margin:10px 0;overflow-wrap:anywhere}.profile-motto{font:italic 17px Georgia,serif;color:#d7d2b2;line-height:1.6}.profile-leader{display:flex;gap:16px;align-items:center;margin-top:24px}.profile-leader .player-avatar{width:70px;height:70px}.profile-leader strong,.profile-leader span,.profile-leader small{display:block;overflow-wrap:anywhere}.profile-leader span{font-size:13px;color:#d0d8ce;margin:4px 0}.profile-leader small{font-size:11px;color:#a9bfb4;line-height:1.7}.profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:22px 0}.profile-stats strong{font:30px Georgia,serif;display:block;margin:10px 0}.profile-stats small{font-size:11px;color:var(--muted)}.profile-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.profile-story{min-width:0;min-height:300px}.profile-story h2{font:28px Georgia,serif;margin:12px 0 25px}.profile-story .community-content{line-height:1.9;overflow-wrap:anywhere}.profile-facts .kv{gap:16px;align-items:start}.profile-facts .kv strong{text-align:right;overflow-wrap:anywhere;max-width:62%;font-size:13px}.profile-facts .small-copy{margin:20px 0;line-height:1.7}.player-profile>.page-heading{gap:16px}.player-profile a{overflow-wrap:anywhere}
@media(max-width:850px){.identity-layout{grid-template-columns:1fr}.identity-art{display:grid;grid-template-columns:1fr 1fr;align-items:start}.profile-body{grid-template-columns:1fr}.profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.player-profile>.page-heading{flex-direction:column;align-items:start}}
@media(max-width:550px){#modal:has(form[data-form="civic_identity"]) .modal-heading,#modal:has(form[data-form="civic_identity"]) .modal-actions,#modal:has(form[data-form="civic_identity"]) .modal-body-game{padding:16px}.identity-art{grid-template-columns:1fr}.identity-layout section{padding:16px}.identity-story .community-editor textarea{min-height:320px}.identity-art .avatar-choices{grid-template-columns:repeat(3,1fr)}.identity-art .avatar-choices .player-avatar{max-width:80px;margin:auto}.profile-hero{padding:24px;gap:15px;flex-direction:column;align-items:start}.profile-heraldry .nation-shield{width:95px;height:102px}.profile-identity h2{font-size:32px}.profile-leader{align-items:start}.profile-stats{gap:10px}.profile-stats .panel{padding:15px}.profile-stats strong{font-size:24px}.profile-body .panel{padding:20px}}
.capital-realistic{aspect-ratio:960/700;min-height:440px;background:#9daf90;max-height:none}
.capital-stage:has(.capital-realistic){border-color:#627665;border-radius:10px;box-shadow:0 18px 45px #0003}
.capital-realistic .city-plot .plot-hit{fill:transparent}
.capital-realistic .city-infill{opacity:.93}
.capital-realistic.is-arranging .city-infill{opacity:.4}
.capital-realistic .city-plot.is-target .plot-hit{fill:#e4dca533;stroke:#f0d89c;stroke-width:1.8}
.capital-realistic .city-plot:hover .city-selection,.capital-realistic .city-plot:focus-visible .city-selection{stroke:#ffe2a1;stroke-width:2.6}
.capital-realistic .city-plot.is-selected .city-building{filter:brightness(1.05)}
.capital-realistic .city-plot:focus-visible{outline:none}
.capital-realistic .city-plot .city-level{opacity:.85}
.city-scene-note{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 0 0;max-width:95ch}
.city-portrait{width:190px;height:160px}
.city-theme-sand .capital-realistic .city-building{filter:sepia(.12) saturate(.9)}
.city-theme-slate .capital-realistic .city-building{filter:saturate(.6) hue-rotate(10deg)}
@media(min-width:1400px){.capital-layout{grid-template-columns:minmax(0,1fr) 280px;gap:16px}.capital-detail{padding:20px}}
@media(max-width:700px){.capital-realistic{min-height:280px}.city-scene-note{font-size:10px}}
.objectives-intro{padding:20px 24px;margin:0 0 24px;background:#203b37;border-left:3px solid #d6b97c;border-radius:8px}.objectives-intro p{margin:6px 0;color:#c1d1c9;line-height:1.7}.objectives-intro small{color:var(--muted)}.objective-card{display:flex;flex-direction:column}.objective-top{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:12px}.objective-status{font-size:11px;padding:4px 9px;border:1px solid #65776b;border-radius:5px;color:#d6c895;white-space:nowrap}.objective-card.is-complete .objective-status{color:#a9d7b7;border-color:#527e63}.objective-goal{min-height:3em}.objective-progress{margin:4px 0 20px}.objective-progress span{font-size:12px;color:#b1c6bc}.objective-progress progress{display:block;width:100%;height:6px;accent-color:#abc696;margin-top:8px}.objective-steps{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:16px}.objective-steps li{display:flex;gap:12px;align-items:flex-start}.objective-check{display:grid;place-items:center;border:1px solid #53675f;width:25px;height:25px;border-radius:50%;font-size:12px;flex-shrink:0;color:var(--muted)}.objective-steps strong{font-size:14px;font-weight:600}.objective-steps p{font-size:12px;margin:5px 0 0;line-height:1.7}.objective-steps .is-done .objective-check{background:#315647;color:#c1e3c5;border-color:#648772}.objective-steps .is-next .objective-check{color:#f0d796;border-color:#c4ae79}.objective-steps .is-next strong{color:#efdfb8}.objective-benefit{padding:14px 16px;background:#203731;border:1px solid #375148;border-radius:8px;margin-top:auto}.objective-benefit small,.objective-next>small{display:block;color:#aabeb1;font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}.objective-benefit strong{font-size:13px;font-weight:500;color:#c7ddc8}.objective-next{margin:18px 0 0}.objective-next .btn-game{background:#d6b97c;color:#14242b;white-space:normal;text-align:left}.objective-next p{font-size:11px;margin:9px 0 0}.objective-success{color:#a6cfaf!important;margin:18px 0 0;font-size:13px}.objective-alternatives{border-top:1px solid var(--line);margin-top:20px;padding-top:14px;font-size:12px}.objective-alternatives summary{color:var(--muted);cursor:pointer}.objective-alternatives>div{padding:15px 0 0}.objective-alternatives p{font-size:12px;margin:6px 0 10px}.objective-hint{padding:15px 20px;margin-bottom:20px;display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid #5a7561;background:#1b322d;border-radius:9px}.objective-hint strong{display:block;margin:4px 0;font-size:15px}.objective-hint p{font-size:12px;color:#bfd0c4;margin:0;line-height:1.6}.objective-hint .btn-game{flex-shrink:0}@media(max-width:700px){.objective-hint{align-items:stretch;flex-direction:column;gap:12px}.objective-top{align-items:start}.objective-goal{min-height:0}.objectives-intro{padding:16px}.objective-steps strong{font-size:13px}}
/* Slow ambient traffic; selection and construction remain stationary. */
.city-traffic-x{animation:city-drive-x 12s linear infinite;pointer-events:none}.city-traffic-y{animation:city-drive-y 14s linear infinite;pointer-events:none}
@keyframes city-drive-x{0%{transform:translate(-24px,-14px);opacity:0}10%,90%{opacity:1}100%{transform:translate(24px,14px);opacity:0}}
@keyframes city-drive-y{0%{transform:translate(24px,-14px);opacity:0}10%,90%{opacity:1}100%{transform:translate(-24px,14px);opacity:0}}
.capital-realistic.is-arranging .city-traffic-x,.capital-realistic.is-arranging .city-traffic-y{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.city-traffic-x,.city-traffic-y{animation:none}}