:root{--bg:#15121a;--card:rgba(34,29,42,.88);--text:#fff8ec;--muted:#bdb0a4;--gold:#d1aa69;--purple:#705c88;--red:#9f4b56;--line:rgba(255,255,255,.12);--shadow:0 22px 70px rgba(0,0,0,.38);--radius:28px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:radial-gradient(circle at 18% 0%,#40304d 0,#201a28 42%,#111017 100%)}button{font-family:inherit}.hidden{display:none!important}#app{min-height:100vh;position:relative;overflow-x:hidden;padding-bottom:70px}.bg-watermark{position:fixed;right:-150px;top:32%;transform:rotate(-18deg);font-weight:950;letter-spacing:4px;font-size:34px;color:rgba(255,255,255,.035);pointer-events:none;white-space:nowrap}.screen{display:none;width:min(720px,100%);margin:0 auto;padding:22px 18px 84px;animation:fadeUp .32s ease both}.screen.active{display:block}@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-card,.intro-card,.question-card,.loading-card,.result-card{background:var(--card);border:1px solid rgba(209,170,105,.20);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.hero-card{padding:26px 22px 24px;margin-top:16px;position:relative;overflow:hidden}.hero-card:before,.result-card:before{content:"";position:absolute;right:-70px;top:-70px;width:190px;height:190px;border-radius:50%;border:2px solid rgba(209,170,105,.22)}.brand-row,.result-head,.topbar,.progress-info,.action-row{display:flex;align-items:center}.brand-row{gap:12px}.avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.82);box-shadow:0 8px 24px rgba(0,0,0,.28)}.brand-title{font-size:19px;font-weight:900}.brand-sub,.made-by,.dyid{color:var(--muted);font-size:13px}h1{font-size:35px;line-height:1.13;margin:24px 0 12px;letter-spacing:-.5px}p{line-height:1.75;color:var(--muted)}.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.hero-tags span{padding:7px 11px;background:rgba(209,170,105,.13);border:1px solid rgba(209,170,105,.2);border-radius:999px;color:#ecd4a5;font-size:13px}.primary-btn,.ghost-btn{border:0;border-radius:999px;min-height:48px;padding:0 22px;font-weight:900;font-size:16px;cursor:pointer}.primary-btn{color:#201724;background:linear-gradient(135deg,#f1d18d,var(--gold));box-shadow:0 12px 26px rgba(209,170,105,.26);width:100%}.ghost-btn{color:#f5dfb0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}.ghost-btn.small{min-height:40px;font-size:14px;padding:0 16px}.home-actions,.action-area{display:grid;gap:10px}.intro-card{padding:18px 20px;margin-top:16px}.compact-intro p{margin-top:8px}.section-title{margin:18px 0 10px;color:#f1d18d;font-size:17px;font-weight:950}.invite-notice{margin:18px 0 0;padding:13px 14px;border-radius:18px;background:rgba(159,75,86,.18);border:1px solid rgba(209,170,105,.22);line-height:1.7;color:#f4dfcf}.mini-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.mini-steps div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px 6px;text-align:center}.mini-steps b{display:block;color:#f1d18d;font-size:18px}.mini-steps span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.topbar{justify-content:space-between;margin:8px 0 16px}.mini-brand{display:flex;align-items:center;gap:8px;color:#f1d18d;font-weight:850}.mini-brand img{width:34px;height:34px;border-radius:50%;object-fit:cover}.progress-wrap{margin:12px 0 18px}.progress-info{justify-content:space-between;color:var(--muted);font-size:14px;margin-bottom:8px}.progress-track{height:10px;background:rgba(255,255,255,.1);border-radius:99px;overflow:hidden}.progress-bar{width:0%;height:100%;background:linear-gradient(90deg,var(--gold),#8e6ab0);border-radius:99px;transition:width .3s ease}.question-card{padding:22px 18px;transition:transform .2s ease,opacity .2s ease}.question-card.switching{opacity:.3;transform:translateX(-10px) scale(.985)}.question-index{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(209,170,105,.17);color:#f1d18d;font-size:13px;font-weight:900}.question-card h2{font-size:24px;line-height:1.45;margin:18px 0 20px}.options{display:grid;gap:12px}.option{text-align:left;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.07);border-radius:20px;padding:15px;color:var(--text);font-size:15px;line-height:1.62;transition:transform .15s ease,background .15s ease,border-color .15s ease}.option:active,.option.selected{transform:scale(.985);background:rgba(209,170,105,.16);border-color:rgba(209,170,105,.45)}.option-prefix{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;margin-right:8px;border-radius:50%;background:rgba(209,170,105,.16);color:#f1d18d;font-weight:950}.wink-pop{position:fixed;left:50%;bottom:86px;transform:translateX(-50%) scale(.7);display:flex;align-items:center;gap:8px;background:rgba(255,252,245,.95);color:#312636;border:1px solid rgba(209,170,105,.3);border-radius:999px;padding:8px 14px 8px 8px;box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:20}.wink-pop img{width:38px;height:38px;border-radius:50%;object-fit:cover}.wink-pop.show{animation:pop .82s ease both}@keyframes pop{0%{opacity:0;transform:translateX(-50%) scale(.65) translateY(14px)}25%,75%{opacity:1;transform:translateX(-50%) scale(1) translateY(0)}100%{opacity:0;transform:translateX(-50%) scale(.8) translateY(-12px)}}.loading-screen{min-height:72vh;display:none;align-items:center}.loading-screen.active{display:flex}.loading-card{width:100%;padding:34px 22px;text-align:center}.loading-avatar{width:82px;height:82px;object-fit:cover;border-radius:50%;margin:0 auto 16px;display:block}.spinner{width:56px;height:56px;border-radius:50%;margin:8px auto 18px;border:5px solid rgba(255,255,255,.12);border-top-color:var(--gold);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-card{position:relative;overflow:hidden;padding:20px 18px 22px}.result-head{gap:10px;padding-bottom:14px;border-bottom:1px dashed rgba(255,255,255,.16)}.result-head img{width:50px;height:50px;border-radius:50%;object-fit:cover}.match-label{text-align:center;margin-top:22px;color:var(--muted);font-size:13px;letter-spacing:2px}.type-code{text-align:center;font-size:60px;font-weight:950;line-height:1;margin:12px 0 8px;color:#f1d18d;letter-spacing:8px;text-shadow:0 10px 28px rgba(209,170,105,.18)}.axis-line{text-align:center;color:#cfbda8;font-size:12px;line-height:1.8;margin-bottom:10px}.role-name,.relation-name{text-align:center;font-size:34px;font-weight:950;margin-top:8px}.role-title,.relation-title{text-align:center;color:#f1d18d;margin-top:8px;line-height:1.6}.rarity-badge{display:flex;align-items:center;justify-content:center;gap:10px;margin:15px auto 20px;flex-wrap:wrap}.rarity-badge b{padding:8px 13px;border-radius:999px;background:rgba(159,75,86,.25);color:#ffd6cd;border:1px solid rgba(255,214,205,.2)}.rarity-badge span{color:#ead8bd}.role-visual{position:relative;width:min(390px,92%);aspect-ratio:1/1;margin:18px auto 8px;display:flex;align-items:center;justify-content:center;overflow:visible;background:radial-gradient(circle at 50% 45%,rgba(209,170,105,.20),rgba(112,92,136,.10) 45%,rgba(0,0,0,0) 72%)}.role-visual:after{content:"";position:absolute;left:10%;right:10%;bottom:4%;height:28%;background:linear-gradient(180deg,rgba(21,18,26,0),rgba(21,18,26,.92));filter:blur(2px);pointer-events:none}.role-image{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 34px rgba(0,0,0,.48))}.role-desc,.relation-desc{padding:0 4px;color:#e2d4c5;font-size:15px;line-height:1.9}.dimension-cards{display:grid;gap:12px}.dim-card{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:14px}.dim-card.high{box-shadow:inset 0 0 0 1px rgba(209,170,105,.08)}.dim-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dim-top span{font-weight:950;color:#fff8ec}.dim-top em{font-style:normal;color:#f1d18d;background:rgba(209,170,105,.12);border-radius:999px;padding:3px 8px}.dim-top b{margin-left:auto;color:#f1d18d}.dim-meter{height:10px;border-radius:999px;background:rgba(255,255,255,.10);overflow:hidden;margin:12px 0}.dim-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8e6ab0,#f1d18d)}.dim-score-row{display:flex;align-items:baseline;gap:8px}.dim-score-row strong{font-size:24px;color:#fff8ec}.dim-score-row span{color:var(--muted);font-size:13px}.dim-one{margin:8px 0;color:#ecd8bd}.dim-card details{color:var(--muted)}.dim-card summary{cursor:pointer;color:#f1d18d;font-weight:800;margin-top:8px}.relation-promo-card,.rank-box,.mini-profile{margin-top:16px;background:rgba(209,170,105,.10);border:1px solid rgba(209,170,105,.18);border-radius:20px;padding:14px}.relation-promo-card b{display:block;color:#f1d18d;margin-bottom:6px}.relation-promo-card span{color:#ded1c2;line-height:1.7}.relation-duo{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px auto 20px}.round-avatar{width:128px;text-align:center}.avatar-crop{width:112px;height:112px;border-radius:50%;overflow:hidden;margin:0 auto;box-shadow:0 12px 34px rgba(0,0,0,.35);background:radial-gradient(circle,rgba(209,170,105,.24),rgba(0,0,0,.18))}.avatar-crop img{width:142%;height:142%;object-fit:cover;object-position:center 18%;transform:translate(-14%,-10%)}.round-avatar span{display:block;margin-top:7px;color:#f1d18d;font-size:13px;font-weight:850}.pulse-line{width:170px;height:58px;overflow:visible}.pulse-line path{fill:none;stroke:#f1d18d;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgba(209,170,105,.45));stroke-dasharray:480;animation:pulse 2.1s ease-in-out infinite}@keyframes pulse{0%{stroke-dashoffset:480;opacity:.45}55%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-120;opacity:.55}}.relation-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.score-pill{text-align:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:12px 6px}.score-pill b{font-size:23px;color:#f1d18d}.score-pill span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.rank-box strong{color:#f1d18d}.rank-box ol{margin:10px 0 0;padding-left:24px;color:#ded1c2;line-height:1.85}.mini-profile b{display:block;color:#f1d18d;margin-bottom:10px}.mini-profile span{display:grid;grid-template-columns:78px 1fr 28px;align-items:center;gap:8px;margin:8px 0;color:var(--muted);font-size:12px}.mini-profile i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,#8e6ab0,#f1d18d)}.mini-profile strong{color:#fff8ec}.action-area{padding:14px 18px 0;width:min(720px,100%);margin:0 auto}.fixed-footer{position:fixed;left:0;right:0;bottom:0;z-index:10;text-align:center;padding:12px 10px calc(12px + env(safe-area-inset-bottom));background:rgba(17,16,23,.82);backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.08);color:#bdb0a4;font-size:12px}.toast{position:fixed;left:50%;bottom:94px;transform:translateX(-50%);background:rgba(255,252,245,.95);color:#2d2532;padding:12px 18px;border-radius:999px;box-shadow:var(--shadow);z-index:99;font-weight:850;white-space:nowrap}.toast.show{animation:fadeUp .2s ease both}@media(max-width:420px){h1{font-size:30px}.question-card h2{font-size:21px}.mini-steps{gap:6px}.role-name,.relation-name{font-size:29px}.type-code{font-size:48px;letter-spacing:6px}.relation-duo{gap:0}.round-avatar{width:104px}.avatar-crop{width:92px;height:92px}.pulse-line{width:120px}.relation-score-grid{gap:6px}.score-pill b{font-size:20px}}

/* v6 refinements */
.small-code{font-size:22px;letter-spacing:4px;display:inline-flex;align-items:center;justify-content:center;min-width:92px;margin:10px auto 6px;padding:7px 13px;border-radius:999px;background:rgba(209,170,105,.12);border:1px solid rgba(209,170,105,.2);text-shadow:none}.rare-strong{padding:10px;border-radius:22px;background:linear-gradient(135deg,rgba(159,75,86,.28),rgba(209,170,105,.12));border:1px solid rgba(241,209,141,.24)}.rare-strong b{box-shadow:0 0 22px rgba(209,170,105,.20)}.role-visual{background:radial-gradient(circle at 50% 44%,rgba(209,170,105,.24),rgba(112,92,136,.12) 42%,rgba(0,0,0,0) 74%)}.role-visual:after{height:18%;bottom:2%;opacity:.78}.role-image{width:102%;height:102%;object-fit:contain}.locked-grid{display:grid;gap:12px}.locked-card{position:relative;overflow:hidden;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:14px}.locked-card:after{content:"";position:absolute;left:0;right:0;bottom:58px;height:72px;background:linear-gradient(180deg,rgba(34,29,42,0),rgba(34,29,42,.96));pointer-events:none}.locked-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.locked-head b{color:#f1d18d}.locked-head span{font-size:12px;color:#ded1c2;background:rgba(209,170,105,.12);padding:4px 8px;border-radius:999px}.locked-card p{max-height:78px;overflow:hidden;margin:0 0 12px;color:#e5d4bd}.fade-dots{color:#f1d18d}.unlock-btn{position:relative;z-index:2;width:100%;margin-top:4px}.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(8px);z-index:999;display:flex;align-items:center;justify-content:center;padding:18px}.unlock-modal{position:relative;width:min(620px,100%);max-height:86vh;overflow:auto;background:linear-gradient(180deg,rgba(51,42,62,.98),rgba(24,20,30,.98));border:1px solid rgba(241,209,141,.28);border-radius:26px;box-shadow:0 24px 90px rgba(0,0,0,.55);padding:22px}.unlock-modal h3{margin:0 38px 10px 0;color:#f1d18d;font-size:22px}.modal-tip{font-size:14px;line-height:1.8}.modal-close{position:absolute;right:16px;top:14px;width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;font-size:24px}.pass-input{width:100%;height:48px;border-radius:16px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff8ec;padding:0 14px;font-size:16px;margin:10px 0 12px}.unlock-content{margin-top:14px;border-top:1px dashed rgba(255,255,255,.14);padding-top:12px}.unlock-content p{color:#f0dfc8;font-size:16px;line-height:2}.rank-box{display:none!important}.relation-desc,.role-desc{font-size:15.5px;line-height:2.05}.dim-card details p{line-height:2}.avatar-crop{background:radial-gradient(circle,rgba(209,170,105,.28),rgba(45,35,58,.9))}.avatar-crop img{width:150%;height:150%;object-fit:cover;object-position:center 18%;transform:translate(-16%,-12%)}@media(max-width:420px){.small-code{font-size:18px;letter-spacing:3px}.locked-card p{max-height:72px}.unlock-modal{padding:18px}.role-desc,.relation-desc{font-size:15px}}

/* final polish */
.role-name-inline{position:relative;text-align:center;display:block;white-space:nowrap;line-height:1.15;padding:0 70px;box-sizing:border-box}
.role-name-inline span{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.inline-type-code{position:absolute;left:calc(50% + 3.15em);top:50%;transform:translateY(-50%);font-style:normal;font-size:12px;letter-spacing:2px;color:#d8b978;background:rgba(209,170,105,.12);border:1px solid rgba(209,170,105,.22);border-radius:999px;padding:3px 7px;line-height:1;white-space:nowrap;text-shadow:none;font-weight:900}
.locked-card.unlocked:after{display:none!important}
.locked-card.unlocked p,.locked-card p.unlocked-text{max-height:none!important;overflow:visible!important;margin-bottom:0!important;color:#f0dfc8;line-height:2.05}
.unlock-modal .mark-name,.unlock-modal .mark-id{display:inline-block;color:#fff8ec;background:rgba(241,209,141,.18);border:1px solid rgba(241,209,141,.28);padding:1px 7px;border-radius:999px;font-weight:950}
@media(max-width:420px){.role-name-inline{font-size:27px;padding:0 58px}.inline-type-code{font-size:10px;letter-spacing:1.5px;padding:3px 6px;left:calc(50% + 3.05em)}}
@media(max-width:360px){.role-name-inline{font-size:24px;padding:0 50px}.inline-type-code{font-size:9px;letter-spacing:1px;left:calc(50% + 3em)}}


/* v8 final fix: prevent persona title/code overlap */
.role-name-inline{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:100%!important;
  max-width:100%!important;
  padding:0 10px!important;
  margin:8px auto 0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  line-height:1.18!important;
  font-size:clamp(24px,7vw,34px)!important;
  letter-spacing:-0.02em!important;
}
.role-name-inline span{
  display:inline-block!important;
  flex:0 1 auto!important;
  min-width:0!important;
  max-width:calc(100% - 58px)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  vertical-align:baseline!important;
}
.inline-type-code{
  position:static!important;
  left:auto!important;
  top:auto!important;
  transform:none!important;
  flex:0 0 auto!important;
  margin:0 0 0 2px!important;
  font-size:clamp(8px,2.35vw,11px)!important;
  letter-spacing:.8px!important;
  padding:2px 5px!important;
  line-height:1.15!important;
  opacity:.9!important;
  max-width:54px!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
@media(max-width:420px){
  .role-name-inline{font-size:clamp(22px,6.9vw,28px)!important;padding:0 8px!important;gap:5px!important}
  .role-name-inline span{max-width:calc(100% - 50px)!important}
  .inline-type-code{font-size:9px!important;letter-spacing:.5px!important;max-width:48px!important;padding:2px 4px!important}
}
@media(max-width:360px){
  .role-name-inline{font-size:clamp(20px,6.6vw,25px)!important}
  .role-name-inline span{max-width:calc(100% - 46px)!important}
  .inline-type-code{font-size:8px!important;max-width:44px!important}
}


/* v10: 51 survivor card library */
.role-visual{width:min(380px,92%)!important;aspect-ratio:390/500!important;margin:18px auto 12px!important;overflow:hidden!important;border-radius:28px!important;background:rgba(255,255,255,.045)!important;border:1px solid rgba(241,209,141,.22)!important;box-shadow:0 18px 46px rgba(0,0,0,.34)!important}
.role-visual:after{display:none!important}
.role-image{width:100%!important;height:100%!important;object-fit:contain!important;border-radius:28px!important;filter:none!important}
.avatar-crop{width:100px!important;height:128px!important;border-radius:20px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(241,209,141,.2)!important}
.avatar-crop img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;transform:none!important}
.round-avatar{width:118px!important}.pulse-line{width:135px!important}
@media(max-width:420px){.role-visual{width:min(330px,94%)!important}.avatar-crop{width:82px!important;height:106px!important}.round-avatar{width:96px!important}.pulse-line{width:105px!important}}

/* v11: richer profile, pair tabs, poster preview */
.profile-keywords{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px auto 2px}
.profile-keywords span{font-size:13px;font-weight:850;color:#f1d18d;background:rgba(209,170,105,.12);border:1px solid rgba(209,170,105,.22);padding:6px 10px;border-radius:999px}
.why-role-card{margin:16px 0 6px;background:linear-gradient(135deg,rgba(209,170,105,.12),rgba(112,92,136,.12));border:1px solid rgba(241,209,141,.18);border-radius:22px;padding:14px 15px}
.why-role-card b{display:block;color:#f1d18d;margin-bottom:6px}.why-role-card p{margin:0;color:#e8d8c4;line-height:1.9}
.result-tabs{display:flex;gap:8px;margin:16px auto 10px;padding:6px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);border-radius:999px}
.result-tabs button{flex:1;min-height:42px;border:0;border-radius:999px;background:transparent;color:#ded1c2;font-weight:900;font-size:14px}
.result-tabs button.active{color:#211724;background:linear-gradient(135deg,#f1d18d,#d1aa69);box-shadow:0 8px 18px rgba(209,170,105,.18)}
.relation-tension-grid{display:grid;gap:12px;margin:8px 0 14px}.relation-tension-card{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:14px}.relation-tension-card div{display:flex;justify-content:space-between;align-items:center;gap:10px}.relation-tension-card b{color:#f1d18d}.relation-tension-card em{font-style:normal;color:#fff8ec;background:rgba(209,170,105,.12);padding:4px 9px;border-radius:999px;font-weight:950}.relation-tension-card p{margin:8px 0 0;color:#e5d4bd;line-height:1.85}
.poster-modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.74);backdrop-filter:blur(8px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px}.poster-modal{position:relative;width:min(560px,100%);max-height:92vh;overflow:auto;background:linear-gradient(180deg,rgba(51,42,62,.98),rgba(24,20,30,.98));border:1px solid rgba(241,209,141,.28);border-radius:26px;box-shadow:0 24px 90px rgba(0,0,0,.55);padding:18px}.poster-modal h3{margin:0 42px 6px 0;color:#f1d18d;font-size:22px}.poster-modal p{margin:0 0 12px;font-size:14px;line-height:1.75}.poster-preview-img{display:block;width:100%;height:auto;border-radius:18px;border:1px solid rgba(241,209,141,.22);background:#1d1724;-webkit-touch-callout:default;user-select:auto}.poster-download{display:flex!important;align-items:center;justify-content:center;text-decoration:none;margin-top:12px;width:100%}
@media(max-width:420px){.result-tabs button{font-size:13px}.profile-keywords span{font-size:12px}.poster-modal{padding:14px;border-radius:22px}.poster-modal p{font-size:13px}}

/* v11.1: pair profile comparison and story-first copy fixes */
.pair-profile-compare{
  display:grid;
  grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);
  gap:12px;
  align-items:stretch;
  margin:10px 0 18px;
}
.pair-profile-divider{
  width:1px;
  min-height:100%;
  background:linear-gradient(180deg,rgba(241,209,141,0),rgba(241,209,141,.55),rgba(241,209,141,0));
  border-radius:99px;
}
.pair-profile-card{min-width:0;overflow:hidden;}
.pair-profile-card .mini-profile{margin-top:0;height:100%;padding:12px;background:rgba(209,170,105,.075);}
.pair-profile-card .mini-profile b{font-size:14px;line-height:1.45;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;}
.pair-profile-card .mini-profile span{grid-template-columns:minmax(46px,66px) minmax(0,1fr) 18px;gap:6px;min-width:0;}
.pair-profile-card .mini-profile em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pair-profile-card .mini-profile i{min-width:0;}
.pair-profile-card .mini-profile strong{font-size:12px;text-align:right;}
.locked-card p{max-height:112px!important;line-height:2!important;}
.locked-card.unlocked p,.locked-card p.unlocked-text{max-height:none!important;}
@media(max-width:420px){
  .pair-profile-compare{gap:8px;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);}
  .pair-profile-card .mini-profile{padding:10px 8px;border-radius:16px;}
  .pair-profile-card .mini-profile b{font-size:12px;line-height:1.35;}
  .pair-profile-card .mini-profile span{grid-template-columns:42px minmax(0,1fr) 14px;gap:5px;font-size:10px;margin:7px 0;}
  .pair-profile-card .mini-profile i{height:7px;}
  .pair-profile-card .mini-profile strong{font-size:10px;}
  .locked-card p{max-height:128px!important;}
}

/* v12: image loading placeholders and poster generation feedback */
.image-shell{position:relative!important;overflow:hidden!important;background:linear-gradient(135deg,rgba(255,255,255,.045),rgba(209,170,105,.07))!important}
.image-placeholder{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;color:#e8d2a0;font-weight:900;letter-spacing:.5px;background:linear-gradient(120deg,rgba(255,255,255,.035),rgba(209,170,105,.09),rgba(255,255,255,.035));background-size:220% 100%;animation:placeholderShimmer 1.35s ease-in-out infinite;transition:opacity .26s ease,visibility .26s ease;pointer-events:none}
.image-shell.is-loaded .image-placeholder{opacity:0;visibility:hidden}
.image-shell.image-error .image-placeholder{opacity:1;visibility:visible;color:#f4dfcf;background:rgba(159,75,86,.18);animation:none}
.image-shell.image-error .image-placeholder::after{content:'加载失败，请刷新重试';display:block;font-size:12px;font-weight:800;color:#f1d18d;margin-top:6px}
.lazy-image{opacity:0;transition:opacity .3s ease,filter .3s ease;will-change:opacity}
.image-shell.is-loaded .lazy-image{opacity:1}
@keyframes placeholderShimmer{0%{background-position:160% 0}100%{background-position:-60% 0}}
.duo-image-shell .image-placeholder{font-size:14px;padding:8px;border-radius:inherit}.duo-image-shell.image-error .image-placeholder::after{content:'影像失败';font-size:10px;margin-top:3px}
.primary-btn:disabled,.ghost-btn:disabled{opacity:.72;cursor:wait;filter:saturate(.85)}
.btn-loading{display:inline-flex!important;align-items:center;justify-content:center;gap:9px!important}.btn-spinner{width:17px;height:17px;border-radius:50%;border:3px solid rgba(255,255,255,.28);border-top-color:currentColor;animation:spin .8s linear infinite;display:inline-block;flex:0 0 auto}
.poster-status{border:1px solid rgba(241,209,141,.22);border-radius:18px;padding:12px 13px;background:rgba(255,255,255,.055);color:#ded1c2;line-height:1.55;box-shadow:0 10px 26px rgba(0,0,0,.18)}
.poster-status b{display:block;color:#f1d18d;margin-bottom:3px;font-size:14px}.poster-status span{display:block;color:#cfc1b1;font-size:13px}.poster-status.is-loading{background:linear-gradient(135deg,rgba(209,170,105,.12),rgba(112,92,136,.10))}.poster-status.is-success{border-color:rgba(144,205,156,.36);background:rgba(71,123,82,.18)}.poster-status.is-success b{color:#bff0c9}.poster-status.is-error{border-color:rgba(238,128,128,.42);background:rgba(159,75,86,.2)}.poster-status.is-error b{color:#ffd0cf}
@media(max-width:420px){.image-placeholder{font-size:13px}.poster-status{padding:11px 12px}.poster-status b{font-size:13px}.poster-status span{font-size:12px}}
