*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-outfit),var(--font-noto),"PingFang SC","Microsoft YaHei",system-ui,sans-serif;background:linear-gradient(160deg,#fbfaf6,#f1ede2);min-height:100vh;color:#1c1b19}.container{max-width:680px;margin:0 auto;padding:28px 16px 80px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid #ebe5d8;padding:10px 20px}.site-header-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.header-progress{display:flex;align-items:center;gap:12px;margin-top:8px}.header-progress-bar{flex:1 1;height:8px;background:#efebe0;border-radius:999px;overflow:hidden}.header-progress-fill{height:100%;background:linear-gradient(90deg,#ffc824,#ff9d3d);border-radius:999px;transition:width .4s ease}.header-progress-text{font-size:12px;font-weight:700;color:#8a6d00;white-space:nowrap}.header-progress-text.full{color:#2e9e5b}.site-header-brand img{display:block;height:24px;width:auto}.site-header-brand:hover{opacity:.8}.site-header-right{display:flex;align-items:center;gap:12px;min-height:28px}.site-user{font-size:13px;color:#555}.site-header-link{font-size:13px;font-weight:600;color:#c53a0c;text-decoration:none}.site-header-link:hover{text-decoration:underline}.notice-box{background:#fff8e1;border:1px solid #f0e2ad;border-radius:14px;padding:16px 18px;margin-bottom:16px}.notice-title{font-size:13px;font-weight:700;color:#7a5c1e;margin-bottom:6px}.notice-text{font-size:14px;color:#55503f;line-height:1.8;white-space:pre-line}.card{background:#fff;border-radius:18px;border:1px solid #ebe5d8;box-shadow:0 12px 32px rgba(70,60,40,.08);padding:30px 28px}.brand{display:inline-block;margin-bottom:12px;text-decoration:none}.brand-logo{display:block;height:28px;width:auto}a.brand:hover{opacity:.8}h1{font-size:26px;margin-bottom:4px}.subtitle{color:#888;font-size:14px;margin-bottom:16px}blockquote{border-left:3px solid #d8d2c2;padding:8px 14px;color:#6b6b6b;font-size:14px;font-style:italic;line-height:1.5;margin-bottom:22px}.quote-zh{color:#6b6b6b}.quote-author,.quote-zh{display:block;margin-top:6px;font-style:normal}.quote-author{font-weight:600;color:#555}.meta-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin-bottom:18px}.user-chip{font-size:12px;background:#f2eee3;color:#6b6760;padding:5px 12px;border-radius:999px}.save-chip{font-size:12px;color:#9a9a9a}.save-chip.saved{color:#2e9e5b}.save-chip.error{color:#d0452b}.save-chip.saving{color:#b88a2a}ol.steps{list-style:none}li.step{display:flex;gap:14px;padding:18px 0;border-top:1px solid #f0f0f0}.step-body{flex:1 1;min-width:0}.step-title{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;line-height:1.4}.step-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#1c1b19;color:#fff;border-radius:50%;font-size:12px;flex-shrink:0}.step.done .step-title{color:#aaa;text-decoration:line-through}.step.done .step-num{background:#2e9e5b}.step-desc{font-size:14px;color:#6b6b6b;line-height:1.55;margin:8px 0 0}.where-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.where-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}.where-chip.claude{background:#fdf1ea;color:#b0552f;border:1px solid #f3d6c3}.where-icon{width:14px;height:14px;border-radius:3px;margin-right:5px;flex-shrink:0}.where-chip.browser{background:#e8f1fb;color:#2c5f8a;border:1px solid #cfe2f5}.where-chip.page{background:#fff8e1;color:#8a6d00;border:1px solid #f0e2ad}.where-chip.phone{background:#e9f7ec;color:#23744a;border:1px solid #cbe9d3}li.step.current{background:#fffcf0;border:1px solid #f0d98c;border-radius:14px;padding:18px 14px;margin:10px 0;box-shadow:0 4px 14px rgba(28,27,25,.08)}li.step.current+li.step{border-top:none}.step-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.done-btn{display:block;width:100%;margin-top:14px;padding:14px 16px;background:#ffc824;color:#1c1b19;border:none;border-radius:999px;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s,transform .1s;box-shadow:0 4px 12px rgba(255,200,36,.4)}.done-btn:hover{background:#f5bd12}.done-btn:active{transform:scale(.99)}.done-btn.undone{background:#fff;border:1.5px solid #e0e0e0;color:#9a9a9a;font-weight:600;box-shadow:none}.done-btn.undone:hover{background:#f7f7f7}.done-btn.locked{color:#b3b3b3;font-weight:600;cursor:not-allowed;box-shadow:none}.done-btn.locked,.done-btn.locked:hover{background:#f3f3f3}.link-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;background:#fff;color:#1c1b19;border:1.5px solid #d8d2c2;text-decoration:none;border-radius:999px;font-size:14px;font-weight:600;white-space:nowrap}.link-btn:hover{background:#f7f4ea}.example{margin-top:12px;font-size:12px;color:#a39a83;word-break:break-all}.text-input{width:100%;margin-top:8px;padding:12px 14px;border:2px solid #e8e2d2;border-radius:10px;font-size:14px;outline:none;transition:border-color .15s}.text-input:focus{border-color:#1c1b19}.prep-intro{font-size:14px;color:#55503f;line-height:1.7;background:#fff8e1;border:1px solid #f0e2ad;border-radius:12px;padding:14px 16px;margin-bottom:18px}ol.substeps{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:8px}.substep{display:flex;gap:10px;align-items:flex-start}.substep-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#efebe0;color:#1c1b19;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0;margin-top:2px}.substep-text{font-size:14px;color:#444;line-height:1.6}.substep-text .substep-link{display:flex;width:-moz-fit-content;width:fit-content;margin-top:8px;padding:10px 16px;font-size:13px}.step-quote{display:flex;align-items:center;gap:16px;margin:12px 0 0;border-left-color:#ffc824}.step-quote-text{flex:1 1;min-width:0}.quote-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #ffc824}.step-illustration{max-width:400px;border-radius:14px;border:1px solid #eae4d4}.iter-diagram,.step-illustration{display:block;width:100%;height:auto;margin:14px auto 4px}.iter-diagram{max-width:520px}.step-note{margin-top:12px;font-size:13px;color:#7a5c1e;line-height:1.6;background:#fdf6e6;border:1px solid #f3e5c0;border-radius:10px;padding:10px 14px}.prompt-box{margin-top:12px;background:#f7f4ec;border:1px solid #eae4d4;border-radius:12px;padding:14px}.prompt-box.dev{background:#1c1b19;border-color:#1c1b19}.prompt-text{font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;color:#3a372c;white-space:pre-wrap;word-break:break-word}.prompt-box.dev .prompt-text{color:#f2eee0}.copy-btn{margin-top:12px;padding:9px 18px;background:#1c1b19;color:#fff;border:none;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s}.copy-btn:hover{opacity:.9}.gen-btn{display:block;width:100%;margin-top:14px;padding:14px 16px;background:#1c1b19;color:#fff;border:none;border-radius:999px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s}.gen-btn:hover{opacity:.88}.gen-btn:disabled{opacity:.6;cursor:default}.provision-box{margin-top:4px}.prompt-box.dev .copy-btn{background:#ffc824;color:#1c1b19}.copy-btn:disabled,.prompt-box.dev .copy-btn:disabled{background:#8a8a85;color:#d9d9d5;cursor:not-allowed;opacity:1}.tab-bar{display:flex;gap:6px;background:#f2eee3;border-radius:12px;padding:5px;margin-bottom:20px}.tab-btn{flex:1 1;border:none;background:transparent;padding:10px 6px;border-radius:9px;font-size:13px;font-weight:600;color:#6b6760;cursor:pointer;transition:all .15s;white-space:nowrap}.tab-btn.active{background:#fff;color:#1c1b19;box-shadow:0 2px 8px rgba(28,27,25,.18)}.agenda-hint{font-size:13px;color:#8a857b;line-height:1.6;background:#f7f4ec;border-radius:10px;padding:10px 14px;margin-bottom:16px}.agenda-list{list-style:none}.agenda-item{display:flex;gap:14px;padding:14px 0;border-top:1px solid #f0f0f0}.agenda-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#1c1b19;color:#fff;border-radius:50%;font-size:12px;flex-shrink:0;margin-top:1px}.agenda-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:5px}.agenda-item-title{font-size:15px;font-weight:600;color:#1a1a1a;line-height:1.4}.agenda-item-desc{font-size:14px;color:#6b6b6b;line-height:1.55}.homework-empty{text-align:center;color:#8a857b;font-size:14px;line-height:1.6;padding:46px 20px}.homework-emoji{font-size:40px;margin-bottom:12px}.module-list{display:flex;flex-direction:column;gap:26px;margin-top:4px}.module-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px}.module-num{flex-shrink:0;background:#1c1b19;color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;white-space:nowrap}.module-title{font-size:16px;font-weight:700}.module-soon .module-num{background:#c4beae}.module-desc,.module-soon .module-title{color:#9a948a}.module-desc{font-size:13px;padding-left:4px}.module-lessons{display:flex;flex-direction:column;gap:10px}.check-mark{flex-shrink:0;color:#2e9e5b;font-size:16px;font-weight:800}.mini-count{flex-shrink:0;font-size:12px;color:#b0a99a;font-weight:600}.lock-mark{flex-shrink:0;font-size:13px;opacity:.55}.soon-tag{font-size:12px;color:#b0a99a}.lesson-type{flex-shrink:0;font-size:11px;font-weight:700;color:#6b6760;background:#efebe0;padding:4px 10px;border-radius:999px;white-space:nowrap}.lesson-list{display:flex;flex-direction:column;gap:14px;margin-top:4px}.lesson-card{display:flex;align-items:center;gap:14px;padding:13px 16px;background:#f7f4ec;border:1px solid #eae4d4;border-radius:14px;text-decoration:none;color:inherit;transition:background .15s,transform .15s,box-shadow .15s}.lesson-card:hover{background:#f1ecdf;transform:translateY(-1px);box-shadow:0 6px 18px rgba(28,27,25,.15)}.lesson-num{flex-shrink:0;background:#1c1b19;color:#fff;font-size:12px;font-weight:700;padding:6px 10px;border-radius:999px;white-space:nowrap}.lesson-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.lesson-title{font-size:15px;font-weight:600;color:#1c1b19}.lesson-desc{font-size:13px;color:#6b6b6b;line-height:1.5}.lesson-arrow{flex-shrink:0;color:#1c1b19;font-size:18px;font-weight:700}.lesson-card.disabled{opacity:.55;cursor:default}.lesson-card.disabled:hover{background:#f7f4ec;transform:none;box-shadow:none}.lesson-card.disabled .lesson-num{background:#c4beae}.lesson-card.today{border-color:#ffc824;background:#fff8e1}.lesson-chip{flex-shrink:0;font-size:11px;font-weight:600;color:#8a8a8a;background:#ececec;padding:4px 10px;border-radius:999px;white-space:nowrap}.lesson-chip.today{color:#fff;background:#1c1b19}.lesson-card.start{border-color:#ffc824;background:#fff8e1}.lesson-card.start:hover{background:#fdf3d0}.lesson-card.start .lesson-num{background:#1c1b19}.lesson-chip.start{color:#1c1b19;background:#ffc824}.lesson-chip.complete{color:#fff;background:#2e9e5b}.lesson-mini-progress{display:block;height:6px;background:#efebe0;border-radius:999px;overflow:hidden;margin-top:8px}.lesson-mini-fill{display:block;height:100%;background:linear-gradient(90deg,#ffc824,#ff9d3d);border-radius:999px}.lesson-mini-fill.full{background:#2e9e5b}.lesson-nav{display:block;margin-top:20px;padding:13px 16px;background:#f7f4ec;border:1px solid #eae4d4;border-radius:12px;color:#1c1b19;text-decoration:none;font-size:14px;font-weight:600;text-align:center;transition:background .15s}.lesson-nav:hover{background:#f1ecdf}.lesson-nav+.lesson-nav{margin-top:10px}.empty{text-align:center;color:#aaa;padding:40px 0;font-size:15px}.footer-note{text-align:center;color:#8a857b;font-size:13px;margin-top:22px}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 16px;gap:18px}.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid #ebe5d8;border-radius:16px;box-shadow:0 12px 32px rgba(70,60,40,.08);padding:36px 32px 28px}.auth-logo{display:block;width:-moz-fit-content;width:fit-content;margin:0 auto 18px}.auth-logo img{display:block;height:32px;width:auto}.auth-logo:hover{opacity:.8}.auth-title{font-size:20px;font-weight:800;text-align:center;margin-bottom:4px}.auth-sub{font-size:13px;color:#8a857b;text-align:center;margin-bottom:22px}.auth-btn{width:100%;padding:13px 16px;background:#1c1b19;color:#fff;border:none;border-radius:999px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s}.auth-btn:hover{opacity:.88}.auth-btn:active{transform:scale(.99)}.auth-btn:disabled{opacity:.6;cursor:default}.auth-help{font-size:12px;color:#8a857b;text-align:center;line-height:1.7;margin-top:18px}.auth-footer{font-size:12px;color:#aaa294}.auth-shell .tab-bar{margin-bottom:18px}.auth-shell .join-banner{margin-bottom:14px;font-size:13px;padding:10px 14px}.auth-form{gap:16px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:4px}.auth-label{font-size:13px;font-weight:600;color:#555}.auth-error{font-size:13px;color:#d0452b;background:#fdf0ec;border:1px solid #f5d9d0;border-radius:10px;padding:10px 14px}.field-error{margin-top:10px}.chip-logout{margin-left:8px;border:none;background:transparent;color:#8a857b;font-size:12px;cursor:pointer;text-decoration:underline;padding:0}.home-auth-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.home-auth-link{font-size:13px;font-weight:600;color:#c53a0c;text-decoration:none}.home-auth-link:hover{text-decoration:underline}.admin-shell{min-height:100vh;background:#f4f1e9;display:flex}.admin-sidebar{width:232px;flex-shrink:0;background:#fff;border-right:1px solid #ebe5d8;display:flex;flex-direction:column;padding:22px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side-logo{display:block;margin:0 4px 6px}.side-logo img{display:block;height:26px;width:auto}.side-caption{font-size:12px;color:#8a857b;margin:0 4px 18px}.side-nav{display:flex;flex-direction:column;gap:4px}.side-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;text-align:left;font-size:14px;font-weight:600;color:#6b6760;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s,color .15s}.side-item:hover{background:#f7f4ec;color:#1c1b19}.side-item.active{background:#1c1b19;color:#fff}.side-icon{font-size:15px}.side-footer{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:14px 4px 0;border-top:1px solid #f0ece2}.side-link{font-size:13px;font-weight:600;color:#c53a0c;text-decoration:none}.side-link:hover{text-decoration:underline}.side-user{font-size:13px;color:#555}.admin-content{flex:1 1;min-width:0;padding:26px 28px 60px}.admin-content>*{max-width:1000px}.admin-content>.panel-wide{max-width:none}.content-head{margin-bottom:18px}.content-title{font-size:22px;font-weight:800;margin:0}@media (max-width:820px){.admin-shell{flex-direction:column}.admin-sidebar{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px}.side-caption{display:none}.side-nav{flex-direction:row;flex-wrap:wrap}.side-item{width:auto;padding:8px 12px}.side-footer{margin-top:0;margin-left:auto;flex-direction:row;align-items:center;border-top:none;padding:0}.admin-content{padding:20px 16px 50px}}.admin-loading{max-width:480px;margin:80px auto;text-align:center;color:#888;display:flex;flex-direction:column;gap:16px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid #ebe5d8;border-radius:12px;padding:16px 20px}.stat-value{font-size:28px;font-weight:800;color:#1a1a1a;line-height:1.2}.stat-label{font-size:13px;color:#8a857b;margin-top:2px}.panel{background:#fff;border:1px solid #ebe5d8;border-radius:12px;padding:20px 22px;margin-bottom:20px}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.panel-title{font-size:16px;font-weight:700;margin:0}.admin-hint{font-size:13px;color:#8a857b;line-height:1.6;margin-bottom:14px}.row-list{display:flex;flex-direction:column;gap:10px}.row-item{justify-content:space-between;background:#faf8f1;border:1px solid #ebe6d9;border-radius:10px;padding:12px 14px}.row-info,.row-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.row-badge{background:#efebe0;color:#5b574f;font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;white-space:nowrap}.row-badge.purple{background:#1c1b19;color:#fff}.row-title{font-size:14px;font-weight:600}.row-muted{font-size:12px;color:#aaa294}.stu-create{display:grid;grid-template-columns:1fr 1.4fr 1.2fr 1fr auto;grid-gap:10px;gap:10px;align-items:center;margin-bottom:12px}.stu-create .text-input{margin-top:0}.stu-create .copy-btn{margin-top:0;white-space:nowrap}@media (max-width:760px){.stu-create{grid-template-columns:1fr}}.cred-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;background:#eefaf2;border:1px solid #cdeed9;border-radius:10px;padding:12px 14px;margin-top:12px}.cred-box .copy-btn{margin-top:0}.cred-text{font-size:13px;color:#1e6b40;line-height:1.7}.cred-text code{background:#fff;border:1px solid #cdeed9;border-radius:6px;padding:2px 8px;font-size:13px}.admin-footer{text-align:center;color:#aaa294;font-size:12px;margin-top:10px}.logout-btn{border:1px solid #e0e0e0;background:#fff;color:#777;font-size:12px;padding:6px 12px;border-radius:999px;cursor:pointer}.logout-btn:hover{background:#f7f7f7}.table-scroll{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;font-size:11px;color:#8a857b;font-weight:600;padding:8px 5px;border-bottom:2px solid #efebe0;white-space:nowrap}.admin-table td{padding:9px 5px;border-bottom:1px solid #f0f0f0;vertical-align:middle}.stu-name{font-weight:600}.stu-username{font-size:12px;color:#9a9a9a;word-break:break-all}.cell-progress{display:inline-block;font-size:12px;font-weight:600;color:#9a9a9a;background:#f2f2f2;border-radius:999px;padding:3px 8px;white-space:nowrap}.cell-progress.part{color:#7a5c1e;background:#fdf3d9}.cell-progress.full{color:#fff;background:#2e9e5b}.site-link{font-size:12px;font-weight:600;color:#c53a0c;text-decoration:none;white-space:nowrap}.site-link:hover{text-decoration:underline}.mini-btn{border:1px solid #e0e0e0;background:#fff;color:#777;font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer}.mini-btn.danger:hover{border-color:#d0452b;color:#d0452b}.lesson-admin-list{display:flex;flex-direction:column;gap:10px}.lesson-admin-row{justify-content:space-between;background:#f7f4ec;border:1px solid #eae4d4;border-radius:12px;padding:12px 14px}.lesson-admin-info,.lesson-admin-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.lesson-admin-num{background:#1c1b19;color:#fff;font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;white-space:nowrap}.lesson-admin-title{font-size:14px;font-weight:600}.lesson-admin-nopage{font-size:12px;color:#b0a5c4}.status-select{padding:8px 10px;border:2px solid #e8e2d2;border-radius:10px;font-size:13px;background:#fff;outline:none}.status-select:focus{border-color:#1c1b19}.admin-h2-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:26px}.admin-h2-row .admin-h2{margin:0}.cohort-select{font-size:12px;padding:6px 8px}.cohort-create{display:flex;gap:10px;margin-bottom:14px;align-items:center}.cohort-create .cohort-input{flex:1 1;margin-top:0}.cohort-create .copy-btn{margin-top:0;white-space:nowrap}.cohort-actions{display:flex;gap:8px;align-items:center}.row-item.lesson-edit{display:flex;flex-direction:column;align-items:stretch;gap:12px}.lesson-desc-input{resize:vertical;font-family:inherit;line-height:1.6}.lesson-edit-actions{display:flex;gap:10px;align-items:center}.cohort-actions .copy-btn,.lesson-edit-actions .copy-btn{margin-top:0}.join-banner{font-size:14px;font-weight:600;color:#1e6b40;background:#eefaf2;border:1px solid #cdeed9;border-radius:12px;padding:12px 16px;margin-bottom:16px;line-height:1.6}.join-hero{text-align:center;padding:18px 10px 6px}.join-emoji{font-size:44px;margin-bottom:10px}.join-title{font-size:20px;font-weight:700;margin-bottom:8px}.join-desc{font-size:14px;color:#6b6b6b;line-height:1.7;max-width:420px;margin:0 auto}.done-btn.done-link{display:block;text-align:center;text-decoration:none;box-sizing:border-box}.journey{display:block;width:100%;max-width:560px;height:auto;margin:4px auto 18px}.jnode{transform-box:fill-box;transform-origin:center}.jseg-track{stroke:#eae4d4}.jseg{stroke:#ffc824;stroke-dasharray:80}.jrocket{transform-box:fill-box;transform-origin:center}.jn1{animation:kjn1 10s ease-in-out infinite}@keyframes kjn1{0%,2%{opacity:.28;transform:scale(1)}5%{opacity:1;transform:scale(1.16)}8%{opacity:1;transform:scale(1)}94%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.jn2{animation:kjn2 10s ease-in-out infinite}@keyframes kjn2{0%,16%{opacity:.28;transform:scale(1)}19%{opacity:1;transform:scale(1.16)}22%{opacity:1;transform:scale(1)}94%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.jn3{animation:kjn3 10s ease-in-out infinite}@keyframes kjn3{0%,30%{opacity:.28;transform:scale(1)}33%{opacity:1;transform:scale(1.16)}36%{opacity:1;transform:scale(1)}94%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.jn4{animation:kjn4 10s ease-in-out infinite}@keyframes kjn4{0%,44%{opacity:.28;transform:scale(1)}47%{opacity:1;transform:scale(1.16)}50%{opacity:1;transform:scale(1)}94%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.jn5{animation:kjn5 10s ease-in-out infinite}@keyframes kjn5{0%,74%{opacity:.28;transform:scale(1)}77%{opacity:1;transform:scale(1.16)}80%{opacity:1;transform:scale(1)}94%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.js1{animation:kjs1 10s linear infinite}@keyframes kjs1{0%,8%{stroke-dashoffset:80}14%{stroke-dashoffset:0}94%{stroke-dashoffset:0}to{stroke-dashoffset:80}}.js2{animation:kjs2 10s linear infinite}@keyframes kjs2{0%,22%{stroke-dashoffset:80}28%{stroke-dashoffset:0}94%{stroke-dashoffset:0}to{stroke-dashoffset:80}}.js3{animation:kjs3 10s linear infinite}@keyframes kjs3{0%,36%{stroke-dashoffset:80}42%{stroke-dashoffset:0}94%{stroke-dashoffset:0}to{stroke-dashoffset:80}}.js4{animation:kjs4 10s linear infinite}@keyframes kjs4{0%,66%{stroke-dashoffset:80}72%{stroke-dashoffset:0}94%{stroke-dashoffset:0}to{stroke-dashoffset:80}}.jloop{animation:kjloop 10s ease-in-out infinite}@keyframes kjloop{0%,48%{opacity:0}52%{opacity:1}55%{opacity:.35}58%{opacity:1}61%{opacity:.35}64%{opacity:1}94%{opacity:1}to{opacity:0}}.jrocket{animation:kjrocket 10s ease-in-out infinite}@keyframes kjrocket{0%,80%{transform:translateY(0) rotate(0deg)}84%{transform:translateY(-18px) rotate(-10deg)}88%{transform:translateY(-22px) rotate(-6deg)}92%{transform:translateY(0) rotate(0deg)}to{transform:translateY(0) rotate(0deg)}}@media (prefers-reduced-motion:reduce){.jloop,.jnode,.jrocket,.jseg{animation:none!important}.jnode{opacity:1}.jseg{stroke-dashoffset:0}.jloop{opacity:1}}.tcards{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:14px}@media (max-width:560px){.tcards{grid-template-columns:1fr}}.tcard{display:flex;flex-direction:column;gap:6px;background:#faf8f2;border:1px solid #eae4d4;border-radius:14px;padding:16px;opacity:0;animation:tcardIn .55s ease forwards;transition:transform .18s ease,box-shadow .18s ease}.tcard:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(70,60,40,.1)}@keyframes tcardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.tico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:24px;background:#fff;border:1px solid #f0e2ad;border-radius:12px;animation:tfloat 3.6s ease-in-out infinite}@keyframes tfloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.tname{font-size:15px;font-weight:700;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.ten{font-size:11px;font-weight:600;color:#b0a99a;letter-spacing:.3px}.tdesc{font-size:13px;color:#6b6760;line-height:1.55}.tchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tchip{font-size:11px;color:#8a6d00;background:#fff8e1;border:1px solid #f0e2ad;border-radius:999px;padding:3px 9px;white-space:nowrap}@media (prefers-reduced-motion:reduce){.tcard{opacity:1}.tcard,.tico{animation:none}}.unlock-table{display:flex;flex-direction:column;gap:8px;margin-top:14px}.unlock-row{display:flex;align-items:center;gap:12px;background:#faf8f2;border:1px solid #eae4d4;border-radius:10px;padding:11px 14px}.unlock-type{flex:1 1;min-width:0;font-size:14px;font-weight:600}.unlock-when{font-size:12px;color:#8a857b}.unlock-status,.unlock-when{flex-shrink:0;white-space:nowrap}.unlock-status{font-size:12.5px;font-weight:700;color:#55503f}.arch{display:block;width:100%;max-width:560px;height:auto;margin:12px auto 4px}.wa-arrow{stroke-width:2.5;stroke-dasharray:6 5;opacity:.18}.wa-a1r{animation:waMarchR .7s linear infinite,waOn1 8s ease-in-out infinite}.wa-a2r{animation:waMarchR .7s linear infinite,waOn2 8s ease-in-out infinite}.wa-a2l{animation:waMarchL .7s linear infinite,waOn3 8s ease-in-out infinite}.wa-a1l{animation:waMarchL .7s linear infinite,waOn4 8s ease-in-out infinite}@keyframes waMarchR{to{stroke-dashoffset:-22}}@keyframes waMarchL{to{stroke-dashoffset:22}}@keyframes waOn1{0%,6%{opacity:.18}10%,22%{opacity:1}26%,to{opacity:.18}}@keyframes waOn2{0%,26%{opacity:.18}30%,42%{opacity:1}46%,to{opacity:.18}}@keyframes waOn3{0%,52%{opacity:.18}56%,68%{opacity:1}72%,to{opacity:.18}}@keyframes waOn4{0%,72%{opacity:.18}76%,88%{opacity:1}92%,to{opacity:.18}}.wa-glow{opacity:0}.wa-g1{animation:waG1 8s ease-in-out infinite}.wa-g2{animation:waG2 8s ease-in-out infinite}.wa-g3{animation:waG3 8s ease-in-out infinite}@keyframes waG1{0%{opacity:0}10%,3%{opacity:1}16%{opacity:0}88%{opacity:0}92%,97%{opacity:1}to{opacity:0}}@keyframes waG2{0%,20%{opacity:0}24%,32%{opacity:1}38%{opacity:0}66%{opacity:0}70%,76%{opacity:1}82%,to{opacity:0}}@keyframes waG3{0%,42%{opacity:0}46%,58%{opacity:1}64%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.wa-arrow{animation:none;opacity:1}.wa-glow{animation:none;opacity:0}}.domainj{display:block;width:100%;max-width:560px;height:auto;margin:4px auto 16px}.djnode{transform-box:fill-box;transform-origin:center}.djtrack{stroke:#eae4d4}.djseg{stroke:#ffc824;stroke-dasharray:110}.djn1{animation:kdjn1 12s ease-in-out infinite}@keyframes kdjn1{0%,2%{opacity:.28;transform:scale(1)}5%{opacity:1;transform:scale(1.16)}8%{opacity:1;transform:scale(1)}95%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.djn2{animation:kdjn2 12s ease-in-out infinite}@keyframes kdjn2{0%,15%{opacity:.28;transform:scale(1)}18%{opacity:1;transform:scale(1.16)}21%{opacity:1;transform:scale(1)}95%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.djn3{animation:kdjn3 12s ease-in-out infinite}@keyframes kdjn3{0%,28%{opacity:.28;transform:scale(1)}31%{opacity:1;transform:scale(1.16)}34%{opacity:1;transform:scale(1)}95%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.djn4{animation:kdjn4 12s ease-in-out infinite}@keyframes kdjn4{0%,41%{opacity:.28;transform:scale(1)}44%{opacity:1;transform:scale(1.22)}48%{opacity:1;transform:scale(1)}95%{opacity:1;transform:scale(1)}to{opacity:.28;transform:scale(1)}}.djs1{animation:kdjs1 12s linear infinite}@keyframes kdjs1{0%,8%{stroke-dashoffset:110}14%{stroke-dashoffset:0}95%{stroke-dashoffset:0}to{stroke-dashoffset:110}}.djs2{animation:kdjs2 12s linear infinite}@keyframes kdjs2{0%,21%{stroke-dashoffset:110}27%{stroke-dashoffset:0}95%{stroke-dashoffset:0}to{stroke-dashoffset:110}}.djs3{animation:kdjs3 12s linear infinite}@keyframes kdjs3{0%,34%{stroke-dashoffset:110}40%{stroke-dashoffset:0}95%{stroke-dashoffset:0}to{stroke-dashoffset:110}}.djup{animation:kdjup 12s ease-in-out infinite}@keyframes kdjup{0%,48%{opacity:0}54%{opacity:1}95%{opacity:1}to{opacity:0}}.djurl-old{animation:kdjurlold 12s ease-in-out infinite}@keyframes kdjurlold{0%,55%{opacity:1}61%{opacity:0}95%{opacity:0}to{opacity:1}}.djurl-new{transform-box:fill-box;transform-origin:center;animation:kdjurlnew 12s ease-in-out infinite}@keyframes kdjurlnew{0%,55%{opacity:0;transform:scale(.9)}61%{opacity:1;transform:scale(1.12)}66%{opacity:1;transform:scale(1)}95%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@media (prefers-reduced-motion:reduce){.djnode,.djseg,.djup,.djurl-new,.djurl-old{animation:none!important}.djnode{opacity:1}.djseg{stroke-dashoffset:0}.djup{opacity:1}.djurl-old{opacity:0}.djurl-new{opacity:1;transform:scale(1)}}.qr-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin:12px 0 4px}.qr-card{margin:0;padding:12px 14px 10px;background:#fff;border:1px solid #eae4d4;border-radius:14px;text-align:center;flex:1 1;min-width:150px;max-width:280px}.qr-card img{display:block;width:100%;height:auto;border-radius:8px}.qr-card figcaption{margin-top:6px;font-size:12.5px;font-weight:600;color:#6b6760}.step-illustration.phone-shot{max-width:290px}.feat-list{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin:12px 0}.feat-chip{text-align:left;padding:12px 14px;background:#fff;border:2px solid #eae4d4;border-radius:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px;font-family:inherit}.feat-chip:hover{border-color:#d8cfb8}.feat-chip.selected{border-color:#ffc824;background:#fffcf0}.feat-title{font-size:14px;font-weight:700;color:#1c1b19}.feat-desc{font-size:12px;color:#8a857b;line-height:1.5}@media (max-width:560px){.feat-list{grid-template-columns:1fr}}.unlock-link{color:#c53a0c;font-weight:600;text-decoration:none}.unlock-link:hover{text-decoration:underline}.lesson-badge{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;line-height:1.2;color:#8a6d00;background:#fffcf0;border:1px solid #f0d98c;border-radius:999px;padding:2px 9px;white-space:nowrap;vertical-align:1px}.ptodo-card{position:fixed;right:20px;bottom:20px;z-index:60;width:min(340px,calc(100vw - 32px));background:#fff;border:2px solid #ffc824;border-radius:16px;box-shadow:0 10px 30px rgba(28,27,25,.16);padding:14px 16px 16px}.ptodo-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ptodo-title{font-size:14.5px;font-weight:800;color:#1c1b19}.ptodo-min{border:none;background:#f4f0e6;color:#6b6760;width:24px;height:24px;border-radius:8px;cursor:pointer;font-size:14px;line-height:1}.ptodo-text{font-size:13px;color:#555;line-height:1.65;margin:8px 0 12px}.ptodo-btn{width:100%;border:none;background:#ffc824;color:#1c1b19;font-size:14px;font-weight:700;padding:10px 14px;border-radius:999px;cursor:pointer}.ptodo-btn:disabled{opacity:.7;cursor:default}.ptodo-form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.ptodo-form .text-input{margin-top:0}.ptodo-textarea{resize:vertical;font-family:inherit}.ptodo-pill{position:fixed;right:20px;bottom:20px;z-index:60;border:2px solid #ffc824;background:#fffcf0;color:#1c1b19;font-size:13px;font-weight:700;padding:9px 16px;border-radius:999px;cursor:pointer;box-shadow:0 6px 18px rgba(28,27,25,.14)}.ptodo-pill.done{border-color:#cbe9d3;background:#f2faf4;color:#23744a}.proj-intro-cell{max-width:360px;font-size:13px;color:#555;line-height:1.5}.proj-missing{color:#b0a99a}.metric-subtitle{font-size:15px;font-weight:800;margin:26px 0 10px}.dau-chart{gap:3px;height:120px;padding:6px 2px 0;border-bottom:2px solid #efebe0}.dau-chart,.dau-col{display:flex;align-items:flex-end}.dau-col{flex:1 1;height:100%}.dau-bar{width:100%;min-height:2px;background:linear-gradient(180deg,#ffc824,#ff9d3d);border-radius:3px 3px 0 0}.dau-axis{display:flex;justify-content:space-between;font-size:11px;color:#b0a99a;margin-top:4px}.funnel{display:flex;flex-direction:column;gap:8px}.funnel-row{display:grid;grid-template-columns:88px 1fr 130px;align-items:center;grid-gap:10px;gap:10px}.funnel-label{font-size:12.5px;font-weight:600;color:#6b6760}.funnel-track{position:relative;height:16px;background:#f4f0e6;border-radius:999px;overflow:hidden}.funnel-bar{position:absolute;left:0;top:0;bottom:0;border-radius:999px}.funnel-bar.started{background:#f0d98c}.funnel-bar.completed{background:#2e9e5b}.funnel-nums{color:#8a857b}.engage-chip,.funnel-nums{font-size:12px;white-space:nowrap}.engage-chip{display:inline-block;font-weight:700;padding:3px 10px;border-radius:999px}.engage-chip.hot{background:#e9f7ec;color:#23744a}.engage-chip.warm{background:#fff8e1;color:#8a6d00}.engage-chip.risk{background:#fdf1ea;color:#b0552f}.engage-chip.lost{background:#f2f2f2;color:#9a9a9a}.metric-note{font-size:12px;color:#b0a99a;margin-top:14px;line-height:1.6}.step-illustration.book-cover{max-width:150px;border-radius:8px}.substep-logo{width:56px;height:56px;object-fit:contain;flex-shrink:0;background:#fff;border:1px solid #eae4d4;border-radius:12px;padding:7px;margin-right:4px}.done-btn.locked{cursor:pointer}.catchup-box{margin-top:10px;padding:14px 16px;background:#fffcf0;border:2px solid #f0d98c;border-radius:14px}.catchup-text{font-size:13.5px;color:#555;line-height:1.7;margin:0 0 12px}.catchup-actions{display:flex;gap:10px;flex-wrap:wrap}.catchup-btn{flex:1 1;min-width:150px;border:none;background:#ffc824;color:#1c1b19;font-size:13.5px;font-weight:700;padding:10px 14px;border-radius:999px;cursor:pointer}.catchup-btn.ghost{background:#fff;border:2px solid #e8e2d2;color:#6b6760}.floorplan{display:block;width:100%;max-width:600px;height:auto;margin:6px auto 14px}.fp-line{fill:none;stroke:#b0552f;stroke-width:2.5;stroke-dasharray:6 5;stroke-linecap:round;opacity:0;animation:fpdash 1s linear infinite}@keyframes fpdash{to{stroke-dashoffset:-22}}.fp-glow{transform-box:fill-box;transform-origin:center;opacity:0}.fpl1{animation:fpdash 1s linear infinite,fpo1 14s linear infinite}@keyframes fpo1{0%,2%{opacity:0}12%,4%{opacity:1}15%,to{opacity:0}}.fpl2{animation:fpdash 1s linear infinite,fpo2 14s linear infinite}@keyframes fpo2{0%,12%{opacity:0}14%,24%{opacity:1}27%,to{opacity:0}}.fpl3{animation:fpdash 1s linear infinite,fpo3 14s linear infinite}@keyframes fpo3{0%,15%{opacity:0}17%,27%{opacity:1}30%,to{opacity:0}}.fpl4{animation:fpdash 1s linear infinite,fpo4 14s linear infinite}@keyframes fpo4{0%,18%{opacity:0}20%,30%{opacity:1}33%,to{opacity:0}}.fpl5{animation:fpdash 1s linear infinite,fpo5 14s linear infinite}@keyframes fpo5{0%,52%{opacity:0}54%,64%{opacity:1}67%,to{opacity:0}}.fpl6{animation:fpdash 1s linear infinite,fpo6 14s linear infinite}@keyframes fpo6{0%,68%{opacity:0}70%,78%{opacity:1}81%,to{opacity:0}}.fpg1{animation:kfpg1 14s ease-in-out infinite}@keyframes kfpg1{0%,1%{opacity:0}3%{opacity:1}10%{opacity:1}14%{opacity:0}76%{opacity:0}80%{opacity:1}92%{opacity:1}97%,to{opacity:0}}.fpg2{animation:kfpg2 14s ease-in-out infinite}@keyframes kfpg2{0%,10%{opacity:0}13%{opacity:1}30%{opacity:1}35%,to{opacity:0}}.fpg3{animation:kfpg3 14s ease-in-out infinite}@keyframes kfpg3{0%,22%{opacity:0}26%{opacity:1}32%{opacity:.45}38%{opacity:1}44%{opacity:.45}50%{opacity:1}56%{opacity:0}to{opacity:0}}.fpg5{animation:kfpg5 14s ease-in-out infinite}@keyframes kfpg5{0%,22%{opacity:0}26%{opacity:1}32%{opacity:.45}38%{opacity:1}44%{opacity:.45}50%{opacity:1}56%{opacity:.45}60%{opacity:1}72%{opacity:1}77%,to{opacity:0}}.fpg4{animation:kfpg4 14s ease-in-out infinite}@keyframes kfpg4{0%,56%{opacity:0}60%{opacity:1}72%{opacity:1}77%,to{opacity:0}}.fp-cheer{transform-box:fill-box;transform-origin:center;opacity:0;animation:kfpcheer 14s ease-in-out infinite}@keyframes kfpcheer{0%,78%{opacity:0;transform:scale(.8)}82%{opacity:1;transform:scale(1.15)}86%{opacity:1;transform:scale(1)}94%{opacity:1}98%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.fp-cheer,.fp-glow,.fp-line{animation:none!important}.fp-glow,.fp-line{opacity:.6}.fp-cheer{opacity:0}}.survey-list{display:flex;flex-direction:column;gap:26px;margin-top:20px}.survey-title{font-size:15.5px;font-weight:700;margin-bottom:10px}.survey-req{color:#c53a0c;margin-left:4px}.survey-hint{font-size:12.5px;color:#8a857b;margin:-4px 0 10px}.nps-row{display:flex;gap:6px;flex-wrap:wrap}.nps-btn{width:42px;height:42px;border-radius:10px;border:2px solid #e8e2d2;background:#fff;font-size:15px;font-weight:700;color:#6b6760;cursor:pointer}.nps-btn.selected{background:#ffc824;border-color:#ffc824;color:#1c1b19}.opt-col{display:flex;flex-direction:column;gap:8px}.opt-pill{text-align:left;padding:11px 16px;border-radius:12px;border:2px solid #e8e2d2;background:#fff;font-size:14px;color:#3a372f;cursor:pointer;font-family:inherit}.opt-pill.selected{border-color:#ffc824;background:#fffcf0;font-weight:700}.survey-answer{font-size:13.5px;line-height:1.7;color:#555;padding:10px 14px;background:#fbfaf6;border:1px solid #efebe0;border-radius:10px;margin-bottom:8px}@media (max-width:560px){.ptodo-textarea,.text-input{font-size:16px}.survey-list{gap:30px}.opt-pill{padding:13px 16px;font-size:15px}.survey-title{font-size:16px}}.opt-pill{display:flex;align-items:center;gap:10px}.opt-mark{font-size:22px;line-height:1;width:24px;text-align:center;flex-shrink:0;color:#b0a99a}.opt-pill.selected .opt-mark{color:#c98f00}