:root{
  --bg: #f5fbff;
  --primary: #2db36b; /* hijau */
  --secondary: #4aa3ff; /* biru muda */
  --accent: #ffd34e; /* kuning */
  --danger: #ff6b6b; /* merah lembut */
  --text: #123;
  --muted: #5b6770;
  --card: #ffffff;
  --shadow: 0 10px 24px rgba(0,0,0,0.08);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  color:var(--text);
  background: radial-gradient(1200px 600px at 10% -10%, #eaf7ff 0%, transparent 60%),
              radial-gradient(900px 500px at 110% 10%, #e7ffe9 0%, transparent 60%),
              var(--bg);
}

.app-header{
  text-align:center;
  padding:24px 16px 8px;
}
.brand{display:flex;align-items:center;gap:12px;justify-content:center}
.brand .logo{font-size:28px}
.app-header h1{
  margin:0;
  font-size:28px;
  color:var(--primary);
  text-shadow:0 2px 0 rgba(0,0,0,0.05);
}
.subtitle{margin:6px 0 0;color:var(--muted)}

.app-main{max-width:980px;margin:0 auto;padding:12px 16px 32px}

.hud{display:flex;align-items:center;gap:16px;margin:8px 0 16px}
.score{
  background:linear-gradient(135deg, var(--accent), #ffe98a);
  padding:10px 14px;border-radius:999px;color:#5a4500;font-weight:700;
  box-shadow:var(--shadow);
}
.progress{flex:1;height:14px;background:#e9f3ff;border-radius:999px;overflow:hidden;box-shadow:inset 0 2px 6px rgba(0,0,0,0.05)}
.progress-bar{height:100%;background:linear-gradient(90deg, var(--secondary), #7cd1ff);transition:width .35s ease;border-radius:999px}

.game{display:grid;gap:14px}
.topic-pill{justify-self:start;background:#e9fff2;color:var(--primary);border:2px solid #b6f0cf;padding:6px 12px;border-radius:999px;font-weight:700}

.card{
  background:var(--card);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:18px;
  border:3px solid #eaf6ff;
  position:relative;
}
.question{margin:4px 0 12px;font-size:20px}

.options{display:grid;grid-template-columns:1fr;gap:10px}
.btn{
  appearance:none;border:none;cursor:pointer;border-radius:12px;padding:12px 14px;font-weight:700;
  transition:transform .1s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.option{
  background:#f3f9ff;border:2px solid #d8ecff;color:#0f3552;text-align:left;box-shadow:0 4px 0 #c8e4ff;
}
.option:hover{transform:translateY(-1px)}
.option:active{transform:translateY(1px)}
.option.correct{background:#e9fff2;border-color:#b6f0cf;color:#085a37;animation:pop .25s ease}
.option.wrong{background:#ffefef;border-color:#ffb9b9;color:#7a1212;animation:shake .35s ease}
.option.disabled{opacity:.7;pointer-events:none}

.feedback{min-height:28px;font-weight:700}
.feedback.positive{color:var(--primary)}
.feedback.negative{color:var(--danger)}
.pulse-once{animation:pulse .6s ease}

.btn.next{justify-self:end;background:linear-gradient(135deg, var(--secondary), #7cd1ff);color:#083a69;box-shadow:0 6px 0 #66b8ff}
.btn.next:disabled{opacity:.5;cursor:not-allowed}
.btn.primary{background:linear-gradient(135deg, var(--primary), #57d693);color:#063d26;box-shadow:0 6px 0 #1ea35d}

.end-screen{background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:22px;text-align:center;border:3px solid #eaf6ff}
.end-screen .trophy{font-size:64px;line-height:1;margin-bottom:8px}
.final-message{color:var(--muted);font-weight:600}

.app-footer{margin:28px 0 16px;text-align:center;color:var(--muted)}

@keyframes pop{0%{transform:scale(.98)}100%{transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(45,179,107,.5)}70%{box-shadow:0 0 0 12px rgba(45,179,107,0)}100%{box-shadow:0 0 0 0 rgba(45,179,107,0)}}

/* Responsif */
@media (min-width:720px){
  .options{grid-template-columns:1fr 1fr}
  .question{font-size:22px}
}


