.visual-match-section{--vm-accent:#ef476f;--vm-soft:#fff1f5;overflow:hidden}.visual-match-theme--rose-gold{--vm-accent:#d9776a;--vm-soft:#fff4ed}.visual-match-theme--rose{--vm-accent:#e83e72;--vm-soft:#fff0f5}.visual-match-theme--violet{--vm-accent:#7c3aed;--vm-soft:#f5f3ff}.visual-match-theme--silver{--vm-accent:#64748b;--vm-soft:#f1f5f9}.visual-match-header{align-items:flex-start;gap:1rem}.visual-match-subtitle{margin:.25rem 0 0;color:var(--text-muted,#6b7280);font-size:.92rem}.visual-match-open{border:0;border-radius:12px;padding:.65rem .85rem;background:var(--vm-accent);color:#fff;cursor:pointer;white-space:nowrap}.visual-match-mode-switch{display:flex;justify-content:center;gap:.4rem;margin-bottom:.5rem}.visual-match-mode-switch button{border:1px solid rgba(100,116,139,.24);background:#fff;border-radius:999px;padding:.45rem .75rem;cursor:pointer}.visual-match-mode-switch button.is-active{background:var(--vm-soft);border-color:var(--vm-accent);color:var(--vm-accent)}.visual-match-stage{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,12vw,7rem);align-items:end;max-width:760px;margin:0 auto;padding:1.25rem 1rem .5rem;min-height:350px}.visual-match-person{text-align:center;min-width:0}.visual-match-figure-wrap{height:270px;display:flex;align-items:flex-end;justify-content:center;position:relative}.visual-match-figure{width:150px;height:230px;transform:scaleY(var(--height-scale,.92));transform-origin:center bottom;display:flex;align-items:flex-end;justify-content:center;transition:transform .25s ease}.visual-match-body-shell{position:relative;width:calc(138px * var(--body-scale,1));height:230px;transition:width .25s ease}.visual-match-avatar{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:72px 72px 28px 28px;box-shadow:0 14px 34px rgba(17,24,39,.18);border:3px solid rgba(255,255,255,.9)}.visual-match-silhouette{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;opacity:0;transition:opacity .2s ease}.visual-match-head{width:58px;height:58px;border-radius:50%;background:#cbd5e1;flex:none}.visual-match-torso{width:calc(94px * var(--shoulder-scale,1));height:108px;margin-top:-3px;border-radius:44px 44px 24px 24px;background:linear-gradient(160deg,#dbe2ea,#b8c3cf)}.visual-match-legs{width:70px;height:78px;background:linear-gradient(90deg,#b8c3cf 0 46%,transparent 46% 54%,#b8c3cf 54%);border-radius:0 0 20px 20px}.visual-match-silhouette--female .visual-match-head{background:#e4c8dc}.visual-match-silhouette--female .visual-match-torso,.visual-match-silhouette--female .visual-match-legs{background-color:#d8b4d8}.visual-match-section[data-mode="silhouette"] .visual-match-avatar,.visual-match-section[data-mode="outline"] .visual-match-avatar{opacity:0}.visual-match-section[data-mode="silhouette"] .visual-match-silhouette,.visual-match-section[data-mode="outline"] .visual-match-silhouette{opacity:1}.visual-match-section[data-mode="outline"] .visual-match-head,.visual-match-section[data-mode="outline"] .visual-match-torso,.visual-match-section[data-mode="outline"] .visual-match-legs{background:transparent;border:3px solid var(--vm-accent)}.visual-match-section[data-mode="outline"] .visual-match-legs{background:linear-gradient(90deg,transparent 0 43%,var(--vm-accent) 43% 47%,transparent 47% 53%,var(--vm-accent) 53% 57%,transparent 57%);border-top:0}.visual-match-section[data-mode="avatar"] .visual-match-person.no-ai-avatar .visual-match-silhouette{opacity:1}.visual-match-ground{position:absolute;bottom:0;width:78%;height:8px;border-radius:50%;background:rgba(15,23,42,.12);filter:blur(3px)}.visual-match-person h3{margin:.65rem 0 .15rem;font-size:1rem}.visual-match-height{margin:0;color:var(--text-muted,#6b7280)}.visual-match-heart{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font-size:2.4rem;color:var(--vm-accent);filter:drop-shadow(0 6px 10px rgba(239,71,111,.2))}.visual-match-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem}.visual-match-facts span{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem .8rem;border-radius:12px;background:var(--vm-soft);color:var(--text,#1f2937);font-size:.9rem}.visual-match-facts i{color:var(--vm-accent)}.visual-match-bmi-note{text-align:center;color:var(--text-muted,#6b7280);font-size:.78rem;margin:.8rem 0 0}.visual-match-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:1rem}.visual-match-modal[hidden]{display:none}.visual-match-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.72);backdrop-filter:blur(5px)}.visual-match-modal-panel{position:relative;width:min(980px,96vw);max-height:94vh;overflow:auto;background:var(--surface,#fff);border-radius:22px;padding:1.25rem;box-shadow:0 28px 70px rgba(0,0,0,.28)}.visual-match-modal-close{position:absolute;right:.75rem;top:.75rem;z-index:2;border:0;border-radius:50%;width:38px;height:38px;background:rgba(15,23,42,.08);cursor:pointer}.visual-match-modal-content .visual-match-stage{min-height:70vh;max-width:900px}.visual-match-modal-content .visual-match-figure-wrap{height:55vh;min-height:360px}.visual-match-modal-content .visual-match-figure{transform:scaleY(calc(var(--height-scale,.92) * 1.35));}.visual-match-modal-content .visual-match-body-shell{transform:scale(1.3);transform-origin:center bottom}body.visual-match-modal-open{overflow:hidden}@media(max-width:650px){.visual-match-header{display:block}.visual-match-open{margin-top:.75rem;width:100%}.visual-match-stage{gap:.75rem;min-height:285px;padding-inline:0}.visual-match-figure-wrap{height:215px}.visual-match-figure{width:112px;height:190px}.visual-match-body-shell{height:190px;width:calc(108px * var(--body-scale,1))}.visual-match-head{width:46px;height:46px}.visual-match-torso{height:88px;width:calc(76px * var(--shoulder-scale,1))}.visual-match-legs{height:60px;width:56px}.visual-match-heart{top:40%;font-size:1.8rem}.visual-match-facts{justify-content:stretch}.visual-match-facts span{width:100%;justify-content:center}.visual-match-modal-content .visual-match-stage{min-height:72vh}.visual-match-modal-content .visual-match-figure-wrap{height:48vh;min-height:300px}.visual-match-modal-content .visual-match-figure{transform:scaleY(calc(var(--height-scale,.92) * 1.12))}.visual-match-modal-content .visual-match-body-shell{transform:scale(1.08)}}
.couple-scene-studio{margin-top:1.25rem;padding:1rem;border:1px solid rgba(100,116,139,.18);border-radius:18px;background:linear-gradient(145deg,var(--vm-soft),#fff)}.couple-scene-heading h3,.couple-scene-gallery-head h4{margin:0}.couple-scene-heading p{margin:.25rem 0 0;color:var(--text-muted,#6b7280);font-size:.88rem}.couple-scene-form{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:.65rem;align-items:end;margin-top:.9rem}.couple-scene-form label{display:grid;gap:.32rem;font-size:.8rem;color:var(--text-muted,#64748b)}.couple-scene-form select,.couple-scene-form input{width:100%;min-height:42px;border:1px solid rgba(100,116,139,.28);border-radius:11px;background:#fff;padding:.58rem .68rem;color:var(--text,#111827)}.couple-scene-generate{min-height:42px;border:0;border-radius:11px;background:var(--vm-accent);color:#fff;padding:.6rem .9rem;cursor:pointer}.couple-scene-generate[disabled]{opacity:.6;cursor:wait}.couple-scene-status{margin-top:.75rem;padding:.7rem .8rem;border-radius:11px;background:#fff;border:1px solid rgba(100,116,139,.18)}.couple-scene-status.is-error{color:#b91c1c;background:#fff1f2}.couple-scene-gallery-head{display:flex;justify-content:space-between;align-items:center;margin-top:1rem}.couple-scene-gallery-head button{border:0;background:transparent;cursor:pointer;color:var(--vm-accent)}.couple-scene-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:.65rem}.couple-scene-card{position:relative;overflow:hidden;border-radius:14px;min-height:130px;background:#eef2f7}.couple-scene-card img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}.couple-scene-card-body{padding:.65rem;background:#fff}.couple-scene-card-title{font-size:.82rem;font-weight:700}.couple-scene-card-meta{font-size:.72rem;color:#64748b;margin-top:.2rem}.couple-scene-card button{margin-top:.5rem;width:100%;border:1px solid var(--vm-accent);background:#fff;color:var(--vm-accent);border-radius:9px;padding:.4rem;cursor:pointer}.couple-scene-placeholder{display:grid;place-items:center;aspect-ratio:1/1;color:#64748b;padding:1rem;text-align:center}.couple-scene-empty{grid-column:1/-1;text-align:center;padding:1rem;color:#64748b}.couple-scene-disclosure{margin:.75rem 0 0;font-size:.75rem;color:#64748b}@media(max-width:850px){.couple-scene-form{grid-template-columns:1fr 1fr}.couple-scene-note{grid-column:1/-1}.couple-scene-generate{grid-column:1/-1}.couple-scene-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.couple-scene-form{grid-template-columns:1fr}.couple-scene-note,.couple-scene-generate{grid-column:auto}.couple-scene-gallery{grid-template-columns:1fr}}
/* E2.6 release controls */
.couple-scene-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0;font-size:.78rem}.couple-scene-badges span{border:1px solid rgba(120,120,140,.24);border-radius:999px;padding:.25rem .5rem}.couple-scene-badges .is-approved{border-color:rgba(40,150,90,.45)}.couple-scene-badges .is-rejected{border-color:rgba(190,60,70,.45)}.couple-scene-actions{display:flex;gap:.5rem}.couple-scene-actions button{flex:1}.couple-scene-actions .is-danger{background:transparent;border:1px solid rgba(190,60,70,.5);color:inherit}

.visual-match-ai-avatar{opacity:0}
.visual-match-section[data-mode="photo"] .visual-match-photo{opacity:1}
.visual-match-section[data-mode="photo"] .visual-match-ai-avatar{opacity:0}
.visual-match-section[data-mode="ai-avatar"] .visual-match-photo{opacity:0}
.visual-match-section[data-mode="ai-avatar"] .visual-match-ai-avatar{opacity:1}
.visual-match-section[data-mode="silhouette"] .visual-match-photo,
.visual-match-section[data-mode="silhouette"] .visual-match-ai-avatar,
.visual-match-section[data-mode="outline"] .visual-match-photo,
.visual-match-section[data-mode="outline"] .visual-match-ai-avatar{opacity:0}
.visual-match-section[data-mode="photo"] .visual-match-person:not(.has-photo) .visual-match-silhouette,
.visual-match-section[data-mode="ai-avatar"] .visual-match-person.no-ai-avatar .visual-match-silhouette{opacity:1}

/* Legacy BMI artwork is intentionally shown as a pair in "Together in scale". */
.visual-match-stage{gap:clamp(.75rem,4vw,2.2rem)!important;max-width:620px!important}
.visual-match-bmi-art{
  object-fit:contain!important;
  object-position:center bottom!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.visual-match-person{display:flex;flex-direction:column;align-items:center}
.visual-match-figure-wrap{width:100%}
@media(max-width:650px){
  .visual-match-stage{gap:.25rem!important}
}


/* BMI comparison: show the legacy artwork cleanly, side by side. */
.visual-match-section[data-mode="photo"] .visual-match-silhouette {
    opacity:0 !important;
}
.visual-match-section[data-mode="photo"] .visual-match-photo {
    opacity:1 !important;
}
.visual-match-heart {
    display:none !important;
}
.visual-match-stage {
    grid-template-columns:repeat(2, minmax(0, 170px)) !important;
    justify-content:center !important;
    column-gap:8px !important;
    max-width:360px !important;
}
.visual-match-person {
    width:170px !important;
}
.visual-match-figure-wrap {
    width:170px !important;
}
.visual-match-figure {
    width:150px !important;
}
.visual-match-bmi-art {
    z-index:3 !important;
    opacity:1 !important;
}
.visual-match-section[data-mode="outline"] .visual-match-bmi-art,
.visual-match-section[data-mode="ai-avatar"] .visual-match-bmi-art {
    opacity:0 !important;
}
.visual-match-section[data-mode="outline"] .visual-match-silhouette {
    opacity:1 !important;
}
@media(max-width:650px){
    .visual-match-stage {
        grid-template-columns:repeat(2, minmax(0, 128px)) !important;
        column-gap:0 !important;
        max-width:270px !important;
    }
    .visual-match-person,
    .visual-match-figure-wrap {
        width:128px !important;
    }
    .visual-match-figure {
        width:112px !important;
    }
}


/* Profile comparison: keep names and height baselines stable. */
.visual-match-person h3{
  width:100%;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
