.tutorial-list{background:#fff;border:1px solid #e8e8e8;border-radius:14px;overflow:hidden}.tutorial-list-row{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.125rem;text-decoration:none;transition:background .15s ease;min-height:44px;position:relative}.tutorial-list-row:active{background:#f0f0f0}.tutorial-list-row+.tutorial-list-row:before{content:"";position:absolute;top:0;left:1.125rem;right:0;height:1px;background:#f0f0f0}.tutorial-list-row-body{flex:1;min-width:0}.tutorial-list-row-title{font-size:.9375rem;font-weight:600;color:#1a1a1a;line-height:1.4;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutorial-list-row-summary{font-size:.8125rem;color:#8e8e93;line-height:1.4;margin-top:.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutorial-list-row-meta{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.tutorial-list-row-date{font-size:.75rem;color:#aeaeb2;white-space:nowrap}.tutorial-list-row-chevron{font-size:.75rem;color:#c7c7cc;transition:transform .2s ease}.tutorial-list-row:active .tutorial-list-row-chevron{transform:translate(2px)}.tutorial-layout{display:flex;gap:3rem;align-items:flex-start}.tutorial-sidebar{flex:0 0 240px;min-width:0}.tutorial-main{flex:1;min-width:0}.tutorial-nav-sidebar{background:transparent}.tutorial-nav-sidebar-header{padding:0 0 .75rem;font-size:.75rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #f0f0f0;margin-bottom:.5rem}.tutorial-nav-sidebar-body{padding:0}.tutorial-sidebar-list{list-style:none;padding:0;margin:0}.tutorial-sidebar-list li{padding:0}.tutorial-sidebar-link{display:block;padding:.5rem .75rem;color:#555;text-decoration:none;font-size:.8125rem;line-height:1.4;transition:all .15s ease;border-radius:8px;margin-bottom:1px}.tutorial-sidebar-link:hover{color:#1a1a1a;background:#f5f5f7}.tutorial-sidebar-link.active{color:#1a1a1a;font-weight:600;background:#f0f0f0}.tutorial-mobile-nav{width:100%;margin-bottom:1.25rem}.tutorial-mobile-nav-trigger{display:block;width:100%;padding:0;border:none;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}.tutorial-mobile-nav-trigger-inner{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#fff;border:1px solid #e0e0e0;border-radius:12px;transition:border-radius .25s ease}.tutorial-mobile-nav-trigger[aria-expanded=true] .tutorial-mobile-nav-trigger-inner{border-radius:12px 12px 0 0;border-bottom-color:transparent}.tutorial-mobile-nav-trigger:active .tutorial-mobile-nav-trigger-inner{background:#f5f5f5}.tutorial-mobile-nav-label{font-size:.875rem;font-weight:600;color:#1a1a1a;flex:1;text-align:left}.tutorial-mobile-nav-label i{font-size:.875rem;color:#666}.tutorial-mobile-nav-count{font-size:.6875rem;font-weight:500;color:#999;background:#f0f0f0;padding:.125rem .5rem;border-radius:100px;line-height:1.3}.tutorial-mobile-nav-chevron{font-size:.75rem;color:#999;transition:transform .25s ease}.tutorial-mobile-nav-trigger[aria-expanded=true] .tutorial-mobile-nav-chevron{transform:rotate(180deg)}.tutorial-mobile-nav-body{border:1px solid #e0e0e0;border-top:none;border-radius:0 0 12px 12px;overflow:hidden;will-change:height;transition:height .35s cubic-bezier(.4,0,.2,1)}.tutorial-mobile-nav-body.is-open{border-top-color:#e0e0e0}.tutorial-mobile-nav-list{list-style:none;padding:.375rem 0;margin:0}.tutorial-mobile-nav-list li{padding:0}.tutorial-mobile-nav-link{display:flex;align-items:center;gap:.625rem;padding:.5rem 1rem;color:#555;text-decoration:none;font-size:.8125rem;line-height:1.4;transition:all .15s ease;min-height:40px}.tutorial-mobile-nav-link:active{background:#f5f5f5}.tutorial-mobile-nav-link.active{color:#1a1a1a;font-weight:600;background:#f0f0f0}.tutorial-mobile-nav-index{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.625rem;font-weight:500;color:#999;border-radius:4px}.tutorial-mobile-nav-link.active .tutorial-mobile-nav-index{color:#1a1a1a;background:#e0e0e0}@media(min-width:992px){.tutorial-mobile-nav{display:none}}.reading-progress-container{position:sticky;top:0;z-index:100;width:100%;height:3px;background:transparent;margin-bottom:-3px}.reading-progress-bar{height:100%;width:0%;background:#1a1a1a;transition:width .1s linear;border-radius:0 2px 2px 0}.tutorial-article header{margin-bottom:2.5rem}.tutorial-article header h1{font-size:2rem;font-weight:700;color:#1a1a1a;line-height:1.25;letter-spacing:-.025em;margin-bottom:1rem}.tutorial-article-meta{font-size:.8125rem;color:#999;display:flex;align-items:center;gap:.25rem;margin-top:.75rem;flex-wrap:wrap}.tutorial-article-meta .tutorial-category-link{color:#1a1a1a;text-decoration:none;font-weight:500;transition:color .2s}.tutorial-article-meta .tutorial-category-link:hover{color:#666}.tutorial-cover{width:100%;max-height:420px;object-fit:cover;border-radius:16px;margin-bottom:2.5rem;box-shadow:0 4px 24px #00000014}.tutorial-content{font-size:1rem;line-height:1.85;color:#333}.tutorial-content h2{font-size:1.5rem;font-weight:700;color:#1a1a1a;margin-top:3rem;margin-bottom:1rem;letter-spacing:-.015em}.tutorial-content h3{font-size:1.2rem;font-weight:600;color:#1a1a1a;margin-top:2.5rem;margin-bottom:.75rem;letter-spacing:-.01em}.tutorial-content h4{font-size:1.05rem;font-weight:600;color:#1a1a1a;margin-top:2rem;margin-bottom:.5rem}.tutorial-content p{margin-bottom:1.5rem}.tutorial-content>p:first-of-type{font-size:1.05rem;color:#1a1a1a}.tutorial-content ul,.tutorial-content ol{margin-bottom:1.5rem;padding-left:1.5rem}.tutorial-content li{margin-bottom:.4rem}.tutorial-content a{color:#1a1a1a;text-decoration:underline;text-underline-offset:2px;transition:color .2s}.tutorial-content a:hover{color:#666}.tutorial-content pre{background:#f5f5f7;border:1px solid #e8e8e8;border-radius:12px;padding:1.5rem;overflow-x:auto;margin-bottom:1.5rem;font-size:.875rem;line-height:1.7}.tutorial-content code{background:#f5f5f7;padding:.2rem .45rem;border-radius:4px;font-size:.875em;color:#1a1a1a}.tutorial-content pre code{background:none;padding:0;color:inherit}.tutorial-content img{max-width:100%;border-radius:12px;margin:2rem 0;box-shadow:0 2px 12px #0000000f}.tutorial-content blockquote{border-left:3px solid #1a1a1a;padding:1rem 1.5rem;margin:2rem 0;color:#555;background:#fafafa;border-radius:0 8px 8px 0;font-style:normal;font-size:.95rem}.tutorial-content table{width:100%;margin-bottom:1.5rem;border-collapse:collapse;font-size:.875rem}.tutorial-content th,.tutorial-content td{border:1px solid #e0e0e0;padding:.75rem 1rem;text-align:left}.tutorial-content th{background:#fafafa;font-weight:600;color:#1a1a1a}.tutorial-content hr{margin:3rem 0;border:0;height:1px;background:#e8e8e8}.tutorial-footer{margin-top:4rem;padding-top:2rem;border-top:1px solid #e8e8e8}.tutorial-footer-nav{display:flex;justify-content:space-between;gap:1.5rem}.tutorial-footer-link{flex:1;display:flex;flex-direction:column;padding:1.25rem 1.5rem;border:1px solid #e8e8e8;border-radius:12px;text-decoration:none;transition:all .25s ease;max-width:50%}.tutorial-footer-link:hover{border-color:#1a1a1a;background:#fafafa}.tutorial-footer-link.tutorial-footer-next{text-align:right;align-items:flex-end}.tutorial-footer-link.tutorial-footer-prev{text-align:left;align-items:flex-start}.tutorial-footer-link.tutorial-footer-disabled{opacity:.25;cursor:default;pointer-events:none}.tutorial-footer-label{font-size:.75rem;color:#999;font-weight:500;letter-spacing:.02em;text-transform:uppercase;margin-bottom:.35rem}.tutorial-footer-title{font-size:.9rem;font-weight:600;color:#1a1a1a;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tutorial-footer-link:hover .tutorial-footer-title{text-decoration:underline;text-underline-offset:2px}.tutorial-back-to-top{position:fixed;right:2rem;bottom:2rem;width:40px;height:40px;border-radius:50%;background:#1a1a1a;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(12px);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #00000026;z-index:90;pointer-events:none}.tutorial-back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.tutorial-back-to-top:hover{background:#333;transform:translateY(-2px);box-shadow:0 6px 20px #0003}.tutorial-back-to-top:active{transform:translateY(0);box-shadow:0 2px 8px #0000001f}.tutorial-back-to-top i{font-size:1.1rem;line-height:1}.tutorial-category-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}@media(min-width:600px){.tutorial-category-nav{grid-template-columns:repeat(3,1fr)}}@media(min-width:992px){.tutorial-category-nav{grid-template-columns:repeat(4,1fr);gap:1rem}}.tutorial-category-pill{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.125rem;background:#fff;border:1px solid #e8e8e8;border-radius:14px;text-decoration:none;transition:all .25s ease}.tutorial-category-pill:active{transform:scale(.97)}.tutorial-category-pill:hover{border-color:#d0d0d0;background:#fafafa}.tutorial-category-pill-name{font-size:.9375rem;font-weight:600;color:#1a1a1a;line-height:1.3;letter-spacing:-.01em}.tutorial-category-pill-count{font-size:.75rem;font-weight:400;color:#8e8e93;line-height:1.3}@media(min-width:992px){.tutorial-category-pill{padding:1.25rem 1.375rem;border-radius:16px}.tutorial-category-pill-name{font-size:1rem}.tutorial-category-pill-count{font-size:.8125rem}}.tutorial-section{scroll-margin-top:4.5rem}.tutorial-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.tutorial-section-title{font-size:1.125rem;font-weight:700;color:#1a1a1a;letter-spacing:-.01em;line-height:1.3;margin:0}.tutorial-section-desc{font-size:.8125rem;color:#999;margin:.125rem 0 0;line-height:1.4}.tutorial-view-all{font-size:.8125rem;font-weight:500;color:#666;text-decoration:none;white-space:nowrap;padding:.375rem .75rem;border-radius:8px;transition:all .2s ease;flex-shrink:0;display:inline-flex;align-items:center;gap:.25rem;min-height:36px}.tutorial-view-all:hover{color:#1a1a1a;background:#f0f0f0}.tutorial-view-all i{font-size:.75rem;transition:transform .2s ease}.tutorial-view-all:hover i{transform:translate(1px)}.tutorial-section+.tutorial-section{padding-top:1.5rem;border-top:1px solid #eee}@media(max-width:767.98px){.tutorial-category-pill{padding:.4375rem .75rem;font-size:.8125rem}.tutorial-section-header{flex-direction:column;gap:.5rem;margin-bottom:.5rem}.tutorial-section-title{font-size:1rem}.tutorial-view-all{align-self:flex-start;padding:.25rem 0;font-size:.75rem;min-height:32px}.tutorial-view-all:hover{background:transparent}.tutorial-section+.tutorial-section{padding-top:1rem}.tutorial-list-row{padding:.75rem 1rem;min-height:44px}.tutorial-list-row+.tutorial-list-row:before{left:1rem}.tutorial-list-row-title{font-size:.875rem}.tutorial-list-row-summary{font-size:.75rem}}@media(min-width:992px){.tutorial-section-title{font-size:1.25rem}.tutorial-section-desc{font-size:.875rem}.tutorial-section+.tutorial-section{padding-top:2rem}.tutorial-list{border-radius:16px}.tutorial-list-row{padding:1rem 1.25rem}.tutorial-list-row-title{font-size:1rem}}.tutorials-empty{text-align:center;padding:4rem 2rem}.tutorials-empty-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:#fafafa;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #e0e0e0}.tutorials-empty-icon i{font-size:2.25rem;color:#ccc}.tutorials-empty h3{font-weight:700;color:#1a1a1a;margin-bottom:.5rem}.tutorials-empty p{color:#999;margin-bottom:0}@media(max-width:991.98px){.tutorial-layout{flex-direction:column;gap:0}.tutorial-footer-nav{flex-direction:column}.tutorial-footer-link{max-width:100%}.tutorial-footer-link.tutorial-footer-next{text-align:left;align-items:flex-start}.tutorial-back-to-top{right:1rem;bottom:4.5rem;width:36px;height:36px}.reading-progress-container{position:fixed;top:0;z-index:1050}}@media(max-width:768px){.tutorial-card-img img{height:140px}.tutorial-card-body{padding:1.25rem}.tutorial-article header h1{font-size:1.5rem}.tutorial-content{font-size:.9375rem;line-height:1.75}.tutorial-content h2{font-size:1.25rem;margin-top:2.5rem}.tutorial-content h3{font-size:1.1rem;margin-top:2rem}.tutorial-content>p:first-of-type{font-size:1rem}.tutorial-content pre{padding:1rem;font-size:.8125rem}.tutorial-cover{max-height:200px;border-radius:12px}.tutorial-footer{margin-top:3rem}}
