/* Shared reading hierarchy. Artwork lettering and SVG prize amounts keep their
   own type treatment; interface text uses Nunito, story headings use Fraunces. */
:root{--font-reading:'Nunito',system-ui,-apple-system,sans-serif;--font-story:'Fraunces',Georgia,serif}
html body,html body.manager-app,html body :is(#app,#demo-app,#home-screen-page,.legal-page),html body dialog,
html body :is(#app,#demo-app,#home-screen-page,.legal-page) .board-atlas,html body :is(#app,#demo-app,#home-screen-page,.legal-page) .story-adventure{
 font-family:var(--font-reading)!important;
}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(button,a,input,select,textarea,label,summary,p,small,li,dt,dd,th,td,legend,figcaption),
html body dialog :is(button,a,input,select,textarea,label,summary,p,small,li,dt,dd),
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(button,a) :is(span,strong,small),
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(.account-intro,.registration-status,.account-legal,.account-saved-note,.account-new-note,
.na-heading>div>span,.na-row-date,.na-row-date strong,.na-selected-date,.na-event-state,.na-prize>span,.na-participants>span,.na-map-hint,
.story-paragraph,.story-event-notice,.story-audio-time,.story-audio-status){
 font-family:var(--font-reading)!important;
}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(button,a,input,select,textarea,label,summary),html body dialog :is(button,a,label,summary){letter-spacing:normal}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(button,.btn,summary),html body dialog :is(button,.btn,summary){font-weight:800}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(h1,h2,h3,h4,#story-title,.story-place,.na-location strong,.na-place-summary strong,.story-progress-copy>strong),
html body dialog :is(h1,h2,h3,h4){
 font-family:var(--font-story)!important;font-weight:700!important;font-optical-sizing:auto;
}
/* Keep a short map title readable in narrow columns; do not squeeze letters. */
html body :is(#app,#demo-app,#home-screen-page,.legal-page) .na-location strong{letter-spacing:-.25px;line-height:1.15}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) .na-row-action{text-transform:none;line-height:1.2}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) .na-heading>div>span{line-height:1.4}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(.world-intro,.account-intro,.story-paragraph,.rules-step-copy p,.rules-details p){font-size:18px;line-height:1.5}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(.account-new-note,.account-saved-note,.account-legal){line-height:1.45}
/* Functional subheadings and counters are UI rather than story titles. */
html body :is(#app,#demo-app,#home-screen-page,.legal-page) .story-audio h2{font-family:var(--font-reading)!important;font-weight:800!important}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(.na-row-number,.na-pin,.na-participants strong){font-family:var(--font-reading)!important;font-weight:800;font-variant-numeric:tabular-nums}
html body :is(#app,#demo-app,#home-screen-page,.legal-page) .na-directory:after{font-family:var(--font-reading)}
/* No heavy effects on reading copy; existing display/prize effects stay intact. */
html body :is(#app,#demo-app,#home-screen-page,.legal-page) :is(.world-intro,.account-intro,.story-paragraph,.account-new-note,.account-legal),
html body dialog :is(p,label,li){text-shadow:none!important;-webkit-text-stroke:0!important}
@media(max-width:480px){
 html body :is(#app,#demo-app,#home-screen-page,.legal-page) .na-location strong{font-size:clamp(12px,3.55vw,14px)!important}
 html body :is(#app,#demo-app,#home-screen-page,.legal-page) .na-row-action{font-size:11px!important}
 html body :is(#app,#demo-app,#home-screen-page,.legal-page) .woodland-menu .hs-entry-install{font-size:clamp(17px,4.5vw,22px);gap:5px}
}
html body :is(#app,#demo-app,#home-screen-page) :is(button,.btn) strong{font-weight:800!important}
@media(max-width:360px){
 /* Reserve enough width for Sheringham and Strumpshaw without splitting names. */
 .board-atlas .na-workspace{grid-template-columns:31% minmax(0,38%) 31%}
}
