/* Click focus is quiet; keyboard focus remains visible. */
html:not([data-input=keyboard]) :focus{outline:none!important}
:focus:not(:focus-visible){outline:none}
html[data-input=keyboard] button:focus-visible,html[data-input=keyboard] a:focus-visible,html[data-input=keyboard] [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
html:not([data-input=keyboard]) .city-node:focus .town-art{transform:none}
button,a,[role=button]{-webkit-tap-highlight-color:transparent}
.event-text{font-size:14px;line-height:1.8}.option-title{font-size:14px}.option-text{font-size:12px;line-height:1.75}.chip{font-size:10px}.speaker-name{font-size:13px}.speaker-role{font-size:11px}.hint{font-size:11px;line-height:1.7}.promise-preview{font-size:11px}.tab{font-size:12px}.small-btn{font-size:11px}.secondary{font-size:12px}.under-button{font-size:11px}.modal-content p{font-size:14px;line-height:1.75}.modal-content .hint{font-size:11px}.op-btn strong{font-size:13px}.op-btn small{font-size:11px}.content-sub,.person-card p{font-size:13px;line-height:1.7}
dialog{max-height:calc(100dvh - 40px);overflow:auto}.modal-content:has(.tutorial-top){padding:28px 32px}.tutorial-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.tutorial-top .flag{width:60px;height:36px;object-fit:cover}.tutorial-top>span{font-size:10px;letter-spacing:.1em;color:var(--muted);text-align:right}.tutorial-top+h1{font-size:36px;line-height:1.12;margin:10px 0 15px}.tutorial-lead{font-size:15px!important;line-height:1.7!important;color:var(--muted)}.tutorial-goal{padding:17px 19px;border:1px solid var(--green);background:color-mix(in srgb,var(--green) 8%,var(--panel));margin:22px 0;border-radius:5px}.tutorial-goal>span{font-size:9px;letter-spacing:.1em;color:var(--green);display:block;margin-bottom:7px}.tutorial-goal>strong{display:block;font-size:17px;font-weight:600}.tutorial-goal p{font-size:12px;margin:7px 0 0;color:var(--muted)}.turn-instructions{list-style:none;padding:0;margin:22px 0;display:grid;gap:18px}.turn-instructions li{display:flex;align-items:flex-start;gap:15px}.turn-instructions li>b{flex:0 0 30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);color:var(--gold);font-size:16px}.turn-instructions strong{font-size:14px;font-weight:600}.turn-instructions p{font-size:12px;line-height:1.75;margin:5px 0 0;color:var(--muted)}.tutorial-details{padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.tutorial-details summary{cursor:pointer;font-weight:500;line-height:1.6}.tutorial-details p{font-size:12px}.tutorial-reassurance{font-size:11px!important;color:var(--muted)}.modal-content:has(.tutorial-top)>.modal-actions{position:sticky;bottom:0;background:var(--panel);padding:15px 0 4px;margin:0;box-shadow:0 -12px 14px var(--panel);z-index:3}.start-reminder{display:grid;gap:6px;padding:17px 19px;border-left:2px solid var(--gold);background:var(--panel2);font-size:12px;margin:20px 0}.start-reminder strong{margin-bottom:4px}.first-turn-prompt{border-left:2px solid var(--gold);padding:12px 14px;background:var(--panel2);margin:18px 0}.first-turn-prompt>div{display:flex;justify-content:space-between;align-items:center}.first-turn-prompt span{font-size:9px;letter-spacing:.08em;color:var(--gold)}.first-turn-prompt button{background:none;border:0;color:var(--muted);font-size:20px;min-width:28px;min-height:28px}.first-turn-prompt p{font-size:12px;line-height:1.7;margin:5px 0 0}.scenario-card p{font-size:12px!important}.scenario-card small{font-size:10px;line-height:1.7}.scenario-card strong{font-size:15px}.scenario-kicker{font-size:10px}
.political-card{padding:22px;border:1px solid var(--line);border-left:3px solid var(--gold);margin:22px 0;background:var(--panel2);border-radius:4px}.political-card h3{font-family:var(--display);font-size:26px;font-weight:400;margin:9px 0}.political-card p{font-size:13px;line-height:1.8;color:var(--muted)}.chapter-dots{display:flex;gap:35px;align-items:center;margin:18px 0 25px}.chapter-dots>span{width:26px;height:26px;position:relative;display:grid;place-items:center;border:1px solid var(--line);font-size:12px;color:var(--muted)}.chapter-dots>span.visited{background:var(--gold);border-color:var(--gold);color:var(--panel)}.chapter-dots small{position:absolute;top:32px;white-space:nowrap;font-size:9px;color:var(--muted)}.story-stakes{border-left:2px solid var(--gold);padding:16px 19px;background:var(--panel2);margin:20px 0}.story-stakes strong{font-size:14px}.story-stakes p{font-size:13px;margin-bottom:0}.story-chapters{padding:0;list-style:none}.story-chapters li{display:flex;gap:22px;padding:18px 0;border-top:1px solid var(--line)}.story-chapters li>span{white-space:nowrap;font-family:var(--display);font-size:22px;color:var(--gold);min-width:70px}.story-chapters h3{margin:0;font-size:15px;font-weight:600}.story-chapters p{margin-bottom:0;font-size:13px}.political-ending{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.ribbon-story{color:var(--gold)!important}
.modal-content:has(.cinema-stage){padding:0;background:#182b32;color:#eee9dc}.cinema-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 24px;color:#acbebc;font-size:9px;letter-spacing:.1em;border-bottom:1px solid #3b5054}.cinema-head button{border:0;color:#e0c6a1;background:transparent;font-size:11px}.cinema-stage{height:clamp(230px,39vw,340px);position:relative;overflow:hidden;background:#111b1f}.cinema-canvas{display:block;width:100%;height:100%}.cinema-flag{position:absolute;left:24px;top:22px;width:44px;height:26px;opacity:.8;box-shadow:0 3px 12px #0004;pointer-events:none}.cinema-caption{padding:24px 30px 28px;border-top:1px solid #354a50}.cinema-caption .eyebrow{color:#d5b88c}.cinema-caption h2{font-size:30px;color:#f0eadf;margin:9px 0 12px}.cinema-caption p{color:#c0ceca;font-size:14px;line-height:1.8}.cinema-caption .primary{background:#d4b184;color:#1b2e34;border-color:#d4b184;min-width:200px}.cinema-caption>span{display:block;color:#9fb3b3;font-size:10px;margin-top:13px}.scene-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.scene-gallery button{text-align:left;padding:18px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--text);display:grid;grid-template-columns:27px 1fr;gap:10px}.scene-gallery button>span{font-family:var(--display);color:var(--gold);font-size:20px;grid-row:span 2}.scene-gallery strong{font-size:13px;font-weight:500;line-height:1.6}.scene-gallery small{font-size:10px;color:var(--muted)}.scene-gallery button:hover{border-color:var(--gold)}.cinema-setting{padding:11px 15px}.cinema-fallback{display:none;position:absolute;inset:0;perspective:750px;transform-style:preserve-3d}.use-fallback .cinema-fallback{display:block}.use-fallback canvas{visibility:hidden}.fallback-ground{position:absolute;width:340px;height:220px;left:calc(50% - 170px);top:45px;background:#39545a;transform:rotateX(55deg) rotateZ(-15deg);box-shadow:0 25px 0 #1d3037}.fallback-building{position:absolute;width:100px;height:120px;background:#88a193;left:calc(50% - 50px);top:70px;transform:rotateY(-20deg);box-shadow:18px 8px 0 #456c68,0 20px 45px #0005;display:flex;align-items:center;justify-content:center;gap:10px}.fallback-building:before{content:'';position:absolute;top:-15px;left:7px;width:100px;height:17px;background:#b8b695;transform:skewX(-40deg)}.fallback-building i{display:block;width:14px;height:25px;background:#d4b580}.fallback-beacon{position:absolute;left:calc(50% + 95px);top:125px;width:8px;height:80px;background:#738e89}.fallback-beacon:before{content:'';position:absolute;top:-7px;left:-6px;width:20px;height:18px;background:#d5b678;box-shadow:0 0 35px #d5b67877}.fallback-crate{position:absolute;left:calc(50% - 115px);top:172px;width:50px;height:35px;background:#a48661;transform:rotateY(-20deg);box-shadow:10px 5px 0 #6c6452}
@media(max-width:650px){.modal-content:has(.tutorial-top){padding:23px 20px}.tutorial-top+h1{font-size:30px}.tutorial-top>span{font-size:8px}.tutorial-lead{font-size:14px!important}.tutorial-goal{padding:14px}.tutorial-goal>strong{font-size:15px}.turn-instructions li{gap:11px}.turn-instructions p{font-size:12px}.modal-content:has(.tutorial-top)>.modal-actions{bottom:0}.cinema-head{padding:14px 16px;font-size:8px}.cinema-caption{padding:20px}.cinema-caption h2{font-size:25px}.cinema-stage{height:clamp(160px,52vw,220px)}.cinema-flag{top:16px;left:16px}.scene-gallery{grid-template-columns:1fr}.story-chapters li{gap:13px}.story-chapters li>span{font-size:20px;min-width:70px}.option-title{font-size:13px}.option-text{padding-left:0;font-size:12px}.effects{padding-left:0}.event-text{font-size:13px}.political-card{padding:17px}.political-card h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){.fallback-beacon:before{box-shadow:none}}
