.tutorial-modal{grid-template-rows:minmax(0,1fr);grid-template-columns:212px minmax(0,1fr);gap:0;width:min(960px,100%);min-width:0;max-height:calc(100vh - 40px);padding:0;overflow:hidden}.tutorial-toc{border-right:1px solid var(--border);background:var(--bg-2);flex-direction:column;gap:6px;padding:18px 12px;display:flex;overflow-y:auto}.tutorial-toc-header{color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:7px;padding:4px 10px 14px;font-size:11px;font-weight:700;display:flex}.tutorial-toc-item{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:12.5px;line-height:1.35;display:flex}.tutorial-toc-item:hover{background:var(--panel-3);color:var(--text)}.tutorial-toc-item.active{background:var(--accent-soft);color:var(--accent-2);font-weight:600}.tutorial-toc-num{background:var(--panel-3);width:20px;height:20px;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:10px;display:grid}.tutorial-toc-item.active .tutorial-toc-num{background:var(--accent);color:#fff}.tutorial-toc-item.done .tutorial-toc-num{color:var(--ok);background:#34d3992e}.tutorial-main{grid-template-rows:auto minmax(0,1fr) auto;gap:24px;min-width:0;padding:24px;display:grid;overflow:hidden}@media (max-width:680px){.tutorial-modal{grid-template-columns:1fr;width:calc(100vw - 40px);max-height:calc(100dvh - 32px)}.tutorial-toc{display:none}.tutorial-main{padding:18px}}@media (min-width:681px){.tutorial-footer .tutorial-dots{display:none}}.tutorial-kicker{color:var(--accent-2);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;margin:0;font-size:10.5px;font-weight:700;display:flex}.tutorial-modal .modal-header{align-items:flex-start;gap:18px;padding-bottom:2px}.tutorial-count{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:0;margin-left:auto;padding-right:4px;font-size:11px;font-weight:500}.tutorial-modal .modal-header>div{gap:10px;min-width:0;display:grid}.tutorial-modal .modal-header h2{max-width:680px;font-size:19px;font-weight:750;line-height:1.45}@media (max-width:680px){.tutorial-main{gap:22px}.tutorial-modal .modal-header h2{font-size:17px;line-height:1.45}}.tutorial-step{scrollbar-width:thin;align-content:start;gap:16px;min-width:0;padding-right:4px;animation:.26s both tutorial-step-in;display:grid;overflow-y:auto}@keyframes tutorial-step-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tutorial-step p{color:var(--text-soft);margin:0;font-size:14px;line-height:1.75}.tutorial-after{color:var(--text-muted)}.tutorial-list{color:var(--text-soft);gap:10px;margin:0;padding-left:22px;font-size:14px;line-height:1.7;display:grid}.tutorial-list li::marker{color:var(--accent-2);font-weight:600}.tutorial-art{border:1px solid var(--border);background:radial-gradient(90% 120% at 50% 0%, #3b82f612, transparent 60%), var(--bg-2);border-radius:12px;min-width:0;overflow:hidden}.tutorial-art svg{width:100%;height:auto;display:block}.tutorial-routes{border:1px solid var(--border);background:var(--bg-2);border-radius:12px;gap:8px;min-width:0;padding:16px;display:grid}.tutorial-route{font-family:var(--font-mono);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;font-size:12px;line-height:1.45;display:grid}.tutorial-route code{text-overflow:ellipsis;white-space:nowrap;color:var(--text-soft);overflow:hidden}.tutorial-route-arrow{color:var(--accent-2)}.tutorial-route-url{color:var(--ok)}.tutorial-code-row{grid-template-columns:1fr 1fr;gap:12px;min-width:0;display:grid}@media (max-width:560px){.tutorial-code-row{grid-template-columns:1fr}}.tutorial-code{border:1px solid var(--border);background:var(--bg-2);border-radius:12px;min-width:0;margin:0;overflow:hidden}.tutorial-code figcaption{border-bottom:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);align-items:center;gap:8px;padding:9px 14px;font-size:11px;display:flex}.tutorial-code-dots{gap:4px;display:inline-flex}.tutorial-code-dots i{background:var(--panel-3);border-radius:50%;width:7px;height:7px}.tutorial-code pre{color:var(--text-soft);font-family:var(--font-mono);margin:0;padding:14px 16px;font-size:12.5px;line-height:1.75;overflow-x:auto}.tok-fence,.tok-comment{color:#6b7280}.tok-keyword{color:#c4b5fd}.tok-string{color:#86efac}.tok-tag{color:#7dd3fc}.tok-attr{color:#a5b4fc}.tok-expr{color:#fbbf24}.tok-slot{color:var(--ok)}.tutorial-compare{grid-template-columns:1fr 1fr;gap:12px;min-width:0;display:grid}@media (max-width:560px){.tutorial-compare{grid-template-columns:1fr}}.tutorial-compare-card{border:1px solid var(--border);border-radius:12px;align-content:start;gap:8px;min-width:0;padding:16px;display:grid}.tutorial-compare-card p{font-size:13px;line-height:1.65}.tutorial-compare-card.myth{background:#fb71850f;border-color:#fb718540}.tutorial-compare-card.reality{background:#34d39912;border-color:#34d39940}.tutorial-compare-tag{letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;font-weight:700}.tutorial-compare-card.myth .tutorial-compare-tag{color:var(--error)}.tutorial-compare-card.reality .tutorial-compare-tag{color:var(--ok)}.tutorial-action{background:var(--accent-soft);color:var(--accent-2);cursor:pointer;border:1px solid #3b82f659;border-radius:8px;justify-self:start;align-items:center;gap:8px;padding:9px 13px;font-size:12.5px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.tutorial-action:hover{border-color:var(--accent);background:#3b82f640}.tutorial-footer{justify-content:space-between;align-items:center;gap:12px;min-width:0;padding-top:4px;display:flex}.tutorial-dots{gap:6px;display:flex}.tutorial-dot{background:var(--panel-3);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .12s,transform .12s}.tutorial-dot:hover{background:var(--border-strong)}.tutorial-dot.active{background:var(--accent);transform:scale(1.2)}.tutorial-nav{gap:8px;margin-left:auto;display:flex}@media (max-width:680px){.tutorial-footer{flex-direction:column;align-items:stretch;gap:14px}.tutorial-dots{justify-content:center}.tutorial-nav{justify-content:flex-start;width:100%;margin-left:0}}
