*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
html,body{margin:0;min-height:100%;height:100%;font-family:"PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:#232329;overflow-x:hidden}
#app{min-height:100vh;min-height:100dvh;height:100%;display:flex;justify-content:center;align-items:stretch}
.phone-frame{position:relative;width:min(100vw,430px);min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;padding:max(10px,env(safe-area-inset-top,0px)) 0 max(10px,env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;background:linear-gradient(180deg,#efc3de,#c6eef3)}
.bg-main{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;pointer-events:none}
.heart{position:absolute;top:34px;right:-16px;width:138px;opacity:.9}
html[dir="rtl"] .heart{right:auto;left:-16px}
.hero{position:relative;z-index:2;text-align:center;padding-top:4px;flex-shrink:0}
.hero--no-subtitle{margin-bottom:18px}
.title-row{display:flex;align-items:center;justify-content:center;gap:10px}
.title-row img{height:26px}
.title-row .title-svg{height:30px;display:none}
.title-text{margin:0;font-size:clamp(16px,4.6vw,22px);font-weight:800;letter-spacing:.04em;color:#1e1e1e;line-height:1;white-space:nowrap}
html[data-lang="zh-CN"] .title-svg{display:block}
html[data-lang="zh-CN"] .title-text{display:none}
html[dir="rtl"] .title-text{letter-spacing:0}
.hero-subtitle{margin:10px 0 15px;color:#1e1e1e;font-size:13px;padding:0 16px}
.card-stack{position:relative;z-index:2;width:100%;margin-top:8px;flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.question-card{width:100%;min-height:min(480px,calc(100dvh - 200px));padding:0;background:url(./img/card_bg.png) no-repeat center;background-size:100% 100%;display:flex;justify-content:center}
.question-card .card-content{position:relative;z-index:1;width:270px;padding:75px 8px 0 20px}
.consent-text{margin:0 0 12px;color:#2a2235;font-size:clamp(15px,4.2vw,20px);line-height:1.55;font-weight:700;min-height:0}
.question-card h2{margin:0 0 10px;color:#f2009d;font-size:20px;line-height:1.05;font-style:italic;letter-spacing:.2px}
.prompt{margin:0 0 14px;color:#222;font-size:14px;min-height:38px;height:auto;font-weight:700}
.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 12px}
.option-card{border:0;margin:0;padding:0;background:transparent;cursor:pointer;color:#222;font-size:14px;font-weight:700;text-align:center}
.option-card img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:12px;border:2px solid transparent;display:block;margin-bottom:4px}
.option-card.is-selected img{border-color:#f2009d}
.loading-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:136px}
.loading-content h2{margin:0;align-self:flex-start;color:#f2009d;font-size:14px;line-height:1.05;font-style:italic}
.loading-content--center{width:100%;padding-top:0;min-height:430px;justify-content:center;transform:translateY(-24px)}
.loading-content p{margin:0 0 20px;color:#1e1e1e;font-size:14px;font-weight:700}
.loading-content--center .loading-line-1{margin-bottom:36px}
.loading-content--center .loading-line-2{margin-bottom:15px}
.loading-content--final{width:100%;min-height:430px;justify-content:center;gap:0;padding-top:0}
.loading-content--final h2{position:absolute;top:0;left:0}
.loading-final-text{margin:0 0 15px;font-size:14px;color:#1e1e1e;font-weight:700}
.loading-track{width:min(234px,100%);height:16px;border-radius:999px;background:#ffffffb3;overflow:hidden;margin-top:0}
.loading-fill{width:0%;height:100%;border-radius:999px;background:linear-gradient(90deg,#f2009d,#ff60cf);transition:width .06s linear}
.phone-frame>.result-panel{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.result-panel{position:relative;z-index:2;margin-top:12px;padding:0 24px 20px;color:#1e1e1e}
.result-panel h3{margin:0 0 19px;font-size:20px;line-height:1.3}
.result-panel .meta{margin:0 0 35px;font-size:15px;line-height:1.55;font-weight:600}
.result-panel .lead{margin:0 0 14px;font-size:18px;line-height:1.45;font-weight:500}
.result-panel ol{margin:32px 0 0;padding-left:20px;color:#555}
html[dir="rtl"] .result-panel ol{padding-left:0;padding-right:20px}
.result-panel li{font-size:16px;line-height:1.55;margin-bottom:8px}
.contact-row{margin-top:18px;display:flex;align-items:center;gap:14px}
.contact-row strong{font-size:22px}
.contact-placeholder{width:62px;height:62px;border-radius:16px;background:#b4b4b499;cursor:pointer;flex-shrink:0}
.phone-frame>footer.actions{flex-shrink:0;margin-top:8px;padding-bottom:max(4px,env(safe-area-inset-bottom,0px))}
.actions{position:relative;z-index:2;display:flex;gap:16px;align-items:center;justify-content:center;margin-top:12px}
.actions button{width:132px;height:44px;border:0;border-radius:999px;background:#1e1e1e;color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:transform .15s ease,opacity .15s ease}
.actions--consent{margin-top:16px}
.actions--consent button{height:46px;font-size:16px}
.question-card.question-card--consent{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}
.question-card--consent .card-content{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:290px;margin-left:auto;margin-right:auto;padding:clamp(130px,22vh,180px) 12px 0 16px}
.question-card--consent .actions--consent{position:static;left:auto;right:auto;bottom:auto;margin-top:auto;padding:12px 12px 8px;flex-shrink:0}
.actions button:active{transform:translateY(1px);opacity:.95}
@media (max-width: 480px){
  .phone-frame{width:100vw;padding:max(8px,env(safe-area-inset-top,0px)) 0 max(8px,env(safe-area-inset-bottom,0px))}
  .title-row .title-svg{height:clamp(18px,5vw,20px)}
  .title-row img:not(.title-svg){height:clamp(20px,5.5vw,26px)}
  .heart{width:min(126px,28vw);top:22px}
  html[dir="rtl"] .heart{left:-16px;right:auto}
  .question-card:not(.question-card--consent){min-height:min(480px,calc(100dvh - 160px));padding:0}
  .question-card.question-card--consent{min-height:0}
  .question-card h2{font-size:14px}
  .consent-text{font-size:clamp(14px,4vw,17px);line-height:1.5;margin-bottom:10px;min-height:0}
  .prompt{font-size:12px;margin-bottom:12px}
  .option-card{font-size:12px}
  .loading-content{padding-top:100px}
  .loading-content h2{font-size:14px}
  .loading-content--center{min-height:390px;transform:translateY(-20px)}
  .loading-content--final{min-height:390px}
  .loading-track{width:min(234px,100%);height:12px}
  .result-panel h3{font-size:20px}
  .result-panel .meta{font-size:15px}
  .result-panel .lead{font-size:18px}
  .result-panel li{font-size:13px}
  .contact-row strong{font-size:16px}
  .actions button{width:134px;height:44px;font-size:16px}
  .actions--consent button{width:132px;height:42px;font-size:16px}
  .question-card--consent .actions--consent{padding:10px 8px 6px}
}
@media (max-height: 700px){
  .hero-subtitle{margin:6px 0 8px;font-size:12px}
  .heart{width:min(100px,26vw);top:16px;right:-12px}
  html[dir="rtl"] .heart{left:-12px;right:auto}
  .title-row{gap:6px}
  .question-card:not(.question-card--consent) .card-content{padding-top:clamp(32px,8vh,60px)}
}
