/* Shared shell and readable game surfaces; game-specific states remain intact. */
.arcade-page { --primary-color:#6938e8; --text-color:#242035; background:#f8f7fc; color:#242035; font-family:'DM Sans',sans-serif; padding:0; }
.arcade-page>.container { max-width:1240px; margin:auto; padding:0 40px; background:transparent; border:0; border-radius:0; box-shadow:none; min-height:100vh; }
.arcade-page .site-header { margin-bottom:38px; }
.arcade-page h1,.arcade-page h2,.arcade-page h3 { font-family:'Space Grotesk',sans-serif; }
.arcade-page button,.arcade-page select { font-family:inherit; }
.arcade-page .game-area { max-width:740px; padding-bottom:32px; }
.back-to-games { display:inline-block; color:#6a607d; text-decoration:none; font-size:0.875rem; margin-bottom:25px; padding:5px 0; }
.back-to-games:hover { color:#6938e8; }
.arcade-page .game-area h1 { text-align:left; color:#242035; font-size:clamp(2rem,4vw,2.8rem); letter-spacing:-.05em; line-height:1.15; margin-bottom:12px; }
.arcade-page .game-area .subtitle { text-align:left; color:#71697f; font-size:1rem; margin-bottom:32px; }
.arcade-page #mode-select { gap:16px; }
.arcade-page .mode-btn { border:1px solid #e2dfeb; padding:25px 28px; border-radius:16px; font-family:inherit; font-size:1.25rem; color:#322944; box-shadow:none; }
.arcade-page .mode-btn:hover { border-color:#a98be9; background:#f1ebfc; box-shadow:0 6px 15px #38225408; }
.arcade-page .mode-btn small { font-size:1rem; line-height:1.6; color:#6e657b; margin-top:8px; }
.arcade-page .flashcard,.arcade-page .quiz-question { border:1px solid #ded5ee; box-shadow:0 8px 25px #3e2d6010; padding:34px; border-radius:20px; }
.arcade-page .flashcard { min-height:250px; }
.arcade-page .flashcard .label,.arcade-page .quiz-question .label { font-size:0.75rem; color:#70637f; }
.arcade-page .flashcard .term { font-size:1.875rem; }
.arcade-page .flashcard .tap-hint { color:#756883; font-size:0.875rem; }
.arcade-page .flashcard .definition { font-size:1.1875rem; line-height:1.7; }
.arcade-page .back-btn { font:500 14px 'DM Sans',sans-serif; padding:10px 0; }
.arcade-page .flash-counter,.arcade-page .status-row { font-size:0.875rem; color:#6f637d; }
.arcade-page .choice-btn { font-family:inherit; font-size:1rem; border-width:1px; padding:17px 20px; }
.arcade-page .flash-nav { flex-wrap:wrap; }
.arcade-page .flash-nav button { font-family:inherit; font-size:1rem; }
.arcade-page footer { border-top:1px solid #e2dfeb; padding:25px 0; margin-top:auto; color:#766a82; font-size:0.875rem; line-height:1.8; }
.arcade-page footer a { color:#6331c6; }
.arcade-page .legal-content { max-width:800px; }
.page-heading { margin:10px 0 30px; }
.page-heading h1 { font-size:clamp(2rem,5vw,3rem); letter-spacing:-.05em; line-height:1.15; }
.arcade-page .legal-content section { box-shadow:none; border:1px solid #e2dfeb; border-radius:16px; padding:28px; }
.arcade-page .legal-content h2 { color:#35274a; font-size:1.5rem; }
.arcade-page .legal-content p,.arcade-page .legal-content li { font-size:1rem; }
.randomizer-heading { margin-bottom:28px; }
.randomizer-heading .back-to-games { margin-bottom:16px; }
.randomizer-heading .eyebrow { margin-bottom:12px; }
.randomizer-heading h1 { font-size:clamp(2.5rem,5vw,3.5rem); letter-spacing:-.055em; line-height:1.07; margin-bottom:18px; }
.randomizer-heading h1 span { color:#6938e8; }
.randomizer-heading>p:last-child { color:#71677f; font-size:1rem; line-height:1.7; }
.randomizer-page .controls { display:flex; flex-direction:row; justify-content:space-between; align-items:end; padding:24px; border:1px solid #e2dfeb; background:#fff; border-radius:18px; margin-bottom:24px; gap:20px; }
.randomizer-page .player-selector { align-items:start; gap:9px; }
.randomizer-page .player-selector label { font-size:0.875rem; color:#574a69; }
.randomizer-page .player-selector select { border:1px solid #d6cee4; border-radius:9px; color:#30243f; min-width:200px; padding:12px; }
.randomizer-page .randomize-button,.randomizer-page .re-roll-button { background:#6938e8; color:white; border:0; border-radius:10px; font-size:1rem; text-transform:none; text-shadow:none; padding:15px 24px; box-shadow:none; font-weight:600; }
.randomizer-page .randomize-button:hover,.randomizer-page .re-roll-button:hover { background:#5324c6; transform:none; }
.randomizer-page button:disabled { opacity:.6; cursor:wait; }
.randomizer-page .results { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:20px; }
.randomizer-empty { grid-column:1/-1; padding:30px 24px 42px; border:1px dashed #d9cdeb; border-radius:20px; text-align:center; color:#70647f; }
.randomizer-empty>span { display:inline-block; font-size:2.8125rem; color:#916cd0; margin-bottom:10px; }
.randomizer-empty h2 { color:#4c3b62; font-size:1.5rem; letter-spacing:-.035em; margin-bottom:9px; }
.randomizer-empty p { font-size:1rem; line-height:1.6; }
.randomizer-page .player-card { background:white; border:1px solid #dfd6ec; border-radius:19px; padding:22px; box-shadow:0 5px 20px #30214108; }
.randomizer-page .player-card:hover { transform:none; }
.randomizer-page .player-title { text-shadow:none; color:#6437b6; font-family:'Space Grotesk',sans-serif; font-size:1.375rem; border-bottom:1px solid #ede6f4; padding-bottom:15px; margin-bottom:18px; }
.randomizer-page .character-section h3,.randomizer-page .kart-section h3 { font:500 12px 'DM Sans',sans-serif; letter-spacing:.1em; text-transform:uppercase; color:#7d6f8e; }
.randomizer-page .character-image,.randomizer-page .kart-image { width:130px; height:150px; object-fit:contain; border:0; border-radius:12px; box-shadow:none; }
.randomizer-page .kart-image { width:140px; height:110px; }
.randomizer-page .character-name,.randomizer-page .kart-name { font-size:1rem; color:#382747; line-height:1.5; }
.randomizer-page .re-roll-container { margin:0 0 32px; }
.share-status { min-height:24px; margin:14px 0; color:#675875; font-size:0.875rem; }
@media(max-width:760px) { .arcade-page>.container { padding:0 24px; } .arcade-page .site-header { margin-bottom:24px; } }
@media(max-width:520px) { .arcade-page>.container { padding:0 20px; } .arcade-page .mode-btn { padding:21px; font-size:1.1875rem; } .arcade-page .flashcard,.arcade-page .quiz-question { padding:26px 20px; } .arcade-page .flash-nav button { padding:12px 16px; } .randomizer-page .controls { align-items:stretch; flex-direction:column; padding:20px; } .randomizer-page .player-selector select { width:100%; } .randomizer-page .player-selector { width:100%; } .randomizer-heading h1 { font-size:2.625rem; } .randomizer-page .re-roll-button { margin:5px!important; } .arcade-page .legal-content section { padding:22px; } }
.arcade-page .site-nav { width:auto; }
.arcade-page .choice-btn.correct::after { content:'✓ Correct answer'; display:block; color:#18683b; font-size:0.875rem; font-weight:600; margin-top:7px; }
.arcade-page .choice-btn.wrong::after { content:'✕ Your answer'; display:block; color:#9c2f27; font-size:0.875rem; font-weight:600; margin-top:7px; }
@media(min-width:600px) {
 .randomizer-page .player-card:only-child { width:100%; max-width:680px; justify-self:center; display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; }
 .randomizer-page .player-card:only-child .player-title { grid-column:1/-1; }
 .randomizer-page .player-card:only-child .kart-image { height:150px; }
}
