/* Local date practice and readable type at every supported screen size. */
.intro { padding-top:32px; padding-bottom:28px; }
.brand small { line-height:1.4; letter-spacing:.6px; }
.eyebrow { letter-spacing:1px; }
.rule p { line-height:1.65; }
.challenge-panel,.record-panel { padding:20px; }
.screen-caption { letter-spacing:.5px; gap:12px; }
.console-top { min-height:48px; height:auto; padding:12px 0; gap:12px; }
.console-top>span:last-child { text-align:right; }
.toolbar { gap:12px; flex-wrap:wrap; }
.keyboard-strip { flex-wrap:wrap; }
.game-faq p { font-size:14px; }
.button-play>span { font-size:14px; }
.practice-panel { margin:20px 0 0; padding:20px 24px; background:#e9e9dc; border:1px solid var(--line); border-radius:8px; display:flex; gap:24px; align-items:center; justify-content:space-between; }
.practice-panel h2 { font:500 26px/1.2 var(--pixel); margin:0 0 5px; }
.practice-panel p { margin:0; color:#53594e; font-size:14px; }
.practice-panel form { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
.practice-panel label { display:flex; flex-direction:column; gap:5px; font-size:14px; }
.practice-panel input { min-width:158px; background:var(--page); border:1px solid #969d8b; border-radius:4px; padding:9px; font:14px var(--body); color:var(--text); }
.practice-panel .button { border:1px solid #969d8b; border-radius:4px; min-height:40px; background:var(--page); }
.practice-panel .practice-go { color:white; background:var(--red); border-color:var(--red); }
#practice-mode { display:block; color:var(--red-deep); font-weight:700; margin-top:6px; font-size:14px; }
.screen-subtitle,.screen-footnote,.card-title .card-note { font-size:max(14px,2.8cqh); }
.card-title .button-play { font-size:max(18px,4.6cqh); }
.card-heading { font-size:max(20px,5cqh); }
.card-note { font-size:14px; }
.nav-button { min-height:42px; }
@media(max-width:1050px) { .game-layout { grid-template-columns:minmax(0,1fr) 280px; gap:18px; } }
@media(max-width:900px) {
  .game-layout { display:block; }
  .sidebar { margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .practice-panel { align-items:start; flex-direction:column; gap:16px; }
  .intro { gap:22px; }
  .intro h1 { font-size:42px; }
}
@media(max-width:600px) {
  .app { padding:0 16px; }
  .masthead { min-height:88px; height:auto; padding:18px 0; gap:10px; }
  .brand { font-size:28px; gap:8px; }
  .brand small { font-size:14px; max-width:180px; }
  .masthead nav { gap:10px; }
  .nav-button { padding:0; font-size:14px; }
  .about-button { min-width:32px; min-height:32px; }
  .intro { padding:24px 0; }
  .intro h1 { font-size:40px; }
  .intro-copy p { font-size:14px; line-height:1.65; }
  .edition { flex-wrap:wrap; font-size:14px; gap:8px; }
  .console-top { font-size:14px; }
  .console-top>span:last-child { display:none; }
  .app[data-state=title] .screen,.app[data-state=error] .screen,.app[data-state=loading] .screen { min-height:352px; }
  .screen-caption { top:16px; left:12px; right:12px; font-size:14px; }
  .screen-caption>span:last-child { display:none; }
  .title-content { width:100%; padding:28px 12px 12px; transform:none; }
  .trainer-wrap { height:90px; }
  .red-sprite { width:88px; height:88px; }
  .screen-title { font-size:30px; margin:7px 0 10px; }
  .screen-subtitle { font-size:14px; max-width:245px; line-height:1.4; margin-bottom:18px; }
  .screen-footnote { font-size:14px; margin-top:16px; }
  .card-title .button-play { font-size:18px; padding:13px 16px; }
  .card-title .card-note { font-size:14px; margin-top:14px; }
  .console-label { font-size:14px; letter-spacing:0; max-width:150px; }
  .button-quiet { font-size:14px; padding:8px; }
  .sidebar { grid-template-columns:1fr; }
  .sidebar .rule { display:flex; }
  .rule p,.rule strong { font-size:14px; }
  .opponent-strip { gap:20px; }
  .opponent-team { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  .opponent-team figcaption { font-size:14px; }
  .practice-panel { padding:18px; }
  .practice-panel form { width:100%; }
  .practice-panel label { flex:1; }
  .footer { gap:18px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .snow { animation:none; } }

.input-hint { display:none; margin:10px 0 0; font-size:14px; line-height:1.5; color:#4f554b; }
.app[data-state=playing] .input-hint { display:block; }
.app:not([data-state=playing]) #keyboard-focus { display:none; }
.app[data-state=playing] .pad { display:grid; }
.game-canvas:focus-visible { outline:3px solid var(--red); outline-offset:2px; }
@media(min-width:601px) and (pointer:fine) {
  .app[data-state=playing] .pad { grid-template-columns:126px 1fr auto; grid-template-areas:'dpad meta face'; gap:24px; padding:16px 12px 8px; }
  .pad .meta { flex-wrap:wrap; }
}
.privacy-banner { position: fixed; z-index: 40; bottom: 16px; right: 16px; width: min(420px, calc(100% - 32px)); padding: 16px; border: 2px solid #273540; border-radius: 12px; background: #fffdf6; color: #273540; box-shadow: 0 6px 24px #15202c26; font: 14px/1.5 system-ui, sans-serif; }
.privacy-banner[hidden] { display: none; }
.privacy-banner strong { font-size: 16px; }
.privacy-banner p { margin: 5px 0 12px; font-size: 14px; }
.privacy-banner a { color: #8c2a32; text-decoration: underline; }
.privacy-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.privacy-actions button { cursor: pointer; flex: 1; padding: 9px 10px; border: 1px solid #273540; border-radius: 6px; background: #fffdf6; color: #273540; font: 600 14px/1.4 system-ui, sans-serif; }
.privacy-actions button:last-child { background: #273540; color: white; }
[data-privacy-settings] { cursor: pointer; color: inherit; font: inherit; font-size: max(14px, 1em); background: transparent; border: 0; padding: 0; text-decoration: underline; }
