html{scroll-behavior:smooth}html,body,#root{min-height:100%}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,svg,video,canvas{display:block;max-width:100%}button{cursor:pointer;border:none;background:none}ul,ol{list-style:none}.container{width:min(1200px,calc(100% - 2rem));margin-inline:auto}.page{min-height:100vh;padding-block:var(--space-8)}.section{margin-bottom:var(--space-12)}.grid{display:grid;gap:var(--space-6)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:var(--space-6)}.cluster{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.space-between{display:flex;align-items:center;justify-content:space-between}@media(max-width:992px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.container{width:min(100%,calc(100% - 1.5rem))}.page{padding-block:var(--space-6)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:700;line-height:1.2;margin:0}p{color:var(--text-secondary);line-height:1.7;margin:0}.page-title{font-size:clamp(2rem,4vw,2.75rem);font-weight:700;letter-spacing:-.03em}.section-title{font-size:1.5rem;font-weight:700}.card-title{font-size:1.15rem;font-weight:600}.subtitle{font-size:1rem;color:var(--text-secondary)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}.card{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:transform var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.card:hover{border-color:var(--primary-color);transform:translateY(-3px);box-shadow:var(--shadow-md)}.card--sm{padding:var(--space-4)}.card--md{padding:var(--space-6)}.card--lg{padding:var(--space-8)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-12)}.page-header__content{display:flex;flex-direction:column;gap:var(--space-3)}.page-header__actions{display:flex;align-items:center;gap:var(--space-4)}.page-header .subtitle{max-width:42rem}@media(max-width:768px){.page-header{flex-direction:column}}:root{--primary-color: #38bdf8;--primary-hover: #0ea5e9;--primary-soft: rgba(56, 189, 248, .12);--background: #0f172a;--surface-1: #111827;--surface-2: #172033;--surface-3: #1e293b;--surface: #111c35;--card-bg: #16213e;--surface-color: var(--surface);--surface-elevated: var(--card-bg);--surface-nested: var(--surface-3);--border-default: #24324d;--border-hover: #38bdf8;--border-focus: #7dd3fc;--border-color: var(--border-default);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--info: #38bdf8;--tag-bg: var(--surface-3);--tag-border: #334155;--tag-text: #cbd5e1;--button-secondary-bg: var(--surface-2);--button-secondary-hover: var(--surface-3);--button-secondary-border: #334155;--button-secondary-text: var(--text-secondary);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 999px;--radius: 18px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .12);--shadow-md: 0 10px 24px rgba(0, 0, 0, .2);--shadow-lg: 0 18px 40px rgba(0, 0, 0, .28);--shadow-primary: 0 0 0 1px rgba(56, 189, 248, .08), 0 18px 40px rgba(0, 0, 0, .28);--transition-fast: .2s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--skeleton-bg: #1c2940;--skeleton-highlight: rgba(255, 255, 255, .06)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{min-height:100%;background:var(--background)}body,#root{min-height:100vh}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit}img,picture,video,canvas,svg{display:block;max-width:100%}.navbar{background:#0f172a;border-bottom:1px solid #1e293b;padding:20px 80px;position:sticky;top:0;z-index:100}.nav-container{display:flex;justify-content:space-between;align-items:center}.logo{font-size:22px;font-weight:700;color:#38bdf8;text-decoration:none}.nav-links a{color:#e2e8f0;text-decoration:none;margin-left:20px}.nav-links a:hover{color:#38bdf8}.main-content{min-height:calc(100vh - 80px)}.nav-login{padding:9px 16px;border:1px solid #334155;border-radius:10px;color:#e2e8f0;text-decoration:none;transition:border-color .2s ease,color .2s ease}.nav-login:hover{border-color:#38bdf8;color:#38bdf8}.nav-right{display:flex;align-items:center;gap:22px}.nav-user{display:flex;align-items:center;gap:16px}.nav-username{color:#e2e8f0;font-size:14px;font-weight:500}.logout-btn{padding:8px 14px;border:none;border-radius:8px;background:#ef4444;color:#fff;cursor:pointer;transition:.25s}.logout-btn:hover{background:#dc2626}.user-menu{position:relative}.user-menu-button{display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid #334155;border-radius:12px;background:#111827;color:#f8fafc;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}.user-menu-button:hover{background:#172033;border-color:#38bdf8}.menu-arrow{font-size:12px;color:#94a3b8}.user-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:250px;overflow:hidden;border:1px solid #26354b;border-radius:16px;background:#111a2b;box-shadow:0 20px 45px #02081759;z-index:1000}.dropdown-header{display:flex;align-items:center;gap:14px;padding:18px;border-bottom:1px solid #26354b}.dropdown-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;border-radius:50%;background:var(--primary-color);color:#0f172a}.dropdown-avatar svg{width:22px;height:22px;margin:0}.dropdown-user{min-width:0;display:flex;flex-direction:column;gap:4px;overflow:hidden}.dropdown-user strong{color:#f8fafc;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-user small{color:#94a3b8;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-dropdown a,.dropdown-logout{display:flex;align-items:center;width:100%;padding:14px 18px;border:none;background:transparent;color:#cbd5e1;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:background .2s ease,color .2s ease}.user-dropdown a:hover,.dropdown-logout:hover{background:#172238;color:#38bdf8}.dropdown-logout{border-top:1px solid #26354b}.user-dropdown a svg,.dropdown-logout svg{width:18px;margin-right:12px;flex-shrink:0}.active-menu-link{background:#172238!important;color:#38bdf8!important}.active-menu-link svg{color:#38bdf8}.bookmark-button{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;border:1px solid var(--button-secondary-border);border-radius:var(--radius-md);background:var(--button-secondary-bg);color:var(--button-secondary-text);cursor:pointer;font-size:1rem;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.bookmark-button:hover:not(:disabled){background:#a855f71f;border-color:#a855f759;color:#a855f7;transform:translateY(-2px)}.bookmark-button--active{background:#a855f71f;border-color:#a855f759;color:#a855f7}.bookmark-button:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px}.bookmark-button:disabled{opacity:.6;cursor:not-allowed}.roadmap-card{position:relative;overflow:hidden;min-height:220px;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);transition:transform var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.roadmap-card:hover{transform:translateY(-5px);border-color:var(--primary-color);box-shadow:0 0 0 1px #38bdf814,0 18px 40px #00000047}.roadmap-card__link{display:flex;flex-direction:column;min-height:inherit;color:inherit;text-decoration:none}.roadmap-card__bookmark{position:absolute;top:var(--space-4);right:var(--space-4);z-index:2}.roadmap-card__content{flex:1;display:flex;flex-direction:column;padding:var(--space-6);padding-right:4.5rem}.roadmap-card__title{margin:0 0 var(--space-3);min-height:3.2rem;color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1.2}.roadmap-card__description{margin:0 0 var(--space-5);color:var(--text-secondary);line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}.roadmap-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:auto}.roadmap-tag{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--border-color);border-radius:999px;background:#ffffff0a;color:var(--text-secondary);font-size:.85rem}.roadmap-card__footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:0 var(--space-6) var(--space-5);color:var(--primary-color);font-weight:600}.roadmap-card__cta{transition:opacity var(--transition-fast)}.roadmap-card__arrow{transition:transform var(--transition-normal)}.roadmap-card:hover .roadmap-card__cta{opacity:.9}.roadmap-card:hover .roadmap-card__arrow{transform:translate(6px)}@media(max-width:768px){.roadmap-card,.roadmap-card__link{min-height:auto}.roadmap-card__title{min-height:auto;font-size:1.4rem}.roadmap-card__content{padding:var(--space-6);padding-right:4.25rem}}@media(max-width:480px){.roadmap-card__content{padding:var(--space-5);padding-right:4rem}.roadmap-card__footer{padding:0 var(--space-5) var(--space-4)}.roadmap-tag{font-size:.8rem}}.continue-section{margin-bottom:70px}.continue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.continue-card{display:flex;flex-direction:column;gap:18px;padding:22px;border:1px solid #334155;border-radius:16px;background:#1e293b;color:inherit;text-decoration:none;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.continue-card:hover{transform:translateY(-4px);border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf814,0 14px 28px #00000040}.continue-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.continue-info h3{margin:0 0 8px;font-size:17px;font-weight:700;color:#f8fafc;line-height:1.4}.continue-info p{margin:0;font-size:14px;color:#94a3b8}.continue-percent{flex-shrink:0;font-size:15px;font-weight:700;color:#38bdf8}.continue-progress-bar{width:100%;height:8px;background:#0f172a;border-radius:999px;overflow:hidden}.continue-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#38bdf8,#0ea5e9);transition:width .35s ease}.continue-link{margin-top:auto;font-size:14px;font-weight:600;color:#38bdf8;transition:transform .2s ease}.continue-card:hover .continue-link{transform:translate(4px)}.continue-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.continue-toggle{padding:10px 18px;border:1px solid #334155;border-radius:10px;background:transparent;color:#cbd5e1;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.continue-toggle:hover{border-color:#38bdf8;color:#38bdf8;transform:translateY(-1px)}.continue-toggle:active{transform:translateY(0)}.continue-toggle--primary{border-color:#0ea5e9;background:#0ea5e9;color:#0f172a}.continue-toggle--primary:hover{background:#38bdf8;color:#0f172a}.continue-loading-card{display:flex;flex-direction:column;gap:16px;min-height:120px;padding:22px;border-radius:16px;background:#111827;border:1px solid #26354b}.continue-loading-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.continue-loading-title{width:72%;height:16px}.continue-loading-percent{width:28px;height:28px;flex-shrink:0}.continue-loading-line{width:100%;height:10px}.continue-loading-progress{width:100%;height:6px;margin-top:auto;border-radius:999px}@media(max-width:768px){.continue-grid{grid-template-columns:minmax(0,1fr)}}.skeleton{position:relative;overflow:hidden;background:var(--skeleton-bg);border-radius:8px}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--skeleton-highlight),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:skeleton-shimmer 1.6s ease-in-out infinite}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton--circle{flex-shrink:0;border-radius:50%}.skeleton--pill{border-radius:999px}.skeleton--button{width:7.5rem;height:2.5rem;border-radius:var(--radius-lg)}.skeleton__title{width:68%;height:1.5rem}.skeleton__title--small{width:48%;height:1.125rem}.skeleton__title--large{width:min(32rem,82%);height:2.5rem}.skeleton__line{width:100%;height:.875rem}.skeleton__line--medium{width:76%}.skeleton__line--short{width:52%}.skeleton__filter{width:100px;height:40px;border-radius:999px}.skeleton__filter--wide{width:8.5rem}.skeleton__filter-title{width:110px;height:18px;border-radius:999px;margin-bottom:1rem}.skeleton__results{width:180px;height:18px;border-radius:999px}.skeleton__tags{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.skeleton__tag{width:4.5rem;height:1.625rem;border-radius:999px}.skeleton__tag--small{width:3.5rem}.skeleton__tag--large{width:5.5rem}.skeleton-card{position:relative;display:flex;flex-direction:column;min-height:205px;padding:20px 64px 20px 20px;background:#111827;border:1px solid #26354b;border-radius:18px;overflow:hidden}.skeleton-card__bookmark{position:absolute;top:16px;right:16px;width:28px;height:28px;border-radius:8px}.skeleton-card__content{display:flex;flex-direction:column;flex:1}.skeleton-card__title{width:68%;height:18px;margin-bottom:18px;border-radius:8px}.skeleton-card__description{margin-bottom:18px}.skeleton-card__line{width:100%;height:10px;border-radius:999px;margin-bottom:10px}.skeleton-card__line--short{width:62%}.skeleton-card__tags{display:flex;gap:10px}.skeleton-card__tag{height:24px;border-radius:999px}.skeleton-card__tag--first{width:54px}.skeleton-card__tag--second{width:46px}.skeleton-card__tag--third{width:64px}.skeleton-card__bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;padding-top:18px}.skeleton-card__bottom-text{width:58px;height:10px;border-radius:999px}.skeleton-card__bottom-icon{position:absolute;right:20px;bottom:20px;width:14px;height:14px;border-radius:50%}.skeleton__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-7)}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}}@media(max-width:768px){.skeleton__title--large{width:90%;height:2rem}.skeleton-card{min-height:200px;padding:18px 56px 18px 18px}.skeleton__grid{grid-template-columns:1fr;gap:20px}.skeleton__filter{width:92px;height:40px}.skeleton__filter--wide{width:120px}.skeleton-card__bookmark{width:26px;height:26px;top:14px;right:14px}.skeleton-card__title{width:65%}.skeleton-card__tag{height:22px}}.home-page{--home-accent: var(--primary-color, #38bdf8);--home-surface: var(--surface-3, #1e293b);--home-border: var(--tag-border, #334155);--home-text: var(--text-primary, #f8fafc);--home-muted: var(--text-secondary, #94a3b8);width:100%;max-width:1400px;margin-inline:auto;padding:60px 70px}.home-page .hero{position:relative;display:flex;justify-content:center;margin-block-end:60px}.home-page .hero:before{content:"";position:absolute;inset-block-start:-220px;inset-inline-start:50%;width:min(650px,100vw);aspect-ratio:1;background:radial-gradient(circle,rgba(56,189,248,.18),rgba(56,189,248,.06),transparent);filter:blur(90px);pointer-events:none;transform:translate(-50%)}.home-page .hero-content{position:relative;z-index:1;width:100%;max-width:760px;text-align:center}.home-page .hero-label{position:relative;display:inline-block;overflow:hidden;margin-block-end:18px;padding:8px 14px;border:1px solid var(--home-border);border-radius:var(--radius-pill, 999px);background:var(--home-surface);color:var(--home-accent);font-size:12px;font-weight:600;letter-spacing:1.5px}.home-page .hero-label:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(56,189,248,.22) 50%,transparent 65%);pointer-events:none;transform:translate(-170%) skew(-25deg);animation:home-label-sweep 7s ease-in-out infinite}.home-page .hero-title{margin:0 0 22px;color:var(--home-text);font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.15;overflow-wrap:anywhere}.home-page .hero-subtitle{max-width:650px;margin:0 auto 34px;color:var(--home-muted);font-size:17px;line-height:1.8}.home-page .hero-search{width:100%;max-width:520px;padding:16px 20px;border:1px solid var(--home-border);border-radius:14px;background:var(--home-surface);color:var(--home-text);font-size:15px;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.home-page .hero-search:focus{border-color:var(--home-accent);outline:none;box-shadow:0 0 0 4px #38bdf814}.home-page .browse-section{margin-block-end:55px}.home-page .browse-header{margin-block-end:36px}.home-page .browse-header h2{margin:0 0 10px;color:var(--home-text);font-size:34px}.home-page .browse-header p{max-width:620px;margin:0;color:var(--home-muted);font-size:16px;line-height:1.7}.home-page .filter-group{width:100%;margin-block-end:30px}.home-page .filter-title{display:block;margin-block-end:14px;color:var(--details-text-body, #cbd5e1);font-size:15px;font-weight:600;letter-spacing:.4px}.home-page :is(.category-grid,.filters){display:flex;flex-wrap:wrap;gap:12px}.home-page .category-grid{margin-block-end:35px}.home-page .filters{margin-block-end:40px}.home-page .filter-btn{min-height:42px;padding:8px 16px;border:1px solid var(--home-border);border-radius:var(--radius-sm, 8px);background:var(--home-surface);color:#e2e8f0;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.home-page .filter-btn:hover{border-color:#475569;transform:translateY(-1px)}.home-page .filter-btn:focus-visible,.home-page .pagination button:focus-visible{outline:2px solid var(--border-focus, #7dd3fc);outline-offset:3px}.home-page .filter-btn.active{border-color:var(--home-accent);background:var(--home-accent);color:var(--background, #0f172a)}.home-page .section-title{margin-block-end:20px;font-size:22px}.home-page .results-bar{display:flex;align-items:center;justify-content:space-between;margin-block-end:22px}.home-page .results-count{margin:0;color:var(--home-muted);font-size:15px}.home-page .results-count strong{color:var(--home-text)}.home-page .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:28px}.home-page .empty-state{padding:80px 20px;border:1px dashed var(--home-border);border-radius:18px;color:var(--home-muted);text-align:center}.home-page .empty-state h3{margin:0 0 10px;color:var(--home-text);font-size:24px}.home-page .empty-state p{max-width:420px;margin-inline:auto;line-height:1.7}.home-page .pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-block-start:50px}.home-page .pagination button{flex-shrink:0;padding:6px 14px;border:1px solid var(--home-border);border-radius:6px;background:var(--home-surface);color:#e2e8f0;cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast)}.home-page .pagination button:hover:not(:disabled){border-color:#475569;transform:translateY(-1px)}.home-page .pagination button:disabled{cursor:not-allowed;opacity:.4}.home-page .pagination span{flex-shrink:0;color:var(--home-muted);font-size:14px;white-space:nowrap}@media(max-width:1024px){.home-page{padding:50px 40px}}@media(max-width:768px){.home-page{padding:40px 24px}.home-page .hero{margin-block-end:60px}.home-page .hero-subtitle{font-size:15px}.home-page .grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:480px){.home-page{padding:32px 18px}.home-page .hero-title{font-size:30px;line-height:1.2}.home-page .hero-subtitle{font-size:14px}.home-page .browse-header h2{font-size:28px}.home-page .pagination{gap:8px}.home-page .pagination button{padding-inline:10px}}@keyframes home-label-sweep{0%,82%{transform:translate(-170%) skew(-25deg)}to{transform:translate(170%) skew(-25deg)}}@media(prefers-reduced-motion:reduce){.home-page .hero-label:after{animation:none}.home-page :is(.filter-btn,.pagination button){transition:none}}.details-page{--details-accent: var(--primary-color, #38bdf8);--details-accent-hover: var(--primary-hover, #0ea5e9);--details-bg: #111a2b;--details-bg-raised: #172238;--details-bg-subtle: #152034;--details-border: #26354b;--details-border-raised: #31415a;--details-text: var(--text-primary, #f8fafc);--details-text-secondary: var(--text-secondary, #94a3b8);--details-text-body: #cbd5e1;--details-content-offset: 37px;--details-card-padding: 26px;width:100%;max-width:1060px;margin-inline:auto;padding:56px 28px 100px}.details-page .back-link{display:inline-flex;align-items:center;gap:8px;margin-block-end:34px;color:var(--details-text-secondary);font-size:14px;font-weight:500;text-decoration:none;transition:color var(--transition-fast),transform var(--transition-fast)}.details-page .back-link:hover{color:var(--details-accent);transform:translate(-2px)}.details-page .back-link:focus-visible,.details-page .resource-card:focus-visible,.details-page .step-resource:focus-visible,.details-page .step-checkbox:focus-visible{outline:2px solid var(--border-focus, #7dd3fc);outline-offset:3px}.details-page>.details-message{padding:28px;border:1px solid var(--details-border);border-radius:var(--radius-lg, 16px);background:var(--details-bg);color:var(--details-text-secondary);text-align:center}.details-page .roadmap-hero{margin-block-end:44px}.details-page .roadmap-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-block-end:18px}.details-page .roadmap-hero h1{margin:0 0 16px;color:var(--details-text);font-size:clamp(2.375rem,6vw,3.625rem);font-weight:750;letter-spacing:-.025em;line-height:1.08;overflow-wrap:anywhere}.details-page .roadmap-description{max-width:760px;margin:0 0 26px;color:var(--details-text-secondary);font-size:16px;line-height:1.75}.details-page .desktop-bookmark{display:block;flex-shrink:0}.details-page .mobile-bookmark{display:none}.details-page :is(.desktop-bookmark,.mobile-bookmark) .bookmark-btn{width:46px;height:46px;border-radius:var(--radius-md, 12px);font-size:20px}.details-page .roadmap-badges{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.details-page .roadmap-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid var(--tag-border, #334155);border-radius:var(--radius-pill, 999px);background:var(--surface-2, #172033);color:var(--details-text-body);font-size:13px;font-weight:600}.details-page .badge-icon{display:inline-flex;align-items:center;color:var(--details-accent)}.details-page .progress-card,.details-page .info-card{border:1px solid var(--details-border);border-radius:18px;background:var(--details-bg)}.details-page .progress-card{margin-block-end:34px;padding:28px;box-shadow:0 14px 35px #0208172e}.details-page .progress-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-block-end:22px}.details-page .progress-header h2{margin:0 0 7px;color:var(--details-text);font-size:20px;font-weight:700}.details-page .progress-header p{margin:0;color:var(--details-text-secondary);font-size:14px}.details-page .progress-percent{flex-shrink:0;color:var(--details-accent);font-size:32px;font-weight:750;line-height:1}.details-page .progress-bar{width:100%;height:10px;overflow:hidden;border-radius:var(--radius-pill, 999px);background:#243047}.details-page .progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,var(--details-accent-hover));transition:width .3s ease}.details-page .details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-block-end:24px}.details-page .info-card{margin-block-end:24px;padding:var(--details-card-padding);box-shadow:0 12px 30px #02081724}.details-page .details-grid .info-card{height:100%;margin-block-end:0}.details-page .info-card-title{display:flex;align-items:center;gap:11px;margin-block-end:20px}.details-page .info-card-title svg{flex-shrink:0;color:var(--details-accent);font-size:18px}.details-page .info-card-title h2{margin:0;color:var(--details-text);font-size:19px;font-weight:700}.details-page .info-card-content{min-width:0;color:var(--details-text-body);font-size:15px;line-height:1.75}.details-page .info-list,.details-page .resource-list{display:flex;flex-direction:column}.details-page .info-list{gap:12px;margin:0;padding:0;list-style:none}.details-page .info-list li{position:relative;padding-inline-start:20px;color:var(--details-text-body);line-height:1.65;overflow-wrap:anywhere}.details-page .info-list li:before{content:"";position:absolute;inset-block-start:10px;inset-inline-start:0;width:7px;height:7px;border-radius:50%;background:var(--details-accent)}.details-page .resource-list{gap:12px}.details-page .resource-card{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:14px 15px;border:1px solid var(--details-border-raised);border-radius:var(--radius-md, 12px);background:var(--details-bg-raised);color:var(--details-text-body);text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.details-page .resource-card:hover{border-color:var(--details-accent);background:#1b2a43;color:var(--details-text);transform:translateY(-2px)}.details-page .resource-left{display:flex;align-items:center;gap:11px;min-width:0}.details-page .resource-left span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-page .resource-left svg,.details-page .resource-card>svg{flex-shrink:0}.details-page .resource-left svg{color:var(--details-accent);font-size:17px}.details-page .resource-card>svg{color:var(--text-muted, #64748b);font-size:12px}.details-page .skills-container{display:flex;flex-wrap:wrap;gap:10px}.details-page .skill-tag{display:inline-flex;align-items:center;max-width:100%;padding:8px 13px;border:1px solid var(--tag-border, #334155);border-radius:var(--radius-pill, 999px);background:var(--details-bg-raised);color:#bae6fd;font-size:13px;font-weight:600;overflow-wrap:anywhere}.details-page .rich-content{color:#b8c7da;font-size:15px;letter-spacing:-.01em;line-height:1.9;overflow-wrap:anywhere}.details-page .rich-content :is(p,ul,ol,blockquote,pre,table,img,hr){margin-block:0 1.4rem}.details-page .rich-content>:last-child{margin-block-end:0}.details-page .rich-content p:empty{display:none}.details-page .rich-content :is(h2,h3,h4){color:var(--details-text);font-weight:700;line-height:1.25}.details-page .rich-content h2{margin:2rem 0 1rem;font-size:28px}.details-page .rich-content h3{margin:1.6rem 0 .8rem;font-size:22px}.details-page .rich-content h4{margin:1.3rem 0 .7rem;font-size:18px}.details-page .rich-content ul,.details-page .rich-content ol{margin-block-start:1.25rem}.details-page .rich-content ul{padding:0;list-style:none}.details-page .rich-content ol{padding-inline-start:1.5rem}.details-page .rich-content li{margin-block-end:.9rem}.details-page .rich-content ul li{position:relative;padding-inline-start:24px}.details-page .rich-content ul li:before{content:"";position:absolute;inset-block-start:.72rem;inset-inline-start:0;width:7px;height:7px;border-radius:50%;background:var(--details-accent)}.details-page .rich-content strong{color:var(--details-text);font-weight:700}.details-page .rich-content em{font-style:italic}.details-page .rich-content a{border-block-end:1px solid rgba(125,211,252,.35);color:#7dd3fc;text-decoration:none;transition:border-color var(--transition-fast),color var(--transition-fast)}.details-page .rich-content a:hover{border-color:#7dd3fc;color:var(--details-text)}.details-page .rich-content blockquote{margin-block:2rem;padding:18px 22px;border-inline-start:4px solid var(--details-accent);border-radius:0 var(--radius-md, 12px) var(--radius-md, 12px) 0;background:var(--details-bg-raised);color:var(--details-text-body)}.details-page .rich-content code{padding:2px 7px;border-radius:7px;background:var(--details-bg-raised);color:#7dd3fc;font-size:.92em}.details-page .rich-content pre{max-width:100%;overflow-x:auto;margin-block:1.8rem;padding:18px;border-radius:14px;background:var(--background, #0f172a)}.details-page .rich-content pre code{padding:0;background:none}.details-page .rich-content hr{margin-block:2rem;border:0;border-block-start:1px solid var(--tag-border, #334155)}.details-page .rich-content table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;border-radius:14px}.details-page .rich-content th,.details-page .rich-content td{padding:14px 18px;border:1px solid #2c3d56;text-align:start}.details-page .rich-content th{background:var(--details-bg-raised);color:var(--details-text);font-weight:600}.details-page .rich-content tr:nth-child(2n){background:#121c2d}.details-page .rich-content img{display:block;width:auto;max-width:100%;height:auto;margin-inline:auto;border-radius:18px}.details-page .steps-section{display:flex;flex-direction:column;gap:18px;margin-block-start:48px}.details-page .section-heading{margin-block-end:8px}.details-page .section-heading h2,.details-page .steps-section>h2{margin:0 0 7px;color:var(--details-text);font-size:26px;font-weight:750}.details-page .section-heading p{margin:0;color:var(--details-text-secondary);font-size:14px}.details-page .step-card{position:relative;overflow:hidden;padding:24px 26px;border:1px solid #2b3a52;border-radius:var(--radius-lg, 16px);background:var(--details-bg-raised);transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.details-page .step-card:hover{border-color:#3b82f6;box-shadow:0 10px 24px #0208172e;transform:translateY(-2px)}.details-page .step-card.completed{border-color:#2563eb;background:#18253d}.details-page .step-header{display:flex;align-items:flex-start;gap:18px}.details-page .step-checkbox{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:22px;height:22px;margin-block-start:2px;padding:0;border:2px solid #475569;border-radius:6px;background:transparent;color:#fff;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.details-page .step-checkbox:hover{border-color:var(--details-accent)}.details-page .step-checkbox.checked{border-color:var(--details-accent);background:var(--details-accent)}.details-page .step-checkbox svg{font-size:12px}.details-page .step-content{flex:1;min-width:0}.details-page .step-label{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-block-end:10px}.details-page .step-number{color:var(--details-accent);font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase}.details-page .step-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-pill, 999px);background:#22c55e24;color:#4ade80;font-size:11px;font-weight:700}.details-page .step-content h3{margin:0;color:var(--details-text);font-size:22px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}.details-page .step-description{max-width:760px;margin:18px 0 22px var(--details-content-offset);color:#aebcd0;font-size:15px;line-height:1.75}.details-page .step-description:before{content:"";display:block;width:56px;height:1px;margin-block-end:18px;background:linear-gradient(90deg,rgba(56,189,248,.45),transparent)}.details-page .step-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-block-start:6px;margin-inline-start:var(--details-content-offset)}.details-page .step-meta{display:flex;flex-wrap:wrap;gap:10px;margin:0}.details-page .step-meta span{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #2d4059;border-radius:var(--radius-pill, 999px);background:var(--details-bg-subtle);color:var(--details-text-body);font-size:13px;font-weight:600}.details-page .step-meta svg{color:var(--details-accent)}.details-page .step-card.completed .step-content h3{color:var(--details-text-body)}.details-page .step-card.completed .step-description{color:var(--details-text-secondary)}.details-page .step-card.completed .step-meta{opacity:.85}.details-page .steps-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-block-start:8px;color:var(--details-text-secondary);font-size:14px}.details-page .steps-pagination__actions{display:flex;flex-wrap:wrap;gap:10px}.details-page .steps-pagination button{padding:9px 16px;border:1px solid var(--details-border-raised);border-radius:10px;background:var(--details-bg-raised);color:var(--details-text-body);cursor:pointer;font-weight:600;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.details-page .steps-pagination button:hover{border-color:var(--details-accent);color:var(--details-accent);transform:translateY(-1px)}.details-page .steps-pagination button:focus-visible{outline:2px solid var(--border-focus, #7dd3fc);outline-offset:3px}.details-page .steps-pagination .steps-pagination__more{border-color:var(--details-accent-hover);background:var(--details-accent-hover);color:var(--background, #0f172a)}.details-page .steps-pagination .steps-pagination__more:hover{background:var(--details-accent);color:var(--background, #0f172a)}.details-page .step-resources{margin-block-start:20px;margin-inline-start:var(--details-content-offset);padding:14px 16px;border:1px solid rgba(56,189,248,.08);border-radius:var(--radius-md, 12px);background:#0f172a47}.details-page .step-resources__label{display:block;margin-block-end:12px;color:var(--details-accent);font-size:11px;font-weight:700;letter-spacing:1.4px;line-height:1.2;text-transform:uppercase}.details-page .step-resources__list{display:flex;flex-wrap:wrap;gap:10px;margin:0}.details-page .step-resource{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;padding:8px 12px;border:1px solid #2d4059;border-radius:var(--radius-pill, 999px);background:var(--details-bg-subtle);color:var(--details-text-body);font-size:12px;font-weight:600;text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast)}.details-page .step-resource:hover{border-color:#38bdf8a6;background:#192740;color:var(--details-text);transform:translateY(-1px)}.details-page .step-resource__icon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center}.details-page .step-resource__icon svg{width:13px;height:13px}.details-page .step-resource__title{max-width:min(180px,55vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.details-page .step-resource__icon.type-docs{color:#38bdf8}.details-page .step-resource__icon.type-youtube{color:#ef4444}.details-page .step-resource__icon.type-github{color:#f8fafc}.details-page .step-resource__icon.type-course{color:#a855f7}.details-page .step-resource__icon.type-article{color:#f59e0b}.details-page .step-resource__icon.type-playground{color:#14b8a6}.details-page .step-resource__icon.type-download{color:#22c55e}.details-page .step-resource__icon.type-other{color:#94a3b8}.details-page .details-skeleton__hero-content,.details-page .details-skeleton__progress-copy{flex:1;min-width:0}.details-page .details-skeleton__hero-title{width:min(32rem,82%);height:clamp(2.5rem,6vw,3.625rem);margin-block-end:16px}.details-page .details-skeleton__description{display:flex;flex-direction:column;gap:12px;max-width:760px;margin-block-end:26px}.details-page .details-skeleton__description .skeleton__line{height:16px}.details-page .details-skeleton__bookmark{flex-shrink:0;width:46px;height:46px}.details-page .mobile-bookmark .details-skeleton__bookmark{margin-inline-start:auto}.details-page .details-skeleton__badge{width:110px;height:36px}.details-page .details-skeleton__badge--wide{width:150px}.details-page .details-skeleton__progress-card{margin-block-end:34px}.details-page .details-skeleton__progress-title{width:min(220px,70%);height:20px;margin-block-end:10px}.details-page .details-skeleton__progress-subtitle{height:14px}.details-page .details-skeleton__progress-percent{width:68px;height:32px;border-radius:8px}.details-page .details-skeleton__progress-bar{width:100%;height:10px}.details-page .details-skeleton__info-icon{width:18px;height:18px}.details-page .details-skeleton__info-title{width:min(180px,65%);height:19px}.details-page .details-skeleton__list{display:flex;flex-direction:column;gap:14px}.details-page .details-skeleton__steps{margin-block-start:48px}.details-page .details-skeleton__steps-title{width:min(260px,65%);height:26px;margin-block-end:10px}.details-page .details-skeleton__steps-subtitle{height:14px;margin-block-end:0}.details-page .details-skeleton__step-list{display:flex;flex-direction:column;gap:18px}.details-page .details-skeleton__step-card{padding:24px 26px;background:var(--details-bg-raised)}.details-page .details-skeleton__checkbox{flex-shrink:0;width:22px;height:22px;margin-block-start:2px;border-radius:6px}.details-page .details-skeleton__step-title{width:60%;height:29px}.details-page .details-skeleton__step-copy{display:flex;flex-direction:column;gap:10px;margin:18px 0 22px var(--details-content-offset)}.details-page .details-skeleton__step-copy .skeleton__line{height:15px}.details-page .details-skeleton__step-meta{display:flex;flex-wrap:wrap;gap:10px;margin-inline-start:var(--details-content-offset)}.details-page .details-skeleton__meta-item{width:90px;height:34px}@media(max-width:800px){.details-page{padding:42px 20px 80px}.details-page .details-grid{grid-template-columns:minmax(0,1fr)}.details-page .roadmap-hero h1{font-size:clamp(2.25rem,7vw,2.75rem)}.details-page .progress-header{align-items:center}.details-page .progress-percent{font-size:28px}.details-page .details-skeleton__hero-title{width:82%}.details-page .details-skeleton__progress-percent{height:28px}.details-page .details-skeleton__step-title{width:72%}}@media(max-width:520px){.details-page{--details-card-padding: 20px;--details-content-offset: 0px;padding:32px 16px 64px}.details-page .back-link{margin-block-end:26px}.details-page .roadmap-hero{margin-block-end:34px}.details-page .roadmap-hero-top{flex-direction:column;align-items:stretch;gap:18px}.details-page .desktop-bookmark{display:none}.details-page .mobile-bookmark{display:flex;flex-shrink:0;margin-inline-start:auto}.details-page .roadmap-hero h1{font-size:clamp(2rem,10vw,2.25rem)}.details-page .roadmap-description{font-size:15px}.details-page .progress-card,.details-page .info-card,.details-page .step-card{padding:var(--details-card-padding);border-radius:14px}.details-page .progress-header{align-items:flex-start;gap:16px}.details-page .progress-header h2{font-size:18px}.details-page .progress-percent{font-size:25px}.details-page .rich-content h2{font-size:24px}.details-page .rich-content h3{font-size:20px}.details-page .rich-content blockquote,.details-page .rich-content pre{padding:14px}.details-page .rich-content th,.details-page .rich-content td{padding:10px 12px}.details-page .step-header{gap:14px}.details-page .step-content h3{font-size:20px}.details-page .step-description{margin-block:16px 18px;font-size:14px;line-height:1.65}.details-page .step-description:before{width:42px;margin-block-end:14px}.details-page .step-footer{margin-block-start:16px}.details-page .step-meta{gap:8px}.details-page .step-meta span{padding:7px 12px;font-size:12px}.details-page .step-resources{margin-block-start:18px;padding:12px}.details-page .step-resources__label{margin-block-end:10px}.details-page .step-resources__list{gap:8px}.details-page .step-resource{padding:8px 11px}.details-page .steps-pagination,.details-page .steps-pagination__actions{align-items:stretch;flex-direction:column}.details-page .steps-pagination button,.details-page .details-skeleton__hero-content,.details-page .details-skeleton__description{width:100%}.details-page .details-skeleton__hero-title{width:92%;height:2.25rem}.details-page .details-skeleton__badge{width:96px;height:34px}.details-page .details-skeleton__badge--wide{width:124px}.details-page .details-skeleton__progress-card{margin-block-end:24px}.details-page .details-skeleton__progress-percent{width:50px;height:25px}.details-page .details-skeleton__info-title{width:min(145px,65%)}.details-page .details-skeleton__steps{margin-block-start:38px}.details-page .details-skeleton__step-card{padding:var(--details-card-padding)}.details-page .details-skeleton__step-title{width:calc(100% - 36px);height:26px}.details-page .details-skeleton__step-copy{margin-block:16px 18px}.details-page .details-skeleton__meta-item{width:82px;height:31px}}@media(prefers-reduced-motion:reduce){.details-page .back-link,.details-page .progress-fill,.details-page .resource-card,.details-page .step-card,.details-page .step-checkbox,.details-page .step-resource{transition:none}.details-page .back-link:hover,.details-page .resource-card:hover,.details-page .step-card:hover,.details-page .step-resource:hover{transform:none}}.login-page{--auth-accent: var(--primary-color, #38bdf8);--auth-surface: var(--surface-1, #111827);--auth-input: var(--surface-3, #1e293b);--auth-border: var(--tag-border, #334155);--auth-text: var(--text-primary, #f8fafc);--auth-muted: var(--text-secondary, #94a3b8);position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;overflow:hidden;padding:48px 20px;background:radial-gradient(circle at top,rgba(56,189,248,.08),transparent 42%),var(--background, #0f172a)}.login-background{position:absolute;inset-block-start:-220px;inset-inline-end:-220px;width:min(700px,100vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(56,189,248,.1),transparent 70%);filter:blur(50px);pointer-events:none}.login-card{position:relative;z-index:1;width:100%;max-width:500px;padding:42px;border:1px solid #233247;border-radius:22px;background:var(--auth-surface);box-shadow:0 18px 40px #00000059}.login-header{margin-block-end:36px}.login-badge{position:relative;display:inline-block;overflow:hidden;margin-block-end:20px;padding:8px 14px;border:1px solid var(--auth-border);border-radius:var(--radius-pill, 999px);background:var(--auth-input);color:var(--auth-accent);font-size:.75rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.login-badge:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(56,189,248,.22) 50%,transparent 65%);pointer-events:none;transform:translate(-170%) skew(-25deg);animation:auth-badge-sweep 8.5s ease-in-out infinite}.login-header h1{margin:0 0 14px;color:var(--auth-text);font-size:clamp(1.9rem,5vw,2.2rem);font-weight:700;line-height:1.2}.login-header p{margin:0;color:var(--auth-muted);font-size:1rem;line-height:1.8}.login-form{display:flex;flex-direction:column;gap:24px}.login-page .form-group{display:flex;flex-direction:column;gap:10px}.login-page .form-group label{color:#e2e8f0;font-size:.9rem;font-weight:600}.login-page .form-group input{width:100%;min-width:0;padding:15px 16px;border:1px solid var(--auth-border);border-radius:var(--radius-md, 12px);background:var(--auth-input);color:var(--auth-text);font-size:.95rem;transition:background-color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.login-page .form-group input::placeholder{color:var(--text-muted, #64748b)}.login-page .form-group input:hover{border-color:#475569}.login-page .form-group input:focus{border-color:var(--auth-accent);outline:none;box-shadow:0 0 0 3px #38bdf81f}.password-input{position:relative}.login-page .password-input input{padding-inline-end:48px}.password-toggle{position:absolute;inset-block-start:50%;inset-inline-end:16px;display:flex;align-items:center;justify-content:center;width:24px;height:24px;margin:0;padding:0;border:0;background:transparent;color:var(--auth-muted);cursor:pointer;font-size:1.1rem;transform:translateY(-50%);transition:color var(--transition-fast)}.password-toggle:hover,.password-toggle:focus-visible{background:transparent;color:var(--auth-accent)}.password-toggle:focus-visible,.login-form>button:focus-visible,.login-footer a:focus-visible{outline:2px solid var(--border-focus, #7dd3fc);outline-offset:3px}.login-form>button{margin-block-start:8px;padding:15px;border:0;border-radius:var(--radius-md, 12px);background:var(--auth-accent);color:#082f49;font-size:.95rem;font-weight:700;cursor:pointer;transition:background-color var(--transition-normal),transform var(--transition-fast)}.login-form>button:hover:not(:disabled){background:var(--primary-hover, #0ea5e9);transform:translateY(-2px)}.login-form>button:disabled{cursor:not-allowed;opacity:.6}.login-error,.login-success{padding:14px 16px;border-radius:var(--radius-md, 12px);font-size:.9rem;line-height:1.6;overflow-wrap:anywhere}.login-error{border:1px solid rgba(248,113,113,.2);background:#7f1d1d59;color:#fecaca}.login-success{border:1px solid rgba(74,222,128,.2);background:#14532d59;color:#bbf7d0}.login-footer{margin-block-start:36px;color:var(--auth-muted);font-size:.95rem;text-align:center}.login-footer a{margin-inline-start:6px;color:var(--auth-accent);font-weight:600;text-decoration:none;transition:color var(--transition-normal)}.login-footer a:hover{color:#7dd3fc}.login-page input:-webkit-autofill,.login-page input:-webkit-autofill:hover,.login-page input:-webkit-autofill:focus,.login-page input:-webkit-autofill:active{caret-color:#fff;-webkit-box-shadow:0 0 0 1000px var(--auth-input) inset!important;-webkit-text-fill-color:#fff!important;transition:background-color 5000s ease-in-out 0s}@media(max-width:640px){.login-page{align-items:flex-start;padding:24px 16px}.login-card{padding:32px 24px}}@keyframes auth-badge-sweep{0%,85%{transform:translate(-170%) skew(-25deg)}95%,to{transform:translate(170%) skew(-25deg)}}@media(prefers-reduced-motion:reduce){.login-badge:after{animation:none}.login-page :is(input,button,a){transition:none}}.dashboard{position:relative;width:100%;overflow-x:clip;isolation:isolate}.dashboard:before{content:"";position:absolute;z-index:-1;inset-block-start:-260px;inset-inline-start:50%;width:min(1400px,120vw);height:900px;background:radial-gradient(ellipse at center,rgba(56,189,248,.08) 0%,rgba(56,189,248,.045) 30%,rgba(56,189,248,.02) 55%,transparent 80%),radial-gradient(ellipse at center,rgba(125,211,252,.05),transparent 70%);filter:blur(120px);pointer-events:none;transform:translate(-50%)}.dashboard>.container{display:flex;flex-direction:column;min-width:0}.dashboard .dashboard-section{min-width:0;margin-block-end:var(--space-16)}.dashboard .dashboard-section:last-child{margin-block-end:0}.dashboard .dashboard__overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5)}.dashboard .recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.dashboard .activity-list{overflow:hidden;padding-inline:var(--space-8);border:1px solid var(--border-color);border-radius:var(--radius-xl);background:var(--card-bg)}.dashboard .dashboard-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center}.dashboard .dashboard-error-state h2{margin-block-end:var(--space-4)}.dashboard .dashboard-error-state p{max-width:32rem;overflow-wrap:anywhere}.dashboard .dashboard-skeleton__hero{gap:16px}.dashboard .dashboard-skeleton__hero-title{width:min(360px,75%);height:clamp(2.25rem,3vw,3rem)}.dashboard .dashboard-skeleton__hero-subtitle{width:min(500px,85%);height:18px}.dashboard .continue-learning-skeleton__header{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}.dashboard .continue-learning-skeleton__title{width:min(240px,70%);height:36px;border-radius:var(--radius-md)}.dashboard .continue-learning-skeleton__percentage{width:58px;height:38px;border-radius:var(--radius-sm)}.dashboard .continue-learning-skeleton__progress{width:100%;height:11px;margin-block-start:0;border-radius:var(--radius-pill)}.dashboard .continue-learning-skeleton__next{width:100%;height:92px;margin-block-start:0;border-radius:var(--radius-lg)}.dashboard .continue-learning-skeleton__button{width:160px;height:46px;margin-block-start:0;margin-inline-start:auto;border-radius:14px}.dashboard .skeleton-stat__icon{width:75px;height:75px}.dashboard .skeleton-stat__title,.dashboard .skeleton-stat__value{margin-block-end:10px}.dashboard .skeleton-stat__value{width:70px}.dashboard .skeleton-stat__subtitle{width:min(120px,100%)}.dashboard .skeleton-activity__icon{width:42px;height:42px}.dashboard .skeleton-activity__title{margin-block-end:10px}.dashboard .skeleton-activity__text{width:min(260px,100%)}.dashboard .skeleton-activity__time{flex-shrink:0;width:56px;height:12px}@media(max-width:1024px){.dashboard .dashboard__overview,.dashboard .recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.dashboard:before{inset-block-start:-180px;width:min(900px,140vw);height:650px;filter:blur(100px);opacity:.9}.dashboard .dashboard__overview,.dashboard .recommendation-grid{grid-template-columns:minmax(0,1fr)}.dashboard .activity-list{padding-inline:var(--space-5)}.dashboard .dashboard-skeleton__hero-title{height:2.1rem}.dashboard .continue-learning-skeleton__header{flex-direction:column;gap:1rem}.dashboard .continue-learning-skeleton__title{width:65%;height:29px}.dashboard .continue-learning-skeleton__percentage{width:50px;height:27px}.dashboard .continue-learning-skeleton__next{height:72px}.dashboard .continue-learning-skeleton__button{width:100%;margin-inline-start:0}.dashboard .skeleton-activity__time{width:44px}}@media(max-width:480px){.dashboard .activity-list{padding-inline:var(--space-4)}.dashboard .skeleton-activity__time{display:none}}.activity-item{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--border-color)}.activity-item:last-child{border-bottom:none}.activity-item__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;font-size:1rem;transition:all .25s ease}.activity-item--completed .activity-item__icon{background:#22c55e1f;color:#22c55e}.activity-item--bookmark .activity-item__icon{background:#a855f71f;color:#a855f7}.activity-item--opened .activity-item__icon{background:#0ea5e91f;color:#0ea5e9}.activity-item__content{flex:1}.activity-item__title{margin:0 0 .35rem;color:var(--text-primary);font-size:1rem;font-weight:600}.activity-item__description{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.6}.activity-item__time{display:flex;align-items:center;gap:.4rem;flex-shrink:0;color:var(--text-secondary);font-size:.85rem}.activity-item:hover .activity-item__icon{transform:scale(1.08)}@media(max-width:768px){.activity-item{gap:.75rem}.activity-item__time{display:none}}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:280px;padding:3rem 2rem;text-align:center}.dashboard-empty__icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin-bottom:1.5rem;border-radius:50%;background:#3b82f614;border:1px solid rgba(59,130,246,.15);color:var(--primary-color);font-size:2rem}.dashboard-empty__title{margin:0 0 .75rem;color:var(--text-primary);font-size:1.5rem;font-weight:700}.dashboard-empty__description{max-width:480px;margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.8}@media(max-width:768px){.dashboard-empty{min-height:220px;padding:2.5rem 1.5rem}.dashboard-empty__icon{width:68px;height:68px;font-size:1.7rem}.dashboard-empty__title{font-size:1.3rem}.dashboard-empty__description{font-size:.9rem}}.continue-card{background:var(--surface);border:1px solid var(--border-color);border-radius:22px;padding:1.75rem;display:flex;flex-direction:column;gap:1.4rem;box-shadow:0 6px 18px #0000002e;transition:transform .25s ease,box-shadow .25s ease}.continue-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #0000001f}.continue-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.continue-card__badge{display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:999px;background:#3b82f61f;color:var(--primary-color);font-size:.78rem;font-weight:600}.continue-card__title{margin:.65rem 0 .25rem;font-size:1.9rem;font-weight:700;line-height:1.2}.continue-card__meta{color:var(--text-muted);font-size:.92rem}.continue-card__percentage{flex-shrink:0;font-size:2rem;font-weight:700;color:var(--primary-color)}.continue-card__progress{display:flex;flex-direction:column;gap:.55rem}.continue-card__progress-bar{height:11px;border-radius:999px;overflow:hidden;background:#ffffff14}.continue-card__progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#3b82f6,#38bdf8);transition:width .8s ease}.continue-card__progress-footer{display:flex;align-items:center;font-size:.88rem}.continue-card__status{display:inline-flex;align-items:center;gap:6px}.continue-card__status svg{font-size:13px;flex-shrink:0}.continue-card__next{display:flex;gap:1rem;padding:1rem 1.1rem;border-radius:16px;background:#232d4d;border:1px solid var(--border-color);border-left:4px solid var(--primary-color)}.continue-card__next-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#3b82f61f;color:var(--primary-color);flex-shrink:0}.continue-card__next-content{flex:1}.continue-card__label{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.continue-card__next h3{margin:.3rem 0;font-size:1.08rem;line-height:1.3}.continue-card__step-meta{margin-top:.4rem}.continue-card__step-meta span{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-muted);font-size:.88rem}.continue-card__button{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;padding:.82rem 1.3rem;border-radius:14px;background:var(--primary-color);color:#fff;text-decoration:none;font-weight:600;transition:all .25s ease}.continue-card__button:hover{transform:translateY(-2px);filter:brightness(1.05)}@media(max-width:768px){.continue-card{padding:1.35rem;gap:1.2rem}.continue-card__top{flex-direction:column;gap:1rem}.continue-card__percentage{font-size:1.65rem}.continue-card__title{font-size:1.5rem}.continue-card__progress-footer{font-size:.8rem}.continue-card__next{padding:.9rem;gap:.8rem}.continue-card__next-icon{width:38px;height:38px;font-size:.9rem}.continue-card__next h3{font-size:1rem}.continue-card__button{width:100%;align-self:stretch}}.stat-card{position:relative;display:flex;align-items:stretch;gap:var(--space-5);min-height:145px;padding:var(--space-6);overflow:hidden;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.stat-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--primary-color);opacity:0;transition:opacity var(--transition-normal)}.stat-card:hover{transform:translateY(-4px);border-color:#38bdf873;box-shadow:var(--shadow-md)}.stat-card:hover:before{opacity:1}.stat-card__icon{display:flex;align-items:center;justify-content:center;align-self:center;flex-shrink:0;width:60px;height:60px;border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary-color);font-size:1.45rem;transition:transform var(--transition-normal),background-color var(--transition-normal)}.stat-card:hover .stat-card__icon{transform:scale(1.06);background:#38bdf82e}.stat-card__content{display:flex;flex-direction:column;flex:1;min-height:100%}.stat-card__title{color:var(--text-secondary);font-size:.92rem;font-weight:600;letter-spacing:.02em}.stat-card__value{margin-top:.35rem;color:var(--text-primary);font-size:2.1rem;font-weight:700;line-height:1.1}.stat-card__subtitle{margin-top:auto;padding-top:var(--space-4);color:var(--text-muted);font-size:.8rem;line-height:1.4}@media(max-width:768px){.stat-card{min-height:125px;padding:var(--space-5);gap:var(--space-4)}.stat-card__icon{width:54px;height:54px;font-size:1.3rem}.stat-card__value{font-size:1.8rem}.stat-card__subtitle{padding-top:var(--space-3);font-size:.75rem}}.dashboard-hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-10) 0 var(--space-14);margin-bottom:var(--space-10);isolation:isolate}.hero__heading{display:flex;align-items:center;justify-content:center;gap:var(--space-5);width:100%}.hero__line{position:relative;flex:1;max-width:150px;height:2px;overflow:hidden;background:linear-gradient(90deg,transparent 0%,rgba(56,189,248,.18) 20%,rgba(56,189,248,.95) 50%,rgba(56,189,248,.18) 80%,transparent 100%);box-shadow:0 0 12px #38bdf838;transform:scaleX(0);opacity:0;animation:heroLineExpand .8s cubic-bezier(.22,1,.36,1) forwards}.hero__line:first-child{transform-origin:right center}.hero__line:last-child{transform-origin:left center}.hero__line:after{content:"";position:absolute;inset:0;width:28%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);transform:translate(-220%);animation:heroSweep .7s ease .55s forwards}.hero__title{margin:0;background:linear-gradient(180deg,#fff,#dbeafe);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(2.25rem,3vw,3rem);font-weight:700;letter-spacing:-.03em;white-space:nowrap;opacity:0;transform:translateY(16px);animation:heroFadeUp .65s cubic-bezier(.22,1,.36,1) forwards;animation-delay:.35s}.hero__subtitle{max-width:640px;margin-top:1rem;color:var(--text-secondary);font-size:1.08rem;line-height:1.75;letter-spacing:.02em;opacity:0;transform:translateY(16px);animation:heroFadeUp .65s cubic-bezier(.22,1,.36,1) forwards;animation-delay:.55s}@keyframes heroLineExpand{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes heroSweep{0%{transform:translate(-220%)}to{transform:translate(420%)}}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.dashboard-hero{padding:var(--space-7) 0 var(--space-10);margin-bottom:var(--space-8)}.hero__heading{flex-direction:column;gap:.9rem}.hero__line{flex:none;width:120px;max-width:120px}.hero__title{font-size:clamp(1.8rem,7vw,2.1rem);line-height:1.2;white-space:normal}.hero__subtitle{max-width:320px;margin-top:.9rem;font-size:.95rem;line-height:1.7}}.section{margin-bottom:var(--space-16)}.section:last-child{margin-bottom:0}.section__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.section__title{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.section__subtitle{margin-top:.35rem;color:var(--text-secondary);font-size:.95rem;line-height:1.6}.section__actions{display:flex;align-items:center;gap:var(--space-3)}@media(max-width:768px){.section{margin-bottom:var(--space-14)}.section__header{flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-5)}.section__title{font-size:1.3rem}}.bookmarks-header{margin-bottom:3.5rem}.bookmarks-header__title{margin:0 0 .75rem;color:var(--text-primary);font-size:clamp(2.5rem,5vw,3.5rem);font-weight:750;line-height:1.1;letter-spacing:-.02em}.bookmarks-header__description{max-width:680px;margin:0;color:var(--text-secondary);font-size:1rem;line-height:1.8}.empty-bookmarks{display:flex;flex-direction:column;align-items:center;margin-top:3.5rem;padding:4.5rem 2rem;text-align:center;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-xl)}.empty-bookmarks__title{margin:0 0 1rem;color:var(--text-primary);font-size:2rem;font-weight:700}.empty-bookmarks__description{max-width:520px;margin:0 0 2rem;color:var(--text-secondary);line-height:1.8}.empty-bookmarks__button{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.5rem;background:var(--primary-color);border-radius:var(--radius-md);color:var(--background);font-weight:600;text-decoration:none;transition:background var(--transition-fast),transform var(--transition-fast)}.empty-bookmarks__button:hover{background:var(--primary-hover);transform:translateY(-2px)}.empty-bookmarks__icon-wrapper{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin-bottom:1.75rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:50%}.empty-bookmarks__icon{font-size:2rem;color:#a855f7}@media(max-width:768px){.empty-bookmarks{padding:3.5rem 1.5rem}.empty-bookmarks__title{font-size:1.75rem}}.bookmarks-page{--bookmarks-text: var(--text-primary, #f8fafc);--bookmarks-muted: var(--text-secondary, #94a3b8);--bookmarks-border: var(--tag-border, #334155);width:100%;max-width:1100px;margin-inline:auto;padding:56px 28px 80px}.bookmarks-page .results-bar{display:flex;align-items:center;justify-content:space-between;min-height:22px;margin-block-end:24px}.bookmarks-page .results-count{margin:0;color:var(--bookmarks-muted);font-size:15px}.bookmarks-page .results-count strong{color:var(--bookmarks-text)}.bookmarks-page .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:28px}.bookmarks-page .empty-state{margin-block-start:48px;padding:60px 32px;border:1px dashed var(--bookmarks-border);border-radius:18px;text-align:center}.bookmarks-page .empty-state h3{margin:0 0 12px;color:var(--bookmarks-text)}.bookmarks-page .empty-state p{max-width:450px;margin-inline:auto;color:var(--bookmarks-muted);line-height:1.7;overflow-wrap:anywhere}.bookmarks-page .bookmarks-header--loading{margin-block-end:3.5rem}.bookmarks-page .bookmarks-skeleton__title{width:min(340px,80%);height:clamp(2.75rem,5vw,3.5rem);margin-block-end:.75rem}.bookmarks-page .bookmarks-skeleton__text{width:min(500px,75%);height:16px;margin-block-end:0}.bookmarks-page .bookmarks-skeleton__results{width:min(240px,65%);height:15px;margin-block-end:31px}@media(max-width:800px){.bookmarks-page{padding:42px 20px 72px}}@media(max-width:520px){.bookmarks-page{padding:32px 16px 64px}.bookmarks-page .grid{grid-template-columns:minmax(0,1fr);gap:20px}.bookmarks-page .empty-state{padding:48px 20px}.bookmarks-page .bookmarks-skeleton__title{width:85%}.bookmarks-page .bookmarks-skeleton__text{width:90%}}.not-found-page{display:grid;min-height:min(70vh,44rem);place-content:center;justify-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-4);text-align:center}.not-found-page__code{color:var(--primary-color);font-size:clamp(3rem,12vw,7rem);font-weight:800;line-height:.9}.not-found-page h1{font-size:clamp(1.75rem,5vw,2.75rem)}.not-found-page>p:not(.not-found-page__code){max-width:34rem;color:var(--text-secondary)}.not-found-page a,.not-found-page button{margin-top:var(--space-2);padding:var(--space-3) var(--space-5);border:0;border-radius:var(--radius-md);background:var(--primary-color);color:var(--background);font-weight:700;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.not-found-page a:hover,.not-found-page button:hover{background:var(--primary-hover);transform:translateY(-2px)}.not-found-page a:focus-visible,.not-found-page button:focus-visible{outline:3px solid var(--border-focus);outline-offset:3px}
