/* 独立产品视觉：七夕正缘画像 */
:root{--night:#310812;--night2:#571126;--wine:#781d36;--rose:#e65e6b;--peach:#f39b83;--gold:#f4d09c;--cream:#fff7e9;--paper:#fff9ef;--ink:#571529;--text:#745c5c;--line:rgba(103,29,45,.13);--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--sans:"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{min-height:100%;background:var(--night)}body{margin:0;min-height:100vh;color:var(--cream);font-family:var(--sans);background:radial-gradient(circle at 50% 8%,rgba(177,55,74,.35),transparent 34%),linear-gradient(155deg,#27050e,var(--night2) 48%,#21050c);overflow-x:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.stars{position:fixed;inset:0;pointer-events:none;overflow:hidden}.stars:after{content:"";position:absolute;inset:0;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px var(--gold);animation:twinkle 3s infinite}.stars i:nth-child(1){top:12%;left:11%}.stars i:nth-child(2){top:18%;left:79%;animation-delay:-.8s}.stars i:nth-child(3){top:41%;left:92%;animation-delay:-1.6s}.stars i:nth-child(4){top:58%;left:7%;animation-delay:-2.1s}.stars i:nth-child(5){top:77%;left:86%;animation-delay:-.4s}.stars i:nth-child(6){top:91%;left:20%;animation-delay:-1.2s}.app-shell{position:relative;z-index:1;width:min(100%,520px);min-height:100vh;margin:0 auto}.screen{display:none;min-height:100vh;padding:max(24px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom))}.screen.active{display:flex;animation:screenIn .4s ease both}.topbar{display:flex;align-items:center;justify-content:space-between}.brand{color:var(--cream);text-decoration:none;font-family:var(--serif);font-size:16px;font-weight:700}.brand span{margin-left:4px;color:rgba(255,247,233,.48);font:500 9px var(--sans)}.festival{padding:5px 9px;border:1px solid rgba(245,208,155,.33);border-radius:99px;color:var(--gold);font-size:9px;letter-spacing:.1em}.eyebrow{margin:0 0 12px;color:var(--gold);font-size:9px;font-weight:600;letter-spacing:.2em}
.start-screen{flex-direction:column;justify-content:space-between;overflow:hidden}.hero-art{position:relative;height:clamp(145px,22vh,210px);margin:2px 0 -8px}.crescent{position:absolute;left:50%;top:10px;width:96px;height:96px;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle at 35% 35%,#fff9e6,#f7be91);box-shadow:0 0 35px rgba(246,191,145,.15)}.crescent:after{content:"";position:absolute;width:96px;height:96px;left:-20px;top:-15px;border-radius:50%;background:#481020}.bridge{position:absolute;left:5%;right:5%;bottom:22px;height:86px;border-top:2px solid rgba(249,213,168,.82);border-radius:50%;filter:drop-shadow(0 0 8px rgba(245,208,155,.35))}.magpie{position:absolute;bottom:61px;color:#f7d8b1;font-size:32px}.magpie.left{left:20%;transform:rotate(-13deg)}.magpie.right{right:20%;transform:scaleX(-1) rotate(-13deg)}.hero-art>b{position:absolute;left:50%;bottom:31px;transform:translateX(-50%);color:#f37a83;font-size:23px;text-shadow:0 0 18px rgba(238,96,107,.5)}.cover-copy{text-align:center}.cover-copy h1{margin:0;font-family:var(--serif);font-size:clamp(41px,12vw,60px);line-height:1.17;font-weight:700;letter-spacing:.01em}.cover-copy em{color:#ffad94;font-style:normal;font-size:1.08em}.lead{max-width:390px;margin:16px auto 0;color:rgba(255,247,233,.67);font-size:13px;line-height:1.75}.cover-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:19px 0 10px;padding:14px 7px;border-top:1px solid rgba(245,208,155,.14);border-bottom:1px solid rgba(245,208,155,.14)}.cover-stats div{display:flex;flex-direction:column;align-items:center;gap:3px;border-right:1px solid rgba(245,208,155,.12)}.cover-stats div:last-child{border:0}.cover-stats strong{color:var(--gold);font-family:var(--serif);font-size:20px}.cover-stats small{color:rgba(255,247,233,.46);font-size:8px}.paid-note{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid rgba(245,208,155,.16);border-radius:12px;background:rgba(245,208,155,.05)}.paid-note>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#571124;background:var(--gold);font-size:11px}.paid-note p{display:flex;flex-direction:column;gap:2px;margin:0}.paid-note b{color:#f8dfb8;font-size:10px}.paid-note small{color:rgba(255,247,233,.4);font-size:8px}.start-actions{padding-top:12px;text-align:center}.start-actions p{margin:11px 0 0;color:rgba(255,247,233,.38);font-size:9px}.primary-button{width:100%;min-height:57px;padding:0 17px;border:0;border-radius:17px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(115deg,#f39480,#df5365);box-shadow:0 13px 30px rgba(221,70,89,.27),inset 0 1px rgba(255,255,255,.35);color:#fffaf0;font-weight:600;cursor:pointer}.primary-button>b{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.17);font-size:17px}.primary-button:active{transform:scale(.98)}.secondary-button{min-height:50px;border:1px solid rgba(255,244,224,.2);border-radius:15px;background:rgba(255,255,255,.055);color:var(--cream);cursor:pointer}.text-button{border:0;background:transparent;color:rgba(255,247,233,.48);padding:11px;cursor:pointer;font-size:10px}
.quiz-screen{flex-direction:column}.quiz-header{display:flex;align-items:center;gap:13px}.icon-button{width:38px;height:38px;flex:none;border:1px solid rgba(255,244,224,.14);border-radius:50%;background:rgba(255,255,255,.04);color:var(--cream);cursor:pointer}.progress-wrap{flex:1}.progress-meta{display:flex;justify-content:space-between;margin-bottom:7px;color:rgba(255,247,233,.52);font-size:9px}.progress-meta strong{color:var(--gold);letter-spacing:.08em}.progress-track{height:3px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}.progress-track i{display:block;width:4%;height:100%;background:linear-gradient(90deg,var(--peach),var(--gold));transition:width .35s}.question-card{margin:auto 0;padding:35px 0}.question-card.out{animation:qOut .18s ease both}.question-card.in{animation:qIn .3s ease both}.question-kicker{margin:0 0 13px;color:var(--peach);font-family:var(--serif);font-size:12px;letter-spacing:.13em}.question-card h2{margin:0;font-family:var(--serif);font-size:clamp(24px,7vw,33px);line-height:1.5;font-weight:600}.question-hint{margin:10px 0 24px;color:rgba(255,247,233,.4);font-size:9px}.options{display:grid;gap:11px}.option-button{position:relative;width:100%;min-height:64px;padding:15px 45px 15px 17px;border:1px solid rgba(255,244,224,.12);border-radius:16px;background:rgba(255,250,239,.055);color:rgba(255,249,238,.9);text-align:left;font-size:12px;line-height:1.5;cursor:pointer;transition:.18s}.option-button:after{content:"";position:absolute;right:17px;top:50%;width:14px;height:14px;transform:translateY(-50%);border:1px solid rgba(246,207,158,.35);border-radius:50%}.option-button.selected{border-color:var(--peach);background:rgba(232,91,105,.2)}.option-button.selected:after{width:8px;height:8px;border:4px solid var(--gold);background:var(--rose)}
.loading-screen{flex-direction:column;align-items:center;justify-content:center;text-align:center}.orbit{position:relative;width:150px;height:150px;display:grid;place-items:center;margin-bottom:32px;border:1px solid rgba(247,210,162,.24);border-radius:50%;animation:rotate 4s linear infinite}.orbit:after{content:"";position:absolute;width:7px;height:7px;top:19px;right:19px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}.orbit i{position:absolute;inset:24px -5px;border:1px solid rgba(247,210,162,.16);border-radius:50%;transform:rotate(50deg)}.orbit b{width:57px;height:57px;display:grid;place-items:center;border-radius:50%;background:rgba(255,152,142,.12);color:#ff8f87;font-size:26px;animation:heart 1.1s infinite}.loading-screen h2{margin:0;font-family:var(--serif);font-size:25px}.loading-screen>p:not(.eyebrow){color:rgba(255,247,233,.48);font-size:10px}.loading-track{width:78%;height:3px;margin:22px 0 9px;background:rgba(255,255,255,.09);overflow:hidden}.loading-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--rose),var(--gold))}.loading-screen>strong{color:var(--gold);font-size:10px}
.preview-screen,.result-screen{flex-direction:column}.preview-card{position:relative;margin:auto 0 21px;padding:27px 21px;border-radius:23px;background:var(--paper);color:var(--ink);box-shadow:0 22px 65px rgba(10,0,3,.35);text-align:center;overflow:hidden}.preview-card:after{content:"缘";position:absolute;right:-5px;top:65px;color:rgba(119,31,51,.05);font:900 120px var(--serif)}.portrait-seal{position:relative;z-index:1;width:65px;height:65px;display:grid;place-items:center;flex:none;margin:13px auto;border:7px double #fff1d8;border-radius:50%;background:linear-gradient(145deg,#85243d,#c54a57);box-shadow:0 7px 17px rgba(113,26,42,.23);color:#fff8e9;font:600 23px var(--serif)}.preview-card>p:not(.eyebrow,.preview-line){margin:14px 0 4px;color:#9a6d6e;font-size:9px;letter-spacing:.1em}.preview-card h1{position:relative;z-index:1;margin:4px 0 8px;font:700 31px var(--serif);color:#6f1b31}.preview-line{position:relative;z-index:1;margin:0;color:#735b5d;font:500 12px/1.7 var(--serif)}.redacted{display:grid;gap:7px;margin:20px 0}.redacted i{height:9px;border-radius:9px;background:#7f3041;opacity:.16}.redacted i:nth-child(2){width:82%}.redacted i:nth-child(3){width:64%}.locked-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;text-align:left}.locked-list span{padding:8px;border:1px solid var(--line);border-radius:8px;color:#8b6566;font-size:8px}.locked-list span:before{content:"✦";margin-right:5px;color:#b75060}.preview-screen>.text-button{align-self:center}.result-screen{padding-left:14px;padding-right:14px}.result-screen>.topbar{padding:0 5px 18px}.result-card{position:relative;overflow:hidden;padding:22px 19px;border-radius:24px;background:var(--paper);color:var(--ink);box-shadow:0 22px 65px rgba(10,0,3,.35)}.result-card:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg width='120' height='120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}.report-head{position:relative;display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--line);color:#996f6e;font-size:7px;letter-spacing:.1em}.result-identity{position:relative;display:flex;align-items:center;gap:15px;padding:21px 0 14px}.result-identity .portrait-seal{margin:0}.result-identity p{margin:0 0 4px;color:#997173;font-size:8px}.result-identity h1{margin:0;font:700 29px var(--serif);color:#6f1b31}.result-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.result-tags span,.keyword-list span{padding:4px 7px;border:1px solid rgba(135,42,59,.17);border-radius:99px;color:#913a4b;font-size:7px}.result-one-liner{position:relative;margin:0;padding:13px 14px;border-left:2px solid #d16c6d;border-radius:0 9px 9px 0;background:rgba(177,67,83,.06);color:#751e35;font:600 11px/1.7 var(--serif)}.portrait-board{position:relative;display:grid;grid-template-columns:.85fr 1.2fr .8fr;margin-top:16px;border-radius:13px;overflow:hidden;background:linear-gradient(125deg,#67182e,#9e3448);color:#fff7e9}.portrait-board>div{min-width:0;padding:11px 8px;border-right:1px solid rgba(255,255,255,.13)}.portrait-board>div:last-child{border:0}.portrait-board small{display:block;margin-bottom:5px;color:rgba(255,247,233,.57);font-size:7px}.portrait-board strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 14px var(--serif)}.portrait-board>div:first-child strong{color:#f7d6a8;font-size:22px}.report-section{position:relative;padding:21px 0;border-top:1px solid var(--line)}.report-section:first-of-type{margin-top:18px}.section-label{margin:0 0 6px;color:#b7545f;font-size:7px;font-weight:600;letter-spacing:.13em}.report-section h2{margin:0 0 10px;color:#6f1b31;font:600 17px var(--serif)}.report-section>p:not(.section-label,.note-box,.closing-advice){margin:0;color:var(--text);font-size:10px;line-height:1.85}.note-box{margin:13px 0 0!important;padding:11px 12px;border-radius:9px;background:#f5ece1;color:#765d5d;font-size:9px!important;line-height:1.7!important}.keyword-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.dimension-bars{display:grid;gap:13px}.dimension-row header{display:flex;justify-content:space-between;color:#755a5c;font-size:9px}.dimension-row header strong{color:#842e41;font-family:var(--serif);font-size:11px}.dimension-track{height:6px;margin:5px 0;border-radius:99px;background:#e8d9cf;overflow:hidden}.dimension-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d36c71,#862a41);animation:barGrow .8s ease both}.dimension-row small{display:flex;justify-content:space-between;color:#b29b96;font-size:6px}.dimension-row small b{font-weight:400}.signal-list{display:grid;gap:7px;margin-top:13px}.signal-list div{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;background:rgba(143,51,67,.05)}.signal-list span,.timeline span{color:#b7545f;font-size:7px}.signal-list p{margin:0;color:#735e5e;font-size:9px}.clue-grid,.boundary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.clue-grid>div,.boundary-grid>div{padding:10px;border-radius:9px;background:#f5ede4}.clue-grid small,.boundary-grid small{color:#8b5360;font-size:7px;font-weight:600}.clue-grid p,.boundary-grid p{margin:5px 0 0;color:#745c5c;font-size:8px;line-height:1.6}.boundary-grid>div:first-child{border-top:2px solid #908c65}.boundary-grid>div:last-child{border-top:2px solid #b55c67}.timeline{display:grid;gap:0}.timeline div{position:relative;display:flex;gap:11px;padding:0 0 16px}.timeline div:not(:last-child):before{content:"";position:absolute;left:7px;top:14px;bottom:0;width:1px;background:#d9b9af}.timeline span{position:relative;z-index:1;width:16px;height:16px;display:grid;place-items:center;border-radius:50%;background:#f4e4d6}.timeline p{margin:0;color:#745c5c;font-size:9px;line-height:1.65}.timeline b{display:block;color:#7d2c40;font:600 10px var(--serif)}.report-section blockquote{margin:4px 0 13px;padding:14px;border-left:2px solid #d16c6d;border-radius:0 9px 9px 0;background:rgba(177,67,83,.06);color:#751e35;font:600 12px/1.7 var(--serif)}.closing-advice{margin:0;padding:12px 13px;border-radius:10px;background:#6e1b31;color:#fff5e5!important;font:500 10px/1.8 var(--serif)}.disclaimer{position:relative;margin:10px 0 0;text-align:center;color:#a18782;font-size:6px}.result-actions{display:grid;gap:9px;margin:18px 2px}.result-actions .text-button{justify-self:center}
.modal{display:none;position:fixed;z-index:20;inset:0}.modal.open{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(23,3,9,.78)}.redeem-dialog{position:absolute;left:50%;bottom:0;width:min(100%,520px);padding:27px 22px max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);border-radius:23px 23px 0 0;background:var(--paper);color:var(--ink);box-shadow:0 -10px 45px rgba(0,0,0,.28)}.modal-close{position:absolute;right:17px;top:14px;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:transparent;color:#783047;font-size:19px}.redeem-dialog h2{margin:0 0 8px;color:#6e1b31;font:600 25px var(--serif)}.redeem-dialog>p:not(.eyebrow,.redeem-error){color:#806a69;font-size:10px;line-height:1.65}.redeem-dialog label{display:block;margin:19px 0 7px;color:#76575c;font-size:8px;font-weight:600}.redeem-dialog input{width:100%;height:51px;padding:0 13px;border:1px solid rgba(113,33,50,.22);border-radius:12px;background:white;color:#6e1b31;font-weight:700;text-transform:uppercase}.redeem-dialog .primary-button{margin-top:12px}.redeem-dialog>small{display:block;margin-top:13px;text-align:center;color:#a0837d;font-size:7px}.redeem-error{min-height:15px;margin:5px 0 0;color:#c34857;font-size:8px}.toast{position:fixed;z-index:30;left:50%;bottom:28px;transform:translate(-50%,15px);padding:10px 15px;border:1px solid rgba(255,255,255,.12);border-radius:99px;background:rgba(26,3,9,.92);color:#fff;font-size:10px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes screenIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes qOut{to{opacity:0;transform:translateX(-14px)}}@keyframes qIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes heart{0%,100%{transform:scale(1)}20%{transform:scale(1.08)}}@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}@keyframes barGrow{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1)}}
@media(min-width:700px){body{padding:22px 0}.app-shell,.screen{min-height:calc(100vh - 44px)}.app-shell{border:1px solid rgba(255,255,255,.07);border-radius:29px;overflow:hidden;box-shadow:0 30px 100px rgba(0,0,0,.3)}.screen{padding-left:32px;padding-right:32px}}
@media(max-height:700px){.hero-art{height:112px}.cover-copy h1{font-size:35px}.lead{margin-top:8px;line-height:1.5}.cover-stats{margin-top:9px;padding:8px}.paid-note{display:none}.start-actions{padding-top:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* 结果解锁页与统一品牌头部 */
.brand{display:flex;align-items:center;font-family:inherit;font-size:inherit}
.brand img{width:27px;height:27px;margin-right:7px}
.brand b{font:700 16px var(--serif)}
.brand span{margin-left:6px}
.inner-topbar{width:100%;margin-bottom:24px}
.cover-stats{margin-bottom:18px}
.loading-screen{align-items:stretch;justify-content:flex-start}
.loading-center{margin:auto 0;display:flex;flex-direction:column;align-items:center}
.preview-intro{margin:28px 0 16px;text-align:center}
.preview-intro>span{display:inline-block;padding:4px 8px;border:1px solid rgba(245,208,155,.22);border-radius:99px;color:var(--gold);font-size:8px;letter-spacing:.12em}
.preview-intro p{margin:11px 0 4px;color:rgba(255,247,233,.58);font-size:9px}
.preview-intro h1{margin:0;color:#fff6e8;font:600 24px/1.42 var(--serif)}
.preview-card{margin:0 0 14px;padding:23px 21px}
.preview-card h2{position:relative;z-index:1;margin:4px 0 8px;font:700 31px var(--serif);color:#6f1b31}
.report-teaser{display:grid;grid-template-columns:repeat(3,1fr);margin:17px 0 13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.report-teaser div{padding:10px 3px;border-right:1px solid var(--line)}
.report-teaser div:last-child{border:0}
.report-teaser small{display:block;color:#a08582;font-size:6px}
.report-teaser strong{display:block;margin-top:4px;color:#7b2a3e;font:600 10px var(--serif)}
.unlock-actions{display:grid;gap:8px}
.purchase-button{min-height:67px}
.purchase-button>span{display:flex;flex-direction:column;align-items:flex-start;font-size:15px}
.purchase-button small{margin-bottom:3px;color:rgba(255,255,255,.7);font-size:8px;font-weight:500}
.unlock-actions .secondary-button{width:100%;font-weight:600}
.unlock-trust{display:flex;justify-content:center;gap:7px;margin:10px 0 1px;color:rgba(255,247,233,.42);font-size:6px}
.unlock-trust span:not(:last-child):after{content:"·";margin-left:7px}
.modal-brand{margin-bottom:20px;color:#6e1b31}
.modal-brand img{filter:brightness(.55) sepia(.5) saturate(2)}
.modal-brand span{color:#a07c7d}
@media(max-height:700px){.preview-intro{margin:14px 0 10px}.preview-card{padding-top:17px;padding-bottom:17px}.portrait-seal{margin:7px auto}.preview-card .locked-list{display:none}}

/* 六种正缘原型图案 */
.portrait-seal{width:72px;height:72px;border:1px solid rgba(255,241,216,.5);box-shadow:0 7px 17px rgba(113,26,42,.23),inset 0 0 0 5px rgba(255,241,216,.09)}
.portrait-seal svg{width:48px;height:48px;overflow:visible;color:#ffe1b4}
.portrait-seal svg .soft{opacity:.38}
.portrait-seal svg .spark{fill:#f7a087;stroke:none}
.portrait-seal[data-archetype="flame"]{background:linear-gradient(145deg,#a72f40,#d55b59)}
.portrait-seal[data-archetype="confidant"]{background:linear-gradient(145deg,#7e3851,#b9606b)}
.portrait-seal[data-archetype="soulmate"]{background:linear-gradient(145deg,#552348,#8d3b62)}
.portrait-seal[data-archetype="adventurer"]{background:linear-gradient(145deg,#6f3b42,#af654f)}
.portrait-seal[data-archetype="contrast"]{background:linear-gradient(145deg,#35162f,#75233e)}
