/* v0.52: capitals, readable campaign and unambiguous entry. */
[hidden]{display:none!important}
button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--line);outline-offset:3px}
button:disabled{cursor:not-allowed}
.entryChoice{margin:30px 0 16px;padding:22px 26px;border:1px solid var(--line);border-radius:18px;background:var(--paper-2);box-shadow:0 6px 24px rgb(63 37 21 / .09)}
.entryTabs{display:flex;gap:6px;padding:5px;border-radius:12px;background:var(--paper-2);max-width:420px;margin-bottom:20px}
.entryTabs button{flex:1;min-height:46px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-weight:700}
.entryTabs button[aria-pressed=true]{background:var(--paper-2);color:var(--ink);box-shadow:0 6px 24px rgb(63 37 21 / .09)}
.entryChoice h2{margin:8px 0;font:32px 'Cormorant Garamond',Georgia,serif;color:var(--ink)}
.entryChoice p{max-width:770px;line-height:1.6;color:var(--ink);margin:8px 0}
#entryStatus{font-size:13px;color:var(--ink)}
.invitationWelcome{border-color:var(--line);background:var(--paper-2)}
.invitationWelcome h2{font-size:24px}
.invitationWelcome input{max-width:560px;font-size:15px}
.choose .cards{margin-top:24px}
.choose .card{transition:transform .18s,border-color .18s,box-shadow .18s}
.choose .card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgb(63 37 21 / .09);border-color:var(--line)}
.choose .card button{min-height:46px}
.capitalRace{padding:16px 18px;margin:14px 0 18px;border:1px solid var(--line);border-radius:14px;background:var(--paper-2);box-shadow:0 6px 24px rgb(63 37 21 / .09)}
.raceHeading{display:flex;align-items:center;gap:12px}
.raceHeading>div{flex:1;min-width:0}
.raceCrown{font-size:40px;color:var(--ink);line-height:1;text-shadow:none}
.raceKicker{display:block;font-size:10px;font-weight:800;letter-spacing:1.9px;color:var(--ink);margin-bottom:5px}
.raceHeading b{display:block;font-size:18px;color:var(--ink)}
.raceHeading button{min-height:40px;white-space:nowrap}
.raceTrack{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px;max-width:500px}
.raceTrack span{text-align:center;border:1px solid var(--line);border-radius:5px;background:var(--paper-2);color:var(--ink);font-size:21px;line-height:29px}
.raceTrack .held{color:var(--ink);background:var(--paper-2);border-color:var(--line)}
.capitalRace p{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--ink)}
.mapSearch{flex-wrap:wrap}.mapSearch input{flex:1;min-width:160px}.mapSearch button{min-height:42px}
#highlightCapitals[aria-pressed=true]{background:var(--paper-2);color:var(--ink);border-color:var(--line)}
.highlightCapitals .atlas-capital .atlas-surface{stroke:#ffe6a1;stroke-width:3;fill-opacity:.64;filter:drop-shadow(0 0 5px #f8d37c88)}
.atlas-crown{fill:#ffe8a5!important}
.capitalLandNotice{display:flex;gap:12px;align-items:center;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0}
.capitalLandNotice>span{font-size:30px;color:var(--ink)}
.capitalLandNotice b{display:block;font-size:14px}.capitalLandNotice small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px}
.capitalBoard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 26px}
.capitalTile{display:flex;align-items:center;gap:12px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--paper-2);min-width:0}
.capitalTile:hover{border-color:var(--line);background:var(--paper-2)}.capitalTile.mine{border-color:var(--line);background:var(--paper-2)}
.capitalTile img{width:38px;height:44px;object-fit:contain}.capitalTile b,.capitalTile small{display:block}.capitalTile small{font-size:12px;color:var(--muted);line-height:1.5}.capitalTile b{font-size:15px;margin-bottom:5px}
.capitalBoardHeading{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:24px}
.capitalBoardHeading h3{margin:0;font:25px 'Cormorant Garamond',Georgia,serif}.capitalBoardHeading small{color:var(--muted)}
.seasonHero{border-color:var(--line);background:var(--paper-2)}
.seasonHero h2{font-size:36px}.seasonTable{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.seasonRow{padding:16px;background:var(--paper-2)}.seasonRow:nth-child(even){background:var(--paper-2)}.seasonRow.me{background:var(--paper-2);border-left:3px solid var(--line)}
.seasonHouse{font-size:16px}.seasonScore{font-size:22px;color:var(--ink);white-space:nowrap}.seasonBreakdown{color:var(--ink);font-size:12px}
.quizCollection{margin-top:20px;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--paper-2)}
.quizCollection h3{font:26px 'Cormorant Garamond',Georgia,serif;margin:7px 0 10px}.quizCollection p{color:var(--ink);line-height:1.6;font-size:14px;max-width:650px}
.quizCollection progress{display:block;width:100%;height:9px;accent-color:var(--wine);margin-top:16px}
.challengeHead{gap:12px;align-items:center}.challengeTimer{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:108px;text-align:center}
.challengePrompt{font-size:clamp(18px,2.2vw,24px);line-height:1.5}.challengeOptions button{line-height:1.45;min-height:56px;padding:14px 16px;text-align:left}
.challengeOptions button:focus-visible{background:var(--paper-2);outline-color:var(--line)}
.quizMeta{line-height:1.6;color:var(--ink)}.challengeCount{line-height:1.6}
.houseTabNav,.seasonTabs{gap:6px;flex-wrap:wrap}.seasonTabs button{min-height:42px}
.estateTop h2{line-height:1.15}.estateTop .hint{line-height:1.65}
@media(max-width:850px){.capitalBoard{grid-template-columns:repeat(2,minmax(0,1fr))}.capitalRace{padding:14px}.raceHeading b{font-size:16px}.raceCrown{font-size:32px}}
@media(max-width:560px){.entryChoice{padding:18px;margin-top:22px}.entryChoice h2{font-size:28px}.entryTabs{max-width:none}.entryChoice p{font-size:14px}.capitalRace{margin:12px 0}.raceHeading{gap:8px}.raceHeading button{font-size:12px;padding:8px}.raceHeading b{font-size:14px}.raceKicker{font-size:9px;letter-spacing:1.3px}.raceTrack{max-width:none}.capitalBoard{gap:7px}.capitalTile{padding:10px 8px;gap:7px}.capitalTile img{width:28px;height:35px}.capitalTile b{font-size:13px}.capitalTile small{font-size:11px}.capitalBoardHeading{display:block}.capitalBoardHeading small{display:block;margin-top:8px}.seasonHero h2{font-size:29px}.seasonHouse{font-size:14px}.seasonScore{font-size:19px}.challengeTimer{min-width:90px;font-size:22px}.challengeHead h2{font-size:23px}.challengeOptions button{font-size:15px;padding:13px}.quizCollection{padding:16px}.mapSearch button{flex:1}.mapSearch input{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.choose .card{transition:none}.choose .card:hover{transform:none}}

.capitalRace button{border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:var(--paper-2);color:var(--ink)}.capitalRace button:hover{background:var(--paper-2)}
.capitalRace{padding-top:13px;padding-bottom:13px}.raceTrack{margin-top:10px}.raceTrack span{line-height:25px;font-size:19px}
#entryStatus:empty{display:none}
@media(max-width:560px){
 .top{padding:10px;min-height:0;gap:10px}.top .online{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:135px}.top .connection{font-size:9px;white-space:nowrap}.top .primaryResources>span{padding:8px}.top .primaryResources small{font-size:10px}
 .mapHeading{margin-bottom:8px}.mapHeading h2{font-size:25px!important}.capitalRace{padding:10px;margin:8px 0 12px}.raceHeading .raceKicker,.raceHeading .raceCrown,.capitalRace>p{display:none}.raceHeading b{white-space:nowrap;font-size:14px}.raceHeading button{min-height:34px;padding:7px 9px}.raceTrack{margin-top:8px;gap:5px}.raceTrack span{line-height:21px;font-size:17px}.mapSearch{gap:6px;margin-top:0;margin-bottom:10px}.mapSearch button{min-height:36px;padding:8px}.mapSearch input{padding:10px}.capitalBoard{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:560px){.estateTop{display:flex;flex-direction:column;align-items:stretch;gap:10px}.estateTop>div{width:100%}.estateTop .estateClose{order:-1;align-self:flex-end;min-height:34px;padding:7px 12px}.campaignRule{font-size:13px;line-height:1.6;padding:10px 12px}.estateTop h2{font-size:28px;margin-top:8px}}
