.ga-scope{--ga-display:var(--font-newsreader),Georgia,serif;--ga-ui:var(--font-instrument-sans),system-ui,sans-serif;--ga-vn:var(--font-be-vietnam-pro),system-ui,sans-serif;--ga-bg:#fbfaf7;--ga-card:#fff;--ga-side-active:#f3f0e8;--ga-slate-bg:#f4f6fa;--ga-ink:#161513;--ga-muted:#76716a;--ga-subtle:#b3ada5;--ga-faint:#c9c4bc;--ga-border:#e7e3da;--ga-slate-border:#e3e7ee;--ga-yellow:#ffcd00;--ga-yellow-soft:rgba(255,205,0,.12);--ga-gold:#c79a00;--ga-red:#da291c;--ga-red-soft:rgba(218,41,28,.1);--ga-green:#1e9e61;--ga-green-soft:rgba(30,158,97,.12);--ga-blue:#2f6fc9;--ga-blue-soft:rgba(47,111,201,.12);--ga-violet:#7c56c8;--ga-violet-soft:rgba(124,86,200,.12);--ga-teal:#11888a;--ga-teal-soft:rgba(17,136,138,.12);--ga-orange:#e07b39;--ga-orange-soft:rgba(224,123,57,.12);--ga-navy:#27406b;--ga-navy-soft:rgba(39,64,107,.1);--ga-accent:var(--ga-navy);--ga-accent-soft:var(--ga-navy-soft);--ga-accent-ink:#fff;--ga-surface:var(--ga-bg);--ga-line:var(--ga-border);--ga-hdr-bg:var(--ga-card);--ga-hdr-line:var(--ga-border);--ga-radius:2px;--ga-shadow-card-hover:0 4px 20px rgba(22,21,19,.07);--ga-shadow-panel:0 24px 70px rgba(44,34,20,.16);--ga-ease-out:cubic-bezier(0.2,0.8,0.2,1);font-family:var(--ga-ui);color:var(--ga-ink)}.ga-scope [data-role=teacher]{--ga-accent:#7c56c8;--ga-accent-soft:rgba(124,86,200,.16);--ga-accent-ink:#fff;--ga-hdr-bg:rgba(124,86,200,.07);--ga-hdr-line:rgba(124,86,200,.2)}.ga-scope [data-role=admin]{--ga-accent:#27406b;--ga-accent-soft:rgba(39,64,107,.14);--ga-accent-ink:#fff;--ga-surface:var(--ga-slate-bg);--ga-line:var(--ga-slate-border);--ga-hdr-bg:rgba(39,64,107,.07);--ga-hdr-line:rgba(39,64,107,.2)}.ga-scope [data-role=org]{--ga-accent:#11888a;--ga-accent-soft:rgba(17,136,138,.16);--ga-accent-ink:#fff;--ga-hdr-bg:rgba(17,136,138,.07);--ga-hdr-line:rgba(17,136,138,.2)}.ga-scope [data-role=student]{--ga-accent:#ffcd00;--ga-accent-soft:rgba(255,205,0,.2);--ga-accent-ink:#161513}.ga-scope .ga-shimmer{background:linear-gradient(90deg,var(--ga-surface),var(--ga-card),var(--ga-surface));background-size:200% 100%;animation:gaShimmer 1.3s linear infinite}@keyframes gaShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ga-scope .ga-shimmer{animation:none}}.lt-node{cursor:pointer}.lt-node,.lt-node:focus{outline:none}.lt-node:focus-visible{outline:2px solid var(--ga-accent);outline-offset:2px;border-radius:6px}.lt-breathe{transform-box:fill-box;transform-origin:center;animation:ltBreath 2.6s ease-in-out infinite}.lt-pulse{animation:ltPulse 2.4s ease-in-out infinite}@keyframes ltBreath{0%,to{opacity:.16;transform:scale(.8)}50%{opacity:.5;transform:scale(1.14)}}@keyframes ltPulse{0%,to{opacity:.1}50%{opacity:.32}}.lt-bob{transform-box:fill-box;transform-origin:center;animation:ltBob 2.8s ease-in-out infinite}@keyframes ltBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}.lt-levelup-flash{animation:ltLevelUpFlash 1.5s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none}@keyframes ltLevelUpFlash{0%{opacity:0;transform:scale(.6)}22%{opacity:.95;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.lt-sprout-sway{transform-box:fill-box;transform-origin:bottom center;animation:ltSproutSway 4.2s ease-in-out infinite}@keyframes ltSproutSway{0%,to{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}}@media (prefers-reduced-motion:reduce){.lt-bob,.lt-breathe,.lt-levelup-flash,.lt-pulse,.lt-sprout-sway{animation:none}}