@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Unbounded:wght@500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap");.lv2{--accent-h:295;--accent:oklch(0.66 0.21 var(--accent-h));--accent-bright:oklch(0.74 0.19 var(--accent-h));--accent-deep:oklch(0.52 0.2 var(--accent-h));--accent-2:oklch(0.7 0.15 245);--radius:18px;--radius-sm:12px;--radius-lg:26px;--maxw:1500px;--font-ui:"Manrope",system-ui,sans-serif;--font-display:"Unbounded","Manrope",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--sidebar-w:320px;--ease:cubic-bezier(0.22,1,0.36,1);font-family:var(--font-ui);color:var(--text);min-height:100vh;background:radial-gradient(1200px 700px at 78% -8%,var(--bg-grad-a),transparent 60%),var(--bg-grad-b);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.lv2[data-theme=dark]{--bg:oklch(0.145 0.012 288);--bg-grad-a:oklch(0.18 0.03 295);--bg-grad-b:oklch(0.145 0.012 288);--surface:oklch(0.195 0.014 288);--surface-2:oklch(0.235 0.017 288);--surface-3:oklch(0.275 0.02 288);--border:oklch(0.32 0.02 288/0.7);--border-strong:oklch(0.42 0.03 290);--text:oklch(0.97 0.004 286);--text-muted:oklch(0.74 0.012 286);--text-dim:oklch(0.58 0.013 288);--accent-soft:oklch(0.66 0.21 var(--accent-h)/0.14);--accent-line:oklch(0.66 0.21 var(--accent-h)/0.34);--shadow:0 24px 60px -20px rgba(0,0,0,0.65);--shadow-card:0 1px 0 0 oklch(1 0 0/0.04) inset,0 18px 40px -24px rgba(0,0,0,0.8);--kbd-bg:oklch(0.26 0.018 288);color-scheme:dark}.lv2[data-theme=light]{--bg:oklch(0.975 0.005 290);--bg-grad-a:oklch(0.95 0.02 295);--bg-grad-b:oklch(0.975 0.005 290);--surface:oklch(1 0 0);--surface-2:oklch(0.975 0.006 290);--surface-3:oklch(0.955 0.01 290);--border:oklch(0.9 0.01 290);--border-strong:oklch(0.84 0.015 290);--text:oklch(0.24 0.02 288);--text-muted:oklch(0.46 0.02 288);--text-dim:oklch(0.6 0.018 288);--accent:oklch(0.56 0.22 var(--accent-h));--accent-bright:oklch(0.5 0.23 var(--accent-h));--accent-deep:oklch(0.46 0.21 var(--accent-h));--accent-soft:oklch(0.66 0.21 var(--accent-h)/0.1);--accent-line:oklch(0.66 0.21 var(--accent-h)/0.22);--shadow:0 24px 60px -28px rgba(60,40,90,0.28);--shadow-card:0 1px 2px rgba(30,20,60,0.04),0 14px 30px -22px rgba(60,40,90,0.22);--kbd-bg:oklch(0.95 0.01 290);color-scheme:light}.lv2 *,.lv2 :after,.lv2 :before{box-sizing:border-box}.lv2 ::selection{background:var(--accent-soft)}.lv2 ::-webkit-scrollbar{width:11px;height:11px}.lv2 ::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:20px;border:3px solid transparent;background-clip:content-box}.lv2 ::-webkit-scrollbar-track{background:transparent}.lv2 a{color:inherit;text-decoration:none}.lv2 .topbar{position:sticky;top:0;z-index:40;height:64px;gap:16px;padding:0 22px;background:color-mix(in oklch,var(--bg) 78%,transparent);backdrop-filter:blur(18px) saturate(1.3);border-bottom:1px solid var(--border)}.lv2 .brand,.lv2 .topbar{display:flex;align-items:center}.lv2 .brand{gap:11px;font-weight:700;min-width:0}.lv2 .brand-text{min-width:0}.lv2 .brand-mark{width:34px;height:34px;border-radius:10px;flex:none;background:linear-gradient(145deg,var(--accent-bright),var(--accent-deep));display:grid;place-items:center;font-family:var(--font-display);font-weight:700;color:#fff;font-size:17px;box-shadow:0 6px 18px -6px var(--accent)}.lv2 .brand-name{font-family:var(--font-display);font-size:16px;letter-spacing:-.01em}.lv2 .brand-name,.lv2 .brand-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv2 .brand-sub{font-size:11px;color:var(--text-dim);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.lv2 .topbar-spacer{flex:1}.lv2 .top-progress{display:flex;align-items:center;gap:12px;flex:none}.lv2 .top-progress-track{width:132px;height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}.lv2 .top-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-bright))}.lv2 .top-progress-label{font-size:12.5px;color:var(--text-muted);font-weight:600}.lv2 .icon-btn{width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);transition:all .18s var(--ease)}.lv2 .icon-btn:hover{color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.lv2 .menu-btn{display:none}.lv2 .shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);gap:0;max-width:var(--maxw);margin:0 auto}.lv2 .sidebar{position:sticky;top:64px;height:calc(100vh - 64px);border-right:1px solid var(--border);display:flex;flex-direction:column;background:color-mix(in oklch,var(--surface) 35%,transparent)}.lv2 .sidebar-scroll{flex:1;overflow-y:auto;padding:22px 16px 12px}.lv2 .sb-course{display:flex;gap:13px;align-items:center;padding:13px;margin-bottom:6px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.lv2 .sb-course-icon{width:42px;height:42px;border-radius:11px;flex:none;background:var(--accent-soft);border:1px solid var(--accent-line);display:grid;place-items:center;color:var(--accent-bright)}.lv2 .sb-course-title{font-weight:700;font-size:14.5px;letter-spacing:-.01em}.lv2 .sb-course-meta{font-size:12px;color:var(--text-dim);margin-top:2px}.lv2 .sb-section-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);padding:18px 8px 9px}.lv2 .lesson-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;padding:11px 12px;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;color:var(--text-muted);font-family:inherit;font-size:13.5px;transition:all .16s var(--ease);margin-bottom:3px}.lv2 .lesson-item.active,.lv2 .lesson-item:hover{background:var(--surface);color:var(--text)}.lv2 .lesson-item.active{border-color:var(--accent-line);box-shadow:var(--shadow-card)}.lv2 .lesson-num{width:30px;height:30px;border-radius:9px;flex:none;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--surface-2);color:var(--text-dim);font-family:var(--font-mono)}.lv2 .lesson-item.active .lesson-num,.lv2 .lesson-item.done .lesson-num{background:linear-gradient(145deg,var(--accent-bright),var(--accent-deep));color:#fff}.lv2 .lesson-item.done .lesson-num{opacity:.92}.lv2 .lesson-title-sm{line-height:1.32;font-weight:600}.lv2 .lesson-item.active .lesson-title-sm{font-weight:700}.lv2 .lesson-flag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-bright);white-space:nowrap}.lv2 .lesson-check{color:var(--accent-bright);opacity:.9}.lv2 .lesson-dur{font-size:11px;color:var(--text-dim);font-family:var(--font-mono)}.lv2 .sb-contacts{border-top:1px solid var(--border);padding:16px;margin-top:auto;background:color-mix(in oklch,var(--surface) 50%,transparent)}.lv2 .sb-author{display:flex;align-items:center;gap:12px;margin-bottom:12px}.lv2 .sb-avatar{width:44px;height:44px;border-radius:50%;flex:none;background:linear-gradient(145deg,var(--accent-bright),var(--accent-2));display:grid;place-items:center;color:#fff;font-weight:700;font-size:16px;font-family:var(--font-display)}.lv2 .sb-author-name{font-weight:700;font-size:13.5px}.lv2 .sb-author-role{font-size:11.5px;color:var(--text-dim)}.lv2 .contact-row{display:flex;flex-direction:column;gap:7px}.lv2 .contact-link{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;background:var(--surface);border:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--text-muted);transition:all .16s var(--ease)}.lv2 .contact-link:hover{color:var(--text);border-color:var(--accent-line);background:var(--accent-soft);transform:translateX(2px)}.lv2 .contact-link .cl-ic{color:var(--accent-bright);flex:none}.lv2 .contact-link .cl-handle{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.lv2 .main{padding:30px clamp(20px,4vw,64px) 90px;min-width:0}.lv2 .content{max-width:860px;margin:0 auto}.lv2 .breadcrumb{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-dim);font-weight:600;margin-bottom:22px}.lv2 .breadcrumb a:hover{color:var(--accent-bright)}.lv2 .breadcrumb .sep{opacity:.5}.lv2 .lesson-eyebrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.lv2 .chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.lv2 .chip-accent{background:var(--accent-soft);color:var(--accent-bright);border:1px solid var(--accent-line)}.lv2 .chip-ghost{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.lv2 .lesson-title{font-family:var(--font-display);font-weight:600;font-size:clamp(30px,4vw,46px);line-height:1.06;letter-spacing:-.02em;margin:0 0 16px;text-wrap:balance}.lv2 .lesson-lead{font-size:17px;line-height:1.6;color:var(--text-muted);max-width:64ch}.lv2 .lesson-meta-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.lv2 .meta-item{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--text-muted);font-weight:600}.lv2 .meta-item .mi-ic{color:var(--accent-bright)}.lv2 .video-wrap{margin:32px 0}.lv2 .video{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:repeating-linear-gradient(135deg,oklch(.5 .08 290/.05) 0 14px,transparent 14px 28px),linear-gradient(160deg,var(--surface-3),var(--surface));display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}.lv2 .video:after{content:"";position:absolute;inset:0;background:radial-gradient(420px 280px at 50% 42%,var(--accent-soft),transparent 70%);pointer-events:none}.lv2 .video-play{width:78px;height:78px;border-radius:50%;z-index:1;background:color-mix(in oklch,var(--bg) 30%,transparent);backdrop-filter:blur(8px);border:1.5px solid oklch(1 0 0/.4);display:grid;place-items:center;color:#fff;transition:all .2s var(--ease);box-shadow:0 10px 30px -8px rgba(0,0,0,.6)}.lv2 .video:hover .video-play{transform:scale(1.08);background:var(--accent);border-color:transparent}.lv2 .video-tag{position:absolute;top:16px;left:16px;z-index:1;font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:6px 11px;border-radius:9px;background:color-mix(in oklch,var(--bg) 50%,transparent);backdrop-filter:blur(8px);color:var(--text);border:1px solid var(--border);display:flex;align-items:center;gap:7px}.lv2 .video-tag .dot{width:7px;height:7px;border-radius:50%;background:#ff4d4d}.lv2 .video-time{right:16px;font-family:var(--font-mono);font-size:12px;padding:5px 9px;border-radius:8px;background:color-mix(in oklch,var(--bg) 55%,transparent);backdrop-filter:blur(8px);color:var(--text)}.lv2 .video-byline,.lv2 .video-time{position:absolute;bottom:16px;z-index:1}.lv2 .video-byline{left:16px;font-size:12.5px;color:var(--text-muted)}.lv2 .video-embed{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow);background:var(--surface)}.lv2 .video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.lv2 .video-soon{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:linear-gradient(160deg,var(--surface-3),var(--surface));display:grid;place-items:center;color:var(--text-dim);font-size:14px;box-shadow:var(--shadow)}.lv2 .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px 28px;box-shadow:var(--shadow-card)}.lv2 .block,.lv2 .block+.block,.lv2 .card+.card{margin-top:22px}.lv2 .card-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px 12px;margin-bottom:16px}.lv2 .card-head>div:not(.card-ic){min-width:0;flex:1 1 160px;padding-top:1px}.lv2 .card-ic{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-bright);border:1px solid var(--accent-line)}.lv2 .card-title{font-weight:700;font-size:16.5px;letter-spacing:-.01em;line-height:1.3}.lv2 .card-sub{font-size:12.5px;color:var(--text-dim);margin-top:3px;line-height:1.4}.lv2 .prose{font-size:15.5px;line-height:1.68;color:var(--text-muted)}.lv2 .prose strong{color:var(--text);font-weight:700}.lv2 .prose p{margin:0 0 12px}.lv2 .prose p:last-child{margin-bottom:0}.lv2 .prose .inline-link,.lv2 .prose a{color:var(--accent-bright);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent-line)}.lv2 .prose ol,.lv2 .prose ul{margin:0 0 12px;padding-left:22px}.lv2 .prose li{margin:0 0 6px}.lv2 .prose code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);border:1px solid var(--border);padding:1px 6px;border-radius:6px;color:var(--text)}.lv2 .sec-head{display:flex;align-items:center;gap:13px;margin:40px 0 18px}.lv2 .sec-head h2{font-family:var(--font-display);font-weight:500;font-size:21px;letter-spacing:-.01em;margin:0}.lv2 .sec-head .sec-line{flex:1;height:1px;background:var(--border)}.lv2 .sec-num{font-family:var(--font-mono);font-size:12px;color:var(--accent-bright);font-weight:600;padding:4px 9px;border-radius:8px;background:var(--accent-soft);border:1px solid var(--accent-line)}.lv2 .hk-banner{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:13px;color:var(--text-muted);padding:11px 14px;border-radius:12px;background:var(--accent-soft);border:1px solid var(--accent-line)}.lv2 .hk-banner a{color:var(--accent-bright);font-weight:700;text-decoration:underline;text-underline-offset:3px}.lv2 .hk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}.lv2 .hk-item{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:13px;background:var(--surface-2);border:1px solid var(--border);transition:all .16s var(--ease)}.lv2 .hk-item:hover{border-color:var(--accent-line);transform:translateY(-2px);box-shadow:var(--shadow-card)}.lv2 .kbd-group{display:flex;align-items:center;gap:4px;flex:none}.lv2 kbd{font-family:var(--font-mono);font-size:12px;font-weight:600;min-width:26px;height:28px;padding:0 8px;display:inline-grid;place-items:center;background:var(--kbd-bg);border:solid var(--border-strong);border-width:1px 1px 2px;border-radius:7px;color:var(--text)}.lv2 .kbd-plus{color:var(--text-dim);font-size:11px}.lv2 .hk-label{font-size:13.5px;font-weight:600;line-height:1.3}.lv2 .hk-label span{display:block;font-size:11.5px;color:var(--text-dim);font-weight:500;margin-top:1px}.lv2 .steps{display:flex;flex-direction:column;gap:0;margin-top:6px}.lv2 .step{display:flex;gap:15px;padding-bottom:18px;position:relative}.lv2 .step:last-child{padding-bottom:0}.lv2 .step:not(:last-child):before{content:"";position:absolute;left:15px;top:32px;bottom:0;width:2px;background:var(--border)}.lv2 .step-num{width:31px;height:31px;border-radius:50%;flex:none;z-index:1;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--surface-2);border:1.5px solid var(--accent-line);color:var(--accent-bright);font-family:var(--font-mono)}.lv2 .step-body{padding-top:4px}.lv2 .step-title{font-weight:700;font-size:14.5px}.lv2 .step-desc{font-size:13.5px;color:var(--text-muted);margin-top:3px;line-height:1.55}.lv2 .hw{border:1px solid var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 30%),var(--surface);border-radius:var(--radius);padding:26px 28px;box-shadow:var(--shadow-card)}.lv2 .hw-progress{margin-bottom:20px}.lv2 .hw-progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.lv2 .hw-progress-top .lbl{font-size:12.5px;font-weight:700;color:var(--text-muted);letter-spacing:.02em}.lv2 .hw-progress-top .val{font-family:var(--font-mono);font-size:12.5px;color:var(--accent-bright);font-weight:600}.lv2 .hw-bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.lv2 .hw-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent-deep),var(--accent-bright));transition:width .5s var(--ease)}.lv2 .check-list{display:flex;flex-direction:column;gap:9px;margin-top:6px}.lv2 .check{display:flex;align-items:center;gap:13px;cursor:pointer;padding:13px 15px;border-radius:13px;background:var(--surface-2);border:1px solid var(--border);transition:all .16s var(--ease);font-size:14px;color:var(--text)}.lv2 .check:hover{border-color:var(--accent-line)}.lv2 .check-box{width:22px;height:22px;border-radius:7px;flex:none;border:2px solid var(--border-strong);display:grid;place-items:center;color:#fff;transition:all .18s var(--ease)}.lv2 .check.on .check-box{background:var(--accent);border-color:var(--accent)}.lv2 .check.on{color:var(--text-dim)}.lv2 .check.on .check-text{text-decoration:line-through}.lv2 .check-text{font-weight:600}.lv2 .tools-list{display:flex;flex-direction:column;gap:10px}.lv2 .tool-row{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;line-height:1.5}.lv2 .tool-bullet{width:7px;height:7px;border-radius:50%;background:var(--accent-bright);margin-top:8px;flex:none}.lv2 .tool-row b{font-weight:700}.lv2 .inline-link,.lv2 .tool-row a{color:var(--accent-bright);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent-line)}.lv2 .inline-link:hover,.lv2 .tool-row a:hover{text-decoration-color:var(--accent-bright)}.lv2 .callout{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:14px 16px;border-radius:13px;background:var(--surface-2);border:1px dashed var(--border-strong);font-size:13.5px;color:var(--text-muted);line-height:1.55}.lv2 .callout .co-ic{color:var(--accent-bright);flex:none;margin-top:1px}.lv2 .project-card{margin:0 0 4px;border:1px solid var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 45%),var(--surface);border-radius:var(--radius);padding:20px 22px}.lv2 .project-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-bright);display:flex;align-items:center;gap:8px;margin-bottom:9px}.lv2 .project-title{font-weight:700;font-size:16px;margin:0 0 6px}.lv2 .project-desc{font-size:14px;line-height:1.6;color:var(--text-muted);white-space:pre-wrap}.lv2 .costs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:18px}.lv2 .cost-card{padding:17px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.lv2 .cost-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;margin-bottom:12px}.lv2 .cost-ic.free{background:oklch(.72 .16 155/.16);color:oklch(.78 .16 155)}.lv2 .cost-ic.trial{background:oklch(.78 .15 85/.16);color:oklch(.82 .15 85)}.lv2 .cost-ic.paid{background:var(--accent-soft);color:var(--accent-bright)}.lv2 .cost-title{font-weight:700;font-size:14px}.lv2 .cost-desc{font-size:12.5px;color:var(--text-muted);margin-top:5px;line-height:1.5}.lv2 .cost-note{display:flex;align-items:center;gap:9px;margin-top:16px;font-size:13px;color:var(--text-dim)}.lv2 .field-label{font-size:13.5px;font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:6px}.lv2 .field-label .req{color:var(--accent-bright)}.lv2 .textarea{width:100%;min-height:130px;resize:vertical;background:var(--surface-2);border:1px solid var(--border);border-radius:13px;padding:14px 16px;color:var(--text);font-family:inherit;font-size:14.5px;line-height:1.6;transition:border-color .16s var(--ease)}.lv2 .textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.lv2 .textarea:disabled{opacity:.55}.lv2 .char-count{text-align:right;font-size:11.5px;color:var(--text-dim);font-family:var(--font-mono);margin-top:6px}.lv2 .char-count .warn{color:oklch(.82 .15 85)}.lv2 .char-count .over{color:oklch(.7 .2 25)}.lv2 .method-tabs{display:flex;gap:6px;padding:5px;background:var(--surface-2);border:1px solid var(--border);border-radius:13px;margin-bottom:18px}.lv2 .method-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:700;color:var(--text-muted);background:transparent;border:none;font-family:inherit;transition:all .16s var(--ease)}.lv2 .method-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.lv2 .method-tab:not(.active):hover{color:var(--text)}.lv2 .svc-label{font-size:12.5px;color:var(--text-dim);font-weight:600;margin:4px 0 10px}.lv2 .svc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.lv2 .svc-chip{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:8px 12px;border-radius:11px;font-size:13px;font-weight:600;background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);font-family:inherit;transition:all .16s var(--ease)}.lv2 .svc-chip:hover{color:var(--text);border-color:var(--border-strong)}.lv2 .svc-chip.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}.lv2 .svc-chip .svc-dot{width:8px;height:8px;border-radius:3px;flex:none}.lv2 .svc-hint{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:16px;border-radius:14px;margin-bottom:16px;background:var(--surface-2);border:1px solid var(--accent-line)}.lv2 .svc-hint-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border)}.lv2 .svc-hint-name{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:8px}.lv2 .svc-badge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 7px;border-radius:6px;background:var(--accent-soft);color:var(--accent-bright);white-space:nowrap}.lv2 .svc-hint-what{font-size:13px;color:var(--text-muted);margin-top:4px;line-height:1.55}.lv2 .svc-steps{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.lv2 .svc-step{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);padding:6px 10px;border-radius:8px}.lv2 .svc-step b{color:var(--accent-bright);font-family:var(--font-mono)}.lv2 .url-input{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:13px;padding:0 14px;transition:border-color .16s var(--ease)}.lv2 .url-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.lv2 .url-input input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--font-mono);font-size:13.5px;padding:13px 0}.lv2 .url-input input::placeholder{color:var(--text-dim)}.lv2 .url-input .ui-ic{color:var(--text-dim)}.lv2 .att-tabs{display:flex;gap:6px;margin:6px 0 14px;padding:4px;border-radius:13px;background:var(--surface-2);border:1px solid var(--border)}.lv2 .att-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;padding:10px 12px;border-radius:10px;font-size:13.5px;font-weight:650;font-family:inherit;background:transparent;border:1px solid transparent;color:var(--text-muted);transition:all .16s var(--ease)}.lv2 .att-tab:hover{color:var(--text)}.lv2 .att-tab.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}.lv2 .att-done{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;background:var(--surface-2);border:1px solid var(--accent-line)}.lv2 .att-done-ic{width:34px;height:34px;flex:none;border-radius:11px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--accent-bright)}.lv2 .att-done-body{flex:1;min-width:160px}.lv2 .att-done-name{font-size:13.5px;font-weight:650;word-break:break-all}.lv2 .att-done-link{font-size:12.5px;color:var(--accent-bright);text-decoration:underline}.lv2 .dropzone{border:2px dashed var(--border-strong);border-radius:16px;padding:36px 20px;text-align:center;cursor:pointer;background:var(--surface-2);transition:all .18s var(--ease)}.lv2 .dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.lv2 .dropzone-ic{width:56px;height:56px;border-radius:15px;margin:0 auto 14px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--accent-bright)}.lv2 .dropzone-title{font-weight:700;font-size:15px}.lv2 .dropzone-sub{font-size:13px;color:var(--text-dim);margin-top:5px}.lv2 .dropzone-formats{font-size:11.5px;color:var(--text-dim);margin-top:12px;font-family:var(--font-mono)}.lv2 .submit-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;flex-wrap:wrap}.lv2 .submit-note{font-size:12.5px;color:var(--text-dim);display:flex;align-items:center;gap:8px}.lv2 .btn{display:inline-flex;align-items:center;gap:9px;cursor:pointer;padding:12px 22px;border-radius:12px;font-family:inherit;font-weight:700;font-size:14px;border:1px solid transparent;transition:all .16s var(--ease)}.lv2 .btn:disabled{opacity:.55;cursor:default}.lv2 .btn-primary{background:linear-gradient(145deg,var(--accent-bright),var(--accent-deep));color:#fff;box-shadow:0 10px 24px -10px var(--accent)}.lv2 .btn-primary:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px var(--accent)}.lv2 .btn-ghost{background:var(--surface-2);border-color:var(--border);color:var(--text-muted)}.lv2 .btn-ghost:not(:disabled):hover{color:var(--text);border-color:var(--border-strong)}.lv2 .status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:99px;font-size:12.5px;font-weight:700;white-space:nowrap;flex:none}.lv2 .status-pill.review{background:oklch(.78 .15 85/.16);color:oklch(.82 .15 85);border:1px solid oklch(.78 .15 85/.3)}.lv2 .status-pill.accepted{background:oklch(.72 .16 155/.16);color:oklch(.78 .16 155);border:1px solid oklch(.72 .16 155/.3)}.lv2 .status-pill.revision{background:oklch(.7 .2 25/.16);color:oklch(.78 .16 30);border:1px solid oklch(.7 .2 25/.3)}.lv2 .status-pill.rejected{background:oklch(.62 .22 25/.16);color:oklch(.72 .19 25);border:1px solid oklch(.62 .22 25/.35)}.lv2 .status-pill.idle{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.lv2 .notice{margin-bottom:16px;padding:14px 16px;border-radius:13px;font-size:13.5px;line-height:1.55}.lv2 .notice-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.lv2 .notice.revision{background:oklch(.78 .15 85/.1);border:1px solid oklch(.78 .15 85/.3);color:var(--text)}.lv2 .notice.revision .notice-label{color:oklch(.82 .15 85)}.lv2 .notice.accepted{background:oklch(.72 .16 155/.1);border:1px solid oklch(.72 .16 155/.3);color:var(--text)}.lv2 .notice.error{background:oklch(.7 .2 25/.1);border:1px solid oklch(.7 .2 25/.3);color:oklch(.78 .16 30)}.lv2 .notice.rejected{background:oklch(.62 .22 25/.1);border:1px solid oklch(.62 .22 25/.35);color:var(--text)}.lv2 .notice.rejected .notice-label{color:oklch(.72 .19 25)}.lv2 .text-input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:11px 14px;color:var(--text);font-family:inherit;font-size:14px;transition:border-color .16s var(--ease)}.lv2 .text-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.lv2 .history-toggle{font-size:12.5px;color:var(--text-dim);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;background:none;border:none;font-family:inherit;padding:0}.lv2 .history-toggle:hover{color:var(--text-muted)}.lv2 .history-item{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:13px 15px;font-size:13px}.lv2 .history-meta{display:flex;gap:8px;align-items:center;color:var(--text-dim);font-size:12px;margin-bottom:7px}.lv2 .materials-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.lv2 .mat-card{border-radius:var(--radius);padding:20px;position:relative;overflow:hidden;border:1px solid var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),transparent 55%),var(--surface);transition:all .18s var(--ease)}.lv2 .mat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.lv2 .mat-card.green{--accent-soft:oklch(0.72 0.16 155/0.14);--accent-line:oklch(0.72 0.16 155/0.34)}.lv2 .mat-card.amber{--accent-soft:oklch(0.78 0.15 85/0.14);--accent-line:oklch(0.78 0.15 85/0.34)}.lv2 .mat-card-head{display:flex;align-items:center;gap:11px;margin-bottom:7px}.lv2 .mat-ic{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;background:var(--surface);border:1px solid var(--accent-line)}.lv2 .mat-card.violet .mat-ic{color:var(--accent-bright)}.lv2 .mat-card.green .mat-ic{color:oklch(.78 .16 155)}.lv2 .mat-card.amber .mat-ic{color:oklch(.82 .15 85)}.lv2 .mat-card-title{font-weight:700;font-size:15px;line-height:1.25}.lv2 .mat-card-count{font-size:11.5px;color:var(--text-dim);font-family:var(--font-mono)}.lv2 .mat-card-desc{font-size:12.5px;color:var(--text-muted);line-height:1.5;margin:4px 0 14px}.lv2 .mat-links{display:flex;flex-direction:column;gap:3px}.lv2 .mat-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;font-size:13px;font-weight:600;color:var(--text-muted);transition:all .15s var(--ease)}.lv2 .mat-link:hover{background:var(--surface-2);color:var(--text)}.lv2 .mat-link .ml-ic{flex:none;opacity:.85}.lv2 .mat-link .ml-arrow{margin-left:auto;opacity:0;transform:translateX(-4px);transition:all .15s var(--ease)}.lv2 .mat-link:hover .ml-arrow{opacity:.7;transform:translateX(0)}.lv2 .mat-link .ml-tag{margin-left:auto;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;background:var(--surface-2);color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.lv2 .footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:40px}.lv2 .nav-card{display:flex;align-items:center;gap:16px;cursor:pointer;padding:18px 22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);transition:all .18s var(--ease);text-align:left}.lv2 .nav-card:hover{border-color:var(--accent-line);transform:translateY(-2px);box-shadow:var(--shadow-card)}.lv2 .nav-card.next{background:linear-gradient(145deg,var(--accent-bright),var(--accent-deep));border-color:transparent;box-shadow:0 14px 30px -12px var(--accent);flex-direction:row-reverse;text-align:right}.lv2 .nav-card.next *{color:#fff!important}.lv2 .nav-card.next:hover{transform:translateY(-2px);box-shadow:0 20px 40px -12px var(--accent)}.lv2 .nav-card.prev{flex-direction:row}.lv2 .nav-dir{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.lv2 .nav-lesson{font-weight:700;font-size:15px;margin-top:3px;line-height:1.3;letter-spacing:-.01em}.lv2 .nav-arrow{width:44px;height:44px;border-radius:12px;flex:none;display:grid;place-items:center;background:var(--surface-2);color:var(--text-muted)}.lv2 .nav-card.next .nav-arrow{background:rgba(255,255,255,.18)}.lv2 .scrim{display:none}@media (min-width:1081px){.lv2 .sidebar.sidebar-flow{position:static;height:auto}}.lv2 .inline-menu-btn{display:none}@media (max-width:680px){.lv2 .topbar{gap:10px;padding:0 14px}.lv2 .brand-sub,.lv2 .top-progress-label{display:none}.lv2 .top-progress-track{width:56px}}@media (max-width:1080px){.lv2{--sidebar-w:0px}.lv2 .menu-btn{display:grid}.lv2 .inline-menu-btn{display:inline-flex;margin-bottom:16px}.lv2 .shell{grid-template-columns:1fr}.lv2 .sidebar{position:fixed;top:0;left:0;z-index:70;width:320px;max-width:86vw;height:100vh;background:var(--bg);transform:translateX(-104%);visibility:hidden;transition:transform .32s var(--ease),visibility 0s linear .32s;box-shadow:var(--shadow);border-right:1px solid var(--border)}.lv2 .sidebar.open{transform:translateX(0);visibility:visible;transition:transform .32s var(--ease),visibility 0s}.lv2 .scrim{display:block;position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .3s}.lv2 .scrim.show{opacity:1;pointer-events:auto}}@media (max-width:720px){.lv2 .costs-grid,.lv2 .footer-nav,.lv2 .hk-grid,.lv2 .materials-3col{grid-template-columns:1fr}.lv2 .main{padding:22px 16px 70px}.lv2 .card,.lv2 .hw{padding:20px}.lv2 .nav-card.next,.lv2 .nav-card.prev{flex-direction:row;text-align:left}}@keyframes lv2FadeUp{0%{transform:translateY(16px)}to{transform:translateY(0)}}.lv2 .anim{animation:lv2FadeUp .55s var(--ease) both}@media (prefers-reduced-motion:reduce){.lv2 .anim{animation:none}}.lv2 .rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:26px}.lv2 .rec-card{display:flex;flex-direction:column;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);overflow:hidden;transition:all .18s var(--ease)}.lv2 .rec-card:hover{border-color:var(--accent-line);transform:translateY(-3px);box-shadow:var(--shadow-card)}.lv2 .rec-thumb{position:relative;aspect-ratio:16/9;background:var(--surface-3);overflow:hidden}.lv2 .rec-thumb img{width:100%;height:100%;object-fit:cover;display:block}.lv2 .rec-thumb-fallback{width:100%;height:100%;display:grid;place-items:center;color:var(--accent-bright);background:radial-gradient(120% 120% at 30% 0,var(--accent-soft),transparent 60%),var(--surface-3)}.lv2 .rec-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;opacity:0;transition:opacity .18s var(--ease);background:rgba(0,0,0,.28)}.lv2 .rec-card:hover .rec-play{opacity:1}.lv2 .rec-body{padding:15px 16px 17px;display:flex;flex-direction:column;gap:8px;flex:1}.lv2 .rec-group-tag{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent-bright)}.lv2 .rec-card-title{font-weight:700;font-size:15.5px;line-height:1.32;letter-spacing:-.01em;color:var(--text)}.lv2 .rec-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;font-size:13px;color:var(--text-dim);font-weight:600}.lv2 .rec-pill{padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:700}.lv2 .rec-pill.processing{background:oklch(.7 .15 85/.14);color:oklch(.8 .13 85)}.lv2 .rec-pill.failed{background:oklch(.63 .2 25/.14);color:oklch(.72 .18 25)}.lv2 .rec-empty{margin-top:26px;text-align:center;padding:52px 24px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border)}.lv2 .rec-empty-emoji{font-size:42px;margin-bottom:14px}.lv2 .rec-empty h2{font-family:var(--font-display);font-weight:600;font-size:20px;margin:0 0 8px}.lv2 .rec-empty p{color:var(--text-muted);font-size:14px;line-height:1.6;max-width:44ch;margin:0 auto}.lv2.lv2-embed{min-height:0;background:transparent}.lv2 .rec-page{max-width:1120px}.lv2 .rec-detail,.lv2 .rec-page{margin:0 auto;padding:8px 2px 40px}.lv2 .rec-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start;max-width:1180px}.lv2 .rec-main{min-width:0}.lv2 .rec-rail{position:sticky;top:18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);padding:16px 14px}.lv2 .rec-rail-head{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);padding:4px 8px 12px}.lv2 .rec-rail-list{display:flex;flex-direction:column;gap:2px;max-height:70vh;overflow-y:auto}.lv2 .rec-rail-item{display:flex;align-items:baseline;gap:10px;padding:10px;border-radius:11px;transition:background .14s var(--ease)}.lv2 .rec-rail-item:hover{background:var(--surface-2)}.lv2 .rec-rail-item.active{background:var(--accent-soft);border:1px solid var(--accent-line)}.lv2 .rec-rail-num{font-family:var(--font-mono);font-size:12px;color:var(--accent-bright);font-weight:600;flex:none;width:20px;text-align:right}.lv2 .rec-rail-title{font-size:13.5px;font-weight:600;line-height:1.35;color:var(--text-muted)}.lv2 .rec-rail-item.active .rec-rail-title{color:var(--text)}@media (max-width:980px){.lv2 .rec-detail{grid-template-columns:1fr}.lv2 .rec-rail{position:static;order:-1}.lv2 .rec-rail-list{max-height:260px}}@media (max-width:720px){.lv2 .rec-detail,.lv2 .rec-page{padding:4px 0 40px}}.lv2 .lesson-body{margin-top:28px}.lv2 .lesson-body-prose{font-size:16px;line-height:1.7;color:var(--text)}.lv2 .lesson-body-prose h1,.lv2 .lesson-body-prose h2,.lv2 .lesson-body-prose h3,.lv2 .lesson-body-prose h4{color:var(--text);font-weight:800;letter-spacing:-.01em;line-height:1.25;margin:28px 0 10px;text-wrap:balance}.lv2 .lesson-body-prose h1{font-size:24px}.lv2 .lesson-body-prose h2{font-size:21px}.lv2 .lesson-body-prose h3{font-size:17.5px}.lv2 .lesson-body-prose h2:first-child,.lv2 .lesson-body-prose h3:first-child{margin-top:0}.lv2 .lesson-body-prose p{margin:0 0 14px;color:var(--text)}.lv2 .lesson-body-prose ol,.lv2 .lesson-body-prose ul{margin:0 0 14px;padding-left:24px;color:var(--text)}.lv2 .lesson-body-prose blockquote{margin:14px 0;padding:10px 16px;border-left:3px solid var(--accent-bright);background:var(--surface-2);border-radius:0 10px 10px 0;color:var(--text);font-style:normal}.lv2 .lesson-body-prose table{width:100%;border-collapse:collapse;font-size:14.5px}.lv2 .lesson-body-prose td,.lv2 .lesson-body-prose th{vertical-align:top}.lv2 .lesson-body-prose hr{border:0;border-top:1px solid var(--border);margin:24px 0}.lv2 .sc-task{font-size:15.5px;line-height:1.6}.lv2 .sc-task,.lv2 .sc-verdict{margin:0 0 14px;color:var(--text)}.lv2 .sc-verdict{border:1px solid var(--border);border-left-width:4px;border-radius:0 10px 10px 0;background:var(--surface-2);padding:12px 14px;font-size:14.5px;line-height:1.55}.lv2 .sc-verdict p{margin:6px 0 0}.lv2 .sc-verdict-title{font-weight:700}.lv2 .sc-verdict-ok{border-left-color:oklch(.72 .17 150)}.lv2 .sc-verdict-warn{border-left-color:oklch(.8 .16 80)}.lv2 .sc-verdict-bad{border-left-color:oklch(.65 .2 25)}.lv2 .sc-form textarea{width:100%;box-sizing:border-box;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font:inherit;font-size:15px;line-height:1.55;resize:vertical}.lv2 .sc-form textarea:focus-visible{outline:2px solid var(--accent-bright);outline-offset:1px}.lv2 .sc-hint{margin:8px 0 0;font-size:13px;color:var(--text-muted)}.lv2 .sc-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}