:root{--bg: #ffffff;--surface: #f8fafc;--surface2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--text-muted: #64748b;--accent1: #2563eb;--accent2: #7c3aed;--accent3: #059669;--highlight: #d97706;--code-bg: #f8fafc;--good: #059669;--bad: #dc2626}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,PingFang SC,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;scroll-behavior:smooth}nav{position:fixed;top:0;width:100%;z-index:100;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 2rem}nav .inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1.5rem;height:56px;overflow-x:auto}nav .brand{font-weight:700;font-size:1rem;color:var(--accent1);white-space:nowrap;text-decoration:none;margin-right:.5rem}nav a{color:var(--text-muted);text-decoration:none;font-size:.85rem;white-space:nowrap;transition:color .2s;padding:4px 0;border-bottom:2px solid transparent}nav a:hover{color:var(--text)}nav a.active{color:var(--text);border-bottom-color:var(--accent1)}nav a.c1{color:var(--accent1)}nav a.c2{color:var(--accent2)}nav a.c3{color:var(--accent3)}nav a.ch{color:var(--highlight)}nav a.c1.active{border-bottom-color:var(--accent1)}nav a.c2.active{border-bottom-color:var(--accent2)}nav a.c3.active{border-bottom-color:var(--accent3)}nav a.ch.active{border-bottom-color:var(--highlight)}.container{max-width:960px;margin:0 auto;padding:80px 1.5rem 2rem}.hero{text-align:center;padding:3rem 0 2rem}.hero h1{font-size:2.4rem;font-weight:800;background:linear-gradient(135deg,#2563eb,#7c3aed,#059669);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.75rem}.hero .subtitle{color:var(--text-muted);font-size:1.1rem}.hero .note{color:var(--text-muted);font-size:.85rem;margin-top:.5rem}.hero .method{color:var(--text-muted);font-size:.82rem;margin-top:.4rem}.hero .method strong{color:var(--highlight)}.roadmap{margin:2rem 0}.roadmap h2{font-size:1.2rem;margin-bottom:1rem}.roadmap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.roadmap-card{background:#fff;border-radius:12px;padding:1.5rem;border-top:3px solid var(--border);transition:transform .2s,box-shadow .2s;text-decoration:none;color:inherit;display:block;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a}.roadmap-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #00000014}.roadmap-card.d1{border-color:var(--accent1)}.roadmap-card.d2{border-color:var(--accent2)}.roadmap-card.d3{border-color:var(--accent3)}.roadmap-card .day-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}.roadmap-card.d1 .day-label{color:var(--accent1)}.roadmap-card.d2 .day-label{color:var(--accent2)}.roadmap-card.d3 .day-label{color:var(--accent3)}.roadmap-card h3{font-size:1.05rem;margin-bottom:.4rem}.roadmap-card .card-desc{font-size:.85rem;color:var(--text-muted)}.roadmap-card .keywords{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.roadmap-card .keywords span{background:#f1f5f9;padding:2px 10px;border-radius:999px;font-size:.8rem;color:#475569}.concept-index{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1rem 0 2rem}.ci-item{background:#fff;border-radius:8px;padding:1rem;text-align:center;text-decoration:none;color:inherit;border:1px solid #e2e8f0;transition:all .2s;cursor:pointer;box-shadow:0 1px 3px #00000008}.ci-item:hover{border-color:var(--accent1);transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.ci-item .ci-num{font-size:.7rem;font-weight:700;color:#94a3b8;display:block}.ci-item .name{font-size:1rem;font-weight:700;margin:.25rem 0}.ci-item .desc{font-size:.75rem;color:var(--text-muted);line-height:1.4}.page-header{padding:2rem 0 1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.page-header h1{font-size:1.8rem;font-weight:800;margin-bottom:.5rem}.page-header .subtitle{color:var(--text-muted);font-style:italic;padding-left:.5rem;border-left:3px solid var(--border)}.day-badge{display:inline-block;padding:4px 14px;border-radius:999px;font-size:.8rem;font-weight:700;margin-bottom:.75rem}.concept{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000a}.concept h3{font-size:1.3rem;margin-bottom:1.2rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}a.concept:hover{transform:translateY(-4px)}a.concept h3{display:block}.concept h3 .tag,.tag{font-size:.7rem;padding:2px 8px;border-radius:4px;font-weight:600}.concept h4{font-size:.85rem;font-weight:700;color:var(--highlight);margin:1.5rem 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.concept ul{padding-left:1.2rem;margin-bottom:.5rem}.concept li{margin-bottom:.35rem}.concept p{margin-bottom:.5rem}.sub-concept{background:#f1f5f9;border-radius:8px;padding:1rem 1.2rem;margin:.75rem 0}.sub-concept h5{font-size:.9rem;margin-bottom:.4rem}pre{background:#f8fafc;border-radius:8px;padding:1rem 1.2rem;overflow-x:auto;font-size:.82rem;line-height:1.6;margin:.75rem 0;border:1px solid #e2e8f0}code{font-family:Fira Code,JetBrains Mono,Cascadia Code,Consolas,monospace;font-size:.85em}:not(pre)>code{background:#f1f5f9;padding:1px 6px;border-radius:4px;color:#be185d}.flow{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1.5rem;margin:1rem 0;font-family:Fira Code,JetBrains Mono,Consolas,monospace;font-size:.82rem;line-height:1.8;white-space:pre;overflow-x:auto;color:#334155}.example-box{border-left:3px solid;padding:.75rem 1rem;margin:.75rem 0;border-radius:0 8px 8px 0;background:#f8fafc;font-size:.9rem}.example-box.good{border-color:var(--good)}.example-box.bad{border-color:var(--bad)}.example-box .label{font-size:.75rem;font-weight:700;margin-bottom:.25rem}.example-box.good .label{color:var(--good)}.example-box.bad .label{color:var(--bad)}table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:.85rem}th{text-align:left;padding:.5rem .75rem;background:#f1f5f9;font-weight:600;font-size:.8rem;color:#475569}td{padding:.5rem .75rem;border-top:1px solid var(--border)}tr:hover td{background:#f8fafc}.schedule{margin:1.5rem 0}.schedule-item{display:grid;grid-template-columns:130px 50px 1fr;gap:.5rem;padding:.5rem 0;border-bottom:1px solid rgba(71,85,105,.4);font-size:.85rem;align-items:center}.schedule-item .time{color:var(--text-muted);font-family:monospace;font-size:.8rem}.schedule-item .type{font-size:.7rem;padding:1px 6px;border-radius:4px;text-align:center}.type-lecture{background:#eff6ff;color:var(--accent1)}.type-lab{background:#f5f3ff;color:var(--accent2)}.type-discuss{background:#ecfdf5;color:var(--accent3)}.type-break{background:#f8fafc;color:#94a3b8}.page-nav{display:flex;justify-content:space-between;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}.page-nav a{color:var(--text-muted);text-decoration:none;font-size:.9rem;transition:color .2s}.page-nav a:hover{color:var(--text)}.btn{display:inline-block;padding:.6rem 1.5rem;background:var(--accent1);color:#fff;border-radius:8px;text-decoration:none;font-size:.9rem;font-weight:600;transition:all .2s;border:1px solid var(--accent1)}.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}footer{max-width:960px;margin:0 auto;text-align:center;padding:2rem 1.5rem;color:var(--text-muted);font-size:.8rem;border-top:1px solid var(--border)}footer a{color:var(--text-muted);text-decoration:none;margin:0 .5rem}footer a:hover{color:var(--text)}figure{margin:1rem 0;text-align:center}figure img{max-width:100%;border-radius:8px;border:1px solid var(--surface2)}figure.half img{max-width:60%}figcaption{font-size:.75rem;color:var(--text-muted);margin-top:.5rem;font-style:italic}figcaption a{color:var(--accent1)}.glossary{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .75rem;margin:.75rem 0;font-size:.82rem}.glossary dt{font-weight:700;color:#0f172a;text-align:right;padding-right:.5rem;border-right:2px solid #e2e8f0}.glossary dd{color:var(--text-muted)}@media(max-width:768px){.glossary{grid-template-columns:1fr}.glossary dt{text-align:left;border-right:none;border-bottom:1px solid var(--surface2);padding-bottom:.2rem}}@media(max-width:768px){.roadmap-grid{grid-template-columns:1fr}.concept-index{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:1.6rem}.page-header h1{font-size:1.4rem}.schedule-item{grid-template-columns:100px 45px 1fr}nav .inner{gap:1rem}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f8fafc}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
