/* Paper, ink, and a little signal. No external fonts or runtime assets. */
:root{--paper:#f6f4ee;--surface:#fffefa;--ink:#25352e;--muted:#657169;--quiet:#89928a;--line:#dedfd5;--line-strong:#c9cfc2;--green:#315b45;--green-light:#e7efdd;--accent:#c6643c;--accent-light:#fbebdc;--dark:#24342d;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--sidebar:252px;--radius:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7;letter-spacing:.01em}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.34}button{letter-spacing:inherit}button,input,select,textarea{outline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #c27144;outline-offset:4px}a,button{touch-action:manipulation}button{border:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em;line-height:1.35}h1{font-size:clamp(30px,3.6vw,48px);font-weight:750}h2{font-size:27px;font-weight:700;margin-bottom:20px}h3{font-size:18px;margin-bottom:10px}p{margin-bottom:16px}strong,b{font-weight:650}small{font-size:12px}::selection{background:#d9e8c9;color:#20352a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:16px;z-index:100;background:var(--ink);color:white;padding:12px 18px;border-radius:0 0 8px 8px}.skip-link:focus{top:0}.noscript{position:fixed;inset:20px;z-index:100;background:var(--surface);border:2px solid var(--accent);padding:24px}.page-pad{padding-left:clamp(28px,4vw,68px);padding-right:clamp(28px,4vw,68px)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);display:flex;flex-direction:column;background:#eeeee5;border-right:1px solid var(--line);z-index:40;overflow:hidden}.brand{display:flex;align-items:center;gap:12px;margin:28px 24px 25px;font-size:23px;font-weight:700;line-height:1.35;letter-spacing:-.05em}.brand>span:last-child{display:flex;flex-direction:column}.brand small{font-family:var(--mono);font-size:8px;letter-spacing:.2em;font-weight:500;margin-top:4px;color:var(--muted)}.brand-mark{display:flex;align-items:flex-end;gap:4px;width:36px;height:37px;padding:7px;background:var(--ink);border-radius:9px;transform:rotate(-4deg)}.brand-mark i{width:5px;border-radius:1px;background:#d2e5b8}.brand-mark i:nth-child(1){height:9px}.brand-mark i:nth-child(2){height:16px}.brand-mark i:nth-child(3){height:23px}.sidebar-search{display:flex;align-items:center;margin:0 18px 17px;padding:7px 10px;gap:7px;border:1px solid #d4d8cb;border-radius:8px;background:rgba(255,255,255,.43)}.sidebar-search>span{font-size:22px;line-height:1}.sidebar-search input{min-width:0;width:100%;background:transparent;border:0;font-size:12px;color:var(--ink);padding:3px 0}.sidebar-search input::placeholder{color:#616c63}.sidebar-search kbd{font:11px var(--mono);border:1px solid var(--line-strong);border-radius:3px;padding:1px 5px;color:var(--muted)}.primary-nav{padding:0 14px 15px}.primary-nav a{display:flex;align-items:center;gap:10px;border-radius:7px;padding:8px 12px;font-size:13px;margin:2px 0;color:#566257;transition:background .15s}.primary-nav a>span:first-child{font-size:18px;width:21px;text-align:center}.primary-nav a.current,.primary-nav a:hover{background:#dfe6d7;color:#2f513c}.primary-nav a.current{font-weight:650}.nav-count{margin-left:auto;font-family:var(--mono);font-size:11px;background:rgba(255,255,255,.5);padding:0 6px;border-radius:4px}.nav-divider{display:flex;justify-content:space-between;align-items:center;margin:0 25px;padding:9px 0;border-top:1px solid var(--line);color:#636d60;font-size:11px;letter-spacing:.12em}.nav-divider button{background:transparent;border-radius:3px;padding:2px 7px;font-size:19px;line-height:1.3;letter-spacing:0;color:var(--muted)}.chapter-nav{padding:0 14px 18px;flex:1;min-height:100px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bec9b8 transparent}.nav-group{margin:0 0 4px}.nav-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:8px 10px;font-size:12px;color:#59675b;min-height:37px;border-radius:6px}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'›';font-size:18px;margin-left:2px;color:#646c60;transition:transform .15s}.nav-group[open] summary:after{transform:rotate(90deg)}.nav-group summary:hover{background:#e4e8dc}.nav-group summary small{margin-left:auto;color:#646b60;font-family:var(--mono);font-size:10px}.group-dot{display:inline-block;width:7px;height:7px;background:var(--section-color,var(--green));border-radius:50%;flex-shrink:0}.nav-group>div{margin:0 0 7px 13px;padding-left:10px;border-left:1px solid #d4dbc9}.nav-group a{display:flex;align-items:center;gap:8px;font-size:12px;color:#626d61;padding:7px 9px;border-radius:6px;line-height:1.45}.nav-group a:hover{background:#e5e9dd;color:var(--ink)}.nav-group a.current{background:#dce7d2;color:#30513b;font-weight:650}.nav-status{width:5px;height:5px;border:1px solid #b9c2b3;border-radius:50%;flex-shrink:0}.is-mastered .nav-status{background:var(--green);border-color:var(--green)}.nav-empty{font-size:12px;color:var(--muted);padding:14px}.sidebar-bottom{padding:15px 23px 20px;border-top:1px solid var(--line);background:#eeeee5}.sidebar-bottom>a{display:flex;justify-content:space-between;padding:3px 0;font-size:11px;color:#606d5b}.sidebar-bottom>a:hover{text-decoration:underline}.local-progress{margin-top:14px}.local-progress>span{font-size:11px;color:#596b54}.local-progress small{font-size:9px;color:#646c5e;letter-spacing:.02em}.progress-track{height:3px;background:#d9dfd1;margin:7px 0;border-radius:8px;overflow:hidden}.progress-track i{height:100%;display:block;background:#6b8858;transition:width .3s}
.main-shell{margin-left:var(--sidebar);min-width:0}.topbar{height:65px;padding:0 clamp(28px,4vw,68px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(246,244,238,.96);position:relative;z-index:20}.topbar-breadcrumb{display:flex;align-items:center;gap:13px;font-size:11px;color:var(--muted)}.topbar-breadcrumb>span:first-child{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#656c62}.topbar-breadcrumb>span:nth-child(2){color:#666a61}.topbar-right{display:flex;gap:21px;align-items:center}.edition{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:#636c60}.topbar-help{display:flex;justify-content:center;align-items:center;width:23px;height:23px;border:1px solid #c7cebd;border-radius:50%;font-size:12px;color:#626c5d}.menu-toggle{display:none}.menu-shade{display:none}main{min-height:calc(100vh - 145px)}main:focus{outline:none}.site-footer{margin-top:64px;padding:22px clamp(28px,4vw,68px);border-top:1px solid var(--line);font-size:10px;color:#646b60;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}.site-footer b{padding:0 4px}.site-footer a:hover{text-decoration:underline}
.eyebrow{font-size:10px;font-weight:650;letter-spacing:.16em;color:#636d5d;line-height:1.5;margin-bottom:15px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7c966b;margin-right:6px;vertical-align:middle}.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:clamp(30px,4vw,66px);padding-top:56px;padding-bottom:48px;align-items:center;position:relative}.hero:before{content:'';position:absolute;left:45%;top:0;width:1px;height:28px;background:var(--line)}.hero-copy{padding-top:6px}.hero h1{font-size:clamp(33px,3.4vw,52px);line-height:1.42;letter-spacing:-.055em;margin:18px 0 22px;font-weight:750}.hero h1>span{color:var(--green);display:inline-block;white-space:nowrap;position:relative}.hero h1>span:after{content:'';position:absolute;left:2px;right:0;bottom:3px;height:7px;background:#cfdfb9;z-index:-1;transform:rotate(-.7deg)}.hero-lead{font-size:14px;line-height:1.95;color:#626d5e;margin-bottom:28px}.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:9px 16px;border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;font-size:12px;font-weight:550;line-height:1.5;transition:background .15s,border-color .15s,transform .15s;text-align:center}.button:hover{border-color:#9aab90;background:#eff2e9}.button-primary{background:var(--green);border-color:var(--green);color:#f6f8ef}.button-primary:hover{background:#254a36;border-color:#254a36}.button:active{transform:translateY(1px)}.text-link{font-size:12px;color:var(--green);font-weight:550;white-space:nowrap}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.text-button{background:none;border:0;padding:0;color:var(--green);font-size:11px;line-height:1.6;min-height:26px}.text-button:hover{text-decoration:underline}.hero-facts{display:flex;gap:24px;margin-top:29px;padding-top:21px;border-top:1px solid var(--line);font-size:10px;color:#656b5d}.hero-facts span{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.hero-facts b{font-family:var(--mono);font-size:16px;font-weight:500;color:#5c6f53;letter-spacing:-.03em}.hero-art{background:var(--dark);border-radius:18px;padding:24px 26px 21px;color:#d8e6c9;box-shadow:7px 9px 0 #e6e6d7;position:relative;min-height:347px;overflow:hidden}.hero-art:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#a9c594 1px,transparent 1px);background-size:18px 18px;opacity:.08;pointer-events:none}.art-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:7px;letter-spacing:.08em;color:#97aa8e;position:relative}.art-coordinate{font-size:8px;color:#b2c59f}.art-message{position:relative;font-size:22px;line-height:1.65;font-weight:500;letter-spacing:-.025em;margin:24px 0 12px}.art-message em{font-style:normal;color:#9bb18b;font-size:16px;font-weight:400}.art-array{display:flex;align-items:flex-end;gap:8px;margin-top:15px;position:relative;justify-content:center}.art-column{flex:1;max-width:48px;text-align:center}.art-column>div{height:var(--bar-height);display:flex;align-items:flex-start;justify-content:center;padding-top:8px;background:linear-gradient(#476047,#3a513d);border:1px solid #58714e;border-radius:4px 4px 1px 1px;font-family:var(--mono);font-size:13px;color:#cbdbb9}.art-column small{display:block;color:#94aa8b;font-family:var(--mono);font-size:8px;margin-top:4px}.art-column.art-active>div{background:#cd9163;border-color:#d6a47c;color:#28392b}.art-rule{display:flex;align-items:center;gap:9px;margin:17px 0 14px;font-size:9px;color:#97a98a;white-space:nowrap}.art-line{height:1px;flex:1;background:#455b40}.art-link{position:relative;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#c6dbb0}.art-link:hover{color:white}.method-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding-top:22px;padding-bottom:23px;background:#eeeeE3;border-top:1px solid #e4e4d7;border-bottom:1px solid #e4e4d7}.method-strip>div{position:relative;padding-left:34px}.method-strip>div>span{position:absolute;left:0;top:1px;font:12px var(--mono);color:#646d5c}.method-strip strong{font-size:12px;font-weight:650}.method-strip p{font-size:10px;color:#656c5d;margin:4px 0 0}.home-section{padding-top:49px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading .eyebrow{margin-bottom:8px}.section-heading h2{margin-bottom:0;font-size:25px}.section-heading>a{margin-bottom:4px}.path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.path-card{display:flex;gap:22px;position:relative;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:24px 23px;transition:border-color .18s,transform .18s}.path-card:hover{border-color:#b2c29f;transform:translateY(-2px)}.path-index{font:30px var(--mono);letter-spacing:-.08em;color:#666b60;flex-shrink:0;line-height:1.2}.path-card small{font-size:9px;color:#666c5e;letter-spacing:.1em}.path-card h3{font-size:18px;margin:3px 0 9px}.path-card p{color:#646d5d;font-size:11px;line-height:1.8;margin:0 0 15px}.path-steps{display:flex;justify-content:space-between;align-items:center;color:#5a6f4c;font-size:10px}.path-steps>span{font-size:18px}.chapter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.featured-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.chapter-card{position:relative;display:flex;flex-direction:column;min-height:190px;padding:19px 20px 17px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:transform .18s,border-color .18s;overflow:hidden}.chapter-card:before{content:'';position:absolute;left:20px;right:20px;top:0;height:2px;background:var(--section-color);opacity:.5}.chapter-card:hover{border-color:var(--section-color);transform:translateY(-3px)}.card-top{display:flex;align-items:center;gap:9px;margin-bottom:22px}.chapter-number{font:11px var(--mono);color:#656c5e;margin-right:auto}.level{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:9px;letter-spacing:.035em;background:#eaf0e2;color:#596f48;line-height:1.6;white-space:nowrap}.level-core{background:#ebeee5;color:#606d55}.level-advanced{background:#eee8f0;color:#73647e}.chapter-card h3{font-size:17px;margin:0 0 8px}.chapter-card p{font-size:11px;color:#646b5d;line-height:1.85;margin:0 0 21px;flex:1}.card-bottom{display:flex;justify-content:space-between;align-items:center;color:var(--section-color);font-size:10px}.card-bottom>span:last-child{font-size:17px}.mastered-dot{font-size:10px;color:var(--green)}.atlas-overview{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;margin-top:51px;padding-top:35px;padding-bottom:35px;background:#eeeee4;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.atlas-overview h2{margin-bottom:17px;font-size:26px}.atlas-overview p{font-size:12px;color:#646d5c;line-height:1.9}.area-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px 20px}.area-list>a{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #dbdfd0;font-size:10px}.area-list strong{font-size:11px;font-weight:500;flex:1}.area-list>a>span:nth-last-child(2){color:#646d5c;font-size:9px}.area-list>a>span:last-child{color:#606e55}
.page-heading{padding-top:48px;padding-bottom:28px;max-width:1180px}.page-heading h1{font-size:35px;margin:0 0 17px}.page-heading>p{font-size:13px;color:#636d5c;max-width:760px;line-height:1.95;margin-bottom:0}.catalog-tools{display:flex;gap:13px;padding:20px;background:#edeee4;border:1px solid #dfe3d4;border-radius:10px;align-items:center}.catalog-search{display:flex;align-items:center;gap:8px;flex:1;min-width:150px;padding:7px 12px;background:var(--surface);border:1px solid #d7decd;border-radius:6px}.catalog-search span{font-size:25px;line-height:1;color:#5f6e53}.catalog-search input{background:transparent;border:0;color:var(--ink);font-size:12px;width:100%;min-width:0;padding:3px 0}.select-wrap{display:flex;align-items:center;gap:7px}.select-wrap label{font-size:10px;color:#646c5b}.select-wrap select,.speed-control select{border:1px solid #d1d9c5;border-radius:5px;background:var(--surface);font-size:11px;padding:8px 22px 8px 9px;color:#5c6f50;min-height:37px}.catalog-meta{display:flex;justify-content:space-between;gap:16px;font-size:10px;color:#646b5c;margin:21px 0 17px}.catalog-meta>span:first-child{font-size:12px;color:#616e54}.empty-state{grid-column:1/-1;padding-top:55px;padding-bottom:55px;text-align:center;max-width:760px;margin:auto}.empty-state>span{display:block;font:60px var(--mono);color:#646c5c;line-height:1;margin-bottom:24px}.empty-state h1,.empty-state h2{font-size:25px}.empty-state p{color:#606c58;font-size:13px}.empty-state .button{margin-top:12px}.paths-page{max-width:1150px}.learning-path{padding:30px 35px;margin-bottom:22px;border:1px solid var(--line);background:var(--surface);border-radius:12px}.learning-path-heading{display:flex;gap:26px;margin-bottom:24px}.learning-path-heading .path-index{font-size:45px}.learning-path-heading small{font-size:10px;color:#636d5b}.learning-path-heading h2{font-size:24px;margin:4px 0 9px}.learning-path-heading p{font-size:12px;color:#626d59;margin-bottom:0}.path-timeline{padding:0 0 0 69px;margin:0;list-style:none}.path-timeline li{position:relative;padding:0 0 16px 27px;border-left:1px solid #cbd8bc}.path-timeline li:last-child{padding-bottom:0;border-left-color:transparent}.timeline-dot{position:absolute;left:-5px;top:10px;width:9px;height:9px;border-radius:50%;border:1px solid #b5c7a0;background:var(--surface)}.timeline-dot.done{width:14px;height:14px;left:-7px;top:7px;background:#64814d;color:white;font-size:9px;line-height:12px;text-align:center}.path-timeline a{display:grid;grid-template-columns:1.3fr 2.3fr auto;align-items:center;gap:16px;padding:5px 0}.path-timeline a:hover strong{text-decoration:underline}.path-timeline strong{font-size:13px;font-weight:550}.path-timeline a>span{font-size:11px;color:#646d5b}.path-timeline em{font-size:10px;font-style:normal;color:#616d57;white-space:nowrap}.path-timeline em>span{margin-left:10px}.note-panel{border:1px solid #dbe3d0;border-left:3px solid #9ab37f;border-radius:0 8px 8px 0;padding:20px 23px;background:#eff3e8;margin:26px 0;font-size:12px;line-height:1.9}.note-panel strong{font-size:13px;color:#526c40}.note-panel p{margin:7px 0 0;color:#606d56}.glossary{margin:0;max-width:960px}.glossary>div{display:grid;grid-template-columns:190px 1fr;gap:26px;padding:22px 0;border-bottom:1px solid var(--line)}.glossary dt{font-family:var(--mono);font-size:14px;color:#567044;font-weight:600}.glossary dd{margin:0;font-size:13px;color:#626d5a;line-height:1.9}.coverage-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:30px;border:1px solid var(--line);background:var(--surface);border-radius:10px}.coverage-summary>div{display:flex;flex-direction:column;gap:4px;padding:25px;border-right:1px solid var(--line)}.coverage-summary>div:last-child{border:0}.coverage-summary strong{font:35px var(--mono);color:#587047;line-height:1.2}.coverage-summary span{font-size:11px;color:#616c59}.coverage-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.coverage-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}.coverage-table caption{text-align:left;padding:15px 20px;background:#edeee4;color:#616c58;font-size:10px;white-space:normal}.coverage-table th,.coverage-table td{text-align:center;border-bottom:1px solid #e6e8de;padding:11px 14px}.coverage-table th:first-child{text-align:left}.coverage-table thead th{font-size:10px;color:#606c57;font-weight:550;background:#f5f6ee}.coverage-table tbody th{font-weight:500;color:#59704e}.coverage-table tbody th>a:hover{text-decoration:underline}.coverage-table tbody td{font:10px var(--mono);color:#636d5b}.coverage-table tbody tr:last-child>*{border-bottom:0}.coverage-section{margin-top:44px}.verification-date{font-size:11px;color:#636d5b}.check-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.check-list li{display:flex;gap:13px}.check-list li>span{color:#577045;flex-shrink:0}.check-list strong{font-size:13px}.check-list p{font-size:11px;color:#616c59;line-height:1.9;margin:5px 0 0}.verification-limit{padding:22px 25px;background:#f6eadb;border:1px solid #e9d8c1;border-radius:9px;margin:28px 0;color:#88623a;font-size:12px;line-height:1.95}.verification-limit p{margin:8px 0 0;color:#7e6446}.review-rounds{padding-left:20px;color:#616d57;font-size:12px;line-height:1.9}.review-rounds strong{color:#59714b}.review-rounds p{margin:4px 0 17px}.boundary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.boundary-grid article{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:9px}.boundary-grid h3{font-size:16px}.boundary-grid p{font-size:11px;color:#616c58;line-height:1.9;margin:0}.privacy-note{padding:25px 0;margin-top:23px;border-top:1px solid var(--line);font-size:12px;color:#59704d}.privacy-note p{font-size:11px;color:#616e57;margin:8px 0 0}
.chapter-heading{padding-top:30px;padding-bottom:26px}.chapter-breadcrumb{display:flex;align-items:center;gap:10px;color:#636b5c;font-size:10px;margin-bottom:22px}.chapter-breadcrumb>a{color:#5b704c}.chapter-breadcrumb>a:hover{text-decoration:underline}.chapter-title-row{display:flex;justify-content:space-between;gap:25px;align-items:center}.chapter-title-row .level{margin-bottom:10px}.chapter-title-row h1{font-size:39px;margin:0 0 9px}.chapter-subtitle{font-size:14px;color:#606d56;margin-bottom:0}.master-button{font-size:10px;border:1px solid #ccd7bf;border-radius:6px;padding:9px 12px;background:#f2f4e9;color:#606e53;white-space:nowrap;flex-shrink:0;min-height:37px}.master-button.is-mastered{background:#e4efd9;border-color:#bdd2a5;color:#55723e}.master-button:hover{background:#e7eddd}.chapter-summary{max-width:860px;margin:20px 0 17px;font-size:12px;color:#616d59;line-height:1.95}.chapter-meta{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px}.prerequisites{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.prerequisites>span{color:#646b5d;margin-right:2px}.prerequisites>a{color:#5a704b}.prerequisites>a:hover{text-decoration:underline}.prerequisites i{font-style:normal;color:#656a5f}.prerequisites em{font-style:normal;color:#616d58}.chapter-meta>a{color:#606d56;white-space:nowrap}.chapter-tabs-wrap{position:sticky;top:0;background:rgba(246,244,238,.98);border-top:1px solid var(--line);border-bottom:1px solid var(--line);z-index:25}.chapter-tabs{display:flex;gap:30px;overflow-x:auto;scrollbar-width:none}.chapter-tabs::-webkit-scrollbar{display:none}.chapter-tab{position:relative;background:none;padding:15px 0;font-size:12px;color:#636d59;white-space:nowrap;min-height:49px}.chapter-tab.active{color:#446832;font-weight:650}.chapter-tab.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#557b3f}.chapter-tab:hover{color:#4b7038}.chapter-panel{padding-top:32px}.chapter-pagination{display:flex;justify-content:space-between;gap:20px;padding-top:28px;margin-top:30px;border-top:1px solid var(--line)}.chapter-pagination>a{display:flex;flex-direction:column;gap:5px}.chapter-pagination small{font-size:10px;color:#616d56}.chapter-pagination strong{font-size:13px;color:#587147}.chapter-pagination a:hover strong{text-decoration:underline}.next-chapter{text-align:right}.reading-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:35px}.lesson-section{margin-bottom:38px}.lesson-section h2{font-size:25px;margin-bottom:20px}.lesson-section .eyebrow{margin-bottom:9px}.recognize-list{list-style:none;padding:0;margin:0}.recognize-list li{position:relative;padding:14px 18px 14px 36px;border-bottom:1px solid var(--line);font-size:13px;color:#606e56;line-height:1.95}.recognize-list li:before{content:'↗';position:absolute;left:8px;top:16px;color:#616e54;font-size:15px}.recognize-list li:first-child{border-top:1px solid var(--line)}.derivation>article{display:flex;gap:19px;padding-bottom:28px;position:relative}.derivation>article:after{content:'';position:absolute;left:16px;top:34px;bottom:0;width:1px;background:#d7e0cc}.derivation>article:last-child:after{display:none}.derive-dot{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;background:#eaf0df;border:1px solid #d7e1c9;border-radius:50%;font:10px var(--mono);color:#5f6d50}.derivation h3{font-size:16px;padding-top:5px;margin:0 0 10px;line-height:1.6}.derivation p{font-size:13px;line-height:2;color:#606d57;margin:0}.proof-panel{background:#e9efe0;border:1px solid #d7e2c9;border-radius:10px;padding:28px;margin:8px 0 38px}.proof-panel h2{font-size:23px;color:#4d6e38;margin-bottom:14px}.proof-panel .eyebrow{color:#606e53;margin-bottom:10px}.invariant-statement{font-size:14px;color:#547243;line-height:1.95;padding-bottom:19px;border-bottom:1px solid #cddcbc}.proof-panel ol{padding-left:22px;margin:18px 0 0}.proof-panel li{padding-left:6px;margin:10px 0;font-size:12px;color:#5e6f50;line-height:1.9}.proof-panel li::marker{color:#606e51;font-family:var(--mono);font-size:10px}.complexity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:19px 0}.complexity-grid>article{background:var(--surface);padding:22px;border:1px solid var(--line);border-radius:8px}.complexity-grid>article>span{font:9px var(--mono);letter-spacing:.12em;color:#626d58}.complexity-grid h3{font-size:15px;margin:8px 0 12px}.complexity-grid p{font-size:12px;line-height:1.9;color:#606e56;margin:0}.complexity-conditions{grid-column:1/-1;padding:8px 0 0;display:flex;gap:13px}.complexity-conditions strong{font-size:10px;color:#5d6f4d;white-space:nowrap;line-height:1.9}.complexity-conditions p{font-size:10px;color:#636b5c;line-height:1.9}.reading-aside{padding-top:6px}.aside-card{border:1px solid #dce3d1;padding:23px 21px;border-radius:9px;background:#f1f3e8;margin-bottom:18px}.aside-mark{font-family:Georgia,serif;display:inline-flex;align-items:center;justify-content:center;border:1px solid #c7d5b8;width:29px;height:29px;border-radius:50%;font-size:20px;color:#616e54;margin-bottom:16px}.aside-card h3{font-size:14px;line-height:1.6}.aside-card ol{padding-left:17px;font-size:11px;color:#616d55;line-height:1.95;margin:15px 0 0}.aside-card li{margin:8px 0;padding-left:3px}.aside-card p{font-size:11px;color:#616d55;line-height:1.95}.aside-soft{background:transparent;border-style:dashed}
.experiment-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:23px}.experiment-intro h2{font-size:25px;margin-bottom:0}.experiment-intro .eyebrow{margin-bottom:8px}.experiment-intro>p{font-size:10px;color:#636d58;line-height:1.8;margin:0 0 2px}.lab-controls-panel{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow:hidden;margin-bottom:19px}.presets{display:flex;gap:18px;padding:17px 19px;align-items:flex-start}.presets>span{font-size:10px;color:#636d5a;flex-shrink:0;line-height:28px}.presets>div{display:flex;gap:7px;flex-wrap:wrap}.preset-button{padding:5px 10px;min-height:29px;border:1px solid #e0e6d6;border-radius:5px;background:#f8f9f2;font-size:10px;color:#5f6e50;line-height:1.6}.preset-button:hover,.preset-button.selected{background:#e8f1dc;border-color:#c6d7b2;color:#54723d}.input-editor{border-top:1px solid #e5e9dc}.input-editor summary{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;font-size:10px;color:#616e56;cursor:pointer;list-style:none;background:#f4f6ed;min-height:37px}.input-editor summary::-webkit-details-marker{display:none}.input-editor summary>span{font-size:17px}.input-editor-body{padding:19px 20px}.input-editor-body>p{font-size:12px;line-height:1.8;color:#5d6f4e}.input-editor-body>label{display:block;font-size:10px;color:#5f6f51;margin-bottom:7px}textarea{width:100%;display:block;resize:vertical;min-height:115px;max-height:500px;padding:14px 16px;border:1px solid #d6e0c8;border-radius:7px;background:#fbfcf6;color:#506b3f;font:12px/1.7 var(--mono)}.input-actions{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 10px;align-items:center}.input-actions .button{min-height:35px;padding:7px 12px;font-size:10px}.seed-control{display:flex;align-items:center;gap:7px;margin-left:auto}.seed-control>label{font-size:10px;color:#616d58}.seed-control input{border:1px solid #d6e0c8;border-radius:5px;padding:7px;width:112px;height:35px;background:#fbfcf6;color:#5c704c;font:11px var(--mono)}.input-editor-body>small{font-size:9px;color:#636b5a;line-height:1.7;display:block}.input-error{color:#a54b32!important;font-size:11px!important;margin:8px 0 0!important}[hidden]{display:none!important}.lab-main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.85fr);gap:18px;align-items:start}.visual-stage{background:var(--surface);border:1px solid #d4dfc8;border-radius:11px;overflow:hidden;min-width:0}.stage-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid #e3eadb;padding:13px 17px;font-size:10px;color:#5e6f51;background:#f3f6eb}.stage-heading>span{white-space:nowrap}.state-legend{display:flex;gap:9px;flex-wrap:wrap;font-size:8px;color:#636d59}.state-legend>span{display:flex;align-items:center;gap:4px;white-space:nowrap}.state-legend i{width:6px;height:6px;border-radius:2px}.legend-active{background:#d18b53}.legend-done{background:#8eae72}.legend-muted{background:#d5ddcb}.frame-visual{padding:20px;min-height:290px;max-height:650px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c8d7b9 transparent;background-image:radial-gradient(#e1e8d8 .8px,transparent .8px);background-size:14px 14px}.frame-metrics{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 18px}.frame-metrics>div{display:flex;flex-direction:column;gap:4px;padding:8px 12px;min-width:74px;background:#eff4e6;border:1px solid #dfe9d3;border-radius:6px}.frame-metrics span{font-size:9px;color:#606e53}.frame-metrics strong{font:16px var(--mono);font-weight:500;color:#54723d;overflow-wrap:anywhere;max-width:220px}.visual-label{font-size:10px;color:#616d55;margin:2px 0 9px;line-height:1.65}.array-block{margin-bottom:18px}.array-block:last-child{margin-bottom:3px}.array-cells{display:flex;flex-wrap:wrap;gap:5px;align-items:flex-end}.array-item{display:flex;flex-direction:column;align-items:center;min-width:33px;position:relative}.array-mark{height:17px;font:8px/14px var(--mono);color:#8f5f3a;white-space:nowrap;max-width:80px;text-align:center;overflow:hidden;text-overflow:ellipsis}.array-item>strong{min-width:33px;height:37px;display:flex;align-items:center;justify-content:center;padding:0 6px;border:1px solid #cbdabc;background:#f1f6e9;border-radius:5px;font:13px var(--mono);color:#587145;max-width:180px;overflow-wrap:anywhere;overflow:hidden}.array-item>small{font:8px var(--mono);color:#636c5b;margin-top:4px}.array-item.done>strong{background:#dbeacb;border-color:#aec998;color:#53733a}.array-item.muted>strong{background:#edf0e6;border-color:#d7decd;color:#646c5b;text-decoration:none}.array-item.active>strong{background:#f8e4ce;border:2px solid #ce8a50;color:#955627;box-shadow:0 3px 0 #efcba7}.array-item.active>small{color:#865e3d}.empty-array{border:1px dashed #d2dfc4;border-radius:7px;padding:24px;text-align:center;color:#606e55;font:12px var(--mono);background:#f6f9f0}.table-block{margin:18px 0 4px;min-width:0}.state-table-scroll{overflow-x:auto;max-height:300px;overflow-y:auto;border:1px solid #d5e0ca;border-radius:6px;background:#f9fbf4}.state-table{border-collapse:collapse;width:100%;font:10px/1.6 var(--mono);text-align:center;white-space:nowrap}.state-table th{font-weight:500;color:#5f6f52;background:#edf4e2;border-bottom:1px solid #d4e3c4;padding:8px 9px;position:sticky;top:0;z-index:1}.state-table td{padding:7px 9px;border-bottom:1px solid #e1ead7;border-right:1px solid #e4ecdb;color:#5d6f4d}.state-table td:last-child{border-right:0}.state-table tr:last-child td{border-bottom:0}.state-table .active-row td{background:#e3efD6;color:#567140}.state-table td.active-cell{background:#f5dfc6;color:#885831;box-shadow:inset 0 0 0 1px #d6a170;font-weight:600}.empty-table{color:#646d5d!important;padding:20px!important}.graph-block{margin-bottom:15px}.state-graph{display:block;width:100%;height:auto;min-height:170px;max-height:340px;overflow:visible}.graph-edge path{fill:none;stroke:#b9caa9;stroke-width:1.6}.graph-edge.active path{stroke:#ca8b54;stroke-width:3}.graph-edge.done path{stroke:#8eae72;stroke-width:2.5}.graph-edge.muted path{stroke:#d6dfcd;stroke-dasharray:none}.graph-edge text{font:14px var(--mono);fill:#87a16f;paint-order:stroke;stroke:#fffefa;stroke-width:5px;stroke-linejoin:round}.graph-edge.active text{fill:#be7d46}.graph-node circle{fill:#f0f6e6;stroke:#b5cba1;stroke-width:1.8}.graph-node text{font:15px var(--mono);fill:#76945f;stroke:none}.graph-node.done circle{fill:#dcecc9;stroke:#93b475;stroke-width:2}.graph-node.active circle{fill:#f8e2ca;stroke:#c98b54;stroke-width:3}.graph-node.active text{fill:#a46c3b}.graph-node.muted circle{fill:#edf0e8;stroke:#d3ddc9}.graph-node.muted text{fill:#b0bca5}.graph-node .small-node-label{font-size:10px}.arrow-default{fill:#b9caa9}.arrow-active{fill:#ca8b54}.arrow-done{fill:#8eae72}.arrow-muted{fill:#d6dfcd}.graph-text{font-size:9px;color:#616c56}.graph-text summary{cursor:pointer;min-height:24px}.graph-text p{font-size:10px;line-height:1.9;margin:8px 0;overflow-wrap:anywhere}.frame-note{font-size:10px;color:#656c5b;background:#f0f4e7;border-left:2px solid #bccfa7;padding:9px 12px;margin:15px 0 0;line-height:1.8}.player-bar{display:flex;gap:10px;align-items:center;padding:13px 15px 5px;border-top:1px solid #e0e9d6;background:#f5f8ee}.player-buttons{display:flex;align-items:center;gap:3px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:31px;height:34px;padding:0;background:transparent;border-radius:5px;color:#5c6f4d;font-size:20px}.icon-button:hover:not(:disabled){background:#e6efdB;color:#567142}.play-button{display:flex;align-items:center;justify-content:center;gap:7px;background:#527b3d;border:1px solid #527b3d;color:#eff6e7;border-radius:6px;padding:7px 13px;font-size:10px;min-height:33px;min-width:71px}.play-button:hover{background:#456b32}.speed-control{margin-left:auto;display:flex;align-items:center;gap:5px}.speed-control label{font-size:9px;color:#636d58}.speed-control select{min-height:30px;padding:5px;font:10px var(--mono);background:#f9fbf4;border-color:#d7e3c9;color:#5d6f50}.step-counter{font:10px var(--mono);color:#626e56;min-width:52px;text-align:right;white-space:nowrap}.timeline-control{padding:4px 18px 12px;background:#f5f8ee}.timeline-control input{width:100%;accent-color:#7c9e60;cursor:pointer;height:15px;display:block}.step-panel{border:1px solid #d9e1ce;border-radius:11px;padding:20px;background:#f0f3e8;min-width:0}.step-panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.step-panel-top .eyebrow{font-size:8px;margin:0;color:#626c57}.step-panel-top>span:last-child{font:9px var(--mono);color:#656c5c}.step-panel h3{font-size:19px;line-height:1.5;margin:0 0 12px;color:#56723f}.step-panel>p{font-size:12px;color:#606e53;line-height:1.95;min-height:60px;margin-bottom:20px}.code-context-label{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#636d5b;margin:16px 0 7px;gap:8px}.code-context-label .text-button{font-size:8px;min-height:20px;color:#5e6d4f}.frame-code{background:#2c3d2f;border:1px solid #3d513a;border-radius:7px;padding:12px 0;overflow:auto;max-height:230px;font-size:9px}.code-line{display:flex;min-height:20px;line-height:1.8;white-space:pre;min-width:fit-content;padding:0 15px 0 0}.line-number{display:inline-block;font:inherit;min-width:37px;padding:0 10px 0 10px;text-align:right;color:#9aa995;user-select:none;flex-shrink:0}.code-line code{font-family:var(--mono);font-size:inherit;color:#b6c6a8}.code-line.highlighted{background:#536340;box-shadow:inset 2px 0 0 #d6a46a}.code-line.highlighted .line-number{color:#dadbbe}.code-gap{color:#9aa890;line-height:1;text-align:center;padding:3px 0}.syntax-keyword{color:#cdb486}.syntax-string{color:#b4d491}.syntax-comment{color:#9aa994}.syntax-number{color:#c1aa7e}.invariant-reminder{border-top:1px solid #d7e0c9;margin-top:20px;padding-top:15px}.invariant-reminder>span{font-size:9px;color:#636d58}.invariant-reminder p{font-size:11px;color:#5f6f51;line-height:1.9;margin:6px 0 3px}.invariant-reminder .text-button{color:#5d6f51;font-size:10px}.lab-footnote{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:10px 0 22px;font-size:8px;color:#646c5b}.result-panel{display:grid;grid-template-columns:1.3fr 1.2fr;gap:20px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:23px}.result-panel .eyebrow{font-size:8px;margin-bottom:8px}.result-panel h3{font-size:15px;margin-bottom:8px}.result-panel p{font-size:10px;color:#636d56;line-height:1.8;margin:0}.result-panel>pre{margin:0;font:11px/1.7 var(--mono);color:#596f48;background:#eef4e4;padding:14px;border:1px solid #dae7cb;border-radius:5px;max-height:180px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.oracle-block{grid-column:1/-1;display:flex;align-items:center;gap:18px;border-top:1px solid #e7ecdf;padding-top:16px}.oracle-block .button{font-size:10px;min-height:33px;padding:6px 12px}.oracle-block p{font-size:10px;flex:1}.code-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:23px}.code-intro h2{font-size:25px;margin-bottom:11px}.code-intro p{font-size:11px;color:#606d56;line-height:1.9;margin:0}.code-actions{display:flex;gap:8px;flex-shrink:0}.code-actions .button{font-size:10px;min-height:35px;padding:7px 11px}.code-window{border:1px solid #354c36;border-radius:10px;overflow:hidden;background:#293b2b}.code-title{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;background:#263628;border-bottom:1px solid #3d5339;color:#93ab81;font:10px var(--mono)}.code-title>span{display:flex;gap:5px}.code-title i{width:6px;height:6px;border-radius:50%;background:#697f53}.code-title i:first-child{background:#ad865d}.code-title i:nth-child(2){background:#9da46e}.code-title b{font-weight:400}.code-title em{font-style:normal;font-size:8px;color:#97aa8d}.full-code{overflow:auto;max-height:660px;padding:18px 0;font:11px/1.8 var(--mono);scrollbar-width:thin;scrollbar-color:#526846 #293b2b}.full-code .line-number{min-width:49px;padding-right:15px}.full-code .code-line{min-height:21px}.io-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:23px 0}.io-grid article{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:20px}.io-grid h3{font-size:14px;margin-bottom:13px}.io-grid pre{font:11px/1.8 var(--mono);overflow:auto;max-height:210px;white-space:pre-wrap;overflow-wrap:anywhere;padding:13px;background:#f0f5e7;color:#5c6e4b;border:1px solid #e1ead7;border-radius:5px;margin:0 0 8px}.io-grid p{font-size:9px;color:#636c5a;line-height:1.8;margin:8px 0 0}.code-notes{margin:25px 0}.code-notes h3{font-size:16px}.code-notes p{font-size:12px;color:#5e6e51;line-height:1.9}.code-notes a{font:10px var(--mono);color:#54723d;background:#e4eed8;padding:3px 6px;border-radius:4px;margin-right:5px}.pitfall-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.pitfall-card{padding:24px;background:#fffdf7;border:1px solid #e5dfcf;border-radius:10px}.pitfall-number{font:10px var(--mono);color:#79664c;display:block;margin-bottom:16px}.pitfall-card h3{font-size:17px;color:#77644a;margin-bottom:12px}.pitfall-card>p{font-size:12px;color:#756855;line-height:1.9;margin-bottom:17px}.pitfall-card>div{background:#f6eee0;border-left:2px solid #d5b58a;padding:12px 15px;border-radius:0 5px 5px 0}.pitfall-card>div strong{font-size:9px;color:#7b6649}.pitfall-card>div p{font-size:11px;color:#7c6648;line-height:1.9;margin:4px 0 0}.quiz-section{margin-top:43px}.quiz-note{font-size:10px;color:#616c57;white-space:nowrap}.quiz-card{margin:27px 0 0;border:1px solid #d9e2cd;border-radius:10px;padding:24px;background:var(--surface);min-width:0}.quiz-card legend{padding:0 10px;margin-left:-10px;font-size:15px;color:#567242;line-height:1.65;font-weight:550;max-width:calc(100% + 20px)}.quiz-card legend>span{font:11px var(--mono);color:#646c59;margin-right:12px}.quiz-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:2px}.quiz-option{display:flex;align-items:flex-start;gap:12px;text-align:left;min-height:44px;padding:12px 14px;border:1px solid #e0e8d6;border-radius:6px;background:#f7faf0;color:#5e6f4e;font-size:11px;line-height:1.7}.quiz-option>span{font:10px/1.7 var(--mono);color:#616c56;flex-shrink:0}.quiz-option:hover{background:#eef5e3;border-color:#c2d5ac}.quiz-option.selected{border-color:#a2c17f;background:#e9f3db}.quiz-option.correct{border-color:#a8c98a;background:#e5f1d7;color:#54723e}.quiz-option.incorrect{border-color:#d7ac89;background:#fbecdc;color:#876442}.quiz-option>i{font-size:11px;font-style:normal;margin-left:auto;color:#577240}.quiz-explanation{margin-top:18px;padding-top:16px;border-top:1px solid #e2e9d9;font-size:12px;color:#5a6f47}.quiz-explanation strong{font-size:11px}.quiz-explanation p{font-size:12px;color:#5f6e52;line-height:1.9;margin:7px 0 0}.transfer-panel{display:flex;gap:25px;align-items:center;background:#e9f0df;border:1px solid #d8e4c9;border-radius:9px;padding:26px;margin-bottom:23px}.transfer-panel>span{font-size:35px;color:#606d52}.transfer-panel p{font-size:15px;line-height:1.95;color:#5a7147;margin:0}.application-list{padding-left:22px;color:#5e6f50;font-size:13px;line-height:2}.application-list li{padding:6px 0 6px 4px}.challenge-panel{border:1px dashed #bccfa8;border-radius:9px;padding:22px;background:#f4f7ed;margin:25px 0}.challenge-panel strong{font-size:12px;color:#5a7047}.challenge-panel p{font-size:13px;color:#5e6e50;margin:7px 0 0;line-height:1.95}.related-links{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 28px}.related-links a{padding:6px 11px;border:1px solid #d9e5cb;border-radius:5px;background:#f0f6e7;color:#5e6e4e;font-size:11px}.related-links a:hover{background:#e4efd7;color:#577241}.related-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.source-section{padding-top:27px;border-top:1px solid var(--line)}.source-section h2{font-size:25px}.source-section>p{font-size:11px;color:#626d58;line-height:1.9}.source-list{padding-left:23px;font-size:12px;color:#616c58}.source-list li{padding:11px 0 11px 5px}.source-list a{color:#587145;font-size:13px}.source-list a:hover{text-decoration:underline}.source-list p{font-size:11px;color:#626e57;margin:7px 0 0;line-height:1.9}.toast{position:fixed;bottom:28px;left:calc(50% + var(--sidebar)/2);transform:translateX(-50%);z-index:90;max-width:min(560px,calc(100vw - 40px));background:#30442f;color:#dbe9cb;border:1px solid #5a744b;border-radius:9px;padding:13px 20px;box-shadow:0 10px 35px #22341d22;font-size:12px;line-height:1.7}
@media(min-width:1600px){:root{--sidebar:270px}.main-shell{max-width:1700px}.hero{padding-top:76px;padding-bottom:65px}.hero-art{max-width:460px}.chapter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.featured-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reading-layout{grid-template-columns:minmax(0,1fr) 270px}.lab-main{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}}
@media(max-width:1200px){:root{--sidebar:226px}.brand{margin-left:20px;font-size:21px}.sidebar-search{margin-left:14px;margin-right:14px}.hero{gap:25px}.hero h1{font-size:36px}.hero-art{padding:22px 21px}.art-message{font-size:20px}.hero-facts{gap:16px}.hero-facts b{font-size:13px}.hero-facts span{font-size:9px}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-layout{grid-template-columns:1fr}.reading-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.aside-card{margin:0}.lab-main{grid-template-columns:minmax(0,1fr)}.step-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.step-panel-top{grid-column:1/-1}.step-panel h3{grid-column:1}.step-panel>p{grid-column:1;margin-bottom:12px;min-height:0}.code-context-label{grid-column:2;grid-row:2;align-self:start;margin:0 0 6px}.frame-code{grid-column:2;grid-row:3/5;align-self:start}.invariant-reminder{grid-column:1;border-top:1px solid #d7e0c9;margin-top:4px}.frame-visual{min-height:270px}.catalog-tools{flex-wrap:wrap}.catalog-search{flex-basis:100%}.select-wrap{flex:1}.select-wrap select{flex:1}.boundary-grid{grid-template-columns:1fr}.coverage-summary>div{padding:20px 15px}.coverage-summary strong{font-size:30px}.hero-actions{gap:16px}.hero-actions .button{font-size:11px;padding:9px 12px}.method-strip{gap:17px}.method-strip>div{padding-left:26px}.method-strip strong{font-size:11px}.method-strip p{font-size:9px}.atlas-overview{gap:28px}.atlas-overview h2{font-size:23px}.area-list{grid-template-columns:1fr}.path-timeline a{grid-template-columns:1.3fr 2fr auto}.path-timeline a>span{font-size:10px}.chapter-title-row h1{font-size:35px}.experiment-intro>p{max-width:260px}.code-intro{align-items:flex-start}.code-actions{flex-direction:column}.chapter-tabs{gap:26px}}
@media(max-width:900px){:root{--sidebar:0px}.sidebar{width:258px;transform:translateX(-100%);transition:transform .2s;box-shadow:none}.main-shell{margin-left:0}.menu-open .sidebar{transform:translateX(0);box-shadow:15px 0 35px #23331a22}.menu-open{overflow:hidden}.menu-shade{display:block;position:fixed;inset:0;z-index:35;background:#22351b66}.menu-toggle{display:inline-flex;margin-left:-8px;margin-right:9px;flex-shrink:0}.topbar{justify-content:flex-start;padding-left:28px;padding-right:28px;height:59px}.topbar-right{margin-left:auto}.topbar-breadcrumb{font-size:10px;gap:10px}.topbar-breadcrumb>span:first-child{font-size:9px}.edition{font-size:9px}.page-pad{padding-left:28px;padding-right:28px}.hero{padding-top:38px;padding-bottom:36px}.hero h1{font-size:38px}.hero-art{max-width:360px;min-height:335px}.method-strip{padding-top:20px;padding-bottom:20px}.home-section{padding-top:35px}.path-card{padding:20px;gap:17px}.path-card h3{font-size:17px}.path-card p{font-size:10px}.atlas-overview{margin-top:35px}.page-heading{padding-top:35px}.chapter-panel{padding-top:27px}.chapter-heading{padding-top:25px}.chapter-tabs-wrap{top:0}.site-footer{padding-left:28px;padding-right:28px}.toast{left:50%}.coverage-summary{grid-template-columns:repeat(4,1fr)}.check-list{gap:16px}.catalog-tools{flex-wrap:nowrap}.catalog-search{flex-basis:auto}.select-wrap{flex:0 1 auto}.select-wrap select{flex:0 1 auto}.catalog-meta>span:last-child{max-width:310px;text-align:right}.chapter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.featured-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chapter-card{padding:18px 16px;min-height:185px}.chapter-card h3{font-size:16px}.chapter-card p{font-size:10px}.featured-grid .chapter-card h3{font-size:15px}.related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.page-pad{padding-left:20px;padding-right:20px}.topbar{padding-left:20px;padding-right:20px;height:54px}.topbar-breadcrumb{gap:8px;font-size:9px}.topbar-breadcrumb>span:first-child{font-size:8px;letter-spacing:.05em}.topbar-right{gap:10px}.edition{display:none}.topbar-help{width:22px;height:22px}.hero{display:block;padding-top:30px;padding-bottom:28px}.hero h1{font-size:clamp(31px,7.7vw,42px);line-height:1.45;margin-top:13px;margin-bottom:16px}.hero-lead{font-size:12px;line-height:1.9;margin-bottom:21px}.hero .eyebrow{font-size:9px}.hero-actions{gap:20px}.hero-actions .button{font-size:11px;padding:10px 15px}.hero-facts{gap:22px;margin-top:23px;padding-top:17px}.hero-facts b{font-size:15px}.hero-facts span{font-size:9px}.hero-art{max-width:none;margin-top:27px;min-height:auto;padding:22px 23px 18px;box-shadow:5px 6px 0 #e6e6d7;display:grid;grid-template-columns:1fr 1.1fr;gap:10px 22px;border-radius:13px}.art-top{grid-column:1/-1;font-size:7px}.art-message{margin:12px 0 0;font-size:18px;line-height:1.8;align-self:center}.art-message em{font-size:12px}.art-array{margin:10px 0 0;gap:6px}.art-column>div{height:calc(var(--bar-height)*.72);font-size:11px;padding-top:5px}.art-column small{font-size:7px}.art-rule{grid-column:1/-1;margin:7px 0 0;font-size:8px}.art-link{grid-column:1/-1;font-size:10px}.method-strip{grid-template-columns:1fr;gap:11px;padding-top:17px;padding-bottom:17px}.method-strip>div{display:grid;grid-template-columns:110px 1fr;align-items:baseline;padding-left:28px}.method-strip>div>span{top:4px;font-size:10px}.method-strip strong{font-size:11px}.method-strip p{font-size:9px;margin:0;line-height:1.6}.home-section{padding-top:31px}.section-heading{align-items:flex-start;margin-bottom:17px;gap:14px}.section-heading h2{font-size:22px;line-height:1.5}.section-heading .eyebrow{font-size:8px;margin-bottom:5px}.section-heading>a{font-size:9px;align-self:flex-end;margin-bottom:4px}.path-grid{grid-template-columns:1fr;gap:11px}.path-card{padding:21px 19px;gap:20px}.path-index{font-size:29px}.path-card small{font-size:9px}.path-card h3{font-size:19px}.path-card p{font-size:11px;margin-bottom:12px}.chapter-grid,.featured-grid,.related-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.chapter-card{padding:17px 15px 15px;min-height:185px}.chapter-card:before{left:15px;right:15px}.card-top{margin-bottom:20px}.chapter-card h3,.featured-grid .chapter-card h3{font-size:16px}.chapter-card p{font-size:10px;margin-bottom:15px;line-height:1.8}.chapter-number{font-size:10px}.level{font-size:8px;padding:2px 6px}.atlas-overview{grid-template-columns:1fr;gap:24px;padding-top:27px;padding-bottom:26px}.atlas-overview h2{font-size:25px;margin-bottom:14px}.atlas-overview p{font-size:11px}.area-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.area-list>a{font-size:9px;gap:6px}.area-list strong{font-size:10px}.page-heading{padding-top:31px;padding-bottom:25px}.page-heading h1{font-size:29px;line-height:1.5;margin-bottom:14px}.page-heading>p{font-size:12px}.page-heading .eyebrow{font-size:9px;margin-bottom:10px}.catalog-tools{flex-wrap:wrap;padding:15px;gap:11px}.catalog-search{flex-basis:100%;padding:7px 10px}.select-wrap{flex:1;gap:6px}.select-wrap select{flex:1;min-width:0;padding:7px;font-size:10px}.select-wrap label{font-size:9px}.catalog-meta{font-size:9px;align-items:flex-start;margin:18px 0 15px}.catalog-meta>span:first-child{font-size:10px;white-space:nowrap}.catalog-meta>span:last-child{max-width:230px;font-size:8px}.learning-path{padding:24px 19px}.learning-path-heading{gap:18px;margin-bottom:21px}.learning-path-heading .path-index{font-size:35px}.learning-path-heading h2{font-size:22px}.learning-path-heading p{font-size:11px}.learning-path-heading small{font-size:9px}.path-timeline{padding-left:9px}.path-timeline li{padding-left:22px;padding-bottom:15px}.path-timeline a{grid-template-columns:1fr auto;gap:4px 15px}.path-timeline strong{font-size:13px}.path-timeline a>span{grid-column:1;grid-row:2;font-size:10px;line-height:1.7}.path-timeline em{grid-column:2;grid-row:1/3;font-size:9px}.glossary>div{grid-template-columns:1fr;gap:8px;padding:19px 0}.glossary dt{font-size:14px}.glossary dd{font-size:12px}.note-panel{font-size:11px;padding:18px 19px;margin:23px 0}.note-panel strong{font-size:12px}.coverage-summary{grid-template-columns:repeat(2,1fr)}.coverage-summary>div{padding:21px;border-bottom:1px solid var(--line)}.coverage-summary>div:nth-child(2){border-right:0}.coverage-summary>div:nth-child(3){border-bottom:0}.coverage-summary strong{font-size:32px}.coverage-summary span{font-size:10px}.coverage-table th,.coverage-table td{padding:10px 12px}.coverage-table{font-size:10px}.coverage-table caption{padding:13px 15px;font-size:9px}.coverage-section{margin-top:33px}.coverage-section h2{font-size:24px}.check-list{grid-template-columns:1fr;gap:18px}.check-list strong{font-size:12px}.check-list p{font-size:11px}.verification-limit{padding:20px;font-size:11px}.review-rounds{font-size:11px}.boundary-grid{gap:13px}.boundary-grid article{padding:20px}.boundary-grid h3{font-size:16px}.boundary-grid p{font-size:11px}.privacy-note{font-size:11px}.privacy-note p{font-size:10px}.chapter-heading{padding-top:22px;padding-bottom:22px}.chapter-breadcrumb{margin-bottom:18px;font-size:9px}.chapter-title-row{gap:13px;align-items:flex-start}.chapter-title-row h1{font-size:31px;line-height:1.4;margin-bottom:9px}.chapter-title-row .level{margin-bottom:9px}.chapter-subtitle{font-size:12px;line-height:1.8}.master-button{font-size:9px;padding:7px 9px;min-height:32px;margin-top:28px;max-width:97px;white-space:normal}.chapter-summary{font-size:11px;margin-top:16px;line-height:1.95}.chapter-meta{font-size:9px;gap:15px;align-items:flex-start}.prerequisites{gap:6px}.chapter-meta>a{font-size:8px}.chapter-tabs{gap:25px;padding-left:20px;padding-right:20px}.chapter-tab{font-size:11px;padding:13px 0;min-height:45px}.chapter-panel{padding-top:25px}.chapter-pagination{margin-top:24px;padding-top:24px}.chapter-pagination strong{font-size:12px}.chapter-pagination small{font-size:9px}.reading-aside{grid-template-columns:1fr}.reading-layout{gap:27px}.aside-card{padding:20px}.lesson-section{margin-bottom:32px}.lesson-section h2{font-size:23px}.lesson-section .eyebrow{font-size:8px}.recognize-list li{font-size:12px;line-height:1.95;padding-left:31px;padding-right:3px}.derivation>article{gap:15px;padding-bottom:24px}.derive-dot{width:29px;height:29px;font-size:9px}.derivation>article:after{left:14px;top:29px}.derivation h3{font-size:15px;padding-top:3px;line-height:1.65}.derivation p{font-size:12px;line-height:2}.proof-panel{padding:22px 20px;margin-bottom:32px}.proof-panel h2{font-size:21px}.invariant-statement{font-size:13px}.proof-panel li{font-size:11px;padding-left:3px}.proof-panel ol{padding-left:17px}.complexity-grid{gap:11px}.complexity-grid>article{padding:17px}.complexity-grid h3{font-size:14px;margin:7px 0 10px}.complexity-grid p{font-size:11px}.complexity-conditions{display:block;padding-top:2px}.complexity-conditions strong{font-size:9px}.complexity-conditions p{font-size:9px;margin-top:5px}.experiment-intro{display:block;margin-bottom:19px}.experiment-intro h2{font-size:24px}.experiment-intro .eyebrow{font-size:8px}.experiment-intro>p{font-size:10px;max-width:none;margin-top:10px}.experiment-intro>p br{display:none}.presets{display:block;padding:15px}.presets>span{display:block;font-size:9px;margin-bottom:8px;line-height:1.5}.presets>div{gap:6px}.preset-button{font-size:9px;padding:5px 8px;min-height:29px}.input-editor summary{padding:9px 15px;font-size:9px}.input-editor-body{padding:15px}.input-editor-body>p{font-size:11px}.input-editor-body>small{font-size:8px}.input-actions{gap:8px}.input-actions .button{font-size:9px;padding:6px 10px;min-height:33px}.seed-control{margin-left:0;flex-basis:100%;margin-top:5px}.seed-control input{width:126px;font-size:10px;height:33px}.seed-control>label{font-size:9px}.stage-heading{padding:12px 14px;gap:8px;font-size:9px}.state-legend{font-size:7px;gap:7px}.state-legend i{width:5px;height:5px}.frame-visual{padding:16px;min-height:245px;max-height:580px}.frame-metrics{gap:7px;margin-bottom:15px}.frame-metrics>div{padding:7px 10px;min-width:66px}.frame-metrics span{font-size:8px}.frame-metrics strong{font-size:14px;max-width:160px}.visual-label{font-size:9px;margin-bottom:7px}.array-cells{gap:4px}.array-item{min-width:30px}.array-item>strong{min-width:30px;height:33px;font-size:12px;padding:0 5px}.array-mark{font-size:7px;height:15px}.array-item>small{font-size:7px}.array-block{margin-bottom:15px}.table-block{margin-top:15px}.state-table{font-size:9px}.state-table th{padding:7px 8px}.state-table td{padding:6px 8px}.state-table-scroll{max-height:260px}.player-bar{padding:11px 10px 4px;gap:5px}.player-buttons{gap:1px}.player-buttons .icon-button{width:27px;height:32px;font-size:19px}.play-button{min-width:64px;padding:6px 10px;font-size:9px;min-height:31px}.speed-control{gap:3px}.speed-control label{display:none}.speed-control select{font-size:9px;padding:5px 3px;min-height:29px}.step-counter{font-size:9px;min-width:44px}.timeline-control{padding:4px 14px 10px}.step-panel{display:block;padding:19px}.step-panel-top{margin-bottom:14px}.step-panel h3{font-size:20px}.step-panel>p{font-size:12px;margin-bottom:19px}.code-context-label{font-size:9px;margin:15px 0 8px}.code-context-label .text-button{font-size:9px}.frame-code{font-size:9px;max-height:230px}.invariant-reminder{margin-top:19px;padding-top:15px}.invariant-reminder p{font-size:11px}.lab-footnote{font-size:8px;line-height:1.8;margin-bottom:20px}.lab-footnote>span:first-child{display:none}.result-panel{grid-template-columns:1fr;gap:15px;padding:20px}.result-panel h3{font-size:16px}.result-panel p{font-size:10px}.result-panel>pre{font-size:10px;max-height:170px}.oracle-block{display:block;padding-top:15px}.oracle-block p{margin-top:10px}.code-intro{display:block;margin-bottom:19px}.code-intro h2{font-size:23px;line-height:1.5}.code-intro .eyebrow{font-size:8px}.code-intro p{font-size:10px}.code-actions{flex-direction:row;margin-top:17px}.code-title{padding:12px 15px;font-size:9px}.full-code{font-size:10px;padding:15px 0;max-height:560px}.full-code .line-number{min-width:38px;padding-right:11px}.io-grid{grid-template-columns:1fr;gap:13px;margin-top:19px}.io-grid article{padding:18px}.io-grid h3{font-size:14px}.io-grid pre{font-size:10px}.code-notes p{font-size:11px}.pitfall-grid{grid-template-columns:1fr;gap:13px}.pitfall-card{padding:22px}.pitfall-number{margin-bottom:14px;font-size:9px}.pitfall-card h3{font-size:17px}.pitfall-card>p{font-size:12px}.pitfall-card>div p{font-size:11px}.quiz-section{margin-top:33px}.quiz-section .section-heading{display:block}.quiz-note{display:block;margin-top:11px;font-size:9px}.quiz-card{padding:21px 18px;margin-top:25px}.quiz-card legend{font-size:14px;line-height:1.8;padding:0 8px;margin-left:-8px}.quiz-card legend>span{font-size:10px;margin-right:8px}.quiz-options{grid-template-columns:1fr;gap:8px}.quiz-option{font-size:11px;padding:12px;min-height:44px}.quiz-explanation p{font-size:11px}.transfer-panel{padding:21px;gap:19px}.transfer-panel>span{font-size:30px}.transfer-panel p{font-size:13px;line-height:1.95}.application-list{font-size:12px;padding-left:19px}.challenge-panel{padding:20px}.challenge-panel strong{font-size:11px}.challenge-panel p{font-size:12px}.source-section h2{font-size:23px}.source-section>p{font-size:10px}.source-list a{font-size:12px}.source-list p{font-size:10px}.source-list{padding-left:18px}.related-links a{font-size:10px}.site-footer{padding:20px;margin-top:42px;font-size:9px;gap:10px 16px}.site-footer>span:last-child{flex-basis:100%;font-size:8px}.toast{font-size:11px;padding:12px 16px;bottom:18px;width:max-content;max-width:calc(100vw - 30px)}.empty-state{padding-top:35px;padding-bottom:35px}}
@media(max-width:380px){.page-pad{padding-left:16px;padding-right:16px}.topbar{padding-left:16px;padding-right:16px}.hero h1{font-size:29px}.hero-facts{gap:16px}.hero-art{gap:10px 14px;padding-left:18px;padding-right:18px}.art-message{font-size:16px}.art-message em{font-size:11px}.method-strip>div{grid-template-columns:105px 1fr}.method-strip p{font-size:8px}.chapter-title-row h1{font-size:27px}.chapter-title-row{gap:9px}.master-button{font-size:8px;max-width:82px;padding:7px}.chapter-tabs{padding-left:16px;gap:22px}.chapter-card{padding:16px 12px;min-height:180px}.chapter-card h3{font-size:15px}.chapter-card p{font-size:9px}.player-buttons .icon-button{width:24px}.play-button{min-width:58px;padding:6px 8px}.step-counter{font-size:8px;min-width:39px}.state-legend{font-size:6px;gap:5px}.stage-heading{padding:11px}.frame-visual{padding:13px}.array-cells{gap:3px}.complexity-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}a:hover,button:active{transform:none!important}}
@media print{.sidebar,.topbar,.chapter-tabs-wrap,.chapter-pagination,.site-footer,.lab-controls-panel,.player-bar,.timeline-control,.master-button,.code-actions,.toast{display:none!important}.main-shell{margin:0}.page-pad{padding-left:0;padding-right:0}body{background:white;color:black;font-size:11pt}.chapter-heading{padding-top:0}.chapter-panel{padding-top:12px}.reading-layout{display:block}.reading-aside{display:none}.proof-panel,.note-panel,.complexity-grid>article,.pitfall-card{break-inside:avoid}.full-code,.frame-visual{max-height:none;overflow:visible}.chapter-card{break-inside:avoid}.lab-main{display:block}.step-panel{margin-top:15px}.state-graph{max-height:260px}a[href^="http"]:after{content:' (' attr(href) ')';font-size:8pt;overflow-wrap:anywhere}}
/* Readability pass: text is information, not decoration. */
body{font-size:16px}.brand small{font-size:9px}.primary-nav a{font-size:14px}.nav-group summary{font-size:13px}.nav-group a{font-size:13px}.sidebar-search input{font-size:13px}.nav-divider{font-size:12px}.sidebar-bottom>a{font-size:12px}.local-progress>span{font-size:12px}.local-progress small{font-size:10px}.topbar-breadcrumb{font-size:12px}.topbar-breadcrumb>span:first-child{font-size:11px}.edition{font-size:11px}.eyebrow{font-size:11px}.hero-lead{font-size:15px}.hero-facts span{font-size:11px}.method-strip strong{font-size:14px}.method-strip p{font-size:12px}.method-strip>div>span{font-size:13px}.path-card small{font-size:11px}.path-card p{font-size:13px}.path-steps{font-size:12px}.chapter-card p{font-size:13px}.chapter-card h3{font-size:18px}.chapter-number{font-size:12px}.level{font-size:11px}.card-bottom{font-size:12px}.atlas-overview p{font-size:14px}.area-list strong{font-size:13px}.area-list>a>span:nth-last-child(2){font-size:11px}.page-heading>p{font-size:15px}.catalog-search input{font-size:14px}.select-wrap label{font-size:12px}.select-wrap select{font-size:12px}.catalog-meta,.catalog-meta>span:first-child{font-size:12px}.learning-path-heading p{font-size:14px}.learning-path-heading small{font-size:12px}.path-timeline strong{font-size:15px}.path-timeline a>span{font-size:13px}.path-timeline em{font-size:12px}.note-panel{font-size:14px}.note-panel strong{font-size:15px}.glossary dd{font-size:15px}.glossary dt{font-size:15px}.coverage-summary span{font-size:13px}.coverage-table{font-size:13px}.coverage-table caption,.coverage-table thead th,.coverage-table tbody td{font-size:12px}.verification-date{font-size:13px}.check-list strong{font-size:15px}.check-list p{font-size:13px}.verification-limit{font-size:14px}.review-rounds{font-size:14px}.boundary-grid p,.privacy-note,.privacy-note p{font-size:13px}.chapter-breadcrumb{font-size:12px}.chapter-subtitle{font-size:16px}.master-button{font-size:12px}.chapter-summary{font-size:14px}.chapter-meta{font-size:12px}.chapter-tab{font-size:14px}.chapter-pagination small{font-size:12px}.chapter-pagination strong{font-size:15px}.recognize-list li{font-size:15px}.derivation h3{font-size:18px}.derivation p{font-size:15px}.invariant-statement{font-size:16px}.proof-panel li{font-size:14px}.complexity-grid p{font-size:14px}.complexity-conditions strong{font-size:12px}.complexity-conditions p{font-size:12px}.aside-card h3{font-size:16px}.aside-card p,.aside-card ol{font-size:13px}.experiment-intro>p{font-size:12px}.presets>span{font-size:12px}.preset-button{font-size:12px;min-height:34px}.input-editor summary{font-size:12px}.input-editor-body>p{font-size:14px}.input-editor-body>label{font-size:12px}textarea{font-size:13px}.input-actions .button{font-size:12px}.seed-control>label{font-size:12px}.seed-control input{font-size:12px;width:132px}.input-editor-body>small{font-size:11px}.stage-heading{font-size:12px}.state-legend{font-size:10px}.frame-metrics span{font-size:11px}.visual-label{font-size:12px}.array-mark{font-size:10px;height:20px;line-height:17px}.array-item>small{font-size:10px}.array-item>strong{font-size:14px;min-width:37px;height:40px}.array-item{min-width:37px}.state-table{font-size:12px}.frame-note,.graph-text{font-size:12px}.graph-text p{font-size:12px}.speed-control label{font-size:11px}.speed-control select,.step-counter{font-size:12px}.play-button{font-size:12px;min-height:38px}.step-panel-top .eyebrow{font-size:10px}.step-panel-top>span:last-child{font-size:11px}.step-panel>p{font-size:14px}.code-context-label,.code-context-label .text-button{font-size:10px}.frame-code{font-size:11px}.invariant-reminder>span{font-size:12px}.invariant-reminder p{font-size:13px}.invariant-reminder .text-button{font-size:12px}.lab-footnote{font-size:11px}.result-panel .eyebrow{font-size:10px}.result-panel p,.oracle-block p{font-size:12px}.result-panel>pre{font-size:12px}.oracle-block .button{font-size:12px}.code-intro p{font-size:13px}.code-actions .button{font-size:12px}.full-code{font-size:12px}.code-title{font-size:12px}.code-title em{font-size:10px}.io-grid pre{font-size:12px}.io-grid p{font-size:12px}.io-grid h3{font-size:16px}.code-notes p{font-size:14px}.code-notes a{font-size:12px}.pitfall-number{font-size:12px}.pitfall-card>p{font-size:14px}.pitfall-card>div strong{font-size:12px}.pitfall-card>div p{font-size:13px}.quiz-note{font-size:12px}.quiz-card legend{font-size:17px}.quiz-option{font-size:13px}.quiz-option>span{font-size:12px}.quiz-explanation strong{font-size:13px}.quiz-explanation p{font-size:14px}.application-list{font-size:15px}.challenge-panel strong{font-size:14px}.challenge-panel p{font-size:15px}.related-links a{font-size:13px}.source-section>p{font-size:13px}.source-list a{font-size:14px}.source-list p{font-size:13px}.text-link{font-size:13px}.text-button{font-size:12px}.site-footer{font-size:11px}.art-top{font-size:9px}.art-coordinate{font-size:10px}.art-rule{font-size:11px}.art-link{font-size:13px}.art-column small{font-size:10px}.state-graph text{fill:#536d40}.graph-edge.active text,.graph-node.active text{fill:#955b29}.graph-node.muted text{fill:#69785c}.graph-edge text{font-size:15px}.graph-node text{font-size:16px}.graph-node .small-node-label{font-size:11px}
@media(max-width:1200px){.hero h1{font-size:34px}.hero-facts{flex-wrap:wrap;gap:10px 18px}.hero-facts span{font-size:11px}.method-strip strong{font-size:12px}.method-strip p{font-size:11px}.featured-grid .chapter-card h3{font-size:18px}.path-timeline a>span{font-size:12px}.experiment-intro>p{max-width:280px}.code-context-label,.code-context-label .text-button{font-size:10px}}
@media(max-width:900px){.hero h1{font-size:37px}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.edition{font-size:10px}.topbar-breadcrumb>span:first-child{font-size:10px}.topbar-breadcrumb{font-size:11px}}
@media(max-width:680px){.hero h1{font-size:clamp(30px,7.7vw,42px)}.hero .eyebrow{font-size:10px}.hero-lead{font-size:14px}.hero-facts span{font-size:11px}.hero-actions .button{font-size:12px}.art-top{font-size:8px}.art-coordinate{font-size:9px}.art-rule{font-size:10px}.art-link{font-size:12px}.art-column small{font-size:9px}.method-strip>div{grid-template-columns:122px 1fr;gap:8px}.method-strip strong{font-size:13px}.method-strip p{font-size:11px}.path-card small{font-size:11px}.path-card p{font-size:13px}.path-steps{font-size:12px}.section-heading>a{font-size:11px}.section-heading .eyebrow{font-size:10px}.chapter-card p{font-size:12px}.chapter-card h3,.featured-grid .chapter-card h3{font-size:17px}.chapter-number{font-size:11px}.level{font-size:10px}.area-list strong{font-size:12px}.area-list>a>span:nth-last-child(2){font-size:10px}.atlas-overview p{font-size:13px}.page-heading>p{font-size:14px}.page-heading .eyebrow{font-size:10px}.catalog-meta{display:block}.catalog-meta>span:first-child{font-size:12px;display:block;margin-bottom:5px}.catalog-meta>span:last-child{font-size:11px;max-width:none;text-align:left}.select-wrap label{font-size:11px}.select-wrap select{font-size:12px}.learning-path-heading small{font-size:11px}.learning-path-heading p{font-size:13px}.path-timeline strong{font-size:14px}.path-timeline a>span{font-size:12px}.path-timeline em{font-size:11px}.glossary dd{font-size:14px}.note-panel{font-size:13px}.note-panel strong{font-size:14px}.coverage-summary span{font-size:12px}.coverage-table{font-size:12px}.coverage-table caption{font-size:11px}.check-list strong{font-size:14px}.check-list p{font-size:13px}.verification-limit,.review-rounds{font-size:13px}.boundary-grid p,.privacy-note p{font-size:13px}.chapter-breadcrumb{font-size:11px}.chapter-subtitle{font-size:14px}.master-button{font-size:10px;max-width:110px;min-height:40px}.chapter-summary{font-size:13px}.chapter-meta{display:block;font-size:11px}.chapter-meta>a{display:inline-block;font-size:11px;margin-top:10px}.chapter-tab{font-size:13px;min-height:48px}.recognize-list li,.derivation p{font-size:14px}.derivation h3{font-size:17px}.invariant-statement{font-size:15px}.proof-panel li{font-size:13px}.complexity-grid p{font-size:13px}.complexity-conditions strong,.complexity-conditions p{font-size:11px}.experiment-intro .eyebrow{font-size:10px}.experiment-intro>p{font-size:12px}.presets>span{font-size:11px}.preset-button{font-size:11px;min-height:36px}.input-editor summary{font-size:12px;min-height:44px}.input-editor-body>p{font-size:13px}.input-editor-body>small{font-size:11px}.input-actions .button{font-size:11px;min-height:40px}.seed-control>label{font-size:11px}.seed-control input{font-size:12px;height:40px;width:132px}.stage-heading{font-size:11px}.state-legend{font-size:9px;gap:7px}.frame-metrics span{font-size:10px}.visual-label{font-size:11px}.array-mark{font-size:9px;height:19px}.array-item{min-width:35px}.array-item>strong{min-width:35px;height:39px;font-size:14px}.array-item>small{font-size:10px}.state-table{font-size:11px}.player-buttons .icon-button{min-width:33px;width:33px;height:44px}.play-button{font-size:11px;min-width:67px;min-height:40px}.speed-control select{font-size:11px;min-height:40px}.step-counter{font-size:10px;min-width:46px}.player-bar{flex-wrap:wrap;gap:4px}.timeline-control{padding-top:8px;padding-bottom:15px}.timeline-control input{height:22px}.step-panel>p{font-size:14px}.code-context-label,.code-context-label .text-button{font-size:11px}.frame-code{font-size:11px}.invariant-reminder p{font-size:13px}.lab-footnote{font-size:10px}.result-panel p,.oracle-block p{font-size:12px}.result-panel>pre{font-size:12px}.full-code{font-size:11px}.code-intro .eyebrow{font-size:10px}.code-intro p{font-size:12px}.io-grid pre{font-size:12px}.io-grid p{font-size:11px}.code-notes p{font-size:13px}.pitfall-number{font-size:11px}.pitfall-card>p{font-size:14px}.pitfall-card>div p{font-size:13px}.quiz-card legend{font-size:16px}.quiz-option{font-size:13px;min-height:48px}.quiz-note{font-size:11px}.quiz-explanation p{font-size:13px}.transfer-panel p,.application-list,.challenge-panel p{font-size:14px}.source-section>p,.source-list p{font-size:12px}.source-list a{font-size:13px}.related-links a{font-size:12px}.site-footer{font-size:10px}.site-footer>span:last-child{font-size:10px}}
/* Real-problem bridges stay secondary to the experiment, with optional hints. */
.practice-road{padding-bottom:64px;max-width:1180px}.practice-road>.note-panel{margin-top:0}.practice-transfer{border:1px solid var(--line);border-radius:12px;padding:25px 28px;margin:20px 0;background:var(--surface)}.practice-transfer-top{display:flex;gap:10px 22px;align-items:center;flex-wrap:wrap}.practice-transfer-top>span{font-size:11px;letter-spacing:.04em;color:#5a704b;background:#edf2e6;padding:4px 9px;border-radius:4px}.practice-transfer-top>a{font-size:13px;color:#526f3d;text-decoration:none}.practice-transfer-top>a:hover{text-decoration:underline}.practice-transfer h3{font-size:19px;font-weight:650;line-height:1.65;margin:17px 0 10px}.practice-transfer>p{font-size:15px;line-height:1.9;color:#4e5e48;max-width:900px}.practice-difference{border-left:3px solid #c3a88d;padding:5px 0 5px 15px;margin:18px 0}.practice-difference strong{font-size:12px;color:#85542b}.practice-difference p{font-size:14px;line-height:1.9;color:#4e5e48;margin:5px 0}.practice-hints{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.practice-hints summary{cursor:pointer;font-size:13px;color:#3e5e34;min-height:32px;line-height:1.7}.practice-hints li{font-size:14px;line-height:1.9;margin:10px 0;color:#43543d}.practice-hints ol{padding-left:24px}.practice-transfer .related-links{margin:18px 0 0;gap:8px}.practice-transfer .related-links a{font-size:12px;padding:5px 9px}.chapter-real-practice{margin:42px 0}.chapter-real-practice>.practice-transfer{background:#fafbf7}.practice-source-note{font-size:12px;color:#59674f;line-height:1.8;margin:24px 0}.practice-transfer a:focus-visible,.practice-hints summary:focus-visible{outline:2px solid #577442;outline-offset:4px}
@media(max-width:680px){.practice-transfer{padding:20px 17px;margin:16px 0}.practice-transfer h3{font-size:17px}.practice-transfer>p{font-size:14px}.practice-difference p,.practice-hints li{font-size:13px}.practice-transfer-top>a{font-size:12px}.practice-hints summary{font-size:12px;min-height:44px;display:list-item;padding-top:7px}.practice-road{padding-bottom:40px}}
/* Pair-specific contrast fixes: highlighted code and muted graph states have their own surfaces. */
.code-line.highlighted code{color:#e1ebd6}.code-line.highlighted .syntax-comment{color:#d7e5c8}.code-line.highlighted .syntax-string{color:#d8edbd}.code-line.highlighted .syntax-keyword{color:#f5dcaf}.code-line.highlighted .syntax-number{color:#efd6a6}.code-line.highlighted .line-number{color:#d7e5c8}
.play-button{background:#4c713a;border-color:#4c713a}.array-item.active>strong{color:#8f5526;border-color:#a96532}.graph-edge.active text,.graph-node.active text{fill:#8f5526}.graph-node.muted text{fill:#5e6b52}
.graph-edge path{stroke:#7b8e6d}.graph-edge.muted path{stroke:#7b8e6d}.graph-edge.done path{stroke:#68874f}.graph-edge.active path{stroke:#a86b35}.graph-node circle{stroke:#738466}.graph-node.done circle{stroke:#67844d}.graph-node.active circle{stroke:#ad6835}.graph-node.muted circle{stroke:#7c8c6f}.arrow-default,.arrow-muted{fill:#7b8e6d}.arrow-done{fill:#68874f}.arrow-active{fill:#a86b35}
