/* The guest entry owns its viewport; authenticated chat keeps its own layout. */
body.entry-checking, body.entry-landing { display:block; height:auto; min-height:100%; }
body.entry-checking > .site-header, body.entry-landing > .site-header { display:none; }
#entry-loading { min-height:100svh; display:grid; place-items:center; background:var(--brand-paper); color:var(--brand-muted); }
.entry-reconnect { max-width:440px; padding:24px; text-align:center; }
.entry-reconnect h1 { font-family:"Instrument Serif",Georgia,serif; font-weight:400; }
.entry-reconnect p { margin:16px 0; }
#entry-loading[hidden], #welcome[hidden], #conversation-page[hidden] { display:none!important; }
.gender-landing {
  --landing-lilac:#c2b7d7;
  --landing-rose:#e6bcb8;
  position:relative; isolation:isolate; width:100%; height:100svh; height:100dvh;
  min-height:540px; max-width:none; margin:0; display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  padding:env(safe-area-inset-top) 0 0; overflow:hidden;
  background:linear-gradient(90deg,var(--landing-lilac) 50%,var(--landing-rose) 50%);
}
.gender-landing::before {
  content:""; position:absolute; z-index:-1; inset:0; pointer-events:none;
  background:linear-gradient(var(--brand-paper),transparent 30%,transparent 72%,var(--brand-paper)); opacity:.85;
}
.landing-intro { position:relative; z-index:2; text-align:center; padding:clamp(20px,4dvh,42px) 20px 10px; }
.landing-intro h1 { margin:0 0 10px; color:var(--brand-ink); font:400 clamp(36px,4.8vw,64px)/1.05 "Instrument Serif",Georgia,serif; letter-spacing:-.03em; }
.landing-intro h1 s { color:#a598a2; text-decoration-thickness:1.5px; }
.landing-intro h1 em { font-weight:400; }
.landing-intro p { max-width:580px; margin:0 auto; color:var(--brand-muted); font-size:clamp(12px,1.2vw,15px); line-height:1.5; }
.landing-panels { min-height:0; display:grid; grid-template-columns:1fr 1fr; }
.landing-panel { position:relative; min-width:0; min-height:0; width:100%; display:flex; align-items:center; justify-content:center; padding:0 16px 62px; border:0; border-radius:0; background:transparent; appearance:none; text-align:center; cursor:pointer; }
.landing-photo { position:relative; height:100%; width:auto; aspect-ratio:3 / 4; max-width:min(100%,420px); min-height:0; overflow:hidden; mask-image:linear-gradient(transparent,#000 6%,#000 94%,transparent),linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent); mask-composite:intersect; }
.landing-photo img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; transition:opacity .3s ease; }
.landing-photo img.is-active { opacity:1; }
.landing-select {
  --cta-start:#533b55; --cta-end:#48324b;
  position:absolute; bottom:8px; min-width:168px; min-height:48px; padding:12px 32px;
  border:1px solid #ffffff0d; border-radius:5px; color:#fff8f2;
  background:linear-gradient(110deg,var(--cta-start),var(--cta-end));
  font:500 14px/1.4 "DM Sans",sans-serif; letter-spacing:.1px;
  box-shadow:0 2px 5px #30213012; cursor:pointer; transition:filter .15s,box-shadow .15s;
}
.landing-panel--female .landing-select { --cta-start:#92575e; --cta-end:#834d56; }
.landing-panel[aria-pressed="true"] .landing-select { box-shadow:inset 0 0 0 1px #fff8f2a6,0 2px 5px #30213012; }
.landing-panel:disabled, .landing-start:disabled { cursor:wait; opacity:.65; }
.landing-panel:disabled .landing-select { cursor:wait; }
.landing-panel:focus-visible { outline:none; }
.landing-panel:focus-visible .landing-select, .landing-start:focus-visible { outline:2px solid var(--brand-plum); outline-offset:4px; }
@media(hover:hover) { .landing-panel:hover:not(:disabled) .landing-select, .landing-start:hover:not(:disabled) { filter:brightness(1.06); } }
.landing-panel:active:not(:disabled) .landing-select, .landing-start:active:not(:disabled) { filter:brightness(.94); }
.landing-preview { position:relative; z-index:2; width:min(80%,1000px); margin:10px auto max(20px,env(safe-area-inset-bottom)); }
.landing-preview-box { display:flex; gap:16px; align-items:center; min-height:80px; padding:15px 20px; border:1px solid #d5c4ce; border-radius:10px; background:var(--brand-paper); }
.landing-preview-copy { flex:1; min-width:0; }
.landing-preview-label { display:block; color:var(--brand-muted); font-size:11px; margin-bottom:6px; letter-spacing:.3px; }
.landing-prompt { margin:0; min-height:23px; color:var(--brand-ink); font-size:15px; line-height:1.5; }
.landing-start { flex:none; min-height:44px; padding:11px 20px; border:1px solid #ffffff0d; border-radius:5px; background:linear-gradient(110deg,#533b55,#48324b); color:#fff8f2; font:500 14px/1.4 "DM Sans",sans-serif; white-space:nowrap; cursor:pointer; transition:filter .15s; }
.landing-error { margin:0 0 8px; padding:9px 12px; background:var(--brand-paper); color:#853b47; border-radius:5px; font-size:13px; }
.entry-back { display:block; margin:12px 0 0; background:none; border:0; color:var(--brand-muted); font:inherit; font-size:13px; text-decoration:underline; cursor:pointer; }
@media(max-width:640px) {
  .gender-landing { min-height:540px; background:linear-gradient(var(--landing-lilac) 50%,var(--landing-rose) 50%); }
  .landing-intro { padding:16px 12px 5px; }
  .landing-intro h1 { font-size:clamp(31px,8.7vw,42px); margin-bottom:8px; }
  .landing-intro p { max-width:none; font-size:clamp(10px,3.1vw,12px); }
  .landing-panels { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) minmax(0,1fr); }
  .landing-panel { padding:0 45% 0 6%; background:var(--landing-lilac); }
  .landing-panel--female { background:var(--landing-rose); }
  .landing-photo { height:100%; max-width:230px; }
  .landing-photo img { object-fit:contain; object-position:center; }
  .landing-select { right:7%; bottom:auto; top:50%; transform:translateY(-50%); min-width:118px; padding:11px 21px; min-height:44px; }
  .landing-preview { width:calc(100% - 24px); margin:9px auto max(12px,env(safe-area-inset-bottom)); }
  .landing-preview-box { padding:12px 14px; min-height:86px; gap:10px; }
  .landing-prompt { min-height:39px; font-size:13px; }
  .landing-start { padding:11px 13px; font-size:13px; }
}
@media(max-height:600px) and (min-width:641px) {
  .gender-landing { min-height:320px; }
  .landing-intro { padding-top:12px; }
  .landing-intro h1 { font-size:36px; }
  .landing-preview { margin-bottom:12px; }
  .landing-preview-box { min-height:66px; padding:10px 16px; }
}
@media(prefers-reduced-motion:reduce) { .landing-photo img, .landing-select, .landing-start { transition:none; } }
/* Zoomed text gets a natural document fallback rather than hidden content. */
@media(max-width:300px) { .gender-landing { height:auto; min-height:100svh; overflow:visible; } .landing-panels { min-height:440px; } .landing-panel { padding-right:45%; } .landing-select { min-width:90px; padding:10px; } }
