/* Shared arcade shell. Activity modules own their scene styling. */
.fapg-arcade { --arcade-ink:var(--fapg-ink,#29162b); --arcade-orange:var(--fapg-orange,#ff5736); --arcade-lilac:var(--fapg-lilac,#e8deff); color:var(--arcade-ink); background:#fff; font:1.125rem/1.55 'Atkinson Hyperlegible Next',Arial,sans-serif; max-width:80rem; margin-inline:auto; border:2px solid var(--arcade-ink); }
.fapg-arcade *, .fapg-arcade *::before, .fapg-arcade *::after { box-sizing:border-box; }
.fapg-arcade [hidden] { display:none!important; }
.fapg-arcade__title { font-family:Anybody,'Arial Black',sans-serif; font-size:clamp(2rem,4vw,3.5rem); line-height:1.06; letter-spacing:-.035em; margin:0; padding:2rem; background:var(--arcade-orange); overflow-wrap:anywhere; }
.fapg-arcade__intro,.fapg-arcade__scene,.fapg-arcade__results,.fapg-arcade__paused { padding:2rem; }
.fapg-arcade p { max-width:68ch; margin:0 0 1rem; }
.fapg-arcade button,.fapg-arcade a { font:inherit; touch-action:manipulation; }
.fapg-arcade button { min-height:48px; padding:.65rem 1rem; color:var(--arcade-ink); background:#fff; border:2px solid var(--arcade-ink); border-radius:6px; cursor:pointer; white-space:normal; }
.fapg-arcade button:hover { background:var(--arcade-lilac); }
.fapg-arcade button:disabled { opacity:.6; cursor:default; }
.fapg-arcade button:focus-visible,.fapg-arcade a:focus-visible,.fapg-arcade input:focus-visible { outline:3px solid var(--arcade-ink); outline-offset:4px; }
.fapg-arcade__intro>button,.fapg-arcade__results>button:first-of-type { color:#fff; background:var(--arcade-ink); }
.fapg-arcade__modes { padding:0; margin:1.5rem 0; border:0; display:flex; gap:1rem; flex-wrap:wrap; }
.fapg-arcade__modes legend { padding:0; margin-bottom:.75rem; font-weight:700; }
.fapg-arcade__modes label { flex:1 1 14rem; display:grid; grid-template-columns:1.5rem 1fr; align-items:center; gap:.25rem .5rem; border:2px solid var(--arcade-ink); border-radius:6px; padding:1rem; cursor:pointer; }
.fapg-arcade__modes label:has(:checked) { background:var(--arcade-lilac); }
.fapg-arcade__modes span { grid-column:2; font-size:1rem; }
.fapg-arcade input { accent-color:var(--arcade-ink); width:1.2rem; height:1.2rem; }
.fapg-arcade__toolbar { display:flex; flex-wrap:wrap; gap:.5rem; padding:1rem 2rem; border-bottom:2px solid var(--arcade-ink); }
.fapg-arcade__progress { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; padding:1rem 2rem 0; font-size:1rem; }
.fapg-arcade progress { accent-color:var(--arcade-ink); width:10rem; max-width:100%; height:.7rem; }
.fapg-arcade__paused { background:var(--arcade-lilac); min-height:12rem; }
.fapg-arcade__feedback:not(:empty) { padding:1rem 2rem; background:var(--arcade-lilac); max-width:none; margin:0; }
.fapg-arcade__footer { border-top:2px solid var(--arcade-ink); padding:1.5rem 2rem; display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.fapg-arcade__footer a { color:var(--arcade-ink); text-underline-offset:.2em; padding-block:.65rem; }
.fapg-arcade .fapg-arcade__note { font-size:1rem; margin:0; }
.fapg-arcade__footer .fapg-arcade__note { flex-basis:100%; }
.fapg-arcade__score { font-weight:700; font-size:1.5rem; }
.fapg-arcade__results button { margin:0 .5rem .5rem 0; }
.fapg-arcade__metrics { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem 1rem; max-width:35rem; }
.fapg-arcade__metrics dd { margin:0; font-weight:700; }
@media(max-width:480px) { .fapg-arcade__title,.fapg-arcade__intro,.fapg-arcade__scene,.fapg-arcade__results,.fapg-arcade__paused { padding:1.25rem; } .fapg-arcade__toolbar,.fapg-arcade__footer { padding:1rem 1.25rem; } .fapg-arcade__progress { padding:1rem 1.25rem 0; } .fapg-arcade__feedback:not(:empty) { padding:1rem 1.25rem; } }
@media(prefers-reduced-motion:reduce) { .fapg-arcade *, .fapg-arcade *::before, .fapg-arcade *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
