@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--primary-color:#6c9bcf;--primary-light:#aec6f8;--accent-color:#ffd166;--text-color:#333;--bg-color:#f0f4f8;--transition:all .3s ease}*{box-sizing:border-box;margin:0;padding:0}.article-body{color:#fff;background:linear-gradient(rgba(0,0,0,.8),rgba(0,0,0,.8));font-family:Inter,sans-serif;line-height:1.6;overflow-x:hidden}.article-container{max-width:1200px;margin:0 auto;padding:0 20px}.article-header{z-index:1000;width:100%;transition:var(--transition);background:rgba(0,0,0,.8);padding:20px 0;position:fixed;top:0;left:0;height:100px!important}.article-header-content{justify-content:space-between;align-items:center;margin-top:-2rem;display:flex}.article-logo{color:#fff;font-size:1.8rem;font-weight:700;text-decoration:none}.article-logo span{color:var(--primary-light)}.article-nav ul{list-style:none;display:flex}.article-nav ul li{margin-left:30px}.article-nav ul li a{color:#fff;transition:var(--transition);font-weight:500;text-decoration:none;position:relative}.article-nav ul li a:hover{color:var(--primary-light)}.article-nav ul li a:after{content:"";background:var(--primary-light);width:0;height:2px;transition:var(--transition);position:absolute;bottom:-5px;left:0}.article-nav ul li a:hover:after{width:100%}.article-mobile-menu-btn{cursor:pointer;color:#fff;background:0 0;border:none;font-size:1.5rem;display:none}.article-close-menu{display:none}.article-hero{text-align:center;background-color:transparent;background-image:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6)),url(https://images.unsplash.com/photo-1555066931-4365d14bab8c?ixlib=rb-1.2.1&auto=format&fit=crop&w=1950&q=80);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;justify-content:center;align-items:center;min-height:70vh;padding:150px 0 50px;display:flex;position:relative}.article-hero-content{max-width:800px;animation:1s fadeInUp}.article-hero-content h1{margin-bottom:20px;font-size:3rem;font-weight:700;line-height:1.2}.article-meta-large{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;margin-bottom:30px;display:flex}.article-author-info{align-items:center;gap:10px;display:flex}.article-author-avatar{object-fit:cover;border:2px solid var(--primary-light);background:#1e293b;border-radius:50%;width:50px;height:50px}.article-author-details h4{margin-bottom:5px;font-size:1rem}.article-author-details p{color:rgba(255,255,255,.8);font-size:.9rem}.article-date-large{background:rgba(255,255,255,.1);border-radius:20px;padding:8px 15px;font-size:.9rem}.article-category-large{background:var(--primary-light);color:#333;border-radius:20px;padding:8px 15px;font-size:.9rem;font-weight:600}.article-content-section{padding:80px 0}.article-main-container{max-width:800px;margin:0 auto}.article-content{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:50px}.article-text{color:rgba(255,255,255,.9);margin-bottom:30px;font-size:1.1rem;line-height:1.8}.article-text h2{color:#fff;margin:40px 0 20px;font-size:1.8rem}.article-text h3{color:#fff;margin:30px 0 15px;font-size:1.4rem}.article-text p{margin-bottom:20px}.article-text ul,.article-text ol{margin:20px 0;padding-left:30px}.article-text li{margin-bottom:10px}.article-content-block{border-left:4px solid;border-radius:15px;margin:40px 0;padding:25px}.article-block-tip{background:rgba(129,199,132,.1);border-left-color:#81c784}.article-block-warning{background:rgba(255,158,100,.1);border-left-color:#ff9e64}.article-block-info{background:rgba(100,181,246,.1);border-left-color:#64b5f6}.article-block-note{border-left-color:var(--accent-color);background:rgba(255,209,102,.1)}.article-block-header{align-items:center;gap:10px;margin-bottom:15px;display:flex}.article-block-title{font-size:1.2rem;font-weight:600}.article-block-content{line-height:1.6}.article-image{border-radius:10px;width:100%;margin:30px 0}.article-image-caption{text-align:center;color:rgba(255,255,255,.7);margin-top:10px;font-size:.9rem;font-style:italic}.article-block-quote{border-left:4px solid var(--primary-light);color:rgba(255,255,255,.8);margin:30px 0;padding-left:20px;font-style:italic}.article-navigation{border-top:1px solid rgba(255,255,255,.1);justify-content:space-between;margin-top:50px;padding-top:30px;display:flex}.article-nav-article{color:#fff;transition:var(--transition);background:rgba(255,255,255,.05);border-radius:10px;align-items:center;gap:10px;max-width:45%;padding:15px 20px;text-decoration:none;display:flex}.article-nav-article:hover{background:rgba(255,255,255,.1)}.article-nav-article .article-nav-direction{color:rgba(255,255,255,.7);font-size:.9rem}.article-nav-article .article-nav-title{font-weight:600}.article-share-section{text-align:center;margin:40px 0}.article-share-title{margin-bottom:20px;font-size:1.2rem}.article-share-buttons{flex-wrap:wrap;justify-content:center;gap:15px;display:flex}.article-share-btn{color:#fff;transition:var(--transition);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:30px;align-items:center;gap:8px;padding:10px 20px;text-decoration:none;display:flex}.article-share-btn:hover{background:rgba(255,255,255,.2)}.article-footer{background:rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.1);padding:50px 0 20px}.article-footer-content{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:40px;margin-bottom:40px;display:grid}.article-footer-column h3{margin-bottom:20px;font-size:1.3rem}.article-footer-column ul{list-style:none}.article-footer-column ul li{margin-bottom:10px}.article-footer-column ul li a{color:rgba(255,255,255,.8);transition:var(--transition);text-decoration:none}.article-footer-column ul li a:hover{color:var(--primary-light)}.article-copyright{text-align:center;color:rgba(255,255,255,.8);border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:.9rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.article-fade-in{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(30px)}.article-fade-in.visible{opacity:1;transform:translateY(0)}@media (max-width:768px){.article-mobile-menu-btn{display:block}.article-nav{width:70%;height:100vh;transition:var(--transition);z-index:1001;background:rgba(0,0,0,.9);border-left:1px solid rgba(255,255,255,.1);padding:80px 30px 30px;position:fixed;top:0;right:-100%}.article-nav.active{right:0}.article-nav ul{flex-direction:column}.article-nav ul li{margin:0 0 20px}.article-close-menu{color:#fff;cursor:pointer;background:0 0;border:none;font-size:1.5rem;position:absolute;top:20px;right:20px;display:block!important}.article-hero-content h1{font-size:2rem}.article-meta-large{flex-direction:column;gap:15px}.article-content{padding:30px 20px}.article-navigation{flex-direction:column;gap:20px}.article-nav-article{max-width:100%}}@media (max-width:576px){.article-hero-content h1{font-size:1.8rem}.article-share-buttons{flex-direction:column;align-items:center}.article-share-btn{justify-content:center;width:200px}}.article-content-renderer{width:100%}.article-paragraph{margin-bottom:1.5rem;line-height:1.8}.article-heading{color:#fff;margin:2.5rem 0 1.5rem}.article-heading h2{font-size:1.8rem}.article-heading h3{font-size:1.5rem}.article-list{margin:1.5rem 0;padding-left:2rem}.article-list-item{margin-bottom:.75rem;line-height:1.6}.article-image-figure{margin:2rem 0}.article-external-link{color:var(--primary-light);transition:var(--transition);font-weight:600;text-decoration:none}.article-external-link:hover{color:var(--accent-color)}.article-code-block{margin:2rem 0;position:relative}.article-code{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:1.5rem;font-family:Courier New,monospace;font-size:.9rem;line-height:1.5;overflow-x:auto}.article-code-language{color:rgba(255,255,255,.7);background:rgba(255,255,255,.1);border-radius:4px;padding:.25rem .5rem;font-size:.8rem;position:absolute;top:.5rem;right:.5rem}.article-h2{color:#fff;border-bottom:2px solid rgba(174,198,251,.2);margin:2.5rem 0 1rem;padding-bottom:.5rem;font-size:1.8rem}.article-h3{color:var(--primary-light);margin:2rem 0 .75rem;font-size:1.4rem}.article-h4{color:rgba(255,255,255,.9);margin:1.5rem 0 .5rem;font-size:1.1rem}.article-paragraph{color:rgba(255,255,255,.88);margin-bottom:1.4rem;line-height:1.85}.article-paragraph strong{color:#fff}.article-paragraph a{color:var(--primary-light);text-decoration:underline}.tuto-img-normal{margin:2rem 0}.tuto-img-wide{margin:2rem -60px}.tuto-img-float-left{float:left;width:45%;margin:.5rem 2rem 1rem 0}.tuto-img-float-right{float:right;width:45%;margin:.5rem 0 1rem 2rem}.tuto-img-float-left:after,.tuto-img-float-right:after{content:"";clear:both;display:table}.tuto-img-normal .article-image,.tuto-img-wide .article-image,.tuto-img-float-left .article-image,.tuto-img-float-right .article-image{border-radius:10px;width:100%;display:block}.tuto-image-grid{gap:12px;margin:2rem 0;display:grid}.tuto-image-grid-2{grid-template-columns:repeat(2,1fr)}.tuto-image-grid-3{grid-template-columns:repeat(3,1fr)}.tuto-image-grid-item{border-radius:10px;position:relative;overflow:hidden}.tuto-image-grid-item img{object-fit:cover;width:100%;height:200px;transition:transform .3s;display:block}.tuto-image-grid-item:hover img{transform:scale(1.04)}.tuto-image-grid-item figcaption{color:rgba(255,255,255,.6);text-align:center;padding:6px 4px 2px;font-size:.8rem}.tuto-span-2{grid-column:span 2}.tuto-span-2 img{height:280px}.tuto-image-compare{grid-template-columns:1fr 1fr;gap:12px;margin:2rem 0;display:grid}.tuto-image-compare-side{border-radius:10px;position:relative;overflow:hidden}.tuto-image-compare-side img{border-radius:10px;width:100%;display:block}.tuto-image-compare-side figcaption{color:rgba(255,255,255,.6);text-align:center;padding:6px 0 0;font-size:.8rem}.tuto-compare-label{z-index:2;border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:700;position:absolute;top:10px;left:10px}.label-before{color:#fff;background:rgba(255,80,80,.85)}.label-after{color:#fff;background:rgba(37,211,102,.85)}.tuto-block{border-left:4px solid;border-radius:12px;margin:1.8rem 0;padding:18px 22px}.tuto-block-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.tuto-block-icon{font-size:1.2rem}.tuto-block-title{font-size:1rem;font-weight:700}.tuto-block-body{font-size:.97rem;line-height:1.7}.tuto-block-body a{color:inherit;text-decoration:underline}.tuto-block-tip{background:rgba(129,199,132,.1);border-color:#81c784}.tuto-block-tip .tuto-block-title{color:#a5d6a7}.tuto-block-warning{background:rgba(255,183,77,.1);border-color:#ffb74d}.tuto-block-warning .tuto-block-title{color:#ffd180}.tuto-block-info{background:rgba(100,181,246,.1);border-color:#64b5f6}.tuto-block-info .tuto-block-title{color:#90caf9}.tuto-block-note{border-color:var(--accent-color);background:rgba(255,209,102,.1)}.tuto-block-note .tuto-block-title{color:var(--accent-color)}.tuto-block-danger{background:rgba(239,83,80,.1);border-color:#ef5350}.tuto-block-danger .tuto-block-title{color:#ef9a9a}.tuto-block-success{background:rgba(38,166,154,.1);border-color:#26a69a}.tuto-block-success .tuto-block-title{color:#80cbc4}.tuto-block-pro{background:rgba(171,71,188,.1);border-color:#ab47bc}.tuto-block-pro .tuto-block-title{color:#ce93d8}.tuto-steps{flex-direction:column;gap:0;margin:2rem 0;list-style:none;display:flex}.tuto-step{align-items:flex-start;gap:20px;padding-bottom:2rem;display:flex;position:relative}.tuto-step:not(:last-child):before{content:"";background:rgba(174,198,251,.2);width:2px;position:absolute;top:44px;bottom:0;left:19px}.tuto-step-number{background:var(--primary-color);color:#fff;z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:800;display:flex;box-shadow:0 0 0 4px rgba(108,155,207,.15)}.tuto-step-body{flex:1;padding-top:6px}.tuto-step-title{color:#fff;margin-bottom:8px;font-size:1.1rem;font-weight:700}.tuto-step-text{color:rgba(255,255,255,.85);margin-bottom:12px;line-height:1.7}.tuto-step-image{margin-top:12px}.tuto-step-image img{border-radius:8px;width:100%}.tuto-step-image figcaption{color:rgba(255,255,255,.55);text-align:center;margin-top:6px;font-size:.82rem}.tuto-code-block{background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.1);border-radius:12px;margin:1.5rem 0;overflow:hidden}.tuto-code-header{background:rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.08);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.tuto-code-header-left{align-items:center;gap:10px;display:flex}.tuto-code-filename{color:rgba(255,255,255,.7);font-family:Courier New,monospace;font-size:.85rem}.tuto-code-lang{color:var(--primary-light);background:rgba(174,198,251,.15);border-radius:20px;padding:2px 10px;font-size:.75rem;font-weight:600}.tuto-code-copy{color:rgba(255,255,255,.7);cursor:pointer;white-space:nowrap;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 14px;font-size:.8rem;transition:all .2s}.tuto-code-copy:hover{color:#fff;background:rgba(255,255,255,.15)}.tuto-code{color:#e2e8f0;margin:0;padding:1.25rem 1.5rem;font-family:Courier New,monospace;font-size:.88rem;line-height:1.65;overflow-x:auto}.tuto-table-wrapper{border-radius:10px;margin:2rem 0;overflow-x:auto}.tuto-table{border-collapse:collapse;width:100%;font-size:.95rem}.tuto-table th{color:#fff;text-align:left;background:rgba(108,155,207,.2);border-bottom:2px solid rgba(174,198,251,.3);padding:12px 16px;font-weight:700}.tuto-table td{color:rgba(255,255,255,.85);border-bottom:1px solid rgba(255,255,255,.07);padding:11px 16px}.tuto-table tr:hover td{background:rgba(255,255,255,.04)}.tuto-table tr:last-child td{border-bottom:none}.tuto-divider{align-items:center;gap:16px;margin:2.5rem 0;display:flex}.tuto-divider:before,.tuto-divider:after{content:"";background:rgba(255,255,255,.1);flex:1;height:1px}.tuto-divider-label{color:rgba(255,255,255,.4);white-space:nowrap;text-transform:uppercase;letter-spacing:1px;font-size:.85rem}.tuto-badge-row{flex-wrap:wrap;gap:8px;margin:1.2rem 0;display:flex}.tuto-badge{border-radius:20px;padding:4px 14px;font-size:.8rem;font-weight:600}.tuto-badge-blue{color:#90caf9;background:rgba(100,181,246,.15);border:1px solid rgba(100,181,246,.3)}.tuto-badge-green{color:#a5d6a7;background:rgba(129,199,132,.15);border:1px solid rgba(129,199,132,.3)}.tuto-badge-yellow{color:var(--accent-color);background:rgba(255,209,102,.15);border:1px solid rgba(255,209,102,.3)}.tuto-badge-red{color:#ef9a9a;background:rgba(239,83,80,.15);border:1px solid rgba(239,83,80,.3)}.tuto-badge-purple{color:#ce93d8;background:rgba(171,71,188,.15);border:1px solid rgba(171,71,188,.3)}.tuto-badge-gray{color:rgba(255,255,255,.6);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15)}.tuto-checklist{flex-direction:column;gap:10px;margin:1.5rem 0;list-style:none;display:flex}.tuto-check-item{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 14px;line-height:1.5;display:flex}.tuto-check-item.done{opacity:.65;text-decoration:line-through}.tuto-check-icon{flex-shrink:0;margin-top:1px;font-size:1rem}.tuto-video-wrapper{border-radius:12px;height:0;margin:2rem 0;padding-bottom:56.25%;position:relative;overflow:hidden}.tuto-video{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.article-block-quote{border-left:4px solid var(--primary-light);color:rgba(255,255,255,.85);background:rgba(174,198,251,.06);border-radius:0 10px 10px 0;margin:2rem 0;padding:20px 24px;font-style:italic}.article-block-quote cite{color:rgba(255,255,255,.5);margin-top:10px;font-size:.88rem;font-style:normal;display:block}@media (max-width:768px){.tuto-img-wide{margin:2rem 0}.tuto-img-float-left,.tuto-img-float-right{float:none;width:100%;margin:1.5rem 0}.tuto-image-grid-2,.tuto-image-grid-3{grid-template-columns:1fr}.tuto-span-2{grid-column:span 1}.tuto-image-compare{grid-template-columns:1fr}.tuto-step-number{width:34px;height:34px;font-size:.9rem}.tuto-step:not(:last-child):before{left:16px}}
