*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#070a12;color:#f6f7fb;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 50% 15%,#20243a 0,#0b0f1b 42%,#05070d 100%)}.panel{width:min(1120px,100%);min-height:calc(100vh - 48px);border:1px solid #30364b;border-radius:28px;background:rgba(9,12,22,.88);box-shadow:0 24px 80px rgba(0,0,0,.45);padding:28px;position:relative;overflow:hidden}.brand{letter-spacing:.28em;font-weight:900;text-align:center;font-size:clamp(28px,5vw,56px);margin:4px 0 8px}.sub{letter-spacing:.18em;text-align:center;color:#aeb5c8;font-size:12px;font-weight:800}.hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin-top:28px}.hero-copy{text-align:center}.hero-copy h1{font-size:clamp(34px,6vw,72px);line-height:.95;margin:0 0 18px}.hero-copy p{color:#b8bfd0;font-size:16px;line-height:1.7;max-width:520px;margin:0 auto 28px}.cta{width:min(360px,100%);padding:18px 26px;border-radius:14px;border:1px solid #7b8298;background:#f4f5f7;color:#090b12;font-weight:950;letter-spacing:.18em}.cta:hover{transform:translateY(-1px)}.woman{min-height:540px;border-radius:24px;border:1px solid #333a50;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 28%,#6d718c 0,#2d3045 22%,#131726 58%,#090b13 100%);position:relative}.woman:before{content:"";position:absolute;width:210px;height:300px;top:110px;border-radius:48% 48% 38% 38%;background:linear-gradient(145deg,#f0c3a8,#b87568);box-shadow:0 -90px 0 12px #171421,0 22px 70px rgba(0,0,0,.45)}.woman:after{content:"";position:absolute;width:390px;height:330px;bottom:-150px;border-radius:50% 50% 0 0;background:linear-gradient(135deg,#1b1d2b,#0b0d16)}.woman span{position:absolute;z-index:2;bottom:22px;letter-spacing:.12em;font-size:11px;color:#d6d9e4;font-weight:800}.topline{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.title{font-size:clamp(28px,4vw,48px);font-weight:900;margin:0}.smallbtn,.back{border:1px solid #424a61;background:#111624;color:#fff;border-radius:10px;padding:10px 14px;font-weight:800}.choice-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:24px;align-items:stretch}.preview-card,.choices{border:1px solid #30374c;border-radius:20px;background:#0d1220;padding:18px}.preview-card .woman{min-height:560px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.action{padding:15px;border-radius:12px;border:1px solid #586076;background:#171d2d;color:#fff;font-weight:900;letter-spacing:.08em}.action.primary{background:#f4f5f7;color:#090b12}.choices{max-height:650px;overflow:auto}.group{margin-bottom:18px}.group h3{font-size:12px;letter-spacing:.14em;color:#9da6bb;margin:0 0 9px}.options{display:flex;flex-wrap:wrap;gap:8px}.opt{border:1px solid #3c4459;background:#111725;color:#dfe3ed;border-radius:999px;padding:8px 11px;font-size:12px}.opt.active{border-color:#e9ebf0;background:#e9ebf0;color:#090b12;font-weight:900}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:13px}.field label{font-size:12px;color:#aab2c4;font-weight:800}.field input{border:1px solid #3d455a;background:#080c15;color:#fff;border-radius:10px;padding:11px}.finish{width:100%;padding:15px;border-radius:12px;border:1px solid #737b90;background:#f4f5f7;color:#080b12;font-weight:950;letter-spacing:.1em;margin-top:8px}.companion{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:22px}.video-wrap{border:1px solid #333b51;border-radius:22px;background:#020308;overflow:hidden;min-height:520px;position:relative}.video-wrap video{width:100%;height:100%;min-height:520px;object-fit:cover;display:block}.status{position:absolute;left:14px;top:14px;background:rgba(5,7,12,.78);border:1px solid #3c4356;padding:8px 10px;border-radius:10px;font-size:12px}.usage{font-size:14px;font-weight:900;letter-spacing:.08em;text-align:center;margin:12px 0;color:#e9ecf4}.chat{border:1px solid #333b51;border-radius:22px;background:#0c111d;padding:16px;display:flex;flex-direction:column;min-height:520px}.messages{flex:1;overflow:auto;padding:4px}.msg{margin:8px 0;padding:10px 12px;border-radius:12px;max-width:88%;line-height:1.45;font-size:14px}.msg.you{margin-left:auto;background:#e9ebf0;color:#080b12}.msg.her{background:#171e2d;color:#e8ebf2}.chatbar{display:flex;gap:8px;margin-top:10px}.chatbar input{flex:1;border:1px solid #3b4358;background:#080c14;color:#fff;border-radius:10px;padding:12px}.chatbar button{border:1px solid #657087;background:#f4f5f7;color:#090b12;border-radius:10px;padding:0 16px;font-weight:900}.ended{position:absolute;inset:0;background:rgba(3,5,10,.94);display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;z-index:5}.ended h2{font-size:32px;margin:0 0 10px}.note{color:#9fa7ba;font-size:13px;line-height:1.6}.hidden{display:none!important}@media(max-width:800px){.panel{min-height:calc(100vh - 24px);padding:18px;border-radius:20px}.screen{padding:12px}.hero,.choice-layout,.companion{grid-template-columns:1fr}.woman,.preview-card .woman,.video-wrap,.video-wrap video{min-height:420px}.choices{max-height:none}.actions{grid-template-columns:1fr}.topline{align-items:flex-start}.back{padding:8px 10px}.chat{min-height:420px}}
.buy-panel{position:fixed;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.78);z-index:1000;padding:20px}.buy-box{width:min(560px,100%);background:#0b1830;border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:28px;box-shadow:0 25px 70px rgba(0,0,0,.5);text-align:center}.buy-box h2{margin:0 0 8px;letter-spacing:.08em}.buy-options{display:grid;gap:12px;margin:22px 0}.buy-options button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:18px 20px;border-radius:14px;border:1px solid rgba(255,255,255,.22);background:#12233f;color:#fff;font:inherit;cursor:pointer}.buy-options button:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.5)}.buy-options strong{letter-spacing:.08em}.buy-options span{font-weight:800;font-size:1.1rem}.buy-box .back{margin-top:4px}

/* Responsive static companion artwork used on Pages 1–3. Page 3 intentionally has no animation. */
.woman{--skin:#d9a07c;--hair:#3a241b;--eyes:#4a2c20;--outfit:#252a3a;--body-scale:1;position:relative;min-height:520px;border:1px solid #30364b;border-radius:24px;background:radial-gradient(circle at 50% 25%,#30364a 0,#151a29 48%,#090c15 100%);display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.woman:before{content:"";position:absolute;inset:auto 12% 0;height:58%;background:linear-gradient(180deg,transparent,#080a11);pointer-events:none}
.avatar-head{position:absolute;top:72px;width:190px;height:245px;z-index:2}
.avatar-face{position:absolute;inset:35px 20px 8px;border-radius:48% 48% 44% 44%;background:var(--skin);box-shadow:0 18px 35px rgba(0,0,0,.28)}
.avatar-hair{position:absolute;z-index:2;left:4px;top:0;width:182px;height:175px;border-radius:52% 52% 35% 35%;background:var(--hair);box-shadow:0 10px 25px rgba(0,0,0,.3)}
.avatar-hair:after{content:"";position:absolute;left:-5px;right:-5px;top:105px;height:130px;border-radius:0 0 50% 50%;background:var(--hair)}
.woman[data-hair="short"] .avatar-hair:after{height:55px}
.woman[data-hair="medium"] .avatar-hair:after{height:95px}
.woman[data-hair="wavy"] .avatar-hair:after{height:145px;border-radius:0 0 45% 55%}
.eye{position:absolute;top:103px;width:23px;height:10px;border-radius:50%;background:#fff}
.eye:after{content:"";display:block;margin:2px auto;width:7px;height:7px;border-radius:50%;background:var(--eyes)}
.eye.left{left:37px}.eye.right{right:37px}
.mouth{position:absolute;left:50%;top:157px;transform:translateX(-50%);width:31px;height:9px;border-bottom:2px solid #7d3e45;border-radius:50%}
.avatar-body{position:absolute;bottom:-60px;width:270px;height:300px;border-radius:48% 48% 0 0;background:var(--outfit);transform:scaleX(var(--body-scale));box-shadow:0 -20px 50px rgba(0,0,0,.25)}
.woman span{position:absolute;z-index:5;bottom:18px;left:18px;right:18px;text-align:center;letter-spacing:.16em;font-size:11px;font-weight:800;color:#c5cada}
@media(max-width:800px){.hero{grid-template-columns:1fr}.woman{min-height:440px}.panel{padding:18px}.choice-layout{grid-template-columns:1fr!important}}

.page3-back{width:100%;margin-top:10px}

/* Live Build-Your-Own preview: every appearance choice is reflected immediately. */
.woman .avatar-head,.woman .avatar-body,.woman .avatar-hair,.woman .avatar-face,.woman .eye,.woman .mouth{transition:all .18s ease}
.woman .avatar-head{transform-origin:50% 100%}
.woman[data-hair="short"] .avatar-hair{width:176px;height:132px;left:7px}
.woman[data-hair="medium"] .avatar-hair{width:184px;height:158px;left:3px}
.woman[data-hair="long"] .avatar-hair{width:190px;height:184px;left:0}
.woman[data-hair="wavy"] .avatar-hair{width:194px;height:188px;left:-2px;border-radius:48% 52% 30% 30%;}
.woman[data-hair="wavy"] .avatar-hair:after{border-radius:18% 18% 48% 52%;}
.woman[data-hair-color="blonde"] .avatar-hair{filter:brightness(1.08)}
.woman[data-hair-color="auburn"] .avatar-hair{filter:saturate(1.18)}
.woman[data-hair-color="black"] .avatar-hair{filter:brightness(.88)}
.woman[data-eyes="green"] .eye:after{width:8px;height:8px}
.woman[data-eyes="blue"] .eye:after{width:8px;height:8px}
.woman[data-eyes="hazel"] .eye:after{width:9px;height:9px}
.woman[data-makeup="soft glam"] .mouth{width:36px;height:11px;border-bottom-width:3px}
.woman[data-makeup="classic"] .mouth{width:34px;height:10px;border-bottom-width:3px}
.woman[data-makeup="bold"] .mouth{width:39px;height:12px;border-bottom-width:3px}
.woman[data-makeup="bold"] .eye{height:12px}
.woman[data-body-type="slender"] .avatar-body{width:238px}
.woman[data-body-type="fit"] .avatar-body{width:258px}
.woman[data-body-type="curvy"] .avatar-body{width:292px}
.woman[data-body-type="voluptuous"] .avatar-body{width:320px}
.woman[data-clothing="casual"] .avatar-body{border-radius:34% 34% 0 0}
.woman[data-clothing="evening"] .avatar-body{border-radius:50% 50% 0 0}
.woman[data-clothing="modern"] .avatar-body{border-radius:42% 42% 0 0}
.woman[data-clothing="elegant"] .avatar-body{border-radius:48% 48% 0 0}
.woman[data-skin-tone="fair"] .avatar-face{box-shadow:0 18px 35px rgba(0,0,0,.28),inset 0 0 18px rgba(255,255,255,.12)}
.woman[data-skin-tone="deep"] .avatar-face{box-shadow:0 18px 35px rgba(0,0,0,.34),inset 0 0 18px rgba(0,0,0,.08)}
.woman[data-attitude="mischievous"] .mouth{transform:translateX(-50%) rotate(-5deg)}
.woman[data-attitude="gentle"] .mouth{opacity:.75}
.woman[data-attitude="confident"] .mouth{width:35px}
.woman[data-personality="witty"] .avatar-head{transform:rotate(-1deg)}
.woman[data-personality="sweet"] .avatar-head{transform:rotate(.7deg)}

/* Complete Appearance control: petite/tall/curvy/athletic changes the same character's proportions immediately. */
.woman .avatar-head,
.woman .avatar-body{transform-origin:50% 100%;}
.woman .avatar-head{transform:scaleY(var(--appearance-scale,1));}
.woman .avatar-body{transform:scale(var(--appearance-scale,1),1) scaleX(var(--body-scale,1));}
.woman[data-appearance="petite"] .avatar-head{top:86px;}
.woman[data-appearance="tall"] .avatar-head{top:54px;}
.woman[data-appearance="curvy"] .avatar-body{border-radius:52% 52% 0 0;}
.woman[data-appearance="athletic"] .avatar-body{border-radius:30% 30% 0 0;}

/* Subtle visual feedback for behavioral choices without replacing the character. */
.woman[data-flirting="very flirty"] .mouth{width:37px;}
.woman[data-flirting="playful & suggestive"] .mouth{transform:translateX(-50%) rotate(-3deg);}
.woman[data-flirting="confident & teasing"] .mouth{width:35px;}
.woman[data-flirting="mischievous & bold"] .mouth{width:39px;transform:translateX(-50%) rotate(4deg);}
.woman[data-voice="warm"] .avatar-face{filter:saturate(1.03);}
.woman[data-voice="confident"] .avatar-head{transform:scaleY(var(--appearance-scale,1)) translateY(-2px);}
.woman[data-voice="soft"] .avatar-face{filter:brightness(1.02);}

/* ============================================================
   PAGE 2 — CLEAN CHOOSE SCREEN
   Separate visual treatment from Page 1 and Page 3.
   No Page 1 text, ENTER button, or quick-profile controls.
   ============================================================ */
.choose-page{
  min-height:calc(100vh - 104px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 0;
}
.choose-photo-card{
  width:min(760px,100%);
  display:flex;
  flex-direction:column;
  align-items:center;
}
.page2-woman{
  width:min(620px,100%);
  min-height:min(680px,72vh);
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 18%,#535a78 0,#292f49 27%,#111729 63%,#080b14 100%);
  border:1px solid #3f4760;
  box-shadow:0 28px 80px rgba(0,0,0,.48);
  transform:translateZ(0);
}
.page2-woman .avatar-head{
  top:78px;
  width:220px;
  height:270px;
  transform:scale(1.08);
}
.page2-woman .avatar-face{
  inset:38px 22px 8px;
}
.page2-woman .avatar-hair{
  left:0;
  width:220px;
  height:190px;
}
.page2-woman .avatar-body{
  width:310px;
  height:330px;
  bottom:-70px;
}
.page2-woman .eye{top:112px}
.page2-woman .mouth{top:170px}
.page2-actions{
  width:min(620px,100%);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:18px;
}
.page2-actions .action{
  min-height:58px;
  font-size:14px;
}
@media(max-width:800px){
  .choose-page{min-height:calc(100vh - 60px)}
  .page2-woman{min-height:520px}
  .page2-actions{grid-template-columns:1fr}
}

/* Page 1 stays visually distinct. */
#heroAvatar{
  background:radial-gradient(circle at 50% 20%,#6b718d 0,#2d3146 24%,#131827 60%,#080b12 100%);
}

/* Page 3 is the live construction preview, not a photo carousel. */
#buildAvatar{
  background:radial-gradient(circle at 50% 24%,#394057 0,#1b2032 38%,#0b0f1a 100%);
}

.woman[data-conversation="deep"] .avatar-face{box-shadow:0 18px 35px rgba(0,0,0,.28),inset 0 0 0 2px rgba(120,140,180,.10)}
.woman[data-conversation="playful"] .mouth{transform:translateX(-50%) rotate(3deg) scale(1.05)}
.woman[data-conversation="supportive"] .avatar-face{filter:brightness(1.015) saturate(.98)}

/* PAGE 2: intentionally different portrait treatment from Page 1 and Page 3. */
.page2-portrait{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 50% 18%,rgba(255,255,255,.18),transparent 22%),
    radial-gradient(circle at 50% 35%,#6f7897 0,#343b58 34%,#151b2d 70%,#080b14 100%);
}
.page2-portrait .portrait-hair{
  position:absolute;z-index:3;top:72px;left:50%;width:255px;height:310px;transform:translateX(-50%);
  border-radius:52% 48% 45% 45%;background:linear-gradient(145deg,#17110f,#3a241b 45%,#211612);
  box-shadow:0 20px 45px rgba(0,0,0,.42);
}
.page2-portrait .portrait-face{
  position:absolute;z-index:4;top:116px;left:50%;width:178px;height:238px;transform:translateX(-50%);
  border-radius:48% 48% 45% 45%;background:linear-gradient(145deg,#f0c7ae,#d9a07c);
  box-shadow:0 15px 35px rgba(0,0,0,.3),inset -10px -12px 25px rgba(120,65,45,.10);
}
.page2-portrait .portrait-eye{
  position:absolute;top:105px;width:23px;height:10px;border-radius:50%;background:#fff;
}
.page2-portrait .portrait-eye:after{
  content:"";display:block;width:8px;height:8px;margin:1px auto;border-radius:50%;background:#4a2c20;
}
.page2-portrait .portrait-eye.left{left:38px}.page2-portrait .portrait-eye.right{right:38px}
.page2-portrait .portrait-mouth{
  position:absolute;left:50%;top:158px;width:36px;height:11px;transform:translateX(-50%);
  border-bottom:3px solid #8f4350;border-radius:50%;
}
.page2-portrait .portrait-neck{
  position:absolute;z-index:2;top:315px;left:50%;width:72px;height:110px;transform:translateX(-50%);
  background:#d39a78;border-radius:0 0 25px 25px;
}
.page2-portrait .portrait-shoulders{
  position:absolute;z-index:1;bottom:-65px;left:50%;width:390px;height:330px;transform:translateX(-50%);
  border-radius:48% 48% 0 0;background:linear-gradient(160deg,#252a3a,#5d4157 60%,#171923);
  box-shadow:0 -20px 55px rgba(0,0,0,.28);
}

.companion-status{
  width:min(92%,720px);
  margin:10px auto;
  text-align:center;
  font-size:.85rem;
  line-height:1.4;
  opacity:.82;
  min-height:1.2em;
}

/* 5567: clean Page 1 wordmark */
.brand{
  position:relative;
  display:block;
  font-family:Georgia, "Times New Roman", serif;
  font-size:clamp(2.5rem,7vw,5rem);
  font-weight:700;
  letter-spacing:.16em;
  line-height:1;
  text-align:center;
  text-transform:uppercase;
  text-shadow:none;
}
.brand::before,
.brand::after{
  content:none !important;
  display:none !important;
}

/* 5567: Page 2 uses a real standalone portrait, never the Page 1 avatar */
.page2-real-photo{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.page2-woman-photo{
  display:block;
  width:min(100%, 430px);
  aspect-ratio:2/3;
  object-fit:cover;
  object-position:center top;
  border-radius:22px;
  box-shadow:0 18px 55px rgba(0,0,0,.45);
}
.page2-real-photo .page2-actions{
  width:min(100%,430px);
  display:flex;
  gap:14px;
  justify-content:center;
  margin-top:18px;
}
.page2-real-photo .page2-actions .action{
  flex:1 1 0;
  min-width:0;
}

/* 5570 — Photorealistic Page 1 hero */
.page1-photo-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#090b12;
}
.page1-woman-photo{
  display:block;
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  object-position:center center;
  border-radius:22px;
}
@media(max-width:900px){
  .page1-woman-photo{min-height:430px}
}
@media(max-width:600px){
  .page1-woman-photo{min-height:390px;object-position:center center}
}

/* 5571 — Page 1 uses a real packaged photo, never the CSS placeholder. */
.page1-photo-wrap::before,.page1-photo-wrap::after{display:none!important;content:none!important}
.page1-photo-wrap span{display:none!important}
.page1-woman-photo{display:block!important;width:100%;height:100%;min-height:540px;object-fit:cover;object-position:center center;border-radius:22px}
@media(max-width:900px){.page1-woman-photo{min-height:430px}}
@media(max-width:600px){.page1-woman-photo{min-height:390px}}
