@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url("assets/atkinson-regular.ttf") format("truetype")}@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url("assets/atkinson-bold.ttf") format("truetype")}
:root{font-family:'Atkinson Hyperlegible',Segoe UI,sans-serif;color:#10243b;background:#f3f6fa;font-size:16px;--accent:#087c65;--soft:#e0f6ef;--line:#dce4ed;--navy:#10243b;--purple:#6745c4}*{box-sizing:border-box}body{margin:0}body.large{font-size:1.18rem}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #197ec7;outline-offset:4px}a{color:inherit}button{border:1px solid var(--line);background:white;color:var(--navy);border-radius:10px;padding:.7rem 1rem;font-weight:700}button:hover:not(:disabled){border-color:var(--accent);background:var(--soft)}h1,h2,h3,p{margin:0}h1{font-size:2rem;line-height:1.15}h2{font-size:1.75rem;line-height:1.2}h3{font-size:1.25rem}p{line-height:1.5}small{font-size:.9rem}a{text-decoration:none}.skip{position:fixed;top:-100px;left:1rem;background:white;padding:1rem;z-index:10}.skip:focus{top:1rem}.topbar{background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:1.1rem max(2rem,calc((100vw - 1350px)/2));gap:1rem}.brand{display:flex;align-items:center;gap:.85rem;font-size:1.15rem;font-weight:700;line-height:1.05}.brand-icon{background:var(--navy);color:#59e3bb;font-size:2rem;border-radius:12px;width:48px;height:48px;display:grid;place-items:center}.brand-bottom{display:block;font-size:1.4rem;margin-top:.2rem}.ks3{font-size:.75rem;letter-spacing:.1em;background:#edf2f8;padding:.2rem .4rem;margin-left:.6rem;border-radius:4px;color:#52647a}.tools{display:flex;gap:.5rem}.tools button{background:#f5f7fb;font-size:.95rem}.shell{max-width:1350px;margin:auto;padding:1.65rem 2rem}.intro{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.35rem}.intro>p{color:#516177}.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.12em;color:#546982;margin-bottom:.45rem}.years{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.7rem}.years>a{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:white;border:2px solid var(--line);border-radius:14px;position:relative}.years>a:hover{border-color:var(--accent)}.years>a.active{border-color:var(--accent);background:var(--soft)}.years a:nth-child(2){--accent:#6745c4;--soft:#f0ebfc}.years a:nth-child(3){--accent:#b95416;--soft:#fff0e4}.year-icon{background:#e5f8f0;color:#087c65;width:49px;height:49px;display:grid;place-items:center;border-radius:12px;font-size:2.1rem;font-weight:700}.years a:nth-child(2) .year-icon{background:#eee8fc;color:#6745c4;font-size:1.4rem;font-family:monospace}.years a:nth-child(3) .year-icon{background:#fff0e4;color:#b95416}.years b{display:block;font-size:1.2rem}.years small{display:block;margin-top:.2rem;color:#465971}.unit{margin-left:auto;color:#5b6b7d;font-size:.75rem;letter-spacing:.07em}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);gap:1.75rem}.sidebar{align-self:start}.side-heading{display:flex;justify-content:space-between;margin-bottom:.9rem;padding:0 .5rem;color:#506178}.side-heading span{font-size:.85rem}#lesson-list{display:flex;flex-direction:column;gap:.35rem}.lesson-link{display:flex;align-items:center;gap:.75rem;padding:.85rem .65rem;border-radius:10px;color:#4d5f73;font-size:.98rem;line-height:1.25}.lesson-link:hover{background:#e9eef5}.lesson-link.active{background:var(--navy);color:white}.lesson-number{flex-shrink:0;background:#e4eaf2;border-radius:7px;width:29px;height:29px;display:grid;place-items:center;font-weight:700;font-size:.88rem}.lesson-link.active .lesson-number{background:#334a63;color:#72f0c6}.side-note{display:flex;gap:.7rem;background:white;border:1px solid var(--line);border-radius:12px;margin-top:1.2rem;padding:1rem;color:#53657c;font-size:.9rem}.side-note>span{font-size:1.5rem}.side-note p{line-height:1.4}main{min-width:0}.lesson-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.lesson-head .eyebrow{color:var(--accent)}.lesson-head p:last-child{margin-top:.5rem;color:#4d6079}.lesson-symbol{font-size:2rem;border:1px solid var(--line);border-radius:13px;padding:.5rem .9rem;background:white}.modes{display:flex;gap:.2rem;background:#e5ebf2;padding:.35rem;border-radius:12px;margin-bottom:1rem}.modes a{flex:1;text-align:center;padding:.7rem .4rem;border-radius:9px;color:#4e5f72;cursor:pointer;font-weight:700}.modes a.active{background:white;color:var(--accent);box-shadow:0 2px 4px #10243b0c}.panel{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}.panel-top{padding:1.2rem 1.5rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem}.panel-top p{font-size:.95rem;color:#56687d;margin-top:.3rem}.panel-body{padding:1.5rem}.visual{border-radius:12px;background:#edf3fa;padding:1.5rem;position:relative;min-height:180px}.dark{background:var(--navy);color:white}.dark p{color:#c3d3e4}.dark .caption{color:#c3d3e4}.step-line{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.diagram-item{background:white;border:2px solid #d6e1ec;border-radius:12px;padding:1rem;text-align:center;min-width:105px;color:var(--navy)}.diagram-item span{display:block;font-size:2.25rem;margin-bottom:.4rem}.diagram-item b{display:block}.connector{color:#8bb2ce;font-size:1.6rem}.callout{background:var(--soft);border-left:4px solid var(--accent);padding:.85rem 1rem;border-radius:0 8px 8px 0;margin-top:1rem;line-height:1.45}.concepts{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.concept{background:#f1f5fa;padding:.65rem .85rem;border-radius:8px;font-size:.95rem}.concept b{color:var(--accent)}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.spaced{justify-content:space-between}.primary{background:var(--accent);border-color:var(--accent);color:white}.primary:hover:not(:disabled){background:var(--navy);color:white}.quiet{color:#52657b;font-size:.95rem;font-weight:700}.controls{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.caption{font-size:.9rem;color:#586b81;margin-top:.6rem}.lesson-bottom{display:flex;align-items:center;gap:1rem;margin-top:.85rem}.lesson-bottom p{font-size:.9rem;color:#64768b;flex:1}.lesson-bottom a{border-radius:8px}.lesson-bottom button{font-size:.9rem;padding:.6rem .85rem}.mini-tag{font-size:.8rem;background:var(--soft);color:var(--accent);border-radius:6px;padding:.3rem .5rem;font-weight:700}.feedback{margin-top:1rem;padding:.85rem 1rem;background:#edf3fa;color:#264968;border-radius:10px;line-height:1.4;min-height:48px}.feedback.correct{background:#e0f6eb;color:#075e41}.feedback.retry{background:#fff0d4;color:#7b4b00}.question{font-size:1.3rem;font-weight:700;margin:.5rem 0 1.2rem}.answers{display:grid;gap:.65rem}.answers button{text-align:left;padding:1rem;border:2px solid var(--line);font-weight:400;display:flex;gap:.8rem;align-items:center}.answers button span{background:#edf2f8;border-radius:6px;width:28px;height:28px;display:grid;place-items:center;flex-shrink:0;font-weight:700}.answers button.selected{border-color:var(--accent);background:var(--soft)}.answers button.wrong{border-color:#bd7311;background:#fff0d4}.chips{display:flex;gap:.5rem;flex-wrap:wrap}.chips button.active{border-color:var(--accent);background:var(--soft);color:var(--accent)}.bit-bank{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin:1.2rem 0}.bit{display:flex;flex-direction:column;align-items:center;padding:.7rem .1rem;background:#f0f4fa;border:2px solid #dce4ed;border-radius:10px;gap:.5rem;min-width:0}.bit strong{font-size:1.75rem}.bit.on{background:var(--soft);border-color:var(--accent);color:var(--accent)}.bit span{font-size:.85rem}.sum{font-size:1.35rem;font-weight:700}.ascii-result{display:flex;gap:1rem;justify-content:center;align-items:center;flex-wrap:wrap}.result-box{text-align:center;background:white;border:1px solid var(--line);border-radius:12px;padding:1rem 1.3rem;min-width:100px}.result-box strong{display:block;font-size:2.2rem}.result-box small{color:#5b6b7d}.field{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.field label{font-weight:700}.field input,.field select{border:1px solid #aabbce;border-radius:8px;padding:.65rem;width:120px;background:white;color:var(--navy)}input[type=range]{accent-color:var(--accent);width:100%;padding:0;min-height:28px}.task-nav{display:flex;flex-wrap:wrap;gap:.45rem;padding:1rem;border-bottom:1px solid var(--line);background:#f9fbfd}.task-nav button{font-size:.9rem;padding:.6rem .85rem}.task-nav button.active{background:var(--navy);color:white;border-color:var(--navy)}.task-title{display:flex;gap:.85rem;align-items:center;margin-bottom:1rem}.task-title>span{font-size:2.2rem}.task-steps{display:grid;gap:.75rem;margin-top:1rem}.task-step{display:flex;align-items:start;gap:1rem;border:1px solid var(--line);border-radius:10px;padding:1rem}.step-no{background:var(--soft);color:var(--accent);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;flex-shrink:0}.task-step p{margin-top:.25rem;color:#4e6076}.task-step[hidden]{display:none}.sentence{background:#edf3fa;border-radius:10px;padding:1rem;margin-top:1rem}.sentence small{display:block;font-weight:700;color:#596e86;margin-bottom:.4rem}.words{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.7rem}.words span{background:white;border:1px solid var(--line);border-radius:6px;padding:.25rem .55rem;font-size:.95rem}.task-links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.task-links a{color:var(--accent);text-decoration:underline}.pixel-work{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}.pixel-grid{display:grid;grid-template-columns:repeat(8,1fr);width:min(100%,330px);aspect-ratio:1;border:3px solid #a4b2c4;gap:1px;background:#a4b2c4}.pixel-grid button{padding:0;border:0;border-radius:0;font:700 .7rem monospace;min-width:0;color:white;aspect-ratio:1}.palette{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.swatch{width:48px;min-height:44px;padding:.3rem;font:700 .8rem monospace;border:3px solid #cad6e4}.swatch.active{outline:3px solid var(--navy);outline-offset:2px}.pixel-work pre{white-space:pre-wrap;font-size:.88rem;margin:1rem 0;line-height:1.6}.rgb-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.rgb-preview{min-height:190px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center}.rgb-preview span{background:white;color:var(--navy);padding:.4rem .7rem;border-radius:8px;font-weight:700}.slider-row{margin-bottom:1rem}.slider-row label{display:flex;justify-content:space-between;font-weight:700}.slider-row code{font-weight:400}.codebox{background:var(--navy);color:#eef5fe;border-radius:12px;padding:1rem;overflow:auto;font-family:Consolas,monospace;font-size:1rem;line-height:1.7;white-space:pre}.code-line{display:block;padding:0 .5rem;border-left:3px solid transparent}.code-line.highlight{background:#244961;border-color:#7de9c4}.trace-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.trace-card{background:#f0f4fa;border-radius:12px;padding:1.1rem}.trace-card .sum{margin:1rem 0}.flowchart{display:flex;flex-direction:column;align-items:center;gap:.6rem}.flow-node{border:2px solid #8a9cb2;min-width:135px;padding:.65rem 1rem;text-align:center;background:white;font-weight:700}.flow-node.oval{border-radius:50px;background:#e4f8ed;border-color:#52a080}.flow-node.io{clip-path:polygon(9% 0,100% 0,91% 100%,0 100%);padding:.7rem 2rem;background:#eaf0fc}.flow-node.decision{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);padding:2rem 1.6rem;background:#fff1ce;border:0;min-width:170px}.flow-node.lit{background:#bff4dd;outline:3px solid var(--accent)}.flow-arrow{font-size:1.1rem;color:#6f8da9}.branches{display:flex;gap:2rem;justify-content:center;text-align:center}.branch b{display:block;font-size:.85rem;margin-bottom:.5rem}.branch>div{max-width:170px}.sort-list{display:grid;gap:.65rem}.sort-item{border:1px solid var(--line);padding:.75rem;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:1rem}.sort-item .chips button{padding:.45rem .6rem;font-size:.9rem}.sort-item>span{font-size:1.1rem}.packet-list{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin:1rem 0}.packet{width:145px;border:2px solid #c9d6e5;border-radius:12px;background:white;overflow:hidden}.packet-top{background:#ecf2f9;padding:.5rem;font-size:.85rem;font-weight:700}.packet-word{padding:1.1rem .7rem;font-size:1.6rem;font-weight:700;text-align:center}.packet small{display:block;font-size:.77rem;padding:.3rem .5rem}.order-list{display:grid;gap:.6rem;counter-reset:steps}.order-item{display:flex;justify-content:space-between;align-items:center;gap:.65rem;border:1px solid var(--line);padding:.75rem 1rem;border-radius:10px;background:#f5f8fc}.order-item span{flex:1}.order-item .move button{padding:.4rem .65rem}.order-item:before{counter-increment:steps;content:counter(steps);background:var(--soft);color:var(--accent);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-weight:700;flex-shrink:0}.network-board{height:305px;position:relative;background:var(--navy);border-radius:12px;overflow:hidden}.network-board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.network-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;padding:.4rem .7rem;border:2px solid #4b647e;background:#213a53;color:white;min-width:60px;border-radius:10px;font-size:.85rem}.network-node span{font-size:1.4rem}.network-node.selected{border-color:#81f5ce;background:#244f50}.network-node.connected{border-color:#76c6b0}.network-node:hover:not(:disabled){background:#305970;color:white}.network-count{color:#c8dfef;position:absolute;bottom:10px;left:14px;font-size:.9rem}.network-board .wire{stroke:#7dddc2;stroke-width:3}.network-board .wire.preview{stroke:#607d99;stroke-dasharray:6 5}.url-parts{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem;margin:1rem 0}.url-parts button{font:700 1.2rem Consolas,monospace;padding:.85rem .65rem;border:2px solid var(--line)}.url-parts button.active{border-color:var(--accent);background:var(--soft)}.seg-display{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:175px;aspect-ratio:5/7;background:var(--navy);padding:12px;border-radius:10px}.seg-display span{background:#2b465e;border-radius:3px}.seg-display span.on{background:#71edc6}.notice{background:#f0f4fa;border-radius:10px;padding:1rem;margin-bottom:1rem}.notice h3{margin-bottom:.5rem}.checklist{padding-left:1.4rem;line-height:1.7;margin:.7rem 0}.checklist li{margin:.5rem 0}.topic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.topic-grid button{text-align:left;font-weight:400;padding:1rem}.topic-grid button b{display:block;margin-bottom:.2rem}.topic-grid button span{font-size:.9rem;color:#52657b}.teacher-section{margin-bottom:1.5rem}.teacher-section p,.teacher-section li{color:#4e6076}.teacher-section h3{margin-bottom:.6rem}.teacher-section ul{padding-left:1.3rem;line-height:1.6}.teacher-section a{color:#087c65;text-decoration:underline}.source-list{display:grid;gap:.5rem}.source-list div{border-bottom:1px solid var(--line);padding:.5rem 0}.source-list small{display:block;margin-top:.25rem}.source-list b{font-size:.95rem}.teacher-content details{margin-top:.5rem}details{border:1px solid var(--line);padding:1rem;border-radius:10px;margin-top:1rem}summary{font-weight:700;cursor:pointer}details p{margin-top:.75rem}dialog{border:0;border-radius:16px;width:min(780px,92vw);max-height:85vh;padding:1.5rem;color:var(--navy);box-shadow:0 20px 70px #10243b50}dialog::backdrop{background:#10243b80}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.2rem}footer{display:flex;justify-content:space-between;margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--line);color:#66768a;font-size:.85rem}pre{max-width:100%}.download-art{color:var(--accent);font-weight:700}body[data-year="8"]{--accent:#6745c4;--soft:#f0ebfc}body[data-year="9"]{--accent:#b95416;--soft:#fff0e4}body.large .workspace{grid-template-columns:260px minmax(0,1fr)}@media(max-width:1000px){.shell{padding:1.2rem}.workspace{grid-template-columns:200px minmax(0,1fr);gap:1rem}.unit{display:none}.years>a{padding:.8rem;gap:.7rem}.pixel-work,.trace-grid,.rgb-layout{grid-template-columns:1fr}.lesson-bottom{flex-wrap:wrap}.lesson-bottom p{min-width:160px}.intro{align-items:start;flex-direction:column;gap:.5rem}.network-board{height:280px}body.large .workspace{grid-template-columns:215px minmax(0,1fr)}}@media(max-width:700px){.topbar{padding:1rem}.tools button{font-size:.85rem;padding:.5rem .65rem}.tools #size span{display:none}.brand{font-size:.9rem}.brand-bottom{font-size:1.1rem}.brand-icon{width:40px;height:40px}.shell{padding:1rem}.years{gap:.4rem}.years>a{flex-direction:column;align-items:center;text-align:center;padding:.8rem .35rem;gap:.4rem}.years b{font-size:1rem}.years small{font-size:.85rem}.year-icon{width:37px;height:37px;font-size:1.6rem}.workspace,body.large .workspace{grid-template-columns:1fr}.sidebar .side-heading,.side-note{display:none}#lesson-list{flex-direction:row;overflow:auto;padding-bottom:.65rem;gap:.4rem}.lesson-link{min-width:170px;font-size:.9rem;padding:.65rem}.lesson-head{margin-top:.4rem}.lesson-head h2{font-size:1.5rem}.modes a{font-size:.88rem}.panel-body{padding:1rem}.panel-top{padding:1rem}.panel-top h3{font-size:1.1rem}.bit-bank{gap:.2rem}.bit strong{font-size:1.45rem}.bit span{font-size:.7rem}.bit{padding:.7rem .1rem}.topic-grid{grid-template-columns:1fr}.sort-item{flex-direction:column;align-items:start;gap:.5rem}.flowchart{font-size:.9rem}.branches{gap:.5rem}.flow-node{min-width:110px;padding:.5rem}.step-line{gap:.45rem}.diagram-item{min-width:85px;padding:.75rem}.diagram-item span{font-size:1.8rem}.packet{width:125px}.packet small{font-size:.7rem}footer span:last-child{display:none}.lesson-symbol{display:none}.network-node{padding:.3rem .4rem;min-width:48px}.network-board{height:290px}.url-parts button{font-size:1rem;padding:.65rem .4rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{.tools,.years,.sidebar,.modes,.lesson-bottom,footer{display:none}.workspace{display:block}.shell{padding:0}.panel{border:0}.task-step[hidden]{display:flex}body{background:white}}
