.platform-panel:focus{outline:none}.platform-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0;display:grid}.platform-stat{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:3px;min-width:0;padding:8px 10px;display:grid}.platform-stat dt{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.68rem;font-weight:800}.platform-stat dd{overflow-wrap:anywhere;min-width:0;color:var(--ink);margin:0;font-size:.98rem;font-weight:900;line-height:1.2}.platform-belt{align-items:center;gap:6px;display:inline-flex}.platform-belt-swatch{border:1px solid color-mix(in srgb, var(--ink) 35%, transparent);border-radius:2px;flex:none;width:18px;height:8px}.platform-wide-button{width:100%}.modal-panel p.platform-muted{color:var(--muted)}.modal-panel p.platform-soon{color:var(--accent-orange-text)}.modal-panel p.platform-loading{text-align:center;padding:18px 0}.platform-week-bars{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:6px;height:92px;display:grid}.platform-week-bar{grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:4px;height:100%;display:grid}.platform-week-fill{background:linear-gradient(180deg, var(--nus-orange), color-mix(in srgb, var(--nus-orange) 55%, var(--nus-blue)));border-radius:4px 4px 2px 2px;align-self:end;width:100%;min-height:3px}.platform-week-bar small{color:var(--muted);font-size:.66rem;font-weight:800}.platform-side-card .secondary-button{min-height:36px}.platform-nudge{border:1px solid var(--line);background:var(--soft);text-align:left;border-radius:8px;gap:6px;width:min(100%,420px);padding:8px 10px;display:grid}.platform-nudge p{color:var(--ink);flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0;font-size:.8rem;font-weight:600;line-height:1.35;display:flex}.platform-nudge svg{color:var(--nus-orange);flex:none}.platform-link{color:var(--nus-blue);cursor:pointer;text-underline-offset:2px;background:0 0;padding:0;font-weight:900;text-decoration:underline}.platform-crosslink .platform-link{align-items:center;min-height:44px;display:inline-flex}.modal-panel p.platform-crosslink{border-top:1px solid var(--line);color:var(--muted);align-items:flex-start;gap:8px;margin:12px 0 0;padding-top:10px;font-size:.82rem;font-weight:600;line-height:1.35;display:flex}.platform-crosslink svg{width:18px;height:18px;color:var(--nus-orange);flex:none}.opening-notice{left:50%;bottom:max(16px, env(safe-area-inset-bottom));z-index:60;border:1px solid var(--line);background:var(--panel);width:max-content;max-width:min(560px,100vw - 32px);box-shadow:var(--shadow);color:var(--ink);border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-size:.9rem;font-weight:600;line-height:1.35;display:flex;position:fixed;transform:translate(-50%)}.opening-notice.is-loading{animation:.16s ease-out .35s both opening-notice-in}.opening-notice.is-error{border-color:var(--bad);flex-wrap:wrap}.opening-notice-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.opening-notice-actions .secondary-button{min-height:36px;padding:6px 12px}.opening-notice-actions .icon-button{width:36px;height:36px}.opening-spinner{border:2px solid var(--line);border-top-color:var(--nus-blue);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite opening-spin}.lesson-node[aria-busy=true],.primary-button[aria-busy=true]{cursor:progress;animation:1.1s ease-in-out .25s infinite opening-pulse}.review-loading-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@keyframes opening-notice-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@keyframes opening-spin{to{transform:rotate(360deg)}}@keyframes opening-pulse{50%{opacity:.62}}@media (prefers-reduced-motion:reduce){.opening-notice.is-loading,.opening-spinner,.lesson-node[aria-busy=true],.primary-button[aria-busy=true]{animation:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--nus-blue:#003d7c;--nus-orange:#ef7c00;--accent-orange-text:#9a4f00;--ink:#071421;--muted:#607085;--page:#eef3f8;--panel:#fff;--soft:#f6f9fc;--line:#d6e0eb;--good:#12805c;--good-soft:#e8f8ef;--bad:#b42318;--bad-soft:#fff1f0;--heart:#e11d48;--amber:#9a5a00;--amber-soft:#fff4e6;--shadow:0 18px 48px #001e4029;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--nus-blue:#8ec5ff;--nus-orange:#ffad4d;--accent-orange-text:#ffbd59;--ink:#eef6ff;--muted:#b6c4d8;--page:#071421;--panel:#101e30;--soft:#16283e;--line:#2c4360;--good:#52d58a;--good-soft:#0d2b20;--bad:#ff8a9b;--bad-soft:#351818;--heart:#ff8a9b;--amber:#ffbd59;--amber-soft:#33200e;--shadow:0 18px 48px #00000075}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:linear-gradient(90deg, #003d7c09 1px, transparent 1px), linear-gradient(0deg, #003d7c09 1px, transparent 1px), linear-gradient(150deg, var(--page), #fff 52%, #e8f0f7);min-width:320px;color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased;background-size:28px 28px,28px 28px,auto;overflow:hidden}html[data-theme=dark] body{background:linear-gradient(90deg,#ffffff06 1px,#0000 1px) 0 0/28px 28px,linear-gradient(0deg,#ffffff06 1px,#0000 1px) 0 0/28px 28px,linear-gradient(150deg,#06111f,#0b1626 54%,#071421)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0}a{color:var(--nus-blue);font-weight:800}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #ef7c00b8}svg{stroke-width:2.25px;width:1.05rem;height:1.05rem}.local-lucide-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.app-shell{width:100%;min-height:100dvh;padding:max(4px, env(safe-area-inset-top,0px)) max(4px, env(safe-area-inset-right,0px)) max(4px, env(safe-area-inset-bottom,0px)) max(4px, env(safe-area-inset-left,0px));place-items:center;display:grid;overflow:hidden}.game-card{border:2px solid var(--nus-blue);background:var(--panel);width:min(100%,440px);height:calc(100dvh - 8px);min-height:0;box-shadow:var(--shadow);border-radius:8px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}@media (width>=600px){.app-shell{padding:max(12px, env(safe-area-inset-top,0px)) max(12px, env(safe-area-inset-right,0px)) max(12px, env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px))}.game-card{width:min(100vw - 24px,1800px);height:calc(100dvh - 24px)}}.topbar{border-bottom:1px solid var(--line);background:var(--panel);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:58px;padding:7px 9px;display:grid;overflow:hidden}.brand-title,.status-cluster,.daily-strip,.summary-actions,.modal-header,.focus-head,.lesson-header,.dojo-prompt{align-items:center;display:flex}.brand-title{min-width:0;color:var(--nus-blue);cursor:pointer;text-align:left;background:0 0;gap:5px;padding:0;overflow:hidden}.brand-title img{flex:none;width:50px;height:50px}.brand-copy{gap:1px;min-width:0;line-height:1;display:grid}.brand-copy strong{color:var(--nus-blue);letter-spacing:0;text-overflow:clip;white-space:nowrap;font-size:1.26rem;font-weight:900;line-height:1.16;display:block;overflow:visible}.brand-byline{color:var(--accent-orange-text);letter-spacing:0;text-overflow:clip;white-space:nowrap;font-size:.78rem;font-weight:900;line-height:1.2;display:block;overflow:visible}.status-cluster{gap:5px}.status-pill,.metric{border:1px solid var(--line);background:var(--soft);align-items:center;display:inline-flex}.status-pill{min-height:32px;color:var(--nus-blue);white-space:nowrap;border-radius:999px;gap:4px;padding:0 8px;font-size:.76rem;font-weight:850;line-height:1}.status-pill.xp{color:var(--amber)}.status-pill.hearts{color:var(--heart)}.icon-button{border:1px solid var(--line);background:var(--panel);width:36px;height:36px;color:var(--nus-blue);cursor:pointer;border-radius:8px;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.icon-button:before{content:"";position:absolute;inset:-4px}.icon-button:hover{background:var(--amber-soft);color:var(--nus-blue);border-color:#ef7c008c}.icon-button[aria-pressed=true]{background:var(--amber-soft);color:var(--accent-orange-text);border-color:#ef7c0094}.icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;width:17px;height:17px}.screen-slot{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;scroll-padding-top:10px;overflow:hidden auto}.path-screen,.lesson-screen,.summary-screen{width:100%;min-height:100%}.path-screen{flex-direction:column;gap:10px;height:auto;padding:10px;display:flex;overflow:visible}.dojo-hero{border:1px solid color-mix(in srgb, var(--nus-blue) 24%, var(--line));border-left:6px solid var(--nus-blue);background:linear-gradient(135deg, color-mix(in srgb, var(--nus-blue) 9%, transparent), transparent 54%), linear-gradient(90deg, color-mix(in srgb, var(--panel) 88%, var(--soft)), var(--panel));border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:96px;padding:10px 12px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #003d7c14}.hero-copy{gap:2px;min-width:0;display:grid}.hero-copy p,.summary-kicker,.lesson-title span,.dojo-prompt small{color:var(--accent-orange-text);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.73rem;font-weight:900}.hero-copy h1{color:var(--nus-blue);letter-spacing:0;margin:0;font-size:clamp(1.78rem,4.4dvh,2.55rem);font-weight:900;line-height:.98}.hero-copy span{color:var(--muted);font-size:.82rem;font-weight:500}.hero-action-row{grid-column:1/-1;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.hero-action-row>:nth-child(-n+3){grid-column:span 4}.hero-action-row>:nth-child(n+4){grid-column:span 3}.hero-action-row .hero-bank-button{text-overflow:ellipsis;text-align:center;white-space:normal;justify-content:center;gap:4px;width:100%;min-width:0;padding:3px 4px;line-height:1.1;overflow:hidden}.hero-action-row .hero-bank-button svg{flex:none}.hero-action-row.with-league>:nth-child(-n+4){grid-column:span 3}.hero-label-keep{white-space:nowrap}@media (width<=440px){.hero-action-row .hero-bank-button svg{display:none}}@media (width<=380px){.hero-action-row .hero-bank-button{font-size:.72rem}.hero-action-row.with-league .hero-bank-button{padding-inline:4px}.hero-action-row .hero-bank-button.hero-wall-button{letter-spacing:-.02em;padding-inline:2px}.hero-action-row.with-league .hero-bank-button svg{display:none}}@media (width>=780px){.hero-copy{grid-area:1/1}.hero-action-row{flex-wrap:wrap;grid-area:2/1;margin-top:6px;display:flex}.hero-action-row .hero-bank-button,.hero-action-row.with-league .hero-bank-button{white-space:nowrap;gap:6px;width:fit-content;padding:0 10px}.hero-mascot-stack{grid-area:1/2/span 2}}.hero-bank-button{border:1px solid color-mix(in srgb, var(--nus-orange) 62%, #000);border-bottom:3px solid color-mix(in srgb, var(--nus-orange) 62%, #6b2c00);background:var(--nus-orange);color:#071421;cursor:pointer;letter-spacing:0;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;width:fit-content;min-height:32px;padding:0 10px;font-size:.76rem;font-weight:900;display:inline-flex}.hero-bank-button.ghost{border-color:color-mix(in srgb, var(--nus-blue) 48%, var(--line));border-bottom-color:color-mix(in srgb, var(--nus-blue) 58%, #001f40);background:var(--panel);color:var(--nus-blue)}.hero-mascot-stack{place-self:center end;justify-items:end;gap:4px;display:grid}.hero-mascot-button{border:1px solid color-mix(in srgb, var(--nus-blue) 24%, transparent);background:color-mix(in srgb, var(--soft) 72%, var(--panel));cursor:pointer;border-radius:8px;justify-self:end;place-items:center;width:92px;height:92px;margin-right:0;padding:0;display:grid;position:relative}.hero-mascot{filter:drop-shadow(0 10px 18px #003d7c29);width:92px;height:92px}.curriculum-ref-toggle{border:1px solid var(--line);border-bottom:2px solid color-mix(in srgb, var(--line) 72%, #667085);background:color-mix(in srgb, var(--panel) 92%, white);width:fit-content;max-width:92px;min-height:24px;color:var(--muted);cursor:pointer;letter-spacing:0;white-space:nowrap;border-radius:8px;justify-content:flex-end;align-items:center;gap:4px;padding:2px 5px;font-size:.7rem;font-weight:900;line-height:1;display:inline-flex}.curriculum-ref-toggle:hover{border-color:color-mix(in srgb, var(--nus-blue) 36%, var(--line));color:var(--nus-blue)}.curriculum-ref-toggle.is-on{border-color:color-mix(in srgb, var(--nus-orange) 42%, var(--line));background:var(--amber-soft);color:var(--accent-orange-text)}.curriculum-switch{background:color-mix(in srgb, var(--line) 70%, var(--panel));border-radius:999px;flex:none;align-items:center;width:24px;height:14px;padding:2px;display:inline-flex;position:relative}.curriculum-switch span{background:#fff;border-radius:999px;width:10px;height:10px;transition:transform .18s;display:block;transform:translate(0);box-shadow:0 1px 2px #10182833}.curriculum-ref-toggle.is-on .curriculum-switch{background:var(--nus-blue)}.curriculum-ref-toggle.is-on .curriculum-switch span{transform:translate(10px)}.educator-review-toggle{z-index:2;color:#0000;cursor:default;background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;width:18px;height:18px;padding:0;font-size:.72rem;font-weight:800;line-height:1;display:grid;position:absolute;top:4px;right:4px}.educator-review-toggle.is-active{border-color:color-mix(in srgb, var(--good) 58%, var(--line));background:var(--good-soft);width:24px;height:24px;color:var(--good);cursor:pointer}.educator-review-toggle.is-active:hover{border-color:var(--good);transform:translateY(-1px)}.daily-strip{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:6px;display:grid}.active-session-card{--session-color:var(--nus-blue);--session-soft:var(--soft);z-index:5;border:2px solid color-mix(in srgb, var(--session-color) 38%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--session-color) 10%, transparent), transparent 58%), var(--panel);box-shadow:0 10px 26px color-mix(in srgb, var(--session-color) 14%, transparent);border-bottom-width:5px;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid;position:sticky;top:0}.active-session-icon{background:var(--session-color);color:#fff;border-radius:8px;place-items:center;width:42px;height:42px;display:grid}.active-session-copy{gap:3px;min-width:0;display:grid}.active-session-copy small{color:var(--accent-orange-text);text-transform:uppercase;font-size:.68rem;font-weight:900}.active-session-copy strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1rem;font-weight:900;line-height:1.2;display:-webkit-box;overflow:hidden}.active-session-copy span{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.74rem;font-weight:500;display:-webkit-box;overflow:hidden}.active-session-track{background:color-mix(in srgb, var(--line) 68%, var(--panel));border-radius:999px;height:7px;overflow:hidden}.active-session-track span{border-radius:inherit;background:var(--session-color);height:100%;display:block}.active-session-card .primary-button{grid-column:1/-1;min-height:34px;font-size:.82rem}.pathway-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.pathway-option{border:1px solid var(--line);border-bottom:4px solid color-mix(in srgb, var(--line) 72%, #667085);background:var(--panel);min-width:0;color:var(--ink);cursor:pointer;text-align:left;border-radius:8px;gap:3px;padding:8px;display:grid}.pathway-option.active{border-color:color-mix(in srgb, var(--nus-orange) 66%, var(--line));border-bottom-color:var(--nus-orange);background:color-mix(in srgb, var(--amber-soft) 55%, var(--panel))}.pathway-option span{color:var(--accent-orange-text);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.7rem;font-weight:800;overflow:hidden}.pathway-option strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;font-weight:800;line-height:1.18;display:-webkit-box;overflow:hidden}.pathway-option small{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.72rem;font-weight:500;line-height:1.24;display:-webkit-box;overflow:hidden}.metric{min-width:0;min-height:48px;color:var(--nus-blue);border-radius:8px;justify-content:center;gap:7px;padding:7px}.metric span{gap:1px;min-width:0;display:grid}.metric small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:800;overflow:hidden}.metric strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:900;overflow:hidden}.main-grid{gap:10px;min-height:0;display:grid;overflow:visible}@media (width>=780px){.active-session-card{grid-template-columns:auto minmax(0,1fr) auto}.active-session-card .primary-button{grid-column:auto;align-self:stretch;min-width:132px}.main-grid{grid-template-columns:minmax(0,1fr) 230px}.path-list{max-height:var(--path-below-current-height,min(620px, calc(100dvh - 360px)))}}.path-list{min-height:0;max-height:var(--path-below-current-height,clamp(320px, 54dvh, 650px));overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid color-mix(in srgb, var(--line) 82%, var(--panel));background:color-mix(in srgb, var(--soft) 58%, var(--panel));border-radius:8px;align-content:start;gap:10px;padding:9px 7px 12px;display:grid;overflow:hidden auto}.path-col-wrap{gap:10px;display:grid}.unit-band{content-visibility:auto;contain-intrinsic-block-size:auto var(--hall-height,650px);gap:8px;display:grid}.unit-band.locked .lesson-road{filter:grayscale(.42);opacity:.5}.unit-banner{border:1px solid color-mix(in srgb, var(--nus-blue) 22%, var(--line));border-left:5px solid var(--nus-blue);background:linear-gradient(135deg, color-mix(in srgb, var(--nus-blue) 8%, transparent), transparent 60%), var(--panel);color:var(--ink);border-radius:8px;gap:1px;padding:9px 42px 9px 10px;display:grid;position:relative}.unit-banner.locked{border-color:color-mix(in srgb, var(--line) 82%, var(--panel));border-left-color:color-mix(in srgb, var(--muted) 55%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--muted) 8%, transparent), transparent 62%), color-mix(in srgb, var(--soft) 72%, var(--panel))}.unit-banner.locked>:not(.unit-banner-lock){opacity:.54}.unit-banner span{color:var(--accent-orange-text);font-size:.68rem;font-weight:900}.unit-banner strong{font-size:1.04rem;font-weight:900}.unit-banner small{color:var(--muted);font-size:.72rem;font-weight:500;line-height:1.25}.unit-banner .unit-banner-lock{border:1px solid color-mix(in srgb, var(--muted) 42%, var(--line));background:color-mix(in srgb, var(--panel) 85%, var(--soft));width:28px;height:28px;color:var(--muted);opacity:1;border-radius:8px;place-items:center;display:grid;position:absolute;top:8px;right:9px}.unit-banner .unit-banner-lock svg{width:16px;height:16px}.belt-swatch{border:1px solid color-mix(in srgb, var(--ink) 38%, transparent);background:var(--belt,#f4f1e8);border-radius:3px;flex:none;width:20px;height:11px;box-shadow:inset 0 -2px #00000024}.belt-stripes,.metric .belt-stripes{gap:2px;margin-top:2px;display:flex}.belt-stripes span{width:9px;height:4px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--muted) 80%, transparent);background:0 0;border-radius:1px}.belt-stripes span.on{background:var(--accent-orange-text);box-shadow:none}@media (forced-colors:active){.belt-stripes span{box-shadow:none;border:1px solid canvastext}.belt-stripes span.on{forced-color-adjust:none;background:canvastext}.belt-swatch{forced-color-adjust:none}}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.metric.belt-metric{align-items:center}@media (width<=447px){.daily-strip .metric>.belt-swatch{display:none}}.stage-divider{border:1px solid color-mix(in srgb, var(--nus-blue) 26%, var(--line));border-left:5px solid var(--belt);background:linear-gradient(90deg, color-mix(in srgb, var(--belt) 22%, transparent) 0 44px, transparent 44px), var(--panel);color:var(--ink);border-radius:8px;grid-column:1/-1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:4px;padding:9px 11px 9px 8px;display:grid}.path-col-wrap>.stage-divider:first-child{margin-top:0}.stage-divider .belt-swatch{width:28px;height:14px}.stage-divider-copy{min-width:0;font-size:inherit;font-weight:inherit;gap:1px;margin:0;display:grid}.stage-divider-copy small{color:var(--accent-orange-text);text-transform:uppercase;font-size:.68rem;font-weight:900}.stage-divider-copy strong{font-size:1rem;font-weight:900}.stage-divider-copy span{color:var(--muted);font-size:.74rem;line-height:1.25}.stage-divider-status{color:var(--muted);white-space:nowrap;align-items:center;gap:3px;font-size:.72rem;font-style:normal;font-weight:800;display:inline-flex}.stage-divider.earned .stage-divider-status{color:var(--good)}.stage-divider-status svg{width:14px;height:14px}.stage-divider.current{border-width:2px 2px 2px 5px;border-color:color-mix(in srgb, var(--nus-orange) 70%, var(--line));border-left-color:var(--belt)}.stage-divider.current .stage-divider-status{color:var(--accent-orange-text)}.pathway-option .pathway-progress{min-width:0;color:var(--ink);align-items:center;gap:5px;font-size:.7rem;font-style:normal;font-weight:800;display:flex}.pathway-option .pathway-progress>span:not(.belt-swatch){min-width:0;color:var(--ink);font-size:inherit;text-overflow:ellipsis;text-transform:none;white-space:nowrap;overflow:hidden}.pathway-option .pathway-progress .belt-swatch{width:16px;height:9px}.lesson-road{gap:8px;padding-inline:8px;display:grid}.lesson-node{--node-color:var(--nus-blue);--node-soft:var(--soft);border:2px solid color-mix(in srgb, var(--node-color) 38%, var(--line));background:var(--panel);min-height:62px;color:var(--ink);cursor:pointer;text-align:left;border-bottom-width:5px;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 11px;display:grid;position:relative}.lesson-node:nth-child(2n){margin-left:min(42px,12%)}.lesson-node:nth-child(odd){margin-right:min(42px,12%)}.lesson-node.done{background:color-mix(in srgb, var(--node-soft) 72%, var(--panel))}.lesson-node.current{border-color:color-mix(in srgb, var(--nus-orange) 72%, var(--node-color));box-shadow:0 10px 24px color-mix(in srgb, var(--node-color) 18%, transparent)}.lesson-node.current:after{content:"Now";border:1px solid color-mix(in srgb, var(--nus-orange) 42%, var(--line));background:var(--amber-soft);color:var(--accent-orange-text);text-transform:uppercase;border-radius:999px;padding:3px 7px;font-size:.7rem;font-weight:800;position:absolute;top:6px;right:8px}.lesson-node.readiness-node{border-style:dashed;border-color:color-mix(in srgb, var(--nus-orange) 58%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--amber-soft) 68%, transparent), transparent 72%), var(--panel)}.lesson-node.readiness-node.done{background:color-mix(in srgb, var(--good-soft) 54%, var(--panel));border-style:solid}.lesson-node.locked{cursor:not-allowed;filter:grayscale(.45);opacity:.62}.node-icon{background:var(--node-color);color:#fff;border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.readiness-icon{background:var(--nus-orange);color:#071421}.node-copy{gap:2px;min-width:0;display:grid}.node-copy strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.96rem;font-weight:900;line-height:1.18;display:-webkit-box;overflow:hidden}.node-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:800;overflow:hidden}.perfect-star{color:#f59e0b}.side-panel{min-height:0;max-height:var(--path-below-current-height,min(620px, calc(100dvh - 360px)));align-content:start;gap:10px;display:none;overflow:auto}@media (width>=780px){.side-panel{display:grid;position:sticky;top:0}}.focus-block,.quest-block,.source-block{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:10px;padding:10px;display:grid}.focus-head{gap:8px}.focus-head>svg,.source-block>svg{color:var(--nus-orange)}.focus-head span{gap:2px;min-width:0;display:grid}.focus-head strong{color:var(--ink);font-size:.9rem;font-weight:900}.focus-head small,.source-block p{color:var(--muted);margin:0;font-size:.72rem;font-weight:500;line-height:1.28}.bank-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.visual-mini-list,.modal-visual-list{gap:5px;display:grid}.visual-mini-list span,.modal-visual-list span{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:6px 7px;font-size:.68rem;font-weight:820;line-height:1.22}.modal-visual-list{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-mini-stats span{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:1px;min-width:0;padding:7px;display:grid}.bank-mini-stats strong{color:var(--ink);font-size:1rem;font-weight:800}.bank-mini-stats small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:800;overflow:hidden}.coach-block{border-color:color-mix(in srgb, var(--nus-orange) 42%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--nus-orange) 14%, transparent), transparent 62%), var(--soft)}.coach-pair,.boss-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.coach-pair span,.album-row,.skill-row,.analytics-list span{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:3px;min-width:0;padding:7px;display:grid}.coach-pair small,.album-row small,.skill-row small{color:var(--muted);font-size:.72rem;font-weight:800;line-height:1.2}.coach-pair strong,.album-row strong,.skill-row strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:800;overflow:hidden}.skill-profile-list,.album-panel,.analytics-list{gap:6px;display:grid}.skill-row,.album-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.skill-row>span,.album-row>span{gap:1px;min-width:0;display:grid}.skill-row>b,.album-row>b{color:var(--nus-blue);font-size:.74rem;font-weight:800}.skill-track{background:color-mix(in srgb, var(--line) 72%, var(--panel));border-radius:999px;grid-column:1/-1;height:7px;overflow:hidden}.skill-track span{border-radius:inherit;background:linear-gradient(90deg, var(--nus-blue), var(--nus-orange));height:100%;display:block}.daily-dojo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.daily-session-button{border:1px solid var(--line);border-bottom:3px solid color-mix(in srgb, var(--line) 75%, #667085);background:var(--panel);min-width:0;color:var(--nus-blue);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:6px;padding:7px;display:flex}.daily-session-button svg{width:16px;height:16px;color:var(--nus-orange);flex:none}.daily-session-button span{gap:1px;min-width:0;display:grid}.daily-session-button strong{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:800;overflow:hidden}.daily-session-button small,.analytics-list span{color:var(--muted);font-size:.72rem;font-weight:820;line-height:1.2}.map-repair-chain{flex-wrap:wrap;gap:6px;display:flex}.map-repair-chain span{border:1px solid color-mix(in srgb, var(--lesson-color) 26%, var(--line));background:var(--panel);color:var(--ink);border-radius:999px;align-items:center;gap:6px;padding:5px 8px;font-size:.68rem;font-weight:850;line-height:1.18;display:inline-flex}.map-repair-chain b{color:var(--lesson-color)}.quest-track,.progress-track{background:color-mix(in srgb, var(--line) 70%, var(--panel));border-radius:999px;height:9px;overflow:hidden}.quest-track span,.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--nus-orange), #facc15);height:100%;display:block}.primary-button,.secondary-button{cursor:pointer;letter-spacing:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 14px;font-weight:900;display:inline-flex}.primary-button{border:1px solid color-mix(in srgb, var(--nus-orange) 70%, #000);border-bottom:4px solid color-mix(in srgb, var(--nus-orange) 70%, #6b2c00);background:var(--nus-orange);color:#071421}.primary-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button{border:1px solid var(--line);border-bottom:4px solid color-mix(in srgb, var(--line) 75%, #667085);background:var(--panel);color:var(--nus-blue)}.secondary-button:disabled{cursor:not-allowed;opacity:.5}.secondary-button.danger{color:var(--bad)}.lesson-screen{grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.lesson-header{border-bottom:1px solid var(--line);background:var(--panel);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.lesson-title{gap:1px;min-width:0;display:grid}.lesson-title strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.95rem;font-weight:900;line-height:1.2;display:-webkit-box;overflow:hidden}.lesson-header .progress-track{grid-column:1/-1}.flashcard-stage,.quiz-stage{align-content:safe center;gap:14px;min-height:0;padding:clamp(12px,2.2dvh,22px);display:grid;overflow:auto}.bank-stage{align-content:start}.visual-lab-screen .quiz-stage{gap:8px;padding:8px 14px}.kata-figure{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);border:2px solid color-mix(in srgb, var(--lesson-color) 34%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--lesson-color) 10%, transparent), transparent 58%), var(--panel);border-bottom-width:5px;border-radius:10px;gap:6px;margin:0;padding:8px;display:grid;position:relative;overflow:hidden}.kata-figure-badge{background:color-mix(in srgb, var(--lesson-color) 16%, var(--panel));color:var(--lesson-color);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;justify-self:start;align-items:center;gap:4px;padding:3px 8px;font-size:.7rem;font-weight:800;display:inline-flex}.kata-figure-badge svg{width:13px;height:13px}.kata-figure-asset{object-fit:contain;background:var(--panel);border-radius:6px;width:100%;max-height:clamp(150px,26dvh,240px);display:block}.kata-figure figcaption{color:var(--muted);font-size:.74rem;line-height:1.35}.kata-figure-credit{color:var(--muted);font-size:.62rem;line-height:1.3}.kata-figure-credit a{color:var(--nus-blue);font-weight:700}.figure-zoom-trigger{width:100%;min-width:0;color:inherit;cursor:zoom-in;background:0 0;border-radius:6px;margin:0;padding:0;display:block;position:relative}.visual-figure-converted .figure-zoom-trigger{height:100%}.figure-zoom-hint{color:#fff;pointer-events:none;background:#071421b8;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.68rem;font-weight:800;display:inline-flex;position:absolute;bottom:6px;right:6px}.figure-zoom-hint svg{width:12px;height:12px}.figure-viewer{z-index:100;background:var(--page);color:var(--ink);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.figure-viewer-bar{border-bottom:1px solid var(--line);background:var(--panel);justify-content:flex-end;align-items:center;gap:6px;padding:8px 10px;display:flex}.figure-viewer-zoom{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:auto;font-size:.8rem;font-weight:800}.figure-viewer-bar button{border:2px solid var(--line);background:var(--panel);min-width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:10px;place-items:center;padding:0 10px;font-weight:800;display:inline-grid}.figure-viewer-bar button:disabled{opacity:.45;cursor:default}.figure-viewer-bar button svg{width:20px;height:20px}.figure-viewer-bar .figure-viewer-close{border-color:var(--nus-blue);background:var(--nus-blue);color:#fff}html[data-theme=dark] .figure-viewer-bar .figure-viewer-close{color:#071421}.figure-viewer:focus{outline:none}.figure-viewer-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:zoom-in;position:relative;overflow:hidden}.figure-viewer-stage.is-zoomed{cursor:grab}.figure-viewer-bar button:focus-visible,.figure-viewer-stage:focus-visible{outline:3px solid var(--nus-orange);outline-offset:-3px}.figure-viewer-stage img{background:var(--panel);max-width:none;max-height:none;box-shadow:var(--shadow);pointer-events:none;-webkit-user-drag:none;border-radius:8px;position:absolute}.figure-viewer-caption{border-top:1px solid var(--line);background:var(--panel);max-height:30dvh;color:var(--muted);padding:10px 14px 12px;font-size:.82rem;line-height:1.4;overflow:auto}.figure-viewer-caption p{margin:0}.figure-viewer-caption .kata-figure-credit{margin-top:4px}.match-instruction{color:var(--muted);margin:0;font-size:.82rem;font-weight:700}.match-targets{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);gap:8px;display:grid}.match-target-row{grid-template-columns:1fr minmax(120px,44%);align-items:center;gap:8px;display:grid}.match-target-text{color:var(--ink);font-size:.84rem;font-weight:700;line-height:1.25}.match-slot{border:2px dashed color-mix(in srgb, var(--lesson-color) 40%, var(--line));background:color-mix(in srgb, var(--lesson-soft) 70%, var(--panel));min-height:44px;color:var(--muted);cursor:pointer;border-radius:8px;padding:6px 8px;font-size:.8rem;font-weight:800;transition:border-color .12s,background .12s}.match-slot.filled{border-style:solid;border-color:var(--lesson-color);background:color-mix(in srgb, var(--lesson-color) 12%, var(--panel));color:var(--ink)}.match-slot.correct{border-color:var(--good);background:color-mix(in srgb, var(--good) 16%, var(--panel));color:var(--ink)}.match-slot.wrong{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 14%, var(--panel));color:var(--ink)}.match-slot.hover{border-style:solid;border-color:var(--nus-orange);background:color-mix(in srgb, var(--nus-orange) 18%, var(--panel));color:var(--ink)}.match-labels{flex-wrap:wrap;gap:8px;padding-top:2px;display:flex}.match-chip{border:2px solid color-mix(in srgb, var(--nus-blue) 32%, var(--line));background:var(--panel);color:var(--ink);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-bottom-width:4px;border-radius:999px;padding:8px 14px;font-size:.82rem;font-weight:800}.match-chip.selected{border-color:var(--nus-orange);background:color-mix(in srgb, var(--nus-orange) 14%, var(--panel))}.match-chip.dragging{opacity:.4}.match-chip:active{cursor:grabbing}.match-drag-ghost{z-index:60;border:2px solid var(--lesson-color,var(--nus-blue));background:var(--panel);color:var(--ink);pointer-events:none;white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:.82rem;font-weight:800;position:fixed;transform:translate(-50%,-130%);box-shadow:0 8px 20px #00000038}.match-hint{color:var(--muted);font-size:.78rem;font-weight:700}.order-answer{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);gap:6px;margin:0;padding:0;list-style:none;display:grid}.order-row{border:2px solid color-mix(in srgb, var(--lesson-color) 30%, var(--line));background:color-mix(in srgb, var(--lesson-color) 8%, var(--panel));min-height:44px;color:var(--ink);border-radius:8px;align-items:center;gap:9px;padding:6px 8px 6px 6px;display:flex}.order-row.dragging{opacity:.6;border-style:dashed}.order-row.correct{border-color:var(--good);background:color-mix(in srgb, var(--good) 16%, var(--panel))}.order-row.wrong{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 14%, var(--panel))}.order-handle{width:30px;color:color-mix(in srgb, var(--lesson-color) 70%, var(--muted));cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;align-self:stretch;place-items:center;margin:-6px 0 -6px -2px;font-size:1.05rem;line-height:1;display:grid}.order-handle:active{cursor:grabbing}.order-num{background:color-mix(in srgb, var(--lesson-color) 24%, var(--panel));width:22px;height:22px;color:var(--lesson-color);border-radius:999px;flex:none;place-items:center;font-size:.72rem;font-weight:800;display:grid}.order-step-text{flex:auto;font-size:.82rem;font-weight:700;line-height:1.25}.order-move{flex-direction:column;flex:none;gap:2px;display:flex}.order-move button{border:1px solid color-mix(in srgb, var(--lesson-color) 30%, var(--line));background:var(--panel);width:30px;height:24px;color:var(--lesson-color);cursor:pointer;border-radius:5px;place-items:center;font-size:.72rem;line-height:1;display:grid}.order-move button:disabled{opacity:.4;cursor:default}.order-check{background:var(--nus-orange,#ef7b00);color:#071421;cursor:pointer;border:none;border-radius:8px;justify-self:stretch;width:100%;padding:11px;font-size:.92rem;font-weight:800}.order-check:disabled{opacity:.5;cursor:not-allowed}.categorize-list{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);gap:8px;display:grid}.categorize-row{border:2px solid color-mix(in srgb, var(--lesson-color) 26%, var(--line));background:color-mix(in srgb, var(--lesson-color) 7%, var(--panel));border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:7px 10px;display:flex}.categorize-label{color:var(--ink);flex:40%;font-size:.86rem;font-weight:800}.categorize-options{flex-wrap:wrap;gap:6px;display:flex}.categorize-bin{border:2px solid color-mix(in srgb, var(--lesson-color) 34%, var(--line));background:var(--panel);color:var(--ink);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:800}.categorize-bin.selected{background:color-mix(in srgb, var(--lesson-color) 22%, var(--panel));border-color:var(--lesson-color)}.categorize-bin.correct{border-color:var(--good);background:color-mix(in srgb, var(--good) 18%, var(--panel));color:var(--good)}.categorize-bin.wrong{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 16%, var(--panel));color:var(--bad)}.categorize-bin:disabled{cursor:default}.connect-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;margin-top:10px;display:grid}.connect-from-col{flex-direction:column;gap:8px;display:flex}.connect-from{text-align:left;border:1.5px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink);border-radius:8px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;padding:10px 12px;font-weight:700;display:grid}.connect-from.selected{border-color:var(--lesson-color);background:var(--lesson-soft)}.connect-from.correct{border-color:var(--good);background:color-mix(in srgb, var(--good) 14%, var(--panel))}.connect-from.wrong{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 14%, var(--panel))}.connect-arrow{color:var(--muted);font-weight:800}.connect-to-slot{color:var(--muted);font-weight:700}.connect-from .connect-to-slot:empty:before{content:"link…";color:var(--muted)}.connect-pool{flex-direction:column;align-content:start;gap:8px;display:flex}.connect-chip{border:1.5px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink);border-radius:8px;padding:10px 12px;font-weight:700}.connect-chip.used{opacity:.35;cursor:default}.cloze-input{border:1.5px solid var(--line);background:var(--panel);width:100%;color:var(--ink);border-radius:8px;margin-top:10px;padding:13px 14px;font:700 16px Inter,ui-sans-serif,system-ui,sans-serif}.cloze-input:focus{border-color:var(--nus-blue,#003d7c);box-shadow:0 0 0 3px color-mix(in srgb, var(--nus-blue,#003d7c) 18%, transparent);outline:none}.cloze-input:disabled{opacity:.7}.bank-brief{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);border:2px solid color-mix(in srgb, var(--lesson-color) 36%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--lesson-color) 12%, transparent), transparent 58%), var(--lesson-soft);border-radius:8px;gap:10px;padding:12px;display:grid}.visual-lab-screen .bank-brief{gap:6px;padding:8px 10px}.bank-brief-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.bank-domain{white-space:nowrap;border:1px solid;border-radius:999px;flex:none;padding:5px 8px;font-size:.68rem;font-weight:800}.bank-meta{flex-wrap:wrap;gap:6px;display:flex}.bank-meta span{border:1px solid color-mix(in srgb, var(--lesson-color) 28%, var(--line));background:var(--panel);color:var(--muted);border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:850;line-height:1.2}.dojo-prompt{min-width:0;color:var(--nus-blue);flex:240px;align-items:flex-start;gap:8px}.dojo-prompt span{gap:3px;min-width:0;display:grid}.dojo-prompt strong{color:var(--ink);font-size:clamp(1.08rem,2.2dvh,1.35rem);font-weight:900;line-height:1.18}.visual-lab-screen .dojo-prompt{gap:6px}.visual-lab-screen .dojo-prompt>svg,.visual-lab-screen .dojo-prompt small{display:none}.visual-lab-screen .dojo-prompt strong{font-size:clamp(.92rem,1.9dvh,1.08rem);line-height:1.13}.visual-lab-screen .bank-meta span{padding:4px 7px}.assessment-screen .dojo-prompt small{color:var(--muted);text-transform:none;font-size:.68rem;line-height:1.24}.assessment-screen .dojo-prompt strong{font-size:clamp(1rem,2dvh,1.22rem)}.flashcard{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);border:2px solid color-mix(in srgb, var(--lesson-color) 42%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--lesson-color) 14%, transparent), transparent 54%), var(--lesson-soft);min-height:clamp(250px,44dvh,360px);color:var(--ink);cursor:pointer;text-align:center;border-bottom-width:6px;border-radius:8px;padding:18px;display:grid}.card-face{place-items:center;gap:12px;display:grid}.card-face strong{max-width:24ch;font-size:clamp(1.25rem,3.2dvh,2rem);font-weight:800;line-height:1.12}.card-face small{max-width:42ch;color:var(--muted);font-size:.9rem;font-weight:500;line-height:1.38}.card-face.back strong{max-width:32ch;font-size:clamp(1rem,2.3dvh,1.4rem);line-height:1.3}.card-mnemonic{color:#713f12;overflow-wrap:anywhere;background:#fef9c3;border:1px solid #eab308;border-radius:8px;max-width:42ch;margin-top:8px;padding:8px 12px;font-size:.86rem;font-weight:700;line-height:1.4}.card-mnemonic em{letter-spacing:.04em;text-transform:uppercase;color:#a16207;margin-bottom:2px;font-size:.7rem;font-style:normal;font-weight:800;display:block}.card-face.back,.flashcard.flipped .front{display:none}.flashcard.flipped .back{display:grid}.answer-grid{gap:8px;display:grid}@media (width>=520px){.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.answer-card{border:2px solid var(--line);background:var(--panel);min-height:64px;color:var(--ink);cursor:pointer;text-align:left;border-bottom-width:5px;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:10px;display:grid}.answer-card span{border:1px solid var(--line);width:28px;height:28px;color:color-mix(in srgb, var(--ink) 35%, var(--muted));border-radius:8px;place-items:center;font-size:.78rem;font-weight:900;display:grid}.answer-card strong{min-width:0;font-size:.9rem;font-weight:850;line-height:1.22}.visual-lab-screen .answer-grid{gap:6px}.visual-lab-screen .answer-card{border-bottom-width:4px;gap:8px;min-height:54px;padding:8px}.visual-lab-screen .answer-card strong{font-size:.84rem;line-height:1.18}.visual-lab-screen .answer-card span{width:26px;height:26px}.readiness-screen .bank-stage{gap:10px;padding-block:10px 16px}.readiness-brief{border-color:color-mix(in srgb, var(--nus-orange) 46%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--amber-soft) 72%, transparent), transparent 58%), var(--lesson-soft)}.readiness-screen .dojo-prompt small{color:var(--accent-orange-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.18;display:-webkit-box;overflow:hidden}.readiness-screen .dojo-prompt strong{font-size:clamp(1rem,2dvh,1.2rem);line-height:1.16}.readiness-visual-card{gap:8px;padding:8px;overflow:visible}.readiness-drug-card{border:2px solid color-mix(in srgb, var(--lesson-color) 34%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--lesson-color) 12%, transparent), transparent 58%), var(--panel);border-bottom-width:5px;border-radius:8px;gap:5px;padding:12px;display:grid}.readiness-drug-card strong{color:var(--nus-blue);font-size:1.15rem;font-weight:800;line-height:1.08}.readiness-drug-card span{color:var(--accent-orange-text);font-size:.78rem;font-weight:900;line-height:1.2}.readiness-drug-card small{color:var(--muted);font-size:.74rem;font-weight:500;line-height:1.32}.recovery-screen .bank-stage{gap:10px}.recovery-lock-button{cursor:default;pointer-events:none}.recovery-brief{border-color:color-mix(in srgb, var(--bad) 34%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--bad-soft) 72%, transparent), transparent 58%), var(--lesson-soft)}.recovery-screen .dojo-prompt>svg,.recovery-lock-button,.recovery-footer-note{color:var(--bad)}.recovery-footer{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.recovery-footer-note{min-width:0;font-size:.78rem;font-weight:900;line-height:1.15}.recovery-empty>svg{color:var(--bad)}.answer-card.selected{border-color:color-mix(in srgb, var(--nus-blue) 55%, var(--line));background:color-mix(in srgb, var(--nus-blue) 12%, var(--panel))}.answer-card.correct{border-color:var(--good);background:var(--good-soft)}.answer-card.wrong{border-color:var(--bad);background:var(--bad-soft)}.feedback{border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:11px;display:grid}.feedback.correct{background:var(--good-soft);color:var(--good)}.feedback.wrong{background:var(--bad-soft);color:var(--bad)}.feedback.revealed{background:var(--amber-soft);color:var(--amber)}.feedback span{gap:2px;min-width:0;display:grid}.feedback strong{font-size:.92rem;font-weight:800}.feedback small{color:var(--ink);font-size:.78rem;font-weight:500;line-height:1.32}.feedback-pharmingo{object-fit:contain;object-position:center bottom;align-self:center;width:46px;height:54px;margin:-2px 0}.kumite-sensei{background:var(--amber-soft);border-radius:10px;align-items:center;gap:10px;margin-bottom:10px;padding:7px 11px;display:flex}.kumite-sensei img{object-fit:contain;object-position:center bottom;flex:none;width:42px;height:50px}.kumite-sensei span{color:var(--nus-blue);font-size:.86rem;font-style:italic;font-weight:800;line-height:1.3}.pharmingo-hint{background:var(--soft);border:1px dashed color-mix(in srgb, var(--nus-blue) 26%, var(--line));border-radius:10px;align-items:center;gap:10px;margin-top:10px;padding:6px 12px;display:flex}.pharmingo-hint img{object-fit:contain;object-position:center bottom;flex:none;width:38px;height:46px}.pharmingo-hint span{color:var(--ink);font-size:.82rem;font-style:italic;font-weight:700;line-height:1.3}.lesson-footer{border-top:1px solid var(--line);background:var(--panel);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:10px;display:grid}.lesson-footer.no-previous{grid-template-columns:minmax(0,1fr)}.review-grade-row{flex-direction:column;grid-column:1/-1;gap:8px;width:100%;display:flex}.review-grade-label{color:var(--muted);text-align:center;font-size:12px;font-weight:700}.review-grade-buttons{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.review-grade-btn{border:1.5px solid var(--line);cursor:pointer;background:var(--panel);color:var(--ink);border-radius:8px;padding:12px 8px;font:800 14px Inter,ui-sans-serif,system-ui,sans-serif;transition:transform 50ms,filter .15s}.review-grade-btn:hover{filter:brightness(.97)}.review-grade-btn:active{transform:translateY(1px)}.review-grade-btn.hard{color:#9a3412;background:#fff4e6;border-color:#f28c00}.review-grade-btn.good{color:#075985;background:#e0f2fe;border-color:#0284c7}.review-grade-btn.easy{color:#166534;background:#dcfce7;border-color:#16a34a}.lesson-footer .primary-button{width:100%;min-width:0}.footer-back-button{min-width:42px;padding-inline:11px}.footer-back-button svg{width:18px;height:18px}.lesson-footer.correct{background:var(--good-soft)}.lesson-footer.wrong{background:var(--bad-soft)}.lesson-footer.revealed{background:var(--amber-soft)}.assessment-written{gap:8px;display:grid}.assessment-text-input{border:2px solid var(--line);background:var(--panel);width:100%;min-height:46px;color:var(--ink);font:inherit;border-radius:8px;padding:11px 12px;font-size:.92rem;font-weight:500;line-height:1.32}.assessment-text-input:focus{border-color:var(--nus-orange);outline:0}.assessment-textarea{resize:vertical;min-height:116px}.assessment-rubric{border:1px solid color-mix(in srgb, var(--good) 32%, var(--line));background:var(--panel);border-radius:8px;gap:8px;padding:11px;display:grid}.assessment-rubric strong{color:var(--good);font-size:.9rem;font-weight:800}.assessment-rubric ul{gap:6px;margin:0;padding-left:18px;display:grid}.assessment-rubric li,.assessment-rubric p{color:var(--ink);margin:0;font-size:.78rem;font-weight:500;line-height:1.34}.visual-schema-card{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);border:2px solid color-mix(in srgb, var(--lesson-color) 36%, var(--line));background:linear-gradient(135deg, color-mix(in srgb, var(--lesson-color) 10%, transparent), transparent 58%), var(--panel);border-bottom-width:5px;border-radius:8px;gap:10px;padding:12px;display:grid;overflow:hidden}.visual-lab-screen .visual-schema-card{gap:6px;min-height:222px;padding:8px}.visual-schema-head{gap:2px;display:grid}.visual-lab-screen .visual-schema-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.visual-schema-head span{color:var(--accent-orange-text);text-transform:uppercase;font-size:.68rem;font-weight:800}.visual-schema-head strong{color:var(--ink);font-size:1rem;font-weight:800}.visual-lab-screen .visual-schema-head strong{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.visual-lab-screen .visual-schema-head span{flex:none;font-size:.7rem}.visual-figure{--lesson-color:var(--nus-blue);--lesson-soft:var(--soft);border:1px solid color-mix(in srgb, var(--lesson-color) 34%, var(--line));background:linear-gradient(90deg, color-mix(in srgb, var(--lesson-color) 9%, transparent) 1px, transparent 1px), linear-gradient(0deg, color-mix(in srgb, var(--lesson-color) 9%, transparent) 1px, transparent 1px), color-mix(in srgb, var(--lesson-soft) 74%, var(--panel));background-size:18px 18px,18px 18px,auto;border-radius:8px;min-height:212px;position:relative;overflow:hidden}.visual-lab-screen .visual-figure{min-height:clamp(150px,24dvh,210px)}.visual-figure-converted{aspect-ratio:16/9;background:var(--panel);place-items:center;min-height:0;display:grid}.visual-figure-asset{object-fit:contain;width:100%;height:100%;max-height:none;display:block}.visual-lab-screen .visual-figure-converted{width:100%;min-height:0}.visual-figure-converted .visual-figure-badge{display:none}.readiness-screen .visual-figure{min-height:0}.readiness-screen .visual-figure-converted{width:100%;min-height:0}.visual-figure-lines{width:100%;height:100%;color:var(--lesson-color);position:absolute;inset:0}.visual-figure-badge{z-index:2;border:1px solid color-mix(in srgb, var(--lesson-color) 42%, var(--line));background:color-mix(in srgb, var(--panel) 84%, transparent);color:var(--lesson-color);text-transform:uppercase;border-radius:999px;padding:4px 7px;font-size:.7rem;font-weight:800;position:absolute;top:8px;left:10px}.visual-figure-line,.visual-figure-curve{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px}.visual-figure-curve{stroke-width:3px}.visual-figure-curve.strong{stroke:var(--nus-orange)}.visual-figure-organ,.visual-figure-panel{fill:color-mix(in srgb, var(--lesson-soft) 68%, var(--panel));stroke:color-mix(in srgb, var(--lesson-color) 54%, var(--line));stroke-width:1.6px}.visual-figure-panel.strong{fill:color-mix(in srgb, var(--amber-soft) 56%, var(--panel));stroke:var(--nus-orange)}.visual-figure marker path{fill:var(--lesson-color)}.visual-figure-chip{border:1px solid color-mix(in srgb, var(--lesson-color) 45%, var(--line));background:var(--panel);width:min(34%,132px);min-height:36px;color:var(--ink);text-align:center;border-bottom-width:3px;border-radius:8px;align-items:center;padding:6px 7px;font-size:.7rem;font-weight:900;line-height:1.1;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 16px #001e4014}.visual-lab-screen .visual-figure-chip{width:min(32%,120px);min-height:32px;padding:5px 6px;font-size:.72rem}.visual-figure-chip.target{border-color:var(--nus-orange);background:color-mix(in srgb, var(--amber-soft) 78%, var(--panel))}.visual-figure-caption{color:var(--muted);text-transform:uppercase;font-size:.65rem;font-weight:800;position:absolute;top:8px}.visual-figure-caption.left{left:12px}.visual-figure-caption.right{right:12px}.visual-node-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.visual-node{border:1px solid color-mix(in srgb, var(--lesson-color) 38%, var(--line));background:color-mix(in srgb, var(--lesson-soft) 78%, var(--panel));min-height:44px;color:var(--ink);border-radius:8px;align-items:center;padding:8px;font-size:.74rem;font-weight:880;line-height:1.18;display:grid}.visual-node:nth-child(odd){transform:translateY(3px)}.visual-node:nth-child(2n){transform:translateY(-3px)}.visual-schema-card p{border-left:4px solid var(--lesson-color);color:var(--muted);margin:0;padding-left:9px;font-size:.78rem;font-weight:500;line-height:1.34}.visual-lab-screen .visual-node-map{display:none}.visual-lab-screen .visual-schema-card p{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.7rem;line-height:1.24;display:-webkit-box;overflow:hidden}.visual-lab-screen .lesson-footer{padding:8px 10px}.revision-empty{text-align:center;align-content:safe center;justify-items:center;gap:12px;padding:22px;display:grid;overflow:auto}.revision-empty>svg{width:52px;height:52px;color:var(--nus-orange)}.revision-empty strong{color:var(--nus-blue);font-size:1.32rem;font-weight:800}.revision-empty p{max-width:42ch;color:var(--muted);margin:0;font-size:.9rem;font-weight:500;line-height:1.38}.summary-screen{text-align:center;align-content:safe center;justify-items:center;gap:13px;padding:18px;display:grid;overflow:auto}.summary-mascot{object-fit:contain;filter:drop-shadow(0 12px 18px #003d7c29);width:auto;max-width:168px;height:152px}.summary-pharmingo-line{max-width:30rem;color:var(--nus-blue);margin:2px 0 0;font-size:.98rem;font-style:italic;font-weight:800;line-height:1.35}.summary-pharmingo-belt{background:color-mix(in srgb, var(--nus-orange) 16%, transparent);color:var(--accent-orange-text);border-radius:999px;align-items:center;gap:6px;margin:8px 0 0;padding:5px 12px;font-size:.86rem;font-weight:900;display:inline-flex}.summary-pharmingo-belt svg{width:16px;height:16px}.hall-celebration{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:min(100%,430px);display:grid}.hall-summary-mascot{width:auto;max-width:200px;height:172px}.pharmingo-speech{border:2px solid color-mix(in srgb, var(--nus-orange) 52%, var(--line));background:var(--amber-soft);color:var(--ink);text-align:left;border-bottom-width:5px;border-radius:8px;gap:5px;padding:11px 12px;display:grid;position:relative}.pharmingo-speech:before{border-bottom:2px solid color-mix(in srgb, var(--nus-orange) 52%, var(--line));border-left:2px solid color-mix(in srgb, var(--nus-orange) 52%, var(--line));background:var(--amber-soft);content:"";width:16px;height:16px;position:absolute;top:52px;left:-10px;transform:rotate(45deg)}.pharmingo-speech strong{color:var(--accent-orange-text);font-size:1rem;font-weight:800}.pharmingo-speech span{color:var(--ink);font-size:.8rem;font-weight:500;line-height:1.32}.summary-screen h2{max-width:18ch;color:var(--nus-blue);margin:0;font-size:clamp(1.8rem,5dvh,2.7rem);font-weight:800;line-height:1.02}.summary-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:min(100%,420px);display:grid}.summary-actions{flex-wrap:wrap;justify-content:center;gap:8px}.modal-backdrop{z-index:30;background:#0714217a;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--line);background:var(--panel);width:min(100%,430px);max-height:min(88dvh,820px);box-shadow:var(--shadow);border-radius:8px;gap:12px;padding:14px;display:grid;overflow:auto}.modal-header{justify-content:space-between;gap:12px}.modal-title-block{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-width:0;display:grid}.modal-icon{border:1px solid color-mix(in srgb, var(--nus-orange) 42%, var(--line));background:var(--amber-soft);width:36px;height:36px;color:var(--amber);border-radius:8px;place-items:center;display:grid}.modal-header strong,.modal-header h1{color:var(--nus-blue);font-size:1.22rem;font-weight:800;line-height:1.08;display:block}.modal-header h1{margin:0}.modal-header small{color:var(--muted);margin-top:2px;font-size:.74rem;font-weight:800;line-height:1.15;display:block}.modal-panel p{color:var(--muted);margin:0;font-size:.84rem;font-weight:700;line-height:1.42}.modal-panel a{align-items:center;gap:3px;display:inline-flex}.modal-panel a svg{width:.8rem;height:.8rem}.modal-intro{color:var(--ink)!important;font-weight:500!important}.modal-panel-pharmingo{width:min(100%,540px)}.modal-panel-beta{border-color:color-mix(in srgb, var(--nus-orange) 46%, var(--line));text-align:left;justify-items:stretch;width:min(100%,460px)}.beta-splash-image{border:1px solid color-mix(in srgb, var(--nus-blue) 24%, var(--line));background:var(--soft);object-fit:contain;border-radius:8px;justify-self:center;width:108px;height:132px;padding:6px}.modal-note.beta-callout{border-color:color-mix(in srgb, var(--nus-orange) 42%, var(--line));background:var(--amber-soft);color:var(--ink);font-weight:700}.beta-continue{width:100%;margin-top:2px}.modal-pharmingo-icon{width:31px;height:31px}.pharmingo-message-layout{display:block}.pharmingo-message-image{float:right;border:1px solid color-mix(in srgb, var(--nus-blue) 24%, var(--line));background:var(--soft);object-fit:contain;border-radius:8px;width:122px;height:150px;margin:0 0 10px 14px;padding:6px}.pharmingo-message-copy{display:flow-root}.pharmingo-message-copy p{color:var(--ink);margin:0 0 10px;font-weight:500}.pharmingo-signature{color:var(--nus-blue)!important;font-weight:900!important}.modal-card,.modal-note,.support-card{border:1px solid var(--line);background:var(--soft);border-radius:8px;gap:7px;padding:10px;display:grid}.modal-card h3,.support-card h3{color:var(--accent-orange-text);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.76rem;font-weight:800}.modal-links{flex-wrap:wrap;gap:8px;display:flex}.about-path-details summary{min-height:44px;color:var(--accent-orange-text);cursor:pointer;padding:12px 0;font-size:.86rem;font-weight:800}.about-path-details summary:focus-visible{outline:2px solid var(--nus-blue);outline-offset:3px;border-radius:4px}.about-path-details p{margin-top:7px}.about-feedback{text-align:center;justify-items:center}.about-feedback .primary-button{min-height:44px;text-decoration:none}.modal-note.safety-disclaimer{border-color:color-mix(in srgb, var(--nus-orange) 42%, var(--line));background:var(--amber-soft);color:var(--ink);font-size:.78rem}.modal-note.safety-disclaimer strong{color:var(--accent-orange-text)}.support-card ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.support-card li{color:var(--ink);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;font-size:.84rem;font-weight:500;line-height:1.3;display:grid}.support-card li svg{width:1rem;height:1rem;color:var(--good);margin-top:1px}.support-link{border:1px solid var(--line);background:#fd0;border-radius:8px;overflow:hidden;display:block!important}.support-link:hover{border-color:color-mix(in srgb, var(--nus-orange) 65%, var(--line));transform:translateY(-1px)}.support-link img{width:100%;height:auto;display:block}.topbar-glossary{border:1px solid color-mix(in srgb, var(--nus-blue) 40%, var(--line));background:var(--panel);height:36px;color:var(--nus-blue);cursor:pointer;white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:5px;padding:0 9px 0 8px;font-size:.76rem;font-weight:850;line-height:1;display:inline-flex;position:relative}.topbar-glossary:before{content:"";position:absolute;inset:-4px}.topbar-glossary:hover,.topbar-glossary[aria-expanded=true]{background:var(--amber-soft);color:var(--nus-blue);border-color:#ef7c008c}.topbar-glossary svg{stroke-width:2.1px;flex:none;width:17px;height:17px}.topbar-xp-compact{display:none}.unit-band.hall-spotlight{outline-offset:3px;border-radius:10px;outline:3px solid #ef7c00bf;transition:outline-color .4s}@media (width<=599px){.topbar-glossary{gap:4px;height:32px;padding:0 7px 0 6px;font-size:.72rem}.topbar-glossary svg{width:15px;height:15px}}@media (width<=390px){.topbar .status-pill.xp.has-compact .topbar-xp-full{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar .status-pill.xp.has-compact .topbar-xp-compact{display:inline}}@media (width<=340px){.topbar-glossary{padding:0 6px;font-size:.7rem}.topbar-glossary svg{display:none}.topbar.with-profile .brand-copy{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=390px){.brand-title img{width:46px;height:46px}.brand-copy strong{font-size:1.16rem}.brand-byline{font-size:.72rem}.status-pill{padding-inline:6px}.topbar .status-pill svg{display:none}.topbar.with-profile{gap:6px;padding-inline:6px}.topbar.with-profile .status-cluster{gap:3px}.topbar.with-profile .icon-button{width:32px;height:32px}.topbar.with-profile .brand-title img{width:40px;height:40px}.topbar.with-profile .brand-copy strong{font-size:1.02rem}.topbar.with-profile .brand-byline{font-size:.66rem}.hero-mascot{width:78px;height:78px}.hero-mascot-button{width:78px;height:78px;margin-right:0}.curriculum-ref-toggle{gap:3px;max-width:78px;min-height:22px;padding-inline:4px;font-size:.64rem}.curriculum-switch{width:21px;height:13px}.curriculum-switch span{width:9px;height:9px}.curriculum-ref-toggle.is-on .curriculum-switch span{transform:translate(8px)}.educator-review-toggle{width:16px;height:16px}.educator-review-toggle.is-active{width:22px;height:22px}.pharmingo-message-layout{display:block}.pharmingo-message-image{width:94px;height:118px;margin:0 0 8px 10px}.hall-celebration{grid-template-columns:1fr;justify-items:center}.hall-summary-mascot{width:126px;height:126px}.pharmingo-speech{text-align:center}.pharmingo-speech:before{top:-9px;left:calc(50% - 8px);transform:rotate(135deg)}.daily-strip{gap:5px}.metric{gap:4px;padding:5px}.metric>svg,.metric>.belt-swatch{display:none}.summary-stats{grid-template-columns:1fr}.bank-brief-top{display:grid}.bank-domain{justify-self:start}.visual-node-map{grid-template-columns:1fr}}html[data-theme=dark] .card-mnemonic{background:color-mix(in srgb, var(--amber-soft) 88%, var(--panel));border-color:color-mix(in srgb, var(--nus-orange) 50%, var(--line));color:var(--ink)}html[data-theme=dark] .card-mnemonic em{color:var(--accent-orange-text)}html[data-theme=dark] .review-grade-btn.hard{background:var(--amber-soft);border-color:color-mix(in srgb, var(--amber) 60%, var(--line));color:var(--amber)}html[data-theme=dark] .review-grade-btn.good{background:color-mix(in srgb, var(--nus-blue) 16%, var(--panel));border-color:color-mix(in srgb, var(--nus-blue) 60%, var(--line));color:var(--nus-blue)}html[data-theme=dark] .review-grade-btn.easy{background:var(--good-soft);border-color:color-mix(in srgb, var(--good) 55%, var(--line));color:var(--good)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width>=1120px){.main-grid{grid-template-columns:minmax(0,1fr) 340px}.path-col-wrap{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px 14px}}@media (width>=1500px){.path-col-wrap{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1180px){.flashcard-stage,.quiz-stage{padding-inline:max(clamp(12px,2.2dvh,22px),50% - 550px)}}.pronounce-button{border:1px solid var(--line);background:var(--panel);width:30px;height:30px;color:var(--nus-blue);cursor:pointer;border-radius:999px;flex:none;place-items:center;margin-inline-start:auto;transition:border-color .15s,background .15s;display:inline-grid}.pronounce-button:hover{border-color:color-mix(in srgb, var(--nus-orange) 55%, var(--line));background:var(--amber-soft)}.pronounce-button:active{transform:translateY(1px)}.pronounce-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.readiness-drug-name{align-items:center;gap:8px;display:flex}html[data-theme=dark] .flashcard,html[data-theme=dark] .bank-brief,html[data-theme=dark] .readiness-brief,html[data-theme=dark] .recovery-brief{background:linear-gradient(135deg, color-mix(in srgb, var(--lesson-color) 24%, transparent), transparent 60%), color-mix(in srgb, var(--lesson-color) 14%, var(--panel))}html[data-theme=dark] .connect-from.selected{background:color-mix(in srgb, var(--lesson-color) 24%, var(--panel))}html[data-theme=dark] .kata-figure-badge,html[data-theme=dark] .order-num,html[data-theme=dark] .order-move button,html[data-theme=dark] .map-repair-chain b{color:color-mix(in srgb, var(--lesson-color) 58%, #fff)}.domain-accent{color:var(--domain-accent)}html[data-theme=dark] .domain-accent{color:color-mix(in srgb, var(--domain-accent) 60%, #fff)}.sim-stage{--sim-1:#003d7c;--sim-2:#b85600;--sim-3:#12805c;--sim-4:#b8325e;--sim-5:#607085;gap:12px}html[data-theme=dark] .sim-stage{--sim-1:#8ec5ff;--sim-2:#ffad4d;--sim-3:#52d58a;--sim-4:#ff8ab0;--sim-5:#b6c4d8}.sim-badge{background:var(--nus-blue);color:#fff;letter-spacing:.06em;border-radius:6px;place-items:center;min-width:34px;height:24px;font-size:.66rem;font-weight:900;display:grid}html[data-theme=dark] .sim-badge{color:#071421}.sim-body{gap:12px;display:grid}.sim-plot{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:100%;overflow:hidden}.sim-plot svg{display:block}.sim-grid line{stroke:var(--line);stroke-width:1px}.sim-axis line{stroke:var(--muted);stroke-width:1.2px}.sim-axis text{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.sim-axis .sim-axis-title{fill:var(--ink);font-size:12px;font-weight:700}.sim-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.sim-line.tone-1,.sim-ref.tone-1 line{stroke:var(--sim-1)}.sim-line.tone-2,.sim-ref.tone-2 line{stroke:var(--sim-2)}.sim-line.tone-3,.sim-ref.tone-3 line{stroke:var(--sim-3)}.sim-line.tone-4,.sim-ref.tone-4 line{stroke:var(--sim-4)}.sim-line.tone-5,.sim-ref.tone-5 line{stroke:var(--sim-5)}.sim-ref line{stroke-width:1.5px}.sim-band rect{opacity:.16}.sim-band.tone-1 rect{fill:var(--sim-1)}.sim-band.tone-2 rect{fill:var(--sim-2)}.sim-band.tone-3 rect{fill:var(--sim-3)}.sim-band.tone-4 rect{fill:var(--sim-4)}.sim-band.tone-5 rect{fill:var(--sim-5)}.sim-band text,.sim-ref text,.sim-marker text{paint-order:stroke;stroke:var(--panel);stroke-width:3px;font-size:11px;font-weight:700}.tone-1 text{fill:var(--sim-1)}.tone-2 text{fill:var(--sim-2)}.tone-3 text{fill:var(--sim-3)}.tone-4 text{fill:var(--sim-4)}.tone-5 text{fill:var(--sim-5)}.sim-marker.tone-1 circle,.sim-playhead.tone-1 circle{fill:var(--sim-1)}.sim-marker.tone-2 circle,.sim-playhead.tone-2 circle{fill:var(--sim-2)}.sim-marker.tone-3 circle,.sim-playhead.tone-3 circle{fill:var(--sim-3)}.sim-marker.tone-4 circle,.sim-playhead.tone-4 circle{fill:var(--sim-4)}.sim-marker.tone-5 circle,.sim-playhead.tone-5 circle{fill:var(--sim-5)}.sim-marker circle,.sim-playhead circle{stroke:var(--panel);stroke-width:2px}.sim-playhead line{stroke:var(--ink);stroke-width:1.2px;opacity:.45}.sim-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:.78rem;font-weight:600;list-style:none;display:flex}.sim-legend li{align-items:center;gap:6px;display:inline-flex}.sim-controls{border:1px solid var(--line);background:var(--soft);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 16px;padding:12px;display:grid}.sim-slider{gap:4px;min-width:0;display:grid}.sim-slider-head{color:var(--ink);justify-content:space-between;align-items:baseline;gap:8px;font-size:.82rem;font-weight:700;display:flex}.sim-slider-head output{color:var(--lesson-color,var(--nus-blue));font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}html[data-theme=dark] .sim-slider-head output{color:var(--nus-blue)}.sim-slider-head small{color:var(--muted);font-weight:600}.sim-slider input[type=range]{width:100%;min-height:28px;accent-color:var(--lesson-color,var(--nus-blue))}.sim-slider-hint{color:var(--muted);font-size:.74rem}.sim-segmented{gap:4px;display:grid}.sim-segmented-label{color:var(--ink);font-size:.82rem;font-weight:700}.sim-segmented-options{flex-wrap:wrap;gap:6px;display:flex}.sim-segmented-options button{border:1px solid var(--line);background:var(--panel);min-height:34px;color:var(--ink);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:.8rem;font-weight:700}.sim-segmented-options button.active{border-color:var(--lesson-color,var(--nus-blue));background:color-mix(in srgb, var(--lesson-color,var(--nus-blue)) 14%, var(--panel));color:var(--ink)}.sim-readouts{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin:0;display:grid}.sim-readouts div{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px}.sim-readouts dt{color:var(--muted);font-size:.72rem;font-weight:700}.sim-readouts dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1rem;font-weight:800}.sim-readouts dd small{color:var(--muted);font-size:.72rem;font-weight:600}.sim-readouts .tone-good{border-color:var(--good);background:var(--good-soft)}.sim-readouts .tone-bad{border-color:var(--bad);background:var(--bad-soft)}.sim-readouts .tone-warn{border-color:var(--amber);background:var(--amber-soft)}.sim-try{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px 12px}.sim-try summary{color:var(--ink);cursor:pointer;font-size:.86rem;font-weight:800}.sim-try ol{color:var(--ink);gap:6px;margin:8px 0 2px;padding-left:20px;font-size:.82rem;line-height:1.4;display:grid}.sim-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sim-play,.sim-reset{border:1px solid var(--line);background:var(--panel);min-height:38px;color:var(--ink);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:.86rem;font-weight:800}.sim-play[aria-pressed=true]{border-color:var(--lesson-color,var(--nus-blue))}.sim-actions{grid-template-columns:auto minmax(0,1fr);gap:8px;display:grid}.sim-anim{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:100%;height:auto;display:block}.sim-anim text{fill:var(--ink);font-size:12px;font-weight:700}.sim-note{color:var(--muted);margin:0;font-size:.76rem;line-height:1.35}.sim-missing{color:var(--bad);font-weight:700}.sim-live{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sim-more{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:8px 12px}.sim-more summary{color:var(--muted);cursor:pointer;font-size:.82rem;font-weight:800}.sim-more>:not(summary){margin-top:8px}.sim-offscale{background:var(--amber-soft);color:var(--amber);border-radius:999px;justify-self:start;padding:3px 8px;font-size:.74rem;font-weight:800}.sim-lab-list ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.sim-lab-list button{border:1px solid var(--line);background:var(--panel);width:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:12px;display:grid}.sim-lab-list button:hover,.sim-lab-list button:focus-visible{border-color:var(--nus-blue)}.sim-lab-list button>span:last-child{gap:3px;display:grid}.sim-lab-list strong{font-size:.95rem}.sim-lab-list small{color:var(--muted);font-size:.8rem;line-height:1.35}.sim-lab-list .sim-badge{background:var(--nus-blue)}.sim-lab-footer{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:0 clamp(12px,2.2dvh,22px) 16px;display:grid}.dojo-prompt .sim-badge{flex:none;min-width:34px;margin-top:2px}.sim-stage div,.sim-stage label{min-width:0}.sim-lab-progress{color:var(--muted);margin:0;padding:8px clamp(12px,2.2dvh,22px) 0;font-size:.8rem;font-weight:700}.sim-lab-list .sim-lab-count{color:var(--nus-blue);font-weight:700}
