:root{color-scheme:light;--bg:#f6f6f3;--card:#fff;--fg:#1c1d21;--muted:#5b606c;--border:#e2e2dc;--grid:#ecece7;--axis:#9aa0ab;--accent:#2457d6;--accent-soft:#e7eefc;--c1:#2457d6;--c2:#e2621b;--c3:#17915a;--c4:#8a3fd1;--c5:#8c919c;--spring:#2b2f38;--mass:#dbe6ff;--massEdge:#2457d6;--ground:#8b8f98;--band:#17915a1a;--code:#f1f1ec;--warn:#fff6e5;--warnEdge:#e6b04a}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{font-family:Georgia,Times New Roman,serif;font-weight:600;line-height:1.25}h1{margin:0 0 .4rem;font-size:2.3rem}h2{margin:3rem 0 .6rem;padding-top:.5rem;font-size:1.75rem}h3{margin:1.8rem 0 .4rem;font-size:1.2rem}a{color:var(--accent)}p,li{max-width:72ch}header.hero{border-bottom:1px solid var(--border);background:var(--card);padding:3rem 16px 2rem}.wrap{max-width:1000px;margin:0 auto;padding:0 16px}.hero p{color:var(--muted);margin:.3rem 0 0;font-size:1.08rem}nav.toc{z-index:10;background:color-mix(in srgb,var(--bg)88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0}nav.toc .wrap{scrollbar-width:none;gap:.25rem;padding-top:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}nav.toc a{white-space:nowrap;color:var(--muted);border-radius:999px;padding:.3rem .7rem;font-size:.9rem;text-decoration:none}nav.toc a:hover,nav.toc a.active{background:var(--accent-soft);color:var(--accent)}section{scroll-margin-top:60px}.num{color:var(--accent);margin-right:.4rem;font-family:system-ui,sans-serif;font-size:.85em}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;margin:1.2rem 0;padding:1rem 1.1rem}.demo{background:var(--card);border:1px solid var(--border);border-radius:16px;margin:1.5rem 0 2rem;padding:1rem;box-shadow:0 1px 2px #0000000a}.demo-title{align-items:center;gap:.5rem;margin:0 0 .6rem;font-size:1rem;font-weight:600;display:flex}.demo-title .tag{letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:#fff;border-radius:6px;padding:.1rem .45rem;font-size:.7rem}canvas{background:var(--card);border-radius:10px;width:100%;display:block}.anim{border:1px solid var(--border);height:170px}.plot{height:240px}.plot.short{height:210px}.plot.square{aspect-ratio:1;height:auto}.grid2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.grid21{grid-template-columns:2fr 1fr;align-items:start;gap:1rem;display:grid}@media (width<=760px){.grid2,.grid21{grid-template-columns:1fr}}.controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:.4rem 1.2rem;margin:.8rem 0;display:grid}.ctl{grid-template-columns:minmax(6.5em,10em) minmax(90px,1fr) auto;align-items:center;gap:.6rem .8rem;font-size:.9rem;display:grid}.ctl .nm{color:var(--muted);overflow-wrap:anywhere;text-wrap:balance;line-height:1.25}.ctl input[type=range]{min-width:0}.numbox{align-items:center;gap:.3rem;display:inline-flex}.numbox input{width:5.8em;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);text-align:right;font-variant-numeric:tabular-nums;border-radius:6px;padding:.2rem .4rem;font-size:.88rem;font-weight:600}.numbox input:focus{outline:2px solid var(--accent);outline-offset:0;background:var(--card)}.numbox input.bad{background:#fdecec;border-color:#c62828}.ctl.out .numbox input{border-color:var(--accent);background:var(--accent-soft);border-style:dashed}.numbox .unit{color:var(--muted);min-width:2.4em;font-size:.82rem}.notes:empty{display:none}.nb{border-left:3px solid;border-radius:0 8px 8px 0;max-width:none;margin:.4rem 0;padding:.45rem .8rem;font-size:.9rem}.nb.info{border-color:var(--accent);background:var(--accent-soft)}.nb.warn{border-color:var(--warnEdge);background:var(--warn)}.nb.error{background:#fdecec;border-color:#c62828}input[type=range]{width:100%;accent-color:var(--accent)}.bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0;display:flex}.btn,.chip{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:8px;padding:.3rem .7rem;font-size:.85rem}.btn:hover,.chip:hover{border-color:var(--accent);color:var(--accent)}.chip{border-radius:999px}.bar select{font:inherit;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.15rem .3rem;font-size:.85rem}.bar .lbl{color:var(--muted);font-size:.85rem}.check{color:var(--muted);align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.stats{flex-wrap:wrap;gap:.45rem;margin:.6rem 0;display:flex}.stat{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.25rem .6rem;font-size:.85rem}.stat b{font-variant-numeric:tabular-nums}.stat.hl{border-color:var(--accent);background:var(--accent-soft)}.try{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;margin:1rem 0;padding:.6rem 1rem}.try h4{margin:.1rem 0 .3rem;font-size:.95rem}.try ul{margin:.2rem 0;padding-left:1.2rem}.note{border-left:3px solid var(--warnEdge);background:var(--warn);border-radius:0 10px 10px 0;margin:1rem 0;padding:.6rem 1rem}.recipe ol{padding-left:1.3rem}.recipe li{margin:.25rem 0}.energy{grid-template-columns:auto 1fr auto;align-items:center;gap:.3rem .6rem;margin-top:.4rem;font-size:.85rem;display:grid}.ebar{background:var(--bg);border:1px solid var(--border);border-radius:7px;height:14px;overflow:hidden}.ebar>div{width:0;height:100%}.legendrow{color:var(--muted);flex-wrap:wrap;gap:1rem;margin:.3rem 0 0;font-size:.82rem;display:flex}.sw{vertical-align:middle;border-radius:2px;width:18px;height:3px;margin-right:.35rem;display:inline-block}table.sheet{border-collapse:collapse;width:100%;font-size:.92rem}table.sheet th,table.sheet td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .6rem}table.sheet th{color:var(--muted);font-weight:600}h4.qgroup{color:var(--accent);margin:1.4rem 0 .4rem;font-family:Georgia,Times New Roman,serif;font-size:1.05rem}details{background:var(--card);border:1px solid var(--border);border-radius:10px;margin:.6rem 0;padding:.6rem .9rem}details summary{cursor:pointer;font-weight:600}details[open] summary{margin-bottom:.4rem}.fbd{width:100%;max-width:520px;height:auto;color:var(--fg);margin:.5rem auto;display:block}.mjx-container{max-width:100%;overflow:auto hidden}footer{border-top:1px solid var(--border);color:var(--muted);margin-top:4rem;padding:2rem 0 3rem;font-size:.9rem}.small{color:var(--muted);font-size:.88rem}.topbar .wrap{align-items:center;gap:.8rem;padding-top:.7rem;padding-bottom:.7rem;display:flex}.brand{color:var(--fg);font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:600;text-decoration:none}nav.toc a.active{background:var(--accent);color:#fff}nav.sub{flex-wrap:wrap;gap:.35rem;margin:1.2rem 0 0;display:flex}nav.sub a{color:var(--muted);border:1px solid var(--border);background:var(--card);border-radius:999px;padding:.2rem .65rem;font-size:.85rem;text-decoration:none}nav.sub a:hover{border-color:var(--accent);color:var(--accent)}nav.sub a.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.pager{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;margin:3rem 0 0;padding-top:1.2rem;display:flex}.pager a{border:1px solid var(--border);background:var(--card);border-radius:12px;max-width:48%;padding:.6rem 1rem;text-decoration:none;display:block}.pager a:hover{border-color:var(--accent)}.pager small{color:var(--muted);font-size:.78rem;display:block}.pager .next{text-align:right;margin-left:auto}.cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem;margin:1.2rem 0;display:grid}a.cardlink{color:var(--fg);background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem 1.1rem;text-decoration:none;transition:border-color .15s,transform .15s;display:block}a.cardlink:hover{border-color:var(--accent);transform:translateY(-2px)}a.cardlink .k{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:.75rem;font-weight:600}a.cardlink p{color:var(--muted);margin:0;font-size:.92rem}.tags{flex-wrap:wrap;gap:.35rem;margin:.5rem 0 0;display:flex}.tags span{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:.1rem .45rem;font-size:.75rem}.problem{border-left:4px solid var(--accent)}.problem h3{margin-top:.2rem}details.step{border-left:3px solid var(--accent)}details.step summary{color:var(--fg)}details.answer{border:2px solid var(--c3)}.crumbs{color:var(--muted);margin:1.5rem 0 0;font-size:.85rem}.crumbs a{color:var(--muted)}main h2:first-of-type{margin-top:1.2rem}.logo{vertical-align:-7px;width:16px;height:28px;margin-right:.4rem;overflow:visible}.logo .top{stroke:var(--fg);stroke-width:2px}.logo .coil{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linejoin:round;transform-origin:8px 2px;animation:1.5s ease-in-out infinite vl-coil}.logo .bob{fill:var(--accent);animation:1.5s ease-in-out infinite vl-bob}@keyframes vl-coil{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.4)}}@keyframes vl-bob{0%,to{transform:translateY(0)}50%{transform:translateY(4.8px)}}@media (prefers-reduced-motion:reduce){.logo .coil,.logo .bob{animation:none}}.challenges{border-top:1px dashed var(--border);margin-top:1.2rem;padding-top:.9rem}.ch-head{margin-bottom:.5rem;font-weight:600}.ch-head span{color:var(--muted);margin-left:.4rem;font-size:.85rem;font-weight:400}.ch{border:1px solid var(--border);background:var(--bg);border-radius:12px;align-items:center;gap:.8rem;margin:.45rem 0;padding:.55rem .8rem;transition:border-color .2s,background .2s;display:flex}.ch-icon{filter:grayscale();opacity:.55;font-size:1.5rem;transition:filter .3s,opacity .3s,transform .3s}.ch-body{flex:1;font-size:.92rem}.ch-task{color:var(--muted);font-size:.86rem}.ch-status{color:var(--muted);white-space:nowrap;font-size:.8rem}.ch.done{border-color:var(--c3);background:#17915a12}.ch.done .ch-icon{filter:none;opacity:1;transform:scale(1.1)}.ch.done .ch-status{color:var(--c3);font-weight:600}.toast{opacity:0;background:var(--fg);color:var(--card);z-index:60;border-radius:999px;max-width:calc(100% - 32px);padding:.65rem 1.1rem;font-size:.95rem;transition:opacity .3s,transform .3s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);box-shadow:0 6px 24px #0000002e}.toast.show{opacity:1;transform:translate(-50%)}.confetti{pointer-events:none;z-index:59;width:100vw;height:100vh;position:fixed;inset:0;background:0 0!important;border-radius:0!important}.shelf{flex-wrap:wrap;gap:.5rem;display:flex}.badge{border:1px dashed var(--border);color:var(--muted);background:var(--card);border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .8rem .3rem .45rem;font-size:.88rem;text-decoration:none;display:inline-flex}.badge span{font-size:1.15rem}.badge.got{border-style:solid;border-color:var(--c3);color:var(--fg);background:#17915a12}.badge:hover{border-color:var(--accent)}.wild{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:flex-start;gap:.9rem;margin:1.5rem 0;padding:.9rem 1.1rem;display:flex}.wild .wi{font-size:1.8rem;line-height:1}.wild b.wh{letter-spacing:.06em;text-transform:uppercase;color:var(--c2);margin-bottom:.2rem;font-size:.75rem;display:block}.wild p{margin:.2rem 0}.topbar .wrap{flex-wrap:wrap;justify-content:space-between}#userbox{align-items:center;gap:.5rem;display:flex}.gh{fill:currentColor;vertical-align:-3px;width:16px;height:16px;margin-right:.4rem}.btn.ghbtn{color:#fff;background:#24292f;border-color:#24292f}.btn.ghbtn:hover{color:#fff;background:#000}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{color:#fff;filter:brightness(1.08)}.btn.primary:disabled{opacity:.6}.small-btn{padding:.2rem .55rem;font-size:.78rem}.userchip{color:var(--fg);border:1px solid var(--border);background:var(--bg);border-radius:999px;align-items:center;gap:.45rem;padding:.15rem .7rem .15rem .2rem;font-size:.9rem;text-decoration:none;display:inline-flex}.userchip img{border-radius:50%;width:24px;height:24px}.userchip .count{color:var(--muted);font-size:.82rem}.linkbtn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:.8rem;text-decoration:underline}.modal{z-index:70;background:#0f121873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--card);border-radius:16px;width:100%;max-width:420px;padding:1.3rem 1.4rem;box-shadow:0 20px 60px #00000040}.modal-card h3{align-items:center;margin:0 0 .4rem;display:flex}.modal-card .gh{width:20px;height:20px}.modal-card input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:10px;margin:.4rem 0;padding:.55rem .7rem}.modal-card input:focus{outline:2px solid var(--accent);outline-offset:0}#si-msg{color:#c62828;min-height:1.3em}.modal-actions{justify-content:flex-end;gap:.5rem;margin:.4rem 0 .8rem;display:flex}@media (width<=520px){.userchip .count{display:none}}.tiles{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.7rem;margin-top:1rem;display:grid}.tile{text-align:center;border:1px dashed var(--border);background:var(--bg);color:var(--muted);border-radius:14px;flex-direction:column;align-items:center;gap:.25rem;padding:.9rem .7rem;font-size:.82rem;text-decoration:none;display:flex}.tile b{color:var(--fg);font-size:.92rem}.tile .ti{filter:grayscale();opacity:.6;font-size:2rem}.tile em{color:var(--accent);margin-top:.2rem;font-style:normal}a.tile:hover{border-color:var(--accent)}.tile.got{border:1.5px solid var(--c3);background:#17915a12}.tile.got .ti{filter:none;opacity:1}.trophy-head{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.trophy-name{font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:600}.trophy-count{color:var(--muted);font-size:1rem}.trophy-count b{color:var(--fg);font-size:2rem}.progress{background:var(--bg);border:1px solid var(--border);border-radius:5px;height:10px;margin:.7rem 0;overflow:hidden}.progress div{background:linear-gradient(90deg,var(--c3),var(--accent));border-radius:5px;height:100%}.nameedit{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.nameedit label{font-size:.9rem;font-weight:600}.nameedit input{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:8px;min-width:240px;padding:.4rem .6rem}.cert{background:var(--card);border:2px solid #b8962e;border-radius:6px;margin:1rem 0;padding:10px;box-shadow:0 4px 30px #0000000f}.cert-inner{text-align:center;background:radial-gradient(circle at 50% 0,#b8962e14,#0000 60%);border:1px solid #d9c27a;border-radius:3px;padding:2rem 1.5rem}.cert-kicker{letter-spacing:.14em;text-transform:uppercase;color:#8a6d1f;font-size:.78rem;font-weight:600}.cert-title{color:var(--fg);margin:.3rem 0 1rem;font-family:Georgia,Times New Roman,serif;font-size:2.2rem}.cert-small{color:var(--muted);font-size:.95rem}.cert-name{border-bottom:1.5px solid #d9c27a;min-width:50%;margin:.4rem auto .5rem;padding:0 1rem .2rem;font-family:Georgia,Times New Roman,serif;font-size:2.4rem;font-style:italic;display:inline-block}.cert-tiles{grid-template-columns:repeat(5,1fr);gap:.5rem;margin:1.4rem 0 1rem}.cert-tiles .tile{font-size:.72rem}.cert-tiles .tile b{font-size:.8rem}.cert-tiles .tile .ti{font-size:1.5rem}.cert-tiles .tile{padding:.6rem .4rem}.cert-foot{color:var(--muted);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding-top:.8rem;font-size:.85rem;display:flex}@media (width<=640px){.cert-tiles{grid-template-columns:repeat(2,1fr)!important}.cert-title{font-size:1.6rem}.cert-name{font-size:1.8rem}}@media print{.topbar,nav.toc,footer,.noprint,.pager,.toast,.confetti{display:none!important}body{background:#fff}.cert{box-shadow:none;margin:0}.tile.got{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cert-inner{padding:1.2rem 1rem}.cert-title{margin-bottom:.5rem}.cert-tiles{gap:.35rem;margin:.8rem 0}.cert-tiles .tile{padding:.4rem .3rem}@page{margin:12mm}}.userchip .avatar{background:var(--accent);color:#fff;letter-spacing:.02em;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.68rem;font-weight:700;display:inline-flex}.tag.concept-tag{background:var(--c4)}.demo.concept{border-color:color-mix(in srgb,var(--c4)35%,var(--border))}.concept-note{max-width:none;margin:.5rem 0 0}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.wrap{max-width:1400px;padding-left:clamp(16px,4vw,48px);padding-right:clamp(16px,4vw,48px)}p,li,.hero p{max-width:none}header.hero{padding:2.4rem 0 1.8rem}h1{font-size:clamp(1.8rem,4.5vw,2.6rem)}canvas{touch-action:pan-y}@media (width<=640px){body{font-size:15.5px;line-height:1.6}h2{margin-top:2.2rem;font-size:1.45rem}h3{font-size:1.1rem}header.hero{padding:1.5rem 0 1.2rem}.topbar .wrap{gap:.4rem;padding-top:.5rem;padding-bottom:.5rem}.brand{font-size:1.05rem}nav.toc a{padding:.25rem .6rem;font-size:.85rem}.demo{border-radius:12px;margin:1.2rem 0 1.6rem;padding:.7rem}.card{padding:.8rem .85rem}.controls{grid-template-columns:1fr;gap:.35rem}.ctl{grid-template-columns:minmax(5.5em,8.5em) minmax(70px,1fr) auto;gap:.45rem;font-size:.86rem}.numbox input{width:4.8em}.stat{font-size:.8rem}.ch{gap:.55rem;padding:.5rem .6rem}.ch-icon{font-size:1.25rem}.ch-head span{margin:.2rem 0 0;display:block}.try,.note,.nb{padding:.5rem .75rem}.pager{flex-direction:column}.pager a{max-width:none}.pager .next{margin-left:0}.wild{padding:.75rem .85rem}.tiles{grid-template-columns:repeat(2,1fr)}.trophy-name{font-size:1.4rem}.modal-card{padding:1rem}}.wrap{max-width:none}.fbdfig{margin:.6rem 0}.fbdfig .fbd{max-width:620px}.fbdfig figcaption{color:var(--muted);text-align:center;margin-top:.2rem;font-size:.85rem}.method ol{margin:.3rem 0 0;padding-left:1.3rem}.method li{margin:.2rem 0}:root{--bg:#f7f4ee;--card:#fffdf8;--fg:#1b1a17;--muted:#625c50;--border:#e6dfcf;--grid:#efe9dc;--axis:#a39b8b;--accent:#8a6a12;--accent-soft:#f6eccf;--c1:#1f3a5f;--c2:#c2571a;--c3:#2a7f62;--c4:#7b3f8c;--c5:#8b8678;--spring:#1b1a17;--mass:#f3e6bf;--massEdge:#9a7a1f;--ground:#7d776b;--band:#2a7f621a;--warn:#fbf3df;--warnEdge:#cfb991}.topbar{background:#000;border-bottom:3px solid #cfb991}.brand{color:#fff}.brand span{color:#cfb991}.logo .top{stroke:#fff}.logo .coil{stroke:#cfb991}.logo .bob{fill:#cfb991}nav.toc{border-bottom:0;background:#1b1a17!important}nav.toc a{color:#d9d3c4}nav.toc a.active{color:#000;background:#cfb991}header.hero{background:linear-gradient(#fffdf8,#f7f1e3);border-bottom:1px solid #e6dfcf}.demo-title .tag{color:#cfb991;background:#000}.tag.concept-tag{color:#fff;background:#7b3f8c}.btn.primary{color:#000;background:#cfb991;border-color:#b89f5e}.btn.primary:hover{color:#000}a.cardlink .k{color:#8a6a12}a.cardlink:hover{border-color:#cfb991}.num{color:#8a6a12}.userchip{color:#fff;background:#1b1a17;border-color:#3a3833}.userchip .avatar{color:#000;background:#cfb991}.userchip .count{color:#cfb991}#userbox .btn{color:#fff;background:#1b1a17;border-color:#3a3833}#userbox .btn.primary{color:#000;background:#cfb991;border-color:#cfb991}#userbox .btn.primary:hover{color:#000;background:#e0cc9d}.toast{color:#fff;background:#1b1a17;border:1px solid #cfb991}.chip.on{color:#5c4708;background:#f6eccf;border-color:#cfb991}.badge.got,.tile.got,.ch.done{background:#fbf4e1;border-color:#b89f5e}.ch.done .ch-status{color:#7a5e10}.progress div{background:linear-gradient(90deg,#b89f5e,#cfb991)}details.answer{border-color:#cfb991}details.answer summary{color:#7a5e10}details.step{border-left-color:#cfb991}.try{background:#fbf4e1;border-left-color:#cfb991}.problem{border-left-color:#cfb991}footer{color:#cfb991;background:#000;border-top:3px solid #cfb991;margin-top:4rem;padding:1.4rem 0}.ch.live{border-color:var(--border)}.ch-side{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.ch-submit{color:#cfb991;background:#000;border-color:#000;min-width:6.5em;font-weight:600}.ch-submit:hover{color:#e0cc9d;background:#1b1a17;border-color:#1b1a17}.ch-submit:disabled{opacity:.45;cursor:wait}.ch.done .ch-submit{display:none}.ch-msg{min-height:0;margin-top:.25rem;font-size:.88rem}.ch-msg:empty{display:none}.ch-msg.bad{color:#a61e4d}.ch-msg.good{color:#2a7f62;font-weight:600}@keyframes ch-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.ch.shake{border-color:#a61e4d;animation:.45s ch-shake}@media (prefers-reduced-motion:reduce){.ch.shake{animation:none}}@media (width<=640px){.ch{flex-wrap:wrap}.ch-side{flex-direction:row;justify-content:space-between;align-items:center;width:100%}}.tiles{grid-template-columns:repeat(5,1fr)}.cards.cards-4{grid-template-columns:repeat(4,1fr)}@media (width<=1000px){.tiles{grid-template-columns:repeat(4,1fr)}.cards.cards-4{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.tiles,.cert-tiles{grid-template-columns:repeat(2,1fr)!important}.cards.cards-4{grid-template-columns:1fr}}:root{--ink:#0b0d16;--gold:#cfb991;--gold-deep:#8a6a12;--shadow:0 1px 2px #1b1a170a,0 10px 30px #1b1a170d}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{letter-spacing:-.003em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16.5px;line-height:1.7}h1,h2,h3,h4,.brand{letter-spacing:-.01em;font-family:Crimson Pro,Georgia,Times New Roman,serif}h1{font-size:clamp(2.1rem,4.6vw,3.2rem);font-weight:600;line-height:1.08}h2{scroll-margin-top:72px;font-size:clamp(1.75rem,3.2vw,2.3rem);font-weight:600;line-height:1.15}h3{font-size:1.35rem;font-weight:600}.wrap{max-width:1180px;margin-left:auto;margin-right:auto}section>p,section>ul,section>ol,.wrap>p,header.hero p{max-width:72ch}.topbar{background:var(--ink);border-bottom:0;box-shadow:inset 0 -1px #cfb99159}.brand{color:#f4efe2;font-size:1.3rem;font-weight:600}nav.toc{-webkit-backdrop-filter:blur(10px);box-shadow:0 1px #cfb9912e;background:#0b0d16f0!important}nav.toc .wrap{gap:.1rem;padding-top:0;padding-bottom:0;-webkit-mask-image:linear-gradient(90deg,#000 92%,#0000);mask-image:linear-gradient(90deg,#000 92%,#0000)}nav.toc a{color:#bdb6a5;letter-spacing:.01em;border-radius:0;padding:.85rem .8rem;font-size:.88rem;transition:color .2s;position:relative}nav.toc a:hover,nav.toc a.active{color:#fff;background:0 0}nav.toc a.active:after{content:"";background:var(--gold);border-radius:2px;height:2px;position:absolute;bottom:0;left:.8rem;right:.8rem}@media (width>=900px){nav.toc .wrap{-webkit-mask-image:none;mask-image:none}}header.hero{color:#f2efe6;background:radial-gradient(90% 140% at 85% 0,#7f6eb438,#0000 60%),linear-gradient(#0b0d16,#14141c);border-bottom:0;padding:3.6rem 16px 3rem}header.hero h1{color:#f6f2e8;margin-bottom:.6rem}header.hero p{color:#cfc9ba;font-size:1.08rem}header.hero a{color:var(--gold)}h2 .num{letter-spacing:.08em;color:var(--gold-deep);vertical-align:.18em;margin-right:.55rem;font-family:Inter,system-ui,sans-serif;font-size:.62em;font-weight:600}section>h2:first-child,h2{background:linear-gradient(90deg,#cfb991bf,#cfb99100 60%) bottom/100% 1px no-repeat;padding-bottom:.45rem}.cards{gap:1.1rem}a.cardlink{box-shadow:var(--shadow);border-color:#ece5d6;border-radius:16px;padding:1.15rem 1.25rem;transition:border-color .2s,transform .2s,box-shadow .2s}a.cardlink:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 2px 4px #1b1a170d,0 16px 36px #1b1a1717}a.cardlink .k{letter-spacing:.14em;font-size:.72rem;font-weight:600}a.cardlink h3{margin:.35rem 0 .4rem;font-size:1.3rem}.demo{box-shadow:var(--shadow);border-color:#ece5d6;border-radius:18px;padding:1.15rem 1.2rem}.demo-title{font-family:Crimson Pro,Georgia,serif;font-size:1.2rem}.demo-title .tag{letter-spacing:.12em;border-radius:6px;padding:.18rem .5rem;font-family:Inter,system-ui,sans-serif;font-size:.68rem}.btn,.chip{border-radius:10px;transition:background-color .2s,border-color .2s,color .2s}.btn:hover,.chip:hover{border-color:var(--gold)}input[type=range]{accent-color:var(--gold-deep)}.stat{border-radius:10px}details.step,details.answer,.problem,.try{border-radius:12px}mjx-container[display=true]{max-width:100%;padding:.2rem 0;display:block;overflow:auto hidden}main a:not(.cardlink):not(.btn){text-underline-offset:.18em;text-decoration-color:#8a6a1273}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;border-radius:6px;outline:3px solid #7fb2ff}footer{background:var(--ink);color:#cfc9ba;text-align:center;letter-spacing:.02em;border-top:0;font-size:.88rem;box-shadow:inset 0 1px #cfb99159}footer p{margin:0 auto}@media (width<=640px){body{font-size:16px}header.hero{padding:2.6rem 16px 2.2rem}.demo{border-radius:14px;padding:.9rem .8rem}}@media (width<=520px){.controls{gap:.55rem}.ctl{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nm nm""rg nb";gap:.05rem .7rem}.ctl .nm{grid-area:nm}.ctl input[type=range]{grid-area:rg;width:100%;margin:0}.ctl .numbox{grid-area:nb}}