.play-index #main{max-width:none;padding:0;margin:0}.play-hero{position:relative;overflow:hidden;background:var(--stone-panel);color:var(--ink-inverse);min-height:450px;isolation:isolate}.play-hero-inner{max-width:1320px;margin:auto;padding:var(--s-8) var(--s-6) var(--s-8);position:relative;z-index:1;pointer-events:none}.play-hero-inner a{pointer-events:auto}.play-kicker{font:700 var(--t-dense)/var(--lh-dense) var(--sans);letter-spacing:var(--track-label);color:var(--ink-inverse)}.play-index .play-hero h1{font:400 var(--t-display)/var(--lh-head) var(--serif);letter-spacing:var(--track-display);max-width:700px;color:inherit;margin:var(--s-5) 0 var(--s-5)}.play-hero h1 em{color:var(--ink-inverse);font-weight:normal}.play-hero-inner>p:not(.play-kicker){max-width:370px;font-size:var(--t-dense);line-height:var(--lh-dense);color:var(--ink-inverse)}.play-hero-link{display:inline-flex;gap:var(--s-7);align-items:center;margin-top:var(--s-5);padding-bottom:var(--s-2);border-bottom:1px solid var(--rule);color:var(--ink-inverse);text-decoration:none;font-size:var(--t-dense)}.play-hero-map{position:absolute;width:56%;height:115%;object-fit:contain;right:0;top:-7%;opacity:.87;transform:rotate(-7deg);z-index:0;mask-image:none}.play-selection{max-width:1320px;margin:auto;padding:var(--s-7) var(--s-6) var(--s-8);scroll-margin-top:var(--s-9)}.play-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-5)}.play-index .play-section-heading h2{font:400 var(--t-title)/var(--lh-head) var(--serif);margin:0}.play-section-heading>span{font-size:var(--t-dense);color:var(--ink-2)}.play-games{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-6)}.play-game{display:block;color:var(--ink);text-decoration:none;min-width:0}.play-preview{height:215px;position:relative;overflow:hidden;background:var(--lime);border-top:1px solid var(--rule)}.play-preview img{width:100%;height:100%;object-fit:contain;transition:transform var(--dur) var(--ease)}.play-game:nth-child(2) .play-preview{background:var(--lime)}.play-game:nth-child(3) .play-preview{background:var(--lime)}.play-number{position:absolute;left:15px;top:13px;font:400 var(--t-dense)/var(--lh-dense) var(--sans);z-index:1;color:var(--ink-2)}.play-game-heading{display:flex;gap:var(--s-3);align-items:baseline;justify-content:space-between;margin:var(--s-4) 0 var(--s-2)}.play-index .play-game h3{font:400 var(--t-head)/var(--lh-head) var(--serif);margin:0;letter-spacing:var(--track-display)}.play-arrow{font-size:var(--t-head);transition:transform var(--dur) var(--ease)}.play-game p{font:400 var(--t-dense)/var(--lh-dense) var(--sans);margin:0 0 var(--s-3);color:var(--ink-2)}.play-game .play-meta{font-size:var(--t-dense);color:var(--ink-2)}.play-start{display:inline-block;font:500 var(--t-dense)/var(--lh-dense) var(--sans);padding:var(--s-1) 0;border-bottom:1px solid var(--rule)}.play-game:hover .play-preview img,.play-game:focus-visible .play-preview img{transform:scale(1.045)}.play-game:hover .play-arrow{transform:translate(3px,-3px)}.play-game:focus-visible{outline:3px solid var(--celeste);outline-offset:7px}.play-hero-inner{animation:play-arrive var(--dur) var(--ease) both}.play-games{animation:play-arrive var(--dur) var(--dur) var(--ease) both}@keyframes play-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
html:is([data-route="provinces"],[data-route="streets"],[data-route="parishGame"]){background:var(--lime)}html:is([data-route="provinces"],[data-route="streets"],[data-route="parishGame"]) body{background:var(--lime);font-family:var(--sans)}
.play-heading{max-width:1320px;margin:0 auto;padding:var(--s-5) var(--s-6) var(--s-5);text-align:left}.play-heading>a{display:inline-block;color:var(--ink-2);font:400 var(--t-dense)/var(--lh-dense) var(--sans);text-decoration:none;padding:var(--s-1) 0}.play-heading>a:hover{text-decoration:underline}.play-heading h1{font:400 var(--t-display)/var(--lh-head) var(--serif)!important;letter-spacing:var(--track-display)!important;max-width:none;margin:var(--s-3) 0 var(--s-2)!important;color:var(--ink)}.play-heading p{font:400 var(--t-dense)/var(--lh-dense) var(--sans);color:var(--ink-2);margin:0;max-width:720px}
html[data-route="provinces"] main,html[data-route="parishGame"] main{max-width:1320px;padding:0 var(--s-6) var(--s-6);margin:auto}html[data-route="provinces"] .play-heading,html[data-route="parishGame"] .play-heading{padding-inline:0}html[data-route="streets"] .category-select{max-width:1320px;margin:0 auto var(--s-4);padding:0 var(--s-6)}html[data-route="streets"] .category-heading p{display:none}html[data-route="streets"] .category-heading h2{font:500 var(--t-dense)/var(--lh-dense) var(--sans)}html[data-route="streets"] .category-card{min-height:76px;border-radius:var(--radius);padding:var(--s-3);background:var(--lime-raised)}html[data-route="streets"] .category-card-h{font:500 var(--t-dense)/var(--lh-dense) var(--sans)}html[data-route="streets"] .category-card.active{background:var(--lime);border-color:var(--rule);box-shadow:none}html[data-route="streets"] section.game{max-width:1320px;margin:0 auto;padding:0 var(--s-6)}html[data-route="streets"] .game-shell,html[data-route="provinces"] .game-shell{border-radius:var(--radius);box-shadow:none}html[data-route="provinces"] .panel-title{font:400 var(--t-head)/var(--lh-head) var(--serif)}html[data-route="provinces"] .panel-copy{font-size:var(--t-dense)}html[data-route="provinces"] .game-shell:not(.is-map-expanded) .play-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);min-height:0}html[data-route="provinces"] .game-shell:not(.is-map-expanded) .map-stage{min-height:490px}html[data-route="provinces"] .game-shell:not(.is-map-expanded) .map-holder{min-height:450px}html[data-route="provinces"] .status-bar{min-height:58px}html[data-route="provinces"] .game-panel{padding:var(--s-5)}html[data-route="provinces"] .rules{margin:var(--s-2) 0}html[data-route="provinces"] .primary-button{border-radius:var(--radius-ctl);margin-top:var(--s-4)}.play-rules{border-top:1px solid var(--rule);margin-top:var(--s-4)}.play-rules summary{cursor:pointer;font:400 var(--t-dense)/var(--lh-dense) var(--sans);padding:var(--s-3) 0;color:var(--ink-2)}html[data-route="parishGame"] .settings{padding:var(--s-4);margin:0;background:var(--lime-raised)}html[data-route="parishGame"] #parish-workspace{border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}html[data-route="parishGame"] .game-layout{border-bottom:0}html[data-route="streets"] .cu-footer{margin-top:var(--s-6)}html[data-route="provinces"] .map-orientation{display:none}
@media(max-width:720px){.play-hero{min-height:410px}.play-hero-inner{padding:var(--s-6) var(--s-5) var(--s-6)}.play-index .play-hero h1{font-size:var(--t-display)}.play-hero-inner>p:not(.play-kicker){max-width:260px;font-size:var(--t-dense)}.play-hero-map{width:85%;right:-30%;top:9%;height:105%;opacity:.25}.play-selection{padding:var(--s-5) var(--s-5) var(--s-6)}.play-section-heading{display:block}.play-section-heading>span{display:none}.play-index .play-section-heading h2{font-size:var(--t-head)}.play-games{grid-template-columns:1fr;gap:var(--s-6)}.play-preview{height:210px}.play-game-heading{margin-top:var(--s-4)}.play-heading{padding:var(--s-5) var(--s-4)}.play-heading h1{font-size:var(--t-display)!important;letter-spacing:var(--track-display)!important}.play-heading p{font-size:var(--t-dense)}html[data-route="provinces"] main,html[data-route="parishGame"] main{padding:0 var(--s-4) var(--s-5)}html[data-route="streets"] .category-select,html[data-route="streets"] section.game{padding:0 var(--s-4)}html[data-route="streets"] .category-card{min-width:160px;min-height:78px}html[data-route="provinces"] .game-shell:not(.is-map-expanded) .play-grid{grid-template-columns:1fr}html[data-route="provinces"] .game-shell:not(.is-map-expanded) .map-stage,html[data-route="provinces"] .game-shell:not(.is-map-expanded) .map-holder{min-height:300px}html[data-route="parishGame"] .settings{padding:var(--s-3);gap:var(--s-2);flex-wrap:wrap}html[data-route="parishGame"] .settings label{flex:1;min-width:120px}html[data-route="parishGame"] .settings #start{min-width:100%;margin:0}html[data-route="parishGame"] .map-heading{padding:var(--s-3)}html[data-route="parishGame"] .game-layout{min-height:0}}
@media(prefers-reduced-motion:reduce){.play-hero-inner,.play-games{animation:none}.play-preview img,.play-arrow{transition:none}}
html[data-route="provinces"] .game-shell:not(.is-map-expanded) .map-holder{height:clamp(450px,58vh,620px)}
@media(max-width:720px){html[data-route="provinces"] .game-shell:not(.is-map-expanded) .map-holder{height:330px}}

html[data-route="parishGame"] #parish-workspace:not(.is-map-expanded)>.game-focus-bar{padding:var(--s-2) var(--s-3);background:var(--lime-raised);border-bottom:1px solid var(--rule)}
html[data-route="streets"] :is(.cu-footer,.info-strip,.cu-search) a,html[data-route="streets"] a.cu-search{color:var(--ink);text-underline-offset:3px}

/* Shared page grid; the map and its learning panel retain their behaviours. */
.play-hero { background:var(--stone-panel); color:var(--ink-inverse); border-bottom:var(--zocalo-h) solid var(--zocalo-band); }
.play-hero-inner,.play-selection,.play-heading { max-width:var(--page-max); padding-inline:var(--gutter); }
.play-index .play-hero h1 { font-size:var(--t-display); line-height:var(--lh-display); }
.play-hero h1 em { color:var(--celeste-pale); }
.play-hero-map { mask-image:none; }
.play-kicker { font:700 var(--t-label)/var(--lh-dense) var(--sans); letter-spacing:var(--track-label); color:var(--celeste-pale); }
.play-preview { border-radius:var(--radius); border-bottom:var(--zocalo-h) solid var(--zocalo-band); }
.play-game:nth-child(n) .play-preview { background:var(--lime-sunken); }
.play-heading h1 { font-size:var(--t-display)!important; line-height:var(--lh-display); }
.play-heading>a { min-height:var(--hit); display:inline-flex; align-items:center; }
.play-game .play-meta { font-size:var(--t-dense); }
html[data-route="provinces"] main,html[data-route="parishGame"] main { max-width:var(--page-max); padding:0 var(--gutter) var(--s-6); }
html[data-route="streets"] .category-select,html[data-route="streets"] section.game { max-width:var(--page-max); padding-inline:var(--gutter); }
html[data-route="streets"] .category-card { min-height:var(--s-8); border-radius:var(--radius); }
html[data-route="streets"] .category-card.active { background:var(--ochre-pale); }
html[data-route="provinces"] .game-shell:not(.is-map-expanded) .play-grid { grid-template-columns:minmax(0,8fr) minmax(0,4fr); }
html[data-route="provinces"] .game-shell,html[data-route="streets"] .game-shell,html[data-route="parishGame"] #parish-workspace { border-radius:var(--radius); border-bottom:var(--zocalo-h) solid var(--zocalo-band); }
html[data-route="parishGame"] .game-layout { grid-template-columns:minmax(0,8fr) minmax(0,4fr); }
html[data-route="parishGame"] .settings { flex-wrap:wrap; gap:var(--s-4); }
html[data-route="parishGame"] .settings label { flex:1; min-width:0; }
html[data-route="parishGame"] .settings #start { min-height:var(--hit); }
:root .mode-option input { position:absolute; opacity:0; width:1px; height:1px; min-height:0; }
:root .mode-option { min-height:var(--hit); display:block; }
:root .mode-option span { min-height:var(--hit); font:600 var(--t-dense)/var(--lh-dense) var(--sans); border-radius:var(--radius-ctl); }
:root .mode-option input:focus-visible+span { outline:3px solid var(--celeste); outline-offset:4px; }
:root .mode-option input:checked+span { background:var(--ochre-pale); color:var(--ink); border-color:var(--celeste); }
:root .category-card { font:var(--t-dense)/var(--lh-dense) var(--sans); }
:root .category-card .category-card-h { font-size:var(--t-body); }
:root .category-card .category-card-n { font-size:var(--t-dense); }
:root .category-card .category-card-icon { display:none; }
:root .settings select { min-height:var(--hit); }
:root .map-heading #basemap-toggle { min-height:var(--hit); }
:root .map-heading { letter-spacing:0; }
@media(max-width:850px) {
 html[data-route="provinces"] .game-shell:not(.is-map-expanded) .play-grid { grid-template-columns:1fr; }
 html[data-route="parishGame"] .game-layout { display:flex; }
 html[data-route="parishGame"] .settings label { flex-basis:100%; }
 .play-hero-map { opacity:.2; }
 .play-games { grid-template-columns:1fr; }
 :root .game-status { flex-wrap:wrap; gap:var(--s-4); }
}
:root .category-card { display:block; }
:root .q-option { justify-content:space-between; text-align:left; }
:root .status-control.g-segmented { background:var(--stone-panel); border-color:var(--ink-3); gap:var(--s-2); flex-wrap:nowrap; }
:root .status-control-label { align-self:center; padding-inline:var(--s-2); font:600 var(--t-label)/var(--lh-dense) var(--sans); letter-spacing:var(--track-label); text-transform:uppercase; }
:root .status-control.g-segmented>.g-button { flex:none; background:var(--stone-panel); color:var(--ink-inverse); white-space:nowrap; }
:root .status-control.g-segmented>.g-button[aria-pressed=true] { background:var(--celeste-pale); color:var(--ink); }
:root .status-control.g-segmented :focus-visible,:root .status-bar :focus-visible { outline-color:var(--celeste-pale); }
:root .status-settings { flex-wrap:wrap; }
:root .micro-footer>a { font-size:var(--t-dense); min-height:var(--hit); display:inline-flex; align-items:center; }
@media(max-width:850px) {
 html[data-route="parishGame"] .settings { display:grid; grid-template-columns:1fr; }
 html[data-route="parishGame"] .settings label { min-width:0; }
 html[data-route="parishGame"] .settings #start { margin:0; }
 :root .game-status { grid-template-columns:1fr auto; gap:var(--s-4); }
 :root .status-settings { grid-column:1/-1; display:flex; flex-direction:column; align-items:stretch; }
 :root .status-control.g-segmented>.g-button { flex:1; }
}
.play-kicker { text-transform:uppercase; }
:root :is(.feedback.is-wrong,.q-feedback.wrong,#choices button.wrong) { background:var(--lime-raised); color:var(--teja); border-color:var(--teja); }
