/* MOMO unified workspace. This file intentionally lives beside the static app so the
   workspace can ship without a framework build or changing the older deep-link pages. */
:root {
  --workspace-panel:#0a1726;
  --workspace-panel-2:#0d1e31;
  --workspace-line:#1b3852;
  --workspace-muted:#8fa4b9;
  --workspace-blue:#54a9dc;
  --workspace-green:#8bd6b1;
  --workspace-red:#e9a29e;
}

body { overflow-x:hidden; }
.workspace-page { min-height:calc(100vh - 4rem); padding:1.5rem clamp(1rem,3vw,3rem) 2rem; }
.workspace-frame { max-width:1180px; margin:0 auto; display:block; align-items:start; }
.workspace-rail { position:sticky; top:5.4rem; min-height:calc(100vh - 7.2rem); padding:1.25rem .85rem; border:1px solid rgba(84,169,220,.18); border-radius:22px; background:linear-gradient(180deg,rgba(10,25,41,.96),rgba(7,16,28,.92)); box-shadow:0 20px 55px -38px #000, inset 0 1px 0 rgba(255,255,255,.04); display:flex; flex-direction:column; }
.rail-mark { position:relative; width:58px; height:48px; margin:0 auto .75rem; border-radius:50% 50% 48% 48%; background:linear-gradient(150deg,#78c3e8,#347aa9); box-shadow:0 10px 20px -14px #54a9dc, inset 0 -5px 0 rgba(0,0,0,.12); transform:rotate(-3deg); animation:workspaceFloat 5.8s ease-in-out infinite; }
.rail-eye { position:absolute; top:16px; width:9px; height:13px; border-radius:50%; background:#112335; box-shadow:0 0 0 2px rgba(232,248,255,.72); }
.rail-eye-left { left:17px; }.rail-eye-right { right:17px; }
.rail-smile { position:absolute; left:21px; bottom:10px; width:17px; height:7px; border-bottom:2px solid #112335; border-radius:0 0 20px 20px; }
.rail-label { text-align:center; color:#d9e8f3; font:700 .66rem/1.35 'Space Mono',monospace; letter-spacing:.16em; text-transform:uppercase; }
.rail-label span { color:var(--workspace-muted); font-size:.57rem; letter-spacing:.12em; }
.rail-nav { display:grid; gap:.34rem; margin-top:2rem; }
.rail-bottom { display:grid; gap:.34rem; margin-top:auto; padding-top:2rem; }
.rail-link { width:100%; min-height:43px; display:flex; align-items:center; gap:.72rem; padding:.65rem .75rem; border:1px solid transparent; border-radius:12px; color:var(--workspace-muted); background:transparent; text-decoration:none; font:600 .78rem 'Poppins',sans-serif; text-align:left; cursor:pointer; transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease; }
.rail-link:hover,.rail-link:focus-visible { color:#eaf4fb; background:rgba(84,169,220,.09); border-color:rgba(84,169,220,.23); transform:translateX(2px); }
.rail-link.is-active { color:#f2e9d8; background:linear-gradient(90deg,rgba(212,175,55,.18),rgba(84,169,220,.08)); border-color:rgba(212,175,55,.34); box-shadow:inset 3px 0 var(--accent); }
.rail-icon { width:1.2rem; color:#d4af37; font-size:1rem; line-height:1; text-align:center; }
.workspace-main { min-width:0; }
.workspace-topline { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.workspace-sync { color:var(--workspace-muted); font-size:.75rem; margin:0; }
.workspace-top-actions { display:flex; align-items:center; gap:.7rem; }
.workspace-top-chip { display:inline-flex; align-items:center; gap:.45rem; border:1px solid rgba(84,169,220,.25); border-radius:999px; padding:.42rem .72rem; color:#c4d5e3; font:700 .65rem 'Space Mono',monospace; white-space:nowrap; }
.top-dot,.pulse-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#8bd6b1; box-shadow:0 0 0 4px rgba(139,214,177,.1); }
.workspace-add-top { min-height:38px; padding:.45rem .9rem; font-size:.77rem; }
.workspace-context-strip { display:flex; align-items:center; gap:.55rem; min-height:34px; margin:-.35rem 0 1rem; padding:.48rem .72rem; border:1px solid rgba(84,169,220,.15); border-radius:10px; color:#9db3c1; background:linear-gradient(90deg,rgba(84,169,220,.07),rgba(212,175,55,.045)); font-size:.65rem; line-height:1.4; }
.workspace-context-strip b { color:#d9c875; font:700 .6rem 'Space Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }
.context-pip { color:#f0d680; }
.context-detail { margin-left:auto; color:#728a9b; font:600 .57rem 'Space Mono',monospace; white-space:nowrap; }
.workspace-view { animation:workspaceReveal .35s ease both; }
.workspace-hero { position:relative; min-height:314px; display:flex; align-items:center; overflow:hidden; padding:2.5rem clamp(1.4rem,4vw,3.5rem); border:1px solid rgba(212,175,55,.28); border-radius:23px; background:radial-gradient(ellipse at 84% 20%,rgba(76,156,208,.22),transparent 27%),radial-gradient(ellipse at 28% 0%,rgba(212,175,55,.12),transparent 33%),linear-gradient(125deg,#0b1e30,#0b1422 68%,#07111d); box-shadow:0 22px 60px -42px #000,inset 0 1px 0 rgba(255,255,255,.06); }
.workspace-hero::after { content:""; position:absolute; inset:auto -10% -80% 28%; height:170%; background:radial-gradient(ellipse,rgba(84,169,220,.10),transparent 63%); pointer-events:none; }
.workspace-hero-copy { position:relative; z-index:2; max-width:min(630px,calc(100% - 340px)); }
.hero-kicker { display:inline-flex; align-items:center; gap:.55rem; margin-bottom:1rem; color:#ead696; font:700 .62rem 'Space Mono',monospace; letter-spacing:.16em; text-transform:uppercase; }
.workspace-hero h1 { margin:0 0 .65rem; color:#f2e9d8; font-size:clamp(2rem,4vw,3.7rem); line-height:1.08; letter-spacing:-.02em; }
.workspace-hero p { max-width:57ch; color:#aabacc; font-size:.92rem; line-height:1.75; margin:0 0 1.35rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.65rem; }
.workspace-character-stage { position:absolute; right:1.25rem; bottom:.65rem; width:350px; min-height:286px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:.5rem; z-index:1; pointer-events:none; }
.workspace-character-halo { position:absolute; inset:8% 4% 13%; border-radius:50%; background:radial-gradient(circle,rgba(84,169,220,.22),rgba(84,169,220,.05) 48%,transparent 72%); filter:blur(1px); animation:workspaceBreathe 4.4s ease-in-out infinite; }
.workspace-character-cluster { position:relative; width:100%; height:250px; }
.workspace-character { position:absolute; display:grid; place-items:center; width:80px; height:80px; padding:.4rem; border:1px solid rgba(84,169,220,.25); border-radius:22px; background:linear-gradient(145deg,rgba(12,32,50,.95),rgba(7,16,28,.78)); box-shadow:0 18px 34px -24px #000,0 0 0 5px rgba(84,169,220,.035); animation:workspacePixelFloat 5.4s ease-in-out infinite; }
.workspace-character .momo-pixel { width:100%; height:100%; image-rendering:pixelated; filter:drop-shadow(0 6px 4px rgba(0,0,0,.35)); }
.workspace-character-main { left:50%; bottom:8px; width:164px; height:164px; transform:translateX(-50%); border-color:rgba(212,175,55,.5); border-radius:46px; background:radial-gradient(circle at 50% 20%,rgba(84,169,220,.22),rgba(7,17,29,.9) 68%); animation:workspaceCharacterFloat 5.8s ease-in-out infinite; }
.workspace-character-orbiturtle { left:3%; top:55px; animation-delay:-1.4s; }
.workspace-character-bytebug { right:3%; top:20px; animation-delay:-2.5s; }
.workspace-character-pixelume { right:20%; top:-2px; width:62px; height:62px; border-color:rgba(212,175,55,.42); animation-delay:-3.4s; }
.workspace-character-caption { position:relative; display:grid; gap:.18rem; justify-items:center; padding:.5rem .8rem; border:1px solid rgba(212,175,55,.22); border-radius:999px; background:rgba(7,16,28,.76); box-shadow:0 10px 25px -18px #000; color:#8faec0; font-size:.58rem; letter-spacing:.08em; text-align:center; }
.workspace-character-caption strong { color:#e8d485; font:600 .67rem 'Poppins',sans-serif; letter-spacing:0; }
.workspace-character-stage.is-reacting .workspace-character { animation:workspaceCharacterReact .78s cubic-bezier(.22,.8,.26,1) both; }
.character-sprite { display:grid; place-items:center; width:100%; height:100%; }
.character-sprite .momo-pixel,.momo-pixel-fallback { width:100%; height:100%; image-rendering:pixelated; filter:drop-shadow(0 5px 4px rgba(0,0,0,.36)); }
.workspace-character-badge { position:relative; z-index:2; width:43px; height:43px; display:grid; place-items:center; flex:none; padding:.22rem; border:1px solid rgba(84,169,220,.3); border-radius:14px; background:linear-gradient(145deg,rgba(84,169,220,.13),rgba(212,175,55,.08)); box-shadow:0 10px 20px -16px #000; }
.workspace-character-badge .momo-pixel { animation:workspacePixelFloat 5s ease-in-out infinite; }
.notebook-open-hint { margin-right:auto; color:#efd47c; font:700 .65rem 'Space Mono',monospace; letter-spacing:.02em; }
.programme-card-head .workspace-character-badge { position:absolute; top:.78rem; right:3.2rem; width:39px; height:39px; }
.workspace-section-head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin:2.25rem 0 1rem; }.workspace-section-head h2,.workspace-section-head h1 { margin:0; color:#f2e9d8; font-size:1.35rem; line-height:1.2; }.section-subtitle { color:var(--workspace-muted); font-size:.86rem; line-height:1.6; margin:.45rem 0 0; }.text-action { border:0; padding:.3rem 0; color:#e9d382; background:transparent; font:700 .7rem 'Space Mono',monospace; cursor:pointer; }.text-action:hover,.text-action:focus-visible { color:#fff1ae; text-decoration:underline; }
.notebook-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(238px,1fr)); gap:1rem; }.notebook-grid.empty { display:block; }
.empty-notebook { min-height:178px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:1.25rem 1.4rem; border:1px dashed rgba(84,169,220,.34); border-radius:16px; background:rgba(10,24,39,.6); }.empty-notebook h3 { margin:.6rem 0 .25rem; color:#e8f0f5; font:700 1rem 'Cinzel',serif; }.empty-notebook p { margin:0 0 .9rem; color:var(--workspace-muted); font-size:.78rem; line-height:1.55; }.empty-plus { width:32px; height:32px; display:grid; place-items:center; border:1px solid rgba(212,175,55,.42); border-radius:50%; color:#efd47c; font-size:1.2rem; }
.notebook-card { position:relative; min-height:245px; display:flex; flex-direction:column; padding:1.2rem; border:1px solid #1a354e; border-radius:19px; background:linear-gradient(150deg,rgba(17,40,62,.96),rgba(8,19,32,.97)); box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 17px 34px -30px #000; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; overflow:hidden; cursor:pointer; }.notebook-card::after { content:""; position:absolute; right:-25px; top:-36px; width:130px; height:130px; border:1px solid rgba(84,169,220,.15); border-radius:50%; box-shadow:0 0 0 20px rgba(84,169,220,.025),0 0 0 40px rgba(84,169,220,.02); }.notebook-card:hover,.notebook-card:focus-visible { transform:translateY(-5px); border-color:rgba(212,175,55,.62); box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 24px 48px -28px #000,0 0 0 3px rgba(212,175,55,.06); outline:none; }.notebook-card.archived { opacity:.72; cursor:default; }
.notebook-card-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }.notebook-card-icon { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(212,175,55,.4); border-radius:11px; color:#efd47c; background:rgba(212,175,55,.08); }.notebook-card-character { position:absolute; top:.8rem; right:1rem; z-index:1; }.notebook-card-character .workspace-character-badge { width:48px; height:48px; }.notebook-kind { color:#9bb7c9; font:700 .59rem 'Space Mono',monospace; letter-spacing:.13em; text-transform:uppercase; padding-right:3.2rem; }.notebook-card h3 { position:relative; z-index:1; margin:1rem 0 .25rem; color:#f1eadb; font:700 1.05rem 'Cinzel',serif; }.notebook-card-meta { color:var(--workspace-muted); font-size:.73rem; min-height:2.3em; }.notebook-card-progress { margin-top:auto; padding-top:1rem; }.card-progress-row { display:flex; justify-content:space-between; color:#aabacc; font:700 .62rem 'Space Mono',monospace; }.mini-bar,.progress-bar { height:7px; overflow:hidden; border:1px solid rgba(84,169,220,.18); border-radius:999px; background:#07111d; }.mini-bar { margin-top:.45rem; height:5px; }.mini-bar span,.progress-bar span { display:block; height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,#38799f,#d4af37); transition:width .35s ease; }.notebook-card-actions { display:flex; gap:.5rem; margin-top:1rem; position:relative; z-index:2; }.small-button { min-height:32px; padding:.35rem .62rem; border:1px solid rgba(84,169,220,.28); border-radius:8px; color:#c5d6e2; background:rgba(84,169,220,.06); font:600 .67rem 'Poppins',sans-serif; cursor:pointer; }.small-button:hover,.small-button:focus-visible { border-color:rgba(212,175,55,.6); color:#fff1ae; }.small-button.primary { color:#1a1205; background:#d4af37; border-color:#d4af37; }.small-button.danger { color:#e9a29e; }
.programme-directory { margin-top:2.8rem; padding:1.25rem; border:1px solid rgba(84,169,220,.2); border-radius:22px; background:linear-gradient(145deg,rgba(10,24,40,.82),rgba(7,15,26,.68)); }.directory-head { margin:.2rem 0 1rem; }.directory-note { max-width:32ch; color:var(--workspace-muted); font-size:.72rem; line-height:1.55; text-align:right; }.programme-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:.8rem; }.programme-card { position:relative; min-height:185px; display:flex; flex-direction:column; justify-content:space-between; padding:1.05rem; border:1px solid #1a354e; border-radius:17px; background:#0b1a2b; cursor:pointer; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }.programme-card:hover,.programme-card:focus-visible { transform:translateY(-4px); border-color:rgba(212,175,55,.58); box-shadow:0 20px 42px -30px #000; outline:none; }.programme-card.active { border-color:rgba(212,175,55,.45); background:radial-gradient(circle at 90% 0,rgba(212,175,55,.13),transparent 42%),#0b1a2b; }.programme-card.soon { border-style:dashed; background:rgba(12,28,45,.52); cursor:default; }.programme-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }.programme-badge { color:#ebd27d; font:700 .58rem 'Space Mono',monospace; letter-spacing:.12em; text-transform:uppercase; }.programme-card h3 { margin:.6rem 0 .25rem; color:#f2e9d8; font:700 1rem 'Cinzel',serif; }.programme-card p { margin:0; color:var(--workspace-muted); font-size:.73rem; line-height:1.6; }.programme-subjects { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.8rem; }.programme-subjects span { padding:.25rem .43rem; border-radius:999px; color:#bbd5e5; background:rgba(84,169,220,.08); border:1px solid rgba(84,169,220,.2); font:600 .58rem 'Space Mono',monospace; }.programme-card-footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:1rem; color:#9cb3c3; font:600 .62rem 'Space Mono',monospace; }.programme-link { color:#efd47c; text-decoration:none; }.programme-link:hover { text-decoration:underline; }.social-strip { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1.15rem .1rem .1rem; padding-top:1rem; border-top:1px solid rgba(84,169,220,.14); color:var(--workspace-muted); font-size:.71rem; }.social-links { display:flex; gap:.8rem; }.social-links a { color:#d9c26e; font:700 .63rem 'Space Mono',monospace; text-decoration:none; }.social-links a:hover { text-decoration:underline; }
.notebook-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:.2rem 0 1.35rem; }.back-link { border:0; padding:0; color:#b5c9d7; background:transparent; font:600 .75rem 'Poppins',sans-serif; cursor:pointer; }.back-link:hover,.back-link:focus-visible { color:#f0d680; }.notebook-toolbar-actions { display:flex; gap:.4rem; }.icon-button { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(84,169,220,.25); border-radius:9px; color:#b7cad7; background:rgba(84,169,220,.05); cursor:pointer; }.icon-button:hover,.icon-button:focus-visible { color:#fff1ae; border-color:rgba(212,175,55,.52); }.icon-button.danger:hover,.icon-button.danger:focus-visible { color:#f2b4b0; border-color:rgba(233,162,158,.55); }
.notebook-heading { display:grid; grid-template-columns:auto minmax(0,1fr) auto minmax(160px,220px); align-items:center; gap:1rem; }.notebook-heading-icon { width:64px; height:64px; display:grid; place-items:center; border-radius:19px; color:#f0d680; font-size:1.8rem; background:linear-gradient(145deg,rgba(212,175,55,.2),rgba(84,169,220,.11)); border:1px solid rgba(212,175,55,.42); box-shadow:0 12px 25px -18px #000; }.notebook-heading-character { width:72px; height:72px; display:grid; place-items:center; border:1px solid rgba(84,169,220,.3); border-radius:22px; background:linear-gradient(145deg,rgba(84,169,220,.12),rgba(212,175,55,.08)); }.notebook-heading-character .momo-pixel { width:64px; height:64px; image-rendering:pixelated; animation:workspacePixelFloat 5.6s ease-in-out infinite; }.notebook-heading h1 { margin:0; color:#f2e9d8; font-size:clamp(1.65rem,3vw,2.55rem); line-height:1.15; overflow-wrap:anywhere; }.notebook-subtitle { margin:.35rem 0 0; color:var(--workspace-muted); font-size:.8rem; }.notebook-progress-card { padding:.8rem .9rem; border:1px solid rgba(84,169,220,.22); border-radius:13px; background:rgba(9,22,36,.7); }.progress-caption { color:#91a9ba; font-size:.59rem; letter-spacing:.08em; text-transform:uppercase; }.progress-number { margin:.2rem 0 .45rem; color:#f0d680; font:700 1.45rem 'Cinzel',serif; }.notebook-notice { margin:1.25rem 0 .9rem; padding:.72rem .9rem; border-left:3px solid #d4af37; border-radius:0 9px 9px 0; color:#bed1dd; background:rgba(212,175,55,.075); font-size:.72rem; line-height:1.55; }.notebook-notice.locked { border-left-color:#54a9dc; background:rgba(84,169,220,.08); }.subject-tools { display:flex; flex-wrap:wrap; gap:.45rem; padding:.65rem; border:1px solid rgba(84,169,220,.18); border-radius:13px; background:rgba(8,19,32,.72); }.tool-tab { min-height:37px; padding:.5rem .7rem; border:1px solid transparent; border-radius:9px; color:#9eb3c2; background:transparent; font:600 .68rem 'Poppins',sans-serif; cursor:pointer; }.tool-tab:hover,.tool-tab:focus-visible { color:#f2e9d8; background:rgba(84,169,220,.08); }.tool-tab.is-active { color:#f0d680; background:rgba(212,175,55,.11); border-color:rgba(212,175,55,.35); }.tool-tab .tool-sub { display:block; margin-top:.12rem; color:#718b9e; font:600 .52rem 'Space Mono',monospace; }
.notebook-content { min-height:360px; margin-top:1rem; }.content-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr); gap:1rem; }.ws-card { border:1px solid #1a354e; border-radius:16px; background:linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); padding:1.1rem; box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 16px 35px -30px #000; }.ws-card h2,.ws-card h3 { margin:0 0 .35rem; color:#f2e9d8; font:700 1rem 'Cinzel',serif; }.ws-card h3 { font-size:.88rem; }.ws-card p { color:#9fb2c1; font-size:.76rem; line-height:1.65; }.ws-eyebrow { color:#d4af37; font:700 .6rem 'Space Mono',monospace; letter-spacing:.16em; text-transform:uppercase; }.tool-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:1rem; }.tool-card { display:flex; align-items:flex-start; gap:.65rem; padding:.8rem; border:1px solid rgba(84,169,220,.19); border-radius:11px; color:#bdd0dd; background:rgba(84,169,220,.045); text-align:left; cursor:pointer; }.tool-card:hover,.tool-card:focus-visible { border-color:rgba(212,175,55,.47); background:rgba(212,175,55,.07); }.tool-card-icon { color:#f0d680; font-size:1rem; }.tool-card b { display:block; color:#e7eef2; font-size:.73rem; }.tool-card small { display:block; margin-top:.2rem; color:#839caf; font-size:.63rem; line-height:1.45; }.metric-list { display:grid; gap:.68rem; margin-top:.9rem; }.metric-line { display:grid; grid-template-columns:minmax(100px,1fr) auto; gap:.5rem; align-items:center; color:#adc0ce; font-size:.7rem; }.metric-line strong { color:#f0d680; font:700 .72rem 'Space Mono',monospace; }.topic-row { display:grid; grid-template-columns:26px minmax(0,1fr) auto; align-items:center; gap:.7rem; padding:.7rem 0; border-top:1px solid rgba(84,169,220,.13); }.topic-row:first-child { border-top:0; }.topic-check { width:24px; height:24px; border:1px solid rgba(84,169,220,.33); border-radius:8px; color:#758d9e; background:rgba(84,169,220,.05); cursor:pointer; }.topic-check.done { color:#102217; background:#8bd6b1; border-color:#8bd6b1; }.topic-name { color:#d2dfe7; font-size:.74rem; }.topic-code { color:#7692a5; font:600 .58rem 'Space Mono',monospace; }.topic-progress { color:#8da9b9; font:600 .59rem 'Space Mono',monospace; }
.inline-actions { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin-top:1rem; }.ws-btn { min-height:36px; padding:.45rem .72rem; border:1px solid rgba(84,169,220,.3); border-radius:9px; color:#c5d7e3; background:rgba(84,169,220,.07); font:600 .68rem 'Poppins',sans-serif; cursor:pointer; }.ws-btn:hover,.ws-btn:focus-visible { border-color:rgba(212,175,55,.55); color:#fff1ae; }.ws-btn.primary { color:#1a1205; border-color:#d4af37; background:#d4af37; }.ws-btn.ghost { background:transparent; }.ws-btn.danger { color:#e9a29e; border-color:rgba(233,162,158,.35); }.ws-btn[disabled] { opacity:.45; cursor:not-allowed; }.static-zero { color:#8bd6b1; font:700 .58rem 'Space Mono',monospace; letter-spacing:.06em; }.source-line { color:#758d9e; font:600 .57rem 'Space Mono',monospace; line-height:1.55; }.upload-locked { display:flex; align-items:flex-start; gap:.65rem; padding:.8rem; border:1px dashed rgba(84,169,220,.32); border-radius:11px; color:#b8ccd9; background:rgba(84,169,220,.045); font-size:.7rem; line-height:1.5; }.upload-locked b { color:#e2eef4; display:block; margin-bottom:.15rem; }
.paper-list { display:grid; gap:.7rem; margin-top:.85rem; }.paper-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.8rem; align-items:center; padding:.78rem; border:1px solid rgba(84,169,220,.18); border-radius:11px; background:rgba(84,169,220,.045); }.paper-row h3 { margin:0 0 .18rem; font-size:.77rem; }.paper-row p { margin:0; font-size:.65rem; }.paper-meta { color:#edda8a; font:700 .62rem 'Space Mono',monospace; white-space:nowrap; }.timer-display { padding:1rem; margin-top:.9rem; border-radius:12px; text-align:center; color:#f0d680; background:#07111d; border:1px solid rgba(212,175,55,.25); font:700 clamp(2rem,7vw,3.5rem) 'Space Mono',monospace; letter-spacing:.04em; }.timer-status { min-height:1.2em; margin-top:.45rem; color:#93aabd; font-size:.68rem; text-align:center; }.timer-config { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; margin-top:.8rem; }.field,.select-field,.typing-answer { width:100%; min-height:40px; padding:.58rem .68rem; border:1px solid #29435b; border-radius:9px; color:#e9f1f5; background:#081625; font:500 .75rem 'Poppins',sans-serif; }.field:focus,.select-field:focus,.typing-answer:focus { outline:2px solid rgba(212,175,55,.6); outline-offset:1px; border-color:#d4af37; }.typing-answer { min-height:120px; resize:vertical; line-height:1.6; }.flabel { display:block; margin-bottom:.45rem; color:#b9ccd8; font:700 .66rem 'Space Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }.field-help { margin:.5rem 0 0; color:#8098aa; font-size:.68rem; line-height:1.5; }.mcq-question { padding:1rem; border:1px solid rgba(84,169,220,.2); border-radius:13px; background:rgba(5,14,24,.42); }.question-meta { display:flex; justify-content:space-between; gap:.5rem; margin-bottom:.55rem; color:#88a2b2; font:600 .58rem 'Space Mono',monospace; }.question-prompt { margin:0 0 .85rem; color:#edf3f5; font-size:.84rem; line-height:1.65; }.answer-options { display:grid; gap:.45rem; }.answer-option { width:100%; display:flex; gap:.55rem; align-items:flex-start; padding:.62rem .7rem; border:1px solid rgba(84,169,220,.2); border-radius:9px; color:#b7cbd8; background:rgba(84,169,220,.04); text-align:left; font-size:.72rem; cursor:pointer; }.answer-option:hover,.answer-option:focus-visible,.answer-option.selected { color:#f1eadb; border-color:rgba(212,175,55,.5); background:rgba(212,175,55,.08); }.answer-option.correct { color:#c7f0d6; border-color:rgba(139,214,177,.7); background:rgba(139,214,177,.1); }.answer-option.wrong { color:#f3c3bd; border-color:rgba(233,162,158,.6); background:rgba(233,162,158,.08); }.answer-letter { width:22px; height:22px; display:grid; place-items:center; flex:none; border-radius:50%; color:#edda8a; background:rgba(212,175,55,.12); font:700 .62rem 'Space Mono',monospace; }.feedback-box { margin-top:.8rem; padding:.7rem .8rem; border-radius:10px; color:#b9d6c3; background:rgba(139,214,177,.08); border:1px solid rgba(139,214,177,.28); font-size:.7rem; line-height:1.55; }.feedback-box.mistake { color:#f0c2bd; background:rgba(233,162,158,.07); border-color:rgba(233,162,158,.3); }.mistake-list { display:grid; gap:.55rem; margin-top:.8rem; }.mistake-item { padding:.7rem; border-left:2px solid #e9a29e; border-radius:0 9px 9px 0; background:rgba(233,162,158,.065); }.mistake-item b { display:block; color:#efc6c0; font-size:.72rem; }.mistake-item span { display:block; margin-top:.2rem; color:#9baebb; font-size:.65rem; line-height:1.5; }.report-hero { padding:1rem; border:1px solid rgba(139,214,177,.35); border-radius:13px; background:radial-gradient(circle at 100% 0,rgba(139,214,177,.16),transparent 45%),rgba(139,214,177,.06); }.report-score { color:#c7f0d6; font:700 2rem 'Cinzel',serif; }.report-rows { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin-top:.8rem; }.report-stat { padding:.6rem; border:1px solid rgba(139,214,177,.18); border-radius:9px; background:rgba(0,0,0,.1); }.report-stat b { display:block; color:#e8f0f2; font:700 .85rem 'Space Mono',monospace; }.report-stat span { display:block; margin-top:.2rem; color:#83a191; font-size:.59rem; }.repeat-tabs { display:flex; flex-wrap:wrap; gap:.45rem; margin:.8rem 0; }.repeat-tab { min-height:33px; padding:.4rem .62rem; border:1px solid rgba(84,169,220,.25); border-radius:999px; color:#a8bfcd; background:transparent; font:600 .62rem 'Space Mono',monospace; cursor:pointer; }.repeat-tab.is-active { color:#1a1205; background:#d4af37; border-color:#d4af37; }.ai-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:.9rem; }.ai-action { display:flex; align-items:flex-start; gap:.6rem; padding:.78rem; border:1px solid rgba(212,175,55,.21); border-radius:11px; color:#d9e4e9; background:rgba(212,175,55,.045); text-decoration:none; }.ai-action:hover,.ai-action:focus-visible { border-color:rgba(212,175,55,.6); background:rgba(212,175,55,.09); }.ai-action b { display:block; font-size:.7rem; }.ai-action small { display:block; margin-top:.2rem; color:#8da3b2; font-size:.61rem; line-height:1.45; }.ai-energy { margin-left:auto; color:#eed681; font:700 .57rem 'Space Mono',monospace; white-space:nowrap; }.topic-chip-list { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin-top:.85rem; }.topic-chip-label { color:#8fa6b5; font:700 .57rem 'Space Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }.topic-chip { display:inline-flex; gap:.25rem; align-items:center; padding:.34rem .5rem; border:1px solid rgba(84,169,220,.24); border-radius:999px; color:#bed3df; background:rgba(84,169,220,.06); font-size:.62rem; text-decoration:none; transition:border-color .2s ease,transform .2s ease,background .2s ease; }.topic-chip:hover,.topic-chip:focus-visible { transform:translateY(-2px); border-color:rgba(212,175,55,.62); color:#fff0ad; background:rgba(212,175,55,.08); outline:none; }.content-pack-stamp { display:grid; gap:.12rem; margin-top:.9rem; padding:.65rem .7rem; border:1px solid rgba(84,169,220,.18); border-radius:10px; background:rgba(84,169,220,.04); }.content-pack-stamp .mono { color:#d4af37; font-size:.55rem; }.content-pack-stamp strong { color:#b9cdd9; font-size:.65rem; }.practice-card-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:.8rem; }.practice-overview .ws-card,.progress-overview .ws-card { height:100%; }.progress-overview { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:.9rem; }.progress-big { color:#f0d680; font:700 2rem 'Cinzel',serif; }.archive-panel { margin-top:1rem; }.archive-row { display:flex; justify-content:space-between; align-items:center; gap:.7rem; padding:.65rem 0; border-top:1px solid rgba(84,169,220,.13); color:#9db2c0; font-size:.7rem; }
.global-study-band { position:relative; z-index:6; display:grid; grid-template-columns:minmax(180px,.65fr) minmax(260px,1.5fr) minmax(120px,.45fr); gap:1rem; align-items:center; margin-top:2.2rem; padding:1rem 1.1rem; border:1px solid rgba(212,175,55,.35); border-radius:17px; background:linear-gradient(110deg,rgba(15,36,55,.97),rgba(10,22,36,.97)); box-shadow:0 20px 45px -30px #000,0 0 0 1px rgba(84,169,220,.04); }.global-band-intro,.global-band-heading,.streak-block { display:flex; align-items:center; gap:.65rem; }.global-band-intro b { color:#e9f1f4; font-size:.75rem; }.global-band-character { width:47px; height:47px; display:grid; place-items:center; flex:none; padding:.18rem; border:1px solid rgba(212,175,55,.34); border-radius:15px; background:linear-gradient(145deg,rgba(84,169,220,.13),rgba(212,175,55,.09)); animation:workspaceBreathe 3.8s ease-in-out infinite; }.global-band-character .momo-pixel { width:100%; height:100%; image-rendering:pixelated; }.global-band-orb { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#f0d680; background:rgba(212,175,55,.12); border:1px solid rgba(212,175,55,.31); animation:workspaceBreathe 3.8s ease-in-out infinite; }.global-task-block { min-width:0; }.global-band-heading { justify-content:space-between; margin-bottom:.45rem; color:#cadce6; font:600 .68rem 'Space Mono',monospace; }.global-tasks { display:flex; flex-wrap:wrap; gap:.4rem; }.global-task { position:relative; display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; align-items:center; gap:.42rem; min-width:220px; max-width:355px; padding:.48rem .58rem; border:1px solid rgba(84,169,220,.2); border-radius:11px; color:#9eb6c5; background:linear-gradient(135deg,rgba(84,169,220,.08),rgba(7,17,29,.38)); font-size:.64rem; transition:transform .2s ease,border-color .2s ease,background .2s ease; }.global-task.automatic { cursor:pointer; }.global-task.automatic:hover,.global-task.automatic:focus-visible { transform:translateY(-2px); border-color:rgba(212,175,55,.58); background:linear-gradient(135deg,rgba(212,175,55,.12),rgba(84,169,220,.08)); outline:none; }.global-task .workspace-character-badge { width:29px; height:29px; padding:.12rem; border-radius:9px; }.global-task.done { color:#8bd6b1; }.global-task.done .task-title,.global-task.done .task-detail { text-decoration:line-through; }.task-check { width:19px; height:19px; display:grid; place-items:center; padding:0; border:1px solid rgba(84,169,220,.38); border-radius:6px; color:#d4af37; background:transparent; font-size:.65rem; cursor:pointer; }.task-check-auto { border-color:rgba(212,175,55,.45); color:#efd47c; font:700 .72rem 'Space Mono',monospace; }.global-task.done .task-check { color:#07150c; background:#8bd6b1; border-color:#8bd6b1; }.task-copy { min-width:0; display:grid; gap:.1rem; }.task-title { color:#d5e2e9; font-weight:700; line-height:1.25; }.task-detail { color:#93aabd; font-size:.58rem; line-height:1.35; }.task-points { color:#efd47c; white-space:nowrap; font:700 .57rem 'Space Mono',monospace; }.task-origin { color:#7893a5; font:600 .5rem 'Space Mono',monospace; letter-spacing:.03em; text-decoration:none; }.global-task.done .task-origin { color:#6e9b86; }.streak-block { justify-content:flex-end; color:#b8ccd8; }.streak-flame { color:#f0d680; font-size:1.65rem; animation:workspaceBreathe 4s ease-in-out infinite; }.streak-label { color:#829caf; font-size:.57rem; }.streak-block strong { color:#f2e9d8; font:700 1.3rem 'Cinzel',serif; }.streak-block span { color:#829caf; font-size:.64rem; }.workspace-footer { margin-top:1rem; border-top:1px solid rgba(84,169,220,.16); color:#71889a; font:600 .63rem 'Space Mono',monospace; }.workspace-footer .container-x { display:flex; justify-content:space-between; gap:1rem; padding-top:1.2rem; padding-bottom:1.5rem; }.workspace-footer a { margin-left:1rem; color:#a2b6c3; text-decoration:none; }.workspace-footer a:hover { color:#f0d680; }
.notebook-dialog { width:min(620px,calc(100vw - 2rem)); padding:0; border:1px solid rgba(212,175,55,.42); border-radius:20px; color:#f2e9d8; background:#0a1726; box-shadow:0 30px 80px -20px #000; }.notebook-dialog::backdrop { background:rgba(3,8,14,.78); backdrop-filter:blur(5px); }.notebook-dialog form { padding:1.35rem; }.dialog-head { display:flex; justify-content:space-between; gap:1rem; }.dialog-head h2 { margin:0; color:#f2e9d8; font-size:1.25rem; }.dialog-close { width:33px; height:33px; border:1px solid rgba(84,169,220,.24); border-radius:9px; color:#9db2c0; background:transparent; font-size:1.3rem; cursor:pointer; }.dialog-close:hover { color:#fff; border-color:rgba(212,175,55,.5); }.wizard-progress { display:flex; align-items:center; gap:.45rem; margin:1.15rem 0 1.45rem; }.wizard-step-dot { width:25px; height:25px; display:grid; place-items:center; border:1px solid #29435b; border-radius:50%; color:#7f98a9; font:700 .63rem 'Space Mono',monospace; }.wizard-step-dot.is-active,.wizard-step-dot.is-done { color:#1a1205; border-color:#d4af37; background:#d4af37; }.wizard-line { flex:1; height:1px; background:#29435b; }.wizard-step { display:none; }.wizard-step.is-active { display:block; animation:workspaceReveal .25s ease both; }.wizard-name { min-height:48px; font-size:.9rem; }.wizard-actions { display:flex; justify-content:flex-end; gap:.55rem; margin-top:1.45rem; }.wizard-choice-grid { display:grid; gap:.6rem; }.wizard-choice { width:100%; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.7rem; align-items:center; padding:.9rem; border:1px solid #29435b; border-radius:12px; color:#b3c8d6; background:#081625; text-align:left; cursor:pointer; }.wizard-choice:hover,.wizard-choice.is-selected { border-color:rgba(212,175,55,.62); background:rgba(212,175,55,.08); }.wizard-choice b { display:block; color:#e9f0f3; font-size:.78rem; }.wizard-choice small { display:block; margin-top:.22rem; color:#8299aa; font-size:.66rem; line-height:1.45; }.choice-icon { color:#f0d680; font-size:1.35rem; }.choice-check { opacity:0; color:#8bd6b1; font-weight:700; }.wizard-choice.is-selected .choice-check { opacity:1; }.template-choice-list { display:grid; gap:.55rem; max-height:310px; overflow:auto; padding-right:.2rem; }.template-choice { width:100%; display:flex; justify-content:space-between; align-items:center; gap:.7rem; padding:.75rem; border:1px solid #29435b; border-radius:10px; color:#b8ccd8; background:#081625; text-align:left; cursor:pointer; }.template-choice.is-selected,.template-choice:hover { border-color:rgba(212,175,55,.62); background:rgba(212,175,55,.08); }.template-choice b { display:block; color:#e9f0f3; font-size:.74rem; }.template-choice small { display:block; margin-top:.18rem; color:#8299aa; font-size:.62rem; }.template-code { color:#edda8a; font:700 .59rem 'Space Mono',monospace; }.template-check { color:#8bd6b1; opacity:0; }.template-choice.is-selected .template-check { opacity:1; }
.toast { z-index:80; }

.task-copy { min-width:0; display:grid; gap:.08rem; }.task-origin { color:#7893a5; font:600 .5rem 'Space Mono',monospace; letter-spacing:.03em; text-decoration:none; }.global-task.done .task-origin { color:#6e9b86; }
@keyframes workspaceReveal { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@keyframes workspaceFloat { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-7px) rotate(1deg); } }
@keyframes workspaceMascotFloat { 0%,100% { transform:translateX(-50%) translateY(0) rotate(-3deg); } 50% { transform:translateX(-50%) translateY(-7px) rotate(1deg); } }
@keyframes workspacePixelFloat { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-6px) rotate(1deg); } }
@keyframes workspaceCharacterFloat { 0%,100% { transform:translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform:translateX(-50%) translateY(-7px) rotate(1deg); } }
@keyframes workspaceBreathe { 0%,100% { transform:scale(1); opacity:.9; } 50% { transform:scale(1.04); opacity:1; } }
@keyframes sparkFloat { 0%,100% { transform:translateY(0); opacity:.45; } 50% { transform:translateY(-8px); opacity:1; } }
@keyframes workspaceBlink { 0%,91%,100% { transform:scaleY(1); } 93%,96% { transform:scaleY(.08); } }
@keyframes workspaceCharacterReact { 0% { transform:translateY(0) rotate(0); } 34% { transform:translateY(-8px) rotate(-3deg); } 68% { transform:translateY(-3px) rotate(3deg); } 100% { transform:none; } }
@keyframes workspacePixelReact { 0%,100% { transform:translateY(-3px) scale(1.08); } 42% { transform:translateY(-8px) scale(1.16) rotate(-4deg); } 72% { transform:translateY(-2px) scale(1.08) rotate(4deg); } }

html[data-theme="light"] .workspace-rail,html[data-theme="light"] .workspace-context-strip,html[data-theme="light"] .workspace-hero,html[data-theme="light"] .programme-directory,html[data-theme="light"] .notebook-card,html[data-theme="light"] .ws-card,html[data-theme="light"] .subject-tools,html[data-theme="light"] .global-study-band,html[data-theme="light"] .notebook-dialog { color:#243244; background:#fffdf7; border-color:#ded1b1; }
html[data-theme="light"] .workspace-hero h1,html[data-theme="light"] .workspace-section-head h1,html[data-theme="light"] .workspace-section-head h2,html[data-theme="light"] .notebook-heading h1,html[data-theme="light"] .notebook-card h3,html[data-theme="light"] .programme-card h3,html[data-theme="light"] .ws-card h2,html[data-theme="light"] .ws-card h3,html[data-theme="light"] .dialog-head h2 { color:#1e2a38; }
html[data-theme="light"] .workspace-hero p,html[data-theme="light"] .notebook-subtitle,html[data-theme="light"] .notebook-card-meta,html[data-theme="light"] .programme-card p,html[data-theme="light"] .ws-card p,html[data-theme="light"] .workspace-sync,html[data-theme="light"] .directory-note,html[data-theme="light"] .section-subtitle { color:#55606c; }
html[data-theme="light"] .workspace-top-chip,html[data-theme="light"] .programme-card,html[data-theme="light"] .paper-row,html[data-theme="light"] .mcq-question,html[data-theme="light"] .wizard-choice,html[data-theme="light"] .template-choice,html[data-theme="light"] .field,html[data-theme="light"] .select-field,html[data-theme="light"] .typing-answer { color:#3a4550; background:#fffdf7; border-color:#ded1b1; }
html[data-theme="light"] .field,html[data-theme="light"] .select-field,html[data-theme="light"] .typing-answer { color:#243244; }.field::placeholder { color:#728190; }

@media (max-width:1050px) { .workspace-character-stage { right:.8rem; transform:scale(.9); transform-origin:bottom right; } }
@media (max-width:760px) { .workspace-page { padding:1rem .72rem 1.2rem; }.workspace-topline { align-items:flex-start; }.workspace-top-actions { flex-direction:column-reverse; align-items:flex-end; }.workspace-add-top { font-size:.68rem; }.workspace-context-strip { align-items:flex-start; flex-wrap:wrap; }.context-detail { width:100%; margin-left:1.2rem; }.workspace-hero { min-height:0; padding:1.6rem 1.2rem .9rem; align-items:stretch; flex-direction:column; }.workspace-hero-copy { max-width:none; }.workspace-character-stage { position:relative; right:auto; bottom:auto; width:min(100%,340px); min-height:264px; margin:1rem 0 -.2rem auto; transform:none; align-self:flex-end; }.workspace-character-cluster { height:230px; }.workspace-character-main { width:142px; height:142px; }.workspace-character-orbiturtle { left:0; top:65px; width:68px; height:68px; }.workspace-character-bytebug { right:0; top:25px; width:68px; height:68px; }.workspace-character-pixelume { right:19%; top:3px; width:52px; height:52px; }.workspace-section-head,.directory-head { align-items:flex-start; flex-direction:column; gap:.55rem; }.directory-note { text-align:left; }.notebook-heading { grid-template-columns:auto minmax(0,1fr); }.notebook-heading-character { grid-column:2; grid-row:2; justify-self:start; }.notebook-progress-card { grid-column:1/-1; }.content-grid { grid-template-columns:1fr; }.tool-card-grid,.ai-grid { grid-template-columns:1fr; }.report-rows { grid-template-columns:1fr; }.global-study-band { position:static; grid-template-columns:1fr; gap:.8rem; }.global-tasks { display:grid; grid-template-columns:1fr; }.global-task { min-width:0; max-width:none; }.streak-block { justify-content:flex-start; }.social-strip { align-items:flex-start; flex-direction:column; }.workspace-footer .container-x { flex-direction:column; }.workspace-footer a:first-child { margin-left:0; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; } }
@media (forced-colors:active) { .workspace-hero,.workspace-context-strip,.notebook-card,.ws-card,.programme-card,.global-study-band,.workspace-rail { forced-color-adjust:none; border:1px solid CanvasText; background:Canvas; }.rail-link.is-active,.tool-tab.is-active { border:1px solid Highlight; color:Highlight; background:Canvas; }.progress-bar,.mini-bar { border-color:CanvasText; }.progress-bar span,.mini-bar span { background:Highlight; } }

/* Dense todo constellation + source shelf. These overrides keep the global band
   useful with one task as well as four, while giving Cambridge notebooks a clear,
   copyright-safe route to official notes and paper archives. */
.global-study-band { grid-template-columns:minmax(205px,.62fr) minmax(0,2.1fr) minmax(150px,.52fr); align-items:stretch; gap:.7rem; padding:.72rem; background:radial-gradient(circle at 82% 0,rgba(212,175,55,.1),transparent 28%),linear-gradient(115deg,rgba(15,36,55,.98),rgba(8,20,33,.98)); }
.global-band-intro,.streak-block { min-width:0; padding:.68rem .78rem; border:1px solid rgba(84,169,220,.15); border-radius:13px; background:linear-gradient(145deg,rgba(84,169,220,.075),rgba(7,17,29,.28)); }
.global-band-intro { align-items:center; }
.global-task-block { display:grid; min-width:0; gap:.42rem; padding:.42rem; border:1px solid rgba(212,175,55,.18); border-radius:13px; background:rgba(7,17,29,.28); }
.global-band-heading { margin:0; padding:0 .2rem; }
.global-tasks { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:.55rem; align-content:stretch; min-width:0; }
.global-tasks[data-task-count="1"] { grid-template-columns:minmax(0,1fr); }
.global-tasks[data-task-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.global-task { width:100%; min-width:0; max-width:none; min-height:78px; overflow:hidden; isolation:isolate; padding:.62rem .68rem; border-color:rgba(84,169,220,.24); border-radius:13px; background:linear-gradient(135deg,rgba(84,169,220,.13),rgba(7,17,29,.64) 66%),radial-gradient(circle at 100% 0,rgba(212,175,55,.16),transparent 38%); box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 14px 24px -22px #000; }
.global-task::before { content:""; position:absolute; width:86px; height:86px; right:-35px; bottom:-48px; border:1px solid rgba(84,169,220,.18); border-radius:50%; box-shadow:0 0 0 12px rgba(212,175,55,.035),0 0 0 25px rgba(84,169,220,.025); pointer-events:none; }
.global-task::after { content:""; position:absolute; top:0; left:0; width:3px; height:100%; background:linear-gradient(#d4af37,#54a9dc); opacity:.75; pointer-events:none; }
.global-task > * { position:relative; z-index:1; }
.global-task .workspace-character-badge { width:37px; height:37px; padding:.13rem; border-radius:12px; }
.task-check { width:22px; height:22px; border-radius:8px; }
.task-points { align-self:start; padding:.28rem .38rem; border:1px solid rgba(212,175,55,.28); border-radius:7px; background:rgba(212,175,55,.1); }
.global-task.done { background:linear-gradient(135deg,rgba(139,214,177,.12),rgba(7,17,29,.62)); }
.global-task.done::after { background:linear-gradient(#8bd6b1,#54a9dc); }
.streak-block { justify-content:center; }
.streak-flame { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(212,175,55,.28); border-radius:12px; background:rgba(212,175,55,.09); }

.notebook-content { margin-top:.78rem; }
#notebookView { scroll-margin-top:.7rem; }
.notebook-heading { min-height:112px; overflow:visible; }
.notebook-heading > * { min-width:0; }
.notebook-heading-character { align-self:center; place-self:center; }
.notebook-heading-character .workspace-character-badge { width:100%; height:100%; padding:.16rem; }
.notebook-heading-character .character-sprite { width:64px; height:64px; }

.source-shelf-card { grid-column:1/-1; margin-top:.1rem; background:radial-gradient(circle at 100% 0,rgba(212,175,55,.1),transparent 31%),linear-gradient(145deg,rgba(14,33,52,.98),rgba(8,18,30,.97)); }
.source-shelf-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.source-shelf-head h2 { margin-top:.3rem; }
.source-shelf-stamp { padding:.35rem .48rem; border:1px solid rgba(212,175,55,.3); border-radius:8px; color:#f0d680; background:rgba(212,175,55,.08); font:700 .57rem 'Space Mono',monospace; white-space:nowrap; }
.source-shelf-lede { max-width:78ch; margin:.55rem 0 0; }
.source-link-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.55rem; margin-top:.9rem; }
.source-link-card { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.5rem; min-height:65px; padding:.62rem; border:1px solid rgba(84,169,220,.22); border-radius:11px; color:#d6e3e9; background:linear-gradient(140deg,rgba(84,169,220,.095),rgba(7,17,29,.46)); text-decoration:none; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.source-link-card:hover,.source-link-card:focus-visible { transform:translateY(-3px); border-color:rgba(212,175,55,.58); background:linear-gradient(140deg,rgba(212,175,55,.12),rgba(84,169,220,.07)); outline:none; }
.source-link-icon { width:28px; height:28px; display:grid; place-items:center; border:1px solid rgba(212,175,55,.3); border-radius:9px; color:#efd47c; background:rgba(212,175,55,.1); }
.source-link-card b,.source-link-card small { display:block; }
.source-link-card b { font-size:.67rem; }
.source-link-card small { margin-top:.16rem; color:#8fa7b7; font-size:.56rem; line-height:1.4; }
.source-link-arrow { color:#efd47c; font-size:.8rem; }
.classified-head { display:flex; justify-content:space-between; gap:.8rem; align-items:center; margin:1rem 0 .45rem; color:#8199a8; font-size:.58rem; }
.classified-head .mono { color:#d4af37; }
.classified-paper-list { display:grid; gap:.5rem; }
.classified-paper { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.2rem .7rem; padding:.65rem .7rem; border:1px solid rgba(84,169,220,.17); border-radius:10px; background:rgba(84,169,220,.045); }
.classified-paper b,.classified-paper small { display:block; }
.classified-paper b { color:#e1edf1; font-size:.68rem; }
.classified-paper small { margin-top:.12rem; color:#829bac; font-size:.56rem; }
.classified-paper-code { display:inline-block; margin-right:.4rem; color:#efd47c; font:700 .53rem 'Space Mono',monospace; }
.classified-paper-meta { color:#efd47c; font:700 .57rem 'Space Mono',monospace; white-space:nowrap; }
.classified-paper p { grid-column:1/-1; margin:.22rem 0 0; color:#9eb2bf; font-size:.62rem; line-height:1.45; }
.classified-paper p strong { color:#d6e4e8; }
.classified-tags { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.28rem; margin-top:.2rem; }
.classified-tags span { padding:.2rem .35rem; border:1px solid rgba(84,169,220,.18); border-radius:999px; color:#9ebfce; background:rgba(84,169,220,.06); font:600 .52rem 'Space Mono',monospace; }
.source-shelf-foot { margin: .75rem 0 0; }

@media (max-width:900px) { .source-link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .source-link-grid { grid-template-columns:1fr; }.classified-paper { grid-template-columns:1fr; }.classified-paper-meta { justify-self:start; }.global-study-band { gap:.65rem; }.global-tasks[data-task-count="2"] { grid-template-columns:1fr; }.notebook-heading { min-height:0; }.notebook-heading-character { place-self:start; } }

/* Notebook studio polish: keep every study control inside the notebook and give
   interactive surfaces a tactile MOMO signal instead of flat fills. */
.workspace-shell .site-nav,
.workspace-shell #navDrawerToggle,
.workspace-shell .nav-drawer-scrim { display:none !important; }
.notebook-content { min-height:0; }
.notebook-heading { position:relative; padding:1.05rem; border:1px solid rgba(84,169,220,.18); border-radius:20px; background:radial-gradient(circle at 8% 10%,rgba(212,175,55,.08),transparent 28%),linear-gradient(135deg,rgba(13,34,53,.72),rgba(7,16,28,.6)); box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 22px 45px -38px #000; }
.notebook-heading::after { content:""; position:absolute; width:120px; height:120px; right:17%; top:-58px; border:1px solid rgba(212,175,55,.16); border-radius:50%; box-shadow:0 0 0 18px rgba(84,169,220,.035),0 0 0 36px rgba(212,175,55,.025); pointer-events:none; }
.notebook-heading-character { position:relative; z-index:1; box-shadow:0 14px 28px -20px #000,0 0 0 5px rgba(84,169,220,.035); }
.notebook-progress-card { position:relative; z-index:1; background:linear-gradient(145deg,rgba(12,31,49,.92),rgba(9,19,32,.72)); }
.workspace-page .ws-btn,
.workspace-page .tool-tab,
.workspace-page .icon-button,
.workspace-page .back-link,
.workspace-page .topic-check,
.workspace-page .answer-option,
.workspace-page .timer-preset,
.workspace-page .oracle-feature-card,
.workspace-page .game-launch-card,
.workspace-page .mindmap-topic,
.workspace-page .flashcard-shell { position:relative; isolation:isolate; overflow:hidden; border-color:rgba(84,169,220,.3); background:linear-gradient(135deg,rgba(84,169,220,.12),rgba(212,175,55,.065) 58%,rgba(7,17,29,.55)); box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 12px 24px -21px #000; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.workspace-page .ws-btn::after,
.workspace-page .tool-tab::after,
.workspace-page .game-launch-card::after,
.workspace-page .oracle-feature-card::after { content:""; position:absolute; inset:0 auto 0 -55%; width:34%; background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent); transform:skewX(-20deg); transition:left .55s ease; pointer-events:none; z-index:-1; }
.workspace-page .ws-btn:hover::after,
.workspace-page .ws-btn:focus-visible::after,
.workspace-page .tool-tab:hover::after,
.workspace-page .tool-tab:focus-visible::after,
.workspace-page .game-launch-card:hover::after,
.workspace-page .game-launch-card:focus-visible::after,
.workspace-page .oracle-feature-card:hover::after,
.workspace-page .oracle-feature-card:focus-visible::after { left:115%; }
.workspace-page .ws-btn:hover,
.workspace-page .ws-btn:focus-visible,
.workspace-page .tool-tab:hover,
.workspace-page .tool-tab:focus-visible,
.workspace-page .icon-button:hover,
.workspace-page .icon-button:focus-visible,
.workspace-page .back-link:hover,
.workspace-page .back-link:focus-visible,
.workspace-page .topic-check:hover,
.workspace-page .topic-check:focus-visible,
.workspace-page .answer-option:hover,
.workspace-page .answer-option:focus-visible,
.workspace-page .timer-preset:hover,
.workspace-page .timer-preset:focus-visible,
.workspace-page .oracle-feature-card:hover,
.workspace-page .oracle-feature-card:focus-visible,
.workspace-page .game-launch-card:hover,
.workspace-page .game-launch-card:focus-visible,
.workspace-page .mindmap-topic:hover,
.workspace-page .mindmap-topic:focus-visible { transform:translateY(-2px); border-color:rgba(212,175,55,.68); background:linear-gradient(135deg,rgba(212,175,55,.16),rgba(84,169,220,.12)); box-shadow:0 16px 28px -22px #000,0 0 0 3px rgba(212,175,55,.06); outline:none; }
.workspace-page .ws-btn.primary { color:#1a1205; border-color:#e6c45d; background:linear-gradient(135deg,#f0d680,#d4af37 58%,#ae8120); box-shadow:0 12px 25px -16px rgba(212,175,55,.9),inset 0 1px 0 rgba(255,255,255,.48); }
.workspace-page .ws-btn.primary:hover,
.workspace-page .ws-btn.primary:focus-visible { color:#100d07; background:linear-gradient(135deg,#ffe9a1,#e2bd48 58%,#be8e28); }
.workspace-page .tool-tab.is-active { color:#fff0ac; border-color:rgba(212,175,55,.64); background:linear-gradient(135deg,rgba(212,175,55,.23),rgba(84,169,220,.12)); box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 9px 22px -18px rgba(212,175,55,.9); }
.workspace-page .topic-check.done { color:#09251c; border-color:#8bd6b1; background:linear-gradient(135deg,#b8f0d0,#72cba5); }
.workspace-page .answer-option.correct { background:linear-gradient(135deg,rgba(139,214,177,.28),rgba(84,169,220,.12)); border-color:#8bd6b1; }
.workspace-page .answer-option.wrong { background:linear-gradient(135deg,rgba(233,162,158,.24),rgba(212,175,55,.08)); border-color:#e9a29e; }

.upload-drop-card { display:flex; align-items:center; gap:.8rem; margin-top:1rem; padding:.95rem; border:1px dashed rgba(212,175,55,.52); border-radius:16px; color:#c6d6df; background:radial-gradient(circle at 9% 20%,rgba(212,175,55,.16),transparent 30%),linear-gradient(135deg,rgba(84,169,220,.09),rgba(7,17,29,.4)); cursor:pointer; box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }
.upload-drop-card:hover,.upload-drop-card:focus-within { border-color:#f0d680; background:radial-gradient(circle at 9% 20%,rgba(212,175,55,.22),transparent 32%),linear-gradient(135deg,rgba(84,169,220,.14),rgba(7,17,29,.46)); }
.upload-drop-card b,.upload-drop-card small { display:block; }.upload-drop-card b { color:#f3e7b2; font-size:.75rem; }.upload-drop-card small { margin-top:.22rem; color:#8fa8b7; font-size:.63rem; line-height:1.45; }.upload-drop-card input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }.upload-orbit { display:grid; place-items:center; width:42px; height:42px; flex:none; border:1px solid rgba(212,175,55,.52); border-radius:50%; color:#f0d680; font:700 1.2rem 'Space Mono',monospace; box-shadow:0 0 0 7px rgba(212,175,55,.06),0 0 23px rgba(84,169,220,.13); }
.oracle-ask-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; margin-top:1rem; }.oracle-answer-card { margin-top:.85rem; padding:1rem; border:1px solid rgba(212,175,55,.28); border-radius:16px; background:radial-gradient(circle at 85% 12%,rgba(212,175,55,.12),transparent 30%),linear-gradient(145deg,rgba(19,43,61,.88),rgba(8,19,32,.72)); box-shadow:inset 0 1px 0 rgba(255,255,255,.045); }.oracle-answer-kicker { color:#f0d680; font:700 .58rem 'Space Mono',monospace; letter-spacing:.12em; text-transform:uppercase; }.oracle-answer-card p { margin:.45rem 0 0; color:#deebef; font-size:.82rem; line-height:1.7; }.oracle-answer-meta { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:.7rem; color:#8fa9b8; font-size:.62rem; }.oracle-compass { background:radial-gradient(circle at 86% 9%,rgba(84,169,220,.16),transparent 31%),linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); }.oracle-feature-list { display:grid; gap:.55rem; margin-top:.9rem; }.oracle-feature-card { display:grid; grid-template-columns:28px minmax(0,1fr); gap:.1rem .55rem; width:100%; padding:.7rem; border:1px solid rgba(84,169,220,.18); border-radius:13px; color:#bdd0dd; text-align:left; cursor:pointer; }.oracle-feature-card > span { grid-row:span 2; align-self:center; color:#f0d680; font-size:1.05rem; }.oracle-feature-card b { color:#e7eef2; font-size:.7rem; }.oracle-feature-card small { color:#839caf; font-size:.61rem; line-height:1.35; }.oracle-pack-lock { margin-top:1rem; }

.games-studio { background:radial-gradient(circle at 90% 5%,rgba(212,175,55,.1),transparent 30%),linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); }.game-launch-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin-top:1rem; }.game-launch-card { display:grid; gap:.28rem; min-height:122px; padding:.85rem; border:1px solid rgba(84,169,220,.22); border-radius:16px; color:#d6e2e7; text-align:left; cursor:pointer; }.game-launch-icon { display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(212,175,55,.4); border-radius:11px; color:#f0d680; background:rgba(212,175,55,.1); font-size:1rem; }.game-launch-card b { margin-top:.15rem; color:#f2e9d8; font:700 .75rem 'Cinzel',serif; }.game-launch-card small { color:#829cad; font-size:.61rem; line-height:1.4; }.game-topic-ribbon { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin-top:1rem; padding-top:.8rem; border-top:1px solid rgba(84,169,220,.14); }.game-topic-ribbon .mono { width:100%; color:#d4af37; font-size:.55rem; }.game-topic-ribbon > span:not(.mono) { padding:.3rem .48rem; border:1px solid rgba(84,169,220,.2); border-radius:999px; color:#a9c1ce; background:rgba(84,169,220,.06); font-size:.6rem; }.game-score-card { background:radial-gradient(circle at 82% 12%,rgba(139,214,177,.12),transparent 28%),linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); }

.flashcard-studio { background:radial-gradient(circle at 16% 8%,rgba(212,175,55,.12),transparent 28%),linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); }.flashcard-shell { min-height:250px; display:grid; place-items:center; margin-top:1rem; padding:1.4rem; border-radius:22px; cursor:pointer; }.flashcard-shell.is-flipped { background:radial-gradient(circle at 80% 16%,rgba(139,214,177,.16),transparent 31%),linear-gradient(135deg,rgba(28,62,66,.85),rgba(8,20,31,.92)); }.flashcard-orbit { position:relative; display:grid; place-items:center; width:188px; height:188px; }.flashcard-orbit::before,.flashcard-orbit::after { content:""; position:absolute; inset:3px; border:1px solid rgba(212,175,55,.34); border-radius:50%; transform:rotate(28deg) scaleX(.72); }.flashcard-orbit::after { inset:16px -4px; border-color:rgba(84,169,220,.26); transform:rotate(-34deg) scaleX(.72); }.flashcard-front,.flashcard-back { position:relative; z-index:1; max-width:25ch; color:#f1e6bb; font:700 1rem 'Cinzel',serif; line-height:1.35; text-align:center; }.flashcard-back { color:#bee8d1; font:600 .8rem 'Poppins',sans-serif; }.flashcard-meta { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.85rem; color:#8fa8b7; font-size:.65rem; }.flashcard-meta b { color:#f0d680; }.flashcard-actions { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.8rem; }

.mindmap-canvas { position:relative; min-height:375px; margin-top:1rem; overflow:hidden; border:1px solid rgba(84,169,220,.2); border-radius:20px; background:radial-gradient(circle at 50% 48%,rgba(212,175,55,.12),transparent 19%),radial-gradient(circle at 20% 10%,rgba(84,169,220,.12),transparent 32%),linear-gradient(145deg,#0d273b,#081521 70%); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }.mindmap-canvas::before { content:""; position:absolute; inset:9%; border:1px dashed rgba(84,169,220,.16); border-radius:50%; transform:rotate(-12deg) scaleY(.7); }.mindmap-core { position:absolute; left:50%; top:50%; z-index:2; display:grid; place-items:center; width:132px; height:132px; padding:1rem; border:1px solid rgba(212,175,55,.7); border-radius:50%; color:#fff0ad; background:radial-gradient(circle at 35% 24%,rgba(240,214,128,.25),rgba(19,47,61,.94)); box-shadow:0 0 0 8px rgba(212,175,55,.07),0 0 45px rgba(84,169,220,.2); transform:translate(-50%,-50%); text-align:center; }.mindmap-core small { display:block; margin-top:.25rem; color:#99b3c1; font:600 .52rem 'Space Mono',monospace; }.mindmap-line { position:absolute; left:50%; top:50%; height:1px; width:28%; transform-origin:left center; background:linear-gradient(90deg,rgba(212,175,55,.7),rgba(84,169,220,.16)); }.mindmap-line.one { transform:rotate(-25deg); }.mindmap-line.two { transform:rotate(24deg); }.mindmap-line.three { transform:rotate(154deg); }.mindmap-line.four { transform:rotate(204deg); }.mindmap-node { position:absolute; z-index:2; min-width:112px; max-width:160px; padding:.55rem; border:1px solid rgba(84,169,220,.3); border-radius:12px; color:#c8dae2; background:linear-gradient(145deg,rgba(16,43,62,.93),rgba(8,20,32,.92)); box-shadow:0 12px 24px -21px #000; font-size:.62rem; text-align:center; }.mindmap-node.one { left:8%; top:17%; }.mindmap-node.two { right:8%; top:13%; }.mindmap-node.three { left:7%; bottom:15%; }.mindmap-node.four { right:7%; bottom:12%; }.mindmap-topic-row { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.8rem; }.mindmap-topic { padding:.45rem .6rem; border-radius:999px; color:#b8ccd7; cursor:pointer; font-size:.62rem; }.mindmap-topic.is-active { color:#1b1304; border-color:#d4af37; background:linear-gradient(135deg,#f0d680,#d4af37); }

.media-studio { background:radial-gradient(circle at 86% 10%,rgba(84,169,220,.16),transparent 30%),linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); }.media-topic-row { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.7rem; margin-top:1rem; }.media-topic-row .flabel { margin:0; white-space:nowrap; }.media-stage { position:relative; display:grid; grid-template-columns:112px minmax(0,1fr); gap:.9rem; align-items:center; min-height:230px; margin-top:.9rem; padding:1rem; overflow:hidden; border:1px solid rgba(84,169,220,.25); border-radius:20px; background:radial-gradient(circle at 62% 38%,rgba(212,175,55,.12),transparent 24%),linear-gradient(135deg,#0e2b40,#081722 78%); }.media-stage::after { content:""; position:absolute; right:-42px; bottom:-62px; width:180px; height:180px; border:1px solid rgba(212,175,55,.18); border-radius:50%; box-shadow:0 0 0 17px rgba(84,169,220,.035),0 0 0 34px rgba(212,175,55,.025); pointer-events:none; }.media-stage.is-playing { border-color:rgba(139,214,177,.48); box-shadow:0 0 0 4px rgba(139,214,177,.05),inset 0 1px 0 rgba(255,255,255,.04); }.media-stage-guide { position:relative; z-index:1; display:grid; place-items:center; width:100px; height:100px; padding:.45rem; overflow:visible; border:1px solid rgba(212,175,55,.42); border-radius:31px; background:linear-gradient(145deg,rgba(84,169,220,.15),rgba(212,175,55,.08)); animation:workspaceCharacterFloat 5.8s ease-in-out infinite; }.media-stage-guide .character-sprite { width:88px; height:88px; }.media-stage-guide .momo-pixel { width:100%; height:100%; image-rendering:pixelated; }.media-visual { position:relative; z-index:1; display:grid; place-items:center; min-height:108px; padding:1rem; overflow:hidden; border:1px solid rgba(84,169,220,.21); border-radius:17px; background:linear-gradient(145deg,rgba(84,169,220,.1),rgba(7,17,29,.4)); text-align:center; }.media-visual strong { color:#f4df91; font:700 1rem 'Cinzel',serif; }.media-visual small { display:block; margin-top:.35rem; color:#8da6b5; font:600 .57rem 'Space Mono',monospace; }.visual-orbit { position:absolute; width:135px; height:60px; border:1px solid rgba(212,175,55,.28); border-radius:50%; transform:rotate(-18deg); animation:workspaceMediaOrbit 6s linear infinite; }.media-caption { grid-column:1/-1; position:relative; z-index:1; padding:.75rem .85rem; border-top:1px solid rgba(84,169,220,.15); }.media-caption .mono { color:#8bd6b1; font-size:.55rem; }.media-caption b { display:block; margin-top:.25rem; color:#e9f1f4; font-size:.74rem; }.media-caption p { margin:.3rem 0 0; color:#9eb4c1; font-size:.68rem; line-height:1.55; }.media-controls { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.8rem; }.media-audio-console { display:flex; flex-wrap:wrap; align-items:center; gap:.7rem; margin-top:.75rem; padding:.65rem .75rem; border:1px solid rgba(139,214,177,.2); border-radius:14px; background:linear-gradient(120deg,rgba(139,214,177,.08),rgba(84,169,220,.06)); }.media-native-audio { width:min(100%, 430px); height:34px; accent-color:#d4af37; }.media-file-player { display:block; width:100%; max-height:420px; margin-top:.75rem; border:1px solid rgba(212,175,55,.32); border-radius:16px; background:#05090f; box-shadow:0 12px 34px rgba(0,0,0,.2); }.media-file-player[hidden] { display:none; }.media-audio-status { color:#9ecab6; font:700 .56rem 'Space Mono',monospace; letter-spacing:.06em; }.media-file-console { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; margin-top:.85rem; padding:.85rem; border:1px solid rgba(212,175,55,.3); border-radius:17px; background:linear-gradient(135deg,rgba(212,175,55,.11),rgba(84,169,220,.08) 55%,rgba(139,214,177,.05)); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }.media-file-copy { display:grid; gap:.25rem; min-width:0; }.media-file-copy .ws-eyebrow { margin:0; }.media-file-copy b { color:#f1df9b; font-size:.74rem; }.media-file-copy small { color:#9eb4c1; font-size:.62rem; line-height:1.45; }.media-file-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }.media-file-status { display:block; color:#9ecab6; font:700 .56rem 'Space Mono',monospace; letter-spacing:.04em; text-transform:uppercase; }.media-file-status[data-tone="busy"] { color:#f1df9b; }.media-file-status[data-tone="warn"] { color:#ffb7aa; }.media-note { margin-top:.65rem; color:#748e9e; font-size:.62rem; }.media-side-card { background:radial-gradient(circle at 84% 10%,rgba(212,175,55,.13),transparent 27%),linear-gradient(155deg,rgba(14,33,52,.96),rgba(8,18,30,.96)); }

@keyframes workspaceMediaOrbit { to { transform:rotate(342deg); } }
@media (max-width:760px) { .game-launch-grid { grid-template-columns:1fr; }.game-launch-card { min-height:92px; }.oracle-ask-row { grid-template-columns:1fr; }.media-stage { grid-template-columns:1fr; }.media-stage-guide { margin:0 auto; }.media-caption { grid-column:auto; }.mindmap-canvas { min-height:460px; }.mindmap-core { width:116px; height:116px; }.mindmap-node { min-width:88px; max-width:124px; }.mindmap-node.one { left:2%; top:16%; }.mindmap-node.two { right:2%; top:12%; }.mindmap-node.three { left:2%; bottom:12%; }.mindmap-node.four { right:2%; bottom:9%; }.media-topic-row { grid-template-columns:1fr; gap:.35rem; } }
@media (prefers-reduced-motion:reduce) { .workspace-page .ws-btn::after,.workspace-page .tool-tab::after,.workspace-page .game-launch-card::after,.workspace-page .oracle-feature-card::after { display:none; }.visual-orbit { animation:none; } }
@media (forced-colors:active) { .workspace-shell .site-nav,.workspace-shell #navDrawerToggle,.workspace-shell .nav-drawer-scrim { display:none !important; }.workspace-page .ws-btn,.workspace-page .tool-tab,.workspace-page .icon-button,.workspace-page .back-link,.workspace-page .topic-check,.workspace-page .answer-option,.workspace-page .timer-preset,.workspace-page .oracle-feature-card,.workspace-page .game-launch-card,.workspace-page .mindmap-topic,.workspace-page .flashcard-shell,.upload-drop-card,.oracle-answer-card,.media-stage,.mindmap-canvas { forced-color-adjust:none; border:1px solid CanvasText; background:Canvas; color:CanvasText; }.workspace-page .ws-btn.primary,.mindmap-topic.is-active { border-color:Highlight; background:Highlight; color:HighlightText; } }

/* Keep the dense task constellation readable on phones after the later
   desktop density overrides have been parsed. */
@media (max-width:760px) {
  .global-study-band { grid-template-columns:1fr; gap:.65rem; }
  .global-tasks[data-task-count="2"] { grid-template-columns:1fr; }
}

/* Make the notebook itself explain the next action before students scan the
   full tool shelf. The guide reuses the same pixel characters as the rest of
   the workspace and collapses cleanly on narrow screens. */
.notebook-next-step { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.78rem; margin:.78rem 0 .7rem; padding:.72rem .82rem; border:1px solid rgba(212,175,55,.3); border-radius:16px; background:radial-gradient(circle at 6% 20%,rgba(212,175,55,.13),transparent 24%),linear-gradient(135deg,rgba(16,38,58,.86),rgba(8,18,30,.78)); box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 15px 30px -25px #000; }
.notebook-next-step-character { width:46px; height:46px; display:grid; place-items:center; padding:.12rem; border:1px solid rgba(84,169,220,.32); border-radius:14px; background:rgba(84,169,220,.08); }
.notebook-next-step-character .workspace-character-badge { width:100%; height:100%; padding:.1rem; border:0; background:transparent; box-shadow:none; }
.notebook-next-step-character .momo-pixel { animation:workspacePixelFloat 4.8s ease-in-out infinite; }
.notebook-next-step-copy { min-width:0; }
.notebook-next-step-kicker { display:block; color:#d4af37; font:700 .56rem 'Space Mono',monospace; letter-spacing:.14em; text-transform:uppercase; }
.notebook-next-step-copy strong { display:block; margin-top:.2rem; color:#f1eadb; font:700 .83rem 'Cinzel',serif; overflow-wrap:anywhere; }
.notebook-next-step-copy p { margin:.2rem 0 0; color:#9fb5c4; font-size:.67rem; line-height:1.45; }
.notebook-next-step-actions { display:grid; justify-items:end; gap:.36rem; }
.notebook-next-step-points { color:#f0d680; font:700 .57rem 'Space Mono',monospace; white-space:nowrap; }
.notebook-next-step-actions .ws-btn { white-space:nowrap; }
.subject-tools-label { flex:0 0 100%; color:#7f99aa; font:700 .56rem 'Space Mono',monospace; letter-spacing:.13em; text-transform:uppercase; }
@media (max-width:760px) {
  .notebook-next-step { grid-template-columns:auto minmax(0,1fr); align-items:start; }
  .notebook-next-step-actions { grid-column:2; display:flex; align-items:center; justify-content:flex-start; justify-items:start; flex-wrap:wrap; }
}

/* Media ads stay small, contained, and collapse completely when the existing
   eligibility gate has no fill. The lesson remains the primary surface. */
.media-video-preroll { display:grid; gap:.42rem; margin-top:.82rem; padding:.72rem .8rem; border:1px solid rgba(212,175,55,.38); border-radius:16px; background:radial-gradient(circle at 92% 8%,rgba(212,175,55,.14),transparent 28%),linear-gradient(135deg,rgba(17,39,57,.95),rgba(7,17,29,.9)); box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 14px 26px -24px #000; }
.media-video-preroll[hidden] { display:none; }
.media-video-preroll-head { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.media-video-preroll-head .ws-eyebrow { margin:0; color:#f0d680; }
.media-video-preroll-timer { color:#a7bbc8; font:700 .58rem 'Space Mono',monospace; white-space:nowrap; }
.media-video-preroll > b { color:#f1e4b5; font:700 .78rem 'Cinzel',serif; }
.media-video-preroll > small { color:#9eb4c1; font-size:.63rem; line-height:1.4; }
.media-video-preroll .media-preroll-ad { min-height:0; margin:.05rem 0; padding:0; border:0; border-radius:10px; background:transparent; }
.media-video-preroll .media-preroll-ad:not(.is-active) { display:none; }
.media-video-preroll .momo-ad-frame { min-height:0; max-height:74px; }
.media-video-preroll .momo-ad-frame--banner { min-height:0; }
.media-video-preroll .momo-ad-frame--native { min-height:0; max-height:110px; }
.media-video-preroll .momo-ad-label { padding:.15rem 0; color:#7890a1; font:600 .5rem 'Space Mono',monospace; }
.media-video-preroll .ws-btn { justify-self:start; min-height:32px; padding:.42rem .62rem; font-size:.61rem; }
.media-premade-console { background:radial-gradient(circle at 90% 10%,rgba(139,214,177,.12),transparent 26%),linear-gradient(135deg,rgba(212,175,55,.1),rgba(84,169,220,.08) 56%,rgba(139,214,177,.06)); }
.media-side-card .media-side-ad { min-height:0; margin:.9rem 0 .15rem; padding:0; border:0; background:transparent; }
.media-side-card .media-side-ad:not(.is-active) { display:none; }
.media-side-card .media-side-ad .momo-ad-frame { min-height:0; max-height:92px; }
.media-side-card .media-side-ad .momo-ad-frame--banner { min-height:0; }
.media-side-card .media-side-ad .momo-ad-frame--native { min-height:0; max-height:130px; }
.media-side-card .media-side-ad .momo-ad-label { padding:.15rem 0; color:#7890a1; font:600 .5rem 'Space Mono',monospace; }
@media (max-width:760px) {
  .media-side-card .media-side-ad .momo-ad-frame--native { max-height:110px; }
}


/* ==== creative pass: role-coded uploads + livelier tool tabs (21st.dev-inspired) ==== */
.upload-role-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.6rem; margin-top:1rem; }
.upload-role-grid .upload-drop-card { margin-top:0; align-items:flex-start; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.upload-role-grid .upload-drop-card:hover,.upload-role-grid .upload-drop-card:focus-within { transform:translateY(-3px); }
.upload-drop-card.role-classified { border-color:rgba(84,169,220,.5); background:radial-gradient(circle at 9% 20%,rgba(84,169,220,.18),transparent 30%),linear-gradient(135deg,rgba(84,169,220,.1),rgba(7,17,29,.4)); }
.upload-drop-card.role-classified:hover,.upload-drop-card.role-classified:focus-within { border-color:#7fc0ea; }
.upload-drop-card.role-answers { border-color:rgba(139,214,177,.45); background:radial-gradient(circle at 9% 20%,rgba(139,214,177,.16),transparent 30%),linear-gradient(135deg,rgba(139,214,177,.08),rgba(7,17,29,.4)); }
.upload-drop-card.role-answers:hover,.upload-drop-card.role-answers:focus-within { border-color:#9adfb8; }
.upload-drop-card.role-classified .upload-orbit { color:#9fd3f5; border-color:rgba(84,169,220,.55); box-shadow:0 0 0 7px rgba(84,169,220,.07),0 0 23px rgba(84,169,220,.15); }
.upload-drop-card.role-answers .upload-orbit { color:#b6ecd0; border-color:rgba(139,214,177,.5); box-shadow:0 0 0 7px rgba(139,214,177,.06),0 0 23px rgba(139,214,177,.13); }
.source-role-chip { display:inline-block; margin-bottom:.28rem; padding:.14rem .44rem; border-radius:999px; font:700 .52rem 'Space Mono',monospace; letter-spacing:.1em; }
.source-role-chip.classified { color:#a8d8f7; border:1px solid rgba(84,169,220,.48); background:rgba(84,169,220,.1); }
.source-role-chip.answers { color:#b9ecd2; border:1px solid rgba(139,214,177,.48); background:rgba(139,214,177,.09); }
.workspace-page .tool-tab { border-radius:11px; }
.workspace-page .tool-tab::before { content:""; position:absolute; left:14%; right:14%; bottom:3px; height:2px; border-radius:2px; background:linear-gradient(90deg,#d4af37,#54a9dc); transform:scaleX(0); transform-origin:center; transition:transform .24s cubic-bezier(.22,1,.36,1); pointer-events:none; z-index:-1; }
.workspace-page .tool-tab:hover { transform:translateY(-2px); }
.workspace-page .tool-tab.is-active { border-color:rgba(212,175,55,.62); background:linear-gradient(135deg,rgba(212,175,55,.26),rgba(84,169,220,.14)); box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 26px -14px rgba(212,175,55,.75); }
.workspace-page .tool-tab.is-active::before { transform:scaleX(1); }
.workspace-page .tool-tab.is-active .tool-sub { color:#cbb26a; }
.workspace-page .ws-btn.primary { box-shadow:0 10px 26px -12px rgba(212,175,55,.65); }
@media (prefers-reduced-motion:reduce) { .workspace-page .tool-tab:hover { transform:none; } .upload-role-grid .upload-drop-card:hover { transform:none; } }


/* ==== motion pass: content reveals + playful hovers ==== */
#notebookContent > * { animation:wsContentIn .45s cubic-bezier(.22,1,.36,1) both; }
#notebookContent > *:nth-child(2) { animation-delay:.07s; }
@keyframes wsContentIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.workspace-page .game-launch-card:hover,.workspace-page .game-launch-card:focus-visible { transform:translateY(-3px) rotate(-.4deg); box-shadow:0 18px 32px -18px rgba(212,175,55,.55); }
.upload-drop-card .upload-orbit { transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.upload-drop-card:hover .upload-orbit,.upload-drop-card:focus-within .upload-orbit { transform:rotate(96deg) scale(1.08); }
.workspace-page .tool-tab.is-active::before { animation:toolUnderline .3s cubic-bezier(.22,1,.36,1); }
@keyframes toolUnderline { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media (prefers-reduced-motion:reduce) { #notebookContent > *, .workspace-page .tool-tab.is-active::before { animation:none !important; } .workspace-page .game-launch-card:hover { transform:none; } .upload-drop-card:hover .upload-orbit { transform:none; } }

/* ── Pre-made past-paper exam centre ─────────────────────────────── */
.exam-lobby h2 { margin-bottom:.35rem; }
.exam-year-block { margin-top:1.4rem; }
.exam-year-title { color:#d9c875; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; border-bottom:1px solid rgba(212,175,55,.22); padding-bottom:.4rem; }
.exam-session-row { display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:.8rem .9rem; align-items:center; padding:.7rem 0; border-bottom:1px dashed rgba(27,56,82,.7); }
.exam-session-name b { display:block; font-family:'Poppins',sans-serif; font-weight:600; font-size:.92rem; }
.exam-badges { display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.3rem; }
.exam-attempt-badge { display:inline-block; padding:.16rem .5rem; border-radius:999px; background:rgba(139,214,177,.12); border:1px solid rgba(139,214,177,.32); color:#8bd6b1; font:700 .58rem 'Space Mono',monospace; white-space:nowrap; }
.exam-paper-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:.55rem; }
.exam-paper-btn { position:relative; display:grid; gap:.14rem; justify-items:start; text-align:left; min-height:74px; padding:.6rem .68rem; border:1px solid rgba(84,169,220,.28); border-radius:13px; background:linear-gradient(160deg,rgba(13,30,49,.95),rgba(9,20,34,.9)); color:#dcebf5; cursor:pointer; transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease; }
.exam-paper-btn:hover,.exam-paper-btn:focus-visible { transform:translateY(-2px); border-color:rgba(212,175,55,.55); box-shadow:0 10px 24px -16px rgba(212,175,55,.5); outline:none; }
.exam-paper-btn b { font:700 .95rem 'Poppins',sans-serif; color:#f2e9d8; }
.exam-paper-btn .mono { font:700 .62rem 'Space Mono',monospace; color:#54a9dc; letter-spacing:.06em; }
.exam-paper-btn span:not(.mono) { font:500 .62rem 'Poppins',sans-serif; color:#93aabb; }
.exam-chip { display:inline-block; margin-top:.22rem; padding:.1rem .42rem; border-radius:999px; font:700 .54rem 'Space Mono',monospace; letter-spacing:.03em; }
.exam-chip.static { background:rgba(139,214,177,.14); color:#8bd6b1; border:1px solid rgba(139,214,177,.3); }
.exam-chip.ai { background:rgba(212,175,55,.13); color:#e6cf87; border:1px solid rgba(212,175,55,.34); }
.exam-disclaimer { margin-top:1.1rem; opacity:.75; }
.exam-side h3 { margin:.2rem 0 .6rem; }
.mz-note.small { font-size:.66rem; }

.exam-runner-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-start; gap:.9rem; margin-bottom:.9rem; }
.exam-timer-wrap { display:grid; justify-items:end; gap:.5rem; }
.exam-timer { display:inline-block; min-width:118px; text-align:center; padding:.42rem .8rem; border:1px solid rgba(84,169,220,.4); border-radius:12px; background:rgba(9,20,34,.85); color:#eaf4fb; font:700 1.25rem/1.1 'Space Mono',monospace; letter-spacing:.08em; }
.exam-timer.urgent { border-color:#e9a29e; color:#ffb3ad; animation:examPulse 1.1s ease-in-out infinite; }
@keyframes examPulse { 0%,100%{box-shadow:0 0 0 0 rgba(233,162,158,.35);} 50%{box-shadow:0 0 0 7px rgba(233,162,158,0);} }
.exam-paused-box { border-left-color:#d4af37; }
.exam-intro { color:#b8c9d6; font-style:italic; margin:.2rem 0 .7rem; }
.exam-part { margin:.9rem 0; }
.exam-part-prompt { margin:.25rem 0 .45rem; color:#dbe7ef; line-height:1.5; }
textarea.typing-answer { width:100%; min-height:96px; resize:vertical; }
.exam-nav-card { align-self:start; position:sticky; top:1rem; }
.exam-nav-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(38px,1fr)); gap:.34rem; margin:.6rem 0; max-height:46vh; overflow:auto; }
.exam-nav-cell { min-height:36px; border:1px solid rgba(84,169,220,.25); border-radius:9px; background:rgba(9,20,34,.8); color:#9db3c1; font:700 .68rem 'Space Mono',monospace; cursor:pointer; transition:all .15s ease; }
.exam-nav-cell:hover { border-color:#54a9dc; color:#eaf4fb; }
.exam-nav-cell.answered { background:rgba(139,214,177,.16); border-color:rgba(139,214,177,.45); color:#8bd6b1; }
.exam-nav-cell.flagged { border-color:rgba(212,175,55,.65); color:#e6cf87; }
.exam-nav-cell.current { outline:2px solid #d4af37; outline-offset:1px; color:#f2e9d8; }
.ws-btn.ghost.sm { min-height:28px; padding:.2rem .6rem; font-size:.66rem; }

.exam-marking { text-align:center; padding:3rem 1.5rem; }
.exam-marking-orb { width:64px; height:64px; margin:1.6rem auto 0; border-radius:50%; border:4px solid rgba(212,175,55,.2); border-top-color:#d4af37; animation:examSpin 1s linear infinite; }
@keyframes examSpin { to { transform:rotate(360deg); } }

.exam-report .report-hero { margin-bottom:1rem; }
.grade-chip { display:inline-block; padding:.3rem .8rem; margin-right:.5rem; border-radius:11px; background:linear-gradient(140deg,#d4af37,#8a6d1f); color:#10131a; font:800 .95rem 'Poppins',sans-serif; letter-spacing:.04em; vertical-align:middle; }
.exam-grade-line { color:#cdd9e2; }
.exam-mode-line { color:#8fa4b9; font-size:.64rem; margin-top:.3rem; }
.exam-report-list { display:grid; gap:.5rem; margin:1rem 0; }
.exam-report-row { border:1px solid rgba(27,56,82,.9); border-radius:13px; background:rgba(9,19,32,.75); overflow:hidden; }
.exam-report-row summary { display:flex; align-items:center; gap:.7rem; padding:.7rem .85rem; cursor:pointer; list-style:none; font:600 .8rem 'Poppins',sans-serif; color:#dcebf5; }
.exam-report-row summary::-webkit-details-marker { display:none; }
.exam-report-row summary:hover { background:rgba(84,169,220,.07); }
.exam-q-num { color:#d4af37; }
.exam-q-topic { flex:1; color:#9db3c1; font-weight:500; font-size:.72rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exam-verdict { padding:.14rem .55rem; border-radius:999px; font:800 .7rem 'Space Mono',monospace; }
.exam-verdict.good { background:rgba(139,214,177,.15); color:#8bd6b1; }
.exam-verdict.partial { background:rgba(212,175,55,.15); color:#e6cf87; }
.exam-verdict.bad { background:rgba(233,162,158,.15); color:#e9a29e; }
.exam-report-detail { border-top:1px solid rgba(27,56,82,.9); padding:.9rem; display:grid; gap:.55rem; }
.exam-prompt-review { font-weight:600; color:#eaf4fb; }
.exam-option-row { display:flex; align-items:center; gap:.6rem; padding:.45rem .6rem; border:1px solid transparent; border-radius:9px; }
.exam-option-row.good { border-color:rgba(139,214,177,.4); background:rgba(139,214,177,.07); }
.exam-option-row.bad { border-color:rgba(233,162,158,.4); background:rgba(233,162,158,.06); }
.exam-option-row em { margin-left:auto; font:700 .58rem 'Space Mono',monospace; color:#93aabb; text-transform:uppercase; letter-spacing:.06em; }
.ms-note { color:#8fa4b9; font-size:.68rem; }
.exam-part-report { padding:.6rem .7rem; border:1px dashed rgba(27,56,82,.95); border-radius:11px; }
.exam-part-report p { margin:.3rem 0; color:#c3d2dc; font-size:.78rem; line-height:1.5; }
.your-answer { color:#9db3c1 !important; font-style:italic; }
.missed-points ul,.found-points ul { margin:.3rem 0 .1rem 1.1rem; padding:0; }
.missed-points li { color:#e9a29e; list-style:square; font-size:.72rem; line-height:1.45; }
.found-points li { color:#8bd6b1; list-style:square; font-size:.72rem; line-height:1.45; }
@media (max-width:900px){ .exam-session-row { grid-template-columns:1fr; } .exam-timer-wrap { justify-items:stretch; width:100%; } .exam-timer { width:100%; } }
