@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-ext-400-normal-CXAzuTZb.woff2)format("woff2"),url(/assets/figtree-latin-ext-400-normal-Gbh-3PTk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2)format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-ext-500-normal-Du0rIuHj.woff2)format("woff2"),url(/assets/figtree-latin-ext-500-normal-BOEJvrb_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2)format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-ext-600-normal-DJlfifZj.woff2)format("woff2"),url(/assets/figtree-latin-ext-600-normal-CQqsimlV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2)format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-ext-700-normal-CS4sQkGV.woff2)format("woff2"),url(/assets/figtree-latin-ext-700-normal-BoDi4KL2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/figtree-latin-700-normal-th6qEP7c.woff2)format("woff2"),url(/assets/figtree-latin-700-normal-BCCt2T1q.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-vietnamese-600-normal-Ipewt4hn.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-600-normal-BppAn7jL.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-ext-600-normal-CN5JKkBm.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-600-normal-DF26P3Q7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand-navy:#0f1b33;--brand-ink:#1a56db;--brand-gold:#f5b841;--color-bg:#f4f5f7;--color-surface:#fff;--color-surface-muted:#f8f9fa;--color-surface-sunken:#eef0f3;--color-border:#e2e5ea;--color-border-strong:#cdd2da;--color-text:#151a23;--color-muted:#5a6372;--color-subtle:#6b7482;--color-accent:#1a56db;--color-accent-hover:#1749b8;--color-accent-soft:#e8effc;--color-accent-softer:#f3f7fe;--color-success:#12804d;--color-success-soft:#e5f4ec;--color-error:#c23b3b;--color-error-soft:#fbeaea;--color-info:#1a56db;--color-info-soft:#e8effc;--color-neutral-soft:#eef0f3;--color-warning-soft:#fdf0cf;--seg-hook:#b45309;--seg-teach:var(--brand-ink);--seg-visit:#0e7490;--seg-simulate:#7a3e9d;--seg-reallife:#12804d;--seg-practice:#9f1239;--seg-discuss:#a16207;--seg-assess:#c23b3b;--seg-wrapup:#374151;--scene-deep:#070d1c;--scene-sky:#16285a;--scene-sky-soft:#1b3170;--brand-ink-bright:#3b7bff;--band-excellent-bg:#cfeedd;--band-excellent-fg:#0b5c37;--band-good-bg:#e6f4d7;--band-good-fg:#36620f;--band-fair-bg:#fdecc4;--band-fair-fg:#74500a;--band-support-bg:#f9d9d9;--band-support-fg:#8e2525;--band-missing-bg:#eef0f3;--band-missing-fg:#8e2525;--color-stage:#0f1726;--color-stage-glass:#0f1726c7;--color-stage-glass-hover:#0f1726f0;--color-on-dark:#fff;--color-on-dark-muted:#ffffffc7;--color-on-dark-line:#fff3;--institution-color:#1a56db;--institution-on:#fff;--font-body:"Figtree", "Segoe UI", system-ui, -apple-system, "Noto Sans", sans-serif;--font-display:"Bricolage Grotesque", "Figtree", "Segoe UI", system-ui, sans-serif;--font-size-2xs:.6875rem;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-md:.9375rem;--font-size-lg:1.0625rem;--font-size-xl:1.25rem;--font-size-2xl:1.625rem;--font-size-hero:clamp(1.75rem, 1rem + 2.2vw, 2.75rem);--font-size-score:3.5rem;--line-height:1.5;--top-bar-height:64px;--inspector-width:400px;--touch-target:44px;--icon-sm:16px;--icon-md:20px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--space-2xs:2px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--shadow-sm:0 1px 2px #0f1b330f;--shadow-md:0 4px 16px #0f1b331a;--shadow-lg:0 16px 48px #0f1b332e;--focus-ring:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-accent);--focus-ring-dark:0 0 0 2px var(--color-stage), 0 0 0 4px #8fb3ff;--motion-fast:.12s;--motion-medium:.2s;--motion-enter:.55s;--ease-out:cubic-bezier(.2, .8, .2, 1);--z-stage-overlay:10;--z-top-bar:20;--z-popover:40;--z-dialog:50}:root[data-present=true]{--inspector-width:520px;--top-bar-height:72px;font-size:125%}@media (prefers-reduced-motion:reduce){:root{--motion-fast:0s;--motion-medium:0s;--motion-enter:0s}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-md);line-height:var(--line-height);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{display:block}:focus{outline:none}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-md);z-index:100;padding:var(--space-sm) var(--space-md);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);position:absolute;top:-100px}.skip-link:focus{top:var(--space-md)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);min-height:var(--touch-target);padding:0 var(--space-lg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:600;font-size:var(--font-size-sm);white-space:nowrap;transition:background-color var(--motion-fast), border-color var(--motion-fast), transform var(--motion-fast);display:inline-flex}.btn:hover{background:var(--color-surface-muted);border-color:var(--color-muted)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--color-surface-sunken);border-color:#0000}.btn--icon{width:var(--touch-target);padding:0}.btn--dark{background:var(--color-stage-glass);border-color:var(--color-on-dark-line);color:var(--color-on-dark);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn--dark:hover{background:var(--color-stage-glass-hover);border-color:var(--color-on-dark-muted)}.btn--dark:focus-visible{box-shadow:var(--focus-ring-dark)}.pill{align-items:center;gap:var(--space-xs);border-radius:var(--radius-pill);height:24px;font-size:var(--font-size-xs);white-space:nowrap;background:var(--color-surface-sunken);color:var(--color-muted);padding:0 10px;font-weight:600;display:inline-flex}.pill--accent{background:var(--color-accent-soft);color:var(--color-accent-hover)}.status{border-radius:var(--radius-pill);height:22px;font-size:var(--font-size-2xs);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;padding:0 8px;font-weight:700;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status--available{background:var(--color-success-soft);color:var(--color-success)}.status--in-development{background:var(--color-info-soft);color:var(--color-accent-hover)}.status--planned{background:var(--color-neutral-soft);color:var(--color-muted)}.overline{font-size:var(--font-size-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);font-weight:700}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.avatar{border-radius:var(--radius-sm);background:var(--institution-color);width:2rem;height:2rem;color:var(--institution-on);font-family:var(--font-display);letter-spacing:.02em;flex:none;place-items:center;font-size:.6875rem;font-weight:700;line-height:1;display:inline-grid;overflow:hidden}.avatar img{object-fit:contain;width:100%;height:100%}.avatar--crest{box-shadow:0 0 0 1px var(--color-border);background:#fff;border-radius:50%;width:2.75rem;height:2.75rem}.avatar--crest.avatar--lg{width:4rem;height:4rem}.avatar--crest.avatar--xs{width:2rem;height:2rem}.glass-chip:has(.avatar--crest){height:auto;min-height:30px;padding-top:3px;padding-bottom:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{grid-template-rows:var(--top-bar-height) minmax(0, 1fr);height:100dvh;min-height:0;display:grid}.top-bar{z-index:var(--z-top-bar);align-items:center;gap:var(--space-sm);padding:0 var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border);grid-template-columns:auto auto minmax(150px,1fr) auto auto auto;min-width:0;display:grid;position:relative;container:topbar/inline-size}.top-bar>*{min-width:0}.top-bar__brand{height:var(--touch-target);padding:0 var(--space-xs);border-radius:var(--radius-md);align-items:center;display:flex}.top-bar__logo{width:auto;height:32px}.top-bar__mark{width:auto;height:32px;display:none}.top-bar__divider{background:var(--color-border);width:1px;height:28px;margin:0 var(--space-xs)}.menu-button,.lesson-switcher,.institution-chip{align-items:center;gap:var(--space-sm);min-height:var(--touch-target);padding:0 var(--space-md);border-radius:var(--radius-md);text-align:left;min-width:0;transition:background-color var(--motion-fast), border-color var(--motion-fast);background:0 0;border:1px solid #0000;display:flex}.menu-button:hover,.lesson-switcher:hover,.institution-chip:hover,.menu-button[aria-expanded=true],.lesson-switcher[aria-expanded=true],.institution-chip[aria-expanded=true]{background:var(--color-surface-sunken)}.menu-button{font-weight:600;font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap}.menu-button--present{border-color:var(--color-border-strong)}.menu-button--present.is-on{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.menu-button__chevron{color:var(--color-muted);flex:none}.lesson-switcher{justify-self:start;max-width:min(100%,560px)}.lesson-switcher__text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.lesson-switcher__kicker{font-size:var(--font-size-xs);color:var(--color-muted);font-weight:500}.lesson-switcher__title{font-family:var(--font-display);font-weight:600;font-size:var(--font-size-md)}.institution-chip{max-width:280px;padding-left:var(--space-xs)}.institution-chip__text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.institution-chip__name{font-weight:600;font-size:var(--font-size-sm)}.institution-chip__level{font-size:var(--font-size-xs);color:var(--color-muted)}@container topbar (width<=1180px){.top-bar__logo{display:none}.top-bar__mark{display:block}}@container topbar (width<=1000px){.menu-button .menu-button__label{display:none}.menu-button{width:var(--touch-target);justify-content:center;padding:0}.menu-button--section .menu-button__chevron{display:none}.institution-chip{max-width:200px}.institution-chip__level{display:none}}@container topbar (width<=720px){.top-bar__divider,.institution-chip__text{display:none}.institution-chip{padding:0 var(--space-xs)}}.popover{z-index:var(--z-popover);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop-in var(--motion-medium) var(--ease-out);flex-direction:column;display:flex;position:fixed;overflow:hidden}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.menu{padding:var(--space-xs);flex-direction:column;display:flex;overflow-y:auto}.menu--scroll{min-height:0}.menu__header{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);display:flex}.menu__section{padding:var(--space-md) var(--space-md) var(--space-xs);font-size:var(--font-size-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);font-weight:700}.menu__item{align-items:center;gap:var(--space-md);min-height:var(--touch-target);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);text-align:left;background:0 0;border:0;width:100%;display:flex}.menu__item:hover,.menu__item:focus-visible{background:var(--color-surface-sunken)}.menu__item.is-current{background:var(--color-accent-softer)}.menu__item--static{cursor:default;opacity:.85}.menu__item--static:hover{background:0 0}.menu__tile{border-radius:var(--radius-sm);background:var(--color-surface-sunken);width:34px;height:34px;color:var(--color-muted);flex:none;place-items:center;display:grid}.menu__tile--text{font-family:var(--font-display);font-weight:700}.menu__text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.menu__title{font-weight:600;font-size:var(--font-size-sm)}.menu__detail{font-size:var(--font-size-xs);color:var(--color-muted)}.menu__check{color:var(--color-accent);flex:none}.menu__empty{padding:var(--space-lg);color:var(--color-muted);font-size:var(--font-size-sm)}.search{align-items:center;gap:var(--space-sm);padding:0 var(--space-md);border-bottom:1px solid var(--color-border);color:var(--color-muted);flex:none;display:flex}.search__input{min-width:0;height:48px;color:var(--color-text);background:0 0;border:0;flex:1}.search__input:focus-visible{box-shadow:none}.search:focus-within{box-shadow:inset 0 -2px 0 var(--color-accent)}.avatar--lg{border-radius:var(--radius-md);width:2.75rem;height:2.75rem;font-size:.875rem}.avatar--xs{border-radius:4px;width:1.25rem;height:1.25rem;font-size:.5rem}.body{min-width:0;min-height:0;overflow:hidden}.workspace{grid-template-columns:minmax(0, 1fr) var(--inspector-width);gap:var(--space-md);height:100%;padding:var(--space-md);display:grid}.shell--panel-hidden .workspace{grid-template-columns:minmax(0,1fr)}.stage{border-radius:var(--radius-lg);background:radial-gradient(120% 90% at 50% 10%, #1d2a44 0%, var(--color-stage) 60%);isolation:isolate;min-width:0;min-height:0;color:var(--color-on-dark);position:relative;overflow:hidden}.stage:fullscreen{border-radius:0}.stage__canvas,.stage__three{inset:0;position:absolute!important}.stage__loading{place-content:center;justify-items:center;gap:var(--space-sm);color:var(--color-on-dark-muted);font-size:var(--font-size-sm);display:grid;position:absolute;inset:0}.stage__spinner{border:3px solid var(--color-on-dark-line);border-top-color:#fff;border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stage__overlay{z-index:var(--z-stage-overlay);gap:var(--space-sm);padding:var(--space-md);pointer-events:none;grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top""centre""hint""bottom";display:grid;position:absolute;inset:0}.stage__overlay button,.stage__overlay a,.stage__overlay input,.stage__overlay .hero,.stage__overlay [data-interactive]{pointer-events:auto}.stage__top{justify-content:space-between;align-items:flex-start;gap:var(--space-sm);flex-wrap:wrap;grid-area:top;min-width:0;display:flex}.stage__chips,.stage__presets{gap:var(--space-xs);flex-wrap:wrap;min-width:0;display:flex}.stage__presets{justify-content:flex-end}.glass-chip{border-radius:var(--radius-pill);background:var(--color-stage-glass);border:1px solid var(--color-on-dark-line);height:30px;font-size:var(--font-size-xs);color:var(--color-on-dark);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:6px;max-width:320px;padding:0 10px;font-weight:600;display:inline-flex}.glass-chip--school{border-color:color-mix(in srgb, var(--institution-color) 65%, transparent)}.live-dot{background:#3ddc84;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #3ddc8440}.stage__centre{align-items:stretch;gap:var(--space-md);grid-area:centre;min-height:0;display:flex;overflow:hidden}.stage__centre-main{flex:1;align-items:center;min-width:0;display:flex}.stage__side{pointer-events:auto;align-items:flex-start;min-height:0;display:flex}.stage__hint{border-radius:var(--radius-sm);background:var(--color-stage-glass);max-width:100%;color:var(--color-on-dark-muted);font-size:var(--font-size-xs);transition:opacity .6s var(--ease-out), visibility .6s;grid-area:hint;justify-self:start;padding:4px 10px}.stage__hint.is-faded{opacity:0;visibility:hidden}.stage__hint--banner{background:var(--color-accent);color:#fff;font-size:var(--font-size-sm);padding:6px 12px}.stage__bottom{justify-content:space-between;align-items:flex-end;gap:var(--space-sm);flex-wrap:wrap;grid-area:bottom;min-width:0;display:flex}.stage__kpis{gap:var(--space-sm);flex-wrap:wrap;min-width:0;display:flex}.stage__kpis:empty{display:none}.stage__toolbar{gap:var(--space-xs);margin-left:auto;display:flex}.stage__toolbar .btn{min-height:40px;padding:0 var(--space-md)}.stage__toolbar .btn--icon{width:40px;padding:0}@container stage (width<=760px){.stage__tool-label{display:none}}.stage{container:stage/size}.hero{max-width:540px;max-height:100%;padding:var(--space-xl);border-radius:var(--radius-lg);background:var(--color-stage-glass);border:1px solid var(--color-on-dark-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:hero-in var(--motion-enter) var(--ease-out);overflow:auto}@keyframes hero-in{0%{opacity:0;transform:translateY(8px)}}.overline--on-dark{color:var(--color-on-dark-muted)}.hero__title{margin:var(--space-xs) 0 var(--space-sm);font-size:var(--font-size-hero);color:#fff;font-weight:700}.hero__lede{color:var(--color-on-dark-muted);font-size:var(--font-size-md)}.hero__facts{gap:var(--space-sm) var(--space-lg);margin:var(--space-lg) 0 0;font-size:var(--font-size-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.hero__facts li{align-items:center;gap:6px;display:flex}.hero__note{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);font-size:var(--font-size-xs);color:var(--color-on-dark-muted);display:flex}.hero__actions{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.stage--overview{padding:var(--space-xl);place-items:center start;display:grid}.hero--static{animation:none}.hero__status{margin-bottom:var(--space-sm)}@container stage (height<=420px){.hero__lede,.hero__facts,.hero__note{display:none}.hero{padding:var(--space-lg)}}.inspector{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.inspector__header{padding:var(--space-xl) var(--space-xl) var(--space-lg);flex:none}.inspector__pills{gap:var(--space-xs);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.inspector__title{font-size:var(--font-size-2xl);font-weight:700}.inspector__lede{margin-top:var(--space-sm);color:var(--color-muted);font-size:var(--font-size-sm)}.tabs{gap:var(--space-2xs);margin:0 var(--space-xl) var(--space-md);background:var(--color-surface-sunken);border-radius:var(--radius-md);flex:none;grid-template-columns:repeat(3,1fr);padding:3px;display:grid}.tabs__tab{min-height:40px;font-weight:600;font-size:var(--font-size-sm);color:var(--color-muted);background:0 0;border:0;border-radius:8px}.tabs__tab[aria-selected=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.inspector__body{min-height:0;padding:var(--space-xs) var(--space-xl) var(--space-xl);border-top:1px solid var(--color-border);flex:1;overflow-y:auto}.inspector__body:focus-visible{box-shadow:inset var(--focus-ring)}.section{padding-top:var(--space-lg)}.section+.section{margin-top:var(--space-sm)}.section__title{margin-bottom:var(--space-md);font-size:var(--font-size-lg)}.section p+p{margin-top:var(--space-sm)}.objectives{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.objectives li{gap:var(--space-md);display:flex}.objectives__marker{background:var(--color-accent-soft);width:24px;height:24px;color:var(--color-accent-hover);font-size:var(--font-size-xs);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.card{padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.card+.card{margin-top:var(--space-sm)}.card__title{margin-bottom:var(--space-xs);font-size:var(--font-size-md)}.key-idea__example{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-sm);background:var(--color-accent-softer);border-left:3px solid var(--color-accent)}.terms{margin:0}.terms__row{gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border);grid-template-columns:minmax(96px,34%) 1fr;display:grid}.terms dt{font-weight:600}.terms dd{color:var(--color-muted);margin:0}.blocks>*+*{margin-top:var(--space-sm)}.blocks ul,.blocks ol{margin:0;padding-left:1.4em}.blocks li+li{margin-top:var(--space-xs)}.blocks blockquote{padding:var(--space-md);border-left:3px solid var(--color-accent);background:var(--color-accent-softer);border-radius:var(--radius-sm);margin:0}.blocks__heading{font-size:var(--font-size-md);margin-top:var(--space-lg)}.blocks__table{overflow-x:auto}.blocks table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.blocks th,.blocks td{padding:var(--space-sm);border:1px solid var(--color-border);text-align:left;vertical-align:top}.blocks th{background:var(--color-surface-muted)}.case__analysis{margin-top:var(--space-sm)}.case__analysis summary{min-height:var(--touch-target);color:var(--color-accent);cursor:pointer;align-items:center;font-weight:600;display:inline-flex}.activities{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.activities__item{align-items:center;gap:var(--space-md);min-height:40px;padding:0 var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex}.activities__tick{border:2px solid var(--color-border-strong);border-radius:50%;flex:none;width:20px;height:20px}.hint-text{margin-top:var(--space-sm);font-size:var(--font-size-xs);color:var(--color-muted)}.chips{gap:var(--space-xs);flex-wrap:wrap;display:flex}.checklist{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.checklist li{gap:var(--space-sm);display:flex}.checklist svg{color:var(--color-success);flex:none;margin-top:3px}.teacher-notes{border-top:1px solid var(--color-border);background:var(--color-surface-muted);flex:none;max-height:45%;overflow-y:auto}.teacher-notes summary{align-items:center;gap:var(--space-sm);min-height:52px;padding:0 var(--space-xl);background:var(--color-surface-muted);cursor:pointer;font-weight:600;list-style:none;display:flex;position:sticky;top:0}.teacher-notes summary::-webkit-details-marker{display:none}.teacher-notes__chevron{transition:transform var(--motion-fast);margin-left:auto}.teacher-notes[open] .teacher-notes__chevron{transform:rotate(180deg)}.teacher-notes__body{padding:0 var(--space-xl) var(--space-lg)}.teacher-notes__note+.teacher-notes__note{margin-top:var(--space-md)}.teacher-notes__note h3{font-size:var(--font-size-sm);margin-bottom:var(--space-2xs)}.teacher-notes__note p{font-size:var(--font-size-sm);color:var(--color-muted)}.quiz{padding-top:var(--space-lg)}.quiz__progress{margin-bottom:var(--space-md);gap:4px;display:flex}.quiz__segment{background:var(--color-surface-sunken);border-radius:3px;flex:1;height:6px}.quiz__segment.is-current{background:var(--color-accent-soft);box-shadow:inset 0 0 0 1px var(--color-accent)}.quiz__segment.is-correct{background:var(--color-success)}.quiz__segment.is-wrong{background:var(--color-error)}.quiz__prompt{margin:var(--space-xs) 0 var(--space-lg);font-size:var(--font-size-lg);font-family:var(--font-body);font-weight:600;line-height:1.4}.quiz__options{gap:var(--space-sm);display:grid}.quiz-option{align-items:center;gap:var(--space-md);min-height:52px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;transition:border-color var(--motion-fast), background-color var(--motion-fast);display:flex}.quiz-option:hover:not([aria-disabled=true]){border-color:var(--color-accent);background:var(--color-accent-softer)}.quiz-option[aria-disabled=true]{cursor:default}.quiz-option__letter{border-radius:var(--radius-sm);background:var(--color-surface-sunken);width:28px;height:28px;font-weight:700;font-size:var(--font-size-xs);flex:none;place-items:center;display:grid}.quiz-option__text{flex:1}.quiz-option.is-correct{border-color:var(--color-success);background:var(--color-success-soft);color:#0b5c37}.quiz-option.is-wrong{border-color:var(--color-error);background:var(--color-error-soft);color:#9a2c2c}.feedback{gap:var(--space-md);margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);display:flex}.feedback svg{flex:none;margin-top:2px}.feedback.is-correct{background:var(--color-success-soft);color:#0b5c37}.feedback.is-wrong{background:var(--color-error-soft);color:#9a2c2c}.feedback__title{font-weight:700}.quiz__actions{margin-top:var(--space-lg);justify-content:flex-end;display:flex}.score-card{padding:var(--space-xl);border-radius:var(--radius-lg);background:var(--color-accent-softer);text-align:center;margin-bottom:var(--space-lg)}.score-card__value{font-size:var(--font-size-score)}.score-card__label{color:var(--color-muted)}.review{gap:var(--space-xs);margin:0 0 var(--space-lg);padding:0;list-style:none;display:grid}.review__row{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);display:flex}.review__row svg{flex:none;margin-top:2px}.review__row.is-correct{background:var(--color-success-soft);color:#0b5c37}.review__row.is-wrong{background:var(--color-error-soft);color:#9a2c2c}.placeholder{place-content:center;justify-items:center;gap:var(--space-sm);height:100%;padding:var(--space-2xl);text-align:center;display:grid}.placeholder__icon{border-radius:var(--radius-lg);background:var(--color-accent-soft);width:64px;height:64px;color:var(--color-accent);place-items:center;display:grid}.placeholder__title{font-size:var(--font-size-2xl)}.placeholder__text{max-width:440px;color:var(--color-muted)}.setup{z-index:var(--z-dialog);padding:var(--space-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f1b338c;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.setup__dialog{width:min(640px,100%);padding:var(--space-2xl);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:hero-in var(--motion-enter) var(--ease-out)}.setup__head{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.setup__title{font-size:var(--font-size-2xl)}.setup__lede{margin:var(--space-sm) 0 var(--space-xl);color:var(--color-muted)}.setup__label{margin-bottom:var(--space-sm);font-weight:600;font-size:var(--font-size-sm);padding:0;display:block}.setup__types{gap:var(--space-sm);margin:0 0 var(--space-xl);border:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;display:grid}.type-card{padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;gap:2px;display:flex;position:relative}.type-card:hover{border-color:var(--color-accent)}.type-card.is-selected{border-color:var(--color-accent);background:var(--color-accent-softer);box-shadow:inset 0 0 0 1px var(--color-accent)}.type-card:has(input:focus-visible){box-shadow:var(--focus-ring)}.type-card__title{font-weight:600}.type-card__detail{font-size:var(--font-size-xs);color:var(--color-muted)}.type-card__check{top:var(--space-md);right:var(--space-md);color:var(--color-accent);position:absolute}.setup__field{margin:0 0 var(--space-xl);border:0;padding:0}.text-input{width:100%;height:var(--touch-target);padding:0 var(--space-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface)}.text-input:focus-visible{border-color:var(--color-accent)}.text-input[aria-invalid=true]{border-color:var(--color-error)}.field-error{margin-top:var(--space-xs);color:var(--color-error);font-size:var(--font-size-sm);align-items:center;gap:6px;display:flex}.swatches{gap:var(--space-sm);flex-wrap:wrap;display:flex}.swatch{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-md);color:#fff;cursor:pointer;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #00000014}.swatch.is-selected{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-text)}.swatch:has(input:focus-visible){box-shadow:var(--focus-ring)}.swatch--custom{background:conic-gradient(#e11d48,#f59e0b,#16a34a,#0ea5e9,#6366f1,#e11d48);overflow:hidden}.swatch--custom input{opacity:0;cursor:pointer;width:100%;height:100%}.setup__preview{align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);min-width:0;display:flex}.setup__preview-text{flex-direction:column;min-width:0;display:flex}.setup__preview-name{font-weight:600}.setup__preview-level{font-size:var(--font-size-xs);color:var(--color-muted)}.setup__actions{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-xl);flex-wrap:wrap;display:flex}.shell--present .workspace{gap:var(--space-lg);padding:var(--space-lg)}.shell--present .inspector__title{font-size:2rem}@media (max-width:899px){body{overflow:auto}.shell{height:auto;min-height:100dvh}.body{overflow:visible}.workspace,.shell--panel-hidden .workspace{grid-template-rows:minmax(320px,52dvh) auto;grid-template-columns:minmax(0,1fr);height:auto}.inspector{max-height:none}.inspector__body{overflow:visible}.teacher-notes{max-height:none}.setup__types{grid-template-columns:minmax(0,1fr)}.setup__dialog{padding:var(--space-xl)}}.picker__programme{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md) var(--space-sm);border-bottom:1px solid var(--color-border);display:flex}.picker__label{font-size:var(--font-size-xs);color:var(--color-muted);white-space:nowrap;font-weight:700}.select{min-width:0;min-height:40px;padding:0 var(--space-sm);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);flex:1;font-weight:600}.picker{max-height:min(64vh,560px)}.picker__count{padding:var(--space-sm) var(--space-md) 0;font-size:var(--font-size-xs);color:var(--color-muted)}.picker__course+.picker__course{border-top:1px solid var(--color-border)}.picker__summary{align-items:center;gap:var(--space-sm);min-height:var(--touch-target);padding:0 var(--space-md);cursor:pointer;border-radius:var(--radius-md);list-style:none;display:flex}.picker__summary::-webkit-details-marker{display:none}.picker__summary:hover{background:var(--color-surface-sunken)}.picker__chevron{color:var(--color-muted);transition:transform var(--motion-fast);flex:none}.picker__course[open] .picker__chevron{transform:rotate(90deg)}.picker__course-name{min-width:0;font-weight:700;font-size:var(--font-size-sm);flex:1}.picker__course-meta{font-size:var(--font-size-xs);color:var(--color-muted);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.picker__dot{background:var(--color-success);border-radius:50%;width:8px;height:8px}.picker__lesson{padding-left:calc(var(--space-md) + 22px)}.picker__unit{width:92px;font-size:var(--font-size-xs);color:var(--color-muted);flex:none;font-weight:600}.library{height:100%;padding:var(--space-xl) max(var(--space-xl), calc((100% - 1100px) / 2));overflow-y:auto}.library__head{align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg);display:flex}.library__title{font-size:var(--font-size-2xl)}.library__lede{color:var(--color-muted)}.library__legend{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.programme-card{margin-bottom:var(--space-lg);padding:var(--space-xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.programme-card__head{justify-content:space-between;align-items:flex-end;gap:var(--space-sm) var(--space-lg);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.programme-card__title{font-size:var(--font-size-xl)}.programme-card__meta{font-size:var(--font-size-sm);color:var(--color-muted)}.course-rows{margin:0;padding:0;list-style:none}.course-row{gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--color-border);grid-template-columns:minmax(180px,280px) 1fr;display:grid}.course-row__name{font-weight:600;font-size:var(--font-size-sm);flex-direction:column;display:flex}.course-row__code{font-weight:500;font-size:var(--font-size-xs);color:var(--color-muted)}.course-row__units{flex-wrap:wrap;gap:4px;display:flex}.unit-chip{border-radius:var(--radius-sm);min-width:34px;height:28px;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;border:1px solid #0000;padding:0 6px;font-weight:700}.unit-chip--available{background:var(--color-success);color:#fff}.unit-chip--in-development{background:var(--color-info-soft);color:var(--color-accent-hover);border-color:#b9cdf7}.unit-chip--planned{background:var(--color-neutral-soft);color:var(--color-muted)}.unit-chip:hover{border-color:var(--color-text)}.resource-group{gap:var(--space-md);padding:var(--space-md) 0;border-top:1px solid var(--color-border);grid-template-columns:minmax(200px,280px) 1fr;display:grid}.resource-group__lesson{text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;padding:0;display:flex}.resource-group__title{font-family:var(--font-display);color:var(--color-accent);font-weight:600}.resources{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));display:grid}.resource{gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-accent);display:flex}.resource__text{color:var(--color-text);flex-direction:column;display:flex}.resource__label{font-weight:600;font-size:var(--font-size-sm)}.resource__detail{font-size:var(--font-size-xs);color:var(--color-muted)}@media (max-width:899px){.library{padding:var(--space-lg)}.course-row,.resource-group{grid-template-columns:minmax(0,1fr)}}.shared-courses{border-top:1px solid var(--color-border)}.shared-courses summary{align-items:center;gap:var(--space-sm);min-height:var(--touch-target);font-size:var(--font-size-sm);color:var(--color-accent);cursor:pointer;font-weight:600;list-style:none;display:flex}.shared-courses summary::-webkit-details-marker{display:none}.shared-courses[open] .picker__chevron{transform:rotate(90deg)}.setup__fixed-level{gap:var(--space-sm);margin:0 0 var(--space-xl);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-sunken);font-size:var(--font-size-sm);color:var(--color-muted);display:flex}.setup__fixed-level svg{flex:none;margin-top:2px}.lms{height:100%;padding:var(--space-xl) max(var(--space-xl), calc((100% - 1180px) / 2));overflow-y:auto}.lms__crumbs{margin-bottom:var(--space-sm)}.lms__head{justify-content:space-between;align-items:flex-end;gap:var(--space-md) var(--space-xl);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.lms__head-text{flex:280px;min-width:0}.lms__title{font-size:var(--font-size-2xl);max-width:100%}.lms__lede{max-width:62ch;color:var(--color-muted)}.lms__actions,.lms__tools{gap:var(--space-sm);flex-wrap:wrap;display:flex}.lms__demo{margin-left:var(--space-sm);vertical-align:middle}.lms__toolbar{justify-content:space-between;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0 var(--space-md);flex-wrap:wrap;display:flex}.tabs.tabs--inline{max-width:100%;margin:0;display:inline-flex;overflow-x:auto}.tabs--inline .tabs__tab{padding:0 var(--space-lg);white-space:nowrap}.lms__panel{padding-bottom:var(--space-2xl)}.lms__section-head{justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.link-button{align-items:center;gap:var(--space-xs);min-height:var(--touch-target);color:var(--color-accent);font-weight:600;font-size:var(--font-size-sm);background:0 0;border:0;padding:0;display:inline-flex}.link-button:hover{text-decoration:underline}.flip{transform:scaleX(-1)}.nowrap{white-space:nowrap}.class-cards{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin:0;padding:0;list-style:none;display:grid}.class-card{gap:var(--space-sm);width:100%;height:100%;padding:var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);text-align:left;box-shadow:var(--shadow-sm);flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.class-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.class-card__top{justify-content:space-between;gap:var(--space-sm);display:flex}.class-card__subject{font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);font-weight:600}.class-card__name{font-family:var(--font-display);font-weight:600;font-size:var(--font-size-xl);color:var(--color-text)}.class-card__meta{gap:var(--space-xs) var(--space-lg);font-size:var(--font-size-sm);color:var(--color-muted);flex-wrap:wrap;display:flex}.class-card__meta>span{align-items:center;gap:var(--space-xs);display:inline-flex}.class-card__code{padding-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-muted);margin-top:auto}.class-card__code strong{font-family:var(--font-display);letter-spacing:.12em;color:var(--color-text)}.lms-empty{align-items:center;gap:var(--space-md);max-width:560px;margin:var(--space-2xl) auto;padding:var(--space-2xl);text-align:center;background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);flex-direction:column;display:flex}.lms-empty__title{font-size:var(--font-size-xl)}.lms-empty__text{color:var(--color-muted)}.lms-empty__actions{justify-content:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.join-code{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;align-items:flex-end;display:flex}.join-code__label{font-size:var(--font-size-xs);color:var(--color-muted)}.join-code__value{font-family:var(--font-display);font-weight:700;font-size:var(--font-size-xl);letter-spacing:.16em}.kpis{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.kpi{padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex}.kpi__label{font-size:var(--font-size-sm);color:var(--color-muted)}.kpi__value{font-family:var(--font-display);font-weight:600;font-size:var(--font-size-2xl);line-height:1.2}.kpi__detail{font-size:var(--font-size-xs);color:var(--color-muted)}.kpi--warn{border-color:var(--band-support-bg);background:var(--color-error-soft)}.kpi--warn .kpi__value{color:var(--band-support-fg)}.notice{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);display:flex}.notice--ok{background:var(--color-success-soft);color:var(--color-success)}.notice--error{background:var(--color-error-soft);color:var(--color-error)}.notice__close{color:inherit;margin-left:auto}.callout,.insight{gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--color-accent-softer);border:1px solid var(--color-accent-soft);color:var(--color-text);display:flex}.callout>svg,.insight>svg{color:var(--color-accent);flex:none}.insight{background:var(--color-warning-soft);border-color:var(--band-fair-bg)}.insight>svg{color:var(--band-fair-fg)}.insight__title{font-weight:600}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table th,.data-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table thead th{font-size:var(--font-size-xs);color:var(--color-muted);background:var(--color-surface-muted);font-weight:600}.data-table tbody tr:last-child td{border-bottom:0}.data-table__main{font-weight:600;display:block}.data-table__sub{font-size:var(--font-size-xs);color:var(--color-muted);display:block}.state{white-space:nowrap;padding:2px var(--space-sm);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:600;display:inline-block}.state--open{background:var(--color-success-soft);color:var(--color-success)}.state--scheduled{background:var(--color-info-soft);color:var(--color-info)}.state--closed{background:var(--color-neutral-soft);color:var(--color-muted)}.legend{gap:var(--space-xs);margin-bottom:var(--space-md);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.legend .band{padding:2px var(--space-sm);border-radius:var(--radius-pill)}.band--excellent{background:var(--band-excellent-bg);color:var(--band-excellent-fg)}.band--good{background:var(--band-good-bg);color:var(--band-good-fg)}.band--fair{background:var(--band-fair-bg);color:var(--band-fair-fg)}.band--support{background:var(--band-support-bg);color:var(--band-support-fg)}.band--missing{background:repeating-linear-gradient(-45deg, var(--band-missing-bg) 0 6px, var(--color-surface) 6px 12px);color:var(--band-missing-fg);font-weight:600}.band--pending{color:var(--color-subtle)}.gradebook{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-height:min(70vh,640px);overflow:auto}.gradebook__table{border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm);min-width:100%}.gradebook__table th,.gradebook__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:center;white-space:nowrap}.gradebook__table thead th{z-index:2;background:var(--color-surface-muted);text-align:left;vertical-align:bottom;min-width:128px;max-width:180px;position:sticky;top:0}.gradebook__table tbody th{z-index:1;background:var(--color-surface);text-align:left;position:sticky;left:0}.gradebook__table thead .gradebook__corner{z-index:3;min-width:140px;left:0}.gradebook__assignment{text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.gradebook__due{font-size:var(--font-size-2xs);color:var(--color-muted);font-weight:400;display:block}.gradebook__student{min-height:32px;color:var(--color-accent);text-align:left;background:0 0;border:0;padding:0;font-weight:600}.gradebook__student:hover{text-decoration:underline}.gradebook__avg{font-weight:700}.gradebook__avg.is-low{color:var(--band-support-fg)}.questions{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.question{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);grid-template-columns:40px minmax(0,1fr) minmax(120px,220px) 96px;display:grid}.question.is-weakest{border-color:var(--band-fair-fg);box-shadow:inset 3px 0 0 var(--band-fair-fg)}.question__number{color:var(--color-muted);font-weight:700}.question__bar,.mastery__bar{border-radius:var(--radius-pill);background:var(--color-surface-sunken);height:10px;overflow:hidden}.question__fill,.mastery__fill{border-radius:inherit;background:currentColor;height:100%;display:block}.question__value{text-align:right;font-weight:700}.question__n{color:var(--color-muted);font-weight:400}.form{gap:var(--space-lg);display:grid}.form__field{gap:var(--space-xs);display:grid}.form__field--inline{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.form__field--inline .text-input{width:auto;max-width:100%}.form__label{font-weight:600;font-size:var(--font-size-sm)}.form__hint{font-size:var(--font-size-xs);color:var(--color-muted)}.form__row{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.form__actions{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm);display:flex}select.text-input{appearance:auto}.text-input--area{height:auto;padding:var(--space-sm) var(--space-md);resize:vertical;font:inherit}.text-input--code{font-family:var(--font-display);font-size:var(--font-size-xl);letter-spacing:.2em;text-transform:uppercase}.inline-form{gap:var(--space-sm);margin-bottom:var(--space-md);max-width:480px;display:flex}.btn--danger{background:var(--color-error);border-color:var(--color-error);color:var(--color-on-dark)}.btn--danger:hover{background:var(--band-support-fg)}.modal{z-index:100;padding:var(--space-lg);background:#0f1b3373;place-items:center;display:grid;position:fixed;inset:0}.modal__box{width:min(520px,100%);max-height:calc(100vh - 2 * var(--space-lg));border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;display:flex}.modal__box--wide{width:min(920px,100%)}.modal--drawer{place-items:stretch end;padding:0}.modal--drawer .modal__box{border-radius:0;width:min(460px,100%);height:100%;max-height:none}.modal__head{justify-content:space-between;align-items:flex-start;gap:var(--space-md);padding:var(--space-lg) var(--space-lg) var(--space-sm) var(--space-xl);display:flex}.modal__titles{min-width:0}.modal__title{font-size:var(--font-size-xl);overflow-wrap:anywhere}.modal__subtitle{color:var(--color-muted);font-size:var(--font-size-sm)}.modal__body{padding:var(--space-sm) var(--space-xl) var(--space-xl);overflow-y:auto}@media (prefers-reduced-motion:no-preference){.modal--drawer .modal__box{animation:.18s ease-out drawer-in}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}}.drawer-section{padding:var(--space-md) 0;border-top:1px solid var(--color-border)}.drawer-section:first-child{border-top:0}.next-step{gap:var(--space-sm);color:var(--color-text);display:flex}.next-step>svg{color:var(--color-accent);flex:none;margin-top:2px}.mastery,.results{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.mastery__row{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);grid-template-columns:minmax(0,1fr) 96px 64px;display:grid}.mastery__value{text-align:right;font-weight:600}.results__row{justify-content:space-between;align-items:center;gap:var(--space-md);font-size:var(--font-size-sm);display:flex}.results__score,.work__score{min-width:72px;padding:2px var(--space-sm);border-radius:var(--radius-pill);text-align:center;font-size:var(--font-size-xs);flex:none;font-weight:600}.work{gap:var(--space-sm);margin:0;padding:0;list-style:none;display:grid}.work__item{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex}.work__text{flex:1;min-width:0}.work__instructions{margin-top:var(--space-xs);font-size:var(--font-size-sm);display:block}button.resource{width:100%;min-height:var(--touch-target);background:var(--color-surface);text-align:left;transition:border-color .15s}button.resource:hover{border-color:var(--color-accent);background:var(--color-accent-softer)}.resource-group__ref{font-size:var(--font-size-xs);color:var(--color-muted)}.roadmap{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.roadmap__item{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--color-border);display:flex}.doc-toolbar{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.doc-page{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);font-size:var(--font-size-md);padding:18mm 16mm}.doc-page__brand{align-items:center;gap:var(--space-md);padding-bottom:var(--space-md);margin-bottom:var(--space-lg);border-bottom:3px solid var(--institution-color);display:flex}.doc-page__institution{flex-direction:column;flex:1;min-width:0;display:flex}.doc-page__name{font-family:var(--font-display);font-weight:700;font-size:var(--font-size-lg)}.doc-page__context{font-size:var(--font-size-sm);color:var(--color-muted)}.doc-page__kind{padding:2px var(--space-md);border-radius:var(--radius-pill);background:var(--institution-color);color:var(--institution-on);font-size:var(--font-size-xs);white-space:nowrap;font-weight:600}.doc-page__title{font-size:var(--font-size-2xl)}.doc-page__lesson{margin-bottom:var(--space-lg);color:var(--color-muted)}.doc-page__header{width:100%;margin-bottom:var(--space-lg);border-collapse:collapse;font-size:var(--font-size-sm)}.doc-page__header th,.doc-page__header td{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border-strong);text-align:left;vertical-align:top}.doc-page__header th{background:var(--color-surface-muted);width:22%}.doc-page__body table{border-collapse:collapse;width:100%;margin:var(--space-sm) 0 var(--space-md);font-size:var(--font-size-sm)}.doc-page__body th,.doc-page__body td{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border-strong);text-align:left;vertical-align:top}.doc-page__body ol,.doc-page__body ul{margin:var(--space-xs) 0 var(--space-md);padding-left:1.5em}.doc-page__body h2,.doc-page__body h3{margin-top:var(--space-lg);font-size:var(--font-size-lg)}.doc-page__footer{margin-top:var(--space-xl);padding-top:var(--space-sm);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-muted);justify-content:space-between;display:flex}@media (max-width:899px){.lms{padding:var(--space-lg)}.question{grid-template-columns:32px minmax(0,1fr) 72px}.question__bar{grid-area:2/2/auto/4}.work__item{flex-wrap:wrap}.doc-page{padding:var(--space-lg)}.join-code{align-items:flex-start}}@media print{@page{size:A4;margin:14mm}html.printing-document,html.printing-document body{background:0 0;height:auto;overflow:visible}html.printing-document body>:not(.modal),html.printing-document .modal__head,html.printing-document .doc-toolbar{display:none!important}html.printing-document .modal,html.printing-document .modal__box,html.printing-document .modal__body{width:auto;max-height:none;box-shadow:none;background:0 0;padding:0;display:block;position:static;overflow:visible}html.printing-document .doc-page{box-shadow:none;border:0;padding:0;font-size:11pt}.doc-page tr,.doc-page li,.doc-page p{break-inside:avoid}.doc-page__kind,.doc-page__brand{-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact}}.starfield{width:100%;height:100%;display:block;position:absolute;inset:0}.app-layer{display:contents}.splash{z-index:200;background:radial-gradient(ellipse at 50% 55%, var(--scene-sky) 0%, var(--brand-navy) 55%, var(--scene-deep) 100%);color:var(--color-on-dark);cursor:pointer;--splash-ink:var(--brand-ink-bright);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.splash__glow{opacity:0;pointer-events:none;background:radial-gradient(circle,#f5b8418c 0%,#1a56db40 35%,#0000 70%);border-radius:50%;width:70vmin;height:70vmin;animation:2.6s ease-out 1.15s forwards splash-glow;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)scale(.2)}.splash__rays{opacity:0;pointer-events:none;background:repeating-conic-gradient(#f5b84112 0deg 4deg,#0000 4deg 18deg);width:160vmax;height:160vmax;animation:1.2s ease-out 1.2s forwards splash-rays-in,24s linear 1.2s infinite splash-rays-turn;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)rotate(0);-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 45%);mask-image:radial-gradient(circle,#000 0%,#0000 45%)}.splash__center{text-align:center;padding:0 var(--space-xl);flex-direction:column;align-items:center;margin-top:-4vh;display:flex;position:relative}.splash__mark{width:260px;height:260px;margin-bottom:var(--space-lg);place-items:center;display:grid;position:relative}.splash__logo{filter:drop-shadow(0 0 24px #3b7bff59);position:relative;overflow:visible}.petal{transform-box:fill-box;transform-origin:50%;opacity:0;animation:.9s cubic-bezier(.2,.9,.25,1.15) forwards petal-in}.petal--n{fill:var(--color-on-dark);--from:translate(-60px, -160px) rotate(-120deg) scale(.4);animation-delay:.25s}.petal--e{fill:var(--splash-ink);--from:translate(170px, -50px) rotate(120deg) scale(.4);animation-delay:.4s}.petal--s{fill:var(--color-on-dark);--from:translate(60px, 170px) rotate(-120deg) scale(.4);animation-delay:.55s}.petal--w{fill:var(--splash-ink);--from:translate(-170px, 50px) rotate(120deg) scale(.4);animation-delay:.7s}.splash__core{fill:var(--brand-gold);transform-box:fill-box;transform-origin:50%;animation:.55s cubic-bezier(.3,1.6,.5,1) 1.1s forwards core-pop,2.4s ease-in-out 1.7s infinite core-pulse;transform:scale(0)}.splash__ring{border:2px solid var(--brand-gold);opacity:0;border-radius:50%;width:60px;height:60px;animation:1.1s ease-out 1.2s forwards ring-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.splash__orbit{opacity:0;border:1px solid #8fb3ff2e;border-radius:50%;animation:.8s ease-out 1.5s forwards orbit-in,18s linear 1.5s infinite orbit-turn;position:absolute;inset:0}.splash__planet{width:36px;height:36px;color:var(--color-on-dark-muted);transform:rotate(calc(var(--i) * 360deg / var(--n))) translateY(-130px) rotate(calc(var(--i) * -360deg / var(--n)));background:#0f1b33d9;border:1px solid #8fb3ff59;border-radius:50%;place-items:center;margin:-18px 0 0 -18px;display:grid;position:absolute;top:50%;left:50%}.splash__planet svg{animation:18s linear 1.5s infinite reverse orbit-turn}.splash__word{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-on-dark);margin:0;font-size:clamp(2.4rem,1.2rem + 4.6vw,4.6rem);font-weight:700;line-height:1.05}.splash__letter{opacity:0;filter:blur(6px);animation:letter-up .6s calc(1.45s + var(--i) * 45ms) cubic-bezier(.2, .8, .2, 1) forwards;display:inline-block;transform:translateY(.6em)rotate(6deg)}.splash__by{margin:var(--space-xs) 0 0;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--brand-gold);opacity:0;font-weight:600;animation:.9s ease-out 2.05s forwards tracking-in}.splash__tagline{margin:var(--space-lg) 0 0;color:var(--color-on-dark-muted);opacity:0;font-size:clamp(1rem,.9rem + .5vw,1.25rem);animation:.8s ease-out 2.35s forwards fade-up;transform:translateY(8px)}.splash__welcome{align-items:center;gap:var(--space-md);margin-top:var(--space-xl);padding:var(--space-sm) var(--space-lg) var(--space-sm) var(--space-sm);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;opacity:0;background:#ffffff14;border:1px solid #ffffff2e;animation:.7s ease-out 2.8s forwards fade-up;display:flex;transform:translateY(10px)}.splash__school{font-size:var(--font-size-sm);color:var(--color-on-dark-muted);display:block}.splash__progress{background:#ffffff1f;border-radius:2px;width:min(280px,60vw);height:2px;position:absolute;bottom:9vh;left:50%;overflow:hidden;transform:translate(-50%)}.splash__progress span{background:linear-gradient(90deg, var(--splash-ink), var(--brand-gold));transform-origin:0;width:100%;height:100%;animation:3.4s cubic-bezier(.4,0,.2,1) .1s forwards progress;display:block;transform:scaleX(0)}.splash__skip{right:var(--space-xl);bottom:var(--space-xl);align-items:center;gap:var(--space-xs);min-height:var(--touch-target);padding:0 var(--space-lg);border-radius:var(--radius-pill);color:var(--color-on-dark);font-weight:600;font-size:var(--font-size-sm);background:#ffffff0f;border:1px solid #ffffff40;display:inline-flex;position:absolute}.splash__skip:hover{background:#ffffff24}.splash__skip:focus-visible{box-shadow:var(--focus-ring-dark)}.splash.is-leaving{pointer-events:none;animation:.7s cubic-bezier(.6,0,.3,1) forwards splash-out}.splash.is-leaving .splash__center{animation:.7s cubic-bezier(.6,0,.3,1) forwards center-out}@keyframes petal-in{0%{opacity:0;transform:var(--from)}to{opacity:1;transform:none}}@keyframes core-pop{to{transform:scale(1)}}@keyframes core-pulse{50%{filter:drop-shadow(0 0 6px var(--brand-gold))}}@keyframes ring-out{0%{opacity:.9;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(7)}}@keyframes splash-glow{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)}25%{opacity:1}to{opacity:.55;transform:translate(-50%,-50%)scale(1)}}@keyframes splash-rays-in{to{opacity:1}}@keyframes splash-rays-turn{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes orbit-in{0%{opacity:0;transform:scale(.6)}to{opacity:1}}@keyframes orbit-turn{to{rotate:360deg}}@keyframes letter-up{to{opacity:1;filter:none;transform:none}}@keyframes tracking-in{0%{opacity:0;letter-spacing:.6em}to{opacity:1;letter-spacing:.1em}}@keyframes fade-up{to{opacity:1;transform:none}}@keyframes progress{to{transform:scaleX(1)}}@keyframes splash-out{0%{clip-path:circle(150% at 50% 44%)}to{clip-path:circle(0% at 50% 44%)}}@keyframes center-out{to{opacity:0;transform:scale(1.6)}}@media (max-height:640px){.splash__mark{width:200px;height:200px}.splash__planet{transform:rotate(calc(var(--i) * 360deg / var(--n))) translateY(-100px) rotate(calc(var(--i) * -360deg / var(--n)))}}@media (prefers-reduced-motion:reduce){.splash *,.splash,.splash.is-leaving,.splash.is-leaving .splash__center{animation:none!important}.petal,.splash__letter,.splash__by,.splash__tagline,.splash__welcome,.splash__orbit{opacity:1;filter:none;transform:none}.splash__planet{transform:rotate(calc(var(--i) * 360deg / var(--n))) translateY(-130px) rotate(calc(var(--i) * -360deg / var(--n)))}.splash__core{transform:none}.splash__glow{opacity:.5;transform:translate(-50%,-50%)}.splash__progress{display:none}}.entry{--entry-accent:var(--brand-ink);--entry-on-accent:var(--color-on-dark);min-height:100vh;background:var(--color-bg);grid-template-columns:minmax(380px,46%) 1fr;min-height:100dvh;display:grid}.entry__hero{background:radial-gradient(ellipse at 30% 20%, var(--scene-sky-soft) 0%, var(--brand-navy) 60%, var(--scene-deep) 100%);color:var(--color-on-dark);position:relative;overflow:hidden}.entry__hero-tint{background:radial-gradient(circle at 80% 85%, var(--entry-accent) 0%, transparent 55%);opacity:0;mix-blend-mode:screen;transition:opacity .6s;position:absolute;inset:0}.entry--branded .entry__hero-tint{opacity:.45}.entry__hero-content{gap:var(--space-xl);height:100%;padding:clamp(var(--space-xl), 5vw, 64px);flex-direction:column;display:flex;position:relative}.entry__logo{width:190px;height:auto}.entry__hero-school{margin-top:auto;animation:.6s ease-out both fade-up;transform:translateY(8px)}.entry__hero-school .avatar{margin-bottom:var(--space-lg);box-shadow:0 0 0 4px #ffffff26}.entry__hero-overline{margin:0 0 var(--space-xs);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--brand-gold);font-weight:600}.entry__hero-title{letter-spacing:-.015em;color:var(--color-on-dark);margin:0;font-size:clamp(1.9rem,1.1rem + 2.4vw,3.1rem);line-height:1.08}.entry__hero-lede{max-width:46ch;margin:var(--space-md) 0 0;color:var(--color-on-dark-muted);font-size:var(--font-size-lg)}.entry__features{gap:var(--space-sm);color:var(--color-on-dark-muted);margin:0;padding:0;list-style:none;display:grid}.entry__features li{align-items:center;gap:var(--space-sm);display:flex}.entry__features svg{color:var(--brand-gold)}.entry__footer{font-size:var(--font-size-xs);color:#fff9;margin:0}.entry__panel{padding:var(--space-2xl) var(--space-xl);place-items:center;display:grid;overflow-y:auto}.entry-card{width:min(460px,100%);padding:var(--space-2xl);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);animation:.45s ease-out both fade-up;transform:translateY(8px)}.entry-card--school{border-top:4px solid var(--entry-accent)}.entry-card__title{font-size:var(--font-size-2xl);line-height:1.15}.entry-card__lede{margin:var(--space-xs) 0 var(--space-lg);color:var(--color-muted)}.entry-card__back{margin:calc(-1 * var(--space-md)) 0 var(--space-sm)}.entry-card__brand{align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg);display:flex}.entry-card__brand-text{min-width:0}.entry-card__brand .entry-card__title{font-size:var(--font-size-xl);overflow-wrap:anywhere}.entry-card__brand .entry-card__lede{margin-bottom:0}.entry-card__wide{justify-content:center;width:100%}.entry-card__demo{margin-top:var(--space-md)}.entry-card__switch{text-align:center;font-size:var(--font-size-sm);color:var(--color-muted);margin:0}.entry-card__switch .link-button{min-height:0;color:var(--entry-accent)}.entry-card__note{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm);color:var(--color-muted);margin:0;display:flex}.entry-card__note svg{flex:none;margin-top:2px}.entry-card__divider{align-items:center;gap:var(--space-md);margin:var(--space-xl) 0 var(--space-md);font-size:var(--font-size-sm);color:var(--color-muted);display:flex}.entry-card__divider:before,.entry-card__divider:after{content:"";border-top:1px solid var(--color-border);flex:1}.entry-search{color:var(--color-subtle);position:relative}.entry-search svg{left:var(--space-md);position:absolute;top:50%;transform:translateY(-50%)}.entry-search .text-input{padding-left:40px}.institution-list{gap:var(--space-xs);max-height:300px;margin:var(--space-md) 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.institution-list__empty{padding:var(--space-md)}.institution-option{align-items:center;gap:var(--space-md);width:100%;min-height:60px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-left:4px solid var(--option-accent,var(--brand-ink));border-radius:var(--radius-md);background:var(--color-surface);text-align:left;color:var(--color-muted);transition:border-color .15s,background .15s,transform .15s;display:flex}.institution-option:hover{background:var(--color-accent-softer);transform:translate(2px)}.institution-option__text{flex-direction:column;flex:1;min-width:0;display:flex}.institution-option__name{color:var(--color-text);font-weight:600}.institution-option__level{font-size:var(--font-size-xs)}.segmented{gap:var(--space-2xs);margin-bottom:var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface-sunken);grid-template-columns:1fr 1fr;padding:3px;display:grid}.segmented__option{justify-content:center;align-items:center;gap:var(--space-sm);min-height:var(--touch-target);color:var(--color-muted);background:0 0;border:0;border-radius:8px;font-weight:600;display:inline-flex}.segmented__option[aria-selected=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.segmented__option[aria-selected=true] svg{color:var(--entry-accent)}.btn--accent{background:var(--entry-accent);border-color:var(--entry-accent);min-height:48px;color:var(--entry-on-accent)}.btn--accent:hover{filter:brightness(1.08);background:var(--entry-accent)}.password{position:relative}.password .text-input{padding-right:48px}.password__toggle{position:absolute;top:0;right:0}.checkbox{align-items:center;gap:var(--space-sm);min-height:32px;font-size:var(--font-size-sm);display:flex}.checkbox input{width:18px;height:18px;accent-color:var(--entry-accent)}.entry .text-input:focus-visible{border-color:var(--entry-accent)}.menu__signed-in{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-size:var(--font-size-sm);color:var(--color-muted);border-bottom:1px solid var(--color-border);margin:0;display:flex}@media (max-width:899px){.entry{grid-template-rows:auto 1fr;grid-template-columns:1fr}.entry__hero-content{gap:var(--space-md);padding:var(--space-xl)}.entry__hero-school .avatar,.entry__features,.entry__footer{display:none}.entry__hero-lede{font-size:var(--font-size-md)}.entry__panel{padding:var(--space-lg);align-items:start}.entry-card{padding:var(--space-xl)}}@media (prefers-reduced-motion:reduce){.entry-card,.entry__hero-school{animation:none;transform:none}}.admin{grid-template-columns:248px 1fr;grid-template-rows:var(--top-bar-height) 1fr;height:100vh;background:var(--color-bg);height:100dvh;display:grid}.admin__bar{align-items:center;gap:var(--space-lg);min-width:0;padding:0 var(--space-xl);background:radial-gradient(ellipse at 20% 0%, var(--scene-sky-soft) 0%, var(--brand-navy) 70%);color:var(--color-on-dark);grid-column:1/-1;display:flex}.admin__logo{flex:none;display:block}.admin__logo-button{padding:var(--space-xs);border-radius:var(--radius-sm);background:0 0;border:0;flex:none}.admin__logo-button:focus-visible{box-shadow:var(--focus-ring-dark)}.admin__title{padding:2px var(--space-sm);border-radius:var(--radius-sm);background:var(--brand-gold);color:var(--brand-navy);font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase;flex:none;font-weight:700}.admin__who{align-items:center;gap:var(--space-xs);min-width:0;font-size:var(--font-size-sm);color:var(--color-on-dark-muted);margin-left:auto;display:inline-flex}.admin__nav{gap:var(--space-2xs);padding:var(--space-lg) var(--space-md);border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;display:flex;overflow-y:auto}.admin__nav-item{align-items:center;gap:var(--space-sm);min-height:var(--touch-target);padding:0 var(--space-md);border-radius:var(--radius-md);color:var(--color-muted);text-align:left;background:0 0;border:0;font-weight:600;display:flex}.admin__nav-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.admin__nav-item.is-active{background:var(--color-accent-soft);color:var(--color-accent)}.admin__note{gap:var(--space-xs);padding:var(--space-md);font-size:var(--font-size-xs);color:var(--color-muted);margin:auto 0 0;display:flex}.admin__note svg{flex:none;margin-top:2px}.admin__main{min-width:0;padding:var(--space-xl) max(var(--space-xl), calc((100% - 1180px) / 2));overflow-y:auto}.admin__kpis{margin-top:var(--space-md)}.admin__h2{margin-top:var(--space-xl)}.admin-institution{align-items:center;gap:var(--space-sm);text-align:left;background:0 0;border:0;padding:0;display:flex}.admin-institution .data-table__main{color:var(--color-accent)}.admin-institution:hover .data-table__main{text-decoration:underline}.admin-detail__head{align-items:center;gap:var(--space-lg);min-width:0;display:flex}.admin-columns{gap:var(--space-lg);margin-top:var(--space-lg);grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);align-items:start;display:grid}.admin-two{gap:var(--space-xl);grid-template-columns:1fr 1fr;display:grid}.admin-actions{text-align:right}.admin-actions .btn{min-height:36px;padding:0 var(--space-sm);font-size:var(--font-size-sm)}.admin-fieldset{border:0;margin:0;padding:0}.admin-note{margin-top:var(--space-lg)}.admin-preview{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border-left:4px solid var(--preview);background:var(--color-surface-muted);display:flex}.admin-preview__initials{background:var(--preview);color:var(--preview-on)}.admin-preview__name{font-weight:600;display:block}.admin-preview__level{font-size:var(--font-size-xs);color:var(--color-muted);display:block}.crest-input{gap:var(--space-sm);flex-wrap:wrap;display:flex}.crest-input .btn{cursor:pointer}.temp-password{gap:var(--space-xs);padding:var(--space-lg);border-radius:var(--radius-md);background:var(--color-warning-soft);border:1px solid var(--band-fair-bg);justify-items:start;display:grid}.temp-password__title{align-items:center;gap:var(--space-xs);margin:0;font-weight:600;display:flex}.temp-password__line{font-size:var(--font-size-sm);margin:0}.temp-password__value{margin:var(--space-xs) 0;font-family:var(--font-display);font-size:var(--font-size-2xl);letter-spacing:.06em;-webkit-user-select:all;user-select:all;font-weight:700}.audit{gap:var(--space-xs);margin:0;padding:0;list-style:none;display:grid}.audit__row{gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-sm);grid-template-columns:130px 1fr;display:grid}.audit__when{color:var(--color-muted);white-space:nowrap}.entry-card__note--warn{background:var(--color-error-soft);color:var(--color-error)}.entry-card__platform{margin-top:var(--space-lg)}.entry-card__platform .link-button{color:var(--color-muted)}@media (max-width:1100px){.admin-columns,.admin-two{grid-template-columns:1fr}}@media (max-width:899px){.admin{grid-template-columns:1fr;grid-template-rows:var(--top-bar-height) auto 1fr}.admin__nav{padding:var(--space-sm);border-right:0;border-bottom:1px solid var(--color-border);flex-direction:row;overflow-x:auto}.admin__nav-item{flex:none}.admin__note,.admin__title,.admin__label{display:none}.admin__main{padding:var(--space-lg)}.admin__bar{gap:var(--space-sm);padding:0 var(--space-lg)}}.player{z-index:150;background:var(--brand-navy);color:var(--color-on-dark);grid-template-rows:56px 1fr 76px;display:grid;position:fixed;inset:0}.player__bar{align-items:center;gap:var(--space-md);min-width:0;padding:0 var(--space-lg);border-bottom:1px solid var(--color-on-dark-line);display:flex}.player__titles{flex-direction:column;flex:1;min-width:0;display:flex}.player__lesson{font-size:var(--font-size-xs);color:var(--color-on-dark-muted)}.player__segment{align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-weight:600;font-size:var(--font-size-lg);display:flex}.player__steps{font-family:var(--font-body);color:var(--color-on-dark-muted);font-weight:400}.player__clock{align-items:center;gap:var(--space-xs);padding:4px var(--space-md);border-radius:var(--radius-pill);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--font-size-lg);background:#ffffff14;display:inline-flex}.player__clock.is-low{background:var(--brand-gold);color:var(--brand-navy)}.player__clock.is-over{background:var(--color-error);color:var(--color-on-dark)}.player__clock.is-paused{opacity:.6}.player__lesson-time{font-size:var(--font-size-sm);color:var(--color-on-dark-muted);white-space:nowrap}.player__actions{gap:var(--space-xs);display:flex}.seg-chip{border-radius:var(--radius-pill);background:var(--chip,var(--brand-ink));color:var(--color-on-dark);font-family:var(--font-body);font-size:var(--font-size-xs);letter-spacing:.03em;white-space:nowrap;align-items:center;gap:4px;padding:1px 8px;font-weight:700;display:inline-flex}.seg-chip--hook,.seg-tone--hook{--chip:var(--seg-hook)}.seg-chip--teach,.seg-tone--teach{--chip:var(--seg-teach)}.seg-chip--visit,.seg-tone--visit{--chip:var(--seg-visit)}.seg-chip--simulate,.seg-tone--simulate{--chip:var(--seg-simulate)}.seg-chip--reallife,.seg-tone--reallife{--chip:var(--seg-reallife)}.seg-chip--practice,.seg-tone--practice{--chip:var(--seg-practice)}.seg-chip--discuss,.seg-tone--discuss{--chip:var(--seg-discuss)}.seg-chip--assess,.seg-tone--assess{--chip:var(--seg-assess)}.seg-chip--wrapup,.seg-tone--wrapup{--chip:var(--seg-wrapup)}.player__stage{min-height:0;position:relative;overflow:hidden}.player__content{transition:transform .35s;position:absolute;inset:0}.player__content.can-zoom{cursor:zoom-in}.player__content.is-zoomed{cursor:zoom-out;transform:scale(1.9)}.player__split{grid-template-columns:1fr 1fr;height:100%;display:grid}.player__split-board,.player__split-scene{min-width:0;position:relative;overflow:hidden}.player__split-board{border-right:2px solid var(--color-on-dark-line)}.seg{position:absolute;inset:0;overflow:auto}.seg--paper{padding:clamp(var(--space-xl), 4vw, 64px) clamp(var(--space-xl), 7vw, 120px) var(--space-2xl);padding-right:calc(clamp(var(--space-xl), 7vw, 120px) + 56px);background:var(--color-bg);color:var(--color-text);font-size:clamp(1.05rem,.7rem + .9vw,1.5rem)}.player-scene{position:absolute;inset:0}.player-scene--loading{background:radial-gradient(circle at 50% 50%, var(--scene-sky) 0%, var(--brand-navy) 70%)}.player-scene--image{object-fit:cover;width:100%;height:100%}.player-scene .world-view,.player-sim .stage{width:100%;height:100%;position:absolute;inset:0}.world-view .stage__three{inset:0;position:absolute!important}.seg-question{left:50%;bottom:var(--space-2xl);align-items:center;gap:var(--space-lg);width:min(900px,100% - 160px);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);background:var(--color-stage-glass-hover);border:1px solid var(--color-on-dark-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;position:absolute;transform:translate(-50%)}.seg-question__mark{background:var(--brand-gold);width:56px;height:56px;color:var(--brand-navy);font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:2rem;font-weight:700;display:grid}.seg-question__text{font-family:var(--font-display);margin:0;font-size:clamp(1.25rem,.8rem + 1.3vw,2.1rem);font-weight:600;line-height:1.2}.board{padding:var(--space-xl) calc(var(--space-xl) + 56px) var(--space-xl) var(--space-xl);background:radial-gradient(circle at 50% 0%, var(--scene-sky-soft) 0%, var(--brand-navy) 75%);place-items:center;display:grid}.board__sheet{width:min(1180px,100%);max-height:100%;padding:clamp(var(--space-xl), 3.5vw, 56px) clamp(var(--space-xl), 4.5vw, 72px);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);font-size:clamp(1.05rem,.7rem + .9vw,1.55rem);position:relative;overflow:auto}.board__title{margin:0 0 var(--space-lg);padding-bottom:var(--space-md);border-bottom:3px solid var(--institution-color);font-size:clamp(1.6rem,1rem + 1.8vw,2.7rem)}.board__body>*+*{margin-top:var(--space-lg)}.board__text{margin:0}.board__bullets{margin:0;padding-left:1.2em}.board__bullets li+li{margin-top:var(--space-sm)}.board__equation{padding:var(--space-md) var(--space-lg);border-left:4px solid var(--brand-gold);border-radius:var(--radius-sm);background:var(--color-surface-muted);font-family:var(--font-display);margin:0;font-size:1.2em;font-weight:600}.board__example{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background:var(--color-accent-softer);border:1px solid var(--color-accent-soft)}.board__example-title{align-items:center;gap:var(--space-sm);margin:0 0 var(--space-sm);color:var(--color-accent);font-weight:700;display:flex}.board__example ol{margin:0;padding-left:1.4em}.board__term{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:var(--color-warning-soft);margin:0}.board__table{border-collapse:collapse;width:100%;font-size:.85em}.board__table th,.board__table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);text-align:left}.board__table th{background:var(--color-surface-muted)}.board__table td:not(:first-child),.board__table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.board__table--small{margin-top:var(--space-md);font-size:.8em}.board__count{right:var(--space-lg);bottom:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-subtle);margin:0;position:absolute}.seg-card{left:var(--space-xl);bottom:var(--space-xl);width:min(460px,100% - 140px);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg);font-size:clamp(1rem,.8rem + .4vw,1.2rem);position:absolute}.seg-card__overline{align-items:center;gap:var(--space-xs);font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--seg-visit);margin:0;font-weight:700;display:flex}.seg-card__title{margin:var(--space-xs) 0 var(--space-sm);font-size:1.5em}.seg-card__question{gap:var(--space-sm);margin:var(--space-md) 0 0;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-warning-soft);color:var(--color-text);display:flex}.seg-card__question svg{flex:none;margin-top:3px}.seg--sim{grid-template-columns:1fr minmax(300px,360px);margin-right:56px;display:grid;overflow:hidden}.player-sim{min-width:0;position:relative}.seg-side{padding:var(--space-lg);background:var(--color-surface);color:var(--color-text);overflow-y:auto}.seg-side__title{margin:0 0 var(--space-sm);font-size:var(--font-size-xl)}.seg-tasks{margin:0 0 var(--space-lg);font-size:var(--font-size-lg);padding-left:1.3em}.seg-tasks li+li{margin-top:var(--space-sm)}.seg-side__panel{padding-top:var(--space-md);border-top:1px solid var(--color-border)}.seg-overline{margin:0 0 var(--space-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);font-size:.7em;font-weight:700}.seg-heading{margin:0 0 var(--space-xl);font-size:clamp(1.6rem,1rem + 1.8vw,2.7rem)}.seg-heading--big{font-size:clamp(1.7rem,1rem + 2.2vw,3rem);line-height:1.15}.seg-subheading{align-items:center;gap:var(--space-sm);margin:var(--space-xl) 0 var(--space-md);font-size:1.1em;display:flex}.seg-steps{margin:0;padding-left:1.3em}.seg-steps li+li{margin-top:var(--space-sm)}.seg-roles{margin-top:var(--space-lg)}.seg-deliverable{align-items:baseline;gap:var(--space-sm);margin:var(--space-xl) 0 0;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background:var(--color-success-soft);display:flex}.reallife{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.reallife__card{padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);border-top:4px solid var(--seg-reallife)}.reallife__card h3{margin:0 0 var(--space-sm);font-size:1.15em}.reallife__card p{margin:0}.reallife__source{color:var(--color-muted);font-size:.7em;margin-top:var(--space-sm)!important}.careers{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:0;padding:0;list-style:none;display:grid}.careers__item{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;display:flex}.careers__where{color:var(--color-muted);font-size:.75em}.groups{gap:var(--space-sm);margin-top:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));font-size:.75em;display:grid}.groups__group{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.poll{gap:var(--space-md);display:grid}.poll__option,.answers__option{align-items:center;gap:var(--space-md);width:100%;min-height:64px;padding:var(--space-sm) var(--space-lg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;display:flex;position:relative;overflow:hidden}.poll__letter{z-index:1;background:var(--color-surface-sunken);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-weight:700;display:grid;position:relative}.poll__text{z-index:1;flex:1;position:relative}.poll__count{z-index:1;font-family:var(--font-display);font-weight:700;position:relative}.poll__bar{background:var(--color-accent-soft);transition:width .3s;position:absolute;inset:0 auto 0 0}.answers{gap:var(--space-md);margin:0 0 var(--space-lg);padding:0;list-style:none;display:grid}.answers__option.is-correct{border-color:var(--color-success);background:var(--color-success-soft);box-shadow:inset 4px 0 0 var(--color-success)}.tps{gap:var(--space-md);margin:0;padding-left:1.3em;display:grid}.debate{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.debate__side{border-radius:var(--radius-lg);background:var(--color-success-soft);min-height:200px;font-family:var(--font-display);place-items:center;font-size:1.6em;font-weight:700;display:grid}.debate__side--against{background:var(--color-error-soft)}.wrapup{gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}.draw-layer{z-index:5;pointer-events:none;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.draw-layer.is-active{pointer-events:auto;cursor:crosshair}.draw-layer.is-erasing{cursor:cell}.whiteboard{z-index:6;background:var(--color-surface);position:absolute;inset:0}.whiteboard .draw-layer{pointer-events:auto;cursor:crosshair}.whiteboard__close{left:var(--space-lg);top:var(--space-lg);z-index:7;position:absolute}.spotlight{z-index:8;background:radial-gradient(circle var(--r) at var(--x) var(--y), transparent 0 96%, #000000d1 100%);cursor:none;position:absolute;inset:0}.dock{right:var(--space-sm);z-index:10;padding:var(--space-xs);border-radius:var(--radius-lg);background:var(--color-stage-glass-hover);border:1px solid var(--color-on-dark-line);flex-direction:column;gap:2px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.dock__tool{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-on-dark);background:0 0;border:0;place-items:center;display:grid}.dock__tool:hover{background:#ffffff1f}.dock__tool.is-on{background:var(--brand-gold);color:var(--brand-navy)}.dock__tool:disabled{opacity:.35}.dock__tool:focus-visible{box-shadow:var(--focus-ring-dark)}.dock__colours{padding-top:var(--space-xs);border-top:1px solid var(--color-on-dark-line);justify-items:center;gap:4px;display:grid}.dock__colour{border:2px solid #0000;border-radius:50%;width:22px;height:22px}.dock__colour.is-on{border-color:var(--color-on-dark)}.tool-panels{right:72px;bottom:var(--space-lg);z-index:11;align-items:flex-end;gap:var(--space-sm);max-height:calc(100% - 2 * var(--space-lg));flex-direction:column-reverse;display:flex;position:absolute;overflow:auto}.tool-panel{width:320px;padding:var(--space-md) var(--space-lg) var(--space-lg);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-lg)}.tool-panel__head{justify-content:space-between;align-items:center;display:flex}.tool-panel__head h3{font-size:var(--font-size-lg);margin:0}.tool-row{align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.timer-face,.picker-face{margin:var(--space-sm) 0;text-align:center;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:3rem;font-weight:700}.timer-face.is-done{color:var(--color-error)}.picker-face{font-size:2.2rem}.glossary{max-height:320px;margin:var(--space-sm) 0 0;overflow:auto}.glossary dt{margin-top:var(--space-sm);font-weight:700}.glossary dd{font-size:var(--font-size-sm);margin:0}.calc-input{font-variant-numeric:tabular-nums}.calc-result{min-height:1.6em;margin:var(--space-xs) 0;text-align:right;font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700}.calc-keys{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.calc-key{min-height:44px;font-size:var(--font-size-lg);justify-content:center}.blackout{z-index:20;cursor:pointer;background:#000;border:0;position:absolute;inset:0}.timeline{align-items:stretch;gap:var(--space-sm);min-width:0;padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-on-dark-line);display:flex}.timeline__nav{border:1px solid var(--color-on-dark-line);border-radius:var(--radius-md);width:56px;color:var(--color-on-dark);background:#ffffff0f;flex:none;place-items:center;display:grid}.timeline__nav--next{background:var(--brand-ink);border-color:var(--brand-ink)}.timeline__nav:hover{filter:brightness(1.2)}.timeline__list{flex:1;gap:4px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.timeline__item{flex-basis:0;min-width:76px}.timeline__seg{width:100%;height:100%;padding:2px var(--space-sm) 6px;border-radius:var(--radius-sm);color:var(--color-on-dark-muted);text-align:left;box-shadow:inset 0 3px 0 var(--chip);background:#ffffff12;border:0;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.timeline__seg.is-done{color:var(--color-on-dark);background:#ffffff1a}.timeline__seg.is-current{background:var(--color-on-dark);color:var(--brand-navy);box-shadow:inset 0 4px 0 var(--chip)}.timeline__type{font-size:var(--font-size-2xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-weight:700;display:flex;overflow:hidden}.timeline__title{font-size:var(--font-size-xs)}.timeline__progress{background:var(--chip);transform-origin:0;height:3px;position:absolute;bottom:0;left:0;right:0}.player .prepare{background:var(--color-bg);color:var(--color-text);grid-row:1/-1;overflow-y:auto}.prepare{padding:var(--space-xl) max(var(--space-xl), calc((100% - 1000px) / 2)) var(--space-2xl)}.prepare__head{justify-content:space-between;align-items:flex-end;gap:var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.prepare__title{font-size:var(--font-size-2xl)}.prepare__controls{gap:var(--space-md);flex-wrap:wrap;display:flex}.segmented--inline{grid-template-columns:none;grid-auto-flow:column;margin:0;display:inline-grid}.segmented--inline .segmented__option{padding:0 var(--space-md)}.segmented__option[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.prepare__total{align-items:center;gap:var(--space-xs);margin:0 0 var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-warning-soft);flex-wrap:wrap;display:flex}.prepare__total.is-fit{background:var(--color-success-soft)}.prepare__total .link-button{min-height:0}.prepare__list{gap:var(--space-xs);margin:0 0 var(--space-lg);padding:0;list-style:none;display:grid}.prepare__row{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.prepare__row.is-skipped{opacity:.55}.prepare__row.is-skipped .prepare__name{text-decoration:line-through}.prepare__main{align-items:center;gap:var(--space-md);grid-template-columns:120px minmax(0,1fr) auto auto;display:grid}.prepare__name{gap:var(--space-sm);align-items:center;min-width:0;font-weight:600;display:flex}.prepare__minutes{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);display:flex}.prepare__minutes .text-input{width:72px}.prepare__buttons{gap:2px;display:flex}.prepare__notes{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.rot-up{transform:rotate(-90deg)}.rot-down{transform:rotate(90deg)}.prepare__add{padding:var(--space-lg);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.prepare__foot{justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-xl);display:flex}.review .programme-card{margin-bottom:var(--space-lg)}.review-follow{gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-error-soft);display:flex}.presenter{background:var(--color-bg);grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}.presenter--empty{place-content:center;justify-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center;color:var(--color-muted);display:grid}.presenter__bar{align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);background:var(--brand-navy);color:var(--color-on-dark);display:flex}.presenter__lesson{flex:1;font-weight:600}.presenter__used{font-family:var(--font-display);font-weight:700}.presenter__bar .hint-text{color:var(--color-on-dark-muted)}.presenter__grid{gap:var(--space-xl);padding:var(--space-xl);grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);display:grid}.presenter__title{align-items:center;gap:var(--space-sm);font-size:var(--font-size-2xl);display:flex}.presenter__clock{margin:var(--space-sm) 0 var(--space-lg);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:3.5rem;font-weight:700}.presenter__clock.is-low{color:var(--band-fair-fg)}.presenter__clock.is-over{color:var(--color-error)}.presenter__notes{gap:var(--space-sm);font-size:var(--font-size-lg);padding-left:1.2em;display:grid}.presenter__side .programme-card{padding:var(--space-lg)}.presenter__timeline{font-size:var(--font-size-sm);gap:2px;padding-left:1.4em;display:grid}.presenter__timeline .is-current{font-weight:700}.presenter__timeline .is-done .link-button{color:var(--color-muted)}.presenter__timeline .link-button{min-height:0}.presenter__controls{gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--brand-navy);display:flex}.presenter__next{justify-content:center;min-width:200px;margin-left:auto}@media (max-width:899px){.player__label,.player__lesson-time{display:none}.seg--sim{grid-template-rows:1fr auto;grid-template-columns:1fr}.seg-side{max-height:40%}.prepare__main{grid-template-columns:1fr auto}.presenter__grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.player__content{transition:none}}.teach-card{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(180deg, var(--color-accent-softer) 0%, var(--color-surface) 70%);box-shadow:var(--shadow-sm)}.teach-card__head{justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.teach-card__overline{font-size:var(--font-size-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:6px;font-weight:700;display:inline-flex}.teach-card__meta{font-size:var(--font-size-xs);color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.teach-card__title{margin:2px 0 var(--space-sm);font-family:var(--font-display);font-weight:600;font-size:var(--font-size-lg);line-height:1.25}.teach-card__strip{border-radius:var(--radius-pill);background:var(--color-surface-sunken);gap:2px;height:10px;display:flex;overflow:hidden}.teach-card__strip--loading{animation:1.2s ease-in-out infinite alternate teach-pulse}@keyframes teach-pulse{to{opacity:.5}}.teach-card__part{background:var(--chip);flex-basis:0;min-width:4px}.teach-card__flow{margin:6px 0 var(--space-md);font-size:var(--font-size-xs);color:var(--color-muted)}.teach-card__actions{gap:var(--space-sm);display:flex}.teach-card__teach{flex:1;justify-content:center}.teach-card__foot{justify-content:space-between;align-items:center;gap:2px var(--space-md);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-muted);flex-wrap:wrap;display:flex}.teach-card__class{align-items:center;gap:var(--space-xs);min-width:0;display:inline-flex}.teach-card__select{max-width:170px;min-height:32px;padding:0 var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;color:var(--color-text)}.teach-card__hint{align-items:center;gap:4px;display:inline-flex}.shell--present .teach-card__foot,.shell--present .teach-card__flow{display:none}@media (prefers-reduced-motion:reduce){.teach-card__strip--loading{animation:none}}.editor{gap:var(--space-md);display:grid}.editor-locked{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);background:var(--color-surface-sunken);font-size:var(--font-size-sm);flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.editor-group{gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0;display:grid;position:relative}.editor-group legend{padding:0 var(--space-xs);font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted);font-weight:700}.editor-group__remove{top:-6px;right:var(--space-sm);min-height:32px;font-size:var(--font-size-sm);position:absolute}.editor-block{gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-left:3px solid var(--color-accent-soft);display:grid}.editor-block__head{justify-content:space-between;align-items:center;display:flex}.editor-quiz{font-size:var(--font-size-sm);gap:2px;margin:0;padding:0;list-style:none;display:grid}.editor-quiz .checkbox{align-items:flex-start}.editor-errors ul{margin:0;padding-left:1.2em}.editor-reset{margin-right:auto}.prepare__buttons .btn.is-on{background:var(--color-accent-soft);color:var(--color-accent)}.render-world{background:var(--brand-navy);position:fixed;inset:0}.render-world .world-view,.render-world .stage__three{inset:0;position:absolute!important}.render-world .label-layer{display:none}.board__image{border-radius:var(--radius-md);max-width:100%;max-height:58vh;margin:0 auto;display:block}.editor-image{gap:var(--space-md);grid-template-columns:160px 1fr;align-items:start;display:grid}.editor-image img{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:160px}.teach-card__flowname{margin:-4px 0 var(--space-sm);font-size:var(--font-size-xs);color:var(--color-muted);align-items:center;gap:6px;font-weight:600;display:flex}.teach-card__scheme{gap:var(--space-md);margin:var(--space-sm) 0 0;font-size:var(--font-size-xs);color:var(--color-muted);grid-template-columns:1fr 1fr;display:grid}.teach-card__scheme span:last-child{text-align:right}.flows{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.flow-card{padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;flex-direction:column;gap:2px;display:flex}.flow-card:hover{border-color:var(--color-accent)}.flow-card.is-on{border-color:var(--color-accent);background:var(--color-accent-softer);box-shadow:inset 0 0 0 1px var(--color-accent)}.flow-card__name{font-weight:700}.flow-card__meta,.flow-card__phases{font-size:var(--font-size-xs);color:var(--color-muted)}.prepare__guide{font-size:var(--font-size-xs);color:var(--color-muted);margin-left:auto}.phase{margin-bottom:var(--space-md)}.phase__head{align-items:baseline;gap:var(--space-xs) var(--space-md);margin:var(--space-md) 0 var(--space-xs);padding-bottom:var(--space-xs);border-bottom:2px solid var(--color-border);flex-wrap:wrap;display:flex}.phase__title{font-size:var(--font-size-lg)}.phase__hint{font-size:var(--font-size-xs);color:var(--color-muted)}.phase__minutes{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.prepare__phase{min-height:36px;padding:0 var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--font-size-sm)}.toolbox{margin-top:var(--space-lg)}.toolbox__phase{align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);display:flex}.toolbox__phase .text-input{width:auto}.toolbox__list{gap:var(--space-xs);margin:0 0 var(--space-md);padding:0;list-style:none;display:grid}.toolbox__item{align-items:center;gap:var(--space-md);padding:var(--space-xs) var(--space-md);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);grid-template-columns:120px minmax(0,1fr) auto auto;display:grid}.toolbox__own{padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.print-deck{display:none}@media print{html.printing-deck,html.printing-deck body{height:auto;overflow:visible}html.printing-deck body>:not(.print-deck){display:none!important}html.printing-deck .print-deck{color:#151a23;font-family:var(--font-body);display:block}}@page{size:A4 landscape;margin:12mm}.print-deck__page{break-after:page;page-break-after:always;border-left:3px solid var(--institution-color);min-height:170mm;padding-left:8mm}.print-deck__head{color:#5a6372;gap:8mm;font-size:9pt;display:flex}.print-deck__label{text-transform:uppercase;letter-spacing:.06em;font-weight:700}.print-deck__title{margin:4mm 0 6mm;font-size:24pt}.print-deck__body{font-size:15pt}.print-deck__body.has-picture{grid-template-columns:1fr 1fr;gap:8mm;display:grid}.print-deck__body figure{margin:0}.print-deck__body figure img,.print-deck__own{max-width:100%;max-height:120mm}.print-deck__body figcaption{color:#5a6372;font-size:9pt}.print-deck__question{font-size:18pt;font-weight:700}.print-deck__equation{font-size:17pt;font-weight:700}.print-deck__body table{border-collapse:collapse}.print-deck__body th,.print-deck__body td{border:1px solid #cdd2da;padding:2mm 4mm}.timeline{padding-top:18px}.timeline__item{position:relative}.timeline__item.starts-phase:before{content:attr(data-phase);max-width:100%;font-size:var(--font-size-2xs);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:var(--brand-gold);font-weight:700;position:absolute;top:-16px;left:0;overflow:hidden}.timeline__item.starts-phase:not(:first-child){margin-left:8px}.tool-panel--wide{width:380px}.showme{gap:var(--space-sm);max-height:380px;display:grid;overflow:auto}.showme__group{margin:var(--space-sm) 0 var(--space-xs);font-size:var(--font-size-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted);font-weight:700}.showme__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.showme__item{width:100%;min-height:36px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:var(--color-surface-muted);text-align:left;font:inherit;font-size:var(--font-size-sm);border:0}.showme__item:hover{background:var(--color-accent-soft)}.showme-overlay{z-index:9;background:var(--brand-navy);position:absolute;inset:0}.showme-overlay__back{left:var(--space-lg);top:var(--space-lg);z-index:3;position:absolute}.player-sim--full{position:absolute;inset:0}.hands{gap:var(--space-xs);margin:var(--space-sm) 0;flex-wrap:wrap;display:flex}.marks{gap:2px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.marks__row{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);grid-template-columns:1fr auto auto;display:grid}.marks__btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);place-items:center;width:36px;height:32px;display:grid}.marks__btn.is-right{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.marks__btn.is-wrong{background:var(--color-error-soft);border-color:var(--color-error);color:var(--color-error)}.join-overlay{z-index:12;background:var(--color-stage-glass-hover);place-items:center;display:grid;position:absolute;inset:0}.join-overlay__card{justify-items:center;gap:var(--space-md);width:min(720px, calc(100% - 2 * var(--space-xl)));padding:var(--space-2xl);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);text-align:center;display:grid}.join-overlay__steps{font-size:var(--font-size-lg);margin:0}.join-overlay__code{font-family:var(--font-display);letter-spacing:.18em;color:var(--brand-navy);margin:0;font-size:clamp(3rem,2rem + 5vw,6rem);font-weight:700}.review-summary{margin:var(--space-md) 0 var(--space-sm)}
