@keyframes _5UbagG_slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}._5UbagG_banner{width:80%;max-width:600px;color:var(--color-text);bottom:calc(var(--space-5) + var(--bottom-nav-height));background:var(--color-bg-secondary);padding:var(--space-8);box-shadow:var(--shadow-lg);z-index:var(--z-toast);border-radius:var(--radius-lg);visibility:hidden;opacity:0;flex-direction:column;margin:0 auto;display:flex;position:fixed;left:0;right:0;transform:translateY(100%)}._5UbagG_banner._5UbagG_show{visibility:visible;animation:1s forwards _5UbagG_slideUp}._5UbagG_banner h2{margin-bottom:var(--space-2)}._5UbagG_banner p{font-size:var(--font-size-sm);line-height:var(--line-height-normal);margin:0}._5UbagG_banner a{text-decoration:underline}._5UbagG_buttons{gap:var(--space-4);margin-top:var(--space-4);align-items:center;display:flex}._5UbagG_acceptBtn{padding:var(--space-2) var(--space-5);cursor:pointer;font-weight:var(--font-weight-bold);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-family-base);background-color:#74e278;border:none}._5UbagG_acceptBtn:hover{background-color:#31b835}._5UbagG_rejectBtn{color:var(--color-text);cursor:pointer;font-family:var(--font-family-base);background:0 0;border:none;text-decoration:underline}._5UbagG_rejectBtn:hover{color:var(--color-text-muted)}._5UbagG_options{margin-top:var(--space-4);gap:var(--space-4);flex-flow:wrap;display:flex}._5UbagG_options label{margin:var(--space-1) 0;font-size:var(--font-size-sm);cursor:pointer}._5UbagG_options input[type=checkbox]{margin-right:var(--space-2);cursor:pointer;accent-color:#555;transform:scale(1.3)}
:root{--color-brand-pink:#f871b9;--color-brand-purple:#ab67e0;--color-brand-violet:#8b5cf6;--color-primary:#1d262d;--color-primary-hover:#2f3b44;--color-primary-light:#fbc9e3;--color-secondary:#8b5cf6;--color-bg:#fff;--color-bg-secondary:#f8f9fa;--color-bg-dark:#1d262d;--color-surface:#fff;--color-surface-elevated:#fff;--color-bg-accent-gradient:linear-gradient(180deg, #f871b908 0%, #8b5cf608 100%);--color-cat-math:#3b82f6;--color-cat-math-bg:#3b82f61a;--color-cat-physics:#6366f1;--color-cat-physics-bg:#6366f11a;--color-cat-cs:#0d9488;--color-cat-cs-bg:#0d94881a;--color-cat-compsci:#0891b2;--color-cat-compsci-bg:#0891b21a;--color-cat-security:#0e7490;--color-cat-security-bg:#0e74901a;--color-cat-networking:#06b6d4;--color-cat-networking-bg:#06b6d41a;--color-cat-electronics:#14b8a6;--color-cat-electronics-bg:#14b8a61a;--color-cat-biology:#22c55e;--color-cat-biology-bg:#22c55e1a;--color-cat-chemistry:#16a34a;--color-cat-chemistry-bg:#16a34a1a;--color-cat-ai:#8b5cf6;--color-cat-ai-bg:#8b5cf61a;--color-cat-explore:#a855f7;--color-cat-explore-bg:#a855f71a;--color-text:#333;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-on-dark:#fff;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-success:#70ea5d;--color-error:#fc3261;--color-warning:#ffb566;--color-info:#06a;--gradient-brand:linear-gradient(135deg, #f871b9, #ab67e0, #8b5cf6);--calc-accent:#f871b9;--calc-accent-hover:#e8559e;--calc-text:#1d1d1f;--calc-text-secondary:#636366;--calc-text-muted:#86868b;--calc-border:#d2d2d7;--calc-border-light:#e5e5e7;--calc-surface:#fff;--calc-surface-hover:#f5f5f7;--calc-surface-muted:#f0f0f2;--calc-value-color:#c0392b;--calc-btn-primary:#f871b9;--calc-btn-primary-hover:#e8559e;--calc-btn-constructive:#3b82a0;--calc-btn-constructive-hover:#2e6e8a;--calc-btn-helper:#6b7280;--calc-btn-helper-hover:#565d68;--calc-btn-cautionary:#b45858;--calc-btn-cautionary-hover:#9c4a4a;--calc-correct:#27ae60;--calc-correct-bg:#27ae600f;--calc-correct-border:#27ae6040;--calc-wrong:#e74c3c;--calc-wrong-bg:#e74c3c0f;--calc-focus-ring:#f871b91f;--calc-heading-size:.7rem;--calc-heading-weight:600;--calc-heading-spacing:.6px;--calc-subheading-size:11px;--calc-subheading-weight:600;--calc-subheading-spacing:.04em;--section-label-size:.7rem;--section-label-weight:600;--section-label-spacing:.6px;--section-label-color:var(--calc-text-muted);--font-family-base:"Balto", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-code:"Fira Code", "Consolas", monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--sidebar-width:240px;--sidebar-collapsed-width:72px;--bottom-nav-height:0px;--nav-height:60px;--page-padding-x:clamp(1rem, 5vw, 5rem);--z-sidebar:100;--z-nav:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:600;--transition-fast:.15s ease;--transition-normal:.3s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-full:9999px;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a;--shadow-brutalist-sm:3px 3px 0px var(--color-primary);--shadow-brutalist-md:4px 4px 0px var(--color-primary);--shadow-brutalist-lg:6px 6px 0px var(--color-primary);--color-shadow-info:#94a3b8;--shadow-info-md:4px 4px 0px var(--color-shadow-info);--content-gap:2.5rem;--section-gap:3rem;--heading-gap:1.5rem}@media (max-width:768px){:root{--bottom-nav-height:calc(60px + env(safe-area-inset-bottom,0px))}}[data-calc-theme],[data-calc-theme] aside,[data-calc-theme] section,[data-calc-theme] div,[data-calc-theme] label,[data-calc-theme] span,[data-calc-theme] output,[data-calc-theme] input,[data-calc-theme] select,[data-calc-theme] h3,[data-calc-theme] h4,[data-calc-theme] p{transition:background-color .3s,color .3s,border-color .3s}[data-calc-theme=dark]{--calc-accent:#f871b9;--calc-accent-hover:#e8559e;--calc-text:#e5e5e7;--calc-text-secondary:#a1a1a6;--calc-text-muted:#86868b;--calc-border:#3a3a3c;--calc-border-light:#2c2c2e;--calc-surface:#1c1c1e;--calc-surface-hover:#2c2c2e;--calc-surface-muted:#252527;--calc-value-color:#e88a7d;--calc-btn-primary:#f871b9;--calc-btn-primary-hover:#e8559e;--calc-btn-constructive:#4a9bb5;--calc-btn-constructive-hover:#3b8a9e;--calc-btn-helper:#8b8f96;--calc-btn-helper-hover:#a0a4ab;--calc-btn-cautionary:#cf6b6b;--calc-btn-cautionary-hover:#b85c5c;--calc-correct:#34d399;--calc-correct-bg:#34d3991a;--calc-correct-border:#34d3994d;--calc-wrong:#f87171;--calc-wrong-bg:#f871711a;--calc-focus-ring:#f871b933}[data-calc-theme=dark] .mq-editable-field,[data-calc-theme=dark] .mq-math-mode{color:var(--calc-text)!important}[data-calc-theme=dark] .mq-editable-field .mq-cursor{border-left-color:var(--calc-text)!important}*{box-sizing:border-box}html,body{font-family:var(--font-family-base);scroll-behavior:smooth;margin:0;padding:0;overflow-x:clip}html{scrollbar-gutter:stable}.scrollbar-thin-light{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent}.scrollbar-thin-light::-webkit-scrollbar{width:4px;height:4px}.scrollbar-thin-light::-webkit-scrollbar-track{background:0 0}.scrollbar-thin-light::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.scrollbar-thin-light:hover::-webkit-scrollbar-thumb{background:#ffffff40}.scrollbar-thin-dark{scrollbar-width:thin;scrollbar-color:#00000026 transparent}.scrollbar-thin-dark::-webkit-scrollbar{width:4px;height:4px}.scrollbar-thin-dark::-webkit-scrollbar-track{background:0 0}.scrollbar-thin-dark::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.scrollbar-thin-dark:hover::-webkit-scrollbar-thumb{background:#00000040}main{min-height:100vh}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight)}a{color:inherit;text-decoration:none}button{font-family:inherit}.react-p5{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%}.react-p5 canvas{display:block}.mq-editable-field{width:100%;box-shadow:none!important;border:none!important;padding:0!important}.mq-math-mode{vertical-align:baseline!important;line-height:1!important}.mq-math-mode .mq-root-block,.mq-math-mode>.mq-root-block{white-space:normal!important;vertical-align:baseline!important;width:auto!important;padding:0!important;display:inline!important;overflow:visible!important}.mq-editable-field .mq-root-block{vertical-align:middle!important;width:100%!important;display:inline-block!important}@font-face{font-family:Balto;src:local(Balto Thin),local(Balto-Thin),url(/static/font/Balto-Thin.woff2)format("woff2"),url(/static/font/Balto-Thin.woff)format("woff"),url(/static/font/Balto-Thin.ttf)format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Balto;src:local(Balto Thin Italic),local(Balto-ThinItalic),url(/static/font/Balto-ThinItalic.woff2)format("woff2"),url(/static/font/Balto-ThinItalic.woff)format("woff"),url(/static/font/Balto-ThinItalic.ttf)format("truetype");font-weight:100;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Light),local(Balto-Light),url(/static/font/Balto-Light.woff2)format("woff2"),url(/static/font/Balto-Light.woff)format("woff"),url(/static/font/Balto-Light.ttf)format("truetype");font-weight:300;font-style:normal;font-display:fallback}@font-face{font-family:Balto;src:local(Balto Light Italic),local(Balto-LightItalic),url(/static/font/Balto-LightItalic.woff2)format("woff2"),url(/static/font/Balto-LightItalic.woff)format("woff"),url(/static/font/Balto-LightItalic.ttf)format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Book),local(Balto-Book),url(/static/font/Balto-Book.woff2)format("woff2"),url(/static/font/Balto-Book.woff)format("woff"),url(/static/font/Balto-Book.ttf)format("truetype");font-weight:400;font-style:normal;font-display:fallback}@font-face{font-family:Balto;src:local(Balto Book Italic),local(Balto-BookItalic),url(/static/font/Balto-BookItalic.woff2)format("woff2"),url(/static/font/Balto-BookItalic.woff)format("woff"),url(/static/font/Balto-BookItalic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Medium),local(Balto-Medium),url(/static/font/Balto-Medium.woff2)format("woff2"),url(/static/font/Balto-Medium.woff)format("woff"),url(/static/font/Balto-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Balto;src:local(Balto Medium Italic),local(Balto-MediumItalic),url(/static/font/Balto-MediumItalic.woff2)format("woff2"),url(/static/font/Balto-MediumItalic.woff)format("woff"),url(/static/font/Balto-MediumItalic.ttf)format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Bold),local(Balto-Bold),url(/static/font/Balto-Bold.woff2)format("woff2"),url(/static/font/Balto-Bold.woff)format("woff"),url(/static/font/Balto-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Balto;src:local(Balto Bold Italic),local(Balto-BoldItalic),url(/static/font/Balto-BoldItalic.woff2)format("woff2"),url(/static/font/Balto-BoldItalic.woff)format("woff"),url(/static/font/Balto-BoldItalic.ttf)format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Super),local(Balto-Super),url(/static/font/Balto-Super.woff2)format("woff2"),url(/static/font/Balto-Super.woff)format("woff"),url(/static/font/Balto-Super.ttf)format("truetype");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Balto;src:local(Balto Super Italic),local(Balto-SuperItalic),url(/static/font/Balto-SuperItalic.woff2)format("woff2"),url(/static/font/Balto-SuperItalic.woff)format("woff"),url(/static/font/Balto-SuperItalic.ttf)format("truetype");font-weight:800;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Black),local(Balto-Black),url(/static/font/Balto-Black.woff2)format("woff2"),url(/static/font/Balto-Black.woff)format("woff"),url(/static/font/Balto-Black.ttf)format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Balto;src:local(Balto Black Italic),local(Balto-BlackItalic),url(/static/font/Balto-BlackItalic.woff2)format("woff2"),url(/static/font/Balto-BlackItalic.woff)format("woff"),url(/static/font/Balto-BlackItalic.ttf)format("truetype");font-weight:900;font-style:italic;font-display:swap}@font-face{font-family:Balto;src:local(Balto Ultra),local(Balto-Ultra),url(/static/font/Balto-Ultra.woff2)format("woff2"),url(/static/font/Balto-Ultra.woff)format("woff"),url(/static/font/Balto-Ultra.ttf)format("truetype");font-weight:950;font-style:normal;font-display:swap}@font-face{font-family:Balto;src:local(Balto Ultra Italic),local(Balto-UltraItalic),url(/static/font/Balto-UltraItalic.woff2)format("woff2"),url(/static/font/Balto-UltraItalic.woff)format("woff"),url(/static/font/Balto-UltraItalic.ttf)format("truetype");font-weight:950;font-style:italic;font-display:swap}@keyframes spin{to{transform:rotate(360deg)}}
:root{--ui-bg:#fff;--ui-dots:radial-gradient(circle, #1d262d14 1px, transparent 1.6px);--ui-dots-size:24px 24px;--ui-surface:#fff;--ui-surface-sunk:#f6f7f8;--ui-ink:var(--color-bg-dark);--ui-ink-soft:#4b5661;--ui-mute:#8a939c;--ui-accent:var(--color-brand-pink);--ui-accent-soft:#fbc9e3;--ui-link:var(--color-brand-violet);--ui-display:var(--font-family-base);--ui-line:2px;--ui-radius:8px;--ui-radius-sm:6px;--ui-off:4px;--ui-off-sm:3px;--ui-shadow:var(--ui-ink);--ui-divider:1px solid color-mix(in srgb, var(--ui-ink) 12%, transparent);--ui-topbar-height:56px;--ui-sticky-top:0px;--ui-tilt:.4;--ui-highlight:linear-gradient(transparent 56%, var(--ui-accent-soft) 56%, var(--ui-accent-soft) 94%, transparent 94%);--ui-focus-ring:0 0 0 3px var(--ui-accent-soft);--ui-focus-outline:3px solid var(--ui-link);--btn-font:var(--ui-display);--btn-radius:8px;--btn-border:var(--ui-line);--btn-line:var(--ui-ink);--btn-off:3px;--btn-off-hover:5px;--btn-shadow:var(--ui-ink);--btn-primary-bg:var(--ui-ink);--btn-primary-ink:#fff;--btn-primary-line:var(--ui-ink);--btn-primary-shadow:var(--ui-accent);--btn-secondary-bg:var(--ui-surface);--btn-secondary-ink:var(--ui-ink);--btn-ghost-ink:var(--ui-ink);--btn-ghost-wash:color-mix(in srgb, var(--ui-ink) 7%, transparent);--btn-danger-bg:var(--color-error);--btn-focus:var(--ui-link)}:root[data-topbar=shown]{--ui-sticky-top:var(--ui-topbar-height)}
