/* ELA fun modes (Story Quest, Word Battle, Sentence Tower, Evidence Hunt). Original CSS art only. */
.em-h{font-size:1.35rem;margin:0 0 4px}
.em-sub{color:var(--ink-soft);margin:0 0 16px}
.em-title{font-size:1.7rem;margin:6px 0 4px}
.em-picker{margin-bottom:22px;background:linear-gradient(180deg,#fff,#f5f3ff)}
.em-classic{margin-top:0}
.em-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.em-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:3px solid var(--line);border-radius:18px;padding:14px 14px 16px;background:#fff;font:inherit;color:var(--ink);cursor:pointer;min-height:150px;box-shadow:0 4px 0 var(--line);transition:transform .08s,box-shadow .08s,border-color .15s;touch-action:manipulation}
.em-card:hover{border-color:var(--brand)}
.em-card:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}
.em-emoji{font-size:2.2rem;line-height:1}
.em-name{font-weight:900;font-size:1.15rem}
.em-blurb{font-size:.92rem;color:var(--ink-soft);line-height:1.35}
.em-count{margin-top:auto;font-size:.78rem;font-weight:800;color:var(--brand-dark);background:var(--brand-soft);border-radius:999px;padding:2px 10px}
.em-tag{position:absolute;top:10px;right:10px;font-size:.72rem;font-weight:900;background:var(--sun);color:#422006;border-radius:999px;padding:2px 9px}
.em-quest{border-color:#fcd34d;background:#fffbeb}.em-battle{border-color:#fda4af;background:#fff1f2}.em-build{border-color:#93c5fd;background:#eff6ff}.em-hunt{border-color:#86efac;background:#f0fdf4}
.em-streaks{font-size:.92rem;background:#fff7ed;border:2px dashed #fdba74;border-radius:12px;padding:8px 12px;margin:0 0 12px}
.em-shelf{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.em-shelf li{display:flex;flex-direction:column;background:#f3f4f6;border-radius:12px;padding:6px 12px;font-weight:800;font-size:.88rem;opacity:.75}
.em-shelf li.got{background:#fef9c3;opacity:1;border:2px solid #facc15}
.em-shelf small{font-weight:600;color:var(--ink-soft);font-size:.72rem}
.em-back{background:none;border:0;font:inherit;font-weight:800;color:var(--brand);cursor:pointer;min-height:44px;padding:0 6px 0 0;margin-bottom:4px;touch-action:manipulation}
.em-toast{min-height:0;text-align:center;font-weight:900;color:#9a3412}
.em-toast.show{animation:emToast 2.2s ease both;min-height:1.6em;background:#ffedd5;border-radius:999px;padding:2px 12px;margin:-4px auto 10px;width:fit-content}
@keyframes emToast{0%{opacity:0;transform:translateY(8px)}12%,80%{opacity:1;transform:none}100%{opacity:0}}
.em-end{justify-content:center}
.em-newtrophy{background:#fef9c3;border:2px solid #facc15;border-radius:12px;padding:8px 12px;font-weight:800;margin:10px 0}
.em-sum .coin-earned{margin:12px 0}

/* ---- Story Quest ---- */
.qs-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.qs-card{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;border:3px solid #fcd34d;background:#fffbeb;border-radius:16px;padding:14px;font:inherit;color:var(--ink);cursor:pointer;min-height:130px;touch-action:manipulation}
.qs-card:hover{border-color:#f59e0b}
.qs-emoji{font-size:2rem}.qs-emoji-big{font-size:3.4rem}
.qs-title{font-weight:900;font-size:1.05rem;line-height:1.25}
.qs-theme{font-size:.82rem;color:var(--ink-soft);font-weight:700}
.qs-stars{margin-top:auto;font-size:.95rem;font-weight:800}
.qs-path{display:flex;align-items:center;justify-content:center;gap:0;margin:6px 0 14px}
.qs-door{font-size:1.9rem;width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#f3f4f6}
.qs-door.open{background:var(--green-soft)}.qs-door.now{background:#fef3c7;box-shadow:0 0 0 3px #f59e0b;animation:qsPulse 1.6s ease-in-out infinite}.qs-door.locked{opacity:.55}
.qs-dash{width:22px;height:4px;background:#e5e7eb;border-radius:3px}
@keyframes qsPulse{50%{transform:scale(1.07)}}
.qs-intro{font-style:italic;color:var(--ink-soft);margin:0 0 10px}
.qs-clue{background:#fffbeb;border:2px solid #fde68a;border-radius:14px;padding:12px 16px;margin:8px 0 14px;animation:qsIn .4s ease both}
@keyframes qsIn{from{opacity:0;transform:translateY(8px)}}
.qs-clue-t{font-weight:900;color:#92400e;margin-bottom:2px}
.qs-clue p{margin:6px 0;font-size:1.05rem;line-height:1.65}
.qs-prev h4{margin:10px 0 0;font-size:.95rem;color:#92400e}
.qs-finale{background:#fffbeb;border:2px solid #fde68a;border-radius:16px;padding:12px 16px;margin:10px 0}
.qs-finale h2{margin:0;font-size:1.2rem}

/* ---- Word Battle ---- */
.bt-intro{text-align:center}
.bt-boss.big{display:flex;justify-content:center}
.bt-taunt{font-size:1.08rem;font-style:italic;max-width:520px;margin:6px auto 12px}
.bt-rules{max-width:520px;margin:0 auto 16px;padding-left:20px}
.bt-rules li{margin:5px 0}
.bt-arena{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:8px;background:linear-gradient(180deg,#c7d2fe 0,#e0e7ff 55%,#bbf7d0 56%,#86efac 100%);border-radius:16px;padding:10px 12px 8px;margin:6px 0 12px;overflow:hidden;min-height:150px}
.bt-side{display:flex;flex-direction:column;align-items:center;gap:2px}
.bt-name{font-weight:900;font-size:.85rem;background:#fff;border-radius:999px;padding:0 10px}
.bt-hearts{display:flex;gap:2px;font-size:1.25rem}.bt-heart.lost{opacity:.6}
.bt-hp{display:flex;gap:3px;background:#fff;padding:4px;border-radius:999px;border:2px solid #312e81}
.bt-hp i{width:14px;height:12px;border-radius:4px;background:#e5e7eb}.bt-hp i.on{background:linear-gradient(180deg,#fb7185,#e11d48)}
.boss-svg{display:block;filter:drop-shadow(0 3px 0 rgba(0,0,0,.12))}
.bt-boss .boss-svg{animation:btBob 2.4s ease-in-out infinite}
@keyframes btBob{50%{transform:translateY(-4px)}}
.shake{animation:btShake .5s ease}
@keyframes btShake{0%,100%{transform:none}20%{transform:translateX(-8px) rotate(-3deg)}40%{transform:translateX(8px) rotate(3deg)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
.bt-fx{position:absolute;left:22%;top:46%;font-size:2.2rem;opacity:0;pointer-events:none}
.bt-fx.go.hit,.bt-fx.go.crit{animation:btBolt .7s ease-out both}
.bt-fx.go.crit{font-size:3.2rem}
.bt-fx.go.miss{left:62%;animation:btMiss .7s ease-out both}
@keyframes btBolt{0%{opacity:1;left:22%;transform:scale(.6) rotate(0)}85%{opacity:1;left:68%;transform:scale(1.2) rotate(360deg)}100%{opacity:0;left:72%;transform:scale(1.8)}}
@keyframes btMiss{0%{opacity:1;left:62%;transform:scale(.7)}85%{opacity:1;left:26%;transform:scale(1.1)}100%{opacity:0;left:22%;transform:scale(1.6)}}

/* ---- Sentence Tower ---- */
.tw{display:flex;flex-direction:column;align-items:center;width:84px}
.tw-flag{font-size:1.5rem;line-height:1;opacity:.3;transform:translateY(8px);transition:all .4s}
.tw-flag.up{opacity:1;transform:none;animation:btBob 1.2s ease-in-out infinite}
.tw-stack{display:flex;flex-direction:column-reverse;width:64px;gap:2px;min-height:152px;justify-content:flex-start}
.tw-f{display:flex;align-items:center;justify-content:space-evenly;height:16px;border-radius:3px;background:#e5e7eb;opacity:.45;border:1px dashed #cbd5e1}
.tw-f.on{opacity:1;border:2px solid #1e1b4b;background:#fca5a5}.tw-f.on.c1{background:#fde68a}.tw-f.on.c2{background:#93c5fd}.tw-f.on.c3{background:#86efac}
.tw-f b{width:7px;height:7px;background:#fff;border:1px solid #1e1b4b;border-radius:2px}
.tw-f.drop{animation:twDrop .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes twDrop{from{transform:translateY(-34px);opacity:0}}
.tw-ground{width:84px;height:8px;background:#65a30d;border-radius:4px;margin-top:1px}
.tw-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:6px}
.tw-tower{flex:none}.tw-task{flex:1;min-width:0}
.tw-task .q-prompt{font-size:1.15rem;margin:4px 0 8px}
.tw-tip{margin:0;font-size:.92rem;color:var(--ink-soft)}
.tw-demo{display:flex;justify-content:center;margin:10px 0}
.sb-line,.sb-tray{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;border-radius:14px;padding:10px;transition:background .15s,border-color .15s}
.sb-line{min-height:74px;background:#f8fafc;border:3px dashed #94a3b8;margin:6px 0 10px}
.sb-line.sb-over{background:#e0f2fe;border-color:#0284c7}
.sb-line.sb-good{background:var(--green-soft);border:3px solid #22c55e}
.sb-tray{min-height:74px;background:#eef2ff;border:2px solid #c7d2fe;margin-bottom:12px}
.sb-tray.sb-over{background:#e0e7ff}
.sb-ph{color:#94a3b8;font-weight:700;align-self:center;padding:0 6px}
.sb-block{font:inherit;font-weight:800;font-size:1.1rem;min-height:48px;min-width:48px;padding:6px 14px;border-radius:12px;border:2px solid #4338ca;background:#fff;color:var(--ink);box-shadow:0 3px 0 #4338ca;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.sb-block:active{cursor:grabbing}
.sb-line .sb-block{background:#fef9c3;border-color:#ca8a04;box-shadow:0 3px 0 #ca8a04}
.sb-block.sb-lifted{opacity:.25}
.sb-block.sb-gap{margin-left:26px;box-shadow:-18px 0 0 -12px #0284c7,0 3px 0 #ca8a04}
.sb-line.sb-gap-end::after{content:"";width:6px;height:44px;border-radius:3px;background:#0284c7}
.sb-block.sb-hint{animation:sbGlow .9s ease-in-out infinite;border-color:#f59e0b}
@keyframes sbGlow{50%{box-shadow:0 0 0 5px rgba(245,158,11,.5),0 3px 0 #4338ca}}
.sb-ghost{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,0) rotate(-3deg) scale(1.08);box-shadow:0 10px 20px rgba(0,0,0,.25);opacity:.95;cursor:grabbing}
.sb-shake{animation:btShake .45s ease}
.sb-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.sb-final{font-size:1.15rem;font-weight:800;margin:4px 0}

/* ---- Evidence Hunt ---- */
.ev-pass{background:#fffbeb;border:2px solid #fde68a;border-radius:14px;padding:12px 16px;margin:8px 0 14px}
.ev-ptitle{font-weight:900;margin-bottom:4px}
.ev-pass p{margin:8px 0;font-size:1.05rem;line-height:1.9}
.ev-s{cursor:pointer;border-radius:6px;padding:3px 2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(transparent 62%,rgba(253,224,71,.0) 62%);transition:background .12s;-webkit-tap-highlight-color:rgba(79,70,229,.2);touch-action:manipulation}
.ev-s:hover{background:#fef3c7}
.ev-s.ev-sel{background:#c7d2fe;outline:2px solid var(--brand);outline-offset:1px}
.ev-s.ev-no{text-decoration:line-through;text-decoration-color:#dc2626;color:#9ca3af;cursor:default}
.ev-s.ev-yes{background:#bbf7d0;outline:2px solid #16a34a;outline-offset:1px}
.ev-demo{background:#fffbeb;border:2px dashed #fde68a;border-radius:12px;padding:10px;text-align:center;margin-bottom:14px}
.ev-demo .ev-s{background:#c7d2fe;outline:2px solid var(--brand)}

@media (max-width:520px){
  .em-grid,.qs-grid{gap:10px}
  .em-card{min-height:158px;padding:12px}
  .em-name{font-size:1.05rem}
  .qs-door{width:44px;height:44px;font-size:1.6rem}.qs-dash{width:14px}
  .bt-arena{min-height:140px;padding:8px}
  .tw-row{gap:10px}.tw{width:70px}.tw-stack{width:54px}.tw-ground{width:70px}
  .sb-block{font-size:1.05rem;padding:6px 12px}
  .sb-actions .btn{flex:1 1 30%;padding:12px 8px}
  .ev-pass p{font-size:1rem}
  .em-play .btn#em-next,.em-play #ev-check{width:100%}
}
@media (prefers-reduced-motion:reduce){.bt-boss .boss-svg,.qs-door.now,.tw-flag.up,.sb-block.sb-hint{animation:none}}
