:root,[data-theme=dark]{--bg-app: #090b10;--bg-surface: #10141e;--bg-surface-hover: #161c2b;--bg-card: #121824;--bg-elevated: #1a2234;--bg-muted: #222c42;--grid-line: rgba(255, 255, 255, .025);--accent: #3b82f6;--accent-hover: #2563eb;--accent-soft: rgba(59, 130, 246, .12);--accent-border: rgba(59, 130, 246, .3);--emerald: #10b981;--emerald-soft: rgba(16, 185, 129, .12);--amber: #f59e0b;--amber-soft: rgba(245, 158, 11, .12);--rose: #f43f5e;--rose-soft: rgba(244, 63, 94, .12);--text-main: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--text-inverse: #090b10;--border-subtle: #1e2638;--border-medium: #2d3852;--border-strong: #3e4d70;--navbar-bg: rgba(9, 11, 16, .92);--footer-bg: #06080c;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-card: 0 4px 16px rgba(0, 0, 0, .35);--shadow-hover: 0 8px 24px rgba(0, 0, 0, .5)}[data-theme=light]{--bg-app: #f8fafc;--bg-surface: #ffffff;--bg-surface-hover: #f1f5f9;--bg-card: #ffffff;--bg-elevated: #f1f5f9;--bg-muted: #e2e8f0;--grid-line: rgba(0, 0, 0, .035);--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: rgba(37, 99, 235, .08);--accent-border: rgba(37, 99, 235, .25);--emerald: #059669;--emerald-soft: rgba(5, 150, 105, .08);--amber: #d97706;--amber-soft: rgba(217, 119, 6, .08);--rose: #e11d48;--rose-soft: rgba(225, 29, 72, .08);--text-main: #0f172a;--text-muted: #475569;--text-dim: #64748b;--text-inverse: #ffffff;--border-subtle: #e2e8f0;--border-medium: #cbd5e1;--border-strong: #94a3b8;--navbar-bg: rgba(248, 250, 252, .92);--footer-bg: #f1f5f9;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-card: 0 2px 8px rgba(0, 0, 0, .06);--shadow-hover: 0 8px 24px rgba(0, 0, 0, .09)}:root{--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);color:var(--text-main);background-color:var(--bg-app);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;transition:background-color .15s ease,color .15s ease}body{min-height:100vh;display:flex;flex-direction:column;line-height:1.55;background:var(--bg-app);background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:32px 32px}#root{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1240px;margin:0 auto;padding:0 1.5rem}.main-content{flex:1;padding-top:5rem;padding-bottom:5rem}h1,h2,h3,h4,h5,h6{color:var(--text-main);font-weight:700;letter-spacing:-.025em;line-height:1.25}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;color:inherit}.navbar-wrapper{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--navbar-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);transition:background-color .15s ease,border-color .15s ease}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:4.25rem}.brand-logo{display:flex;align-items:center;gap:.65rem;font-size:1.25rem;font-weight:800;letter-spacing:-.03em;color:var(--text-main)}.brand-badge-box{width:32px;height:32px;background:var(--text-main);color:var(--bg-app);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem}.nav-links{display:flex;align-items:center;gap:.4rem;list-style:none}.nav-link{font-weight:500;font-size:.9rem;color:var(--text-muted);display:flex;align-items:center;gap:.45rem;padding:.45rem .85rem;border-radius:var(--radius-sm);border:1px solid transparent;transition:all .14s ease}.nav-link:hover{color:var(--text-main);background:var(--bg-surface);border-color:var(--border-subtle)}.nav-link.active{color:var(--text-main);background:var(--bg-elevated);border-color:var(--border-medium);font-weight:600}.nav-badge{background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;padding:.1rem .45rem;border-radius:var(--radius-full)}.theme-toggle-btn{background:#161f30;border:1px solid #3b4866;color:#f1f5f9;width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .14s ease}.theme-toggle-btn:hover{color:#60a5fa;background:#1f2a40;border-color:#60a5fa}[data-theme=light] .theme-toggle-btn{background:#fff;border:1px solid #cbd5e1;color:#334155}[data-theme=light] .theme-toggle-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.mobile-nav-toggle{display:none;background:#161f30;border:1px solid #3b4866;color:#f1f5f9;width:36px;height:36px;border-radius:var(--radius-sm);align-items:center;justify-content:center;cursor:pointer;transition:all .14s ease}.mobile-nav-toggle:hover{color:#60a5fa;background:#1f2a40;border-color:#60a5fa}[data-theme=light] .mobile-nav-toggle{background:#fff;border:1px solid #cbd5e1;color:#334155}[data-theme=light] .mobile-nav-toggle:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.mobile-menu-drawer{display:none;flex-direction:column;gap:.5rem;padding:1rem 1.5rem;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.mobile-menu-drawer.open{display:flex}.hero-section{padding:3.5rem 0 2.5rem;position:relative}.hero-tagline-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .85rem;border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-medium);font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:1.5rem}.hero-tagline-dot{width:7px;height:7px;border-radius:50%;background:var(--emerald)}.hero-title{font-size:clamp(2.25rem,5vw,3.85rem);font-weight:800;letter-spacing:-.035em;color:var(--text-main);margin-bottom:1rem}.hero-subtitle{font-size:clamp(1rem,1.8vw,1.18rem);color:var(--text-muted);max-width:640px;line-height:1.6;margin-bottom:2.25rem}.hero-search-wrapper{max-width:640px;margin-bottom:1.5rem}.search-input-wrapper{position:relative;width:100%;display:flex;align-items:center}.search-input{width:100%;padding:.85rem 3.25rem .85rem 2.75rem;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:.95rem;color:var(--text-main);transition:all .14s ease;outline:none}.search-input:focus{border-color:var(--accent);background:var(--bg-card);box-shadow:0 0 0 3px var(--accent-soft)}.search-icon-left{position:absolute;left:.95rem;color:var(--text-dim);pointer-events:none}.search-clear-btn{position:absolute;right:.85rem;background:#ffffff14;border:1px solid #334155;color:#cbd5e1;cursor:pointer;padding:.25rem;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:all .15s ease}.search-clear-btn:hover{background:#ffffff2e;border-color:#60a5fa;color:#fff}[data-theme=light] .search-clear-btn{background:#f1f5f9;border:1px solid #cbd5e1;color:#64748b}[data-theme=light] .search-clear-btn:hover{background:#e2e8f0;color:#0f172a}.hero-pills-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.pill-item{background:#161f30;border:1px solid #334155;padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:500;color:#cbd5e1;cursor:pointer;transition:all .14s ease;text-decoration:none}.pill-item:hover{color:#fff;background:#1f2a40;border-color:#60a5fa}[data-theme=light] .pill-item{background:#fff;border:1px solid #cbd5e1;color:#475569}[data-theme=light] .pill-item:hover{color:#0f172a;background:#f1f5f9;border-color:#94a3b8}.metrics-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;margin-top:3.5rem}.metric-cell{background:var(--bg-surface);padding:1.5rem;text-align:left}.metric-val{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;color:var(--text-main);margin-bottom:.2rem}.metric-label{font-size:.82rem;color:var(--text-muted);font-weight:500}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.category-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;transition:all .16s ease;position:relative}.category-card:hover{background:var(--bg-surface-hover);border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-card)}.category-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.category-icon-square{width:38px;height:38px;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-medium);display:flex;align-items:center;justify-content:center;color:var(--text-main)}.category-count-badge{font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--text-dim);background:var(--bg-surface);padding:.2rem .5rem;border-radius:var(--radius-xs);border:1px solid var(--border-subtle)}.category-name{font-size:1.1rem;font-weight:700;margin-bottom:.4rem}.category-desc{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin-bottom:1.25rem;flex:1}.category-footer-link{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--accent)}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.resource-list-view{display:flex;flex-direction:column;gap:.75rem}.resource-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition:all .16s ease;position:relative}.resource-card:hover{background:var(--bg-surface-hover);border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-card)}.resource-thumb-box{position:relative;width:100%;height:180px;background:var(--bg-elevated);overflow:hidden}.resource-thumb-img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.resource-card:hover .resource-thumb-img{transform:scale(1.03)}.thumb-overlay-top{position:absolute;top:.75rem;left:.75rem;right:.75rem;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.platform-tag{background:var(--bg-card);border:1px solid var(--border-medium);padding:.2rem .55rem;border-radius:var(--radius-xs);font-size:.72rem;font-weight:600;color:var(--text-main);pointer-events:auto}.card-fav-btn{pointer-events:auto}.resource-content{padding:1.25rem;display:flex;flex-direction:column;flex:1}.resource-meta-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem;flex-wrap:wrap}.chip-tag{font-size:.72rem;font-weight:600;padding:.18rem .55rem;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-muted)}.chip-category{color:var(--text-main);background:var(--bg-elevated);border-color:var(--border-medium)}.chip-price-free{color:var(--emerald);background:var(--emerald-soft);border-color:#10b98140;margin-left:auto}.chip-price-paid{color:var(--amber);background:var(--amber-soft);border-color:#f59e0b40;margin-left:auto}.resource-card-title{font-size:1.05rem;font-weight:700;color:var(--text-main);margin-bottom:.45rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resource-card:hover .resource-card-title{color:var(--accent)}.resource-card-desc{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.resource-info-bar{display:flex;align-items:center;justify-content:space-between;padding-top:.85rem;border-top:1px solid var(--border-subtle);font-size:.82rem}.rating-stars-wrapper{display:inline-flex;align-items:center;gap:.3rem}.stars-row{display:flex;align-items:center;gap:2px}.rating-score{font-weight:700;font-size:.82rem;color:var(--amber)}.rating-count{font-size:.75rem;color:var(--text-dim)}.fav-btn{background:#161f30;border:1px solid #3b4866;color:#cbd5e1;width:32px;height:32px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .14s ease}.fav-btn:hover{color:#f43f5e;border-color:#f43f5e;background:#f43f5e2e}.fav-btn.is-favorite{color:#f43f5e;background:#f43f5e38;border-color:#f43f5e}[data-theme=light] .fav-btn{background:#fff;border:1px solid #cbd5e1;color:#64748b}[data-theme=light] .fav-btn:hover{color:#e11d48;border-color:#e11d48;background:#fff1f2}[data-theme=light] .fav-btn.is-favorite{color:#e11d48;background:#fff1f2;border-color:#e11d48}.filter-bar-container{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1rem 1.25rem;margin-bottom:1.75rem}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.85rem;align-items:center}.filter-group{display:flex;flex-direction:column;gap:.3rem}.filter-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.filter-select{width:100%;padding:.55rem .75rem;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-xs);color:var(--text-main);font-size:.85rem;outline:none;cursor:pointer;transition:border-color .14s ease}.filter-select:focus{border-color:var(--accent)}.active-filters-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border-subtle)}.filter-chip-active{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:var(--radius-xs);font-size:.75rem;color:var(--accent)}.filter-chip-remove{cursor:pointer}.clear-all-btn{background:#3f1522;border:1px solid #9f1239;color:#fda4af;font-size:.78rem;font-weight:600;padding:.25rem .65rem;border-radius:6px;cursor:pointer;margin-left:.5rem;transition:all .15s ease}.clear-all-btn:hover{background:#e11d48;border-color:#fb7185;color:#fff}[data-theme=light] .clear-all-btn{background:#fff1f2;border:1px solid #fecdd3;color:#e11d48}[data-theme=light] .clear-all-btn:hover{background:#e11d48;color:#fff}.empty-state-box{text-align:center;padding:4rem 2rem;background:var(--bg-card);border:1px dashed var(--border-medium);border-radius:var(--radius-lg);max-width:540px;margin:3rem auto}.empty-state-icon{width:56px;height:56px;border-radius:var(--radius-md);background:var(--bg-elevated);border:1px solid var(--border-medium);color:var(--text-muted);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.empty-state-title{font-size:1.25rem;margin-bottom:.5rem}.empty-state-text{font-size:.9rem;color:var(--text-muted);margin-bottom:1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.65rem 1.25rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .14s ease;border:1px solid transparent;outline:none;text-decoration:none;color:var(--text-main);background:var(--bg-surface)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-secondary{background:var(--bg-surface);border-color:var(--border-medium);color:var(--text-main)}.btn-secondary:hover{background:var(--bg-elevated);border-color:var(--border-strong);color:var(--text-main)}.btn-secondary{background:#161f30;border:1px solid #3b4866;color:#f1f5f9}.btn-secondary:hover{background:#1f2a40;border-color:#60a5fa;color:#fff}[data-theme=light] .btn-secondary{background:#fff;border:1px solid #cbd5e1;color:#1e293b}[data-theme=light] .btn-secondary:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.btn-outline{background:#161f30;border:1px solid #3b4866;color:#f1f5f9}.btn-outline:hover{background:#1f2a40;border-color:#60a5fa;color:#93c5fd}[data-theme=light] .btn-outline{background:#fff;border:1px solid #cbd5e1;color:#1e293b}[data-theme=light] .btn-outline:hover{background:#f8fafc;border-color:#2563eb;color:#2563eb}.stage-mark-all-btn{display:inline-flex!important;align-items:center!important;gap:.35rem!important;background:#064e3b!important;border:1px solid #059669!important;color:#a7f3d0!important;font-weight:600!important;box-shadow:0 1px 3px #00000040!important;transition:all .15s ease!important}.stage-mark-all-btn:hover{background:#059669!important;border-color:#34d399!important;color:#fff!important}.stage-mark-all-btn.stage-done,.stage-mark-all-btn.completed{background:#10b981!important;border-color:#10b981!important;color:#fff!important;font-weight:700!important}[data-theme=light] .stage-mark-all-btn{background:#ecfdf5!important;border:1px solid #10b981!important;color:#047857!important}[data-theme=light] .stage-mark-all-btn:hover{background:#10b981!important;color:#fff!important}[data-theme=light] .stage-mark-all-btn.stage-done,[data-theme=light] .stage-mark-all-btn.completed{background:#059669!important;border-color:#059669!important;color:#fff!important}.btn-share-action{display:inline-flex!important;align-items:center!important;gap:.35rem!important;background:#1e293b!important;border:1px solid #475569!important;color:#f1f5f9!important;font-weight:600!important;box-shadow:0 1px 3px #00000040!important;transition:all .15s ease!important}.btn-share-action:hover{background:#2563eb!important;border-color:#3b82f6!important;color:#fff!important}[data-theme=light] .btn-share-action{background:#eff6ff!important;border:1px solid #bfdbfe!important;color:#1d4ed8!important}[data-theme=light] .btn-share-action:hover{background:#2563eb!important;border-color:#1d4ed8!important;color:#fff!important}.btn-reset-action{display:inline-flex!important;align-items:center!important;gap:.35rem!important;background:#3f1522!important;border:1px solid #9f1239!important;color:#fda4af!important;font-weight:600!important;box-shadow:0 1px 3px #00000040!important;transition:all .15s ease!important}.btn-reset-action:hover:not(:disabled){background:#e11d48!important;border-color:#fb7185!important;color:#fff!important}.btn-reset-action:disabled,.btn-reset-action.is-disabled{opacity:.45!important;cursor:not-allowed!important;background:#1e293b!important;border-color:#334155!important;color:#94a3b8!important;box-shadow:none!important}[data-theme=light] .btn-reset-action{background:#fff1f2!important;border:1px solid #fecdd3!important;color:#e11d48!important}[data-theme=light] .btn-reset-action:hover:not(:disabled){background:#e11d48!important;border-color:#be123c!important;color:#fff!important}[data-theme=light] .btn-reset-action:disabled,[data-theme=light] .btn-reset-action.is-disabled{opacity:.45!important;background:#f1f5f9!important;border-color:#cbd5e1!important;color:#94a3b8!important}.btn-danger{background:#3f1522!important;border:1px solid #9f1239!important;color:#fda4af!important;font-weight:600}.btn-danger:hover{background:#e11d48!important;border-color:#fb7185!important;color:#fff!important}[data-theme=light] .btn-danger{background:#fff1f2!important;border:1px solid #fecdd3!important;color:#e11d48!important}[data-theme=light] .btn-danger:hover{background:#e11d48!important;color:#fff!important}.btn-xs{padding:.3rem .65rem;font-size:.78rem;border-radius:var(--radius-xs);gap:.35rem}.btn-sm{padding:.45rem .85rem;font-size:.82rem}.btn-lg{padding:.85rem 1.75rem;font-size:.95rem;border-radius:var(--radius-md)}.toast-container{position:fixed;bottom:2rem;right:2rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem}.toast-item{display:flex;align-items:center;gap:.65rem;background:var(--bg-elevated);border:1px solid var(--border-medium);padding:.75rem 1.15rem;border-radius:var(--radius-sm);box-shadow:var(--shadow-hover);color:var(--text-main);font-size:.88rem;font-weight:500}.details-hero{display:grid;grid-template-columns:1fr 380px;gap:2.5rem;margin-bottom:3.5rem}.details-banner-img{width:100%;height:300px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.details-card-sidebar{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;gap:1.15rem;height:fit-content}.spec-list{display:flex;flex-direction:column;gap:.75rem;padding:1rem 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.spec-row{display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.spec-label{color:var(--text-dim);display:flex;align-items:center;gap:.4rem}.spec-val{font-weight:600;color:var(--text-main)}.details-tabs-nav{display:flex;gap:.25rem;border-bottom:1px solid var(--border-subtle);margin-bottom:1.5rem}.tab-btn{background:none;border:none;padding:.65rem 1rem;font-size:.9rem;font-weight:600;color:var(--text-muted);cursor:pointer;position:relative;border-bottom:2px solid transparent}.tab-btn.active{color:var(--text-main);border-bottom-color:var(--accent)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.section-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:.35rem}.section-title{font-size:1.75rem}.cta-box{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;margin:3.5rem 0}.footer-wrap{background:var(--footer-bg);border-top:1px solid var(--border-subtle);padding:3.5rem 0 2rem;margin-top:auto;transition:background-color .15s ease}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}.footer-col-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:1rem;color:var(--text-main)}.footer-links-list{list-style:none;display:flex;flex-direction:column;gap:.55rem}.footer-link-item{color:var(--text-muted);font-size:.85rem;transition:color .14s ease}.footer-link-item:hover{color:var(--text-main)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;border-top:1px solid var(--border-subtle);font-size:.8rem;color:var(--text-dim)}.skeleton{background:linear-gradient(90deg,var(--bg-surface) 0%,var(--bg-surface-hover) 50%,var(--bg-surface) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.top-route-progress-bar{position:fixed;top:0;left:0;width:100%;height:3px;z-index:99999;pointer-events:none;background:transparent}.top-route-progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#6366f1,#10b981);box-shadow:0 0 10px #6366f1b3,0 0 5px #3b82f680;transition:width .22s cubic-bezier(.4,0,.2,1),opacity .3s ease}.page-loader-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:4rem 1rem;text-align:center;animation:fadeIn .25s ease forwards}.page-loader-brand-box{position:relative;width:58px;height:58px;border-radius:16px;background:var(--text-main);color:var(--bg-app);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.6rem;font-family:var(--font-display);box-shadow:0 4px 20px #00000040;margin-bottom:1.5rem}.page-loader-ring{position:absolute;top:-7px;left:-7px;right:-7px;bottom:-7px;border-radius:22px;border:2px solid transparent;border-top-color:var(--accent);animation:spin 1s linear infinite}@keyframes pulse-glow{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.page-loader-title{font-size:1.15rem;font-weight:700;color:var(--text-main);margin:0 0 .4rem;letter-spacing:-.01em}.page-loader-msg{font-size:.88rem;color:var(--text-dim);margin:0}.splash-loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999999;background:#0b0f19;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .4s ease,visibility .4s ease}[data-theme=light] .splash-loading-screen{background:#f8fafc}.splash-loading-screen.fading-out{opacity:0;visibility:hidden;pointer-events:none}.splash-content{display:flex;flex-direction:column;align-items:center;max-width:380px;padding:2rem;animation:fadeIn .3s ease}.splash-logo-wrap{position:relative;margin-bottom:1.5rem}.splash-logo-box{width:68px;height:68px;border-radius:20px;background:var(--text-main);color:var(--bg-app);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;font-family:var(--font-display);box-shadow:0 4px 25px #0000004d}.splash-logo-spinner{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:26px;border:2px solid transparent;border-top-color:var(--accent);animation:spin 1.2s cubic-bezier(.5,.1,.4,.9) infinite}.splash-brand-title{font-size:1.75rem;font-weight:800;color:var(--text-main);letter-spacing:-.03em;margin:0 0 .35rem;display:flex;align-items:center;gap:.5rem}.splash-tagline{font-size:.85rem;color:var(--text-dim);margin:0 0 1.75rem;text-align:center}.splash-progress-track{width:220px;height:4px;background:#ffffff14;border-radius:9999px;overflow:hidden;position:relative;margin-bottom:.75rem}[data-theme=light] .splash-progress-track{background:#00000014}.splash-progress-bar{height:100%;width:100%;background:linear-gradient(90deg,#3b82f6,#6366f1,#10b981);border-radius:9999px;animation:splash-indeterminate 1.4s ease-in-out infinite}@keyframes splash-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}.splash-hint{font-size:.78rem;color:var(--text-dim);font-family:var(--font-mono)}@media(max-width:1024px){.details-hero{grid-template-columns:1fr}.metrics-strip{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}}@media(max-width:768px){.nav-links{display:none}.mobile-nav-toggle{display:flex}.nav-cta-btn{display:none}.hero-section{padding:2.25rem 0 1.75rem}.hero-search-wrapper{max-width:100%}.hero-search-wrapper>div{flex-direction:column;align-items:stretch}.resource-grid,.categories-grid,.metrics-strip,.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:1rem;text-align:center}.toast-container{left:1rem;right:1rem;bottom:1rem}}.brand-text-group{display:flex;flex-direction:column;line-height:1.1}.brand-free-pill{font-size:.65rem;font-weight:700;text-transform:uppercase;color:var(--emerald);letter-spacing:.05em}.nav-highlight-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;margin-left:-2px}.nav-badge.emerald{background:var(--emerald-soft);color:var(--emerald);border:1px solid rgba(16,185,129,.3)}.section-label-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:9999px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-border);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem}.page-hero-title{font-size:clamp(2rem,4vw,3.25rem);font-weight:800;letter-spacing:-.025em;line-height:1.15;margin-bottom:.85rem}.page-hero-subtitle{font-size:clamp(1rem,1.8vw,1.15rem);color:var(--text-muted);max-width:680px;margin:0 auto 2rem;line-height:1.6}.roadmaps-header-hero{text-align:center;margin-bottom:2.75rem}.free-promise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;max-width:900px;margin:2rem auto 0;text-align:left}.promise-card{display:flex;gap:.85rem;padding:1.1rem 1.25rem;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle)}.promise-icon{color:var(--emerald);flex-shrink:0;margin-top:.2rem}.promise-title{font-size:.92rem;font-weight:700;color:var(--text-main);display:block;margin-bottom:.2rem}.promise-desc{font-size:.82rem;color:var(--text-muted);line-height:1.45;margin:0}.tracker-snapshot-banner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.15rem 1.5rem;border-radius:var(--radius-md);background:linear-gradient(135deg,#3b82f614,#10b98114);border:1px solid var(--accent-border);margin-bottom:2rem;flex-wrap:wrap}.snapshot-left{display:flex;align-items:center;gap:1rem}.snapshot-sparkle{color:var(--amber);flex-shrink:0}.snapshot-heading{font-size:.98rem;font-weight:700;margin:0 0 .15rem;color:var(--text-main)}.snapshot-text{font-size:.85rem;color:var(--text-muted);margin:0}.roadmaps-toolbar{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.roadmaps-search-box{flex:1;min-width:280px;position:relative;display:flex;align-items:center}.search-box-icon{position:absolute;left:1rem;color:var(--text-dim);pointer-events:none}.roadmaps-search-input{width:100%;padding:.85rem 2.5rem .85rem 2.85rem;border-radius:var(--radius-md);border:1px solid var(--border-medium);background:var(--bg-surface);color:var(--text-main);font-size:.95rem;outline:none;transition:all .2s ease}.roadmaps-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-clear-btn{position:absolute;right:.85rem;background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.9rem;padding:.25rem}.roadmaps-level-select-wrap{position:relative;display:flex;align-items:center}.filter-select-icon{position:absolute;left:.85rem;color:var(--text-dim);pointer-events:none}.filter-level-select{padding:.85rem 1.25rem .85rem 2.4rem;border-radius:var(--radius-md);border:1px solid var(--border-medium);background:var(--bg-surface);color:var(--text-main);font-size:.9rem;outline:none;cursor:pointer}.category-pills-row{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1.5rem;scrollbar-width:thin}.category-pill-btn{padding:.45rem .95rem;border-radius:9999px;border:1px solid #334155;background:#161f30;color:#cbd5e1;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.category-pill-btn:hover{background:#1f2a40;color:#fff;border-color:#475569}.category-pill-btn.active{background:#2563eb;color:#fff;border-color:#3b82f6;box-shadow:0 0 10px #2563eb66}[data-theme=light] .category-pill-btn{border:1px solid #cbd5e1;background:#fff;color:#475569}[data-theme=light] .category-pill-btn:hover{background:#f1f5f9;color:#0f172a;border-color:#94a3b8}[data-theme=light] .category-pill-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.roadmaps-results-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.75rem}.results-count-text{font-size:.9rem;color:var(--text-muted)}.clear-filters-btn{background:#3f1522!important;border:1px solid #9f1239!important;color:#fda4af!important;font-size:.8rem!important;font-weight:600!important;padding:.35rem .75rem!important;border-radius:6px!important;cursor:pointer!important;transition:all .15s ease!important}.clear-filters-btn:hover{background:#e11d48!important;border-color:#fb7185!important;color:#fff!important}[data-theme=light] .clear-filters-btn{background:#fff1f2!important;border:1px solid #fecdd3!important;color:#e11d48!important}[data-theme=light] .clear-filters-btn:hover{background:#e11d48!important;color:#fff!important}.roadmaps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.roadmap-card{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.16,1,.3,1);position:relative}.roadmap-card:hover{transform:translateY(-3px);border-color:var(--accent-border);box-shadow:var(--shadow-card)}.roadmap-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.15rem}.roadmap-icon-wrapper{width:44px;height:44px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;border:1px solid var(--accent-border)}.badge-free{background:var(--emerald-soft);color:var(--emerald);border:1px solid rgba(16,185,129,.3);font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:9999px;text-transform:uppercase}.badge-free-mini{background:var(--emerald-soft);color:var(--emerald);font-size:.68rem;font-weight:700;padding:.15rem .45rem;border-radius:4px;text-transform:uppercase}.badge-level{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-subtle);font-size:.72rem;font-weight:600;padding:.2rem .55rem;border-radius:9999px}.badge-category{background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:9999px}.roadmap-card-body{flex:1}.roadmap-title{font-size:1.25rem;font-weight:700;color:var(--text-main);margin:0 0 .5rem;line-height:1.25}.roadmap-tagline{font-size:.88rem;color:var(--text-muted);line-height:1.5;margin:0 0 1.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.roadmap-progress-container{margin-bottom:1.25rem;padding:.75rem .85rem;background:var(--bg-app);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.roadmap-progress-labels{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem}.progress-status-text{font-size:.78rem;color:var(--text-muted);font-weight:500}.progress-percentage-val{font-size:.8rem;font-weight:700;color:var(--accent)}.progress-bar-track{width:100%;height:6px;background:var(--bg-muted);border-radius:9999px;overflow:hidden}.progress-bar-track.lg{height:10px}.progress-bar-fill{height:100%;background:var(--accent);border-radius:9999px;transition:width .3s cubic-bezier(.16,1,.3,1)}.progress-bar-fill.complete{background:var(--emerald)}.progress-bar-fill.lg{background:linear-gradient(90deg,var(--accent) 0%,var(--emerald) 100%)}.roadmap-meta-grid{display:flex;gap:.85rem;margin-bottom:1.25rem;flex-wrap:wrap}.roadmap-meta-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-dim)}.roadmap-card-footer{margin-top:auto}.roadmap-details-hero{padding:2.5rem 0 2rem;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.breadcrumb-nav{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted);margin-bottom:1.5rem}.breadcrumb-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted);text-decoration:none;transition:color .15s ease}.breadcrumb-link:hover{color:var(--text-main)}.breadcrumb-sep{color:var(--text-dim)}.breadcrumb-current{color:var(--text-main);font-weight:600}.roadmap-hero-content-grid{display:grid;grid-template-columns:1fr 340px;gap:2.5rem;align-items:flex-start}.roadmap-badge-line{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:.85rem}.roadmap-hero-title{font-size:clamp(2rem,3.5vw,2.75rem);font-weight:800;line-height:1.15;margin-bottom:1rem}.roadmap-hero-overview{font-size:1.05rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.target-roles-wrapper{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}.target-roles-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;text-transform:uppercase;color:var(--text-dim)}.target-roles-pills{display:flex;gap:.45rem;flex-wrap:wrap}.target-role-pill{padding:.25rem .65rem;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border-subtle);font-size:.82rem;font-weight:600;color:var(--text-main)}.prereqs-box{padding:1rem 1.25rem;border-radius:var(--radius-md);background:var(--bg-app);border:1px solid var(--border-subtle)}.prereqs-title{font-size:.85rem;font-weight:700;color:var(--text-main);display:block;margin-bottom:.35rem}.prereqs-list{margin:0;padding-left:1.2rem;font-size:.85rem;color:var(--text-muted);line-height:1.5}.roadmap-progress-card{padding:1.5rem;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-medium);box-shadow:var(--shadow-card)}.progress-card-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.75rem}.progress-card-label{font-size:.88rem;font-weight:700;color:var(--text-main)}.progress-card-percentage{font-size:1.75rem;font-weight:800;color:var(--accent)}.progress-stats-summary{display:flex;justify-content:space-between;align-items:center;margin:.85rem 0 1.25rem;font-size:.82rem;color:var(--text-muted)}.progress-status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:9999px;font-size:.72rem;font-weight:700;text-transform:uppercase}.progress-status-badge.complete{background:var(--emerald-soft);color:var(--emerald)}.progress-status-badge.in-progress{background:var(--accent-soft);color:var(--accent)}.progress-status-badge.not-started{background:var(--bg-muted);color:var(--text-dim)}.progress-card-actions{display:flex;gap:.5rem;margin-bottom:1.25rem}.free-guarantee-note{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--emerald);padding-top:.85rem;border-top:1px solid var(--border-subtle)}.note-check-icon{flex-shrink:0}.roadmap-tabs-bar-sticky{position:sticky;top:56px;z-index:20;background:var(--navbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.roadmap-nav-tabs{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none}.roadmap-tab-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:#94a3b8;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease}.roadmap-tab-btn:hover{color:#f1f5f9}.roadmap-tab-btn.active{color:#60a5fa;border-bottom-color:#3b82f6;background:#3b82f614}[data-theme=light] .roadmap-tab-btn{color:#64748b}[data-theme=light] .roadmap-tab-btn:hover{color:#0f172a}[data-theme=light] .roadmap-tab-btn.active{color:#2563eb;border-bottom-color:#2563eb;background:#2563eb0f}.stages-timeline-container{display:flex;flex-direction:column;gap:2rem}.stage-block-card{border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);overflow:hidden;box-shadow:var(--shadow-sm)}.stage-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.stage-title-group{display:flex;gap:1.25rem;flex:1}.stage-number-badge{width:40px;height:40px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:1.1rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stage-meta-badges{display:flex;gap:.5rem;margin-bottom:.35rem;align-items:center}.stage-hours-pill{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-dim);background:var(--bg-elevated);padding:.15rem .5rem;border-radius:4px}.stage-topics-pill{font-size:.75rem;color:var(--text-dim)}.stage-title-heading{font-size:1.25rem;font-weight:700;color:var(--text-main);margin:0 0 .35rem}.stage-desc-text{font-size:.9rem;color:var(--text-muted);margin:0;line-height:1.5}.stage-actions-group{display:flex;align-items:center;gap:.5rem}.stage-collapse-btn{display:inline-flex;align-items:center;justify-content:center;background:#1a2234;border:1px solid #334155;color:#cbd5e1;cursor:pointer;padding:.35rem .5rem;border-radius:6px;transition:all .15s ease}.stage-collapse-btn:hover{background:#2563eb;border-color:#3b82f6;color:#fff}[data-theme=light] .stage-collapse-btn{background:#f1f5f9;border:1px solid #cbd5e1;color:#475569}[data-theme=light] .stage-collapse-btn:hover{background:#2563eb;border-color:#2563eb;color:#fff}.stage-topics-wrapper{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.topic-item-card{border-radius:var(--radius-md);background:var(--bg-app);border:1px solid var(--border-subtle);padding:1.25rem;transition:all .15s ease}.topic-item-card.completed{border-color:#10b98159;background:#10b98108}.topic-header-row{display:flex;align-items:flex-start;gap:.85rem}.topic-checkbox-btn{width:26px;height:26px;border-radius:6px;border:2px solid #475569;background:#161f30;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.15rem;transition:all .15s ease;color:#fff}.topic-checkbox-btn:hover{border-color:#60a5fa;background:#1f2a40}.topic-checkbox-btn.checked{background:#10b981!important;border-color:#10b981!important;color:#fff!important;box-shadow:0 0 10px #10b98166}[data-theme=light] .topic-checkbox-btn{background:#fff;border-color:#cbd5e1}[data-theme=light] .topic-checkbox-btn:hover{border-color:#2563eb;background:#eff6ff}[data-theme=light] .topic-checkbox-btn.checked{background:#059669!important;border-color:#059669!important;color:#fff!important}.topic-info-main{flex:1}.topic-title-line{display:flex;align-items:baseline;gap:.65rem;margin-bottom:.25rem;flex-wrap:wrap}.topic-order-label{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--accent)}.topic-title-text{font-size:1.05rem;font-weight:700;color:var(--text-main);margin:0}.topic-title-text.line-through{color:var(--text-dim);text-decoration:line-through}.topic-summary-text{font-size:.88rem;color:var(--text-muted);margin:0;line-height:1.5}.topic-expand-toggle{display:inline-flex;align-items:center;justify-content:center;background:#1a2234;border:1px solid #334155;color:#cbd5e1;cursor:pointer;padding:.3rem .45rem;border-radius:6px;transition:all .15s ease;flex-shrink:0}.topic-expand-toggle:hover{background:#334155;border-color:#475569;color:#fff}[data-theme=light] .topic-expand-toggle{background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b}[data-theme=light] .topic-expand-toggle:hover{background:#e2e8f0;color:#0f172a}.topic-content-body{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:1rem}.topic-section-subhead{font-size:.8rem;font-weight:700;color:var(--text-main);display:block;margin-bottom:.5rem}.topic-skills-list{display:flex;gap:.4rem;flex-wrap:wrap}.topic-skill-pill{padding:.2rem .6rem;border-radius:4px;background:var(--bg-surface);border:1px solid var(--border-subtle);font-size:.78rem;color:var(--text-muted)}.topic-resources-subhead-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem}.topic-resources-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.65rem}.topic-resource-card{display:flex;align-items:center;gap:.75rem;padding:.75rem .95rem;border-radius:var(--radius-sm);background:var(--bg-surface);border:1px solid var(--border-subtle);text-decoration:none;transition:all .15s ease}.topic-resource-card:hover{border-color:var(--accent);background:var(--bg-surface-hover);transform:translate(2px)}.resource-icon-badge{color:var(--accent);flex-shrink:0}.topic-resource-card.is-video .resource-icon-badge{color:#ef4444}[data-theme=light] .topic-resource-card.is-video .resource-icon-badge{color:#dc2626}.resource-meta-info{flex:1;min-width:0}.resource-title-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.resource-title-name{font-size:.85rem;font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-ext-icon{color:var(--text-dim);flex-shrink:0}.resource-sub-meta{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-dim)}.resource-provider-pill{font-weight:600;color:var(--emerald)}.meta-bullet{color:var(--border-medium)}.projects-tab-intro{margin-bottom:2rem}.tab-section-heading{font-size:1.75rem;font-weight:800;margin:0 0 .5rem}.tab-section-subtext{font-size:.98rem;color:var(--text-muted);max-width:680px;line-height:1.6;margin:0}.projects-grid-list{display:flex;flex-direction:column;gap:1.75rem}.project-card{padding:1.75rem;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-index-pill{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--accent);letter-spacing:.05em;margin-bottom:.25rem}.project-title{font-size:1.35rem;font-weight:700;margin:0;color:var(--text-main)}.badge-level-beginner{background:var(--emerald-soft);color:var(--emerald);padding:.25rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:700}.badge-level-intermediate{background:var(--accent-soft);color:var(--accent);padding:.25rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:700}.badge-level-advanced{background:var(--amber-soft);color:var(--amber);padding:.25rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:700}.badge-format-video{background:#ef44441f;color:#ef4444;padding:.25rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:700;border:1px solid rgba(239,68,68,.25)}[data-theme=light] .badge-format-video{background:#dc262614;color:#dc2626;border-color:#dc262633}.project-description{font-size:.95rem;color:var(--text-secondary);line-height:1.6;margin-bottom:1.25rem}.project-deliverables-box{padding:1.15rem 1.25rem;border-radius:var(--radius-md);background:var(--bg-app);border:1px solid var(--border-subtle);margin-bottom:1.25rem}.project-section-heading{font-size:.85rem;font-weight:700;color:var(--text-main);margin:0 0 .75rem}.project-deliverables-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.project-deliverable-item{display:flex;gap:.5rem;font-size:.88rem;color:var(--text-muted);line-height:1.45}.deliverable-check-icon{color:var(--accent);flex-shrink:0;margin-top:.15rem}.project-footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.project-stack-wrap{display:flex;align-items:baseline;gap:.5rem}.project-stack-label{font-size:.82rem;font-weight:700;color:var(--text-dim)}.project-stack-value{font-size:.88rem;font-weight:600;color:var(--text-main)}.free-resources-table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-surface)}.free-resources-table{width:100%;border-collapse:collapse;text-align:left;font-size:.88rem}.free-resources-table th{padding:.85rem 1rem;background:var(--bg-card);border-bottom:1px solid var(--border-subtle);font-weight:700;color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.free-resources-table td{padding:.85rem 1rem;border-bottom:1px solid var(--border-subtle);color:var(--text-muted)}.free-resources-table tr:hover td{background:var(--bg-surface-hover)}.res-title-cell{color:var(--text-main);max-width:280px}.table-provider-pill{font-weight:600;color:var(--emerald)}.table-topic-name{font-size:.82rem;color:var(--text-dim)}.table-open-btn{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:#60a5fa!important}.table-open-btn:hover{background:#2563eb!important;border-color:#3b82f6!important;color:#fff!important}[data-theme=light] .table-open-btn{color:#2563eb!important}[data-theme=light] .table-open-btn:hover{background:#2563eb!important;color:#fff!important}.career-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}.career-advice-card{padding:1.5rem;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle)}.career-advice-number{font-size:1.5rem;font-weight:800;color:var(--accent);margin-bottom:.5rem}.career-advice-card h4{font-size:1.1rem;font-weight:700;margin:0 0 .5rem}.career-advice-card p{font-size:.88rem;color:var(--text-muted);line-height:1.6;margin:0}.tracker-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2.5rem}.tracker-kpi-card{display:flex;align-items:center;gap:1.25rem;padding:1.35rem 1.5rem;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.kpi-icon-box{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-icon-box.blue{background:var(--accent-soft);color:var(--accent)}.kpi-icon-box.amber{background:var(--amber-soft);color:var(--amber)}.kpi-icon-box.emerald{background:var(--emerald-soft);color:var(--emerald)}.kpi-icon-box.rose{background:var(--rose-soft);color:var(--rose)}.kpi-value{font-size:1.85rem;font-weight:800;line-height:1;color:var(--text-main);margin-bottom:.25rem}.kpi-label{font-size:.82rem;color:var(--text-muted);font-weight:500}.continue-learning-card{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.75rem 2rem;border-radius:var(--radius-lg);background:linear-gradient(135deg,#3b82f61f,#6366f114);border:1px solid var(--accent-border);flex-wrap:wrap}.continue-subtitle{font-size:.78rem;font-weight:700;text-transform:uppercase;color:var(--accent);letter-spacing:.05em;margin-bottom:.35rem;display:block}.continue-title{font-size:1.5rem;font-weight:800;margin:0 0 .35rem}.continue-desc{font-size:.92rem;color:var(--text-muted);margin:0}.tracker-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.tracker-section-title{font-size:1.45rem;font-weight:800;margin:0 0 1.25rem}.tracker-empty-card{padding:3rem 2rem;text-align:center;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px dashed var(--border-medium)}.empty-tracker-icon{color:var(--text-dim);margin-bottom:1rem}.badges-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.achievement-badge-card{padding:1.25rem;border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);display:flex;gap:1rem;align-items:flex-start}.achievement-badge-card.unlocked{border-color:#10b98159;background:#10b98105}.achievement-badge-card.locked{opacity:.6}.achievement-icon-circle{width:40px;height:40px;border-radius:50%;background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}.achievement-badge-card.unlocked .achievement-icon-circle{background:var(--emerald-soft);color:var(--emerald)}.achievement-title{font-size:.92rem;font-weight:700;display:block;margin-bottom:.2rem}.achievement-desc{font-size:.78rem;color:var(--text-muted);line-height:1.4;margin:0 0 .5rem}.achievement-status-tag{font-size:.68rem;font-weight:700;text-transform:uppercase}.achievement-status-tag.earned{color:var(--emerald)}.achievement-status-tag.in-progress{color:var(--text-dim)}.pillars-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.75rem}.pillar-item-card{padding:1.75rem;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-subtle)}.pillar-icon-box{width:48px;height:48px;border-radius:var(--radius-md);background:var(--bg-elevated);display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.pillar-item-card h3{font-size:1.15rem;font-weight:700;margin:0 0 .65rem}.pillar-item-card p{font-size:.88rem;color:var(--text-muted);line-height:1.6;margin:0}@media(max-width:900px){.roadmap-hero-content-grid{grid-template-columns:1fr}}@media(max-width:768px){.stage-header-row{flex-direction:column;gap:1rem}.stage-actions-group{width:100%;justify-content:space-between}.continue-learning-card{flex-direction:column;align-items:stretch}}.hero-search-input-box{display:flex;align-items:center;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:.35rem .5rem .35rem 1rem;gap:.75rem;width:100%;max-width:600px;margin:0 auto;transition:all .2s ease}.hero-search-input-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.hero-search-icon{color:var(--text-dim);flex-shrink:0}.hero-search-field{flex:1;border:none;background:transparent;color:var(--text-main);font-size:.95rem;outline:none}.hero-search-btn{flex-shrink:0}.metrics-strip.compact{display:flex;justify-content:center;gap:2.5rem;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--border-subtle);background:transparent;border-radius:0;border-left:none;border-right:none;border-bottom:none}.metrics-strip.compact .metric-cell{display:flex;align-items:baseline;gap:.45rem}.metrics-strip.compact .metric-val{font-size:1.15rem;font-weight:800;margin-bottom:0}.metrics-strip.compact .metric-label{font-size:.78rem;color:var(--text-dim)}.tracker-snapshot-banner.compact{padding:.75rem 1.25rem;font-size:.85rem}.pillars-grid.compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.pillar-item-card.compact{padding:1.25rem;border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle)}.pillar-icon-box.compact{width:36px;height:36px;border-radius:var(--radius-sm);margin-bottom:.75rem}.pillar-item-card.compact h4{font-size:.98rem;font-weight:700;margin:0 0 .35rem}.pillar-item-card.compact p{font-size:.82rem;color:var(--text-muted);margin:0;line-height:1.5}.roadmap-meta-simple{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-dim);margin-bottom:1rem}.roadmap-progress-container.compact{margin-bottom:1rem;padding:.6rem .75rem}.roadmap-details-hero.compact{padding:1.75rem 0 1.25rem;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.roadmap-header-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.roadmap-title-line{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:.4rem}.roadmap-hero-title.compact{font-size:clamp(1.6rem,3vw,2.25rem);font-weight:800;margin:0}.roadmap-hero-tagline{font-size:.95rem;color:var(--text-muted);margin:0 0 1.25rem;max-width:700px}.roadmap-inline-progress{max-width:480px}.inline-progress-labels{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-muted);margin-bottom:.35rem}.inline-progress-pct{font-weight:700;color:var(--accent)}.continue-learning-card.compact{padding:1.1rem 1.5rem}.tracker-empty-card.compact{padding:2rem 1rem}.sync-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .15s ease-out}.sync-modal-dialog{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);max-width:580px;width:100%;box-shadow:0 20px 40px #00000080;overflow:hidden;animation:modalScale .2s cubic-bezier(.16,1,.3,1)}@keyframes modalScale{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.sync-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.sync-modal-icon-badge{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.sync-modal-title{font-size:1.05rem;font-weight:700;margin:0;color:var(--text-main)}.sync-modal-subtitle{font-size:.78rem;color:var(--text-muted)}.sync-modal-close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.35rem;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.sync-modal-close-btn:hover{color:var(--text-main);background:var(--bg-elevated)}.sync-modal-tabs{display:flex;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.sync-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.45rem;padding:.85rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s ease}.sync-tab-btn:hover{color:var(--text-main)}.sync-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--bg-card)}.sync-modal-body{padding:1.5rem}.sync-info-text{font-size:.86rem;color:var(--text-muted);line-height:1.5;margin:0 0 1rem}.sync-code-box{background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.85rem 1rem;margin-bottom:1rem;max-height:110px;overflow-y:auto}.sync-code-content{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#38bdf8;margin:0;white-space:pre-wrap;word-break:break-all}.sync-import-textarea{width:100%;box-sizing:border-box;background:var(--bg-app);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:.75rem 1rem;font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-main);margin-bottom:1rem;resize:vertical;outline:none}.sync-import-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.sync-actions-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1.25rem}.sync-explainer-box{display:flex;gap:.65rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.85rem 1rem}.sync-devices-btn{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;border-color:#3b82f6!important;color:#60a5fa!important}.sync-devices-btn:hover{background:#2563eb!important;color:#fff!important}[data-theme=light] .sync-devices-btn{color:#2563eb!important;border-color:#93c5fd!important}[data-theme=light] .sync-devices-btn:hover{background:#2563eb!important;color:#fff!important}
