:root{--bg:#f7f7fb;--surface:#fff;--surface-2:#f0eefb;--text:#101018;--muted:#66667a;--line:#deddec;--primary:#7c2dff;--primary-2:#a78bfa;--good:#12b981;--warn:#f59e0b;--shadow:0 18px 50px #1f12421c;--code-bg:#11111b;--code-text:#f4f4f8}:root[data-theme=dark]{--bg:#080910;--surface:#14151d;--surface-2:#1d182b;--text:#f4f5ff;--muted:#a8abc1;--line:#2a2c39;--primary:#8b5cf6;--primary-2:#c4b5fd;--good:#34d399;--warn:#fbbf24;--shadow:0 18px 60px #00000059;--code-bg:#090a0f;--code-text:#f7f7fb}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans KR,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.app-shell{grid-template-columns:292px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);height:100vh;padding:22px 18px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;margin-bottom:20px;padding:10px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary), #4f46e5);color:#fff;border-radius:14px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.brand b{display:block}.brand small{color:var(--muted)}.nav-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:18px 10px 8px;font-size:12px}.nav-item{color:var(--muted);border-radius:12px;margin:3px 0;padding:11px 12px;display:block}.nav-item:hover{background:var(--surface-2);color:var(--text)}.main{min-width:0}.topbar{z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;gap:20px;height:66px;padding:0 34px;display:flex;position:sticky;top:0}.crumb{color:var(--muted);font-size:13px}.top-progress{background:var(--line);border-radius:999px;width:220px;height:6px;margin-top:9px;overflow:hidden}.top-progress span,.mini-progress span,.review-progress span{background:linear-gradient(90deg, var(--primary), var(--primary-2));border-radius:999px;height:100%;transition:width .25s;display:block}.top-actions{align-items:center;gap:8px;display:flex}.page{max-width:1180px;margin:0 auto;padding:44px 36px 80px}.page.narrow{max-width:980px}.hero{background:radial-gradient(circle at top left, color-mix(in srgb, var(--primary) 26%, transparent), transparent 34%), var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:28px;padding:46px}.eyebrow,.section-label,.cell-kicker{color:var(--primary-2);letter-spacing:.02em;font-size:13px;font-weight:800}h1{letter-spacing:-.06em;margin:12px 0 16px;font-size:clamp(36px,5vw,64px);line-height:1}h2{letter-spacing:-.04em;margin:8px 0 14px;font-size:28px}h3{letter-spacing:-.03em}p{color:var(--muted);line-height:1.72}.hero p{max-width:720px;font-size:18px}.hero-actions{gap:12px;margin-top:24px;display:flex}.primary,.secondary,.ghost{border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px 15px;display:inline-flex}.primary{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:800}.secondary,.ghost{background:var(--surface);color:var(--text)}.ghost.small{padding:8px 11px;font-size:13px}.pill{background:var(--surface-2);color:var(--primary-2);border-radius:999px;padding:7px 10px;font-weight:800}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0;display:grid}.stat-card,.stage-card,.lesson-card,.overview-card,.takeaway-card,.code-cell,.study-panel,.review-card,.timeline-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px}.stat-card{padding:20px}.stat-card span,.stat-card small{color:var(--muted);display:block}.stat-card b{letter-spacing:-.05em;margin:8px 0;font-size:36px;display:block}.section-block{margin-top:34px}.section-head{justify-content:space-between;align-items:end;gap:18px;margin-bottom:16px;display:flex}.stage-grid,.lesson-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stage-card{padding:22px}.stage-card span{color:var(--primary-2);font-weight:900}.stage-card p{margin-bottom:0}.lesson-card{flex-direction:column;gap:12px;padding:22px;transition:transform .18s,border-color .18s;display:flex}.lesson-card:hover{border-color:var(--primary);transform:translateY(-4px)}.card-top,.card-meta,.knowledge-links{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px;display:flex}.card-top em{color:var(--primary-2);font-style:normal;font-weight:800}.card-meta span{background:var(--surface-2);border-radius:999px;padding:5px 8px}.mini-progress{background:var(--line);border-radius:999px;height:7px;margin-top:auto;overflow:hidden}.page-title{margin-bottom:26px}.timeline{gap:18px;display:grid;position:relative}.timeline-row{grid-template-columns:52px 1fr;align-items:start;gap:16px;display:grid}.dot{background:var(--primary);color:#fff;width:42px;height:42px;box-shadow:0 0 0 8px color-mix(in srgb, var(--primary) 14%, transparent);border-radius:50%;place-items:center;font-weight:900;display:grid}.timeline-card{padding:22px}.inline-link{color:var(--primary-2);font-weight:800}.part-hero{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:26px;justify-content:space-between;align-items:start;gap:20px;margin-bottom:24px;padding:30px;display:flex}.part-hero h1{font-size:clamp(34px,4.4vw,56px)}.part-badge{background:var(--surface-2);color:var(--primary-2);border-radius:999px;flex:none;padding:10px 14px;font-weight:900}.two-col{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:22px;display:grid}.overview-card,.takeaway-card{margin-bottom:18px;padding:24px}.flow-row{flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0;display:flex}.flow-row.compact{margin:8px 0 0}.flow-wrap{align-items:center;gap:8px;display:flex}.flow-node{background:var(--surface-2);border:1px solid color-mix(in srgb, var(--primary) 28%, var(--line));color:var(--text);border-radius:14px;padding:11px 13px;font-size:14px;font-weight:800}.arrow{color:var(--primary-2);font-weight:900}.takeaway-card ul{color:var(--muted);margin:10px 0 0;padding-left:20px;line-height:1.8}.sticky{position:sticky;top:88px}.study-panel{padding:20px}.study-panel textarea{resize:vertical;border:1px solid var(--line);background:var(--bg);width:100%;min-height:180px;color:var(--text);border-radius:14px;margin:12px 0;padding:12px;line-height:1.55}.check-row{align-items:center;gap:10px;margin:14px 0;display:flex}.top-gap{margin-top:24px;display:block}.notebook-section{margin-top:22px}.code-cell{margin:20px 0;padding:0;overflow:hidden}.cell-head{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:20px 22px;display:flex}.cell-head h3{margin:4px 0 0}.code{background:var(--code-bg);color:var(--code-text);margin:0;padding:22px;font-size:14px;line-height:1.65;overflow-x:auto}.code code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.tok-key{color:#c084fc;font-weight:800}.tok-string{color:#86efac}.tok-lib{color:#93c5fd}.tok-comment{color:#9ca3af;font-style:italic}.explain-card,.line-table,.tool-grid,.diagram,.output-box{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;margin:14px 18px;padding:18px}.explain-card p{color:var(--text);margin-bottom:0}.line-row{border-top:1px solid var(--line);grid-template-columns:220px 1fr;gap:14px;padding:13px 0;display:grid}.line-row:first-of-type{border-top:0}.line-row code{color:var(--primary-2);overflow-wrap:anywhere;font-weight:800}.line-row p{margin:0}.tool-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.tool-grid .full{grid-column:1/-1}.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.tool-card b,.tool-card span{display:block}.tool-card span{color:var(--primary-2);margin:4px 0}.tool-card p{margin:0}.output-box pre{white-space:pre-wrap;background:var(--code-bg);color:var(--code-text);border-radius:12px;margin:10px 0 0;padding:14px}.review-page{max-width:1040px}.review-progress{background:var(--line);border-radius:999px;height:8px;margin:18px 0;overflow:hidden}.review-card{flex-direction:column;justify-content:center;min-height:280px;padding:34px;display:flex}.review-source{background:var(--surface-2);color:var(--primary-2);border-radius:999px;align-self:flex-start;padding:7px 10px;font-weight:900}.review-card h2{font-size:clamp(24px,3vw,38px)}.answer{color:var(--text);background:var(--surface-2);border-radius:16px;padding:18px}.hint{color:var(--muted)}.review-actions{gap:10px;margin-top:18px;display:flex}.review-list{flex-wrap:wrap;gap:7px;margin-top:18px;display:flex}.review-list button{border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--text);border-radius:10px}.review-list button.active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (width<=980px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}.topbar{padding:0 18px}.stats-grid,.stage-grid,.lesson-grid,.two-col{grid-template-columns:1fr}.sticky{position:static}.line-row,.tool-grid{grid-template-columns:1fr}.page{padding:28px 18px 60px}}.beginner-card,.formula-board,.concept-visual{background:linear-gradient(135deg, var(--surface), var(--surface-2));border:1px solid var(--line);border-radius:24px;margin:18px 0;padding:24px;box-shadow:0 18px 55px #0000001f}.beginner-card h2,.formula-board h2,.concept-visual h2{margin-top:8px}.beginner-grid,.formula-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.beginner-grid div,.formula-mini{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;padding:16px}.beginner-grid b,.formula-mini span{color:var(--primary-2);margin-bottom:8px;font-weight:900;display:block}.beginner-grid p,.formula-mini p{color:var(--muted);margin:0;line-height:1.7}.formula-mini b{letter-spacing:-.02em;color:var(--text);overflow-wrap:anywhere;margin-bottom:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:18px;display:block}.concept-lane,.visual-lane{flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:16px;display:flex}.concept-node,.visual-step{background:radial-gradient(circle at top left, #7c3aed33, transparent 55%), var(--surface-2);border:1px solid var(--line);border-radius:18px;flex:1;min-width:128px;padding:16px;position:relative}.concept-node:after,.visual-step:after{content:"→";color:var(--primary-2);font-weight:900;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.concept-node:last-child:after,.visual-step:last-child:after{display:none}.concept-node span,.visual-step span{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;margin-bottom:12px;font-size:12px;font-weight:900;display:inline-flex}.concept-node b,.visual-step b{font-size:15px;display:block}.formula-card,.beginner-check,.visual-card{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;margin:14px 18px;padding:18px}.formula-card{background:linear-gradient(135deg, #7c3aed24, #0ea5e91a), var(--surface-2)}.formula-main{background:var(--code-bg);color:var(--code-text);overflow-wrap:anywhere;border-radius:14px;margin:10px 0;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(17px,2vw,24px);font-weight:900}.formula-sub{grid-template-columns:180px 1fr;align-items:start;gap:10px;display:grid}.formula-sub b{color:var(--primary-2)}.formula-sub span{color:var(--muted);line-height:1.7}.beginner-check p,.visual-card p{color:var(--text);margin-bottom:0;line-height:1.8}.visual-card h4{margin:8px 0 6px;font-size:18px}@media (width<=980px){.beginner-grid,.formula-grid,.formula-sub{grid-template-columns:1fr}.concept-node:after,.visual-step:after{display:none}}
