@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{--bg:#f5f7fa;--paper:#fff;--ink:#294059;--muted:#8fa1b4;--green:#3d72a6;--light:#eaf1f8;--line:#e1e8f0;--orange:#d3a27c}body{font-family:'Noto Sans KR','Malgun Gothic',sans-serif;background:var(--bg);color:var(--ink)}header.algo-topbar{height:76px;background:white;border-color:#e1e8f0;padding:0 32px;gap:20px}.algo-topbar .brand{color:#2b425a;font-size:18px;text-decoration:none;white-space:nowrap;gap:11px}.algo-topbar .brand small{color:#90a0b1;letter-spacing:1px;font-size:8px;font-weight:400;margin-top:6px}.algo-topbar .logo{background:#27425c;color:#fff;border-radius:9px;font-family:Consolas,monospace;letter-spacing:-2px;width:39px;height:39px;font-size:18px}.algorithm-nav{display:flex;align-self:stretch;gap:27px;margin:0 auto;align-items:stretch}.algorithm-nav a{display:flex;align-items:center;text-decoration:none;color:#99a8b8;font-size:11px;border-bottom:3px solid transparent;padding:3px 2px 0}.algorithm-nav a.active{color:#638ab0;font-weight:600;border-color:#648db4}.algorithm-nav a:hover{color:#4479a6}.algo-topbar .header-note{font-size:10px;color:#9caabd;white-space:nowrap}.layout{grid-template-columns:265px minmax(0,1fr);max-width:1600px;min-height:calc(100vh - 76px)}aside{background:#edf1f6;border-color:#e1e7ef;padding:29px 22px;position:sticky;top:0;height:calc(100dvh - 76px);overflow:auto;scrollbar-width:thin}main{padding:32px 47px 45px;max-width:1100px}.eyebrow{font-size:10px;color:#7797b6;letter-spacing:1px}.progress-box{border-color:#dfe7ef;border-radius:8px;padding:18px;background:#fff;margin:16px 0 22px}.progress-title span{font-size:11px;color:#8ba0b4}.progress-title b{font-size:22px;color:#577b9c;font-family:Arial,sans-serif}progress{height:5px;appearance:none;border-radius:10px;overflow:hidden}progress::-webkit-progress-bar{background:#e7eef5}progress::-webkit-progress-value{background:#83a7c7}progress::-moz-progress-bar{background:#83a7c7}.muted{color:#9aabbc;font-size:11px}.group{font-size:11px;color:#718ca6;margin-top:25px}.lesson-link{font-size:12px;color:#8298ae;border-radius:6px;padding:12px 11px;gap:10px}.lesson-link:hover{background:#e2e9f1}.lesson-link.active{background:#2a4660;box-shadow:0 3px 5px #233d5610}.num{color:#9db6cb;opacity:1;font-size:10px}.check{color:#8eb1a0}.reset{font-size:10px;color:#a0b1c3;margin-top:25px}.intro{background:white;border:1px solid #e2e8ef;border-radius:10px;padding:30px;box-shadow:0 2px 4px #253d5403;margin-bottom:23px}.intro h1{font-size:32px;font-weight:700;letter-spacing:-1.2px;color:#294661;margin-top:16px}.intro p{font-size:12px;color:#9bafc0;margin-top:12px}.intro .tag{font-size:10px;border-color:#e6d9cb;color:#b69577;background:#fbf5ef;border-radius:5px;padding:8px 12px}.tabs{background:white;border:1px solid #e2e8ef;padding:5px;border-radius:7px;gap:4px;margin-bottom:30px}.tab{flex:1;text-align:center;font-size:11px;color:#9db0c1;border-radius:4px;padding:12px}.tab.selected{border:0;background:#eaf1f8;color:#6d93b7}.card{border-color:#e1e8ef;border-radius:8px;padding:29px 30px;box-shadow:0 2px 3px #253d5402;margin-bottom:22px}.card h2{font-size:18px;font-weight:600;color:#4a6f91;letter-spacing:-.5px}.card h3{color:#7395b2}.card p{font-size:13px;line-height:1.95;color:#7e96ac}.concept{grid-template-columns:1fr 170px;gap:28px}.complexity{background:#f0f5f9;border:1px solid #e3ecf3;border-radius:6px;padding:16px}.complexity strong{font-family:Consolas,monospace;color:#6d93b2;font-size:18px}.pill{background:#edf3f8;color:#90adc4;border:1px solid #dce8f1;border-radius:4px;font-size:10px}.viz{background:#f4f8fc;border:1px solid #e4eef5;border-radius:7px;min-height:260px;margin-top:23px;padding:25px}.cell{background:white;border-color:#d5e3ef;border-radius:7px;color:#7795af;font-size:20px;height:54px}.cell.hot{background:#5487b1;border-color:#5487b1}.cell.done{background:#e4eef6;border-color:#a4bfd3;color:#7999b3}.cell.secondary{background:#fcf0e4;border-color:#d6b390;color:#b59473}.index{color:#b1c3d2}.pointer{color:#86a6c0;font-size:9px}.viz-note{color:#83a2ba;font-size:11px}.narration{background:#eaf1f7;border:1px solid #dfebf3;padding:17px;border-radius:7px;gap:14px}.narration p{color:#819db5;font-size:12px;margin:0}.step-icon{color:#8ca9bf;background:#fff;border:1px solid #dce8f0;font-family:Consolas,monospace;border-radius:5px;font-size:12px}.controls{margin-top:22px}.controls button{font-size:10px;padding:10px 14px;border-radius:5px}.primary{background:#3868a3;color:white;box-shadow:0 2px 3px #3868a312}.ghost{background:white;border-color:#dae6ef;color:#8ca6bc}.dot{background:#d8e5f0}.dot.filled{background:#81a7c6}.legend{font-size:10px;color:#a2b8c9}.legend i{background:#7ea5c6}.exercise-label{font-size:9px;letter-spacing:1px;color:#8baac3}.bottom-grid .card h2{font-size:17px}.answer-row input{border-color:#dce7ef;background:#fafcfe;color:#7094b1;border-radius:5px;font-size:12px}.answer-row button{border-radius:5px;font-size:10px;background:#3c72a8}.feedback{font-size:11px}.feedback.good{color:#729b86}.feedback.bad{color:#b29171}details{border-bottom:1px solid #e8eff5;padding:4px 0}summary{font-size:11px;color:#8daac1}pre{background:#263e54;color:#cadbdc;border-radius:7px;font-size:11px;line-height:1.9;padding:24px}code{color:inherit;background:none}.road-card{border-color:#e0e9f1;border-radius:8px;padding:25px}.road-card h3{color:#688ead;font-size:19px}.road-card p{font-size:12px;color:#a0b4c5}.footer-nav button{font-size:11px;padding:12px 18px;border-radius:5px}.save-note{font-size:10px;color:#9fb2c5}.algorithm-home-note{display:flex;justify-content:space-between;gap:12px;margin-top:30px;border-top:1px solid #e0e8f0;padding-top:19px;font-size:10px;color:#a5b8c9}.algorithm-home-note a{color:#7e9eb9;text-decoration:none}.algorithm-home-note a:hover{color:#477aa5}.graph text{font-family:Consolas,monospace;font-size:14px}.tag{font-weight:400}@media(max-width:1150px){.layout{grid-template-columns:235px minmax(0,1fr)}main{padding:28px 30px 45px}.concept{grid-template-columns:1fr}.complexity{display:flex;gap:12px;align-items:center}.complexity strong{margin:0}.bottom-grid{grid-template-columns:1fr}}@media(max-width:850px){.algo-topbar .header-note{display:none}.layout{grid-template-columns:205px minmax(0,1fr)}aside{padding:25px 15px}main{padding:25px 23px 40px}.intro{padding:25px}.intro h1{font-size:28px}.intro .tag{display:none}.card{padding:25px}.algorithm-nav{margin:0 0 0 auto;gap:20px}}@media(max-width:700px){header.algo-topbar{height:68px;padding:0 17px;gap:10px}.algo-topbar .brand{font-size:15px}.algo-topbar .logo{width:34px;height:34px;font-size:16px}.algo-topbar .brand small{font-size:7px}.algorithm-nav{gap:14px}.algorithm-nav a{font-size:9px}.layout{display:block}aside{position:relative;height:auto;border-right:0;border-bottom:1px solid #dfe7ef;padding:19px 17px}.progress-box{padding:13px;margin:10px 0 16px}.progress-title b{font-size:19px}.progress-box .muted{font-size:9px}aside nav{display:flex;gap:6px;overflow:auto;padding-bottom:5px}aside .group{display:none}.lesson-link{min-width:145px;font-size:11px;padding:11px}.reset{margin-top:6px;padding:5px;font-size:9px}main{padding:23px 17px 35px}.intro{padding:23px}.intro h1{font-size:27px}.intro p{font-size:11px}.card{padding:23px 20px}.card h2{font-size:17px}.card p{font-size:12px}.viz{padding:20px 12px;min-height:235px}.narration p{font-size:11px}.complexity{padding:13px}.complexity strong{font-size:16px}.controls{gap:10px;flex-wrap:wrap}.controls button{font-size:10px;padding:9px 12px}.step-dots{order:3;width:100%}.bottom-grid{gap:20px}.roadmap-grid{grid-template-columns:1fr}.algorithm-home-note{font-size:9px}.card-head{gap:10px}.cell{height:48px;font-size:18px}}@media(prefers-reduced-motion:reduce){.cell{transition:none}}
