/* duet-mode2：复刻参考页的卡片式漏斗结构，配色沿用 LazyDirector 黄绿品牌。 */
body.v3-experience.duet2{font-family:Inter,-apple-system,"system-ui","Segoe UI",Roboto,sans-serif;background:#050704}
/* 参考页按钮：Inter 800 / 17px。 */
.duet2 .btn{font-size:17px;font-weight:800;letter-spacing:-.01em}
.duet2 #app{background:radial-gradient(120% 80% at 50% 0%,#1b240d 0%,#0a0e06 48%,#050704 100%)}
.duet2 .screen{background:radial-gradient(120% 80% at 50% 0%,#1b240d 0%,#0a0e06 48%,#050704 100%)}
.duet2 .cta-wrap{background:linear-gradient(to top,#050704 64%,transparent)}

/* 顶部细进度条与获奖徽章。 */
.duet2 .top-progress{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:50;width:100%;max-width:440px;height:3px;background:#24241f;opacity:0;transition:opacity .2s;pointer-events:none}
.duet2 .top-progress.show{opacity:1}
.duet2 .top-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--brand-start),var(--brand-end));transition:width .35s ease}
.duet2 .app-badge{position:relative;z-index:6;display:flex;align-items:center;justify-content:center;gap:12px;flex:none;width:100%;height:54px;margin:16px auto 0;padding:0 18px;color:#f4f4f4}
.duet2 .badge-logo{display:block;width:auto;height:46px;flex:none}
.duet2 .back{top:20px;left:20px;background:#ffffff1c;border-color:#ffffff3d}

/* 欢迎页：参考投放页的视频卡结构，配色使用项目黄绿品牌。 */
.duet2 .welcome{overflow:hidden;background:radial-gradient(120% 60% at 50% 0%,#8ab81f3d,transparent 62%),radial-gradient(90% 45% at 50% 100%,#a9f10f1f,transparent 70%),#080b05}
.duet2 .welcome .v2top{display:flex;justify-content:center;flex:0 0 auto;padding:14px 0 6px}
.duet2 .welcome .app-badge{height:52px;margin:14px auto 6px;padding:0}
.duet2 .welcome .badge-logo{height:52px}
.duet2 .welcome .hero-media{position:relative;inset:auto;flex:1 1 auto;min-height:0;margin:0 20px;border:0;border-radius:26px;overflow:hidden;background:#000;box-shadow:none}
.duet2 .welcome .hero-media::after{content:none}
.duet2 .welcome .sound{top:10px;right:10px;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:#0006;color:#fff;font-size:18px;line-height:40px;text-align:center}
.duet2 .welcome .sound svg{display:none}
.duet2 .welcome-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;width:auto;max-width:none;margin:0;padding:64px 22px 24px;text-align:center;pointer-events:none;transform:none;background:linear-gradient(to top,rgba(8,11,5,.96) 0%,rgba(8,11,5,.94) 18%,rgba(8,11,5,.86) 33%,rgba(8,11,5,.72) 47%,rgba(8,11,5,.54) 60%,rgba(8,11,5,.35) 72%,rgba(8,11,5,.18) 84%,rgba(8,11,5,.06) 93%,rgba(8,11,5,0) 100%)}
.duet2 .welcome-caption h1{max-width:none;margin:0 0 6px;font-size:27px;line-height:1.18;font-weight:800;letter-spacing:-.02em;text-wrap:balance;text-shadow:none}
.duet2 .welcome-caption .sub{max-width:none;margin:0;font-size:15px;font-weight:400;line-height:1.4;color:#a4ab9c;opacity:1;text-shadow:none}
.duet2 .welcome .dots{position:relative;left:auto;bottom:auto;transform:none;width:auto;gap:6px;justify-content:center;padding:16px 0 2px;flex:0 0 auto;z-index:4}
.duet2 .welcome .dots button{width:7px;height:7px;background:#ffffff3d}
.duet2 .welcome .dots button.on{width:22px;background:var(--brand)}
.duet2 .welcome .cta-wrap{position:relative;left:auto;bottom:auto;transform:none;width:auto;max-width:none;margin:0;padding:16px 24px 28px;background:linear-gradient(to top,#080b05 58%,transparent);pointer-events:auto}
.duet2 .welcome .btn{height:56px;padding:0 18px;border-radius:999px;background:var(--brand);color:var(--brand-contrast);box-shadow:inset 0 0 0 1px #ffffff47;font-size:17px;font-weight:800;letter-spacing:-.01em;line-height:1.2}

/* 问卷：左上角题号、居中标题、整行选项。 */
.duet2 .question .pad{padding:48px 20px calc(var(--cta-space) + 24px)}
.duet2 .qprog{margin:0 2px 10px;font-size:12.5px;font-weight:600;line-height:1.3;color:#c9c9cf;letter-spacing:normal}
.duet2 .question h1{max-width:360px;margin:0 auto 22px;font-size:25px;line-height:1.24;font-weight:800;text-align:center;text-wrap:balance;letter-spacing:-.02em}
.duet2 .options{gap:12px}
.duet2 .option{min-height:61px;padding:18px 22px;border:1px solid #34343a;border-radius:18px;background:#1b1b1f;font-size:16px;font-weight:600;gap:10px;box-shadow:none}
.duet2 .option:hover{border-color:#4a4a52}
.duet2 .option.selected{border:1px solid transparent;background:linear-gradient(#20270f,#20270f) padding-box,linear-gradient(90deg,#4CE700 0%,#F0FF42 100%) border-box;box-shadow:0 0 18px #dcff202e}
.duet2 .option .emoji{flex-basis:22px;width:22px;font-size:19px}
.duet2 .question-continue{border-radius:999px}

/* 命名/字幕页。 */
.duet2 #name .pad{padding:81px 24px calc(var(--cta-space) + 24px)}
.duet2 #name h1{margin:0 -8px 22px;font-size:25px;line-height:1.24;font-weight:800;text-align:center;text-wrap:balance;letter-spacing:-.02em}
.duet2 .name-field{width:100%;height:61px;padding:0 20px;border:1px solid #36363c;border-radius:19px;background:#1b1b1f;color:#fff;font-size:16px;font-weight:400}
.duet2 .name-field::placeholder{color:#ffffff5c}
.duet2 .name-field:focus{outline:none;border-color:transparent;background:linear-gradient(#1b1b1f,#1b1b1f) padding-box,var(--brand) border-box}
.duet2 .name-hint{margin:16px 2px 0;font-size:13.5px;line-height:1.5;color:#cfcfd4}
.duet2 #name .btn{border-radius:999px}

/* 上传页：项目黄绿配色下的单/双照片切换与 50+ 视频权益卡。 */
.duet2 #upload{background:radial-gradient(120% 60% at 50% 0%,#8ab81f3d,transparent 62%),radial-gradient(90% 45% at 50% 100%,#a9f10f1f,transparent 70%),#080b05}
.duet2 #upload .pad{padding:4px 24px 220px;text-align:center}
.duet2 #upload h1{margin:2px 0 6px;font-size:24px;font-weight:800;line-height:1.2;letter-spacing:-.02em;text-wrap:balance}
.duet2 .photo-container{margin:0;padding-top:12px}
.duet2 .mode-switch{display:flex;justify-content:center;padding:16px 20px;flex:none}
.duet2 .mode-switch-track{display:inline-flex;gap:4px;padding:4px;border:1px solid #3a4727;border-radius:999px;background:#0b0f07;box-shadow:inset 0 1px 0 #ffffff0f}
.duet2 .mode-switch-option{min-width:90px;padding:8px 20px;border:0;border-radius:999px;background:transparent;color:#a4ab9c;font-size:13px;font-weight:600;line-height:1.2;transition:background .2s,color .2s}
.duet2 .mode-switch-option.active{background:var(--brand);color:var(--brand-contrast);box-shadow:0 0 18px #a9f10f2e}
.duet2 .photo-grid{gap:12px;padding:0 20px}
.duet2 #photo-container[data-mode="single"] .photo-grid{display:flex;justify-content:center}
.duet2 #photo-container[data-mode="single"] .photo-grid>div{flex:0 0 auto;width:62%;max-width:300px}
.duet2 #photo-container[data-mode="single"] .photo-grid>div:nth-child(2){display:none}
.duet2 #photo-container[data-mode="single"] .slot-index{display:none}
.duet2 .upload-slot{flex-direction:column;gap:10px;width:100%;max-width:none;aspect-ratio:3 / 4;border:1px solid #2e3523;border-radius:18px;background:linear-gradient(180deg,#121213,#15190e);transition:border-color .2s,background .2s}
.duet2 .upload-slot:hover,.duet2 .upload-slot.dragging{border-color:#6f8059;background:linear-gradient(180deg,#181b14,#1c2213)}
.duet2 .upload-slot svg{width:32px;height:32px;stroke:#a4ab9c}
.duet2 .slot-index{position:absolute;top:10px;left:10px;z-index:3;display:grid;place-items:center;width:24px;height:24px;border:1px solid #46562b;border-radius:50%;background:#263015;color:#ddff89;font-size:13px;font-weight:600}
.duet2 .slot-label{font-size:16px;font-weight:400;line-height:1.3;color:#a4ab9c}
.duet2 .upload-slot.has-image .slot-label{display:none}
.duet2 .upload-slot.has-image .slot-index{background:#0000008c}
.duet2 .upload-slot .remove-photo{z-index:4}
.duet2 .upload-promo{margin:20px 0 8px;padding:22px 0 26px;overflow:hidden;border:0;border-radius:26px;background:radial-gradient(120% 100% at 50% 0%,#27310e,#151318);text-align:center}
.duet2 .upload-promo h2{margin:0 16px;font-size:19px;line-height:1.2;font-weight:700;letter-spacing:-.01em;background:linear-gradient(90deg,#81dd00,#fffa64);-webkit-background-clip:text;background-clip:text;color:transparent}
.duet2 .upload-promo h2 span{background:linear-gradient(90deg,#81dd00,#fffa64);-webkit-background-clip:text;background-clip:text;color:transparent}
.duet2 .promo-row{display:flex;align-items:center;justify-content:flex-start;gap:14px;margin-top:18px;padding:0 18px}
.duet2 .promo-avatar{width:88px;height:88px;flex:none;border-radius:50%;object-fit:cover;object-position:center top}
.duet2 .promo-caption{position:relative;font-size:17px;font-style:normal;font-weight:700;line-height:1.2;color:#fff;text-align:left}
.duet2 .promo-arrow{display:block;width:78px;height:auto;margin:2px 0 0 -4px;opacity:.92}
.duet2 .promo-marquee{margin-top:10px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.duet2 .promo-marquee + .promo-marquee{margin-top:10px}
.duet2 .promo-track{display:flex;width:max-content;animation:promoMarquee 18s linear infinite;will-change:transform}
.duet2 .promo-track-reverse{animation-direction:reverse;animation-duration:20s}
.duet2 .promo-group{display:flex;flex:none}
.duet2 .promo-group img{width:92px;flex:none;aspect-ratio:188 / 270;margin-right:8px;border:0;border-radius:10px;background:#14180e;object-fit:cover}
@keyframes promoMarquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.duet2 .promo-track{animation:none}}
.duet2 .upload-actions{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:20;display:flex;gap:10px;width:100%;max-width:440px;margin:0;padding:10px 20px max(12px,env(safe-area-inset-bottom));background:linear-gradient(to top,#050704 64%,transparent)}
.duet2 .upload-actions #choose-photo{display:none}
.duet2 .upload-actions #upload-continue{flex:1;border-radius:999px}
/* 上传页底部按钮：未选/未传完照片时用暗橄榄色，照片就绪后恢复品牌亮绿。 */
.duet2 .upload-actions #upload-continue:disabled{background:#333d12;color:#aab77d;box-shadow:inset 0 0 0 1px #ffffff14;opacity:1}

/* 社交证明：整幅 hero + 评分 + 三条评价卡。 */
.duet2 #trust{background:#08070c;padding:0;overflow:hidden}
.duet2 .social-hero{position:relative;flex:none;height:296px;min-height:296px;overflow:hidden;background:#17110c}
.duet2 .social-hero>img,.duet2 .social-hero>video{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.duet2 .social-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,#00000033 0%,transparent 30%,#08070c 94%)}
.duet2 .social-overlay{position:absolute;inset:auto 0 0;z-index:1;padding:0 22px 20px;text-align:center}
.duet2 .social-rating{display:block;width:min(52vw,200px);height:auto;margin:0 auto}
.duet2 .social-overlay h1{margin:12px 0 0;font-size:24px;line-height:1.18;font-weight:800;letter-spacing:-.02em;text-shadow:0 2px 14px #000a}
.duet2 .social-overlay p{margin-top:6px;font-size:14.5px;font-weight:400;line-height:1.4;color:#a3a3a3}
.duet2 .reviews{display:flex;flex-direction:column;gap:12px;padding:0 20px calc(var(--cta-space) + 16px)}
/* 评价页只有评论列表滚动，顶部视频和评分区固定不动。 */
.duet2 #trust .reviews{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.duet2 #trust .reviews::-webkit-scrollbar{display:none}
.duet2 .review-card{padding:14px 16px;border:1px solid #ffffff1f;border-radius:18px;background:#151419}
.duet2 .review-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.duet2 .stars{font-size:12px;color:#f5b63f;letter-spacing:.12em}
.duet2 .review-time{font-size:11.5px;font-weight:400;color:#77777f}
.duet2 .review-card p{margin:0 0 10px;font-size:14px;font-weight:400;line-height:1.5;color:#f2f2f4}
.duet2 .review-user{display:flex;align-items:center;gap:7px;margin-top:0;font-size:12px;font-weight:600;color:#9d9da6}
.duet2 .review-user img{width:22px;height:22px;border-radius:50%;object-fit:cover;object-position:center top}
.duet2 #trust .back{top:20px;left:20px;background:#ffffff24}
.duet2 #trust .cta-wrap .btn{border-radius:999px}

/* 处理页：模糊照片卡、百分比与步骤清单。 */
.duet2 #processing{background:radial-gradient(120% 60% at 50% 0%,#1d250f 0%,#0b0d08 45%,#080a06 100%)}
.duet2 #processing .app-badge{margin-top:14px}
.duet2 #processing .processing-pad{display:block;padding:18px 24px 40px}
.duet2 #processing .processing-pad h1{margin:22px 0 18px;font-size:24px;line-height:1.2;font-weight:800;letter-spacing:-.02em;text-align:left}
.duet2 .processing-card{position:relative;width:100%;aspect-ratio:1 / 1.09;max-height:47dvh;overflow:hidden;border:1px solid #ffffff33;border-radius:24px;background:#17130e;box-shadow:inset 0 1px 0 #ffffff1f}
.duet2 .processing-blur{position:absolute;inset:-20px;background-position:center;background-size:cover;filter:blur(24px) brightness(.8) saturate(1.05);transform:scale(1.1)}
.duet2 .processing-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0000,#00000024)}
.duet2 .processing-sparkle{position:absolute;left:50%;top:52%;width:52%;max-width:170px;height:auto;transform:translate(-50%,-50%);pointer-events:none}
.duet2 .processing-percent{display:block;margin:26px 0 6px;font-family:'Clash Display',Inter,sans-serif;font-size:32px;line-height:1.2;font-weight:600;letter-spacing:normal;font-variant-numeric:tabular-nums}
.duet2 .processing-title{margin:0 0 18px;font-family:Outfit,Inter,sans-serif;font-size:20px;line-height:1.27;font-weight:800}
.duet2 .progress-rows{gap:12px}
.duet2 .progress-row{font-size:15.5px;font-weight:400}
.duet2 .progress-heading{display:flex;align-items:center;gap:12px;font-weight:400}
.duet2 .progress-icon{order:-1;display:grid;place-items:center;width:26px;height:26px;flex:none;border:2px solid #5a5a62;border-radius:50%}
.duet2 .progress-row[data-status="running"] .progress-icon{border:0;box-shadow:none}
.duet2 .progress-row[data-status="complete"] .progress-icon{border:0}
.duet2 .progress-row[data-status="complete"] .progress-tick{width:26px;height:26px}
.duet2 .progress-row[data-status="waiting"] .label{color:#86868f}
.duet2 .progress-row .percentage,.duet2 .progress-row .progress-bar{display:none}
.duet2 .progress-icon .spinner{width:26px;height:26px;border-width:2px;border-top-color:#fff}

/* 邮箱页：顶部拼贴图 hero、渐变标题、胶囊输入框。 */
.duet2 #email{background:#08070c}
.duet2 .email-hero{height:min(40dvh,330px);min-height:200px;margin:0;border-radius:0 0 30px 30px;overflow:hidden;background:#0b0b10;mask-image:linear-gradient(to bottom,#000 62%,#000c 86%,transparent)}
.duet2 .email-hero::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(to bottom,#00000073 0%,#0000 32%,#0000 68%,#08070cb3 100%)}
.duet2 .email-hero .email-hero-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.duet2 .email-hero .app-badge{position:absolute;top:8px;left:50%;z-index:3;width:100%;margin:0;transform:translateX(-50%)}
.duet2 #email .pad{padding:26px 20px calc(var(--cta-space) + 24px)}
/* 手机键盘弹出、邮箱输入框聚焦时收起顶部拼贴图：iOS 会向上滚动可视区来露出输入框，
   hero 把表单压得太低时，键盘上方会露出一块没有内容的黑色空档。 */
@media (pointer:coarse){
    .duet2 #email:focus-within .email-hero{display:none}
    .duet2 #email:focus-within .pad{padding-top:calc(26px + env(safe-area-inset-top))}
}
.duet2 #email h1{margin:0 0 22px;font-size:27px;line-height:1.18;font-weight:800;letter-spacing:-.02em;text-align:center;text-wrap:balance}
.duet2 .field{height:62px;padding:0 22px;border:1px solid #34343a;border-radius:999px;background:#1b1b1f;font-size:16px}
.duet2 .field:focus{border-color:transparent;background:linear-gradient(#1b1b1f,#1b1b1f) padding-box,var(--brand) border-box}
.duet2 #email .fine{margin-top:18px;font-size:13.5px;line-height:1.55;color:#8f8f97;text-align:left}
.duet2 .email-privacy a{color:#c8d977;text-decoration:underline;text-underline-offset:2px}
.duet2 #email .cta-wrap .btn{border-radius:999px}

/* 付费页：折扣倒计时条、hero、参考页方案卡。 */
.duet2 #paywall{background:#08070c}
.duet2 .paywall-top{position:sticky;top:8px;z-index:10;display:flex;align-items:center;gap:12px;margin:10px 12px 0;padding:10px 10px 10px 14px;border:1px solid #ffffff29;border-radius:18px;background:#ffffff1a;box-shadow:inset 0 1px 0 #ffffff2e,0 10px 24px -14px #000;backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}
.duet2 .offer-countdown{flex:1 1 auto;display:block;min-width:0;padding:0;border:0;background:transparent;white-space:normal;font-family:inherit;font-size:12px;font-weight:600;line-height:1.25;color:#ffffffe0}
.duet2 .offer-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.duet2 .offer-copy b{color:#ffb324;font-weight:800}
.duet2 .offer-countdown strong{display:block;font-size:22px;line-height:1.15;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:#fff}
.duet2 .offer-cta{flex:none;width:auto;height:auto;max-width:none;padding:11px 18px;border:0;border-radius:999px;background:var(--brand);color:var(--brand-contrast);font-size:13px;font-weight:800;line-height:1.2;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff47,0 8px 20px -10px #a9f10f8c}
/* 下滑超过顶栏高度后，倒计时收成参考页的居中胶囊：50% off + 红色计时。 */
.duet2 .paywall-top.compact{justify-content:center;padding:8px 12px;border-color:transparent;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.duet2 .paywall-top.compact .offer-countdown{flex:none;width:auto;padding:5px 5px 5px 16px;border:1px solid #b9b9b7;border-radius:999px;background:#929190;box-shadow:0 10px 24px -14px #000}
.duet2 .paywall-top.compact .offer-copy{flex-direction:row;align-items:center;gap:12px}
.duet2 .paywall-top.compact .offer-copy>span{display:none}
.duet2 .paywall-top.compact .offer-copy::before{content:'50% off';font-size:15px;font-weight:800;line-height:1;color:#fff;white-space:nowrap}
.duet2 .paywall-top.compact .offer-countdown strong{padding:7px 14px;border-radius:999px;background:#f8545d;color:#fff;font-size:16px;line-height:1.15;font-weight:800}
.duet2 .paywall-top.compact .offer-cta{display:none}
.duet2 .paywall-hero{height:min(40dvh,320px);margin:8px 12px 0;padding:24px 20px;border-radius:24px;overflow:hidden;justify-content:center}
.duet2 .paywall-hero::after{background:linear-gradient(transparent 20%,#08070ccc 72%,#08070c 100%)}
.duet2 .paywall-lock{width:44px;height:50px;margin:0 auto 10px;color:#d8cfae;filter:drop-shadow(0 4px 12px #0008)}
.duet2 .paywall-eyebrow{margin-bottom:8px;font-size:12px;font-weight:800;letter-spacing:.08em;color:#f0f0f0}
.duet2 .paywall-content h1{font-size:24px;line-height:1.18;font-weight:800;letter-spacing:-.02em}
.duet2 #paywall>.pad{padding:16px 14px max(232px,calc(env(safe-area-inset-bottom) + 224px))}
.duet2 .plans{gap:12px}
.duet2 .plan{border:1.5px solid #34343a;border-radius:24px;background:#1b1b1f;overflow:hidden}
.duet2 .plan.has-recommendation{padding-top:27px;background:var(--brand)}
.duet2 .plan.selected{border:1.5px solid transparent;background:linear-gradient(#20270f,#20270f) padding-box,linear-gradient(90deg,#4CE700 0%,#F0FF42 100%) border-box;box-shadow:0 0 26px #dcff2026}
.duet2 .plan-badge{height:27px;border-radius:0;background:linear-gradient(90deg,#4CE700,#F0FF42);color:#10120a;font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.duet2 .plan-content{min-height:98px;padding:16px 14px;border-radius:22px;background:#1b1b1f}
.duet2 .plan.selected .plan-content{background:#20270f}
.duet2 .has-recommendation .plan-content{border-top-left-radius:19px;border-top-right-radius:19px}
.duet2 .radio{width:24px;height:24px}
.duet2 .plan-title{font-size:16px;font-weight:700;line-height:1.2}
.duet2 .plan-price{font-size:18px;font-weight:700;gap:6px}
.duet2 .old-price{font-size:13px;font-weight:700;color:#8f8f97}
.duet2 .actual-price{font-size:18px;font-weight:700;color:#fff}
.duet2 .per-day{min-width:86px;padding:10px;border:0;border-radius:16px;background:#2b2b31}
.duet2 .selected .per-day{background:linear-gradient(135deg,#b7ff27,#F0FF42);color:#10120a}
.duet2 .per-day b{font-size:27px;font-weight:800}
.duet2 .per-day small{font-size:11px;font-weight:600}
.duet2 .stripe-payment{border-color:#2b3420;border-radius:22px;background:linear-gradient(150deg,#1c2417,#10150d);scroll-margin-top:84px}
/* 付费页 Stripe 以下：参考站 pw-below 结构，紫色主题替换为品牌绿。 */
.duet2 .pw-below{margin:0 -14px;padding:0 14px;background:linear-gradient(to bottom,transparent 0,#a9f10f0b 12%,#a9f10f17 48%,#a9f10f0d 78%,transparent 100%)}
.duet2 .pass{margin:22px 0;padding:18px 18px 16px;border:1px solid #ffffff1f;border-radius:20px;background:linear-gradient(160deg,#ffffff16,#ffffff09 58%,#ffffff0e);box-shadow:inset 0 1px 0 #ffffff17,0 12px 30px -20px #000;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%)}
.duet2 .pass h3{margin:0 0 14px;font-size:17px;font-weight:700;letter-spacing:-.01em}
.duet2 .benefit{display:flex;align-items:center;gap:12px;margin-bottom:11px;font-size:14px;line-height:1.4}
.duet2 .benefit:last-child{margin-bottom:0}
.duet2 .benefit img{width:20px;height:15px;flex:0 0 auto;object-fit:contain}
.duet2 .guarantee{margin:24px 0 8px;text-align:center}
.duet2 .guarantee img{display:block;width:100%;max-width:380px;height:auto;margin:0 auto}
.duet2 .paywall-trust{margin:26px 0 8px}
.duet2 .trust-video{position:relative;aspect-ratio:3/4;border-radius:20px;overflow:hidden;background:#000}
.duet2 .trust-video .trust-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.duet2 .trust-fade{position:absolute;inset:0;background:linear-gradient(to top,#000000e6 0%,#0000008c 30%,transparent 62%)}
.duet2 .trust-video .trust-badge-shine{position:absolute;left:50%;bottom:15%;width:51.8%;max-width:196px;transform:translateX(-50%);pointer-events:none}
.duet2 .trust-badge{display:block;width:100%;height:auto;mix-blend-mode:screen;pointer-events:none}
/* 所有 logo 叠加一道从左到右扫过的白色高光，和欢迎页品牌 logo 效果一致。 */
.duet2 .logo-shine{position:relative;display:inline-block;line-height:0}
.duet2 .logo-shine::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,#ffffffb0 49%,#ffffffb0 51%,transparent 60%);background-size:320% 100%;-webkit-mask:url('/v3/common/logo.svg') center/100% 100% no-repeat;mask:url('/v3/common/logo.svg') center/100% 100% no-repeat;animation:shine 7.5s ease-in-out infinite}
/* 付费页社交证明徽章是独立 PNG，扫光遮罩需要跟着换成同一张图。 */
.duet2 .trust-badge-shine::after{-webkit-mask:url('/v3/common/pay_star.png') center/100% 100% no-repeat;mask:url('/v3/common/pay_star.png') center/100% 100% no-repeat}
.duet2 .proof-strip{display:flex;flex-direction:column;gap:16px;margin-top:18px;padding:22px 0 30px;border-radius:20px;overflow:hidden;background:radial-gradient(120% 60% at 50% 0%,#a9f10f24,transparent 62%),radial-gradient(90% 45% at 50% 100%,#4ce7001a,transparent 70%),#0a0d07}
.duet2 .proof-headline{margin:0 24px;text-align:center;font-size:19px;font-weight:700;line-height:1.2;letter-spacing:-.01em;text-wrap:balance;background:linear-gradient(90deg,#81dd00,#fffa64);-webkit-background-clip:text;background-clip:text;color:transparent}
.duet2 .proof-header{position:relative;display:flex;align-items:center;gap:14px;padding:0 18px}
.duet2 .proof-avatar{width:76px;height:76px;flex:none;border-radius:50%;object-fit:cover;object-position:center top}
.duet2 .proof-label{margin-top:-18px;font-size:17px;font-style:italic;font-weight:700;line-height:1.2;color:#fff}
.duet2 .proof-arrow{position:absolute;top:44px;left:96px;width:78px;pointer-events:none}
.duet2 .proof-arrow img{display:block;width:100%;height:auto;opacity:.92}
.duet2 .proof-row{position:relative;overflow:hidden;padding:2px 0;mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}
.duet2 .proof-track{display:flex;width:max-content;animation:proofMarquee 22s linear infinite;will-change:transform}
.duet2 .proof-track-reverse{animation-direction:reverse;animation-duration:24s}
.duet2 .proof-group{display:flex;flex:none}
.duet2 .proof-group img{width:92px;aspect-ratio:188/270;flex:none;margin-right:8px;border:1px solid #ffffff1f;border-radius:10px;background:#17141e;object-fit:cover}
@keyframes proofMarquee{to{transform:translateX(-50%)}}
.duet2 .trust-revs{display:flex;flex-direction:column;gap:12px;margin-top:16px;text-align:left}
.duet2 .trust-revs-head{margin-bottom:8px;text-align:center}
.duet2 .trust-revs-head .trh1{font-size:30px;font-weight:800;letter-spacing:-.01em}
.duet2 .trust-revs-head .trh1 .emoji{margin-right:8px;font-size:26px;vertical-align:-2px}
.duet2 .trust-revs-head .trsub{margin-top:6px;font-size:15.5px;color:#9f99a3}
.duet2 .trust-rev{padding:14px 16px;border:1px solid #2a2a2d;border-radius:18px;background:#1b1b1d}
.duet2 .trust-rev .top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.duet2 .trust-rev .stars{font-size:12px;letter-spacing:.12em;color:#ffb324}
.duet2 .trust-rev .when{font-size:11.5px;color:#c7c7cc}
.duet2 .trust-rev p{margin:0 0 10px;font-size:14px;line-height:1.5}
.duet2 .trust-rev .who{display:flex;align-items:center;gap:7px;font-size:12px;color:#dcdce0}
.duet2 .trust-rev .av{width:22px;height:22px;flex:0 0 auto;border-radius:50%;background:#241f2e;object-fit:cover;object-position:center top}
.duet2 .faq{margin:0;border-top:1px solid #2a2a2d}
.duet2 .faq details{padding:0;border-bottom:0}
.duet2 .faq summary{padding:16px 0;font-size:14px;font-weight:600;line-height:1.4}
.duet2 .faq summary::after,.duet2 .faq details[open] summary::after{content:none;display:none}
.duet2 .faq .arw{flex:none}
.duet2 .faq details[open] .arw{transform:rotate(180deg)}
.duet2 .faq .a{padding:0 0 16px;font-size:13px;line-height:1.5;color:#9f99a3}
.duet2 .faq .a a{color:var(--brand-end);text-decoration:underline;text-underline-offset:2px}
.duet2 .support-card{max-width:400px;margin:18px auto 0;padding:32px 24px;border-radius:20px;background:#000;text-align:center;font-family:-apple-system,BlinkMacSystemFont,sans-serif}
.duet2 .support-card h2{margin:0 0 8px;font-size:24px;font-weight:700;line-height:1.2}
.duet2 .support-sub{margin:0 0 24px;font-size:16px;line-height:1.4;color:#888}
.duet2 .support-contact{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 32px;border-radius:14px;background:var(--brand);color:var(--brand-contrast);font-size:18px;font-weight:600;line-height:1.2;text-decoration:none;box-shadow:0 4px 16px #a9f10f59}
.duet2 .support-contact svg{width:22px;height:22px;flex:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.duet2 .support-email{margin:20px 0 0;font-size:14px;line-height:1.5;color:#555}
.duet2 .support-email a{font-size:15px;color:#aaa;text-decoration:none}
.duet2 .legal{display:flex;justify-content:center;gap:18px;margin-top:18px;font-size:12px}
.duet2 .legal a{color:var(--brand-end);text-decoration:underline;text-underline-offset:2px}
@media (prefers-reduced-motion:reduce){.duet2 .proof-track{animation:none}}

@media (max-height:740px){
    .duet2 #name .pad{padding-top:54px}
    .duet2 .processing-card{max-height:40dvh}
    .duet2 .processing-percent{margin-top:20px;font-size:32px}
}

@media (max-height:620px){
    .duet2 .processing-card{max-height:36dvh}
}

@media (max-width:360px){
    .duet2 .question h1{font-size:24px}
    .duet2 .option{padding:16px 18px;font-size:16px}
    .duet2 .offer-cta{padding:10px 14px;font-size:12px}
    .duet2 .per-day{min-width:76px}
}

/* 其他步骤的底部按钮与欢迎视频页保持同样的 28px 离底间距；内容留白同步加高。 */
.duet2{--cta-space:calc(64px + 28px)}
.duet2 .screen:not(.welcome) .cta-wrap{padding-bottom:28px}
.duet2 .upload-actions{padding-bottom:28px}
