/* assets/css/vr-gram.css — grammar games (topic page + play screen) */
.gx{--ok:#16a34a;--bad:#dc2626;--gold:#f5b301;--ink:#1f2540;--mut:#5b6475;font-family:'Hind Siliguri','Noto Sans Bengali',system-ui,sans-serif;color:var(--ink)}
.gx-top{position:sticky;top:60px;z-index:3;background:#fff;padding:.6rem .2rem .5rem;margin:-.2rem -.2rem .6rem}
.gx-prog{height:8px;background:#e9edf7;border-radius:99px;overflow:hidden}
.gx-prog span{display:block;height:100%;background:linear-gradient(90deg,#0d6efd,#6610f2);border-radius:99px;transition:width .35s}
.gx-stats{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.95rem;margin-top:.4rem;gap:.5rem}
.gx-combo{color:#e8590c}
.gx-timer{height:6px;background:#eef1f7;border-radius:99px;margin-top:.4rem;overflow:hidden}
.gx-timer span{display:block;height:100%;width:100%;background:#22c55e;border-radius:99px}
.gx-timer.low span{background:#ef4444}
.gx-replay{background:#fff7e0;border:1px solid #f6d77a;border-radius:10px;padding:.4rem .7rem;font-size:.9rem;margin-bottom:.6rem}
.gx-card{background:#fff;border:1px solid #e3e8f4;border-radius:18px;box-shadow:0 8px 24px rgba(31,37,64,.08);padding:1.1rem 1rem 1rem}
.gx-ask{margin:0 0 .5rem;color:var(--mut);font-weight:600;font-size:.95rem}
.gx-sent{font-family:'Poppins','Hind Siliguri','Noto Sans Bengali','Segoe UI',system-ui,sans-serif;font-size:1.32rem;line-height:1.75;font-weight:500;margin:.1rem 0 1rem;word-wrap:break-word}
.gx-blank{display:inline-block;min-width:3.4em;text-align:center;border-bottom:3px solid #6610f2;background:#f1ecff;border-radius:6px 6px 0 0;padding:0 .3em;color:#6610f2;font-weight:700}
.gx-blank.ok{background:#e7f8ee;border-color:var(--ok);color:var(--ok)}
.gx-blank.bad{background:#fdecec;border-color:var(--bad);color:var(--bad)}
.gx-w{font:inherit;background:#f4f6fb;border:1.5px solid #dfe5f3;border-radius:10px;padding:.05em .35em;margin:.12em 0;cursor:pointer;color:inherit;transition:background .15s}
.gx-w:hover:not([disabled]){background:#e7edff;border-color:#9fb6ff}
.gx-w[disabled]{cursor:default}
.gx-w.is-target{background:#fff1d6;border-color:#f59e0b}
.gx-w.is-miss{background:#fdecec;border-color:var(--bad);text-decoration:line-through}
.gx-w.is-fixed{background:#e7f8ee;border-color:var(--ok)}
.gx-w s{color:var(--bad);opacity:.8}
.gx-opts{display:grid;gap:.6rem}
.gx-opts.n2,.gx-opts.n4{grid-template-columns:1fr 1fr}
.gx-opts.n3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:420px){.gx-opts.n3{grid-template-columns:1fr}.gx-opts.n4{grid-template-columns:1fr 1fr}}
.gx-o{position:relative;min-height:58px;border:2px solid #d9e0f2;background:#fff;border-radius:14px;font:600 1.12rem/1.3 'Poppins','Hind Siliguri',system-ui,sans-serif;color:var(--ink);cursor:pointer;padding:.5rem .8rem;transition:transform .08s,border-color .15s,background .15s}
.gx-o small{position:absolute;top:4px;left:8px;font-size:.68rem;color:#9aa3b8;font-weight:600}
.gx-o:hover:not([disabled]){border-color:#6c8cff;background:#f5f7ff}
.gx-o:active:not([disabled]){transform:scale(.97)}
.gx-o[disabled]{cursor:default;opacity:.75}
.gx-o.is-right{border-color:var(--ok);background:#e7f8ee;color:#11632e;opacity:1}
.gx-o.is-wrong{border-color:var(--bad);background:#fdecec;color:#8a1c1c;opacity:1}
.gx-fb{display:none}
.gx-fb.show{display:block;margin-top:.9rem;border-radius:14px;padding:.75rem .9rem}
.gx-fb.ok{background:#effaf3;border:1px solid #bfe9cf}
.gx-fb.bad{background:#fff3f3;border:1px solid #f5c6c6}
.gx-good{color:var(--ok);font-weight:700;font-size:1.05rem}
.gx-bad{color:var(--bad);font-weight:700;font-size:1.02rem}
.gx-rule{margin:.4rem 0 .7rem;font-size:1rem;line-height:1.6;color:#2b3245}
.gx-next{width:100%;min-height:50px;border:0;border-radius:12px;background:linear-gradient(135deg,#0d6efd,#6610f2);color:#fff;font:700 1.05rem 'Hind Siliguri',system-ui,sans-serif;cursor:pointer}
.gx-card.flash-ok{animation:gxok .45s}
.gx-card.shake{animation:gxshake .4s}
@keyframes gxok{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}100%{box-shadow:0 0 0 14px rgba(22,163,74,0)}}
@keyframes gxshake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@media(prefers-reduced-motion:reduce){.gx-card.flash-ok,.gx-card.shake{animation:none}}
/* end screen */
.gx-end{text-align:center;background:#fff;border:1px solid #e3e8f4;border-radius:18px;box-shadow:0 8px 24px rgba(31,37,64,.08);padding:1.3rem 1rem}
.gx-stars{font-size:3rem;letter-spacing:.2rem;line-height:1}
.gx-stars span{color:#dfe3ee}
.gx-stars span.on{color:var(--gold);text-shadow:0 2px 8px rgba(245,179,1,.35)}
.gx-end h2{font-size:1.35rem;margin:.6rem 0 .3rem}
.gx-score{font-size:1.05rem;margin:0 0 .3rem}
.gx-msg{color:#2b3245;margin:.2rem 0 .3rem}
.gx-best{color:var(--mut);font-size:.92rem;margin:.1rem 0}
.gx-saved{font-size:.9rem;color:#11632e;min-height:1.2em;margin:.3rem 0 .6rem}
.gx-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:.6rem 0 .4rem}
.gx-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.45rem 1rem;border-radius:12px;border:2px solid #d9e0f2;background:#fff;color:var(--ink);font:700 .98rem 'Hind Siliguri',system-ui,sans-serif;text-decoration:none;cursor:pointer}
.gx-btn.main{background:linear-gradient(135deg,#0d6efd,#6610f2);border-color:transparent;color:#fff}
.gx-btn.warn{background:#fff7e0;border-color:#f6d77a}
.gx-btn.ghost{border-color:transparent;color:#0d6efd}
.gx-missed{text-align:left;margin-top:1rem;border-top:1px dashed #e3e8f4;padding-top:.8rem}
.gx-missed h3{font-size:1rem;margin:0 0 .5rem}
.gx-missed ol{padding-left:1.2rem;margin:0}
.gx-missed li{margin-bottom:.6rem}
.gx-ms{display:block;font-family:'Poppins','Hind Siliguri','Noto Sans Bengali','Segoe UI',system-ui,sans-serif;font-size:1rem}
.gx-ms b{color:var(--ok)}
.gx-ms s{color:var(--bad)}
.gx-mr{display:block;font-size:.9rem;color:var(--mut)}

/* topic / games pages */
.gt-rules{background:linear-gradient(135deg,#fffaf0,#fff);border:1px solid #f6e2b3;border-radius:16px;padding:1rem 1.1rem;margin-bottom:1.1rem}
.gt-rules h2{font-size:1.1rem;margin:0 0 .5rem;color:#9a6700}
.gt-rules ul{margin:0;padding-left:1.15rem}
.gt-rules li{margin-bottom:.35rem;line-height:1.6}
.gt-games{display:grid;gap:.9rem}
.gt-game{background:#fff;border:1px solid var(--vr-line,#e3e8f4);border-radius:16px;padding:1rem 1.05rem;box-shadow:0 4px 14px rgba(31,37,64,.05)}
.gt-game h3{font-size:1.12rem;margin:0}
.gt-game .gt-sub{color:#5b6475;font-size:.92rem;margin:.15rem 0 .6rem}
.gt-style{display:inline-block;font-size:.75rem;font-weight:700;background:#eef2ff;color:#4338ca;border-radius:99px;padding:.05rem .55rem;margin-left:.35rem;vertical-align:middle}
.gt-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.5rem}
.gt-lv{display:block;text-decoration:none;color:#1f2540;border:2px solid #e3e8f4;border-radius:12px;padding:.45rem .55rem;background:#fafbff;transition:border-color .15s}
.gt-lv:hover{border-color:#6c8cff}
.gt-lv b{display:block;font-size:.98rem}
.gt-lv small{display:block;color:#5b6475;font-size:.78rem}
.gt-lv .st{color:#f5b301;letter-spacing:.05rem;font-size:.9rem}
.gt-lv .st i{color:#dfe3ee;font-style:normal}
.gt-lv.rec{border-color:#0d6efd;background:#f0f5ff;box-shadow:0 0 0 3px rgba(13,110,253,.12)}
.gt-lv .rec-tag{display:inline-block;background:#0d6efd;color:#fff;border-radius:99px;font-size:.68rem;font-weight:700;padding:0 .45rem;margin-bottom:.15rem}
.gt-start{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;background:#f0f5ff;border:1px solid #cfdcff;border-radius:14px;padding:.75rem .9rem;margin-bottom:1rem}
.gt-start .t{flex:1;min-width:200px}
.gt-topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.gt-topic{display:flex;gap:.75rem;align-items:center;text-decoration:none;color:#1f2540;background:#fff;border:1px solid var(--vr-line,#e3e8f4);border-radius:16px;padding:.85rem .95rem;box-shadow:0 4px 14px rgba(31,37,64,.05);transition:transform .15s,border-color .15s}
.gt-topic:hover{transform:translateY(-2px);border-color:#9fb6ff;color:#1f2540}
.gt-topic .ic{font-size:1.9rem;line-height:1}
.gt-topic b{display:block;font-size:1.02rem}
.gt-topic small{display:block;color:#5b6475;font-size:.82rem}
.gt-topic .st{color:#f5b301;font-size:.82rem;font-weight:700}
.gt-learn-link{display:flex;gap:.8rem;align-items:center;text-decoration:none;background:linear-gradient(135deg,#141a3a,#232c66);color:#fff;border-radius:16px;padding:.85rem 1rem;margin:1.2rem 0}
.gt-learn-link:hover{color:#fff}
.gt-learn-link .ic{font-size:1.8rem}
.gt-learn-link small{display:block;color:#b9c1ec}
.gt-learn-link .go{margin-left:auto;color:#ffd23f;font-weight:700;white-space:nowrap}
.gp-head{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.7rem}
.gp-lvls{display:flex;gap:.35rem;flex-wrap:wrap}
.gp-lvls a{min-width:42px;text-align:center;text-decoration:none;border:2px solid #e3e8f4;border-radius:10px;padding:.2rem .5rem;font-weight:700;color:#1f2540;background:#fff;font-size:.9rem}
.gp-lvls a.on{border-color:#0d6efd;background:#0d6efd;color:#fff}
.gp-wrap{max-width:720px;margin:0 auto}

/* ====================== arcade / adventure styles (vr-gram-arcade.js) ====================== */
.ga-hud{display:flex;align-items:center;gap:.6rem;font-weight:700;margin-bottom:.55rem;flex-wrap:wrap}
.ga-hud .ga-n{color:#5b6475}
.ga-hud .ga-pts,.ga-hud .ga-coins{margin-left:auto}
.ga-hearts span{color:#e3e6ef;font-size:1.25rem;margin-right:1px;transition:transform .2s}
.ga-hearts span.on{color:#ef4444}
.ga-mute{border:0;background:#f1f4fb;border-radius:10px;width:38px;height:34px;cursor:pointer;font-size:1rem}
.ga-banner{font-weight:700;border-radius:12px;padding:.55rem .8rem;margin:.5rem auto .6rem;max-width:520px}
.ga-banner.ok{background:#effaf3;color:#11632e;border:1px solid #bfe9cf}
.ga-banner.bad{background:#fff3f3;color:#8a1c1c;border:1px solid #f5c6c6}
/* blaster */
.ga-q{background:#fff;border:1px solid #e3e8f4;border-radius:14px;padding:.6rem .9rem;margin-bottom:.6rem;box-shadow:0 4px 14px rgba(31,37,64,.06)}
.ga-q-k{display:block;font-size:.85rem;color:#5b6475;font-weight:600}
.ga-q .gx-sent{margin:.2rem 0 0;font-size:1.22rem}
.ga-arena{position:relative;height:min(62vh,520px);min-height:330px;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 50% 120%,#3b1d6e 0%,#121638 55%,#070a1f 100%);touch-action:manipulation;user-select:none}
.ga-stars{position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff8,transparent),radial-gradient(1px 1px at 70% 20%,#fff9,transparent),radial-gradient(1.5px 1.5px at 40% 70%,#fff6,transparent),radial-gradient(1px 1px at 85% 60%,#fffa,transparent),radial-gradient(1px 1px at 10% 85%,#fff7,transparent),radial-gradient(1.5px 1.5px at 55% 45%,#fff8,transparent);animation:gaTwinkle 4s ease-in-out infinite alternate}
@keyframes gaTwinkle{from{opacity:.6}to{opacity:1}}
.ga-ground{position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(#2d1b4e,#1a0f30);border-top:2px solid #6b3fb0}
.ga-cannon{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);font-size:2.2rem;filter:drop-shadow(0 0 8px #ffb703)}
.ga-met{position:absolute;top:0;max-width:150px;min-height:74px;border-radius:40px;border:0;cursor:pointer;color:#fff;font:700 1.08rem/1.15 'Poppins','Hind Siliguri',system-ui,sans-serif;padding:.35rem .3rem;
  background:radial-gradient(circle at 35% 30%,#ffb46b 0%,#d9622b 45%,#7a2e12 100%);box-shadow:0 0 18px rgba(255,140,60,.55),inset -6px -8px 0 rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;text-align:center;will-change:transform}
.ga-met span{text-shadow:0 1px 3px rgba(0,0,0,.6);word-break:keep-all;overflow-wrap:normal;hyphens:none;line-height:1.15}
.ga-met small{position:absolute;top:6px;left:50%;transform:translateX(-50%);font-size:.62rem;opacity:.7}
.ga-met::before{content:'';position:absolute;left:50%;top:-38px;width:22px;height:46px;transform:translateX(-50%);background:linear-gradient(to top,rgba(255,170,60,.75),transparent);border-radius:50% 50% 0 0;filter:blur(2px);z-index:-1}
@media(max-width:420px){.ga-met{min-height:66px}}
.ga-met.is-hit{animation:gaPop .5s forwards}
.ga-met.is-bad{background:radial-gradient(circle at 35% 30%,#ff8a8a,#c81e1e 60%,#5c0b0b);animation:gaWobble .4s}
.ga-met.is-right{box-shadow:0 0 0 4px #4ade80,0 0 26px #4ade80}
@keyframes gaPop{to{opacity:0;transform:translate(-50%,var(--y,0)) scale(1.6)}}
@keyframes gaWobble{25%{margin-left:-6px}75%{margin-left:6px}}
.ga-laser{position:absolute;height:4px;background:linear-gradient(90deg,#fff,#4cc9f0,#ffd23f);transform-origin:0 50%;border-radius:4px;box-shadow:0 0 10px #4cc9f0;animation:gaFade .35s forwards;z-index:3}
.ga-boom{position:absolute;font-size:2.6rem;transform:translate(-50%,-50%);animation:gaBoom .55s forwards;z-index:4;pointer-events:none}
@keyframes gaFade{to{opacity:0}}
@keyframes gaBoom{0%{transform:translate(-50%,-50%) scale(.4)}60%{transform:translate(-50%,-50%) scale(1.5)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
.ga-shake{animation:gxshake .4s}
.ga-toast{position:absolute;left:10px;right:10px;bottom:30px;z-index:6;background:#fff;border-radius:14px;padding:.7rem .85rem;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.ga-toast b{color:#b91c1c}
.ga-toast p{margin:.3rem 0 .6rem;font-size:.95rem;line-height:1.55}
.ga-intro{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;color:#fff;background:rgba(7,10,31,.72);padding:1rem}
.ga-intro b{font-size:1.5rem}
.ga-intro span{color:#d6dbff;line-height:1.6}
.ga-intro .gx-next{max-width:260px}
/* race */
.ga-track{position:relative;background:repeating-linear-gradient(90deg,#4b5563 0 26px,#525b6b 26px 52px);border-radius:16px;padding:.5rem 2.6rem .5rem .6rem;margin-bottom:.7rem;border:3px solid #1f2937}
.ga-lane{position:relative;height:48px;border-bottom:2px dashed #fde68a88}
.ga-lane:last-of-type{border-bottom:0}
.ga-car{position:absolute;top:50%;font-size:2rem;line-height:1;transform:translateY(-50%) scaleX(-1);transition:left .6s cubic-bezier(.2,.8,.3,1)}
.ga-car.rival{transition:none;filter:drop-shadow(0 0 4px #93c5fd)}
.ga-car.me{filter:drop-shadow(0 0 5px #fde047)}
.ga-car.boost::after{content:'💨';position:absolute;right:-26px;top:4px;font-size:1.2rem}
.ga-car.stall{animation:gaWobble .3s 3}
.ga-lbl{position:absolute;right:-2.3rem;top:50%;transform:translateY(-50%);font-size:.72rem;color:#fff;font-weight:700}
.ga-flag{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);font-size:1.6rem}
.ga-count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 2.6rem 'Hind Siliguri',system-ui;color:#fde047;background:rgba(17,24,39,.55);border-radius:12px;text-shadow:0 2px 8px #000}
.ga-ready{color:#5b6475;font-size:1rem}
/* quest */
.ga-map{position:relative;overflow-x:auto;overflow-y:hidden;background:linear-gradient(#bde3ff,#e9f7d9 60%,#cfe8b0);border-radius:16px;padding:2.2rem .6rem .7rem;margin-bottom:.6rem;scrollbar-width:thin}
.ga-path{list-style:none;margin:0;padding:0;display:flex;gap:18px;align-items:flex-end;min-width:max-content;position:relative}
.ga-path::before{content:'';position:absolute;left:20px;right:20px;top:50%;border-top:4px dotted #a16207}
.ga-node{position:relative;width:46px;height:46px;border-radius:50%;background:#fff;border:3px solid #d6c39a;display:flex;align-items:center;justify-content:center;font-size:1.45rem;flex:none;box-shadow:0 3px 8px rgba(0,0,0,.12)}
.ga-node:nth-child(even){transform:translateY(-14px)}
.ga-node.cur{border-color:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.3)}
.ga-node.won{border-color:#22c55e;background:#effaf3}
.ga-node.won::after{content:'✓';position:absolute;right:-4px;top:-6px;background:#22c55e;color:#fff;border-radius:50%;width:18px;height:18px;font-size:.7rem;display:flex;align-items:center;justify-content:center}
.ga-node.lost{border-color:#ef4444;background:#fff3f3}
.ga-node.boss{width:56px;height:56px;font-size:1.8rem;border-color:#7f1d1d;background:#fee2e2}
.ga-node.goal{border-style:dashed}
.ga-hero{position:absolute;left:30px;top:20px;font-size:1.7rem;transform:translate(-50%,-100%);transition:left .7s ease,top .7s ease;z-index:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}
.ga-scene{display:flex;gap:.6rem;align-items:center;margin-bottom:.6rem}
.ga-guard{font-size:2.6rem;line-height:1;animation:gaBob 2s ease-in-out infinite}
@keyframes gaBob{50%{transform:translateY(-5px)}}
.ga-bubble{position:relative;background:#fff;border:1px solid #e3e8f4;border-radius:14px;padding:.45rem .75rem;flex:1;box-shadow:0 3px 10px rgba(31,37,64,.06)}
.ga-bubble::before{content:'';position:absolute;left:-8px;top:50%;width:14px;height:14px;background:#fff;border-left:1px solid #e3e8f4;border-bottom:1px solid #e3e8f4;transform:translateY(-50%) rotate(45deg)}
.ga-bubble b{display:block;font-size:.8rem;color:#a16207}
.ga-say{font-size:.95rem}
.ga-scene.boss .ga-bubble{background:#fff1f2;border-color:#fecdd3}
.ga-scene.boss .ga-guard{font-size:3.2rem}
@media(prefers-reduced-motion:reduce){.ga-stars,.ga-guard,.ga-met.is-hit,.ga-boom{animation:none}.ga-car,.ga-hero{transition:none}}
/* style badges on topic page */
.gt-style.s-blaster{background:#fff1e6;color:#c2410c}
.gt-style.s-race{background:#e0f2fe;color:#0369a1}
.gt-style.s-quest{background:#ecfccb;color:#4d7c0f}
.gt-style.s-fix{background:#fef3c7;color:#92400e}
/* ---------- grammar sections: badge + folder cards (games home, hubs, home page) ---------- */
.gh-badge{letter-spacing:-.02em;display:inline-flex;align-items:center;justify-content:center;width:1.6em;height:1.6em;border-radius:.45em;font-weight:800;line-height:1;vertical-align:-.25em;color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);font-family:'Hind Siliguri','Poppins',sans-serif;font-size:.95em}
.gh-badge.gh-bn{background:linear-gradient(135deg,#10b981,#047857)}
.gh-folders{display:grid;grid-template-columns:1fr;gap:.9rem}
@media(min-width:768px){.gh-folders{grid-template-columns:repeat(2,1fr)}}
.gh-folder{position:relative;display:flex;gap:.9rem;align-items:center;text-decoration:none;color:#1f2540;background:#fff;border:1px solid #e3e8f4;border-radius:18px;padding:1rem 1.1rem;box-shadow:0 6px 20px rgba(31,37,64,.07);transition:transform .15s,box-shadow .15s;overflow:hidden}
.gh-folder::before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:#2563eb}
.gh-folder.gh-bn::before{background:#059669}.gh-folder.gh-learn::before{background:#7c3aed}.gh-folder.gh-play::before{background:#f59e0b}
.gh-folder:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(31,37,64,.12);color:#1f2540}
.gh-folder .gh-badge{font-size:1.45rem;width:2.3em;height:2.3em;flex:0 0 auto;border-radius:14px}
.gh-folder .gh-badge.gh-learn{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}.gh-folder .gh-badge.gh-play{background:linear-gradient(135deg,#fbbf24,#d97706)}
.gh-folder .t{flex:1;min-width:0}
.gh-folder b{display:block;font-size:1.08rem;line-height:1.3}
.gh-folder small{display:block;color:#5b6475;font-size:.84rem;line-height:1.45;margin-top:.15rem}
.gh-folder .n{display:inline-block;margin-top:.35rem;font-size:.78rem;font-weight:700;color:#1d4ed8;background:#eef3ff;border-radius:999px;padding:.1rem .55rem}
.gh-folder.gh-bn .n{color:#047857;background:#e7f8f1}.gh-folder.gh-learn .n{color:#6d28d9;background:#f3eefe}.gh-folder.gh-play .n{color:#b45309;background:#fef5e3}
.gh-folder .go{color:#9aa4bd;font-size:.9rem}
.gh-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.gh-chips span{font-size:.74rem;background:#f4f6fb;color:#3b4560;border-radius:999px;padding:.08rem .5rem}

/* ---------- Home page spotlight: grammar game cards ---------- */
.gs-filter{display:inline-flex;gap:.3rem;background:#fff;border:1px solid #e3e8f4;border-radius:999px;padding:.25rem;margin:0 0 .85rem;box-shadow:0 3px 10px rgba(31,37,64,.05)}
.gs-filter button{border:0;background:none;border-radius:999px;padding:.32rem .95rem;font:600 .9rem/1.2 'Hind Siliguri',system-ui,sans-serif;color:#4b5470;cursor:pointer}
.gs-filter button.on{background:#1f2540;color:#fff}
.gs-rail{display:flex;gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.2rem .1rem 1rem;margin:0 -.1rem;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.gs-card{flex:0 0 min(72vw,250px);scroll-snap-align:start;display:flex;flex-direction:column;text-decoration:none;color:#1f2540;background:#fff;border:1px solid #e3e8f4;border-radius:20px;overflow:hidden;box-shadow:0 6px 20px rgba(31,37,64,.08);transition:transform .15s,box-shadow .15s}
.gs-card[hidden]{display:none}
.gs-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(31,37,64,.15);color:#1f2540}
.gs-art{position:relative;display:flex;align-items:center;justify-content:center;height:112px;background:linear-gradient(135deg,#0ea5e9,#2563eb);overflow:hidden}
.gs-art::before,.gs-art::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.14)}
.gs-art::before{width:130px;height:130px;right:-40px;top:-50px}.gs-art::after{width:70px;height:70px;left:-20px;bottom:-30px}
.gs-blaster .gs-art{background:linear-gradient(135deg,#312e81,#7c3aed 60%,#c026d3)}
.gs-race .gs-art{background:linear-gradient(135deg,#f97316,#dc2626)}
.gs-quest .gs-art{background:linear-gradient(135deg,#047857,#0d9488 60%,#0891b2)}
.gs-fix .gs-art{background:linear-gradient(135deg,#be123c,#f43f5e)}
.gs-ic{position:relative;z-index:1;font-size:3rem;line-height:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.25))}
.gs-card:hover .gs-ic{animation:gsBob .6s ease}
@keyframes gsBob{50%{transform:translateY(-6px) rotate(-6deg)}}
.gs-eng{position:absolute;z-index:1;left:.6rem;bottom:.55rem;background:rgba(0,0,0,.28);color:#fff;border-radius:999px;padding:.12rem .55rem;font-size:.78rem;font-weight:600}
.gs-tag{position:absolute;z-index:1;right:.55rem;top:.55rem;background:#ffd700;color:#1a1a2e;border-radius:999px;padding:.12rem .55rem;font-size:.78rem;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.gs-hot{border:2px solid #ffc107}
.gs-hot .gs-tag{animation:gsPulse 1.8s ease-in-out infinite}
@keyframes gsPulse{50%{transform:scale(1.08)}}
.gs-body{display:flex;flex-direction:column;gap:.15rem;padding:.75rem .9rem .9rem;flex:1}
.gs-lang{align-self:flex-start;font-size:.72rem;font-weight:700;border-radius:6px;padding:.05rem .45rem;margin-bottom:.15rem}
.gs-l-en{background:#e0ecff;color:#1d4ed8}.gs-l-bn{background:#dcfce7;color:#047857}
.gs-t{font-size:1.05rem;line-height:1.3;font-family:Poppins,'Hind Siliguri',system-ui,sans-serif}
.gs-topic{font-size:.88rem;color:#5b6475}
.gs-meta{font-size:.8rem;color:#7a8296;margin-top:auto;padding-top:.35rem}
.gs-play{margin-top:.55rem;align-self:stretch;text-align:center;background:#1f2540;color:#fff;border-radius:12px;padding:.42rem;font-weight:700;font-size:.95rem}
.gs-hot .gs-play{background:#ffd700;color:#1a1a2e}
@media(min-width:992px){.gs-rail{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible;padding-bottom:.2rem}}
/* small teaser under the class tiles in the hero */
.gs-hero-pill{display:flex;align-items:center;gap:.7rem;margin-top:1rem;padding:.6rem .8rem;border-radius:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;text-decoration:none;max-width:460px}
.gs-hero-pill:hover{background:rgba(255,255,255,.2);color:#fff}
.gs-hero-pill .ic{font-size:1.9rem;line-height:1}
.gs-hero-pill .tx{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.gs-hero-pill .tx small{color:#ffe58a;font-weight:700;font-size:.78rem}
.gs-hero-pill .tx b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-hero-pill .go{margin-left:auto;background:#ffd700;color:#1a1a2e;border-radius:999px;padding:.25rem .75rem;font-weight:700;font-size:.88rem;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.gs-hot .gs-tag,.gs-card:hover .gs-ic{animation:none}.gs-card{transition:none}}
.gs-sub{font-size:1.1rem;font-weight:700;margin:0 0 .6rem;font-family:'Hind Siliguri',system-ui,sans-serif;color:#1f2540}

/* ---------- Sentence Builder (build) ---------- */
.gb-task{font-weight:600;font-size:1.05rem;line-height:1.55;background:#f5f3ff;border:1px solid #e0d7ff;border-radius:12px;padding:.6rem .8rem;margin-bottom:.8rem;color:#3b2a8a}
.gb-tray{min-height:64px;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.55rem;border:2px dashed #c7d2fe;border-radius:14px;background:#fafbff;margin-bottom:.8rem;transition:border-color .2s,background .2s}
.gb-tray.is-ok{border-style:solid;border-color:var(--ok);background:#ecfdf3}
.gb-tray.is-bad{border-style:solid;border-color:var(--bad);background:#fef2f2}
.gb-ph{color:#9aa3b8;font-size:.92rem}
.gb-pool{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.8rem}
.gb-tile{font:600 1.08rem/1.2 'Poppins','Hind Siliguri',system-ui,sans-serif;color:var(--ink);background:#fff;border:2px solid #d9e0f2;border-bottom-width:4px;border-radius:11px;padding:.45rem .7rem;cursor:pointer;transition:transform .08s,opacity .15s}
.gb-tile:hover:not([disabled]){border-color:#818cf8;transform:translateY(-2px)}
.gb-tile:active{transform:translateY(1px)}
.gb-tile.in{background:#eef2ff;border-color:#a5b4fc}
.gb-tile.used{opacity:.25}
.gb-tile[disabled]{cursor:default}
.gb-tray.is-ok .gb-tile{background:#dcfce7;border-color:#86efac}
.gb-tray.is-bad .gb-tile{background:#fff;border-color:#e5e7eb}
.gb-tile.wrong{background:#fee2e2!important;border-color:#f87171!important}
.gb-tools{display:flex;gap:.45rem;flex-wrap:wrap}
.gb-tools .gb-check{flex:1;min-width:150px}
.gb-tools .gx-btn[disabled]{opacity:.45;cursor:default}
.gb-answer{font:600 1.12rem/1.5 'Poppins','Hind Siliguri',system-ui,sans-serif;color:#15803d;background:#ecfdf3;border-radius:10px;padding:.35rem .6rem;margin:.35rem 0}
.gb-hintmsg{color:#92400e;font-size:.92rem}

/* ---------- Right or Wrong? (judge) ---------- */
.gj-clock{height:12px;background:#eef1f7;border-radius:99px;overflow:hidden}
.gj-clock span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#22c55e,#84cc16);border-radius:99px}
.gj-clock.low span{background:linear-gradient(90deg,#ef4444,#f97316);animation:gjBlink .8s ease-in-out infinite}
@keyframes gjBlink{50%{opacity:.55}}
.gj-time{font-variant-numeric:tabular-nums;color:#1f2540}
.gj-card{position:relative;text-align:center}
.gj-intro{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.4rem .5rem}
.gj-intro b{font-size:1.35rem}
.gj-intro span{color:var(--mut);line-height:1.7}
.gj-sent{min-height:4.2em;display:flex;align-items:center;justify-content:center;font-size:1.4rem;padding:.6rem .4rem;border-radius:14px;margin-bottom:.9rem;transition:background .2s}
.gj-sent.pop{animation:gjPop .25s ease-out}
@keyframes gjPop{from{transform:scale(.94);opacity:.3}to{transform:none;opacity:1}}
.gj-sent.ok{background:#ecfdf3}
.gj-sent.bad{background:#fef2f2}
.gj-btns{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.gj-b{min-height:70px;border-radius:16px;border:0;font:800 1.25rem 'Hind Siliguri',system-ui,sans-serif;color:#fff;cursor:pointer;box-shadow:0 6px 0 rgba(0,0,0,.18);transition:transform .08s,box-shadow .08s,opacity .2s}
.gj-b.yes{background:linear-gradient(135deg,#16a34a,#22c55e)}
.gj-b.no{background:linear-gradient(135deg,#dc2626,#f43f5e)}
.gj-b:active{transform:translateY(4px);box-shadow:0 2px 0 rgba(0,0,0,.18)}
.gj-b[disabled]{opacity:.45;cursor:default}
.gj-b.is-right{opacity:1;outline:4px solid #fde047}
.gj-pen{position:absolute;top:.6rem;right:.8rem;font-weight:800;color:#dc2626;opacity:0;transform:translateY(0);pointer-events:none}
.gj-pen.show{animation:gjPen .9s ease-out}
@keyframes gjPen{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-24px)}}
.gt-style.s-build{background:#ede9fe;color:#5b21b6}
.gt-style.s-judge{background:#fce7f3;color:#9d174d}
.gs-build .gs-art{background:linear-gradient(135deg,#4338ca,#6366f1 60%,#22d3ee)}
.gs-judge .gs-art{background:linear-gradient(135deg,#be185d,#f59e0b)}
@media(prefers-reduced-motion:reduce){.gj-sent.pop,.gj-clock.low span,.gj-pen.show{animation:none}}
