*{margin:0;padding:0;box-sizing:border-box}:root{--primary:#6366f1;--primary-dark:#4f46e5;--secondary:#ec4899;--success:#10b981;--warning:#f59e0b;--bg-dark:#0f172a;--bg-light:#f8fafc;--text-dark:#1e293b;--text-light:#64748b;--border:#e2e8f0;--shadow:rgba(0,0,0,.1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#fff;color:var(--text-dark);line-height:1.6}.app{min-height:100vh}.header{background:#fff;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;padding:1rem 2rem;justify-content:space-between}.header-content,.logo{display:flex;align-items:center}.logo{gap:.5rem;text-decoration:none;font-weight:700;font-size:1.2em}.logo-icon{font-size:1.5em}.logo-text{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav{display:flex;gap:2rem}.nav a{color:var(--text-dark);text-decoration:none;font-weight:500;transition:color .2s}.nav a:hover{color:var(--primary)}.hero{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:5rem 2rem;text-align:center}.hero-content{max-width:800px;margin:0 auto}.badge{display:inline-block;background:hsla(0,0%,100%,.2);padding:.5rem 1rem;border-radius:50px;font-size:.9em;margin-bottom:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-title{font-size:3em;font-weight:700;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.hero-subtitle{font-size:1.3em;opacity:.95;margin-bottom:2rem}.hero-cta{display:flex;gap:1rem;justify-content:center;margin-bottom:3rem}.btn-primary,.btn-secondary{display:inline-block}.btn-primary{background:#fff;color:var(--primary)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.btn-secondary{background:hsla(0,0%,100%,.1);color:#fff;border:2px solid #fff}.btn-secondary:hover{background:#fff;color:var(--primary)}.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:2rem;gap:2rem}.stat{text-align:center}.stat-number{font-size:2.5em;font-weight:700;margin-bottom:.5rem}.stat-label{font-size:.9em;opacity:.9}.section{padding:4rem 2rem;max-width:1200px;margin:0 auto}.section-light{background:var(--bg-light)}.section-header{text-align:center;margin-bottom:3rem}.section-header h2{font-size:2.2em;color:var(--text-dark);margin-bottom:.5rem}.section-header p{color:var(--text-light);font-size:1.1em}.roadmap{display:grid;grid-gap:1.5rem;gap:1.5rem}.roadmap-item{display:flex;align-items:center;gap:1.5rem;background:#fff;padding:1.5rem;border-radius:12px;border:1px solid var(--border);transition:all .3s}.roadmap-item:hover{border-color:var(--primary);box-shadow:0 4px 12px rgba(99,102,241,.1)}.roadmap-number{width:50px;height:50px;background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5em;font-weight:700;flex-shrink:0}.roadmap-content{flex:1 1}.roadmap-content h3{color:var(--text-dark);margin-bottom:.5rem}.roadmap-content p{color:var(--text-light);margin-bottom:.5rem}.roadmap-meta{display:flex;gap:1rem}.roadmap-meta .level,.roadmap-meta .time{font-size:.85em;padding:.25rem .75rem;border-radius:12px}.roadmap-meta .time{background:#dbeafe;color:#1e40af}.roadmap-meta .level{background:#fef3c7;color:#92400e}.roadmap-arrow{font-size:2em;color:var(--primary);text-decoration:none}.tech-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem}.tech-card{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid var(--border);transition:all .3s}.tech-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px rgba(0,0,0,.1)}.tech-card.featured{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;border:none}.tech-icon{font-size:2.5em}.tech-icon,.tech-info h3{margin-bottom:.5rem}.tech-info p{color:var(--text-light);font-size:.9em;margin-bottom:1rem}.tech-tags{display:flex;gap:.5rem;flex-wrap:wrap}.tag{font-size:.75em;padding:.25rem .75rem;background:var(--bg-light);border-radius:12px;color:var(--text-light)}.tech-card.featured .tag{background:hsla(0,0%,100%,.2);color:#fff}.learning-outcomes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem}.outcome-card{background:#fff;padding:2rem;border-radius:12px;border:1px solid var(--border);text-align:center}.outcome-icon{font-size:3em;margin-bottom:1rem}.outcome-card h3{color:var(--text-dark);margin-bottom:.5rem}.outcome-card p{color:var(--text-light);font-size:.9em}.project-showcase{background:#fff;padding:2rem;border-radius:16px;border:1px solid var(--border)}.project-preview{margin-bottom:2rem}.preview-mockup{background:var(--bg-light);border-radius:12px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.1)}.mockup-header{background:#e2e8f0;padding:.75rem 1rem;display:flex;align-items:center}.mockup-dots{display:flex;gap:.5rem}.mockup-dots span{width:12px;height:12px;background:#cbd5e1;border-radius:50%}.mockup-content{padding:1.5rem}.mockup-title{font-size:1.2em;font-weight:700;margin-bottom:1rem;color:var(--text-dark)}.mockup-cards{display:flex;gap:1rem}.mockup-card{background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);font-size:.9em}.project-info h3{color:var(--text-dark);margin-bottom:.5rem}.project-info p{color:var(--text-light);margin-bottom:1rem}.project-features{list-style:none;margin-bottom:1.5rem}.project-features li{padding:.5rem 0;color:var(--text-dark)}.project-links{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.btn-link{color:var(--primary);text-decoration:none;font-weight:700}.project-tech{color:var(--text-light);font-size:.9em}.comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem}.compare-box{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid var(--border)}.compare-box h3{color:var(--text-dark);margin-bottom:.5rem}.compare-box p{color:var(--text-light);font-size:.9em}.cta-section{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;text-align:center;border-radius:16px}.cta-content h2{font-size:2.5em;margin-bottom:1rem}.cta-content p{font-size:1.2em;margin-bottom:2rem;opacity:.9}.btn-cta{display:inline-block;background:#fff;color:var(--primary);padding:1.25rem 3rem;border-radius:50px;text-decoration:none;font-weight:700;font-size:1.1em;transition:all .3s}.btn-cta:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.2)}.footer{background:var(--bg-dark);color:#fff;padding:3rem 2rem 2rem}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:2rem;gap:2rem;margin-bottom:2rem}.footer-section h4{margin-bottom:1rem}.footer-section a,.footer-section p{color:hsla(0,0%,100%,.8);text-decoration:none;display:block;margin-bottom:.5rem}.footer-section a:hover{color:#fff}.footer-bottom{text-align:center;padding-top:2rem;border-top:1px solid hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.6)}@media (max-width:768px){.hero-title{font-size:2em}.hero-cta{flex-direction:column}.nav{display:none}.roadmap-item{flex-direction:column;text-align:center}.roadmap-arrow{transform:rotate(90deg)}}.tutorial-page{min-height:100vh;padding:2rem 0}.breadcrumb{max-width:1200px;margin:0 auto;padding:1rem 2rem}.back-link{display:inline-block;color:var(--primary);text-decoration:none;font-weight:700;margin-bottom:1rem}.tutorial-header{background:#fff;padding:2rem;border-radius:16px;margin-bottom:2rem;text-align:center}.chapter-num{display:inline-block;background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;padding:.5rem 1.5rem;border-radius:50px;font-size:.9em;margin-bottom:1rem}.tutorial-header h1{font-size:2.5em;color:var(--text-dark);margin-bottom:1rem}.tutorial-header .subtitle{font-size:1.2em;color:var(--text-light);margin-bottom:1rem}.tutorial-header .meta{display:flex;gap:1rem;justify-content:center}.tutorial-header .time{background:#dbeafe;color:#1e40af;padding:.5rem 1rem;border-radius:20px}.tutorial-header .level{background:#fef3c7;color:#92400e;padding:.5rem 1rem;border-radius:20px}.chapters-list{display:grid;grid-gap:1.5rem;gap:1.5rem;margin-bottom:3rem}.chapter-card{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid var(--border);display:flex;align-items:center;gap:1.5rem;text-decoration:none;color:inherit;transition:all .3s}.chapter-card:hover{border-color:var(--primary);box-shadow:0 4px 12px rgba(99,102,241,.15);transform:translateY(-2px)}.chapter-number{width:50px;height:50px;background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5em;font-weight:700;flex-shrink:0}.chapter-content{flex:1 1}.chapter-content h3{color:var(--text-dark);margin-bottom:.5rem}.chapter-content p{color:var(--text-light);margin-bottom:.5rem}.chapter-meta{display:flex;gap:1rem}.chapter-arrow{font-size:1.5em;color:var(--primary)}.chapter-page{min-height:100vh;padding:2rem 0}.chapter-page .container{max-width:900px;margin:0 auto;padding:0 2rem}.chapter-page .chapter-content{background:#fff;padding:3rem;border-radius:16px;margin-bottom:2rem}.chapter-page section{margin-bottom:3rem}.chapter-page h2{color:var(--primary);margin-bottom:1rem;font-size:1.8em}.chapter-page p{color:var(--text-dark);line-height:1.8;margin-bottom:1rem}.chapter-page ol,.chapter-page ul{margin-left:2rem;margin-bottom:1rem}.chapter-page li{color:var(--text-dark);margin-bottom:.5rem}.code-block{background:#1e1e1e;color:#d4d4d4;padding:1.5rem;border-radius:8px;overflow-x:auto;margin:1rem 0}.code-block code{font-family:Courier New,monospace;font-size:.9em;line-height:1.6}.success,.tip,.warning{padding:1rem;border-radius:8px;margin:1rem 0}.tip{background:#dbeafe;border-left:4px solid #1e40af}.success{background:#d1fae5;border-left:4px solid #065f46}.warning{background:#fef3c7;border-left:4px solid #92400e}.chapter-nav{display:flex;justify-content:space-between;gap:1rem;padding-top:2rem;border-top:1px solid var(--border)}.btn-primary,.btn-secondary{padding:1rem 2rem;border-radius:50px;text-decoration:none;font-weight:700;transition:all .3s}.btn-primary{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff}.btn-secondary{background:var(--bg-light);color:var(--text-dark);border:1px solid var(--border)}.btn-primary:hover,.btn-secondary:hover{transform:translateY(-2px)}.cta-box{background:linear-gradient(135deg,var(--primary) 0,var(--secondary) 100%);color:#fff;padding:3rem;border-radius:16px;text-align:center}.cta-box h2{font-size:2em;margin-bottom:1rem}.cta-box p{font-size:1.1em;margin-bottom:2rem;opacity:.9}