.soj-theme-light,.soj-journey-overlay.soj-theme-light .soj-journey-modal{--soj-bg:#fff;--soj-bg-2:#f9fafb;--soj-bg-3:#f3f4f6;--soj-border:#e5e7eb;--soj-text:#111827;--soj-text-2:#4b5563;--soj-text-3:#9ca3af;--soj-primary:#6c47ff;--soj-primary-d:#5535dd;--soj-primary-a:rgba(108,71,255,.12);--soj-success:#10b981;--soj-overlay:rgba(15,15,30,.72);--soj-shadow:0 20px 60px rgba(0,0,0,.18);--soj-hero-bg:#f3f4f6}.soj-theme-dark,.soj-journey-overlay.soj-theme-dark .soj-journey-modal{--soj-bg:#18181b;--soj-bg-2:#1f1f23;--soj-bg-3:#27272a;--soj-border:#3f3f46;--soj-text:#fafafa;--soj-text-2:#a1a1aa;--soj-text-3:#71717a;--soj-primary:#818cf8;--soj-primary-d:#6366f1;--soj-primary-a:rgba(129,140,248,.15);--soj-success:#34d399;--soj-overlay:rgba(0,0,0,.85);--soj-shadow:0 20px 60px rgba(0,0,0,.5);--soj-hero-bg:#27272a}.soj-index *,.soj-journey-overlay *{box-sizing:border-box}.soj-index{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",sans-serif;background:var(--soj-bg);color:var(--soj-text);padding:48px 24px 64px;min-height:60vh;transition:background .3s,color .3s}.soj-index-header{text-align:center;margin-bottom:48px;position:relative}.soj-index-title{font-size:clamp(28px,5vw,42px);font-weight:800;letter-spacing:-1px;margin:0 0 12px;background:linear-gradient(135deg,var(--soj-primary),#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.soj-index-subtitle{font-size:16px;color:var(--soj-text-2);margin:0}.soj-theme-toggle-btn{position:absolute;top:0;right:0;background:var(--soj-bg-3);border:1px solid var(--soj-border);border-radius:50px;padding:6px 14px;font-size:16px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s;color:var(--soj-text)}.soj-theme-toggle-btn:hover{background:var(--soj-primary-a)}.soj-theme-light .soj-moon{display:none}.soj-theme-dark .soj-sun{display:none}.soj-journey-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;max-width:1100px;margin:0 auto}.soj-journey-card-front{background:var(--soj-bg);border:1.5px solid var(--soj-border);border-radius:16px;padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer;position:relative;overflow:hidden}.soj-journey-card-front::before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--soj-primary),#ec4899);opacity:0;transition:opacity .2s}.soj-journey-card-front:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(108,71,255,.15);border-color:var(--soj-primary)}.soj-journey-card-front:hover::before{opacity:1}.soj-jcard-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px}.soj-jcard-icon{font-size:32px;line-height:1;flex-shrink:0}.soj-jcard-meta{flex:1}.soj-jcard-title{font-size:17px;font-weight:700;margin:0 0 4px;color:var(--soj-text);line-height:1.3}.soj-jcard-steps{font-size:12px;color:var(--soj-text-3);font-weight:500}.soj-jcard-badge{display:inline-block;margin-left:8px;background:var(--soj-primary-a);color:var(--soj-primary);font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.soj-jcard-desc{font-size:14px;color:var(--soj-text-2);line-height:1.6;margin:0 0 16px}.soj-jcard-progress{margin-bottom:16px;display:flex;align-items:center;gap:10px}.soj-jcard-progress-bar{flex:1;height:5px;background:var(--soj-bg-3);border-radius:3px;overflow:hidden}.soj-jcard-progress-fill{height:100%;background:linear-gradient(90deg,var(--soj-primary),#ec4899);border-radius:3px;transition:width .5s ease}.soj-jcard-progress-txt{font-size:12px;font-weight:600;color:var(--soj-primary);min-width:30px;text-align:right}.soj-jcard-actions{display:flex;gap:8px}.soj-btn-start{flex:1;padding:11px 16px;border-radius:10px;border:2px solid var(--soj-primary);background:var(--soj-primary);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}.soj-btn-start:hover{background:var(--soj-primary-d);border-color:var(--soj-primary-d);transform:scale(1.02)}.soj-btn-start.soj-btn-resume{background:0 0;color:var(--soj-primary)}.soj-btn-start.soj-btn-resume:hover{background:var(--soj-primary);color:#fff}.soj-btn-start.soj-btn-completed{background:var(--soj-bg-3);color:var(--soj-text-2);border-color:var(--soj-border)}.soj-btn-start.soj-btn-completed:hover{background:var(--soj-bg-2)}.soj-embed-wrap{display:inline-block}.soj-embed-start{padding:12px 24px;border-radius:10px;border:2px solid var(--soj-primary);background:var(--soj-primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}.soj-embed-start:hover{background:var(--soj-primary-d);transform:scale(1.02)}.soj-empty-state{text-align:center;padding:80px 20px;color:var(--soj-text-3)}.soj-empty-icon{font-size:64px;margin-bottom:16px}.soj-empty-state p{font-size:15px}.soj-login-notice{background:var(--soj-bg-2);border:1px solid var(--soj-border);border-radius:12px;padding:20px 24px;text-align:center}.soj-login-notice a{color:var(--soj-primary);font-weight:600}.soj-journey-overlay{position:fixed;inset:0;z-index:999999;display:flex;align-items:flex-end;justify-content:center;background:var(--soj-overlay,rgba(15,15,30,.72));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:0;transition:opacity .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",sans-serif}@media (min-width:600px){.soj-journey-overlay{align-items:center;padding:20px}}.soj-journey-modal{background:var(--soj-bg);color:var(--soj-text);width:100%;max-width:700px;height:92vh;border-radius:20px 20px 0 0;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--soj-shadow);transition:background .3s,color .3s;position:relative;animation:soj-slide-up .35s cubic-bezier(.34,1.56,.64,1) both}@media (min-width:600px){.soj-journey-modal{height:auto;max-height:92vh;border-radius:20px;animation:soj-pop-in .3s cubic-bezier(.34,1.2,.64,1) both}}.soj-modal-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;border-bottom:1px solid var(--soj-border);flex-shrink:0}.soj-modal-journey-title{font-size:14px;font-weight:700;color:var(--soj-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65%}.soj-modal-topbar-right{display:flex;align-items:center;gap:8px}.soj-theme-btn{background:0 0;border:1px solid var(--soj-border);border-radius:8px;padding:5px 8px;cursor:pointer;color:var(--soj-text-2);display:flex;align-items:center;transition:all .2s}.soj-theme-btn:hover{background:var(--soj-bg-3);color:var(--soj-primary)}.soj-modal-close-btn{background:0 0;border:none;font-size:18px;cursor:pointer;color:var(--soj-text-3);padding:5px 8px;border-radius:8px;line-height:1;transition:all .2s}.soj-modal-close-btn:hover{background:#fee2e2;color:#ef4444}.soj-modal-progress-wrap{display:flex;align-items:center;gap:12px;padding:10px 18px;flex-shrink:0;border-bottom:1px solid var(--soj-border)}.soj-modal-progress-track{flex:1;height:4px;background:var(--soj-bg-3);border-radius:2px;overflow:hidden}.soj-modal-progress-fill{height:100%;background:linear-gradient(90deg,var(--soj-primary),#ec4899);border-radius:2px;transition:width .5s cubic-bezier(.25,.46,.45,.94)}.soj-modal-step-count{font-size:12px;font-weight:600;color:var(--soj-text-3);white-space:nowrap}.soj-step-dots{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;flex-shrink:0;flex-wrap:wrap}.soj-dot{width:8px;height:8px;border-radius:50%;background:var(--soj-bg-3);border:2px solid var(--soj-border);cursor:pointer;transition:all .2s;flex-shrink:0}.soj-dot.active{background:var(--soj-primary);border-color:var(--soj-primary);width:22px;border-radius:4px}.soj-dot.done{background:var(--soj-success);border-color:var(--soj-success)}.soj-dot:hover{border-color:var(--soj-primary)}.soj-modal-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative;scroll-behavior:smooth}.soj-modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--soj-text-3)}.soj-spinner{width:36px;height:36px;border:3px solid var(--soj-bg-3);border-top-color:var(--soj-primary);border-radius:50%;animation:soj-spin .7s linear infinite;margin-bottom:12px}.soj-step-slide{display:none;padding:0;animation:soj-fade-step .3s ease both}.soj-step-slide.active{display:block}.soj-step-slide.going-back{animation-name:soj-fade-step-back}.soj-step-hero-img{width:100%;max-height:280px;object-fit:cover;display:block;background:var(--soj-hero-bg)}.soj-step-video-wrap{position:relative;width:100%;background:#000;aspect-ratio:16/9;overflow:hidden}.soj-step-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.soj-step-body{padding:24px 24px 16px}.soj-step-title{font-size:clamp(20px,4vw,26px);font-weight:800;letter-spacing:-.5px;margin:0 0 12px;color:var(--soj-text);line-height:1.2}.soj-step-desc{font-size:15px;color:var(--soj-text-2);line-height:1.7;margin:0 0 20px}.soj-step-extra{font-size:14px;color:var(--soj-text-2);line-height:1.6;margin-bottom:20px;padding:16px;background:var(--soj-bg-2);border-radius:10px;border:1px solid var(--soj-border)}.soj-step-extra p{margin:0}.soj-step-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.soj-step-btn{padding:9px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.soj-step-btn-primary{background:var(--soj-primary);color:#fff;border:2px solid var(--soj-primary)}.soj-step-btn-primary:hover{background:var(--soj-primary-d)}.soj-step-btn-outline{background:0 0;color:var(--soj-primary);border:2px solid var(--soj-primary)}.soj-step-btn-outline:hover{background:var(--soj-primary);color:#fff}.soj-step-btn-link{background:0 0;border:none;color:var(--soj-primary);text-decoration:underline;padding:9px 4px}.soj-step-attachments{margin-bottom:16px}.soj-attach-link{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--soj-bg-2);border:1px solid var(--soj-border);border-radius:8px;text-decoration:none;color:var(--soj-text);font-size:13px;font-weight:600;margin-bottom:6px;transition:all .2s}.soj-attach-link:hover{border-color:var(--soj-primary);color:var(--soj-primary);background:var(--soj-primary-a)}.soj-attach-icon{font-size:16px;flex-shrink:0}.soj-step-cta-wrap{margin-top:8px;margin-bottom:4px}.soj-cta-btn{display:block;width:100%;padding:14px 20px;background:linear-gradient(135deg,var(--soj-primary),#ec4899);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;transition:all .2s;font-family:inherit;letter-spacing:.2px}.soj-cta-btn:hover{opacity:.92;transform:scale(1.01)}.soj-modal-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 16px;border-top:1px solid var(--soj-border);flex-shrink:0;gap:10px}.soj-nav-prev,.soj-nav-next{display:flex;align-items:center;gap:6px;padding:10px 18px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:2px solid var(--soj-border);background:var(--soj-bg-2);color:var(--soj-text-2);transition:all .2s;font-family:inherit}.soj-nav-prev:disabled{opacity:.35;cursor:not-allowed}.soj-nav-prev:not(:disabled):hover{border-color:var(--soj-primary);color:var(--soj-primary)}.soj-nav-next{background:var(--soj-primary);border-color:var(--soj-primary);color:#fff}.soj-nav-next:hover{background:var(--soj-primary-d)}.soj-nav-next.soj-finish{background:linear-gradient(135deg,var(--soj-primary),#ec4899);border-color:transparent}.soj-nav-center{flex:1;text-align:center}.soj-resume-prompt{position:absolute;inset:0;background:var(--soj-bg);display:flex;align-items:center;justify-content:center;z-index:10;padding:30px}.soj-resume-inner{text-align:center;max-width:360px}.soj-resume-inner h3{font-size:22px;font-weight:800;margin:0 0 10px}.soj-resume-inner p{font-size:15px;color:var(--soj-text-2);margin:0 0 24px;line-height:1.6}.soj-resume-actions{display:flex;flex-direction:column;gap:10px}.soj-btn-nav{padding:13px 20px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;border:2px solid var(--soj-primary);background:var(--soj-primary);color:#fff;font-family:inherit;transition:all .2s}.soj-btn-nav:hover{background:var(--soj-primary-d)}.soj-btn-outline-nav{background:0 0;color:var(--soj-text-2);border-color:var(--soj-border)}.soj-btn-outline-nav:hover{border-color:var(--soj-primary);color:var(--soj-primary);background:0 0}.soj-completion-screen{position:absolute;inset:0;background:var(--soj-bg);overflow-y:auto;z-index:10;animation:soj-pop-in .4s cubic-bezier(.34,1.2,.64,1) both}.soj-completion-inner{text-align:center;padding:40px 30px;max-width:480px;margin:0 auto}.soj-completion-icon{font-size:60px;margin-bottom:16px;animation:soj-bounce .5s .2s both}.soj-completion-screen h2{font-size:28px;font-weight:800;margin:0 0 12px}.soj-completion-message{font-size:15px;color:var(--soj-text-2);line-height:1.6;margin-bottom:24px}.soj-completion-actions{display:flex;justify-content:center;gap:12px}.soj-certificate{margin:20px 0;padding:4px;background:linear-gradient(135deg,#f5d060,#f9a825,#f5d060);border-radius:16px}.soj-cert-border{background:var(--soj-bg);border-radius:14px;padding:30px 24px;border:4px double #f9a825}.soj-cert-logo{font-size:44px;margin-bottom:8px}.soj-cert-border h3{font-size:18px;font-weight:800;color:#b7791f;margin:0 0 14px;text-transform:uppercase;letter-spacing:2px}.soj-cert-border p{font-size:13px;color:var(--soj-text-2);margin:4px 0}.soj-cert-border h4{font-size:20px;font-weight:800;margin:6px 0;color:var(--soj-primary)}.soj-cert-date{font-size:12px;color:var(--soj-text-3);margin-top:12px}.soj-swipe-hint{display:none;text-align:center;font-size:12px;color:var(--soj-text-3);padding:4px}@media (max-width:599px){.soj-swipe-hint{display:block}}.soj-modal-content::-webkit-scrollbar{width:4px}.soj-modal-content::-webkit-scrollbar-track{background:0 0}.soj-modal-content::-webkit-scrollbar-thumb{background:var(--soj-border);border-radius:2px}@media (max-width:480px){.soj-journey-cards{grid-template-columns:1fr}.soj-step-body{padding:16px}.soj-index{padding:24px 16px 40px}.soj-modal-nav{padding:10px 12px 14px}.soj-nav-prev,.soj-nav-next{padding:9px 14px;font-size:13px}}