
:root{
  --bg:#F1EFE7;
  --surface:#FFFFFF;
  --text:#0b0b0b;
  --muted:#474747;
  --border:#E2DED6;
  --chip:#F6F3EA;
  --accent:#CFC7B6;
  --pill-bg:#000000;
  --pill-text:#ffffff;
  --emblem-invert: 0%;
}
:root.dark{
  --bg:#0f1011;
  --surface:#141516;
  --text:#f1f1f1;
  --muted:#cfcfcf;
  --border:#2a2b2d;
  --chip:#1a1b1c;
  --accent:#5b5852;
  --pill-bg:#ffffff;
  --pill-text:#0b0b0b;
  --emblem-invert: 100%;
}
*{box-sizing:border-box}
html,body{height:100%}
html,body,header,footer,.card,.btn,.nav-links a,section,.hero{
  transition:background-color .35s ease,color .35s ease,border-color .35s ease,box-shadow .35s ease,filter .35s ease;
}
body{margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1180px,92%);margin-inline:auto}
header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--border);
  background:color-mix(in oklab, var(--bg) 92%, transparent);backdrop-filter:saturate(150%) blur(8px)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.brand{display:flex;align-items:center;gap:10px}
.brand img.emblem{width:36px;height:36px;object-fit:contain;filter: invert(var(--emblem-invert));}
.brand .title{font-weight:800;letter-spacing:-.02em}
.nav-links{display:flex;gap:20px;align-items:center}
.nav-links a{font-weight:800;padding:8px 10px;border-radius:10px}
.nav-links a[aria-current="page"]{background:color-mix(in oklab, var(--text) 8%, var(--bg))}
.theme-btn{width:36px;height:36px;border-radius:999px;border:1px solid var(--border);
  display:inline-grid;place-items:center;background:var(--surface);color:var(--text)}
.theme-btn svg{width:20px;height:20px;opacity:1;transition:opacity .25s ease}
.theme-anim .theme-btn svg{opacity:.15}
.hero{padding:64px 0;text-align:center;
  background:radial-gradient(1100px 360px at 50% -10%, color-mix(in oklab, var(--text) 10%, transparent), transparent 70%), var(--bg)}
.hero h1{font-size:clamp(28px,3.6vw,44px);margin:10px 0 8px;letter-spacing:-.02em}
.lead{color:var(--muted)}
.badge{
  display:inline-block;background:var(--pill-bg);color:var(--pill-text);
  padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--border);
}
section{padding:32px 0}
.section-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.section-header h2{margin:0;font-size:clamp(22px,2.6vw,28px)}
.section-header p{margin:0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.card{grid-column:span 4;background:var(--surface);border:1px solid var(--border);
  border-radius:18px;box-shadow:0 8px 28px rgba(0,0,0,.08);padding:16px;display:flex;flex-direction:column;gap:12px;min-height:215px}
@media (max-width:1000px){.card{grid-column:span 6}}
@media (max-width:640px){.card{grid-column:span 12}}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--chip);border:1px solid var(--border);color:var(--muted);padding:6px 10px;border-radius:999px;font-size:12px}
.card h3{margin:2px 0 4px;font-size:18px}
.desc{color:var(--muted);font-size:14px;margin:0 0 6px}
.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:center;margin-top:auto}
.actions .btn{width:100%}
.btn{
  position:relative;display:inline-grid;place-items:center;grid-auto-flow:column;gap:10px;
  padding:14px 22px;min-height:56px;border-radius:999px;border:1px solid var(--border);
  background:var(--pill-bg);color:var(--pill-text);font-weight:900;font-size:16px;box-shadow:0 4px 12px rgba(0,0,0,.05);
  overflow:hidden
}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(0,0,0,.08)}
.btn:active{transform:translateY(0);box-shadow:0 6px 14px rgba(0,0,0,.06)}
.btn:focus-visible{outline:2px solid color-mix(in oklab, var(--pill-text) 35%, transparent);outline-offset:3px;border-color:transparent}
.btn .label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.btn .spinner{
  position:absolute; left:0; right:0; top:0; bottom:0; margin:auto;
  width:18px;height:18px;border-radius:50%;
  border:3px solid color-mix(in oklab, var(--pill-text) 30%, transparent);
  border-top-color:var(--pill-text); opacity:0; pointer-events:none;
}
.btn.loading .label{opacity:0}
.btn.loading .spinner{opacity:1;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
.btn::after{
  content:""; position:absolute; width:0; height:0; border-radius:50%; opacity:0; pointer-events:none;
  background:color-mix(in oklab, var(--pill-text) 25%, transparent);
  transition:opacity .35s ease, transform .35s ease; transform:translate(-50%,-50%) scale(0);
}
@media (prefers-reduced-motion: no-preference){
  .btn.ripple::after{opacity:.25; transform:translate(var(--rx, -50%), var(--ry, -50%)) scale(1)}
}
.syllabus-list{margin:0;padding-left:18px;display:grid;gap:6px}
.syllabus-note{margin-top:10px;font-size:13px;color:var(--muted)}
footer{border-top:1px solid var(--border);padding:28px 0;margin-top:48px;color:var(--muted)}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer .brand img{width:28px;height:28px;filter: invert(var(--emblem-invert));}
noscript .nojs{display:block}
.nojs{display:none;background:#000;color:#fff;text-align:center;padding:10px 14px;font-weight:700}
.reveal{opacity:0; transform:translateY(8px)}
.reveal.show{opacity:1; transform:none; transition:opacity .45s ease, transform .45s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.10)}
.scrolled header{box-shadow:0 6px 18px rgba(0,0,0,.08)}

/* === BEGIN Exam Styles (merged) === */

/* === IGCSEfy Exam Feature (merged) === */
:root{
  --cream:#F1EFE7;
  --ink:#000000;
  --bg:var(--cream);
  --text:var(--ink);
  --ring:rgba(0,0,0,.12);
  --card:#ffffff;
  --muted:#6b6b6b;
}
[data-theme="dark"]{
  --bg:#0b0b0b;
  --text:#f1f1f1;
  --ring:rgba(255,255,255,.14);
  --card:#121212;
  --muted:#b8b8b8;
}
.exam-shell{max-width:980px;margin:24px auto;padding:0 16px}
.exam-card{background:var(--card);border:1px solid var(--ring);border-radius:18px;box-shadow:0 10px 36px rgba(0,0,0,.08);padding:18px}
.exam-header{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.exam-title{font-family:"Times New Roman",Times,serif;font-size:clamp(22px,2.6vw,30px);margin:0}
.exam-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted)}
.exam-instructions{border:1px dashed var(--ring);border-radius:12px;padding:12px;background:color-mix(in srgb, var(--bg) 92%, transparent)}
.exam-toolbar{position:sticky;top:64px;z-index:20;background:var(--card);border:1px solid var(--ring);border-radius:12px;padding:8px 10px;display:flex;gap:10px;align-items:center;justify-content:space-between;box-shadow:0 8px 24px rgba(0,0,0,.08);margin:12px 0}
.timer{font-variant-numeric:tabular-nums;font-weight:700}
.progress{height:8px;background:color-mix(in srgb, var(--bg) 70%, transparent);border-radius:999px;overflow:hidden;flex:1}
.progress>span{display:block;height:100%;background:#000;transition:width .3s ease}
[data-theme="dark"] .progress>span{background:#fff}
.q-panel{background:var(--card);border:1px solid var(--ring);border-radius:16px;padding:16px}
.q-head{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}
.q-num{font-weight:800}
.q-marks{margin-left:auto;opacity:.7}
.q-body{font-family:"Times New Roman",Times,serif}
.q-options{display:grid;gap:8px;margin-top:8px}
.q-options label{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--ring);border-radius:12px;background:color-mix(in srgb, var(--bg) 95%, transparent);cursor:pointer;transition:transform .08s ease, background .2s ease}
.q-options label:hover{transform:translateY(-1px);background:color-mix(in srgb, var(--bg) 90%, white)}
.q-input, .q-textarea{width:100%;border:1px solid var(--ring);border-radius:12px;padding:12px;background:var(--bg);color:var(--text)}
.q-textarea{min-height:96px;line-height:1.5}
.nav-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:12px}
.result-card{border:1px solid var(--ring);border-radius:16px;padding:14px;background:var(--card);margin-top:12px}
.result-card .score{font-size:22px;font-weight:800}
.fade-in{animation:fade .3s ease both}
.slide-up{animation:slideUp .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes slideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:999}
@media (max-width: 768px){
  .exam-toolbar{flex-direction:column;top:56px;padding:6px;gap:6px}
  .q-options label{flex-direction:column;align-items:flex-start}
}

/* === END Exam Styles === */
