*{box-sizing:border-box}body{background:var(--pr-soft,#faf8f3);color:var(--pr-ink,#172238);margin:0}a{color:var(--pr-accent,#1d4ed8);text-decoration:none}a:hover{text-decoration:underline}button,.button{border:1px solid var(--pr-line);min-height:42px;font:600 14px/1.4 var(--pr-ui-font);background:var(--pr-surface);color:var(--pr-ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:9px 15px;text-decoration:none;display:inline-flex}button:hover,.button:hover{border-color:var(--pr-accent);text-decoration:none}button:disabled{opacity:.5;cursor:default}.primary{background:var(--pr-accent);color:var(--pr-surface);border-color:var(--pr-accent)}.button-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}input,select,textarea{color:var(--pr-ink);background:var(--pr-surface);border:1px solid var(--pr-line);font:inherit;border-radius:8px;max-width:100%;padding:10px}textarea{resize:vertical;width:100%;font:13px/1.6 Consolas,monospace}textarea[readonly]{background:var(--pr-soft)}select{min-height:42px;font-size:13px}input[type=range]{accent-color:var(--pr-accent);width:100%;min-height:28px;padding:0}pre,code{font-family:Consolas,monospace}pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.65}h1,h2,h3,p{margin-top:0}h1{margin-bottom:20px}h2{font-size:23px}h3{font-size:18px}p{line-height:1.7}.small,small{font-size:12px;line-height:1.6}.muted{color:var(--pr-muted)}.eyebrow{letter-spacing:.11em;text-transform:uppercase;color:var(--pr-accent);margin:0 0 12px;font-size:11px;font-weight:700}.lede{color:var(--pr-muted);max-width:650px;font-size:17px}.page{max-width:1280px;margin:auto;padding:44px 36px 64px}.narrow{max-width:940px}.catalog-intro{border-bottom:1px solid var(--pr-line);grid-template-columns:1fr 300px;align-items:center;gap:72px;padding:18px 0 44px;display:grid}.catalog-intro h1{font-size:clamp(32px,3.4vw,46px);line-height:1.17}.catalog-summary{border-left:2px solid var(--pr-accent);padding:10px 0 10px 28px}.catalog-summary>strong{font-size:68px;font-weight:500;font-family:var(--pr-display-font);line-height:1.1;display:block}.catalog-summary>span{color:var(--pr-muted);font-size:15px}.catalog-summary>div{margin:20px 0 12px;font-size:13px}.catalog-summary p{color:var(--pr-muted);margin-bottom:0;font-size:13px}.catalog-summary b{font-weight:600}.search-label{margin:32px 0 8px;font-size:13px;font-weight:600;display:block}.search{width:100%;min-height:50px;padding:15px 18px}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin:30px 0 18px;display:flex}.section-heading h2{margin:0}.section-heading>span{color:var(--pr-muted);font-size:12px}.section-title{margin-top:28px}.topic-grid{border-top:1px solid var(--pr-line);border-left:1px solid var(--pr-line);grid-template-columns:repeat(3,1fr);display:grid}.topic-card{color:var(--pr-ink);border-right:1px solid var(--pr-line);border-bottom:1px solid var(--pr-line);background:var(--pr-surface);min-height:155px;padding:20px 26px;position:relative}.topic-card:hover{background:var(--pr-soft);text-decoration:none}.topic-number{color:var(--pr-muted);font:12px Consolas,monospace}.topic-card h3{margin:14px 0 6px;padding-right:12px}.topic-card p{color:var(--pr-muted);margin:0;font-size:12px}.topic-arrow{color:var(--pr-accent);font-size:21px;position:absolute;top:20px;right:22px}.problem-list{border-top:1px solid var(--pr-line);margin:30px 0;padding:0;list-style:none}.problem-list li{border-bottom:1px solid var(--pr-line)}.problem-list a{color:var(--pr-ink);align-items:center;gap:22px;padding:19px 12px;display:flex}.problem-list a:hover{background:var(--pr-surface);text-decoration:none}.problem-list strong{font-size:15px}.problem-list small{color:var(--pr-muted);margin-top:3px;display:block}.problem-number{color:var(--pr-muted);min-width:25px;font:12px Consolas,monospace}.problem-status{white-space:nowrap;color:var(--pr-accent);margin-left:auto;font-size:12px}.back{margin-bottom:24px;font-size:13px;display:inline-block}.text-link{margin-top:18px;font-size:13px;display:inline-block}.breadcrumbs{color:var(--pr-muted);flex-wrap:wrap;gap:9px;margin-bottom:20px;font-size:12px;display:flex}.workbench h1{margin-bottom:28px;font-size:30px;line-height:1.3}.lesson-layout{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:30px;display:grid}.lesson-brief{font-size:14px}.task-statement{line-height:1.75}.complexities{border-block:1px solid var(--pr-line);gap:12px;margin:22px 0 12px;padding:18px 0;display:grid}.complexities div{grid-template-columns:48px 1fr;gap:10px;display:grid}.complexities dt{color:var(--pr-muted);font-size:12px}.complexities dd{margin:0;font-size:12px;font-weight:600}.field{margin:20px 0 8px;font-size:12px;font-weight:600;display:block}.field select{width:100%;margin-top:8px;display:block}.trace-column{min-width:0}.trace-panel{background:var(--pr-surface);border:1px solid var(--pr-line);border-radius:12px;overflow:hidden}.trace-topline{justify-content:space-between;gap:20px;padding:20px 24px 0;display:flex}.trace-topline .eyebrow{margin:0}.step-label{color:var(--pr-muted);font:12px Consolas,monospace}.scene-scroll{align-items:center;min-height:240px;max-height:560px;padding:24px 16px;display:grid;overflow:auto}.structure{width:100%;max-height:430px;margin:auto;display:block;overflow:visible}.edge{stroke:var(--pr-muted);stroke-width:1.6px;fill:none;color:var(--pr-muted)}.edge-label{fill:var(--pr-ink);paint-order:stroke;stroke:var(--pr-surface);stroke-width:4px;font:11px Consolas,monospace}.node circle{fill:var(--pr-soft);stroke:var(--pr-line);stroke-width:2px}.node text{fill:var(--pr-ink);font:12px Consolas,monospace}.node.active circle{fill:var(--pr-accent);stroke:var(--pr-accent)}.node.active text{fill:var(--pr-surface)}.matrix{border-collapse:separate;border-spacing:5px;width:max-content;min-width:50%;margin:auto}.matrix td{border:1px solid var(--pr-line);background:var(--pr-soft);text-align:center;overflow-wrap:anywhere;min-width:42px;max-width:200px;padding:6px 8px;line-height:1.2}.matrix td small{color:var(--pr-muted);margin-bottom:3px;font-size:9px;display:block}.matrix td span{font:600 12px Consolas,monospace;display:block}.matrix td.absent{background:0 0;border:0}.matrix td.active,.cell.active{background:var(--pr-accent);color:var(--pr-surface);border-color:var(--pr-accent)}.matrix td.active small,.cell.active small{color:inherit}.matrix td.done:not(.active),.cell.done:not(.active){border-color:var(--pr-accent);background:color-mix(in srgb, var(--pr-accent) 9%, var(--pr-surface))}.array-scene{flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;min-height:240px;padding:36px 24px;display:flex}.cell{border:1px solid var(--pr-line);background:var(--pr-soft);overflow-wrap:anywhere;border-radius:6px;flex-direction:column;flex:0 auto;align-items:center;min-width:44px;max-width:180px;padding:12px 10px;display:flex}.cell strong{font:600 16px Consolas,monospace}.cell small{color:var(--pr-muted);margin-top:8px;font:10px Consolas,monospace}.bar-space{align-items:flex-end;height:80px;margin-bottom:10px;display:flex}.bar-space>span{background:var(--pr-accent);width:18px;display:block}.bar-space>span.negative{background:#a44b32}.empty-scene{color:var(--pr-muted);text-align:center;font-size:13px}.trace-caption{border-top:1px solid var(--pr-line);min-height:75px;padding:18px 24px}.trace-caption h2{letter-spacing:0;margin:0;font-size:16px;line-height:1.5}.computed-result{border:1px solid var(--pr-line);background:var(--pr-soft);border-radius:8px;max-height:360px;margin-top:16px;padding:16px;overflow:auto}.computed-result>span{color:var(--pr-muted);margin-bottom:8px;font-size:11px;display:block}.playback{background:var(--pr-soft);border-top:1px solid var(--pr-line);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 24px;display:flex}.playback .button-row{gap:7px}.playback button{padding:8px 12px}.play{min-width:80px}.speed{color:var(--pr-muted);align-items:center;gap:8px;margin-left:auto;font-size:11px;display:flex}.timeline{flex-basis:100%}.memory-panel{border-bottom:1px solid var(--pr-line);padding-bottom:20px}.memory-panel h2{font-size:16px}.memory-panel .section-heading{margin-top:24px}.memory{gap:0;margin:0;font:12px/1.6 Consolas,monospace;display:grid}.memory>div{border-top:1px solid var(--pr-line);grid-template-columns:150px minmax(0,1fr);gap:18px;padding:10px 0;display:grid}.memory dt{color:var(--pr-muted)}.memory dd{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;margin:0;overflow:auto}.source-panel{border-block-end:1px solid var(--pr-line)}summary{cursor:pointer;padding:18px 0;font-size:14px;font-weight:600}summary span{float:right;color:var(--pr-muted);font-size:12px;font-weight:400}.code-block{font-size:12px}.code-block>pre,.code-block details pre{white-space:pre;background:var(--pr-surface);border:1px solid var(--pr-line);max-height:650px;padding:18px;overflow:auto}.review-panel{justify-content:space-between;align-items:center;gap:20px;margin-top:24px;display:flex}.review-panel strong{font-size:13px}.review-panel p{margin:5px 0 0}.review-panel button{flex-shrink:0;font-size:12px}.lesson-pagination{border-top:1px solid var(--pr-line);justify-content:space-between;gap:26px;margin-top:42px;padding-top:24px;font-size:13px;display:flex}.lesson-pagination>a:last-child{text-align:right}.notice{border:1px solid var(--pr-line);background:var(--pr-surface);border-radius:8px;margin:20px 0;padding:20px}.error{color:#a12b27;font-size:13px}.notes section{margin-top:32px}.notes li{margin:9px 0}.notes h2{margin-top:30px;font-size:21px}.company-list{border-top:1px solid var(--pr-line);grid-template-columns:repeat(3,1fr);margin-top:24px;display:grid}.company-list>a{border-bottom:1px solid var(--pr-line);color:var(--pr-ink);flex-direction:column;padding:18px 14px;display:flex}.company-list strong{font-size:14px}.company-list span{color:var(--pr-muted);font-size:12px}.reference-list{margin:25px 0}.reference-list article{border-top:1px solid var(--pr-line);justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:12px;display:flex}.reference-list h2{letter-spacing:0;margin:0 0 6px;font-size:16px;line-height:1.5}.reference-list .button-row{flex-shrink:0}.reference-list .button-row a{padding:8px 0}progress{width:100%;accent-color:var(--pr-accent)}footer{border-top:1px solid var(--pr-line);max-width:1280px;color:var(--pr-muted);flex-wrap:wrap;gap:24px;margin:auto;padding:24px 36px;font-size:11px;display:flex}footer>span{margin-right:auto}.sr-only,.skip-link:not(:focus){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{background:var(--pr-surface);padding:15px;display:block}@media (width<=1050px){.lesson-layout{grid-template-columns:260px minmax(0,1fr);gap:22px}.page{padding-inline:24px}.catalog-intro{gap:30px}.memory>div{grid-template-columns:110px minmax(0,1fr)}.review-panel{flex-wrap:wrap}}@media (width<=720px){.page{padding:28px 18px 44px}.catalog-intro{grid-template-columns:1fr;gap:28px;padding:4px 0 30px}.catalog-intro h1{font-size:33px}.catalog-summary{padding:0 0 0 20px}.catalog-summary>strong{margin-right:12px;font-size:44px;display:inline}.catalog-summary>div{margin:8px 0}.catalog-summary p{max-width:370px}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-card{min-height:151px;padding:17px 15px}.topic-card h3{font-size:16px}.topic-arrow{top:13px;right:12px}.section-heading{flex-direction:column;align-items:flex-start;gap:6px}.section-heading h2{font-size:22px}.problem-list a{gap:12px;padding:16px 2px}.problem-list strong{font-size:14px}.problem-status{font-size:10px}.workbench h1{font-size:27px}.lesson-layout{grid-template-columns:1fr;gap:26px}.lesson-brief{border-bottom:1px solid var(--pr-line);padding-bottom:22px}.lesson-brief textarea{max-height:230px}.scene-scroll{min-height:220px;padding:18px 12px}.trace-topline{padding:18px 16px 0}.array-scene{min-height:220px;padding:25px 14px}.trace-caption{padding:17px 16px}.playback{gap:12px;padding:14px}.playback button{padding:8px 11px}.speed{gap:5px}.speed select{padding:6px}.memory>div{grid-template-columns:100px minmax(0,1fr);gap:10px}.memory-panel .section-heading h2{font-size:17px}.review-panel{gap:12px}.lesson-pagination{font-size:12px}.company-list{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-list article{flex-direction:column;align-items:flex-start;gap:10px}.reference-list .button-row{gap:24px}.breadcrumbs{font-size:11px}footer{gap:15px;padding:22px 18px}.structure{max-height:440px}.node text{font-size:20px}.edge-label{font-size:16px}.matrix{border-spacing:3px}.matrix td{min-width:27px;padding:4px 3px}.matrix td small{margin-bottom:2px;font-size:7px}.matrix td span{font-size:12px}.notes h1{font-size:30px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{header,footer,.playback,.lesson-pagination,.review-panel,.source-panel{display:none}.lesson-layout{display:block}.page{padding:0}.trace-panel{break-inside:avoid}}
