
:root{
  --bg:#0f1b2d;--surface:#162033;--s2:#1e2d45;--border:rgba(255,255,255,0.08);
  --text:#e8f0fe;--muted:#8aa0c0;--green:#34d399;--blue:#60a5fa;--amber:#fbbf24;
  --purple:#a78bfa;--coral:#fb7185;--teal:#2dd4bf;
  --r:16px;--rs:10px;--fh:'Baloo 2',cursive;--fb:'Nunito',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--fb);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;}
body::before{content:'';position:fixed;inset:0;background:
  radial-gradient(ellipse 60% 40% at 20% 10%,rgba(96,165,250,.08) 0%,transparent 70%),
  radial-gradient(ellipse 50% 50% at 80% 80%,rgba(167,139,250,.07) 0%,transparent 70%);
  pointer-events:none;z-index:0;}
.wrap{max-width:920px;margin:0 auto;padding:2rem 1.25rem 5rem;position:relative;z-index:1;}
.hero{text-align:center;padding:2.5rem 0 2rem;animation:fD .6s ease both;}
.htag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--green);background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.25);
  border-radius:999px;padding:4px 14px;margin-bottom:1rem;}
.hero h1{font-family:var(--fh);font-size:clamp(22px,6vw,44px);font-weight:800;line-height:1.15;
  background:linear-gradient(135deg,#e8f0fe,#60a5fa 50%,#a78bfa);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem;}
.hero p{font-size:15px;color:var(--muted);font-weight:500;}

.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1.75rem;}
.tab{flex:1 1 auto;min-width:120px;padding:12px 14px;border-radius:var(--rs);border:1px solid var(--border);
  background:var(--surface);color:var(--muted);font-family:var(--fb);font-size:14px;font-weight:700;
  cursor:pointer;transition:all .2s;text-align:center;}
.tab:hover{background:var(--s2);color:var(--text);}
.tab.active{background:linear-gradient(135deg,#1e3a5f,#162033);border-color:var(--blue);
  color:var(--blue);box-shadow:0 0 16px rgba(96,165,250,.15);}
.sec{display:none;animation:fU .35s ease both;}
.sec.on{display:block;}

.subj-divider{display:flex;align-items:center;gap:12px;margin:1.5rem 0 1rem;}
.subj-divider span{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;
  color:var(--purple);background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.2);
  border-radius:999px;padding:4px 14px;white-space:nowrap;}
.subj-divider::before,.subj-divider::after{content:'';flex:1;height:1px;background:var(--border);}

.group-score{display:flex;align-items:center;gap:12px;margin-bottom:1.25rem;padding:10px 16px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);}
.group-score .gs-label{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap;}
.group-score .gs-bar{flex:1;height:8px;background:var(--s2);border-radius:999px;overflow:hidden;}
.group-score .gs-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--teal));
  transition:width .5s ease;width:0%;}
.group-score .gs-pct{font-family:var(--fh);font-size:16px;font-weight:800;color:var(--green);min-width:48px;text-align:right;}

.fc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:1.5rem;}
.fc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;
  transition:transform .2s,box-shadow .2s;}
.fc-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.35);}
.fc-card.answered-ok{border-color:rgba(52,211,153,.4);}
.fc-card.answered-bad{border-color:rgba(251,113,133,.3);}
.fc-top-img{height:140px;overflow:hidden;position:relative;background:var(--s2);
  display:flex;align-items:center;justify-content:center;}
.fc-top-img img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;}
.fc-top-img .ef{font-size:56px;z-index:1;}
.fc-top-img .fc-check{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;
  display:none;align-items:center;justify-content:center;font-size:14px;font-weight:900;z-index:2;}
.fc-card.answered-ok .fc-check{display:flex;background:rgba(52,211,153,.2);color:var(--green);}
.fc-card.answered-bad .fc-check{display:flex;background:rgba(251,113,133,.2);color:var(--coral);}
.fc-body{padding:12px;}
.fc-mini-opts{display:flex;flex-direction:column;gap:6px;}
.fc-opt{padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:var(--s2);
  color:var(--text);font-family:var(--fb);font-size:13px;font-weight:600;cursor:pointer;
  text-align:left;transition:all .15s;line-height:1.3;}
.fc-opt:hover:not(:disabled){border-color:var(--blue);background:rgba(96,165,250,.07);}
.fc-opt.ok{background:rgba(52,211,153,.12);border-color:var(--green);color:var(--green);cursor:default;}
.fc-opt.bad{background:rgba(251,113,133,.08);border-color:var(--coral);color:var(--coral);opacity:.6;cursor:default;}
.fc-opt:disabled{cursor:default;}
.fc-es{margin-top:8px;font-size:12px;color:var(--teal);font-weight:600;line-height:1.4;
  background:rgba(45,212,191,.06);border:1px solid rgba(45,212,191,.12);border-radius:8px;
  padding:7px 10px;cursor:pointer;user-select:none;text-align:center;}
.fc-es .es-text{filter:blur(5px);transition:filter .3s;display:block;}
.fc-es.revealed .es-text{filter:blur(0);}
.fc-es .tap-lbl{font-size:10px;color:var(--muted);font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.fc-es.revealed .tap-lbl{display:none;}

.fc-word-top{height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--s2);padding:12px;text-align:center;position:relative;}
.fc-word-top .word-emoji{font-size:36px;margin-bottom:6px;}
.fc-word-top .word-label{font-family:var(--fh);font-size:18px;font-weight:800;color:var(--text);line-height:1.25;}
.fc-word-top .fc-check{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;
  display:none;align-items:center;justify-content:center;font-size:14px;font-weight:900;}
.fc-card.answered-ok .fc-word-top .fc-check{display:flex;background:rgba(52,211,153,.2);color:var(--green);}
.fc-card.answered-bad .fc-word-top .fc-check{display:flex;background:rgba(251,113,133,.2);color:var(--coral);}
.fc-img-opt{padding:4px;border-radius:8px;border:1px solid var(--border);background:var(--s2);
  cursor:pointer;transition:all .15s;overflow:hidden;display:flex;align-items:center;gap:8px;}
.fc-img-opt .opt-thumb{width:48px;height:48px;border-radius:6px;overflow:hidden;position:relative;
  background:var(--s2);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fc-img-opt .opt-thumb img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.fc-img-opt .opt-thumb .ef{font-size:22px;}
.fc-img-opt .opt-label{font-size:13px;font-weight:600;color:var(--text);font-family:var(--fb);}
.fc-img-opt:hover:not(:disabled){border-color:var(--blue);background:rgba(96,165,250,.07);}
.fc-img-opt.ok{background:rgba(52,211,153,.12);border-color:var(--green);cursor:default;}
.fc-img-opt.ok .opt-label{color:var(--green);}
.fc-img-opt.bad{background:rgba(251,113,133,.08);border-color:var(--coral);opacity:.6;cursor:default;}
.fc-img-opt.bad .opt-label{color:var(--coral);}
.fc-img-opt:disabled{cursor:default;}

.pbar{background:var(--s2);border-radius:999px;height:6px;margin:1rem 0 1.5rem;overflow:hidden;}
.pfill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--teal));
  transition:width .5s cubic-bezier(.4,0,.2,1);width:0%;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:1.5rem;margin-bottom:1.25rem;}
.qctr{font-size:13px;color:var(--muted);font-weight:600;margin-bottom:.75rem;}
.qtxt{font-family:var(--fh);font-size:19px;font-weight:700;color:var(--text);line-height:1.45;margin-bottom:1.25rem;}
.q-img{width:100%;height:180px;overflow:hidden;position:relative;background:var(--s2);
  display:flex;align-items:center;justify-content:center;border-radius:var(--rs);margin-bottom:1rem;}
.q-img img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;}
.q-img .ef{font-size:60px;z-index:1;}
.opts{display:flex;flex-direction:column;gap:10px;}
.opt{padding:13px 18px;border-radius:var(--rs);border:1px solid var(--border);background:var(--s2);
  color:var(--text);font-family:var(--fb);font-size:15px;font-weight:600;cursor:pointer;text-align:left;transition:all .2s;}
.opt:hover:not(:disabled){border-color:var(--blue);background:rgba(96,165,250,.07);}
.opt.ok{background:rgba(52,211,153,.1);border-color:var(--green);color:var(--green);}
.opt.bad{background:rgba(251,113,133,.1);border-color:var(--coral);color:var(--coral);}
.qfb{display:none;margin-top:1rem;padding:12px 16px;border-radius:var(--rs);font-size:14px;font-weight:700;}
.qfb.on{display:block;}
.qfb.ok{background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.25);color:var(--green);}
.qfb.bad{background:rgba(251,113,133,.08);border:1px solid rgba(251,113,133,.25);color:var(--coral);}
.btn{padding:11px 18px;border-radius:var(--rs);border:1px solid var(--border);
  background:var(--surface);color:var(--text);font-family:var(--fb);font-size:14px;font-weight:700;
  cursor:pointer;transition:all .2s;text-align:center;}
.btn:hover{background:var(--s2);}
.btn-p{background:linear-gradient(135deg,#1a5c44,#0d4a44);border-color:var(--green);color:var(--green);}
.btn-p:hover{box-shadow:0 0 20px rgba(52,211,153,.25);}
.scard{text-align:center;padding:3rem 2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:1.25rem;}
.snum{font-family:var(--fh);font-size:72px;font-weight:900;
  background:linear-gradient(135deg,var(--green),var(--teal));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;}
.slbl{font-size:15px;color:var(--muted);font-weight:600;margin-top:4px;margin-bottom:1.5rem;}
.sstars{font-size:32px;margin-bottom:1rem;}
.smsg{font-size:16px;font-weight:700;color:var(--text);line-height:1.5;}
.brow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:1.25rem;}
.review-list{display:flex;flex-direction:column;gap:10px;margin-top:1.25rem;}
.ritem{padding:12px 16px;border-radius:var(--rs);border:1px solid var(--border);font-size:14px;}
.ritem.ok{background:rgba(52,211,153,.06);border-color:rgba(52,211,153,.25);}
.ritem.bad{background:rgba(251,113,133,.06);border-color:rgba(251,113,133,.25);}
.rq{font-weight:700;color:var(--text);margin-bottom:4px;}
.ra{font-size:13px;color:var(--muted);}
.ra .correct{color:var(--green);font-weight:700;}
.ra .wrong{color:var(--coral);text-decoration:line-through;margin-right:6px;font-weight:700;}

.group-breakdown{margin-top:1.5rem;}
.gb-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--rs);margin-bottom:8px;}
.gb-name{font-size:13px;font-weight:700;color:var(--text);min-width:120px;flex-shrink:0;}
.gb-bar{flex:1;height:8px;background:var(--s2);border-radius:999px;overflow:hidden;}
.gb-fill{height:100%;border-radius:999px;transition:width .5s ease;}
.gb-pct{font-family:var(--fh);font-size:15px;font-weight:800;min-width:48px;text-align:right;}

/* ══ RETRY ROW ══ */
.retry-row{display:flex;justify-content:flex-end;margin:1.25rem 0 .5rem;}
.btn-retry{padding:10px 20px;border-radius:var(--rs);border:1px solid var(--border);
  background:var(--surface);color:var(--muted);font-family:var(--fb);font-size:14px;font-weight:700;
  cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;}
.btn-retry:hover{background:var(--s2);color:var(--text);border-color:var(--blue);}

/* ══ LISTEN TAB ══ */
.listen-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;
  transition:transform .2s,box-shadow .2s;}
.listen-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.35);}
.listen-card.answered-ok{border-color:rgba(52,211,153,.4);}
.listen-card.answered-bad{border-color:rgba(251,113,133,.3);}
.listen-top{height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--s2);padding:12px;text-align:center;position:relative;cursor:pointer;
  user-select:none;transition:background .2s;}
.listen-top:hover{background:#243554;}
.listen-top:active{background:#2a3d60;}
.listen-btn{width:64px;height:64px;border-radius:50%;border:none;
  background:linear-gradient(135deg,#1e3a5f,#162033);border:2px solid var(--blue);
  color:var(--blue);font-size:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .2s;box-shadow:0 0 0 0 rgba(96,165,250,.4);}
.listen-top:hover .listen-btn{box-shadow:0 0 0 8px rgba(96,165,250,.15);}
.listen-btn.playing{background:linear-gradient(135deg,#0d4a44,#1a5c44);border-color:var(--green);
  color:var(--green);animation:pulse-ring .8s ease infinite;}
.listen-hint{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  margin-top:10px;}
.listen-check{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;
  display:none;align-items:center;justify-content:center;font-size:14px;font-weight:900;}
.listen-card.answered-ok .listen-check{display:flex;background:rgba(52,211,153,.2);color:var(--green);}
.listen-card.answered-bad .listen-check{display:flex;background:rgba(251,113,133,.2);color:var(--coral);}
@keyframes pulse-ring{
  0%{box-shadow:0 0 0 0 rgba(52,211,153,.5);}
  70%{box-shadow:0 0 0 12px rgba(52,211,153,.0);}
  100%{box-shadow:0 0 0 0 rgba(52,211,153,.0);}
}

@keyframes fD{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fU{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:520px){
  .fc-grid{grid-template-columns:repeat(2,1fr);}
  .fc-top-img,.fc-word-top{height:100px;}
  .fc-top-img .ef{font-size:40px;}
  .fc-opt,.fc-img-opt{padding:7px 10px;font-size:12px;}
  .qtxt{font-size:16px;}
  .snum{font-size:56px;}
  .gb-name{min-width:80px;font-size:11px;}
}

/* ══ QUESTION WORDS TAB ══ */
.qw-intro{font-size:13px;color:var(--muted);font-weight:600;margin:-0.5rem 0 1rem;padding:0 2px;}
.qw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:1.5rem;}
.qw-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s;}
.qw-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.35);}
.qw-top{display:flex;align-items:center;gap:10px;padding:14px 14px 10px;background:var(--s2);border-bottom:1px solid var(--border);}
.qw-emoji{font-size:22px;flex-shrink:0;}
.qw-word{font-family:var(--fh);font-size:20px;font-weight:800;color:var(--text);flex:1;}
.qw-play-btn{padding:6px 10px;border-radius:8px;border:1px solid var(--blue);background:rgba(96,165,250,.08);color:var(--blue);
  font-family:var(--fb);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;}
.qw-play-btn:hover{background:rgba(96,165,250,.18);}
.qw-play-btn.playing{background:rgba(52,211,153,.15);border-color:var(--green);color:var(--green);animation:pulse-ring .8s ease infinite;}
.qw-body{padding:12px 14px;}
.qw-es{font-size:13px;font-weight:700;color:var(--teal);margin-bottom:8px;}
.qw-example-row{display:flex;align-items:flex-start;gap:8px;}
.qw-example{font-size:12px;color:var(--muted);font-style:italic;line-height:1.5;flex:1;}
.qw-example-btn{font-size:11px;padding:4px 8px;flex-shrink:0;margin-top:2px;}
@media(max-width:520px){
  .qw-grid{grid-template-columns:1fr;}
  .qw-word{font-size:17px;}
}
