/* ── NaijaPrep custom styles ─────────────────────────────── */
html { scroll-behavior: smooth; }
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; -webkit-tap-highlight-color: transparent; }
.iphone-pb { padding-bottom: env(safe-area-inset-bottom); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { ms-overflow-style: none; scrollbar-width: none; }

/* floating blobs (landing) */
.blob { position: absolute; border-radius: 9999px; filter: blur(70px); opacity: .45; animation: float 9s ease-in-out infinite; pointer-events: none; }
@keyframes float { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-22px) scale(1.05); } }

/* subject ticker */
.ticker { white-space: nowrap; display: inline-block; animation: tick 26s linear infinite; }
@keyframes tick { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* swiper */
.swiper-pagination-bullet { background: #fff; opacity: .6; }
.swiper-pagination-bullet-active { background: #fff !important; opacity: 1; width: 22px; border-radius: 6px; transition: width .3s; }

/* quiz */
.opt { transition: all .18s ease; }
.opt.sel { border-color: #059669; background: #ecfdf5; transform: scale(1.01); box-shadow: 0 8px 20px -10px rgba(5,150,105,.5); }
.opt.correct { border-color: #059669 !important; background: #d1fae5 !important; }
.opt.wrong { border-color: #ef4444 !important; background: #fee2e2 !important; }
.score-ring { background: conic-gradient(#059669 calc(var(--p) * 1%), #e2e8f0 0); }
.timer-low { color: #ef4444 !important; animation: pulse-red 1s infinite; }
@keyframes pulse-red { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
.fade-swap { animation: fadeSwap .3s ease; }
@keyframes fadeSwap { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* hide native file input; label is the button */
input[type="file"].hidden-file { display: none; }

/* press feedback */
.press:active { transform: scale(.97); transition: transform .1s; }
