@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');:root{--paper:#f4f2e9;--ink:#172b25;--green:#bde8bb;--line:#cbd1c5;--dark:#172925;--accent:#e49f70}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans','Noto Sans KR',sans-serif}header{height:78px;max-width:1440px;margin:auto;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{font-size:13px;font-weight:700;letter-spacing:.13em}.mark{font-size:24px;vertical-align:middle;margin-right:8px}.brand small{display:block;font-size:8px;letter-spacing:.18em;margin-left:34px;color:#7b8b7e}nav{display:flex;gap:32px;font-size:13px}main{overflow:hidden}.hero,.lesson,.roadmap{max-width:1440px;margin:auto;padding-left:6%;padding-right:6%}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:590px;align-items:center;gap:4%}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;color:#6b7e72;margin:0 0 24px}.eyebrow span{color:#c57953}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,5.3vw,76px);line-height:1.2;letter-spacing:-.06em;margin-bottom:24px}h1 em,h2 em{color:#6f9f7a;font-style:normal}.intro{max-width:465px;line-height:1.9;color:#607268;font-size:15px}.actions{display:flex;align-items:center;gap:28px;margin-top:34px}.button{background:var(--dark);color:#fff;padding:17px 21px;font-size:13px}.button span{margin-left:25px}.textlink{font-size:13px;font-weight:600}.hero-bottom{display:flex;gap:20px;flex-wrap:wrap;margin-top:90px;color:#839187;font-size:10px;letter-spacing:.07em}.art{position:relative;max-width:530px;background:#dcebd8;aspect-ratio:1.12;border-radius:2px}.art svg{width:100%;height:100%;fill:#294b3a}.art .lines{fill:none;stroke:#719981;stroke-width:1}.art .ring{fill:none;stroke:#618b70;stroke-width:1}.art .core{fill:#345d45}.art text{font:10px 'DM Sans';letter-spacing:.15em;fill:#688976}.art-note{position:absolute;bottom:5%;left:6%;font-size:11px;color:#698474;line-height:1.7}.lesson,.roadmap{padding-top:100px;padding-bottom:105px;border-top:1px solid var(--line)}.sectiontop{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:42px}.sectiontop h2,.about h2{font-size:clamp(36px,3.8vw,54px);letter-spacing:-.055em;line-height:1.25;margin:0}.sectiontop>p{max-width:350px;color:#728077;font-size:14px;line-height:1.9;margin:0}.lab{background:var(--dark);color:#f2f4e9}.lab-head{display:flex;justify-content:space-between;padding:19px 25px;border-bottom:1px solid #40514b;color:#9caea5;font-size:10px;letter-spacing:.1em}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.green{background:#bceabc}.orange{background:#e7a579;margin-left:20px}.lab-body{display:grid;grid-template-columns:1.5fr 1fr}.plot-wrap{padding:22px}.plot-wrap svg{width:100%;display:block;background:#1c302b}.controls{padding:35px 42px;border-left:1px solid #40514b}.controls h3{font-size:26px;line-height:1.4}.controls p{font-size:13px;line-height:1.8;color:#a9bab0}.controls label{display:flex;justify-content:space-between;margin-top:22px;font-size:12px}.controls input{width:100%;accent-color:#bceabc;margin:14px 0}.score{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #465a50;padding-top:20px;margin-top:20px;font-size:12px}.score strong{font-size:24px;color:#bceabc}.controls .hint{font-size:11px}.reset{border:0;background:none;color:#c0d5c7;padding:0;font:inherit;font-size:12px;cursor:pointer}.after{display:grid;grid-template-columns:1fr 1.5fr;gap:30px;padding:65px 0 25px}.after h3{font-size:28px;line-height:1.4}.number{color:#9bad9d;font-family:serif;font-size:20px}.after p{line-height:1.95;color:#596c61;font-size:15px}.after em{font-style:normal;color:#467a58;font-weight:700}.next-question{border:0;background:none;padding:10px 0;color:#3f7550;font-weight:700;cursor:pointer}.callout{background:#e5eadc;padding:23px 26px;display:flex;gap:30px;align-items:baseline}.callout span{font-size:11px;letter-spacing:.05em;white-space:nowrap;font-weight:700}.callout p{margin:0;font-size:13px;line-height:1.8;color:#596c61}.roadmap{background:#ebece2;max-width:none;padding-left:max(6%,calc((100% - 1267px)/2));padding-right:max(6%,calc((100% - 1267px)/2))}.map-layout{display:grid;grid-template-columns:2fr 1fr;gap:25px}.filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}.filter{border:1px solid #b9c5b7;background:transparent;padding:9px 13px;color:#516758;cursor:pointer;font-size:11px}.filter.active{background:#203a2c;color:white;border-color:#203a2c}.nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.node{cursor:pointer;text-align:left;min-height:105px;border:1px solid #ccd6c9;background:#f7f8ef;padding:15px;color:#1d3327}.node:hover,.node.selected{border-color:#507b58;background:#e1efdb}.node small{display:block;color:#8c9c8d;font-size:10px;margin-bottom:13px}.node strong{font-size:13px;line-height:1.5}.detail{background:#263c30;color:#edf3e9;padding:28px;min-height:270px;position:sticky;top:20px;align-self:start}.detail h3{font-size:23px;line-height:1.4}.detail p{color:#b6c7b9;font-size:13px;line-height:1.8}.detail b{color:#d7e9ba}.detail .tag{font-size:10px;letter-spacing:.13em;color:#b6dcae}.detail button{background:none;border:0;padding:0;color:#d7e9ba;cursor:pointer;font:inherit;text-align:left}.map-foot{color:#829185;font-size:11px;margin-top:20px}.about{background:#dbe9d8;padding:100px 6% 25px}.about>p,.about h2,.about>div{max-width:1267px;margin-left:auto;margin-right:auto}.about>p:not(.eyebrow){max-width:450px;margin-left:max(0px,calc((100% - 1267px)/2));line-height:1.9;color:#68806d;font-size:14px;margin-top:25px}.about>div{border-top:1px solid #bdcfbb;margin-top:90px;padding-top:20px;font-size:11px;letter-spacing:.13em;font-weight:700;display:flex;justify-content:space-between}.about>div span{color:#829987}@media(max-width:760px){header{height:68px}nav a:not(:nth-child(2)){display:none}.hero{grid-template-columns:1fr;padding-top:65px;padding-bottom:60px}.hero-bottom{margin-top:35px}.art{margin-top:30px}.sectiontop{display:block}.sectiontop>p{margin-top:20px}.lesson,.roadmap{padding-top:70px;padding-bottom:70px}.lab-body,.after,.map-layout{grid-template-columns:1fr}.controls{border-left:0;border-top:1px solid #40514b}.lab-head>span{display:none}.nodes{grid-template-columns:repeat(2,1fr)}.detail{position:static}.callout{display:block}.callout p{margin-top:10px}}
.graph-intro{display:flex;justify-content:space-between;gap:12px;margin:18px 0 10px;color:#718679;font-size:10px;font-weight:700;letter-spacing:.12em}.graph-scroll{width:100%;height:600px;overflow:auto;border:1px solid #cbd7c8;background-color:#f4f6ed;background-image:radial-gradient(#d5ded2 1px,transparent 1px);background-size:20px 20px;scrollbar-color:#99ad9b #e7ede2}.graph{position:relative;min-width:100%}.graph svg,.graph-nodes{position:absolute;inset:0}.graph svg{overflow:visible;pointer-events:none}.graph-edges path{fill:none;stroke:#aab9a9;stroke-width:1.4;opacity:.7}.graph-edges path.connected{stroke:#4e805c;stroke-width:2.5;opacity:1}.graph-edges path.dimmed{opacity:.12}.graph-node{position:absolute;text-align:left;cursor:pointer;border:1px solid #c4d1c1;border-radius:3px;background:#fafbf4;color:#203b2a;padding:11px 12px;box-shadow:0 2px 6px #293c2910;transition:opacity .15s,background .15s,border-color .15s}.graph-node span{display:block;color:#788d7b;font-size:8px;letter-spacing:.11em;font-weight:700;margin-bottom:6px}.graph-node strong{font-size:12px;line-height:1.25}.graph-node:hover,.graph-node:focus-visible{border-color:#598664;outline:2px solid #a8c6a5;outline-offset:2px}.graph-node.selected{background:#dcefd8;border:2px solid #538461}.graph-node.dimmed{opacity:.28}.detail{max-height:calc(100vh - 40px);overflow:auto}.detail .detail-section{border-top:1px solid #496052;padding:17px 0 5px}.detail h4{display:flex;justify-content:space-between;margin:0 0 12px;color:#eef5e8;font-size:12px}.detail h4 span{color:#93aa99}.detail .detail-link,.detail .lesson-link{display:flex;justify-content:space-between;gap:8px;width:100%;padding:8px 0;color:#d8e9cc;font-size:12px;line-height:1.5;border-bottom:1px solid #3d5546}.detail .detail-link:hover,.detail .lesson-link:hover{color:white;text-decoration:underline}.detail .lesson-link{display:block}.detail .lesson-link span{display:block;color:#9bb5a1;font-size:11px}.detail .detail-empty{display:block;color:#a6baa9;font-size:12px;line-height:1.6;margin:0}.detail-question{padding-bottom:5px}@media(max-width:760px){.graph-scroll{height:450px}.detail{max-height:none}}
.graph-intro label{font-size:10px;color:#526b5a;letter-spacing:.02em;text-transform:none}.graph-intro select{font:inherit;background:#f7f8ef;color:#263e2c;border:1px solid #b9cbb9;padding:7px}.graph-edges path.related-edge{stroke-dasharray:6 5;stroke:#a68165;opacity:.65}.graph-edges path.related-edge.comparison{stroke:#a97894}.graph-edges path.related-edge.historical{stroke:#bc9262}.graph-edges path.related-edge.application{stroke:#6d99a4}.graph-edges path.related-edge.connected{stroke-width:2.5;opacity:1}.lesson-copy{max-width:760px;margin-left:auto;line-height:1.95;font-size:15px;color:#596c61}.lesson-copy p{margin-bottom:22px}.lesson-copy .equation{background:#203b2f;color:#d9ebc6;padding:24px;font-family:monospace;font-size:15px;margin:28px 0}.lesson-copy .callout{margin:30px 0}.lesson-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.lesson-links button{background:#e1ebd8;border:1px solid #b7c9af;color:#355c3c;padding:12px 14px;cursor:pointer;font:inherit;font-size:12px}.second-lesson{padding-bottom:90px}
.graph-node.incoming{border-color:#5e96ab;background:#dfedf1;opacity:1}.graph-node.outgoing{border-color:#bd9450;background:#f6ecd7;opacity:1}.graph-node.related{border-color:#a47695;background:#f1e7ef;opacity:1}.graph-node.inspected{border:2px solid #345e43;background:#dcefd8;opacity:1;z-index:2}.graph-node.selected.dimmed{opacity:.28}.graph-node.incoming.outgoing{border-color:#8c82a5;background:#e7e6f2}
.lesson-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:35px}.lesson-card{display:flex;flex-direction:column;gap:16px;background:#e6eddf;border:1px solid #ccd9c7;padding:28px;min-height:220px}.lesson-card span{font-size:10px;font-weight:700;letter-spacing:.12em;color:#789281}.lesson-card strong{font-size:23px;line-height:1.35}.lesson-card p{font-size:13px;line-height:1.8;color:#64796b}.lesson-card b{margin-top:auto;color:#426e4d;font-size:12px}.lesson-card:hover{border-color:#64876b}.all-lessons{font-size:13px;font-weight:700;margin-top:25px}.article-page{padding-top:75px}.article-page h1{font-size:clamp(38px,4.4vw,60px);margin-bottom:0}.article-page .sectiontop>p{margin-bottom:0}.article-page .lesson-copy a,.article-page .textlink{color:#427653;text-decoration:underline;text-underline-offset:3px}.site-footer{max-width:1440px;margin:auto;padding:30px 6%;border-top:1px solid #cbd1c5;display:flex;gap:25px;font-size:12px;color:#526b5a}@media(max-width:760px){.lesson-cards{grid-template-columns:1fr}.article-page{padding-top:55px}}
.lesson-article h1{max-width:1000px}.lesson-lede{font-size:18px;line-height:1.8;color:#526c5b;max-width:760px;margin-top:24px}.article-content{margin:45px 0 0;max-width:760px}.article-content section{margin:38px 0}.article-content h2{font-size:25px;line-height:1.35;letter-spacing:-.02em;color:#203a2c}.practice{border:1px solid #bccdb9;background:#e9efe3;padding:20px 24px;margin:32px 0}.practice summary{cursor:pointer;font-weight:700;color:#25432f}.practice p:first-of-type{margin-top:18px}.article-links,.article-references{border-top:1px solid #cbd1c5;padding:24px 0}.article-links a{display:block;padding:7px 0}.interactive-lab{background:#1d3128;color:#ecf2e8;padding:28px;margin:30px 0}.interactive-lab h2{color:#e9f1e5}.interactive-lab label{display:flex;justify-content:space-between;font-size:13px}.interactive-lab input{width:100%;accent-color:#bceabc}.interactive-lab svg{display:block;width:100%;max-width:440px;margin:20px auto;background:#253d31}.lab-readout{font-family:monospace;color:#c7e8c7;font-size:14px}.lab-actions{display:flex;gap:10px;margin-top:20px}.lab-actions button{padding:11px 15px;border:1px solid #a7c5a6;background:#bedeb9;color:#1d3128;cursor:pointer}.lab-actions button+button{background:transparent;color:#e1eddf}.interactive-lab .lab-note{font-size:11px;color:#b8c8ba;line-height:1.6;margin-top:18px}
.concept-lab .eyebrow{color:#a6c5a9;margin-bottom:12px}.concept-lab .concept-controls{display:grid;gap:9px;margin:24px 0}.concept-lab label{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:#e6eee4}.concept-lab select{width:100%;padding:10px;background:#f1f4ea;color:#213b2e;border:1px solid #9ab6a2;font:inherit;font-size:13px}.concept-lab input[type=range]{margin:0 0 10px}.concept-lab .concept-steps{border-top:1px solid #486051;margin-top:20px}.concept-steps>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #486051;font-size:13px}.concept-steps span{color:#b4c9b7}.concept-steps strong{text-align:right;color:#f1f4e7;font-variant-numeric:tabular-nums}.interactive-lab .concept-note{color:#c4d8c6;font-size:12px;line-height:1.7;margin:16px 0 0}.interactive-lab .concept-plot{width:100%;max-width:420px;height:auto;background:#263e31;margin:15px auto}.concept-bars{display:flex;align-items:end;justify-content:center;gap:16px;height:125px;border-bottom:1px solid #789281;padding:0 10px;margin:28px 0 30px}.concept-bar{display:flex;position:relative;align-items:end;justify-content:center;height:100%;width:45px}.concept-bar span{display:block;width:30px;min-height:2px}.concept-bar small{position:absolute;top:calc(100% + 5px);color:#cadccc;font-size:10px;white-space:nowrap}.concept-timeline{display:flex;gap:6px;margin:25px 0 10px}.concept-timeline span{flex:1;text-align:center;padding:10px 2px;color:#1c3027;font-size:12px}.concept-timeline .train{background:#b9dcb5}.concept-timeline .test{background:#e8ab7d}@media(max-width:500px){.concept-steps>div{display:block}.concept-steps strong{display:block;text-align:left;margin-top:5px}.interactive-lab{padding:20px}}
.pixel-grid{display:grid;grid-template-columns:repeat(2,64px);grid-template-rows:repeat(2,64px);gap:3px;justify-content:center;margin:24px 0}.pixel-grid span{border:1px solid #8eaa98}
/* Shared diagrams: keep signed values on their correct side of zero. */
.concept-bars{position:relative;border-bottom:1px solid #789281}.concept-bars.signed{border-bottom:0}.concept-bars.signed::after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#91a996}.concept-bar span{position:absolute;left:50%;transform:translateX(-50%);min-height:0;transition:height .2s ease,bottom .2s ease}.chart-key{color:#b4c9b7;font-size:11px;line-height:1.6;margin:0 0 15px}.attention-diagram{display:block;width:100%;max-width:480px;height:auto;margin:20px auto;background:#263e31}.diagram-label{font:700 10px 'DM Sans',sans-serif;letter-spacing:.12em;fill:#aec8b4}.diagram-number{font:700 14px 'DM Sans',sans-serif;text-anchor:middle;fill:#1e3828}.diagram-weight{font:600 12px 'DM Sans',sans-serif;fill:#e6efe2}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.concept-bar span,.graph-node{transition:none}}
.visual-snapshot{padding:20px 0 4px}.snapshot-heading{display:block;color:#a6c5a9;font-size:10px;font-weight:700;letter-spacing:.12em;margin-bottom:12px}.snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px}.snapshot-card{background:#2c4939;border:1px solid #577462;padding:13px;min-width:0;animation:snapshot-in .18s ease-out}.snapshot-card span,.snapshot-card strong{display:block;overflow-wrap:anywhere}.snapshot-card span{font-size:10px;color:#bed1bf;margin-bottom:7px}.snapshot-card strong{font-size:14px;line-height:1.4;color:#eef4e8}.attention-diagram path{transition:stroke-width .2s ease}@keyframes snapshot-in{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.snapshot-card{animation:none}.attention-diagram path{transition:none}}
.concept-diagram{display:block;width:100%;max-width:520px;height:auto;margin:20px auto;background:#263e31}.diagram-caption{font:700 9px 'DM Sans',sans-serif;letter-spacing:.06em;text-anchor:middle;fill:#466252}.diagram-value{font:700 15px 'DM Sans',sans-serif;text-anchor:middle;fill:#1e3828}.diagram-small{font:600 11px 'DM Sans',sans-serif;fill:#efc3a2}.diagram-item{animation:diagram-arrive .22s ease-out}@keyframes diagram-arrive{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.diagram-item{animation:none}}

/* Keep the article and its experiments on the same centered reading axis. */
.article-page .lesson-copy{margin-left:auto;margin-right:auto}
/* Grid items must be allowed to shrink so the map, not the page, scrolls. */
@media(min-width:761px){.map-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.map-layout>div{min-width:0}.graph-scroll{max-width:100%;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:auto}.graph-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;color:#526b5a;font-size:12px}.graph-navigation div{display:flex;gap:6px}.graph-navigation button{border:1px solid #a6b8a8;background:#f7f8ef;color:#263e2c;padding:7px 14px;cursor:pointer;font-size:16px}.graph-navigation button:focus-visible{outline:2px solid #345e43;outline-offset:2px}.graph-node{display:block}.graph-node strong{display:block}
