:root {
  color-scheme: light;
  --pink: #e54298;
  --pink-dark: #c72b7e;
  --pink-soft: #fff0f7;
  --blue: #426ecc;
  --teal: #35c6b1;
  --ink: #25324d;
  --muted: #5f6c82;
  --accent-text: #b62270;
  --line: #e7ebf4;
  --page: #f8faff;
  --surface: #fff;
  --soft: #f1f4fb;
  --shadow: 0 18px 50px #26385b12;
  font-family: "Avenir Next", Avenir, "Trebuchet MS", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-size: 16px; line-height: 1.5; margin: 0; color: var(--ink); background: var(--page); -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid #ec91c1; outline-offset: 3px; }
a { color: inherit; text-decoration: none; }
.is-hidden { display: none !important; }
.backend-status { margin: -6px 0 16px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: var(--surface); font-size: 14px; line-height: 1.5; }
.remote-video { width: 100%; height: 100%; object-fit: cover; background: #111b2e; }
.remote-placeholder { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; padding: 24px; text-align: center; color: #c8d2e6; background: #142039; font-size: 14px; }
.remote-play { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); padding: 12px 16px; border: 1px solid #ffffff55; border-radius: 12px; color: white; background: #a72468; white-space: nowrap; }
.self-preview { display: flex; align-items: center; gap: 14px; margin-top: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.self-preview video { width: 120px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 9px; background: #142039; transform: scaleX(-1); }
.self-preview strong { font-size: 14px; }
.self-preview p { margin: 5px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.chat-bubble, .conversation-person strong { overflow-wrap: anywhere; }
button:disabled { cursor: not-allowed; opacity: .5; }
fieldset:disabled { opacity: .6; }
.auth-dialog { position: fixed; width: min(460px, calc(100% - 28px)); max-height: 90dvh; margin: auto; padding: 26px; overflow-y: auto; border: 1px solid var(--line); border-radius: 20px; color: var(--ink); background: var(--surface); box-shadow: 0 28px 80px #08132855; }
.auth-dialog::backdrop { background: #111b3080; backdrop-filter: blur(6px); }
.auth-dialog .eyebrow { padding-right: 32px; color: var(--accent-text); }
.auth-dialog h2 { margin: 10px 0; font-size: 24px; }
.auth-dialog > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.6; }
.auth-tabs { display: flex; gap: 6px; padding: 4px; margin: 16px 0; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.auth-tabs button { flex: 1; min-height: 40px; border: 0; border-radius: 8px; color: var(--muted); background: transparent; font-size: 14px; }
.auth-tabs button[aria-pressed="true"] { color: var(--accent-text); background: var(--surface); font-weight: 700; }
.auth-social { margin: 16px 0 0; }
.auth-social .google-button { margin: 0; min-height: 44px; color: var(--ink); background: var(--surface); font-weight: 600; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 18px 0 4px; color: var(--muted); font-size: 14px; }
.auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.form-control { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: var(--surface); font: inherit; font-size: 16px; }
.auth-dialog .field-label, .safety-modal > .field-label { display: block; margin: 13px 0 7px; color: var(--muted); font-size: 14px; }
.registration-fields { min-width: 0; margin: 0; padding: 0; border: 0; }
.registration-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.adult-confirmation { display: flex; align-items: flex-start; gap: 9px; margin-top: 16px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.adult-confirmation input { margin-top: 4px; accent-color: var(--pink); }
.form-error { min-height: 16px; margin: 12px 0 0; color: var(--accent-text); font-size: 14px; line-height: 1.5; }
#login-button { min-width: 0; max-width: 100%; height: auto; min-height: 42px; padding-block: 9px; white-space: normal; overflow-wrap: anywhere; line-height: 1.4; }
@media (max-width: 420px) { .registration-grid { grid-template-columns: 1fr; } .self-preview video { width: 100px; } .auth-dialog { padding: 22px 18px; } }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.prototype-ribbon { text-align: center; display: flex; justify-content: center; align-items: center; gap: 8px; min-height: 30px; padding: 6px 14px; color: #775169; background: #fff0f7; border-bottom: 1px solid #f6dbe9; font-size: 14px; font-weight: 700; letter-spacing: .025em; }
.ribbon-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 3px #e5429818; }
.site-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 74px; padding: 12px clamp(22px, 5vw, 74px); border-bottom: 1px solid #e9edf5; background: #ffffffeb; backdrop-filter: blur(16px); }
.brand { display: inline-flex; align-items: center; gap: 7px; color: var(--pink); flex: 0 0 auto; }
.brand-mark { display: grid; place-items: center; width: 31px; height: 31px; }
.brand-mark svg { display: block; width: 31px; height: 31px; }
.brand-word { font-size: 29px; line-height: 1; font-weight: 900; letter-spacing: -1.9px; }
.brand-product { align-self: flex-end; margin: 0 0 2px 1px; color: var(--muted); font-size: 14px; font-weight: 800; letter-spacing: -.2px; }
.brand-live-dot { align-self: flex-end; width: 6px; height: 6px; margin: 0 0 4px -3px; border-radius: 50%; background: var(--teal); }
.header-nav { display: flex; align-items: center; gap: 34px; margin-left: auto; color: var(--muted); font-size: 14px; font-weight: 700; }
.header-nav a:hover, .site-footer a:hover { color: var(--pink-dark); }
.header-actions { display: flex; flex: 0 1 auto; align-items: center; gap: 10px; min-width: 0; max-width: 100%; }
.header-account { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 8px; min-width: 0; }
.header-actions > .theme-button, #logout-button { flex-shrink: 0; }
.account-plan-badge { display: inline-flex; align-items: center; gap: 5px; flex-shrink: 0; min-height: 28px; padding: 3px 8px; border: 1px solid #efc9df; border-radius: 9px; color: var(--accent-text); background: var(--pink-soft); font-size: 14px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.account-plan-symbol { font-size: 17px; line-height: 1; }
.account-plan-test { padding-left: 6px; border-left: 1px solid currentColor; font-weight: 500; }
.account-plan-badge[data-plan="unlimited"] { color: #7042a4; border-color: #ded2f3; background: #f3edff; }
.theme-button, .login-button { display: inline-grid; place-items: center; min-width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); color: var(--ink); }
.theme-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.login-button { padding: 0 18px; color: var(--blue); font-size: 14px; font-weight: 800; }
.login-button:hover, .theme-button:hover { border-color: #d7c1d4; background: #fffafd; }

.page-shell { width: min(1320px, calc(100% - 56px)); margin: 0 auto; padding: 47px 0 74px; }
.intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin: 0 0 29px; }
.intro-copy { max-width: 760px; }
.eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 13px; color: var(--muted); font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px #35c6b11b; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 12px; font-size: clamp(36px, 4.5vw, 58px); line-height: 1.06; letter-spacing: -.055em; font-weight: 900; }
h1 span { color: var(--pink); }
.intro-lede { max-width: 610px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.adult-pill { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; padding: 9px 13px 9px 9px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--muted); font-size: 14px; font-weight: 700; box-shadow: 0 3px 12px #26385b08; }
.adult-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; background: #b62270; font-size: 14px; font-weight: 900; box-shadow: 0 4px 10px #e5429830; }

.discovery-filters { position: relative; z-index: 5; margin-bottom: 16px; padding: 13px 16px 11px; border: 1px solid #34415a; border-radius: 16px; color: #eff3fc; background: #1b2639; color-scheme: dark; }
.filters-row { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: start; }
.filter-label { display: block; margin-bottom: 6px; padding: 0; color: #b6c4da; font-size: 14px; font-weight: 600; }
.location-control { width: 220px; max-width: 100%; min-width: 0; }
.location-picker { position: relative; }
.location-picker summary { display: flex; align-items: center; gap: 9px; min-height: 40px; padding: 7px 11px; border: 1px solid #41506a; border-radius: 10px; background: #233047; list-style: none; cursor: pointer; transition: border-color .18s, background .18s; }
.location-picker summary::-webkit-details-marker { display: none; }
.location-picker summary:hover, .location-picker[open] summary { border-color: #8da1bf; background: #2c3b55; }
.filter-globe { display: grid; place-items: center; flex: 0 0 18px; height: 18px; color: #8fe6d6; }
.filter-globe svg { width: 18px; height: 18px; }
.filter-globe svg, .filter-chevron, .gender-options svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.location-selection { min-width: 0; }
.location-selection strong { display: block; overflow-wrap: anywhere; font-size: 14px; font-weight: 600; }
.filter-chevron { width: 15px; height: 15px; flex-shrink: 0; margin-left: auto; color: #b9c7dd; transition: transform .18s; }
.location-picker[open] .filter-chevron { transform: rotate(180deg); }
.gender-filter { min-width: 0; margin: 0; padding: 0; border: 0; }
.gender-options { display: flex; gap: 4px; }
.gender-options label, .location-options label { position: relative; display: block; min-width: 0; cursor: pointer; }
.gender-options input, .location-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.gender-options label > span { display: flex; justify-content: center; align-items: center; gap: 6px; min-height: 40px; padding: 0 13px; border: 1px solid #3c4a61; border-radius: 10px; color: #c6d1e4; background: #233047; font-size: 14px; font-weight: 600; transition: background .18s, color .18s; }
.gender-options svg { width: 16px; height: 16px; flex: 0 0 auto; }
.gender-options label:hover > span { background: #2b3b55; }
.gender-options input:checked + span { border-color: #b76893; color: #ffc8e4; background: #3b293f; }
.gender-options input:focus-visible + span, .location-options input:focus-visible + span { outline: 3px solid #ec91c1; outline-offset: 2px; }
.filter-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin-top: 9px; color: #a7b8d1; font-size: 14px; line-height: 1.5; }
.filter-footer p { margin: 0; }
.filter-footer > span { color: #8edbca; }
.clear-filters { padding: 3px 8px; border: 1px solid #52627d; border-radius: 8px; background: transparent; color: #e4eaf5; font: inherit; cursor: pointer; }
.clear-filters:hover:not(:disabled) { border-color: #ef8dc6; color: #ffc6e7; }
.clear-filters:disabled { opacity: .5; cursor: not-allowed; }
.locations-fieldset { position: absolute; z-index: 6; top: calc(100% + 10px); left: 0; width: min(430px, calc(100vw - 72px)); max-height: min(400px, 60vh); overflow-y: auto; overscroll-behavior: contain; min-width: 0; margin: 0; padding: 18px; border: 1px solid #52617a; border-radius: 17px; background: #1d293e; box-shadow: 0 20px 48px #080f2366; }
.locations-fieldset legend { float: left; width: 100%; margin-bottom: 13px; padding: 0; color: #e6edf8; font-size: 14px; font-weight: 800; }
.location-options { display: grid; clear: both; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.location-options label > span { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-height: 44px; padding: 9px 10px; border: 1px solid #3c4d68; border-radius: 10px; color: #d1dcec; background: #26354d; font-size: 14px; font-weight: 700; transition: border-color .18s, background .18s; }
.location-options label:hover > span { border-color: #95a4bc; }
.location-options input:checked + span { border-color: #ee81b9; color: #ffe3f1; background: #542642; box-shadow: inset 0 0 0 1px #ed7fb52e; }
.world-option { grid-column: 1 / -1; }
.world-option small { margin-left: auto; color: #d6bfd1; font-size: 14px; font-weight: 500; }
.location-help { margin: 13px 0 0; color: #aebdd3; font-size: 14px; line-height: 1.5; }
.experience { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(310px, .82fr); gap: 18px; align-items: stretch; }
.video-column { min-width: 0; }
.video-stage { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; isolation: isolate; border: 1px solid #394865; border-radius: 24px; color: #fff; background: radial-gradient(ellipse at 50% 58%, #283c68 0%, #172540 40%, #111b30 100%); box-shadow: 0 18px 50px #1e294012; }
.stage-grid { position: absolute; inset: 0; z-index: -1; opacity: .23; background-image: linear-gradient(#93a4c315 1px, transparent 1px), linear-gradient(90deg, #93a4c315 1px, transparent 1px); background-size: 46px 46px; mask-image: linear-gradient(to bottom, black, transparent 85%); }
.stage-orb { position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); opacity: .38; }
.orb-pink { width: 360px; height: 360px; top: -210px; right: -70px; background: radial-gradient(circle, #e54298 0%, #e5429810 68%, transparent 72%); }
.orb-blue { width: 390px; height: 390px; bottom: -255px; left: -145px; background: radial-gradient(circle, #426ecc 0%, #426ecc10 67%, transparent 72%); }
.video-toolbar { margin-top: 10px; padding: 12px 14px; border: 1px solid #34425b; border-radius: 16px; background: #1b2639; }
.stage-topline { flex-wrap: wrap; display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 9px; }
.stage-label, .demo-label { display: inline-flex; align-items: center; gap: 7px; min-height: 20px; padding: 0; color: #b4c2d7; font-size: 12px; font-weight: 650; letter-spacing: .08em; }
.stage-label-dot { flex: 0 0 7px; height: 7px; border-radius: 50%; background: #a7b3c8; }
.video-column[data-state="searching"] .stage-label-dot { background: #f5c958; box-shadow: 0 0 0 4px #f5c95825; }
.video-column[data-state="connected"] .stage-label-dot { background: var(--teal); box-shadow: 0 0 0 4px #35c6b125; }
.demo-label { padding: 0 7px; border-radius: 6px; color: #ffc0df; background: #e5429814; }
.stage-view { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; border-radius: inherit; text-align: center; }
.stage-start-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 92px; min-height: 40px; padding: 0 15px; border: 1px solid #e369aa; border-radius: 10px; color: #fff; background: #c52c7d; font-size: 14px; font-weight: 650; transition: background .18s, border-color .18s; }
.stage-start-button:hover { border-color: #f3a7d1; background: #d03588; }
.stage-start-button:disabled { cursor: wait; opacity: .7; transform: none; }
.stage-skip-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.stage-skip-button:disabled { cursor: not-allowed; border-color: #576078; color: #bdc7d9; background: #303a4f; opacity: .8; }
.swipe-hint { display: none; align-items: center; gap: 6px; flex-basis: 100%; color: #b4c2d7; }
.video-stage[data-state="connecting"], .video-stage[data-state="connected"] { touch-action: pan-y pinch-zoom; }
.video-stage video, .remote-placeholder, .stage-orb, .stage-grid { pointer-events: none; }
.start-symbol { display: grid; place-items: center; flex: 0 0 auto; }
.start-symbol svg { width: 15px; height: 15px; fill: currentColor; }
.waiting-animation { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; margin: 0; border: 0; border-radius: inherit; object-fit: cover; background: #17213d; }
.demo-person { position: relative; display: grid; place-items: center; width: 38%; max-width: 185px; aspect-ratio: 1; overflow: hidden; border: 1px solid #ffffff25; border-radius: 50%; background: linear-gradient(145deg, #f398c8, #bc71c1 48%, #687fd1); box-shadow: 0 22px 70px #050c1e80, 0 0 0 10px #ffffff0a; }
.person-glow { position: absolute; inset: -20%; background: radial-gradient(circle at 68% 28%, #fff8 0, transparent 35%), radial-gradient(circle at 25% 80%, #ed459a 0, transparent 54%); }
.person-head { position: absolute; top: 22%; width: 33%; height: 37%; border-radius: 50% 50% 45% 45%; background: linear-gradient(130deg, #ffe1d1, #d89086); box-shadow: 0 -12px 0 4px #3a2a4e; }
.person-body { position: absolute; bottom: -19%; width: 86%; height: 52%; border-radius: 48% 48% 16% 16%; background: linear-gradient(135deg, #292946, #363a69); }
.person-spark { position: absolute; color: #fff5ff; text-shadow: 0 2px 14px #fff; }
.spark-one { top: 14%; right: 15%; font-size: 22px; }.spark-two { bottom: 20%; left: 13%; font-size: 16px; }
.online-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); }
.stage-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.stage-control { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 0; min-height: 40px; padding: 0 11px; border: 1px solid #42516a; border-radius: 10px; color: #d9e2f0; background: #253248; font-size: 14px; font-weight: 550; transition: background .18s, border-color .18s; }
.stage-control:hover { border-color: #798ba7; background: #2e3d54; }
.stage-control.is-active { border-color: #529e93; color: #b0ecdf; background: #233f45; }
.stage-control svg { width: 16px; height: 16px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.stage-control:active, .stage-start-button:active { transform: translateY(0); }
.stop-control { border-color: #654052; color: #f2b9d0; background: #34283b; }
.stop-control:hover { border-color: #b77a95; background: #443047; }
.stage-caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 15px; margin-top: 9px; padding-top: 9px; border-top: 1px solid #354159; color: #adbed5; font-size: 14px; }
.caption-status { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.status-pulse { width: 7px; height: 7px; border-radius: 50%; background: #aab4c5; }
.status-pulse.is-searching { background: #edbd4e; animation: pulse 1.2s infinite; }
.status-pulse.is-connected { background: var(--teal); box-shadow: 0 0 0 4px #35c6b120; }
@keyframes pulse { 50% { box-shadow: 0 0 0 6px #edbd4e1c; } }
.caption-note { color: #a5b3ca; }

.side-panel { display: flex; flex-direction: column; min-width: 0; padding: 27px 26px 21px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.panel-overline { margin: 0 0 7px; color: var(--accent-text); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.panel-heading h2 { margin: 0; font-size: 23px; letter-spacing: -.04em; font-weight: 900; }
.sparkle-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--pink); background: var(--pink-soft); font-size: 19px; }
.panel-copy { margin: 0 0 20px; color: var(--muted); font-size: 16px; line-height: 1.6; }
.field-label { display: block; margin-bottom: 7px; color: var(--ink); font-size: 14px; font-weight: 850; }
.select-wrap { position: relative; }
.select-wrap select { width: 100%; height: 45px; padding: 0 38px 0 13px; appearance: none; border: 1px solid #e3e8f2; border-radius: 12px; outline-color: var(--pink); color: var(--ink); background: #fff; font-size: 16px; font-weight: 750; }
.select-wrap > span { position: absolute; top: 10px; right: 14px; color: #72819a; font-size: 18px; pointer-events: none; }
.field-help { margin: 7px 0 17px; color: var(--muted); font-size: 14px; line-height: 1.45; }
.access-card { margin-top: 13px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.access-card-top, .plan-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mini-overline { display: block; margin-bottom: 4px; color: var(--muted); font-size: 12px; font-weight: 900; letter-spacing: .13em; }
.access-card-top strong { display: block; color: var(--ink); font-size: 14px; font-weight: 900; }
.daily-time { color: var(--pink-dark); font-size: 14px; font-weight: 900; white-space: nowrap; }
.daily-time small { color: var(--muted); font-size: 14px; font-weight: 700; }
.usage-track { height: 5px; margin-top: 10px; overflow: hidden; border-radius: 9px; background: #f1eaf0; }
.usage-track span { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--pink), #f49ac7); }
.hosted-usage { margin: 0 0 20px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); }
.usage-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; color: var(--muted); font-size: .875rem; }
.hosted-usage strong { display: block; margin: 10px 0; color: var(--pink); font-size: 1.35rem; line-height: 1.35; }
.hosted-usage progress { display: block; width: 100%; height: 6px; border: 0; border-radius: 8px; overflow: hidden; background: var(--line); accent-color: var(--pink); }
.hosted-usage progress::-webkit-progress-bar { background: var(--line); border-radius: 8px; }
.hosted-usage progress::-webkit-progress-value { background: var(--pink); border-radius: 8px; }
.hosted-usage progress::-moz-progress-bar { background: var(--pink); border-radius: 8px; }
.hosted-usage p { margin: 12px 0 8px; color: var(--ink); font-size: .875rem; line-height: 1.5; }
.hosted-usage small { display: block; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.access-card > p { margin: 7px 0 0; color: var(--muted); font-size: 14px; line-height: 1.45; }
.filters-upgrade { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 44px; margin: 8px 0 13px; padding: 0 3px; border: 0; color: var(--accent-text); background: transparent; font-size: 14px; font-weight: 800; }
.filters-upgrade span { font-size: 15px; }
.queue-note { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid #f1e1ec; border-radius: 13px; background: #fff9fc; }
.queue-icon { display: grid; place-items: center; width: 31px; height: 31px; flex: 0 0 auto; border-radius: 10px; color: var(--pink); background: #fce1ef; font-size: 17px; }
.queue-note strong, .queue-note small { display: block; }
.queue-note strong { color: var(--ink); font-size: 14px; }
.queue-note small { margin-top: 4px; color: var(--muted); font-size: 14px; }
.primary-button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 44px; margin-top: 16px; padding: 0 14px; border: 1px solid #db5c9f; border-radius: 11px; color: #fff; background: #c52c7d; font-size: 14px; font-weight: 650; transition: background .16s; }
.primary-button:hover { background: #d03588; }
.button-arrow { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #ffffff55; border-radius: 9px; font-size: 16px; }
.button-caption { margin: 9px 0 0; color: var(--muted); text-align: center; font-size: 14px; line-height: 1.5; }
.panel-divider { height: 1px; margin: 20px 0 17px; background: var(--line); }
.safety-promise { display: flex; align-items: flex-start; gap: 10px; margin-top: auto; }
.shield-icon { display: grid; place-items: center; width: 27px; height: 27px; flex: 0 0 auto; border-radius: 9px; color: #188c79; background: #e5f7f2; font-size: 14px; font-weight: 900; }
.safety-promise strong { display: block; color: var(--ink); font-size: 14px; }
.safety-promise p { margin: 4px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.search-content { padding: 14px 0 9px; }
.search-progress { height: 6px; margin-bottom: 17px; overflow: hidden; border-radius: 20px; background: #f0e5ee; }
.search-progress span { display: block; width: 39%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--pink), #fb91c7); animation: progress 1.5s ease-in-out infinite alternate; }
@keyframes progress { to { width: 76%; } }
.search-title { margin-bottom: 9px; color: var(--ink); font-size: 14px; font-weight: 850; }
.search-preferences { margin-bottom: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); background: var(--soft); font-size: 14px; line-height: 1.5; }
.secondary-button { width: 100%; min-height: 45px; margin-top: 4px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: #fff; font-size: 14px; font-weight: 800; }
.secondary-button:hover { border-color: #e8a5c7; color: var(--pink-dark); }
.conversation-person { display: flex; align-items: center; gap: 9px; padding: 11px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcff; }
.connection-avatar { display: grid; place-items: center; width: 37px; height: 37px; flex: 0 0 auto; border-radius: 13px; color: #fff; background: linear-gradient(140deg, #dc68a4, #7c79ce); font-size: 14px; font-weight: 900; }
.conversation-person strong, .conversation-person small { display: block; }
.conversation-person strong { color: var(--ink); font-size: 14px; }
.conversation-person small { display: inline-flex; align-items: center; gap: 5px; margin-top: 5px; color: var(--muted); font-size: 14px; }
.more-button { display: grid; place-items: center; width: 31px; height: 31px; margin-left: auto; border: 0; border-radius: 9px; color: var(--muted); background: transparent; letter-spacing: 1px; }
.more-button:hover { background: #f2f4f9; }
.chat-content { display: flex; flex-direction: column; min-width: 0; }
.chat-log { display: flex; flex-direction: column; gap: 8px; min-height: 250px; max-height: 350px; overscroll-behavior: contain; margin: 13px 0; padding: 12px; overflow-y: auto; border: 1px solid #edf0f6; border-radius: 13px; background: #fbfcff; }
.chat-system { align-self: center; max-width: 95%; margin: 0 0 2px; color: var(--muted); text-align: center; font-size: 14px; line-height: 1.5; }
.chat-bubble { max-width: 86%; margin: 0; padding: 9px 11px; border-radius: 12px 12px 12px 3px; color: var(--ink); background: #eef2fa; font-size: 16px; line-height: 1.5; }
.own-bubble { align-self: flex-end; border-radius: 12px 12px 3px 12px; color: #fff; background: #b62270; }
.chat-form { display: flex; align-items: center; gap: 7px; }
.chat-form input { min-width: 0; flex: 1; height: 44px; padding: 0 12px; border: 1px solid #e5eaf3; border-radius: 12px; color: var(--ink); background: #fff; font-size: 16px; }
.chat-form input::placeholder { color: var(--muted); }
.chat-form button { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 12px; color: #fff; background: #b62270; font-size: 18px; }
.demo-caption { margin: 7px 0 0; color: var(--muted); text-align: center; font-size: 14px; }

.plans-section { padding: 68px 0 0; scroll-margin-top: 95px; }
.plans-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.plan-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 19px; background: var(--surface); box-shadow: 0 8px 25px #26385b08; transition: border-color .2s, transform .2s, box-shadow .2s; }
.plan-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.plan-card.is-selected { border-color: var(--pink); box-shadow: 0 0 0 3px #e5429814, var(--shadow); }
.unlimited-card { border-color: #ddd7f1; background: linear-gradient(145deg, var(--surface), #fbf9ff); }
.plan-card-top { justify-content: flex-start; }
.plan-icon { display: grid; place-items: center; width: 37px; height: 37px; border-radius: 12px; font-size: 18px; font-weight: 900; }
.starter-icon { color: var(--pink); background: #fff0f7; }
.unlimited-icon { color: #7063b5; background: #f0edff; font-size: 24px; }
.plan-label { color: var(--muted); font-size: 12px; font-weight: 900; letter-spacing: .14em; }
.plan-card h3 { margin: 15px 0 4px; font-size: 17px; font-weight: 900; }
.plan-price { margin: 0; color: var(--pink-dark); font-size: 22px; font-weight: 950; letter-spacing: -.04em; }
.plan-price small { color: var(--muted); font-size: 14px; font-weight: 700; letter-spacing: 0; }
.plan-summary { min-height: 33px; margin: 8px 0 12px; color: var(--muted); font-size: 16px; line-height: 1.55; }
.plan-card ul { display: grid; gap: 8px; margin: 0 0 17px; padding: 0; list-style: none; }
.plan-card li { position: relative; padding-left: 17px; color: var(--muted); font-size: 16px; line-height: 1.5; }
.plan-card li::before { position: absolute; left: 0; color: var(--teal); content: "✓"; font-weight: 900; }
.plan-button { display: flex; align-items: center; justify-content: space-between; min-height: 43px; margin-top: auto; padding: 0 13px; border: 1px solid #edc7dc; border-radius: 11px; color: var(--pink-dark); background: #fff8fc; font-size: 14px; font-weight: 900; }
.unlimited-card .plan-button { border-color: #d7d0ef; color: #6658ac; background: #f8f6ff; }
.plan-card.is-selected .plan-button { color: #fff; border-color: #b62270; background: #b62270; }
.unlimited-card.is-selected .plan-button { border-color: #6658ac; background: #6658ac; }
.plan-button span { font-size: 15px; }
.plan-footnote { max-width: 880px; margin: 12px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }

.how-section { padding: 76px 0 0; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-heading .eyebrow { margin-bottom: 8px; color: var(--accent-text); }
.section-heading h2 { margin: 0; font-size: clamp(24px, 3vw, 32px); letter-spacing: -.045em; font-weight: 900; }
.section-heading > p { margin: 0 0 4px; color: var(--muted); font-size: 16px; }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.step-card { position: relative; min-height: 190px; padding: 21px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface); box-shadow: 0 7px 24px #26385b08; }
.step-number { position: absolute; top: 21px; right: 21px; color: var(--muted); font-size: 12px; font-weight: 900; letter-spacing: .1em; }
.step-icon { display: grid; place-items: center; width: 39px; height: 39px; margin-bottom: 17px; border-radius: 13px; font-size: 19px; font-weight: 900; }
.pink-step { color: var(--pink); background: #fff0f7; }.blue-step { color: var(--blue); background: #edf3ff; }.teal-step { color: #198f80; background: #e7f7f4; }
.step-card h3 { padding-right: 24px; margin: 0 0 7px; font-size: 18px; font-weight: 900; }
.step-card p { max-width: 290px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.safety-section { padding-top: 20px; }
.safety-card { display: grid; grid-template-columns: 145px minmax(0, 1fr) minmax(180px, 235px); align-items: center; gap: 25px; padding: 25px 28px; border: 1px solid #ead5e5; border-radius: 21px; background: linear-gradient(110deg, #fff7fc 0%, #fff 72%); box-shadow: 0 12px 34px #26385b08; }
.safety-art { position: relative; display: grid; place-items: center; width: 125px; height: 125px; overflow: hidden; border-radius: 36px; color: #fff; background: linear-gradient(140deg, #f06cab, #cf3d91 54%, #9a56ba); box-shadow: 0 13px 25px #c72b7e2c; font-size: 50px; }
.safety-ring { position: absolute; border: 1px solid #ffffff56; border-radius: 50%; }
.ring-one { width: 160px; height: 160px; }.ring-two { width: 110px; height: 110px; }
.safety-art > span { position: relative; z-index: 1; text-shadow: 0 3px 12px #82225280; }
.safety-copy .eyebrow { margin-bottom: 8px; color: var(--accent-text); }
.safety-copy h2 { max-width: 540px; margin: 0 0 7px; font-size: 22px; letter-spacing: -.04em; font-weight: 900; }
.safety-copy > p:not(.eyebrow) { max-width: 590px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.text-button { margin-top: 13px; padding: 0; border: 0; color: var(--pink-dark); background: none; font-size: 14px; font-weight: 900; }
.text-button span { margin-left: 5px; }
.safety-badge { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; border: 1px solid #f1e1ec; border-radius: 15px; background: #fff; }
.safety-badge .adult-icon { width: 27px; height: 27px; }
.safety-badge strong { color: var(--ink); font-size: 14px; }
.safety-badge small { color: var(--muted); font-size: 14px; line-height: 1.5; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 80px; padding: 0 clamp(22px, 5vw, 74px); border-top: 1px solid #e8edf5; color: var(--muted); background: #fff; font-size: 14px; }
.footer-brand { display: inline-flex; align-items: center; gap: 5px; color: var(--pink); font-size: 19px; font-weight: 900; letter-spacing: -.9px; }
.footer-brand > span:last-child { align-self: flex-end; margin-bottom: 2px; color: var(--muted); font-size: 14px; letter-spacing: 0; }
.footer-heart { display: grid; place-items: center; width: 22px; height: 22px; border: 2px solid currentColor; border-radius: 8px 8px 8px 2px; font-size: 17px; }
.site-footer > a:last-child { color: var(--muted); font-weight: 800; }
.toast { position: fixed; z-index: 60; right: 22px; bottom: 22px; max-width: min(390px, calc(100vw - 40px)); padding: 13px 17px; transform: translateY(12px); border: 1px solid #e5d5e3; border-radius: 13px; color: var(--ink); background: #fff; box-shadow: 0 12px 30px #1d2b451a; font-size: 14px; line-height: 1.55; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; }
.toast.is-visible { transform: translateY(0); opacity: 1; }
.modal-backdrop { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 18px; background: #111b3080; backdrop-filter: blur(7px); }
.safety-modal { max-height: calc(100dvh - 36px); overflow-y: auto; position: relative; width: min(440px, 100%); padding: 27px; border: 1px solid var(--line); border-radius: 21px; color: var(--ink); background: var(--surface); box-shadow: 0 28px 80px #08132855; }
.modal-close { position: absolute; top: 15px; right: 15px; display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); background: var(--surface); font-size: 22px; }
.safety-modal .eyebrow { color: var(--accent-text); }
.safety-modal h2 { margin: 0 0 9px; font-size: 23px; letter-spacing: -.04em; }
.safety-modal > p:not(.eyebrow) { color: var(--muted); font-size: 16px; line-height: 1.6; }
.modal-option { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; color: var(--pink-dark); background: var(--surface); text-align: left; font-size: 17px; }
.modal-option:hover { border-color: #edc3da; background: #fff9fc; }
.modal-option strong, .modal-option small { display: block; }
.modal-option strong { color: var(--ink); font-size: 14px; }
.modal-option small { margin-top: 4px; color: var(--muted); font-size: 14px; }
.safety-modal .modal-footnote { margin: 16px 0 0; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted) !important; font-size: 14px !important; }
.safety-report-fields { min-width: 0; margin: 0; padding: 0; border: 0; }
.safety-report-fields .field-label { display: block; margin: 13px 0 7px; color: var(--muted); font-size: 14px; }
.safety-report-fields textarea { display: block; min-height: 82px; resize: vertical; }
.safety-report-fields .field-help { margin: 6px 0 10px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.safety-result, .safety-pending { padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); overflow-wrap: anywhere; }
.safety-pending { margin: 16px 0; }
.safety-pending p { margin: 0 0 10px; color: var(--ink); font-size: 14px; line-height: 1.5; }
.safety-retry, .safety-pending .secondary-button { width: 100%; min-height: 44px; padding: 10px 12px; font-size: 14px; }
.safety-modal .modal-close { min-width: 44px; min-height: 44px; }
.safety-modal .eyebrow { padding-right: 34px; }

body[data-theme="dark"] { color-scheme: dark; --ink: #edf1fa; --muted: #b2bdd0; --accent-text: #f8a4cd; --pink-dark: #f8a4cd; --line: #303d54; --page: #141a25; --surface: #1d2533; --soft: #252e3d; --pink-soft: #45263b; --shadow: 0 18px 50px #00000028; }
body[data-theme="dark"] .site-header { border-color: #30394c; background: #19212df0; }
body[data-theme="dark"] .header-nav, body[data-theme="dark"] .theme-button, body[data-theme="dark"] .login-button { color: #bec8d9; }
body[data-theme="dark"] .account-plan-badge { border-color: #87506e; }
body[data-theme="dark"] .account-plan-badge[data-plan="unlimited"] { color: #dfc8ff; border-color: #786493; background: #332842; }
body[data-theme="dark"] .adult-pill, body[data-theme="dark"] .step-card, body[data-theme="dark"] .side-panel, body[data-theme="dark"] .safety-card { background: var(--surface); }
body[data-theme="dark"] .select-wrap select, body[data-theme="dark"] .queue-note, body[data-theme="dark"] .conversation-person, body[data-theme="dark"] .chat-log, body[data-theme="dark"] .chat-form input, body[data-theme="dark"] .safety-badge, body[data-theme="dark"] .secondary-button, body[data-theme="dark"] .safety-modal { color: var(--ink); background: #202a39; }
body[data-theme="dark"] .queue-note { border-color: #4c3348; }
body[data-theme="dark"] .access-card { border-color: var(--line); background: #202a39; }
body[data-theme="dark"] .access-card-top strong { color: #e7ebf4; }
body[data-theme="dark"] .plan-card { background: var(--surface); }
body[data-theme="dark"] .unlimited-card { background: linear-gradient(145deg, var(--surface), #28253b); }
body[data-theme="dark"] .plan-card li { color: #adb8ca; }
body[data-theme="dark"] .plan-button { background: #342538; }
body[data-theme="dark"] .unlimited-card .plan-button { color: #d1c3ff; background: #2e2a46; }
body[data-theme="dark"] .queue-note strong, body[data-theme="dark"] .safety-promise strong, body[data-theme="dark"] .conversation-person strong, body[data-theme="dark"] .safety-copy h2, body[data-theme="dark"] .safety-badge strong { color: #e7ebf4; }
body[data-theme="dark"] .stage-caption, body[data-theme="dark"] .site-footer { color: #9ca9be; }
body[data-theme="dark"] .site-footer { border-color: #30394c; background: #19212d; }
body[data-theme="dark"] .chat-bubble { color: #d5ddec; background: #303c50; }
body[data-theme="dark"] .own-bubble { color: #fff; background: #b62270; }
body[data-theme="dark"] .toast { color: var(--ink); background: var(--surface); border-color: var(--line); }
body[data-theme="dark"] .modal-option { background: #222d3c; }
body[data-theme="dark"] .modal-option strong { color: #e8edf5; }
body[data-theme="dark"] .modal-option:hover { background: #35283a; }
body[data-theme="dark"] .intro .adult-pill { color: #bac5d6; }

@media (max-width: 940px) {
  .site-header { padding-inline: 24px; }
  .header-nav { display: none; }
  .page-shell { width: min(100% - 40px, 760px); padding-top: 36px; }
  .experience { grid-template-columns: minmax(0, 1fr); }
  /* Two primary actions, then five equal controls; Stop never wraps by itself. */
  .stage-controls { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); align-items: stretch; gap: 6px; }
  .stage-controls > .stage-start-button { grid-column: span 5; min-width: 0; min-height: 44px; }
  .stage-control { grid-column: span 2; width: 100%; min-height: 44px; }
  .side-panel { min-height: 0; }
  .safety-card { grid-template-columns: 95px minmax(0, 1fr); gap: 18px; }
  .plans-section { padding-top: 54px; }
  .safety-art { width: 92px; height: 92px; border-radius: 28px; font-size: 39px; }
  .safety-badge { grid-column: 2; flex-direction: row; align-items: center; flex-wrap: wrap; }
  .safety-badge small { flex-basis: 100%; margin-left: 36px; }
}
@media (max-width: 600px) {
  .prototype-ribbon { font-size: 14px; }
  .site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; min-height: 64px; height: auto; gap: 10px 8px; padding: 12px 16px; }
  .site-header > .brand { grid-column: 1; grid-row: 1; justify-self: start; }
  .brand-word { font-size: 25px; }
  .brand-mark, .brand-mark svg { width: 28px; height: 28px; }
  .header-nav { display: none; }
  .header-actions { display: contents; }
  .header-actions > .theme-button { grid-column: 2; grid-row: 1; }
  #logout-button { grid-column: 3; grid-row: 1; }
  .header-account { grid-column: 3; grid-row: 1; justify-content: flex-end; }
  .header-actions.has-account .header-account { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 6px 8px; }
  .theme-button, .login-button { height: 44px; min-width: 44px; border-radius: 11px; }
  #login-button { min-height: 44px; }
  .login-button { padding-inline: 12px; font-size: 14px; }
  .page-shell { width: calc(100% - 28px); padding-top: 31px; padding-bottom: 49px; }
  .intro { display: block; margin-bottom: 20px; }
  h1 { max-width: 540px; font-size: clamp(35px, 9vw, 47px); }
  .intro-lede { max-width: 520px; font-size: 16px; }
  .adult-pill { width: max-content; margin-top: 16px; font-size: 14px; }
  .experience { gap: 13px; }
  .discovery-filters { padding: 12px; border-radius: 15px; }
  .filters-row { gap: 12px; }
  .location-control { width: 100%; }
  .location-picker summary { min-height: 44px; }
  .filter-label { font-size: 14px; }
  .filter-footer { font-size: 14px; }
  .locations-fieldset { position: static; width: 100%; max-height: 320px; margin-top: 10px; padding: 12px; box-shadow: none; }
  .location-options label > span { padding: 9px 8px; font-size: 14px; }
  .gender-filter { width: 100%; }
  .gender-options label { flex: 1; }
  .gender-options label > span { min-height: 44px; padding: 0 8px; font-size: 14px; }
  .video-stage { border-radius: 20px; }
  .video-toolbar { padding: 10px 11px; border-radius: 15px; }
  .stage-topline { gap: 6px; margin-bottom: 8px; }
  .stage-label, .demo-label { font-size: 12px; letter-spacing: .05em; }
  .stage-start-button { min-width: 80px; min-height: 44px; padding: 0 10px; }
  .stage-skip-button { min-width: 68px; gap: 5px; }
  .stage-skip-button svg { display: none; }
  .start-symbol { display: none; }
  .stage-control { padding: 0; }
  .stage-control > span { display: none; }
  .stage-control svg { width: 18px; height: 18px; }
  .stage-caption { gap: 5px 10px; padding-top: 8px; font-size: 14px; }
  .side-panel { padding: 21px 18px 17px; border-radius: 18px; }
  .panel-heading h2 { font-size: 21px; }
  .panel-copy { font-size: 16px; }
  .how-section { padding-top: 48px; }
  .plans-section { padding-top: 45px; }
  .plans-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .plan-card { padding: 18px; }
  .plan-summary { min-height: 0; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 8px; }
  .steps-grid { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .step-card { display: grid; grid-template-columns: 42px minmax(0, 1fr); column-gap: 13px; min-height: 0; padding: 15px; }
  .step-icon { grid-row: span 2; margin: 0; }
  .step-card h3 { align-self: end; margin-bottom: 3px; font-size: 18px; }
  .step-card p { font-size: 16px; }
  .step-number { top: 16px; right: 16px; }
  .safety-section { padding-top: 13px; }
  .safety-card { grid-template-columns: minmax(0, 1fr); gap: 15px; padding: 19px; }
  .safety-art { width: 68px; height: 68px; border-radius: 22px; font-size: 31px; }
  .safety-copy h2 { font-size: 19px; }
  .safety-badge { grid-column: 1; }
  .safety-badge small { margin-left: 0; }
  .site-footer { flex-wrap: wrap; justify-content: flex-start; min-height: 100px; padding: 17px 19px; font-size: 14px; }
  .site-footer > span { order: 3; flex-basis: 100%; }
  .site-footer > a:last-child { margin-left: auto; }
}

@media (pointer: coarse) {
  .stage-start-button, .stage-control, .location-picker summary, .gender-options label > span { min-height: 44px; }
  .swipe-hint { display: inline-flex; }
}

/* Expand the presentation, not the native video player, so the dock stays usable. */
body.video-expanded { overflow: hidden; }
.video-column:is(.is-expanded, :fullscreen) {
  position: fixed; z-index: 40; inset: 0; display: grid;
  grid-template-rows: minmax(0, 1fr) auto; gap: 8px;
  width: 100%; height: 100vh; height: 100dvh;
  padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
  background: #10192b; overflow: auto;
}
.video-column:is(.is-expanded, :fullscreen) .video-stage { min-height: 96px; height: 100%; aspect-ratio: auto; border-radius: 16px; box-shadow: none; }
.video-column:is(.is-expanded, :fullscreen) .remote-video { object-fit: contain; }
.video-column:is(.is-expanded, :fullscreen) .video-toolbar { margin: 0; }
.video-column:is(.is-expanded, :fullscreen) .self-preview {
  position: absolute; top: max(16px, calc(env(safe-area-inset-top) + 8px)); right: max(16px, calc(env(safe-area-inset-right) + 8px));
  width: clamp(72px, 18vw, 140px); margin: 0; padding: 3px; border-color: #53617e; background: #15213a;
  pointer-events: none;
}
.video-column:is(.is-expanded, :fullscreen) .self-preview video { width: 100%; }
.video-column:is(.is-expanded, :fullscreen) .self-preview > div { display: none; }
.video-column:is(.is-expanded, :fullscreen) #fullscreen-toggle { color: #ffdbef; border-color: #df74ab; background: #61314d; }
@media (max-height: 480px) and (orientation: landscape) {
  .video-column:is(.is-expanded, :fullscreen) { gap: 5px; }
  .video-column:is(.is-expanded, :fullscreen) .video-toolbar { padding-block: 6px; }
  .video-column:is(.is-expanded, :fullscreen) .stage-topline, .video-column:is(.is-expanded, :fullscreen) .stage-caption { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Account controls use the same compact CUTIKUT language as the chat. */
.form-notice { margin: 14px 0 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: var(--soft); font-size: 14px; line-height: 1.6; }
.text-button { display: inline-block; min-height: 42px; margin-top: 8px; padding: 8px 0; border: 0; color: var(--accent-text); background: transparent; font-size: 14px; font-weight: 700; }
.account-security { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.account-security h3 { margin: 0 0 8px; font-size: 14px; }
.account-security p { margin: 6px 0; color: var(--muted); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
#profile-email { color: var(--ink); }
.auth-dialog .primary-button { min-height: 44px; }

.form-control::placeholder, .chat-form input::placeholder { color: var(--muted); opacity: 1; }
.self-preview > div, .conversation-person > div { min-width: 0; }
.self-preview p, .stage-label, .demo-label, .stage-caption, .panel-copy, .safety-promise p { overflow-wrap: anywhere; }
@media (max-width: 420px) {
  .location-options { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
  .site-header .brand { gap: 5px; }
  .site-header .brand-word { font-size: 22px; }
  .site-header .brand-mark, .site-header .brand-mark svg { width: 24px; height: 24px; }
  .site-header .brand-product { font-size: 12px; }
}

/* Sandbox billing stays outside the video presentation and uses compact actions. */
.billing-card { margin-bottom: 18px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.billing-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.billing-heading .eyebrow { margin-bottom: 6px; color: var(--accent-text); }
.billing-heading h3 { margin: 0; font-size: 20px; }
.billing-test-label { padding: 5px 9px; border-radius: 8px; color: var(--accent-text); background: var(--pink-soft); font-size: 14px; font-weight: 700; }
.billing-summary, #billing-status { margin: 12px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.billing-return { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; color: var(--ink); background: var(--soft); font-size: 14px; }
.billing-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; align-items: end; margin-top: 14px; }
.billing-plan-field { min-width: 0; }
.billing-plan-details { grid-column: 1; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
#billing-checkout { grid-column: 2; grid-row: 1; min-height: 44px; margin: 0; }
.billing-tools { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.billing-tools .text-button { margin-top: 10px; }
.live-billing-card { border-color: var(--pink); }
#live-billing-status { margin: 12px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.live-billing-purchase { display: grid; gap: 14px; max-width: 760px; margin-top: 18px; }
.live-billing-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--ink); font-size: 15px; line-height: 1.6; }
.live-billing-consent input { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 3px; accent-color: var(--pink-dark); }
.live-billing-consent a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; }
.live-billing-purchase .billing-return { margin: 0; }
#live-billing-checkout { justify-content: center; justify-self: start; max-width: 100%; padding: 10px 16px; white-space: normal; }
@media (max-width: 600px) {
  .billing-card { padding: 18px; }
  .billing-actions { grid-template-columns: minmax(0, 1fr); }
  #billing-checkout { grid-column: 1; grid-row: auto; justify-content: center; }
}

/* Text stays beside the call on desktop and directly below its controls on mobile. */
.conversation-person > span:nth-child(2) { min-width: 0; }
.chat-form button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chat-form button:disabled { opacity: .45; cursor: not-allowed; }
.chat-form input:disabled { opacity: .65; cursor: not-allowed; }
.chat-status { min-height: 20px; margin: 9px 0 5px; color: var(--muted); font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
.chat-content .demo-caption { margin-top: 0; font-size: 12px; line-height: 1.5; }
@media (max-width: 940px) {
  .side-panel[data-state="connected"], .side-panel[data-state="connecting"] { padding-top: 18px; }
  .chat-log { min-height: 180px; max-height: min(320px, 42dvh); }
}

.billing-upgrade-summary { margin: 16px 0; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.billing-upgrade-summary h4 { margin: 0 0 10px; font-size: 18px; }
.billing-upgrade-summary p { margin: 9px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.billing-upgrade-summary dl { margin: 16px 0; }
.billing-upgrade-summary dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; font-size: 15px; }
.billing-upgrade-summary dt { min-width: 0; }
.billing-upgrade-summary dd { flex-shrink: 0; margin: 0; font-weight: 700; }
.billing-upgrade-summary .upgrade-total { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--accent-text); font-weight: 700; }
.upgrade-confirmation { display: grid; gap: 14px; margin-top: 16px; }
.upgrade-confirmation label { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; }
.upgrade-confirmation input { flex-shrink: 0; margin: 3px 0 0; width: 18px; height: 18px; accent-color: var(--accent-text); }
.upgrade-confirmation .plan-button { justify-self: start; max-width: 100%; white-space: normal; }
@media (max-width: 420px) { .billing-upgrade-summary dl > div { flex-wrap: wrap; gap: 4px 10px; } }
