.subjects-section [hidden]{display:none!important}.subject-tabs{border-bottom:1px solid var(--line);gap:24px;margin-top:28px;display:flex}.subject-tabs button{min-height:48px;color:var(--muted);font:650 var(--text-action)/1.5 var(--font);cursor:pointer;background:0 0;border:0;padding:10px 0 14px;position:relative}.subject-tabs button:after{content:"";background:0 0;height:3px;position:absolute;inset:auto 0 -1px}.subject-tabs button[aria-selected=true]{color:var(--ink)}.subject-tabs button[aria-selected=true]:after{background:var(--sage)}.subject-tabs button:hover{color:var(--ink)}.subject-tabs button:focus-visible,.subject-panel:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.subject-panel{min-width:0;padding-top:24px}.subject-panel+.subject-panel{border-top:1px solid var(--line);margin-top:24px}.subject-panel h4{color:var(--ink);margin-bottom:10px;font-size:20px}.subject-panel p{font-size:var(--text-detail)}.subject-panel .subject-example-label,.subject-example-label{color:var(--accent);font:11px/1.6 var(--mono);letter-spacing:.04em;margin-top:24px;margin-bottom:8px}.subject-example-task{color:var(--ink)}.subject-panel a{min-height:44px;font-size:var(--text-detail);text-underline-offset:5px;margin-top:16px;padding:8px 0;font-weight:750;text-decoration:underline;display:inline-block}.subjects-enhanced .subject-panels{display:grid}.subjects-enhanced .subject-panel{border:0;grid-area:1/1;align-self:start;margin:0}.subjects-enhanced .subject-panel h4{display:none}.subjects-enhanced .subject-panel[aria-hidden=true]{visibility:hidden;pointer-events:none}.subject-foundation>.foundation-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);min-width:0;padding:28px;display:block}.foundation-heading{align-items:center;gap:16px;display:flex}.foundation-heading h3{margin:0}.foundation-card>p{margin-top:16px}.foundation-example{border-top:1px solid var(--line);margin-top:24px}.foundation-example .foundation-equation{color:var(--ink);font:600 24px/1.7 var(--mono)}.foundation-example ol{font-size:var(--text-detail);color:var(--muted);margin-top:12px;padding-left:20px}.foundation-example li+li{margin-top:8px}@media (prefers-reduced-motion:no-preference){.subject-tabs button{transition:color var(--motion-reaction)}.subjects-enhanced .subject-panel[aria-hidden=false]{animation:subject-panel-enter var(--motion-reaction) var(--ease-out)}@keyframes subject-panel-enter{0%{opacity:0}to{opacity:1}}}@media (width<=600px){.subject-tabs{gap:24px}.subject-tabs button{font-size:14px}.subject-foundation>.foundation-card{padding:24px 20px}}.foundation-exam .subject-example-label{overflow-wrap:anywhere}.foundation-exam .exam-caption{color:var(--ink);font-size:var(--text-detail);margin-top:20px;font-weight:750}.foundation-exam blockquote{border-left:2px solid var(--sage);color:var(--ink);margin:10px 0 0;padding-left:16px}.exam-sources{flex-wrap:wrap;gap:4px 20px;margin-top:20px;display:flex}.exam-sources a{min-height:44px;font-size:var(--text-detail);text-underline-offset:4px;overflow-wrap:anywhere;align-items:center;padding:8px 0;font-weight:650;text-decoration:underline;display:inline-flex}.subject-art{transform-style:preserve-3d;transition:border-color .2s,box-shadow .2s}.subject-art:not(.pointer-active){transition:transform .45s var(--ease-out), border-color .2s, box-shadow .2s}.subject-art:after{content:"";z-index:1;pointer-events:none;opacity:0;background:radial-gradient(380px circle at var(--glow-x,50%) var(--glow-y,50%), #fff9e999, transparent 65%);mix-blend-mode:soft-light;transition:opacity .25s;position:absolute;inset:0}.subject-art.pointer-active:after,.subject-art:focus-within:after,.subject-art.is-tapped:after{opacity:1}.subject-art img{transition:transform .45s var(--ease-out)}.subject-art.pointer-active img,.subject-art:focus-within img,.subject-art.is-tapped img{transform:translate3d(0, clamp(-6px, var(--art-drift,0px), 6px), 0) scale(1.13)}.subject-art-spots{z-index:2;position:absolute;inset:0}.subject-art-spot{left:var(--spot-x);top:var(--spot-y);cursor:pointer;background:0 0;border:0;place-items:center;width:48px;height:48px;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.subject-art-dot{background:var(--ink);color:#fff;width:30px;height:30px;font:500 19px/1 var(--font);border:3px solid #fffdf7;border-radius:50%;place-items:center;transition:background .2s,box-shadow .2s,scale .2s;display:grid;box-shadow:0 0 0 5px #18364a15,0 4px 14px #18364a30}.subject-art-spot[aria-pressed=true] .subject-art-dot{background:var(--free-green);box-shadow:0 0 0 7px #00843d20,0 4px 14px #18364a30}.subject-art-spot:hover .subject-art-dot,.subject-art-spot:focus-visible .subject-art-dot{scale:1.15}.subject-art-spot:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:50%}.subject-art-label{color:var(--ink);font:750 11px/1.4 var(--font);white-space:nowrap;opacity:0;pointer-events:none;background:#fffdf7f5;border:1px solid #d8dfd9;border-radius:7px;padding:6px 10px;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%,-4px);box-shadow:0 4px 16px #18364a12}.subject-art:hover .subject-art-label,.subject-art:focus-within .subject-art-label,.subject-art.is-tapped .subject-art-label{opacity:1;transform:translate(-50%)}.subject-art-invitation{color:var(--ink);backdrop-filter:blur(8px);font:650 11px/1.5 var(--font);pointer-events:none;background:#fffdf7e8;border:1px solid #fffdf7b3;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}.subject-group-intro{margin-bottom:24px}.subject-group-intro>p{margin-top:16px}.subject-panels{border:1px solid var(--line);background:#fffdf9;border-radius:12px;margin-top:12px}.subject-panel,.subjects-enhanced .subject-panel{padding:20px}.subject-panel:focus{outline:none}.subject-panel:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:12px}.subject-panel .subject-example-label{margin-top:16px}.subject-panel .subject-example-task{border-left:0;border-radius:8px;padding:12px 16px}@media (hover:none){.subject-art-label{opacity:1;transform:translate(-50%)}}@media (width<=600px){.subject-art-invitation{padding:8px 10px;font-size:10px;bottom:10px;left:10px;right:10px}}@media (prefers-reduced-motion:reduce){.subject-art,.subject-art img,.subject-art.pointer-active img,.subject-art:focus-within img,.subject-art.is-tapped img{transform:none}.subject-art-spot:hover .subject-art-dot,.subject-art-spot:focus-visible .subject-art-dot{scale:1}}@media (width>=901px){.subject-groups{grid-template-rows:repeat(4,auto);row-gap:0}.subject-groups>.subject-group{grid-row:span 4;grid-template-rows:subgrid;display:grid}.subject-group-intro{margin-bottom:0;padding-bottom:24px}.subject-group-copy{grid-row:span 2;grid-template-rows:subgrid;display:grid}.subject-panels{align-self:stretch}}.subjects-enhanced .subject-panel{flex-direction:column;align-self:stretch;display:flex}.subjects-enhanced .subject-panel>.subject-diagram{flex-direction:column;flex:1;padding-top:20px;display:flex}.subject-panel .diagram-actions{margin-top:auto;padding-top:8px}.subject-panel .subject-example-task{margin-bottom:0}.subject-diagram{min-width:0}.subject-diagram .diagram-title{color:var(--sage);font:650 11px/1.5 var(--mono);margin:0 0 12px}.diagram-scene{background:radial-gradient(at 10% 0,#fffaf1,#0000 75%),#f1f4ee;border:1px solid #d8e1d8;border-radius:10px;flex-direction:column;justify-content:center;gap:16px;min-height:152px;padding:18px 16px;display:flex}.diagram-numbers{justify-content:center;gap:clamp(4px,.6vw,10px);display:flex}.diagram-number{min-width:0;max-width:54px;height:48px;color:var(--ink);font:600 19px/1 var(--mono);background:#fffdf9;border:1px solid #c7d3cb;border-radius:8px;flex:1;place-items:center;display:grid}.diagram-scene .is-marked,.diagram-bits .is-marked .diagram-bit,.diagram-bits .is-marked .diagram-weight{color:#28532f;background:#d9e8d2;border-color:#8ba77d}.diagram-scene .is-current{border-color:var(--accent);box-shadow:0 0 0 3px #9b56281a}.diagram-calculation{color:var(--sage);font:11px/1.6 var(--mono);justify-content:space-between;align-items:center;gap:8px;display:flex}.diagram-calculation strong{color:var(--ink);font-size:14px}.diagram-calculation>span:last-child{white-space:nowrap}.subject-diagram .diagram-result{color:var(--ink);margin:12px 0 0;font-size:12px;line-height:1.6}.diagram-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 12px;margin-top:8px;display:flex}.subject-panel .diagram-actions a{margin-top:0}.diagram-replay{min-height:44px;color:var(--sage);font:650 12px/1.5 var(--font);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:8px 0;display:inline-flex}.diagram-replay>span{font-size:20px}.diagram-replay:hover{color:var(--ink)}.diagram-replay:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.diagram-chart{border-bottom:1px solid #bccbc2;gap:12px;height:90px;padding:0 42px 0 12px;display:flex;position:relative}.diagram-chart-column{flex:1;justify-content:center;align-items:flex-end;display:flex}.diagram-bar{height:var(--bar-height);background:#c9d3cd;border:1px solid #a3b5ab;border-radius:4px 4px 0 0;width:100%;max-width:48px;position:relative}.diagram-bar b{text-align:center;width:100%;font:11px/1.5 var(--mono);color:var(--ink);position:absolute;bottom:100%}.diagram-average{z-index:1;border-top:1px dashed var(--accent);opacity:0;position:absolute;bottom:48%;left:0;right:0}.diagram-average>span{color:var(--accent);font:10px var(--mono);position:absolute;bottom:2px;right:0}.diagram-average.is-shown{opacity:1}.diagram-relations{font:12px/1.5 var(--mono);grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:6px;display:grid}.diagram-relations>div{flex-direction:column;gap:5px;display:flex}.diagram-relations small{color:var(--sage);font:650 10px/1.5 var(--font)}.diagram-relations span{white-space:nowrap;background:#fffdf9;border:1px solid #d1dacf;border-radius:4px;padding:3px 7px;display:block}.diagram-relations .diagram-joins{opacity:.2;padding-top:20px}.diagram-relations .diagram-joins.is-shown{opacity:1}.diagram-joins span{text-align:center;color:var(--accent);background:0 0;border-color:#0000;padding-inline:0;font-size:10px}.diagram-relations .is-filtered{opacity:.3;text-decoration:line-through}.subject-foundation>.foundation-card{flex-direction:column;display:flex}.foundation-card>.foundation-example{flex-direction:column;flex:1;display:flex}.foundation-example>.diagram-teoria{flex-direction:column;flex:1;justify-content:center;padding-top:20px;display:flex}.diagram-teoria .diagram-scene{gap:24px;min-height:230px;padding:24px}.diagram-bits{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.diagram-bits>div{flex-direction:column;align-items:center;display:flex;background:0 0!important}.diagram-bit{aspect-ratio:1;width:100%;max-width:76px;color:var(--ink);font:600 28px var(--mono);background:#fffdf9;border:1px solid #c5d2c8;border-radius:10px;place-items:center;display:grid}.diagram-bit-link{color:#9cab9f;font-size:22px}.diagram-bits .is-marked .diagram-bit-link{color:var(--accent)}.diagram-weight{width:100%;max-width:76px;color:var(--muted);font:18px/1.8 var(--mono);border:1px solid #0000;border-radius:6px;place-items:center;display:grid}.diagram-binary-sum{opacity:.25;font:600 24px/1.5 var(--mono);color:var(--ink);justify-content:center;align-items:center;gap:14px;display:flex}.diagram-binary-sum.is-shown{opacity:1}.diagram-binary-sum strong{color:#28532f;background:#d9e8d2;border-radius:8px;padding:4px 14px}.foundation-exam .subject-example-label{margin-top:14px}.foundation-exam .exam-caption{margin-top:12px}.foundation-exam blockquote{margin-top:6px}.foundation-example .diagram-exam-steps{counter-reset:exam-step;margin-top:12px;padding:0;list-style:none}.diagram-exam-steps li{counter-increment:exam-step;border:1px solid #0000;border-radius:8px;padding:8px 10px 8px 42px;position:relative}.diagram-exam-steps li:before{content:counter(exam-step, decimal-leading-zero);color:var(--sage);font:12px var(--mono);position:absolute;top:10px;left:8px}.foundation-example .diagram-exam-steps li+li{margin-top:4px}.diagram-exam-steps li.is-marked{background:#e1eade}.diagram-exam-steps li.is-current{background:#fffaf1;border-color:#c9a17b}.foundation-exam .exam-sources{margin-top:auto;padding-top:12px}@media (prefers-reduced-motion:no-preference){.diagram-number,.diagram-bit,.diagram-weight,.diagram-exam-steps li{transition:background .3s,border-color .3s,color .3s,box-shadow .3s}.diagram-average,.diagram-binary-sum,.diagram-relations span,.diagram-relations .diagram-joins{transition:opacity .35s,background .35s}.diagram-bar{transition:background .35s,border-color .35s}}@media (width<=900px){.subject-groups>.subject-group{display:block}.subject-group-intro{margin-bottom:20px}.subject-group-copy{padding-top:16px}.subject-art{margin-top:0}.foundation-example>.diagram-teoria{flex:initial}.diagram-numbers{gap:8px}}@media (width<=600px){.diagram-scene{padding:16px 12px}.diagram-numbers{gap:4px}.diagram-number{height:40px;font-size:16px}.diagram-calculation{font-size:10px}.diagram-calculation strong{font-size:12px}.diagram-relations{grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);gap:3px;font-size:10px}.diagram-relations span{padding-inline:4px}.diagram-joins span{padding-inline:0;font-size:9px}.diagram-bits{gap:8px}.diagram-teoria .diagram-scene{padding:20px 12px}}.lesson-lab{margin-top:26px}.lesson-lab [hidden]{display:none!important}.lesson-lab button{cursor:pointer}.lab-launch{width:100%;min-height:76px;color:var(--ink);text-align:left;transition:background var(--motion-reaction,.2s), box-shadow var(--motion-reaction,.2s);background:#eaf1e5;border:1px solid #9cb6a1;border-radius:10px;align-items:center;gap:14px;padding:16px;display:flex}.lab-launch:hover,.lab-launch:focus-visible{background:#dfead7;box-shadow:0 5px 20px #18364a0d}.lab-launch>span:nth-child(2){flex:1;font-size:14px;font-weight:750;line-height:1.5}.lab-launch small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:500;display:block}.lab-play-mark{background:var(--ink);width:36px;height:36px;color:var(--paper);border-radius:50%;flex-shrink:0;place-items:center;padding-left:2px;font-size:11px;display:grid}.lab-workspace{background:linear-gradient(145deg,#f3f6ed,#eaf0e5);border:1px solid #b5c8b6;border-radius:12px;padding:20px}.lab-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.lab-heading .eyebrow{letter-spacing:.13em;font-size:10px}.lab-counter{color:var(--sage);font:11px var(--mono);white-space:nowrap}.lab-progress{appearance:none;width:100%;height:3px;color:var(--sage);background:#d8e1d2;border:0;border-radius:4px;margin:13px 0 16px;display:block;overflow:hidden}.lab-progress::-webkit-progress-bar{background:#d8e1d2}.lab-progress::-webkit-progress-value{background:var(--sage);transition:width var(--motion-reaction,.2s)}.lab-progress::-moz-progress-bar{background:var(--sage)}.lab-explanation{min-height:4.8em;color:var(--text);font-size:13px;line-height:1.6}.lab-variables{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.lab-variables>div{background:#fafbf6;border:1px solid #cbd7c6;border-radius:7px;flex:85px;min-width:0;padding:10px 12px}.lab-variables dt{overflow-wrap:anywhere;color:var(--muted);font:10px/1.5 var(--mono)}.lab-variables dd{color:var(--ink);font:650 16px/1.5 var(--mono);overflow-wrap:anywhere;margin:4px 0 0}.lab-variables>div:has(.lab-array){flex-basis:100%}.lab-array{flex-wrap:wrap;gap:5px;display:flex}.lab-array>span{border:1px solid #d1dccd;border-radius:4px;place-items:center;min-width:25px;height:28px;display:grid}.lab-array>.is-current{color:#fff;background:var(--ink);border-color:var(--ink)}.lab-array>.is-compared{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}.lab-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.lab-controls button{min-width:0;min-height:44px;color:var(--ink);transition:background var(--motion-reaction,.2s), border-color var(--motion-reaction,.2s);background:#fafbf6;border:1px solid #9bab9a;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:10px 6px;font-size:12px;line-height:1.4;display:flex}.lab-controls button:not(:disabled):hover{border-color:var(--sage);background:#dfe9d7}.lab-controls button:disabled{cursor:default;color:#63715f;background:#e7ecdf;border-color:#c9d3c3}.lab-controls .lab-play{background:var(--ink);border-color:var(--ink);color:#fff}.lab-controls .lab-play:not(:disabled):hover{color:#fff;background:#284b61}.lab-summary{width:100%;min-height:44px;color:var(--sage);text-align:left;text-underline-offset:4px;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;margin-top:7px;padding:8px 0 0;font-size:11px;text-decoration:underline;display:flex}.lab-active .number-sequence>span{transition:background var(--motion-reaction,.2s), border-color var(--motion-reaction,.2s), color var(--motion-reaction,.2s);position:relative}.lab-active .number-sequence>.is-compared{border-color:var(--accent);box-shadow:inset 0 -3px var(--accent)}.lab-active .number-sequence>.is-current{border-color:var(--ink);background:var(--ink);color:#fff;box-shadow:0 3px 10px #18364a26}.lab-active .number-sequence>.is-current:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;bottom:-9px;left:calc(50% - 3px)}.lesson-code [data-code-line]{transition:background var(--motion-reaction,.2s), box-shadow var(--motion-reaction,.2s);border-radius:3px}.lesson-code .is-code-current{background:#ffffff15;box-shadow:-6px 0 #c6d9a6}.lesson-panel.lesson-enter>.lesson-sheet{animation:lesson-enter var(--motion-enter,.55s) var(--ease-out,ease-out) both}@keyframes lesson-enter{0%{opacity:.7;translate:0 10px}to{opacity:1;translate:0}}@media (width<=600px){.lab-workspace{padding:16px 12px}.lab-launch{gap:10px;padding:14px 12px}.lab-controls button{font-size:11px}}@media (prefers-reduced-motion:reduce){.lesson-lab *,.lesson-lab :before,.lesson-lab :after,.lab-active .number-sequence>span,.lesson-code [data-code-line],.lesson-panel.lesson-enter>.lesson-sheet{transition:none!important;animation:none!important}}.hero{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:40px;padding-block:40px;display:grid}.hero h1{letter-spacing:-.055em;text-wrap:balance;font-size:clamp(2.5rem,4.2vw,3.5rem);font-weight:650;line-height:1.06}.hero .eyebrow{margin-bottom:20px}.hero-description{margin-top:20px;font-size:1.0625rem;line-height:1.75}.hero-actions{flex-wrap:wrap;align-items:flex-start;gap:16px 24px;margin-top:24px;display:flex}.hero-actions .hero-intro-action{flex:none;width:auto}.hero-facts{margin-top:20px;padding-top:16px}.hero .portrait-scene{justify-self:center;width:100%;max-width:400px}.section{padding-block:64px}.home-overview{padding-block:28px}.home-overview>h2{margin-bottom:12px;font-size:clamp(1.5rem,2.7vw,2rem)}.home-overview>p{max-width:760px;margin-bottom:20px}.home-disclosure{border:1px solid var(--line);background:var(--white);border-radius:12px;min-width:0}.home-disclosure>summary{cursor:pointer;min-height:56px;color:var(--ink);padding:18px 20px;font-weight:700}.home-disclosure[open]>summary{border-bottom:1px solid var(--line)}.disclosure-body{min-width:0;padding:24px}.disclosure-body .container{width:100%}.disclosure-body .section{padding-block:20px}.projects.home-disclosure{align-self:start}.projects .disclosure-body{gap:16px;display:grid}.home-disclosure:focus-within{border-color:var(--sage)}@media (width<=899px){.hero{grid-template-columns:1fr;gap:28px;padding-block:32px}.hero .portrait-scene{max-width:340px}.hero-copy{max-width:720px}.hero h1{font-size:clamp(2.25rem,6.8vw,3.25rem)}.section{padding-block:48px}.disclosure-body{padding:16px}}@media (width>=900px){.hero{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}@media (width<=600px){.hero .portrait-scene{max-width:280px}.hero-actions{align-items:stretch}.hero-description{font-size:1rem}.home-overview{padding-block:24px}}.lesson-disclosure{overflow:hidden}.lesson-disclosure>.disclosure-body{background:var(--soft);padding:24px}.lesson-disclosure .example-section{background:0 0;border:0}.lesson-disclosure .example-section .section{padding:0}@media (width<=899px){.lesson-disclosure>.disclosure-body{padding:16px}}@media (width>=900px) and (height<=760px){.hero{gap:32px;padding-block:16px}.hero h1{font-size:clamp(2.5rem,3.6vw,3rem)}.hero .eyebrow{margin-bottom:12px}.hero-description{margin-top:16px;font-size:1rem;line-height:1.65}.hero-actions{margin-top:16px}.hero-intro-action{padding:0}.hero-facts{margin-top:16px;padding-top:14px}.hero .portrait-scene{max-width:clamp(260px,85svh - 178.5px,380px)}.portrait-caption{padding-top:12px}}@media (width<=600px){.hero-actions{flex-direction:column;align-items:stretch;gap:8px}.hero-actions .hero-intro-action,.hero-actions .button{width:100%}}
