/* Extra channels: the menu may hold more tiles than fit one screen, so the
 * selection area scrolls, and channels without a cover image get a friendly
 * emoji tile (drop game-<id>.png into apps/littlesparks/art/ to replace). */
.selection{overflow-y:auto;overflow-x:hidden;align-items:flex-start;padding:22px 16px 30px;scrollbar-width:thin}
.game-menu{margin:auto;padding:8px}
.cover-fallback{display:flex;align-items:center;justify-content:center}
.cover-fallback .cover-emoji{font-size:calc(var(--tile, 200px) * .42);line-height:1;filter:drop-shadow(0 4px 0 #0003);transform:rotate(-6deg);margin-top:-6%}
.cover-fallback .channel-action{bottom:9%;color:#fff;font-size:clamp(15px,1.8vw,26px)}

/* The age selector is a permanent console home control. */
.game-screen{grid-template-rows:64px minmax(0,1fr) 43px 120px}.system-status{gap:22px}.system-status .menu-age-filter{margin:0;display:flex;flex-wrap:nowrap;align-items:center;gap:10px;min-width:0}.menu-age-filter label{font-size:11px;letter-spacing:0;color:#5e7d8f}.menu-age-filter select{min-height:44px;padding:8px 30px 8px 14px;border-radius:24px;border:1px solid #aacbdc;background:linear-gradient(#fff,#e9f3f8);color:#477e98;font-size:12px;box-shadow:0 2px 0 #c6d7e1}.menu-age-filter #age-results{font-size:10px;white-space:nowrap;color:#62899e;flex-basis:auto}.age-guidance-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:800px){.game-screen{grid-template-rows:64px minmax(0,1fr) 38px 100px}.system-status{gap:12px}.menu-age-filter #age-results{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}@media(max-width:480px){.game-screen{grid-template-rows:64px minmax(0,1fr) 33px 90px}.system-status{gap:10px}.system-status .menu-age-filter{gap:6px}.menu-age-filter select{font-size:11px;padding-left:10px}.menu-age-filter label{font-size:10px}}

/* Big direct age choices: no dropdown precision or scrolling is needed. */
.game-screen{grid-template-rows:116px minmax(0,1fr) 43px 120px}.system-status{flex-wrap:wrap;gap:8px 20px;align-content:center}.system-status .menu-age-filter{display:grid;grid-template-columns:auto;gap:6px;margin:0 auto}.age-picker-label{font-size:12px;letter-spacing:.3px;color:#5a7a90;font-weight:bold}.age-buttons{display:flex;gap:8px}.age-buttons button{width:58px;min-width:58px;min-height:58px;padding:4px;border:2px solid #adccdd;border-radius:17px;background:linear-gradient(#fff,#e8f1f7);box-shadow:0 4px 0 #c2d4df;color:#568098;font:900 25px 'Trebuchet MS',sans-serif;cursor:pointer;transition:transform .12s,border-color .12s,background .12s;letter-spacing:0}.age-buttons button span{display:block;font-size:10px;line-height:1}.age-buttons button[data-age-choice=all]{font-size:18px}.age-buttons button[aria-pressed=true]{background:linear-gradient(#a9eaff,#68c5e8);color:#174d70;border-color:#258fb9;box-shadow:0 4px 0 #267ea5,0 0 0 3px #fff}.age-buttons button:hover{transform:translateY(-2px);border-color:#299fc8}.age-buttons button:active{transform:translateY(2px);box-shadow:0 1px 0 #86afc4}.age-buttons button:focus-visible{outline:3px solid #196a9c;outline-offset:4px}.menu-age-filter #age-results{margin:2px 0 0;font-size:10px;min-height:12px}.system-status>span:last-child{margin-left:0}
@media(max-width:1000px){.system-status>span:last-child{display:none}.age-buttons{gap:6px}.age-buttons button{width:54px;min-width:54px;min-height:56px}.system-status{gap:8px}.system-status .menu-age-filter{margin-left:auto;margin-right:0}}
@media(max-width:700px){.game-screen{grid-template-rows:180px minmax(0,1fr) 38px 100px}.system-status{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;justify-content:center;gap:8px}.system-status>span:first-child{font-size:9px}.system-status .menu-age-filter{display:grid;margin:0;width:100%;grid-template-columns:1fr;gap:5px}.age-picker-label{font-size:11px}.age-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.age-buttons button{width:100%;min-width:0;min-height:51px;font-size:24px;border-radius:14px}.menu-age-filter #age-results{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
@media(max-width:480px){.game-screen{grid-template-rows:180px minmax(0,1fr) 33px 90px}.age-buttons button{min-height:51px}.system-status{gap:7px}}
