:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#152044;background:#f7f9fd;--bg:#f7f9fd;--card:#fff;--ink:#152044;--sub:#61708d;--stroke:#e2e8f3;--navy:#101c40;--accent:#5549d7;--soft:#eef0ff;--shadow:0 10px 30px rgba(27,47,92,.06)}:root[data-theme=dark]{--bg:#0d1426;--card:#16213a;--ink:#edf2ff;--sub:#a5b4d2;--stroke:#303d59;--navy:#121e36;--soft:#293154;--shadow:0 15px 30px rgba(0,0,0,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #6f72ed;outline-offset:3px}.container{width:min(1210px,calc(100% - 40px));margin:auto}.topbar{background:var(--card);border-bottom:1px solid var(--stroke);position:sticky;top:0;z-index:20}.nav{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:15px}.brand{display:flex;align-items:center;gap:12px;line-height:1.2}.brand-icon{font-size:27px;font-weight:800;background:linear-gradient(135deg,#5044da,#7c60e7);color:white;width:45px;height:45px;display:grid;place-items:center;border-radius:13px}.brand strong{display:block;font-size:18px;letter-spacing:.4px}.brand em{font-style:normal;color:#5b53db}.brand small{display:block;color:var(--sub);font-size:10px;letter-spacing:1px;margin-top:5px;font-weight:700}.menu{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:700}.menu a:hover{color:#6457dd}.menu button,.nav-toggle{border:1px solid var(--stroke);color:var(--ink);background:var(--card);border-radius:12px;padding:7px 13px}.nav-toggle{display:none}.hero{margin:30px 0 34px;background:linear-gradient(120deg,#0d1c49,#24235d 60%,#393094);color:#fff;border-radius:24px;min-height:335px;padding:55px 58px;display:grid;grid-template-columns:1.3fr .7fr;gap:20px;overflow:hidden;position:relative}.hero h1{font-size:clamp(35px,4.6vw,60px);line-height:1.12;letter-spacing:-2px;max-width:700px;margin:15px 0}.hero h1 span{color:#aebaff}.hero p{max-width:560px;color:#d5dff8;font-size:17px}.eyebrow{font-size:12px;letter-spacing:1.4px;font-weight:800;color:#675ae1;text-transform:uppercase}.hero .eyebrow{color:#b7c8ff}.hero-points{display:flex;gap:17px;flex-wrap:wrap;font-size:12px;color:#e8ebff;font-weight:600;margin-top:28px}.hero-graphic{position:relative;display:flex;align-items:center;justify-content:center}.hero-main{border:1px solid #ffffff42;border-radius:50%;width:210px;height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:100px;font-weight:800;background:#ffffff12;box-shadow:0 0 0 25px #ffffff09}.hero-main small{font-size:9px;letter-spacing:1px}.floating{position:absolute;background:#ffffff1c;border:1px solid #ffffff55;padding:9px 15px;border-radius:12px;font-size:18px}.f1{top:3%;left:0}.f2{right:0;top:20%}.f3{bottom:0;left:15%}.section{padding:18px 0 30px}.section-head{display:flex;align-items:end;justify-content:space-between;margin:5px 0 22px}.section h2,.section-head h2{font-size:27px;letter-spacing:-.6px;margin:5px 0}.section-head p,.muted{color:var(--sub);font-size:13px}.search-section{background:var(--card);border:1px solid var(--stroke);padding:23px;border-radius:18px;box-shadow:var(--shadow);margin:30px 0}.search-section label{font-weight:800;font-size:15px;display:block;margin-bottom:11px}input{width:100%;border:1px solid var(--stroke);background:var(--bg);padding:13px 15px;border-radius:11px;color:var(--ink);font-size:15px}.search-section input{padding:17px;font-size:16px}.classes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.classes a{background:var(--card);border:1px solid var(--stroke);border-radius:17px;text-align:center;padding:17px 8px;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .2s,border-color .2s}.classes a:hover,.formula-card:hover{transform:translateY(-3px);border-color:#8173e3}.classes span{font-size:11px;color:var(--sub);font-weight:800;letter-spacing:1px}.classes strong{font-size:34px;line-height:1.4;color:#5a50d6}.classes small{font-size:11px;color:var(--sub)}.topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.topics a{padding:15px 18px;border:1px solid var(--stroke);background:var(--card);border-radius:12px;font-size:14px;font-weight:750;display:flex;justify-content:space-between}.topics span{color:#665adf}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:36px}.formula-card{min-width:0;padding:22px;border:1px solid var(--stroke);border-radius:17px;background:var(--card);box-shadow:var(--shadow);transition:.2s;display:flex;flex-direction:column}.formula-card[hidden]{display:none}.tag{color:#6659d8;background:var(--soft);font-size:11px;font-weight:800;padding:5px 10px;border-radius:30px;align-self:flex-start}.formula-card h3{font-size:18px;line-height:1.35;margin:15px 0 9px}.math-display{font-size:21px;color:var(--accent);padding:13px 0;overflow-x:auto;white-space:nowrap;font-family:Cambria,Georgia,serif}.formula-card p{font-size:13px;color:var(--sub);margin:0 0 17px;flex:1}.card-action{font-size:13px;color:#6653df;font-weight:800}.page-heading{padding:40px 0 23px;max-width:820px}.page-heading h1,.lesson h1{font-size:clamp(30px,4vw,45px);letter-spacing:-1.2px;line-height:1.22;margin:10px 0}.page-heading p,.lede{color:var(--sub);font-size:16px}.back,.breadcrumbs{font-size:13px;color:var(--sub)}.back{display:block;margin-bottom:22px}.breadcrumbs{display:flex;gap:12px;flex-wrap:wrap;margin:27px 0}.formula-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:25px;margin-bottom:70px;align-items:start}.lesson,.aside,.practice-box{background:var(--card);border:1px solid var(--stroke);border-radius:20px;padding:32px;box-shadow:var(--shadow)}.lesson-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.save-btn{background:var(--soft);color:var(--accent);border:0;border-radius:9px;padding:8px 12px;white-space:nowrap}.equation{background:linear-gradient(130deg,#f0f2ff,#f9f8ff);border:1px solid #e3e5ff;padding:22px;border-radius:14px;margin:28px 0;overflow-x:auto;color:#1c2450}.eq-label{font-size:11px;letter-spacing:1.5px;font-weight:900;color:#746cc5}.equation-text{font-size:clamp(21px,3vw,35px);font-family:Cambria,Georgia,serif;margin:12px 0 2px;white-space:nowrap}.calculator,.example,.explain{border-top:1px solid var(--stroke);padding-top:23px;margin-top:25px}.lesson h2{font-size:21px;margin:0 0 8px}.calculator p,.example p,.explain p{color:var(--sub)}.input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.input-grid label,#quiz-form label{display:block;font-size:13px;font-weight:800}.input-grid input{display:block;margin-top:6px}.primary,.secondary{border-radius:10px;border:0;padding:12px 17px;font-weight:800;font-size:14px;display:inline-block;margin-right:7px;margin-top:5px}.primary{background:#5749da;color:white}.secondary{background:var(--soft);color:var(--accent);border:1px solid var(--stroke)}.result{background:#effdf8;color:#0b6353;border:1px solid #b8ead9;padding:17px;border-radius:12px;margin:17px 0;overflow-wrap:anywhere}.result strong{font-size:20px}.result ol{margin-bottom:0}.result.error{background:#fff0f0;color:#9f2436;border-color:#ffcece}.aside h3{margin:0;font-size:19px}.aside p{font-size:13px;color:var(--sub)}.aside>a{border-top:1px solid var(--stroke);padding:13px 0;display:flex;justify-content:space-between;font-size:13px;font-weight:700}.aside>a span{color:var(--accent)}.aside-note{background:var(--soft);padding:15px;border-radius:13px;margin-top:22px;color:var(--accent);font-size:13px}.aside-note p{margin-bottom:0}.lesson-actions{margin-top:20px}.standalone{max-width:900px;margin-bottom:70px}.standalone h2{margin-top:18px}.practice-box{max-width:650px;margin:10px auto 80px}.quiz-top{display:flex;justify-content:space-between;font-weight:800}.quiz-progress{background:var(--soft);height:8px;margin:17px 0;border-radius:20px;overflow:hidden}.quiz-progress span{background:#5b4adb;display:block;height:100%;width:0;transition:width .2s}.practice-box h2{font-size:32px}.practice-box #quiz-form input{margin:9px 0}.empty{background:var(--card);padding:30px;border-radius:15px;border:1px dashed var(--stroke);text-align:center}.footer{background:var(--navy);color:#e4ebff;margin-top:48px;padding:44px 0 14px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer .brand strong{color:#fff}.footer p{max-width:360px;color:#b5c0de;font-size:13px}.foot-grid>div{display:flex;flex-direction:column;gap:12px}.foot-grid strong{color:white}.foot-grid a:not(.brand),.foot-grid span:not(.brand-icon){font-size:13px;color:#c1cbee}.footer-bottom{border-top:1px solid #ffffff25;margin-top:32px;padding-top:16px;font-size:12px;color:#b7c3df}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:920px){.classes{grid-template-columns:repeat(4,1fr)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.topics{grid-template-columns:repeat(3,1fr)}.hero{padding:40px}.formula-layout{grid-template-columns:1fr}.aside{display:none}.hero-main{width:150px;height:150px;font-size:74px}}@media(max-width:650px){.container{width:min(100% - 28px,1210px)}.nav{min-height:67px}.brand-icon{width:40px;height:40px}.brand strong{font-size:15px}.brand small{font-size:8px}.nav-toggle{display:block}.menu{display:none;position:absolute;left:0;right:0;top:67px;background:var(--card);padding:18px;box-shadow:var(--shadow);border-bottom:1px solid var(--stroke);flex-direction:column;align-items:stretch;gap:12px}.menu.active{display:flex}.menu a{padding:8px}.hero{margin:16px 0;padding:30px 23px;grid-template-columns:1fr;min-height:0}.hero h1{font-size:36px;letter-spacing:-1px}.hero p{font-size:14px}.hero-graphic{display:none}.hero-points{gap:9px;font-size:11px}.classes{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.classes a{padding:12px 4px}.classes strong{font-size:28px}.topics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.topics a{padding:12px;font-size:12px}.cards{grid-template-columns:1fr}.section-head h2{font-size:24px}.search-section{padding:16px;margin:18px 0}.search-section input{font-size:16px}.lesson,.practice-box{padding:20px}.input-grid{grid-template-columns:1fr}.equation{padding:17px}.foot-grid{grid-template-columns:1fr 1fr;gap:24px}.foot-grid>div:first-child{grid-column:1/-1}.page-heading{padding-top:26px}.page-heading h1{font-size:32px}}@media print{.topbar,.footer,.aside,.lesson-actions,.save-btn,.calculator form,.search-section{display:none!important}.formula-layout{display:block}.lesson{border:0;box-shadow:none;padding:0}.container{width:100%}body{background:#fff;color:#111}}

/* MathJax rendering compatibility and responsive equation cards (v5).
   MathJax injects rules for SVG output. Its hidden assistive MathML must never
   be rendered visibly alongside the formula. */
mjx-assistive-mml {position:absolute!important;top:0!important;left:0!important;clip:rect(1px,1px,1px,1px)!important;clip-path:inset(50%)!important;width:1px!important;height:1px!important;overflow:hidden!important;padding:0!important;border:0!important;white-space:nowrap!important;pointer-events:none!important;}
mjx-container[jax="SVG"] {max-width:100%;}
.math-display,.equation-text {min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;white-space:normal;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;}
.math-display mjx-container,.equation-text mjx-container {max-width:none;min-width:max-content;}
.formula-card {overflow:hidden;}
@media(max-width:650px){.math-display{font-size:19px;padding:12px 0}.equation-text{font-size:clamp(20px,5vw,29px)}}

/* Third-party licensing: accessible, responsive long-form notices */
.license-page{max-width:100%;overflow-wrap:anywhere}
.license-page .license-panel{background:var(--surface,#f3f6ff);border:1px solid var(--border,#d7def1);padding:1rem 1.25rem;border-radius:14px;margin:1.2rem 0}
.license-page .license-panel p{margin:.65rem 0}
.license-page .primary{display:inline-block;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.license-page .full-license{overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;font-size:.78rem;line-height:1.55;max-height:72vh;background:#f5f7fc;color:#1a2340;border:1px solid #dbe1ef;border-radius:12px;padding:1rem}
@media(max-width:600px){.license-page .full-license{font-size:.72rem;padding:.65rem}.license-page .license-panel{padding:.8rem}}
