
:root{
  color-scheme:dark;
  --bg:#0e1015;--side:#12141a;--bar:#15181f;--hover:#1c2029;--line:#242835;
  --text:#e9ebf1;--muted:#9aa1b2;--quiet:#636a7c;
  --accent:#7b93ff;--accentSoft:rgba(123,147,255,.14);
  --qp:#62b6ff;--ms:#ff8ba0;--shadow:0 24px 70px rgba(0,0,0,.5);--floor:rgba(255,255,255,.04);
  --good:#4fd18b;--bad:#ff6b7d;--onAccent:#fff;
  /* The logo: indigo on Midnight (the primary logo), blue on Daylight, the theme's own accent everywhere else. */
  --logo-a:#8f7dff;--logo-b:#4f63ff;--logo-word:#7d74ff;
}
body[data-board="edexcel"]{--accent:#b28bff;--accentSoft:rgba(178,139,255,.15)}
body.light{
  color-scheme:light;
  --bg:#f5f6f9;--side:#fbfbfd;--bar:#ffffff;--hover:#eff1f5;--line:#e5e7ee;
  --text:#151923;--muted:#596175;--quiet:#9198a9;
  --accent:#4a63e0;--accentSoft:rgba(74,99,224,.09);
  --qp:#1f7fd1;--ms:#d23c5c;--shadow:0 20px 60px rgba(30,40,70,.15);--floor:rgba(20,30,60,.04);
  --good:#1f9d5c;--bad:#d23c4f;
  --logo-a:#6a5cff;--logo-b:#2f5bff;--logo-word:#3b5bff;
}
body.light[data-board="edexcel"]{--accent:#7b4fd6;--accentSoft:rgba(123,79,214,.09)}

/* Palette themes (Burgundy Velvet, Stormy Teal, Antique Parchment, Golden Saffron, Soft Linen Beige, Olive Moss).
   [data-board] lifts them above the per-board accents so a theme looks the same for every curriculum. */
body[data-theme="parchment"][data-board]{
  --bg:#efe7d8;--side:#e8dcc6;--bar:#f8f2e7;--hover:#e3d6bd;--line:#d6c7aa;
  --text:#2b0906;--muted:#5d4a3a;--quiet:#8b7963;
  --accent:#490905;--accentSoft:rgba(73,9,5,.09);--onAccent:#f8f2e7;
  --qp:#45575d;--ms:#8a1c14;--good:#5a6b2a;--bad:#9b2226;--floor:rgba(73,9,5,.05);--shadow:0 20px 60px rgba(73,9,5,.14);
}
body[data-theme="burgundy"][data-board]{
  --bg:#2a0604;--side:#330805;--bar:#3d0a07;--hover:#4e110b;--line:#5c1c15;
  --text:#f3e9d6;--muted:#dccbaf;--quiet:#a98f78;
  --accent:#edc03b;--accentSoft:rgba(237,192,59,.15);--onAccent:#2a0604;
  --qp:#e6d18d;--ms:#e8a092;--good:#b8c285;--bad:#ff8a7a;--floor:rgba(237,192,59,.05);--shadow:0 24px 70px rgba(0,0,0,.55);
}
body[data-theme="stormy"][data-board]{
  --bg:#2b373c;--side:#314046;--bar:#38484f;--hover:#45575d;--line:#51646b;
  --text:#f1ead9;--muted:#cfc7b6;--quiet:#96a3a6;
  --accent:#edc03b;--accentSoft:rgba(237,192,59,.16);--onAccent:#2b373c;
  --qp:#e6d18d;--ms:#eba89a;--good:#bcc68c;--bad:#f0908a;--floor:rgba(237,192,59,.05);--shadow:0 24px 70px rgba(0,0,0,.45);
}
body[data-theme="olive"][data-board]{
  --bg:#edefe1;--side:#e2e6cd;--bar:#f7f8ef;--hover:#dbe0c3;--line:#c8cfa8;
  --text:#212719;--muted:#4c553a;--quiet:#7a8363;
  --accent:#45575d;--accentSoft:rgba(69,87,93,.12);--onAccent:#f7f8ef;
  --qp:#45575d;--ms:#7a1f16;--good:#556b1f;--bad:#9b2226;--floor:rgba(69,87,93,.05);--shadow:0 20px 60px rgba(40,50,30,.15);
}
body[data-theme="saffron"][data-board]{
  --bg:#fbf4e0;--side:#f5e8c2;--bar:#fffbf0;--hover:#f0e0b0;--line:#e3cf93;
  --text:#2b0906;--muted:#5e4a2c;--quiet:#8f7a53;
  --accent:#490905;--accentSoft:rgba(237,192,59,.3);--onAccent:#fffbf0;
  --qp:#45575d;--ms:#8a1c14;--good:#5a6b2a;--bad:#9b2226;--floor:rgba(237,192,59,.1);--shadow:0 20px 60px rgba(73,9,5,.12);
}

body[data-theme][data-board]:not([data-theme="midnight"]):not([data-theme="daylight"]){--logo-a:var(--accent);--logo-b:color-mix(in srgb,var(--accent) 78%,var(--text));--logo-word:var(--accent)}
*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:"Plus Jakarta Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}@keyframes rise{from{opacity:0;transform:translateY(8px)}}svg.i{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}.mcq-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:6px;background:var(--accentSoft);color:var(--accent);font:700 10px "Plus Jakarta Sans",sans-serif;vertical-align:1px}
/* About: a page of its own inside the app (no navigation, so nothing is lost), in the student's theme. */
.about-view{position:fixed;inset:0;z-index:75;overflow:auto;overscroll-behavior:contain;background:var(--bg);color:var(--text);animation:rise .25s ease}
.about-view.static{position:static;overflow:visible;animation:none}
.about-view ::selection{background:color-mix(in srgb,var(--accent) 32%,transparent);color:inherit}
.about-hero{position:relative;min-height:min(560px,78vh);display:flex;flex-direction:column;justify-content:flex-end;padding:96px max(20px,calc(50% - 440px)) 44px;overflow:hidden;background:radial-gradient(120% 90% at 80% 100%,var(--side),var(--bg) 70%)}
.lattice{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.lattice-mesh{fill:none;stroke:var(--accent);stroke-width:1;opacity:.3;vector-effect:non-scaling-stroke}
.lattice-drum{fill:var(--bar);stroke:color-mix(in srgb,var(--accent) 45%,transparent);stroke-width:1.5;vector-effect:non-scaling-stroke}
.lattice-cornice{fill:none;stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:1;vector-effect:non-scaling-stroke}
.about-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 15%,transparent) 0%,transparent 35%,color-mix(in srgb,var(--bg) 85%,transparent) 78%,var(--bg) 100%);pointer-events:none}
.about-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px max(16px,calc(50% - 460px))}
.about-back{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px 0 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--text) 14%,transparent);background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);font:700 13px "Plus Jakarta Sans",sans-serif;text-decoration:none;cursor:pointer}
.about-back:hover{border-color:var(--accent);color:var(--accent)}
.about-mark{display:flex;align-items:center;gap:8px}
.about-mark .logo-mark{width:28px;height:28px}.about-mark .wordmark{font-size:17px}
.about-story.pending p{font:400 20px/1.5 "Instrument Serif",Georgia,serif;color:var(--muted);margin:10px 0 0}
.about-hero-text{position:relative;z-index:1;max-width:680px}
.about-kicker{margin:0 0 4px;font:800 11px "Plus Jakarta Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.about-view h1{margin:0;font:400 clamp(56px,9vw,104px)/.95 "Instrument Serif",Georgia,serif;letter-spacing:-.01em}
.about-lead{margin:18px 0 0;font-size:clamp(16px,2vw,18.5px);line-height:1.65;color:var(--muted)}
.about-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.about-stats span{display:inline-flex;align-items:baseline;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--bar) 80%,transparent);font-size:12.5px;color:var(--muted)}
.about-stats b{font:400 20px/1 "Instrument Serif",Georgia,serif;color:var(--text)}
.about-body{max-width:920px;margin:0 auto;padding:12px 20px 90px;contain:paint}
.about-section{margin-top:56px}
.about-view h2{margin:0 0 6px;font:400 clamp(30px,4vw,40px)/1.1 "Instrument Serif",Georgia,serif}
.about-note{margin:0 0 20px;color:var(--muted);font-size:14px}
.about-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:20px}
.about-feature{padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--bar)}
.about-feature svg{width:34px;height:34px;padding:7px;border-radius:10px;background:var(--accentSoft);stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.about-feature h3{margin:14px 0 6px;font-size:15px}
.about-feature p{margin:0;font-size:13.5px;line-height:1.6;color:var(--muted)}
.about-group{margin-top:26px}
.about-group h3{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;font-size:14px}
.about-group h3 small{font-weight:600;color:var(--quiet);font-size:12px}
.about-subjects{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.about-subject{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--text);text-align:left;text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s}
.about-subject:hover{border-color:var(--accent);background:var(--accentSoft)}
.about-subject strong{font-size:13.5px}
.about-subject small{font:500 11.5px "JetBrains Mono",monospace;color:var(--quiet)}
.about-faq details{border-bottom:1px solid var(--line)}
.about-faq summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 2px;font-weight:700;font-size:15px;cursor:pointer;list-style:none}
.about-faq summary::-webkit-details-marker{display:none}
.about-faq summary:after{content:"+";font:400 24px/1 "Instrument Serif",serif;color:var(--accent);transition:transform .2s}
.about-faq details[open] summary:after{transform:rotate(45deg)}
.about-faq p{margin:0 0 16px;color:var(--muted);line-height:1.65;font-size:14.5px}
.about-story{position:relative;margin-top:64px;padding:34px clamp(20px,5vw,48px);border-radius:22px;border:1px solid var(--line);background:linear-gradient(160deg,var(--bar),var(--side));overflow:hidden}
.about-story .lattice{opacity:.35;height:220px;top:auto;bottom:0}
.about-story>*{position:relative}
.about-story p{max-width:640px;font-size:16px;line-height:1.75;color:var(--muted)}
.about-story p:first-of-type{font:400 22px/1.5 "Instrument Serif",Georgia,serif;color:var(--text)}
.about-signature{margin-top:18px;font:italic 400 24px "Instrument Serif",Georgia,serif;color:var(--accent)}
.about-foot{margin-top:56px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.6;color:var(--quiet)}
.about-foot a{color:var(--accent)}
/* The logo: mark + wordmark, drawn from the #logoMark symbol in the theme's logo colours */
.logo-mark{width:24px;height:24px;flex:none}
.logo-crease{fill:color-mix(in srgb,var(--logo-b) 55%,var(--bg))}
.wordmark{font:800 15.5px "Plus Jakarta Sans",sans-serif;letter-spacing:-.02em;color:var(--text);white-space:nowrap}
.wordmark span{color:var(--logo-word)}
.brand-logo{flex:1;min-width:0;display:flex;align-items:center;gap:7px;height:36px;padding:0 6px;border:0;border-radius:9px;background:transparent;cursor:pointer;transition:background .15s}
.brand-logo:hover{background:var(--hover)}
/* The About button in the subject picker */
.picker-foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.about-pill{position:relative;display:flex;align-items:center;gap:14px;width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(120deg,var(--accentSoft),transparent 70%);color:var(--text);text-align:left;cursor:pointer;overflow:hidden;transition:border-color .15s}
.about-pill:hover{border-color:var(--accent)}
.about-pill .glyph{width:40px;height:40px;flex:none;border-radius:11px;background:var(--bar);border:1px solid var(--line);display:grid;place-items:center}
.about-pill .glyph svg{width:26px;height:26px;fill:none;stroke:var(--accent);stroke-width:1.3;stroke-linejoin:round}
.about-pill b{display:block;font-size:14px}.about-pill small{display:block;font-size:12px;color:var(--muted)}
.about-pill .go{margin-left:auto;color:var(--accent);font-size:18px}
@media(max-width:820px){
  .about-hero{min-height:480px;padding:86px 18px 34px}
  .about-top{padding:12px 14px}
  .about-section{margin-top:44px}
  .about-subjects{grid-template-columns:1fr 1fr}
}
.about-suggest{margin-top:22px}
.about-foot button{border:0;background:none;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}

.page-hero{min-height:0;padding:96px max(20px,calc(50% - 460px)) 36px}
.page-hero h1{font-size:clamp(34px,5.2vw,58px);line-height:1.02}
.crumbs{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none;font-size:12.5px;color:var(--quiet)}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--accent)}
.crumbs li+li:before{content:"›";margin-right:6px;color:var(--quiet)}
.page-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.page-cta a{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:12px;font-weight:800;font-size:14px;text-decoration:none}
.page-cta .primary{background:var(--accent);color:var(--onAccent)}
.page-cta .secondary{border:1px solid var(--line);color:var(--text)}
.year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:16px}
.year-grid a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);color:var(--text);text-decoration:none}
.year-grid a:hover{border-color:var(--accent);background:var(--accentSoft)}
.year-grid strong{font:400 26px/1 "Instrument Serif",Georgia,serif}.year-grid small{font-size:12px;color:var(--quiet)}
.syllabus{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:6px}
.syllabus li{display:flex;align-items:baseline;gap:10px;padding:10px 14px;border-radius:12px;background:var(--bar);border:1px solid var(--line);font-size:14px}
.syllabus b{min-width:70px}.syllabus span{color:var(--muted)}
.tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:6px;background:var(--accentSoft);color:var(--accent);font:700 10.5px "Plus Jakarta Sans",sans-serif;vertical-align:1px}
.session{margin-top:42px}
.session h2{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.session h2 small{font:600 13px "Plus Jakarta Sans",sans-serif;color:var(--quiet)}
.papers{width:100%;border-collapse:collapse;margin-top:14px;font-size:13.5px}
.papers th{text-align:left;font-size:11.5px;font-weight:700;color:var(--quiet);padding:8px 10px;border-bottom:1px solid var(--line)}
.papers td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.papers .name strong{display:block}.papers .name span{color:var(--muted);font-size:12.5px}
.papers .codes{font:500 12.5px "JetBrains Mono",monospace;color:var(--muted);line-height:1.7}
.papers .codes b{color:var(--text);font-weight:600}
.papers .marks{font-size:12.5px;color:var(--muted);line-height:1.6}
.papers .open{white-space:nowrap}
.papers .open a{display:inline-block;margin:0 4px 4px 0;padding:5px 10px;border-radius:8px;border:1px solid var(--line);color:var(--text);font-size:12.5px;font-weight:700;text-decoration:none}
.papers .open a:hover{border-color:var(--accent);color:var(--accent)}
.papers .open a.main{background:var(--accentSoft);border-color:transparent;color:var(--accent)}
.pager{display:flex;justify-content:space-between;gap:10px;margin-top:40px}
.pager a{color:var(--accent);font-weight:700;text-decoration:none}
@media(max-width:720px){
  .papers thead{display:none}.papers,.papers tbody,.papers tr,.papers td{display:block}
  .papers tr{padding:12px 0;border-bottom:1px solid var(--line)}.papers td{padding:4px 0;border:0}
  .papers .open{white-space:normal}
}
