/* Local language fonts keep longer English labels and Japanese glyphs readable. */
html[lang="en"], html[lang="ja"] { --font-soft: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; --font-hand: var(--font-soft); }
html[lang="en"] body, html[lang="ja"] body { font-family: var(--font-soft); letter-spacing:0; -webkit-font-smoothing:antialiased; }
html[lang="en"] .title--hand, html[lang="en"] .hand, html[lang="ja"] .title--hand, html[lang="ja"] .hand { font-family:var(--font-soft); }
.hero h1 { max-width:20ch; margin-inline:auto !important; line-height:1.2; }
.site-header__brand { max-width:26ch; }
.site-header__primary a { white-space:normal; }
.home-btn { font-family:var(--font-soft); font-size:clamp(1.25rem,4vw,2rem); }
.menu-card__title, .hub-section__title { line-height:1.4; }
.menu-card__desc { line-height:1.8; }
.card-grid { align-items:stretch; }
.site-language { display:flex; align-items:center; gap:3px; flex:none; }
.site-language a { padding:7px 8px; font:12px/1.4 var(--font-ui); }
.site-language a[aria-current] { background:#303749; color:#ffd27a; }
.locale-note { max-width:720px; margin:1rem auto; padding:1rem; border:1px solid var(--line); border-radius:8px; color:var(--ink-soft); font-size:.85rem; line-height:1.7; }
.locale-guide { max-width:850px; padding-block:2rem 4rem; }
.locale-guide article { margin:1.2rem 0; padding:1.5rem; background:var(--card); border:1px solid var(--line); border-radius:12px; }
.locale-guide h1, .locale-guide h2 { color:var(--peach); margin-bottom:.8rem; }
.locale-guide p { line-height:1.8; }
.locale-guide a { color:var(--lavender); text-decoration:underline; text-underline-offset:4px; }
html[lang="en"] #cap { max-width:min(58ch,85vw); }
html[lang="en"] .runner-overlay__title { font-size:clamp(1.7rem,4vw,3rem); }
.locale-definition { max-width:68ch; margin:1rem auto; color:var(--ink-soft); font-size:clamp(.94rem,2vw,1.06rem); line-height:1.8; }
.locale-explainer { max-width:880px; width:100%; margin:2rem auto; padding:clamp(1rem,3vw,1.6rem); border:1px solid var(--line); background:var(--card); border-radius:12px; }
.locale-explainer h2, .locale-explainer h3 { margin:0 0 1rem; color:var(--peach); font-size:1.3rem; line-height:1.5; }
.locale-explainer h3 { margin-top:1.5rem; font-size:1.1rem; }
.locale-explainer details { padding:1rem 0; border-top:1px solid var(--line); }
.locale-explainer summary { cursor:pointer; color:var(--ink); line-height:1.6; font-weight:600; }
.locale-explainer p { margin-top:.8rem; line-height:1.8; color:var(--ink-soft); }
.locale-explainer a { color:var(--lavender); text-decoration:underline; text-underline-offset:3px; }
.locale-korean-badge { display:inline-block; align-self:flex-start; margin-top:.65rem; padding:2px 7px; border:1px solid var(--line); border-radius:20px; font:11px/1.6 var(--font-ui); color:var(--ink-soft); }
.locale-guide .locale-explainer { padding:1.5rem; }
@media(max-width:1100px) { .site-header__inner { flex-wrap:wrap; gap:8px 14px; } .site-language { margin-left:auto; } .site-header__primary { flex-basis:100%; order:3; margin:0; } }
@media(max-width:640px) { .site-header__brand { font-size:14px !important; } .site-language a { padding:8px 5px; } .site-header__primary a { font-size:12px; } #cap { max-width:none !important; } .runner-controls { flex-wrap:wrap; } }
