/* ============================================================
   Mirrah Image — Safe Arcade shared styles
   One look for the whole game room. Big, friendly, accessible.
   ============================================================ */
:root{
  --cream:#FBF8F3; --card:#ffffff; --navy:#05052e;
  --brand:#1273c2; --brand-dark:#0c447c;
  --orange:#F97316; --teal:#06B6D4; --emerald:#10B981; --pink:#EC4899; --purple:#8B5CF6; --gold:#FBBF24;
  --ink:#1F2937; --muted:#4B5563; --line:#e7ddcc;
  --bg-grad:linear-gradient(160deg,#FBF8F3,#f3ece0);
}
/* unlockable themes (Prize Corner) */
:root[data-arcade-theme="ocean"]{ --bg-grad:linear-gradient(160deg,#e0f7ff,#c9edff); --brand:#0e7490; }
:root[data-arcade-theme="sunset"]{ --bg-grad:linear-gradient(160deg,#fff1e6,#ffe0ec); --brand:#EC4899; }
:root[data-arcade-theme="candy"]{ --bg-grad:linear-gradient(160deg,#ffe9f5,#eef0ff); --brand:#8B5CF6; }
:root[data-arcade-theme="space"]{ --bg-grad:linear-gradient(160deg,#0b1030,#1a1550); --card:#171b3a; --ink:#f3f4ff; --muted:#b7bce0; --navy:#ffffff; --line:#2b2f5a; }
:root[data-arcade-theme="forest"]{ --bg-grad:linear-gradient(160deg,#e8f7ea,#d5efdc); --brand:#10B981; }

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{min-height:100%}
body{font-family:'Poppins',system-ui,-apple-system,sans-serif;background:var(--bg-grad);
  background-attachment:fixed;color:var(--ink);min-height:100vh;touch-action:manipulation}
button{font-family:inherit;cursor:pointer;border:none}
a{color:inherit}
.hide{display:none!important}

/* ---------- top bar ---------- */
.arc-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.7rem 1rem;max-width:1100px;margin:0 auto;position:sticky;top:0;z-index:40;
  background:color-mix(in srgb,var(--card) 82%, transparent);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.arc-top .back{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;font-weight:800;
  color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem}
.arc-top .back:hover{color:var(--brand)}
.arc-top .title{font-weight:900;color:var(--navy);font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arc-top .right{display:flex;align-items:center;gap:.6rem}
.arc-coins{display:inline-flex;align-items:center;gap:.4rem;background:linear-gradient(135deg,#FBBF24,#F59E0B);
  color:#5a3d00;font-weight:900;border-radius:999px;padding:.45rem .9rem;font-size:1.05rem;box-shadow:0 4px 12px rgba(245,158,11,.35)}
.arc-coins.bump{animation:coinbump .5s}
@keyframes coinbump{0%,100%{transform:scale(1)}40%{transform:scale(1.25)}}
.arc-player{display:inline-flex;align-items:center;gap:.4rem;background:var(--card);border:1px solid var(--line);
  border-radius:999px;padding:.35rem .8rem;font-weight:800;color:var(--navy)}
.arc-player .av{font-size:1.25rem}
.arc-player button{background:none;color:var(--brand);font-weight:800;font-size:.8rem}
.arc-mute,.arc-gear{background:var(--card);border:1px solid var(--line);border-radius:999px;width:42px;height:42px;
  font-size:1.15rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:var(--navy);flex:0 0 auto}
.arc-mute:hover,.arc-gear:hover{border-color:var(--brand)}
.arc-mute.off{background:#fde2e2;border-color:#f2a9a9}
.arc-settings{position:fixed;z-index:120;background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 16px 44px rgba(0,0,0,.24);padding:.6rem;min-width:230px;font-weight:700;color:var(--navy)}
.arc-settings .row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem .4rem}
.arc-settings .col{display:flex;flex-direction:column;gap:.45rem;padding:.5rem .4rem;border-top:1px solid var(--line);margin-top:.25rem}
.arc-settings select{font-family:inherit;font-size:.95rem;padding:.45rem;border:2px solid var(--line);border-radius:8px;max-width:210px;background:var(--card);color:var(--ink)}
.arc-settings .mini{background:var(--brand);color:#fff;font-weight:800;border-radius:8px;padding:.4rem .9rem;font-size:.9rem;cursor:pointer;border:none}

/* floating +coins */
.arc-float{position:fixed;z-index:9998;font-weight:900;color:#F59E0B;font-size:1.6rem;pointer-events:none;
  text-shadow:0 2px 6px rgba(0,0,0,.2);animation:floatup 1s ease-out forwards}
@keyframes floatup{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-70px);opacity:0}}

/* ---------- buttons ---------- */
.btn{font-weight:800;border-radius:14px;padding:.85rem 1.4rem;font-size:1.05rem;color:#fff;background:var(--brand);
  transition:transform .12s,filter .12s}
.btn:hover{filter:brightness(1.07);transform:translateY(-2px)} .btn:active{transform:none}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn--lg{font-size:1.3rem;padding:1.1rem 2rem}
.btn--emerald{background:var(--emerald)} .btn--orange{background:var(--orange)}
.btn--purple{background:var(--purple)} .btn--pink{background:var(--pink)} .btn--teal{background:var(--teal)}
.btn--ghost{background:var(--card);color:var(--brand-dark);border:2px solid var(--line)}
.btn--ghost:hover{border-color:var(--brand)}

/* speaker (read-aloud) */
.arc-speak{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;
  background:var(--card);border:2px solid var(--line);font-size:1.5rem;color:var(--brand)}
.arc-speak:hover{border-color:var(--brand)} .arc-speak:active{transform:scale(.94)}

/* ---------- layout helpers ---------- */
.wrap{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 3rem}
.center{text-align:center}
.h-title{font-family:'Playfair Display',Georgia,serif;color:var(--navy);line-height:1.05}

/* ---------- game tiles ---------- */
.tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;
  color:#fff;border-radius:22px;padding:1.4rem 1rem;min-height:170px;justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,.12);transition:transform .16s,box-shadow .16s;overflow:hidden}
.tile:hover,.tile:focus-visible{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 44px rgba(0,0,0,.2);outline:none}
.tile .ic{font-size:3.2rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.22));margin-bottom:.4rem}
.tile h3{font-size:1.25rem;font-weight:900;line-height:1.1}
.tile .sub{font-size:.85rem;opacity:.95;margin-top:.15rem}
.tile .lock{position:absolute;top:.6rem;right:.6rem;font-size:1.1rem;background:rgba(0,0,0,.25);border-radius:999px;padding:.15rem .5rem}
.tag-cal{background:linear-gradient(135deg,#06B6D4,#1273c2)}
.tag-mid{background:linear-gradient(135deg,#F97316,#EC4899)}
.tag-act{background:linear-gradient(135deg,#8B5CF6,#1273c2)}
.tag-learn{background:linear-gradient(135deg,#10B981,#06B6D4)}
.tag-gold{background:linear-gradient(135deg,#FBBF24,#F97316)}

/* section header */
.sec{margin:2rem 0 .8rem;display:flex;align-items:center;gap:.6rem}
.sec h2{font-size:1.4rem;color:var(--navy);font-weight:900}
.sec .pill{font-size:.75rem;font-weight:800;color:var(--muted);background:var(--card);border:1px solid var(--line);
  border-radius:999px;padding:.2rem .7rem}

/* overlay / modal */
.arc-modal{position:fixed;inset:0;background:rgba(5,5,46,.7);z-index:200;display:flex;align-items:center;
  justify-content:center;padding:1rem}
.arc-modal .box{background:var(--card);border-radius:24px;max-width:460px;width:100%;padding:2rem 1.6rem;text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,.35)}
.arc-modal .box .big{font-size:3.6rem}
.arc-modal .box h2{font-family:'Playfair Display',serif;color:var(--navy);font-size:2rem;margin:.3rem 0}
.arc-modal .box p{color:var(--muted);font-size:1.15rem;margin-bottom:1.3rem}

/* confetti canvas */
#arc-confetti{position:fixed;inset:0;pointer-events:none;z-index:250}

/* focus visibility for accessibility */
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}

/* Respect players who need less motion (vestibular / photosensitive).
   Turns off decorative movement; core gameplay motion is unaffected. */
@media (prefers-reduced-motion: reduce){
  .tile:hover,.tile:focus-visible,.door:hover,.card:hover,.acard:hover{transform:none}
  .arc-float{display:none}
  .arc-coins.bump{animation:none}
}
