
:root {
  --ink: #1b1220;
  --deep: #180f1d;
  --deep-2: #26172c;
  --coral: #ff6f61;
  --coral-hot: #ff5448;
  --cream: #f5f0e8;
  --paper: #fffdf9;
  --rose: #efc9c3;
  --lilac: #c9b7fa;
  --muted: #716975;
  --line: rgba(27,18,32,.13);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, 'Segoe UI', Arial, sans-serif;
  --shadow: 0 24px 70px rgba(25,12,31,.16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.hidden { display: none !important; }
.shell { width: min(1210px, calc(100% - 64px)); margin: 0 auto; }
.landing { overflow: hidden; background: var(--deep); color: #fff; }

.topbar { height: 94px; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 20; }
.brand { display: inline-flex; align-items: center; gap: 2px; font-weight: 900; font-size: 21px; letter-spacing: .11em; }
.brand b { color: var(--coral); font-size: 28px; line-height: 0; }
.brand-mark { width: 25px; height: 25px; margin-right: 8px; position: relative; display: inline-block; transform: rotate(45deg); }
.brand-mark i { position: absolute; width: 12px; height: 19px; border: 2px solid currentColor; border-radius: 10px 10px 0 0; }
.brand-mark i:first-child { left: 3px; top: 0; transform: rotate(-22deg); }
.brand-mark i:last-child { right: 0; bottom: 0; transform: rotate(112deg); }
.brand-light { color: #fff; }
.brand-dark { color: #fff; }
.nav-links { display: flex; gap: 38px; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.75); }
.nav-links a { transition: color .2s; }
.nav-links a:hover { color: #fff; }
.btn { border: 0; border-radius: 999px; padding: 13px 22px; font-size: 13px; font-weight: 800; letter-spacing: .02em; display: inline-flex; align-items: center; justify-content: center; gap: 14px; transition: transform .25s, background .25s, box-shadow .25s; }
.btn:hover { transform: translateY(-2px); }
.btn-ghost { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.25); }
.btn-ghost:hover { background: rgba(255,255,255,.08); }
.btn-coral { background: var(--coral); color: var(--deep); box-shadow: 0 12px 35px rgba(255,111,97,.24); }
.btn-coral:hover { background: #ff8276; box-shadow: 0 15px 40px rgba(255,111,97,.34); }
.btn-dark { background: var(--deep); color: white; }
.btn-line { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.btn-large { padding: 17px 26px; }
.btn-full { width: 100%; }
.text-link { font-size: 13px; font-weight: 700; border-bottom: 1px solid rgba(255,255,255,.35); padding-bottom: 7px; }
.text-link span { margin-left: 10px; color: var(--coral); }

.hero { min-height: 730px; display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; padding: 50px 0 92px; position: relative; }
.hero:before { content: ''; position: absolute; width: 610px; height: 610px; border: 1px solid rgba(255,255,255,.05); border-radius: 50%; left: -270px; top: 80px; }
.hero-copy { position: relative; z-index: 3; }
.eyebrow { font-size: 10px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.72); }
.eyebrow span { width: 28px; height: 1px; background: var(--coral); }
.eyebrow.dark { color: #736d75; }
.hero h1 { font-family: var(--serif); font-weight: 400; font-size: clamp(66px, 6.1vw, 94px); line-height: .87; letter-spacing: -.06em; margin: 27px 0 28px; }
h1 em, h2 em { color: var(--coral); font-weight: 400; }
.hero-lead { max-width: 510px; color: rgba(255,255,255,.68); line-height: 1.75; font-size: 16px; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 35px; }
.hero-proof { display: flex; align-items: center; gap: 15px; margin-top: 45px; }
.avatar-stack { display: flex; }
.avatar-stack span { width: 33px; height: 33px; margin-left: -7px; border: 2px solid var(--deep); border-radius: 50%; display: grid; place-items: center; background: var(--lilac); color: var(--deep); font: 700 12px var(--serif); }
.avatar-stack span:first-child { margin-left: 0; background: var(--rose); }
.avatar-stack span:last-child { background: var(--coral); }
.trust-points { display:flex; align-items:center; gap:8px; color:var(--coral); font-size:8px; text-transform:uppercase; letter-spacing:.1em; font-weight:900; margin-bottom:3px; }
.trust-points i { width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,.35); }
.hero-proof small { color: rgba(255,255,255,.58); font-size: 10px; }
.hero-visual { position: relative; min-width: 0; }
.image-frame { position: relative; border-radius: 190px 190px 18px 18px; overflow: hidden; }
.hero-photo { height: 590px; width: 93%; margin-left: auto; box-shadow: var(--shadow); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.78) contrast(1.04); }
.photo-shade { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(24,15,29,.78)); }
.mini-card { position: absolute; z-index: 2; display: flex; align-items: center; background: rgba(255,253,249,.94); color: var(--ink); box-shadow: 0 16px 35px rgba(0,0,0,.19); backdrop-filter: blur(15px); }
.mini-card-top { right: -2px; top: 80px; padding: 13px 16px; border-radius: 14px; gap: 10px; }
.mini-card small, .mini-card strong { display: block; }
.mini-card small { font-size: 8px; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin-bottom: 2px; }
.mini-card strong { font-size: 11px; }
.mini-card > b { margin-left: 12px; font-size: 11px; color: var(--coral); letter-spacing: 2px; }
.pulse-dot { width: 9px; height: 9px; background: var(--coral); border-radius: 50%; box-shadow: 0 0 0 5px rgba(255,111,97,.15); }
.message-float { position: absolute; z-index: 2; border-radius: 17px; padding: 15px 18px; max-width: 280px; font-size: 12px; line-height: 1.5; box-shadow: 0 16px 40px rgba(0,0,0,.18); }
.message-one { left: 28px; bottom: 110px; background: white; color: var(--ink); border-bottom-left-radius: 4px; }
.message-two { right: 30px; bottom: 28px; background: var(--coral); color: var(--ink); border-bottom-right-radius: 4px; }
.message-two span { font-weight: 900; }
.orbit { position: absolute; z-index: -1; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; }
.orbit-a { width: 520px; height: 520px; left: -50px; top: 30px; }
.orbit-b { width: 400px; height: 400px; left: 10px; top: 91px; }
.hero-stamp { position: absolute; left: -35px; top: 47px; width: 92px; height: 92px; border-radius: 50%; background: var(--lilac); color: var(--deep); display: grid; align-content: center; text-align: center; transform: rotate(-9deg); box-shadow: 0 14px 40px rgba(0,0,0,.2); }
.hero-stamp span { font: 700 24px var(--serif); }
.hero-stamp small { font-size: 8px; text-transform: uppercase; font-weight: 800; }

.marquee { background: var(--coral); color: var(--ink); overflow: hidden; padding: 16px 0; transform: rotate(-1deg) scale(1.02); position: relative; z-index: 4; }
.marquee-track { display: flex; width: max-content; align-items: center; gap: 27px; animation: marquee 30s linear infinite; }
.marquee span { font-size: 11px; font-weight: 900; letter-spacing: .14em; }
.marquee i { font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

.section { padding: 120px 0; }
.light-section, .modes-section, .faq-section { background: var(--cream); color: var(--ink); }
.section-head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 90px; align-items: end; margin-bottom: 60px; }
.section-head.compact { margin-bottom: 45px; }
.section h2 { font: 400 clamp(48px, 5vw, 72px)/.98 var(--serif); letter-spacing: -.045em; margin: 20px 0 0; }
.section-head > p { color: var(--muted); line-height: 1.75; max-width: 450px; margin: 0 0 7px; }
.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.step-card { min-height: 310px; background: rgba(255,255,255,.55); border: 1px solid var(--line); border-radius: 18px; padding: 27px; position: relative; display: flex; flex-direction: column; }
.step-card.featured { background: var(--deep); color: white; transform: translateY(-15px); }
.step-card > b { position: absolute; right: 26px; top: 24px; font: 400 11px var(--sans); color: var(--muted); }
.step-icon { width: 49px; height: 49px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; color: var(--coral); font-size: 22px; }
.featured .step-icon { border-color: rgba(255,255,255,.2); }
.step-card h3 { font: 400 27px/1.1 var(--serif); margin: auto 0 14px; }
.step-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; }
.featured p { color: rgba(255,255,255,.62); }

.demo-section { background: var(--deep); color: white; }
.demo-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 100px; }
.demo-photo { height: 610px; position: relative; }
.demo-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); border-radius: 240px 240px 18px 18px; }
.photo-label { position: absolute; left: -45px; bottom: 48px; background: var(--lilac); color: var(--deep); padding: 18px 20px; border-radius: 13px; display: flex; gap: 15px; align-items: center; transform: rotate(-5deg); }
.photo-label span { font: 700 22px var(--serif); }
.photo-label small { font-size: 9px; line-height: 1.3; text-transform: uppercase; font-weight: 800; }
.decoder h2 { margin-bottom: 35px; }
.message-input-card { background: white; color: var(--ink); padding: 20px; border-radius: 17px; box-shadow: var(--shadow); }
.chat-person { display: flex; align-items: center; gap: 10px; }
.chat-person > span { width: 37px; height: 37px; border-radius: 50%; background: var(--rose); display: grid; place-items: center; font: 700 14px var(--serif); }
.chat-person strong, .chat-person small { display: block; }
.chat-person strong { font-size: 12px; }
.chat-person small { font-size: 9px; color: var(--muted); margin-top: 2px; }
.message-input-card p { background: #f4f1ee; border-radius: 12px; padding: 19px; font: 400 17px/1.5 var(--serif); margin: 18px 0; }
.demo-result { margin-top: 14px; border: 1px solid rgba(255,255,255,.13); border-radius: 16px; padding: 18px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; opacity: .85; transition: .35s; }
.demo-result.active { opacity: 1; transform: translateY(-2px); box-shadow: 0 0 50px rgba(255,111,97,.12); }
.demo-result small, .demo-result strong { display: block; }
.demo-result small { color: var(--coral); font-size: 8px; font-weight: 900; letter-spacing: .14em; margin-bottom: 5px; }
.demo-result strong { font-size: 11px; }
.demo-result p { grid-column: 1/-1; margin: 0; color: rgba(255,255,255,.64); font-size: 12px; line-height: 1.6; }
.demo-result p b { color: white; }

.mode-showcase { display: grid; grid-template-columns: 1.05fr .95fr .9fr; gap: 17px; align-items: stretch; }
.mode-showcase article { border-radius: 17px; min-height: 470px; padding: 30px; position: relative; overflow: hidden; }
.mode-large { background: var(--coral); }
.mode-no { position: absolute; right: 26px; top: 22px; font: 400 12px var(--sans); }
.mode-pill { font-size: 8px; font-weight: 900; letter-spacing: .17em; border: 1px solid currentColor; border-radius: 999px; padding: 7px 10px; display: inline-block; }
.mode-showcase h3 { font: 400 31px/1.12 var(--serif); margin: 135px 0 18px; }
.mode-showcase p { font-size: 12px; line-height: 1.65; max-width: 290px; color: rgba(27,18,32,.65); }
.circle-arrow { position: absolute; right: 25px; bottom: 25px; width: 47px; height: 47px; border-radius: 50%; border: 1px solid rgba(27,18,32,.35); background: transparent; font-size: 19px; transition: .25s; }
.circle-arrow:hover { transform: rotate(45deg); background: var(--ink); color: white; }
.circle-arrow.light { border-color: rgba(255,255,255,.3); color: white; }
.mode-photo { padding: 0 !important; color: white; }
.mode-photo img { position: absolute; width: 100%; height: 100%; object-fit: cover; filter: saturate(.65) brightness(.7); }
.mode-photo:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 15%,rgba(24,15,29,.82)); }
.mode-photo > div { position: absolute; z-index: 2; left: 27px; right: 27px; bottom: 28px; }
.mode-photo h3 { margin: 18px 0 0; }
.mode-intimate { background: var(--deep); color: white; }
.mode-intimate:before { content:''; position:absolute; width:300px; height:300px; border:1px solid rgba(255,255,255,.08); border-radius:50%; right:-90px; top:-80px; box-shadow:0 0 0 35px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.018); }
.mode-intimate h3 em { color: var(--lilac); }
.mode-intimate p { color: rgba(255,255,255,.55); }
.age-badge { position: absolute; right: 25px; top: 25px; width: 43px; height: 43px; border-radius: 50%; background: var(--lilac); color: var(--deep); display: grid; place-items:center; font-size:11px; font-weight:900; }

.pricing-section { background: var(--deep); position: relative; color: white; overflow: hidden; }
.pricing-orb { position:absolute; width:600px; height:600px; border:1px solid rgba(255,255,255,.07); border-radius:50%; left:-260px; top:-100px; box-shadow:0 0 0 80px rgba(255,255,255,.02),0 0 0 160px rgba(255,255,255,.014); }
.pricing-grid { display:grid; grid-template-columns:1fr .75fr; gap:100px; align-items:center; position:relative; }
.pricing-copy > p { color:rgba(255,255,255,.6); line-height:1.75; max-width:530px; }
.quote { display:flex; gap:20px; margin-top:55px; padding-top:25px; border-top:1px solid rgba(255,255,255,.12); max-width:530px; }
.quote > span { font:700 52px/1 var(--serif); color:var(--coral); }
.quote p { font:italic 17px/1.5 var(--serif); margin:6px 0; color:rgba(255,255,255,.82); }
.price-card { background:var(--paper); color:var(--ink); border-radius:18px; padding:34px; position:relative; box-shadow:0 35px 90px rgba(0,0,0,.28); }
.popular { position:absolute; top:0; right:30px; transform:translateY(-50%); background:var(--coral); border-radius:999px; padding:8px 13px; font-size:8px; font-weight:900; letter-spacing:.13em; }
.price-top { display:flex; justify-content:space-between; align-items:end; padding-bottom:28px; border-bottom:1px solid var(--line); }
.price-top small,.price-top strong { display:block; }
.price-top small { font-size:9px; letter-spacing:.17em; font-weight:900; }
.price-top strong { font:400 28px var(--serif); margin-top:4px; }
.price { display:flex; align-items:center; gap:7px; }
.price b { font:400 60px/.8 var(--serif); letter-spacing:-.06em; }
.price span { font-size:9px; line-height:1.3; color:var(--muted); text-transform:uppercase; font-weight:800; }
.price-card ul { list-style:none; padding:18px 0; margin:0; }
.price-card li { padding:11px 0; font-size:12px; border-bottom:1px solid rgba(27,18,32,.07); }
.price-card li span { display:inline-grid; place-items:center; width:21px; height:21px; border-radius:50%; background:rgba(255,111,97,.14); color:var(--coral-hot); margin-right:9px; font-weight:900; }
.demo-note { display:block; text-align:center; color:var(--muted); font-size:9px; margin-top:12px; }

.faq-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:110px; }
.accordion details { border-bottom:1px solid var(--line); padding:22px 0; }
.accordion summary { list-style:none; font:400 18px var(--serif); cursor:pointer; display:flex; align-items:center; justify-content:space-between; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary i { font:400 25px var(--sans); color:var(--coral); transition:.2s; }
.accordion details[open] summary i { transform:rotate(45deg); }
.accordion p { color:var(--muted); font-size:13px; line-height:1.65; max-width:620px; }
footer { background:#100a13; padding:34px 0; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; }
.footer-inner > p { color:rgba(255,255,255,.45); font:italic 14px var(--serif); }
.footer-inner > div { display:flex; gap:25px; align-items:center; font-size:11px; color:rgba(255,255,255,.58); }
.footer-inner button { border:0; background:transparent; color:var(--coral); font-weight:800; }

.modal-wrap { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; opacity:0; visibility:hidden; transition:.3s; }
.modal-wrap.open { opacity:1; visibility:visible; }
.modal-backdrop { position:absolute; inset:0; background:rgba(12,7,15,.75); backdrop-filter:blur(9px); }
.login-modal { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; width:min(940px,95vw); min-height:590px; background:var(--paper); color:var(--ink); border-radius:22px; overflow:hidden; box-shadow:0 40px 100px rgba(0,0,0,.4); transform:translateY(18px) scale(.98); transition:.35s; }
.modal-wrap.open .login-modal,.modal-wrap.open .adult-modal,.modal-wrap.open .character-modal,.modal-wrap.open .mode-setup-modal { transform:none; }
.modal-close { position:absolute; right:17px; top:14px; z-index:5; width:35px; height:35px; border-radius:50%; border:0; background:rgba(255,255,255,.82); font-size:22px; color:var(--ink); }
.login-photo { position:relative; min-height:590px; color:white; }
.login-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.65) brightness(.58); }
.login-photo:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(24,15,29,.08),rgba(24,15,29,.72)); }
.login-photo > div { position:absolute; z-index:2; inset:42px; display:flex; flex-direction:column; justify-content:space-between; }
.login-photo blockquote { margin:auto 0 70px; font:italic 39px/1.08 var(--serif); letter-spacing:-.03em; }
.login-photo small { font-size:8px; letter-spacing:.15em; font-weight:800; }
.login-form { padding:65px 58px 45px; display:flex; flex-direction:column; }
.login-form h2 { font:400 45px/.98 var(--serif); letter-spacing:-.04em; margin:17px 0; }
.login-form > p { margin:0 0 28px; color:var(--muted); font-size:13px; }
.login-form label,.settings-card > label { font-size:10px; text-transform:uppercase; font-weight:900; letter-spacing:.1em; margin-bottom:18px; }
.login-form input,.settings-card input,.settings-card textarea,.settings-card select { width:100%; border:1px solid var(--line); background:white; border-radius:10px; padding:14px 15px; outline:none; margin-top:8px; color:var(--ink); transition:.2s; }
.login-form input:focus,.settings-card input:focus,.settings-card textarea:focus,.settings-card select:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,111,97,.12); }
.password-wrap { position:relative; }
.password-wrap input { padding-right:48px; }
.password-wrap button { position:absolute; right:8px; top:14px; width:36px; height:36px; border:0; background:transparent; color:var(--muted); }
.form-error { color:#c73c35; font-size:11px; min-height:17px; margin:-3px 0 8px; }
.credentials { margin-top:14px; text-align:center; color:var(--muted); font-size:9px; }
.credentials code { background:#eee8e3; padding:2px 5px; border-radius:4px; }

/* Personal profile onboarding */
.onboarding-wrap { overflow:auto; align-items:center; }
.onboarding-modal { position:relative; z-index:2; display:grid; grid-template-columns:.78fr 1.22fr; width:min(1120px,96vw); height:min(720px,calc(100vh - 34px)); min-height:610px; background:var(--paper); color:var(--ink); border-radius:23px; overflow:hidden; box-shadow:0 42px 110px rgba(0,0,0,.46); transform:translateY(18px) scale(.985); transition:.35s; }
.modal-wrap.open .onboarding-modal { transform:none; }
.onboarding-visual { position:relative; color:white; overflow:hidden; }
.onboarding-visual > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.55) brightness(.64); }
.onboarding-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(24,15,29,.22),rgba(24,15,29,.88)); }
.onboarding-visual:after { content:''; position:absolute; width:390px; height:390px; left:-175px; bottom:-110px; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018); }
.onboarding-visual-content { position:absolute; z-index:2; inset:38px 36px; display:flex; flex-direction:column; justify-content:space-between; }
.onboarding-kicker { font-size:8px; font-weight:900; letter-spacing:.16em; color:var(--coral); }
.onboarding-visual blockquote { font:italic 37px/1.08 var(--serif); letter-spacing:-.04em; margin:16px 0 0; max-width:320px; }
.onboarding-visual-content > small { font-size:7px; text-transform:uppercase; font-weight:800; letter-spacing:.13em; color:rgba(255,255,255,.6); }
.onboarding-form { padding:28px 40px 26px; min-width:0; min-height:0; display:flex; flex-direction:column; }
.onboarding-head { display:flex; justify-content:space-between; align-items:center; padding-bottom:17px; border-bottom:1px solid var(--line); flex:0 0 auto; }
.onboarding-head > div > span { display:block; font-size:7px; font-weight:900; letter-spacing:.17em; color:var(--muted); margin-bottom:8px; }
.onboarding-progress { display:flex; gap:5px; }
.onboarding-progress i { display:block; width:28px; height:3px; border-radius:999px; background:#ded7d0; transition:.3s; }
.onboarding-progress i.active { background:var(--coral); width:42px; }
.onboarding-progress i.done { background:rgba(255,111,97,.45); }
.onboarding-head > button { border:0; background:transparent; color:var(--muted); font-size:9px; font-weight:700; }
.onboarding-head > button:hover { color:var(--ink); }
.onboarding-step { display:none; flex:1; min-height:0; overflow:auto; padding:27px 5px 15px 0; scrollbar-width:thin; scrollbar-color:#d7cec7 transparent; animation:stepSlide .3s both; }
.onboarding-step.active { display:block; }
@keyframes stepSlide { from { opacity:0; transform:translateX(12px); } }
.step-mini { color:var(--coral-hot); font-size:8px; font-weight:900; letter-spacing:.16em; }
.onboarding-step h2 { font:400 43px/.98 var(--serif); letter-spacing:-.045em; margin:13px 0 12px; }
.onboarding-step h2 em { color:var(--coral); }
.onboarding-step > p { color:var(--muted); font-size:11px; line-height:1.6; max-width:510px; margin:0 0 21px; }
.onboarding-field { display:block; font-size:8px; text-transform:uppercase; font-weight:900; letter-spacing:.1em; margin:0 0 14px; }
.onboarding-field > span { color:var(--muted); font-size:7px; font-weight:600; letter-spacing:.04em; margin-left:5px; }
.onboarding-field input,.onboarding-field select,.onboarding-field textarea { width:100%; border:1px solid var(--line); border-radius:11px; background:white; color:var(--ink); padding:14px 15px; margin-top:8px; outline:none; text-transform:none; letter-spacing:0; transition:.2s; }
.onboarding-field input { font:400 17px var(--serif); }
.onboarding-field textarea { resize:none; font-size:11px; line-height:1.5; }
.onboarding-field input:focus,.onboarding-field select:focus,.onboarding-field textarea:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,111,97,.12); }
.micro-privacy { display:flex; gap:10px; align-items:center; background:#f3eee8; border-radius:10px; padding:12px; margin-top:5px; }
.micro-privacy span { color:var(--coral); font-size:17px; }
.micro-privacy p { color:var(--muted); font-size:9px; line-height:1.45; margin:0; }
.onboarding-options { border:0; padding:0; margin:0 0 17px; }
.onboarding-options legend { font-size:8px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; margin-bottom:9px; }
.choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.choice-grid label { min-width:0; cursor:pointer; }
.choice-grid input { position:absolute; opacity:0; pointer-events:none; }
.choice-grid label > span { min-height:46px; border:1px solid var(--line); background:white; border-radius:10px; display:flex; align-items:center; gap:8px; padding:10px 12px; font-size:9px; font-weight:750; transition:.2s; }
.choice-grid label > span b { width:23px; height:23px; border-radius:7px; background:#f2ece7; color:var(--coral-hot); display:grid; place-items:center; font-size:11px; }
.choice-grid input:checked + span { border-color:var(--coral); background:rgba(255,111,97,.07); box-shadow:0 0 0 2px rgba(255,111,97,.08); }
.choice-grid input:checked + span b { background:var(--coral); color:var(--deep); }
.choice-grid.goals { grid-template-columns:repeat(3,minmax(0,1fr)); }
.choice-grid.goals label > span { justify-content:center; text-align:center; padding:9px 7px; }
.custom-goal { margin-top:-7px; }
.boundaries-field { margin-top:15px; }
.onboarding-adult { display:flex; align-items:center; gap:12px; cursor:pointer; padding:12px 13px; background:#f3eee8; border-radius:11px; }
.onboarding-adult input { display:none; }
.onboarding-adult > span { width:37px; height:21px; flex:0 0 auto; border-radius:999px; background:#c9c1bb; position:relative; transition:.2s; }
.onboarding-adult > span:after { content:''; position:absolute; width:15px; height:15px; border-radius:50%; background:white; left:3px; top:3px; transition:.2s; }
.onboarding-adult input:checked + span { background:var(--coral); }
.onboarding-adult input:checked + span:after { transform:translateX(16px); }
.onboarding-adult b,.onboarding-adult small { display:block; }
.onboarding-adult b { font-size:9px; }
.onboarding-adult small { color:var(--muted); font-size:8px; line-height:1.35; margin-top:2px; }
.onboarding-error { margin:0; flex:0 0 auto; }
.onboarding-actions { flex:0 0 auto; display:flex; justify-content:flex-end; align-items:center; gap:9px; background:transparent; padding:17px 0 0; border-top:1px solid var(--line); }
.onboarding-actions #onboardingBack { margin-right:auto; }
.onboarding-actions .btn { min-width:108px; }
.onboarding-actions .btn:disabled { opacity:.35; pointer-events:none; }

.toast { position:fixed; z-index:300; left:50%; bottom:24px; transform:translate(-50%,20px); background:var(--deep); color:white; border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:13px 20px; box-shadow:var(--shadow); opacity:0; visibility:hidden; transition:.25s; font-size:12px; }
.toast.show { opacity:1; visibility:visible; transform:translate(-50%,0); }
.toast.error { background:#7c2b2b; }

/* Dashboard */
.dashboard { min-height:100vh; background:#f3efe9; color:var(--ink); display:grid; grid-template-columns:260px minmax(0,1fr); }
.sidebar { position:fixed; inset:0 auto 0 0; width:260px; background:var(--deep); color:white; padding:27px 18px 18px; display:flex; flex-direction:column; z-index:50; }
.sidebar-brand { padding:0 12px; margin-bottom:30px; }
.new-chat { border:0; border-radius:11px; background:var(--coral); color:var(--deep); padding:12px; display:flex; align-items:center; gap:11px; text-align:left; }
.new-chat span { width:28px; height:28px; border:1px solid rgba(27,18,32,.25); border-radius:7px; display:grid; place-items:center; font-size:18px; }
.new-chat b { flex:1; font-size:11px; }
.new-chat kbd { font:700 9px var(--sans); border:1px solid rgba(27,18,32,.24); padding:3px 5px; border-radius:4px; }
.side-nav { margin-top:18px; display:flex; flex-direction:column; gap:2px; }
.side-nav button { border:0; background:transparent; color:rgba(255,255,255,.61); text-align:left; padding:10px 11px; border-radius:8px; display:flex; align-items:center; gap:11px; font-size:11px; transition:.2s; }
.side-nav button:hover,.side-nav button.active { background:rgba(255,255,255,.07); color:white; }
.side-nav button > span { width:19px; text-align:center; color:var(--coral); font-size:15px; }
.side-nav i { margin-left:auto; background:var(--lilac); color:var(--deep); font-style:normal; border-radius:999px; padding:3px 5px; font-size:7px; font-weight:900; }
.history-title { display:flex; justify-content:space-between; align-items:center; color:rgba(255,255,255,.32); padding:22px 11px 9px; font-size:7px; letter-spacing:.15em; font-weight:900; }
.history-title button { background:transparent; border:0; color:inherit; }
.conversation-list { overflow:auto; min-height:0; flex:1; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.12) transparent; }
.conversation-list button { width:100%; border:0; background:transparent; color:rgba(255,255,255,.54); border-radius:8px; padding:9px 10px; text-align:left; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:10px; }
.conversation-list button:hover,.conversation-list button.active { background:rgba(255,255,255,.07); color:white; }
.conversation-list button small { display:block; color:rgba(255,255,255,.25); margin-top:3px; text-transform:uppercase; font-size:7px; }
.history-empty { color:rgba(255,255,255,.25); font-size:9px; padding:12px; line-height:1.5; }
.side-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:9px; }
.side-bottom > button { width:100%; background:transparent; border:0; color:white; display:flex; align-items:center; gap:10px; text-align:left; padding:8px; border-radius:8px; }
.side-bottom > button:hover { background:rgba(255,255,255,.06); }
.side-bottom > button > span:not(.user-avatar) { width:31px; height:31px; border-radius:9px; background:var(--lilac); color:var(--deep); display:grid; place-items:center; }
.side-bottom div { flex:1; }
.side-bottom b,.side-bottom small { display:block; }
.side-bottom b { font-size:10px; }
.side-bottom small { color:rgba(255,255,255,.35); font-size:8px; margin-top:3px; }
.side-bottom i { font-style:normal; color:rgba(255,255,255,.3); font-size:11px; }
.user-avatar { width:31px; height:31px; border-radius:50%; border:0; background:var(--coral); color:var(--deep); display:grid; place-items:center; font:700 12px var(--serif); }
.workspace { grid-column:2; min-width:0; min-height:100vh; position:relative; }
.mobile-head { display:none; }
.panel-view { min-height:100vh; }
.workspace-head { height:108px; padding:0 clamp(30px,5vw,70px); display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.workspace-head > div > span { font-size:8px; letter-spacing:.16em; font-weight:900; color:var(--muted); }
.workspace-head h2 { font:400 32px/1 var(--serif); margin:7px 0 0; }
.workspace-head h2 em { color:var(--coral-hot); }
.icon-btn { width:38px; height:38px; border-radius:50%; background:transparent; border:1px solid var(--line); color:var(--muted); }
.home-content { width:min(1040px,calc(100% - 60px)); margin:38px auto 60px; }
.welcome-card { min-height:230px; border-radius:18px; background:var(--deep); color:white; padding:35px 42px; position:relative; overflow:hidden; display:flex; justify-content:space-between; }
.welcome-card h2 { font:400 46px/.98 var(--serif); letter-spacing:-.04em; margin:19px 0 13px; }
.welcome-card p { color:rgba(255,255,255,.5); font-size:11px; }
.soft-pill { display:inline-block; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); border-radius:999px; padding:6px 10px; color:var(--coral); font-size:7px; font-weight:900; letter-spacing:.12em; }
.welcome-art { width:38%; position:relative; }
.welcome-art:before,.welcome-art:after,.welcome-art span,.welcome-art i { content:''; position:absolute; border:1px solid rgba(255,255,255,.09); border-radius:50%; width:280px; height:280px; right:-45px; top:-60px; }
.welcome-art:after { transform:scale(.72); }
.welcome-art span { transform:scale(.45); }
.welcome-art i { transform:scale(.2); background:var(--coral); border:0; opacity:.85; }
.heart-line { position:absolute; z-index:3; right:85px; top:57px; color:white; font-size:60px; transform:rotate(-25deg); }
.mode-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:13px; }
.mode-tile { min-height:210px; border:0; border-radius:15px; padding:21px; color:var(--ink); position:relative; text-align:left; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.mode-tile:hover { transform:translateY(-4px); box-shadow:0 15px 35px rgba(27,18,32,.11); }
.mode-tile.coral { background:var(--coral); }
.mode-tile.cream { background:#e6ddd0; }
.mode-tile.violet { background:var(--lilac); }
.mode-tile.rose { background:var(--rose); }
.mode-tile.dark-tile { background:var(--deep); color:white; }
.mode-tile.wild-tile { grid-column:1 / -1; min-height:150px; background:linear-gradient(118deg,#1b1220 0%,#3a1735 52%,#e86f51 145%); color:white; padding:26px 30px; }
.mode-tile.wild-tile:before { content:''; position:absolute; width:260px; height:260px; right:7%; top:-100px; border:1px solid rgba(255,255,255,.09); border-radius:50%; box-shadow:0 0 0 34px rgba(255,255,255,.025),0 0 0 68px rgba(255,255,255,.018); }
.mode-tile.wild-tile .tile-icon { border-color:rgba(255,255,255,.22); color:var(--coral); }
.mode-tile.wild-tile h3 { margin:18px 0 6px; font-size:31px; }
.mode-tile.wild-tile p { max-width:620px; color:rgba(255,255,255,.66); font-size:10px; }
.tile-icon { width:39px; height:39px; border:1px solid rgba(27,18,32,.18); border-radius:50%; display:grid; place-items:center; font-size:18px; }
.dark-tile .tile-icon { border-color:rgba(255,255,255,.2); color:var(--lilac); }
.mode-tile > i { position:absolute; right:18px; top:18px; font-style:normal; font-size:8px; font-weight:900; }
.mode-tile h3 { font:400 25px/1.02 var(--serif); margin:31px 0 8px; }
.mode-tile p { margin:0; font-size:9px; opacity:.58; }
.mode-tile > b { position:absolute; right:19px; bottom:17px; font-size:16px; }
.image-tile { color:white; }
.image-tile img,.image-tile > div { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.image-tile > div { background:linear-gradient(180deg,rgba(24,15,29,.18),rgba(24,15,29,.8)); }
.image-tile > *:not(img):not(div) { position:relative; z-index:2; }
.image-tile > i,.image-tile > b { position:absolute !important; }
.daily-prompt { margin-top:13px; background:white; border:1px solid var(--line); border-radius:15px; min-height:112px; padding:21px 25px; display:grid; grid-template-columns:135px 1fr auto; align-items:center; gap:25px; }
.daily-prompt > span { font-size:7px; letter-spacing:.14em; font-weight:900; color:var(--coral-hot); }
.daily-prompt p { font:italic 15px/1.45 var(--serif); margin:0; }
.daily-prompt button { border:0; background:transparent; font-size:10px; font-weight:900; white-space:nowrap; }
.daily-prompt button b { color:var(--coral); margin-left:8px; }

.chat-view { display:flex; flex-direction:column; height:100vh; }
.chat-head { min-height:78px; padding:0 26px; background:rgba(255,253,249,.85); backdrop-filter:blur(15px); border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.chat-head > div { display:flex; align-items:center; gap:10px; }
.back-button { display:none; border:0; background:transparent; font-size:20px; }
.agent-orb { width:38px; height:38px; background:var(--deep); color:var(--coral); border-radius:13px; display:grid; place-items:center; font:italic 18px var(--serif); }
.chat-head h2 { font-size:12px; margin:0 0 4px; }
.chat-head span { font-size:8px; color:var(--muted); }
.chat-head span i { display:inline-block; width:5px; height:5px; background:#4cbf7b; border-radius:50%; }
.chat-messages { flex:1; overflow:auto; padding:35px max(35px,calc((100% - 760px)/2)); scroll-behavior:smooth; }
.chat-empty { text-align:center; max-width:530px; margin:8vh auto 0; }
.empty-orb { width:66px; height:66px; background:var(--deep); color:var(--coral); border-radius:23px; display:grid; place-items:center; font:italic 29px var(--serif); margin:0 auto 24px; box-shadow:0 14px 35px rgba(24,15,29,.18); }
.chat-empty h2 { font:400 33px/1.1 var(--serif); margin:0 0 12px; }
.chat-empty > p { color:var(--muted); font-size:12px; line-height:1.6; }
.starter-prompts { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:25px; }
.starter-prompts button { background:white; border:1px solid var(--line); border-radius:11px; padding:13px; text-align:left; color:var(--ink); font-size:10px; line-height:1.4; }
.starter-prompts button:hover { border-color:var(--coral); }
.message-row { display:flex; gap:12px; margin:0 auto 22px; max-width:760px; animation:messageIn .3s both; }
.message-row.user { justify-content:flex-end; }
.message-avatar { width:30px; height:30px; flex:0 0 auto; border-radius:10px; background:var(--deep); color:var(--coral); display:grid; place-items:center; font:italic 13px var(--serif); }
.message-row.user .message-avatar { order:2; background:var(--coral); color:var(--deep); border-radius:50%; font-style:normal; }
.message-bubble { max-width:min(640px,82%); padding:15px 17px; background:white; border:1px solid var(--line); border-radius:5px 17px 17px 17px; font-size:14px; line-height:1.68; white-space:pre-wrap; }
.message-bubble p { margin:0 0 10px; }
.message-bubble p:last-child { margin-bottom:0; }
.message-bubble ul { margin:7px 0 10px; padding-left:19px; }
.message-bubble li { margin:4px 0; }
.message-bubble strong { font-weight:800; color:#120b16; }
.message-bubble em { color:#5f5363; }
.message-row.user .message-bubble { background:var(--deep); color:white; border-color:var(--deep); border-radius:17px 5px 17px 17px; }
.message-content { max-width:min(640px,82%); }
.message-content .message-bubble { max-width:100%; }
.message-tools { display:flex; gap:5px; margin-top:5px; opacity:0; transform:translateY(-3px); transition:.2s; }
.message-row:hover .message-tools,.message-tools:focus-within { opacity:1; transform:none; }
.message-tools button { border:0; background:transparent; color:var(--muted); padding:4px 6px; border-radius:5px; font-size:8px; }
.message-tools button:hover { background:rgba(27,18,32,.06); color:var(--ink); }
@media (hover:none) { .message-tools { opacity:1; transform:none; } }
.typing .message-bubble { display:flex; gap:5px; padding:17px 20px; }
.typing i { width:5px; height:5px; border-radius:50%; background:var(--muted); animation:bounce 1s infinite; }
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes bounce { 50%{transform:translateY(-4px);opacity:.5} }
@keyframes messageIn { from{opacity:0;transform:translateY(8px)} }
.composer-wrap { width:min(820px,calc(100% - 50px)); margin:0 auto 15px; }
.composer-wrap > small { display:block; text-align:center; color:var(--muted); font-size:8px; margin-top:8px; }
.composer { background:white; border:1px solid var(--line); border-radius:15px; box-shadow:0 13px 35px rgba(27,18,32,.08); padding:13px; }
.composer:focus-within { border-color:rgba(255,111,97,.6); box-shadow:0 13px 40px rgba(255,111,97,.1); }
.composer textarea { display:block; width:100%; max-height:140px; resize:none; border:0; outline:0; padding:2px 4px 10px; color:var(--ink); background:transparent; font-size:12px; line-height:1.5; }
.composer-bottom { display:flex; justify-content:space-between; align-items:center; }
.composer-bottom > span { color:var(--muted); font-size:8px; }
.composer-bottom button { width:33px; height:33px; border-radius:9px; border:0; background:var(--coral); color:var(--deep); font-weight:900; font-size:17px; }
.composer-bottom button:disabled { opacity:.4; cursor:wait; }
.mode-chips { display:flex; gap:6px; margin:0 0 8px 2px; overflow:auto; scrollbar-width:none; }
.mode-chips button { flex:0 0 auto; border:1px solid var(--line); background:rgba(255,255,255,.65); border-radius:999px; padding:6px 10px; color:var(--muted); font-size:8px; }
.mode-chips button.active { background:var(--deep); color:white; border-color:var(--deep); }

.unfiltered-panel { margin:0 0 9px; border:1px solid rgba(255,111,97,.28); border-radius:14px; background:linear-gradient(135deg,rgba(27,18,32,.98),rgba(58,23,53,.97)); color:white; box-shadow:0 15px 35px rgba(27,18,32,.13); overflow:hidden; }
.unfiltered-panel > summary { list-style:none; display:flex; align-items:center; gap:11px; padding:12px 15px; cursor:pointer; user-select:none; }
.unfiltered-panel > summary::-webkit-details-marker { display:none; }
.unfiltered-panel > summary > span { width:30px; height:30px; border:1px solid rgba(255,255,255,.15); border-radius:10px; display:grid; place-items:center; color:var(--coral); }
.unfiltered-panel > summary div { display:flex; flex-direction:column; flex:1; }
.unfiltered-panel > summary b { font-size:10px; }
.unfiltered-panel > summary small { color:rgba(255,255,255,.48); font-size:8px; margin-top:2px; }
.unfiltered-panel > summary > i { font-style:normal; transition:.2s; color:rgba(255,255,255,.55); }
.unfiltered-panel[open] > summary > i { transform:rotate(180deg); }
.unfiltered-body { border-top:1px solid rgba(255,255,255,.08); padding:14px 15px 15px; }
.active-character-row { display:grid; grid-template-columns:52px 1fr auto; align-items:center; gap:11px; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.09); }
.active-character-portrait { width:52px; height:52px; border-radius:14px; display:grid; place-items:center; overflow:hidden; background:linear-gradient(145deg,rgba(255,111,97,.28),rgba(201,183,250,.22)); color:var(--coral); font-size:20px; }
.active-character-portrait img { width:100%; height:100%; object-fit:cover; }
.active-character-portrait.has-image > span { display:none; }
.active-character-copy { min-width:0; display:flex; flex-direction:column; }
.active-character-copy small { color:var(--coral); font-size:7px; font-weight:900; letter-spacing:.12em; }
.active-character-copy b { font:400 18px var(--serif); margin-top:3px; }
.active-character-copy span { color:rgba(255,255,255,.47); font-size:8px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.active-character-row > button { border:1px solid rgba(255,255,255,.14); border-radius:9px; padding:9px 11px; color:white; background:rgba(255,255,255,.08); font-size:8px; font-weight:800; }
.active-character-row > button span { color:var(--coral); margin-left:5px; }
.fetish-switch-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.fetish-switch-row > div b,.fetish-switch-row > div small { display:block; }
.fetish-switch-row > div b { font-size:10px; }
.fetish-switch-row > div small { margin-top:3px; color:rgba(255,255,255,.48); font-size:8px; }
.mini-switch { display:flex; align-items:center; gap:7px; cursor:pointer; }
.mini-switch input { display:none; }
.mini-switch > span { width:36px; height:20px; border-radius:999px; background:rgba(255,255,255,.18); position:relative; transition:.2s; }
.mini-switch > span:after { content:''; position:absolute; width:14px; height:14px; left:3px; top:3px; border-radius:50%; background:white; transition:.2s; }
.mini-switch input:checked + span { background:var(--coral); }
.mini-switch input:checked + span:after { transform:translateX(16px); }
.mini-switch > b { min-width:48px; font-size:8px; color:rgba(255,255,255,.6); }
.fetish-choices { display:flex; flex-wrap:wrap; gap:6px; margin:13px 0 10px; transition:.2s; }
.fetish-choices label input { position:absolute; opacity:0; pointer-events:none; }
.fetish-choices label span { display:block; padding:6px 9px; border:1px solid rgba(255,255,255,.13); border-radius:999px; color:rgba(255,255,255,.63); font-size:8px; cursor:pointer; transition:.16s; }
.fetish-choices label input:checked + span { color:#20121e; background:var(--coral); border-color:var(--coral); font-weight:800; }
.fetish-choices.disabled { opacity:.32; pointer-events:none; }
.fetish-custom-row { display:grid; grid-template-columns:1fr auto; gap:8px; }
.fetish-custom-row input,.image-studio-controls input,.image-studio-controls select { border:1px solid rgba(255,255,255,.12); border-radius:9px; background:rgba(255,255,255,.07); color:white; outline:0; padding:9px 11px; font-size:9px; }
.fetish-custom-row input::placeholder,.image-studio-controls input::placeholder { color:rgba(255,255,255,.35); }
.fetish-custom-row input:disabled { opacity:.35; }
.fetish-custom-row button { border:1px solid rgba(255,255,255,.14); border-radius:9px; padding:0 12px; color:white; background:rgba(255,255,255,.08); font-size:8px; font-weight:800; }
.image-studio { margin-top:13px; padding-top:13px; border-top:1px solid rgba(255,255,255,.08); }
.image-studio-title { display:flex; align-items:center; gap:8px; margin-bottom:9px; }
.image-studio-title > span { color:var(--coral); }
.image-studio-title b,.image-studio-title small { display:block; }
.image-studio-title b { font-size:10px; }
.image-studio-title small { color:rgba(255,255,255,.48); font-size:8px; margin-top:2px; }
.image-studio-controls { display:grid; grid-template-columns:1fr 100px auto; gap:8px; }
.image-studio-controls select { color-scheme:dark; }
.image-studio-controls button { border:0; border-radius:9px; padding:0 15px; background:var(--coral); color:var(--deep); font-size:8px; font-weight:900; }
.image-studio-controls button:disabled { opacity:.45; cursor:wait; }
.generated-image { margin-top:8px; border-radius:15px; overflow:hidden; border:1px solid var(--line); background:white; }
.generated-image img { display:block; width:100%; max-height:660px; object-fit:contain; background:#171019; }
.generated-image footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; }
.generated-image footer span { color:var(--muted); font-size:8px; }
.generated-image footer div { display:flex; gap:5px; }
.generated-image footer button,.generated-image footer a { border:0; border-radius:7px; padding:5px 7px; background:#f4efe9; color:var(--ink); text-decoration:none; font-size:8px; }
.image-prompt-details { padding:0 10px 9px; }
.image-prompt-details summary { cursor:pointer; color:var(--muted); font-size:8px; }
.image-prompt-details p { margin:6px 0 0; color:var(--muted); font-size:8px; line-height:1.5; }

.settings-view { padding-bottom:50px; }
.settings-card,.subscription-layout { width:min(760px,calc(100% - 60px)); margin:45px auto; background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:35px; box-shadow:0 14px 40px rgba(27,18,32,.06); }
.settings-card { display:flex; flex-direction:column; }
.settings-intro { display:flex; align-items:center; gap:15px; padding-bottom:25px; margin-bottom:25px; border-bottom:1px solid var(--line); }
.user-avatar.big { width:54px; height:54px; font-size:21px; }
.settings-intro h3,.settings-intro p { margin:0; }
.settings-intro h3 { font:400 24px var(--serif); }
.settings-intro p { color:var(--muted); font-size:10px; margin-top:4px; }
.settings-card textarea { resize:vertical; line-height:1.5; text-transform:none; }
.adult-switch { display:flex; align-items:center; gap:13px; text-transform:none !important; letter-spacing:0 !important; cursor:pointer; padding:14px; background:#f4efe9; border-radius:11px; }
.adult-switch input { display:none; }
.adult-switch > span { width:39px; height:22px; border-radius:999px; background:#c9c1bb; position:relative; flex:0 0 auto; transition:.2s; }
.adult-switch > span:after { content:''; position:absolute; width:16px; height:16px; border-radius:50%; left:3px; top:3px; background:white; transition:.2s; }
.adult-switch input:checked + span { background:var(--coral); }
.adult-switch input:checked + span:after { transform:translateX(17px); }
.adult-switch b,.adult-switch small { display:block; }
.adult-switch b { font-size:10px; }
.adult-switch small { font-size:8px; color:var(--muted); margin-top:3px; }
.settings-actions { display:flex; justify-content:flex-start; flex-wrap:wrap; gap:10px; margin-top:5px; }
.settings-actions #logoutButton { margin-left:auto; }
.subscription-layout { width:min(920px,calc(100% - 60px)); display:grid; grid-template-columns:.9fr 1.1fr; padding:0; overflow:hidden; }
.sub-hero { padding:38px; background:var(--deep); color:white; }
.sub-hero h2 { font:400 31px var(--serif); margin:25px 0 15px; }
.sub-hero p { color:rgba(255,255,255,.53); font-size:11px; line-height:1.6; }
.sub-price { display:flex; align-items:center; gap:8px; }
.sub-price b { font:400 68px/.9 var(--serif); }
.sub-price span { color:rgba(255,255,255,.6); font-size:10px; text-transform:uppercase; font-weight:800; }
.sub-details { padding:38px; display:flex; flex-direction:column; justify-content:center; }
.sub-details > div { display:flex; justify-content:space-between; padding:15px 0; border-bottom:1px solid var(--line); font-size:10px; }
.sub-details > div span { color:var(--muted); }
.status-active { color:#2a9660; }
.sub-details > p { background:#f4efe9; color:var(--muted); border-radius:9px; padding:12px; font-size:9px; line-height:1.5; margin-top:22px; }
.sub-details .quota-block { display:grid; grid-template-columns:1fr auto; gap:8px 16px; align-items:center; }
.quota-block > i { grid-column:1/-1; display:block; height:5px; overflow:hidden; border-radius:99px; background:#eee7e1; }
.quota-block > i > u { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--coral),#ee9f88); text-decoration:none; transition:width .35s ease; }
.image-pack-card { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px; margin-top:22px; border:1px solid rgba(226,109,88,.24); border-radius:13px; background:#fff7f4; }
.image-pack-card div { min-width:0; }
.image-pack-card span,.image-pack-card b,.image-pack-card small { display:block; }
.image-pack-card span { color:var(--coral); font-size:7px; font-weight:900; letter-spacing:.13em; }
.image-pack-card b { margin-top:5px; font:400 23px var(--serif); }
.image-pack-card small { margin-top:3px; color:var(--muted); font-size:8px; line-height:1.4; }
.image-pack-card .btn { flex:0 0 auto; padding:11px 14px; font-size:8px; white-space:nowrap; }
.image-pack-card.hidden { display:none; }

.context-panel { position:fixed; right:0; top:0; bottom:0; width:300px; background:var(--paper); border-left:1px solid var(--line); padding:38px 30px; z-index:45; box-shadow:-18px 0 60px rgba(27,18,32,.08); transform:translateX(101%); transition:.3s; }
.context-panel.open { transform:none; }
.context-panel > button { position:absolute; right:20px; top:20px; border:0; background:transparent; font-size:20px; }
.context-label { display:block; color:var(--muted); font-size:7px; font-weight:900; letter-spacing:.15em; margin-bottom:11px; }
.context-panel h3 { font:400 25px var(--serif); margin:0 0 13px; }
.context-panel > p { color:var(--muted); font-size:11px; line-height:1.6; }
.context-rule { height:1px; background:var(--line); margin:28px 0; }
.context-panel > b { font-size:11px; font-weight:600; }
.context-panel > b + .context-label { margin-top:25px; }
.context-label.second { margin-top:25px; }
.privacy-card { display:flex; gap:11px; position:absolute; bottom:30px; left:25px; right:25px; padding:14px; border-radius:11px; background:#f4efe9; }
.privacy-card > span { color:var(--coral); }
.privacy-card b { font-size:9px; }
.privacy-card p { font-size:8px; line-height:1.5; color:var(--muted); margin:5px 0 0; }

.adult-modal { position:relative; z-index:2; width:min(460px,94vw); background:var(--paper); color:var(--ink); border-radius:22px; padding:42px; text-align:center; box-shadow:0 35px 90px rgba(0,0,0,.35); transform:translateY(18px) scale(.98); transition:.3s; }
.age-circle { width:66px; height:66px; border-radius:50%; display:grid; place-items:center; margin:0 auto 22px; background:var(--lilac); color:var(--deep); font:700 19px var(--serif); }
.adult-modal h2 { font:400 35px/1.05 var(--serif); margin:0 0 16px; }
.adult-modal > p { color:var(--muted); line-height:1.65; font-size:12px; }
.adult-modal label { display:flex; text-align:left; gap:10px; align-items:flex-start; padding:13px; background:#f4efe9; border-radius:10px; font-size:10px; margin:20px 0 14px; }
.adult-modal input { accent-color:var(--coral); }
.adult-modal button:disabled { opacity:.45; transform:none; cursor:not-allowed; }
.text-button { border:0; background:transparent; color:var(--muted); font-size:10px; margin-top:13px; }

/* Premium character creator */
.character-wrap { overflow:auto; align-items:center; }
.character-modal { position:relative; z-index:2; width:min(980px,96vw); max-height:calc(100dvh - 34px); overflow:auto; background:var(--paper); color:var(--ink); border-radius:24px; box-shadow:0 42px 110px rgba(0,0,0,.46); transform:translateY(18px) scale(.985); transition:.35s; }
.character-picker { padding:42px; }
.character-modal-head { display:grid; grid-template-columns:1fr auto; align-items:start; gap:35px; padding:0 45px 28px 0; border-bottom:1px solid var(--line); }
.character-modal-head > div:first-child > span,.character-form header > span { color:var(--coral-hot); font-size:8px; font-weight:900; letter-spacing:.16em; }
.character-modal-head h2,.character-form h2 { font:400 44px/.98 var(--serif); letter-spacing:-.045em; margin:12px 0 11px; }
.character-modal-head p,.character-form header > p { max-width:650px; color:var(--muted); font-size:11px; line-height:1.6; margin:0; }
.character-limit { display:flex; align-items:center; gap:7px; min-width:100px; padding:15px; border-radius:15px; background:var(--deep); color:white; }
.character-limit b { font:400 38px/.9 var(--serif); color:var(--coral); }
.character-limit span { color:rgba(255,255,255,.58); font-size:7px; font-weight:900; line-height:1.45; }
.character-list { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin:20px 0; }
.character-card { position:relative; min-width:0; border:1px solid var(--line); border-radius:17px; overflow:hidden; background:white; box-shadow:0 9px 28px rgba(27,18,32,.05); }
.character-select { width:100%; border:0; padding:0; background:white; color:var(--ink); text-align:left; }
.character-select > img { width:100%; aspect-ratio:1.15/1; object-fit:cover; object-position:center 25%; background:#e5ddd7; }
.character-select > div { padding:16px 42px 17px 17px; min-height:126px; }
.character-select h3 { font:400 25px/1 var(--serif); margin:0 0 5px; }
.character-select span { color:var(--coral-hot); font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.character-select p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--muted); font-size:9px; line-height:1.5; margin:9px 0 0; }
.character-select > b { position:absolute; right:17px; bottom:18px; color:var(--coral); }
.character-edit { position:absolute; right:9px; top:9px; border:1px solid rgba(255,255,255,.55); border-radius:999px; padding:7px 10px; background:rgba(24,15,29,.72); backdrop-filter:blur(8px); color:white; font-size:8px; font-weight:800; }
.character-card:hover { transform:translateY(-3px); box-shadow:0 15px 34px rgba(27,18,32,.1); transition:.22s; }
.character-empty { grid-column:1/-1; min-height:230px; display:flex; justify-content:center; align-items:center; gap:17px; border:1px dashed rgba(27,18,32,.2); border-radius:17px; background:#f7f2ec; }
.character-empty > span { width:54px; height:54px; display:grid; place-items:center; border-radius:17px; background:var(--lilac); font-size:25px; }
.character-empty b { font:400 22px var(--serif); }
.character-empty p { max-width:410px; color:var(--muted); font-size:10px; line-height:1.5; margin:5px 0 0; }
.character-picker-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.character-picker-actions button:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.character-form { width:min(740px,100%); padding:40px 46px 44px; margin:auto; }
.character-form header { padding-right:38px; margin-bottom:25px; }
.character-form header > button { display:block; border:0; background:transparent; color:var(--muted); font-size:9px; padding:0; margin-bottom:25px; }
.character-form > label,.character-form-grid label { display:block; color:var(--ink); font-size:8px; text-transform:uppercase; font-weight:900; letter-spacing:.1em; margin-bottom:15px; }
.character-form input,.character-form textarea { width:100%; border:1px solid var(--line); border-radius:11px; background:white; color:var(--ink); padding:13px 14px; margin-top:8px; outline:none; text-transform:none; letter-spacing:0; resize:vertical; font-size:11px; line-height:1.5; }
.character-form input:focus,.character-form textarea:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,111,97,.12); }
.character-form-grid { display:grid; grid-template-columns:1fr 125px; gap:12px; }
.character-gender-field,.character-preferences { border:0; padding:0; margin:0 0 17px; min-width:0; }
.character-gender-field > legend,.character-preferences > legend { color:var(--ink); font-size:8px; text-transform:uppercase; font-weight:900; letter-spacing:.1em; margin-bottom:8px; }
.character-preferences > legend small { color:var(--muted); font-size:7px; margin-left:6px; }
.character-gender-options { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.character-gender-options label,.character-fetish-choices label { position:relative; cursor:pointer; }
.character-gender-options input,.character-fetish-choices input { position:absolute; width:1px; height:1px; margin:0; opacity:0; pointer-events:none; }
.character-gender-options span { display:block; padding:11px 12px; border:1px solid var(--line); border-radius:11px; background:white; color:var(--muted); text-align:center; font-size:9px; font-weight:800; transition:.18s; }
.character-gender-options input:checked + span { border-color:var(--coral); background:rgba(255,111,97,.12); color:var(--ink); box-shadow:0 0 0 2px rgba(255,111,97,.08); }
.character-gender-options input:focus-visible + span,.character-fetish-choices input:focus-visible + span { outline:2px solid var(--coral); outline-offset:2px; }
.character-preferences { padding:15px; border:1px solid var(--line); border-radius:13px; background:#f7f2ec; }
.character-preferences > p { color:var(--muted); font-size:9px; line-height:1.5; margin:0 0 11px; }
.character-fetish-choices { display:flex; flex-wrap:wrap; gap:6px; }
.character-fetish-choices span { display:block; padding:7px 10px; border:1px solid rgba(27,18,32,.13); border-radius:999px; background:white; color:var(--muted); font-size:8px; transition:.16s; }
.character-fetish-choices input:checked + span { border-color:var(--deep); background:var(--deep); color:white; }
.character-custom-fetish { display:block; color:var(--ink); font-size:8px; text-transform:uppercase; font-weight:900; letter-spacing:.1em; margin-top:13px; }
.character-custom-fetish input { margin-bottom:0; }
.reference-note { display:flex; gap:12px; align-items:flex-start; background:linear-gradient(135deg,#f2ece6,#eee8fa); border-radius:12px; padding:14px; }
.reference-note > span { color:var(--coral-hot); font-size:18px; }
.reference-note p { color:var(--muted); font-size:9px; line-height:1.5; margin:0; }
.reference-note b { display:block; color:var(--ink); font-size:10px; margin-bottom:3px; }
.character-form .form-error { margin:10px 0 0; }
.character-form-actions { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-top:8px; }
.character-delete { margin-right:auto; border:0; background:transparent; color:#bb3f39; font-size:9px; font-weight:800; }
.agent-orb.character-avatar,.message-avatar.character-message-avatar { background-position:center 24%; background-size:cover; color:transparent; }

.saved-layout { width:min(820px,calc(100% - 60px)); margin:38px auto 60px; }
.saved-intro { display:flex; align-items:center; gap:18px; background:var(--deep); color:white; border-radius:16px; padding:25px 28px; margin-bottom:14px; }
.saved-star { width:52px; height:52px; flex:0 0 auto; border-radius:16px; background:var(--lilac); color:var(--deep); display:grid; place-items:center; font-size:28px; }
.saved-intro h3,.saved-intro p { margin:0; }
.saved-intro h3 { font:400 23px var(--serif); }
.saved-intro p { color:rgba(255,255,255,.55); font-size:10px; margin-top:6px; line-height:1.5; }
.saved-list { display:grid; gap:10px; }
.saved-card { background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:20px; box-shadow:0 8px 25px rgba(27,18,32,.04); }
.saved-card > p { font:400 15px/1.6 var(--serif); margin:0; white-space:pre-wrap; }
.saved-card footer { padding:15px 0 0; margin-top:14px; border-top:1px solid var(--line); background:transparent; display:flex; align-items:center; justify-content:space-between; }
.saved-card footer span { color:var(--muted); font-size:8px; }
.saved-card footer div { display:flex; gap:7px; }
.saved-card footer button { border:1px solid var(--line); background:transparent; border-radius:999px; padding:7px 10px; font-size:8px; font-weight:800; color:var(--ink); }
.saved-card footer button:first-child { background:var(--deep); color:white; border-color:var(--deep); }
.saved-empty { min-height:180px; display:grid; place-items:center; text-align:center; background:rgba(255,255,255,.45); border:1px dashed rgba(27,18,32,.2); border-radius:14px; color:var(--muted); font-size:11px; }

.reveal { opacity:1; transform:none; animation:revealIn .7s both; }
.delay-1 { animation-delay:.1s; }.delay-2 { animation-delay:.2s; }
@keyframes revealIn { from { opacity:0; transform:translateY(16px); } }
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

@media (min-width: 1100px) {
  .dashboard.context-open .workspace { margin-right:300px; transition:margin .3s; }
}
@media (max-width: 900px) {
  .shell { width:min(100% - 36px,720px); }
  .nav-links { display:none; }
  .hero { grid-template-columns:1fr; padding-top:40px; gap:60px; }
  .hero-copy { text-align:center; }
  .eyebrow,.hero-actions,.hero-proof { justify-content:center; }
  .hero-lead { margin-left:auto;margin-right:auto; }
  .hero-photo { width:90%; margin:auto; height:540px; }
  .hero-stamp { left:0; }
  .section-head,.demo-grid,.pricing-grid,.faq-grid { grid-template-columns:1fr; gap:45px; }
  .steps-grid,.mode-showcase { grid-template-columns:1fr; }
  .step-card.featured { transform:none; }
  .demo-photo { height:520px; width:80%; margin:auto; }
  .mode-showcase article { min-height:370px; }
  .dashboard { display:block; }
  .sidebar { transform:translateX(-101%); transition:.3s; box-shadow:20px 0 60px rgba(0,0,0,.2); }
  .sidebar.open { transform:none; }
  .workspace { min-height:100vh; }
  .mobile-head { display:flex; height:65px; padding:0 18px; background:var(--paper); border-bottom:1px solid var(--line); align-items:center; justify-content:space-between; }
  .mobile-head > button:first-child { border:0; background:transparent; font-size:19px; }
  .mobile-head .brand-dark { color:var(--ink); }
  .workspace-head { height:95px; }
  .back-button { display:inline-block; }
  .context-panel { width:min(320px,88vw); }
  .onboarding-modal { grid-template-columns:1fr; width:min(680px,94vw); }
  .onboarding-visual { display:none; }
}
@media (max-width: 640px) {
  .shell { width:calc(100% - 28px); }
  .topbar { height:76px; }
  .hero { min-height:0; padding:50px 0 90px; }
  .hero h1 { font-size:57px; }
  .hero-actions { flex-direction:column; gap:20px; }
  .hero-proof { align-items:flex-start; }
  .hero-photo { height:450px; width:100%; }
  .hero-stamp { width:75px;height:75px;top:30px; }
  .mini-card-top { top:63px; }
  .message-one { left:14px;bottom:108px; }
  .message-two { right:14px;bottom:20px; }
  .section { padding:80px 0; }
  .section h2 { font-size:45px; }
  .section-head { gap:25px; margin-bottom:38px; }
  .steps-grid { grid-template-columns:1fr; }
  .step-card { min-height:250px; }
  .demo-photo { width:100%; height:440px; }
  .photo-label { left:-3px; }
  .demo-result { grid-template-columns:1fr; }
  .demo-result p { grid-column:1; }
  .mode-showcase article { min-height:360px; }
  .pricing-section { padding-top:90px; }
  .price-card { padding:26px 22px; }
  .footer-inner { flex-direction:column; gap:20px; }
  .footer-inner > p { text-align:center; }
  .login-modal { grid-template-columns:1fr; min-height:0; }
  .login-photo { display:none; }
  .login-form { padding:48px 28px 30px; }
  .home-content { width:calc(100% - 28px); margin-top:20px; }
  .workspace-head { padding:0 18px; }
  .welcome-card { padding:28px 24px; min-height:235px; }
  .welcome-card h2 { font-size:38px; }
  .welcome-art { position:absolute;right:-50px;bottom:-60px;width:220px;height:220px;opacity:.55; }
  .mode-grid { grid-template-columns:1fr 1fr; }
  .mode-tile { min-height:185px; padding:17px; }
  .mode-tile h3 { font-size:21px; }
  .mode-tile.wild-tile { grid-column:1 / -1; min-height:170px; }
  .daily-prompt { grid-template-columns:1fr; gap:12px; }
  .chat-head { padding:0 12px; }
  .chat-messages { padding:26px 14px; }
  .composer-wrap { width:calc(100% - 20px); }
  .unfiltered-body { padding:13px 12px; }
  .fetish-switch-row { align-items:flex-start; gap:10px; }
  .fetish-switch-row > div small { max-width:190px; }
  .fetish-custom-row,.image-studio-controls { grid-template-columns:1fr; }
  .fetish-custom-row button,.image-studio-controls button { min-height:36px; }
  .generated-image img { max-height:70vh; }
  .starter-prompts { grid-template-columns:1fr; }
  .message-bubble { max-width:87%; }
  .settings-card,.subscription-layout { width:calc(100% - 28px); margin:25px auto; }
  .saved-layout { width:calc(100% - 28px); margin:25px auto; }
  .saved-intro { align-items:flex-start; padding:22px; }
  .settings-card { padding:22px; }
  .subscription-layout { grid-template-columns:1fr; }
  .image-pack-card { align-items:flex-start; flex-direction:column; }
  .image-pack-card .btn { width:100%; }
  .adult-modal { padding:34px 24px; }
  .character-wrap { padding:0; align-items:stretch; }
  .character-modal { width:100%; min-height:100dvh; max-height:100dvh; border-radius:0; }
  .character-picker { padding:64px 18px 24px; }
  .character-modal-head { grid-template-columns:1fr; gap:15px; padding:0 0 22px; }
  .character-modal-head h2,.character-form h2 { font-size:38px; }
  .character-limit { width:max-content; padding:11px 13px; }
  .character-limit b { font-size:30px; }
  .character-list { grid-template-columns:1fr; }
  .character-select { display:grid; grid-template-columns:110px 1fr; }
  .character-select > img { height:100%; aspect-ratio:auto; }
  .character-select > div { min-height:126px; }
  .character-picker-actions { align-items:stretch; flex-direction:column-reverse; }
  .character-picker-actions .btn { width:100%; }
  .character-form { padding:62px 18px 28px; }
  .character-form-grid { grid-template-columns:1fr 100px; }
  .character-gender-options { grid-template-columns:1fr; }
  .active-character-row { grid-template-columns:45px 1fr auto; }
  .active-character-portrait { width:45px; height:45px; border-radius:12px; }
  .active-character-copy span { max-width:200px; }
  .active-character-row > button { padding:8px; }
  .onboarding-wrap { padding:0; align-items:stretch; }
  .onboarding-modal { width:100%; min-height:100dvh; height:100dvh; border-radius:0; }
  .onboarding-form { padding:20px 18px 18px; }
  .onboarding-head { padding-bottom:14px; }
  .onboarding-step { padding-top:24px; }
  .onboarding-step h2 { font-size:38px; }
  .choice-grid.goals { grid-template-columns:1fr 1fr; }
  .choice-grid label > span { min-height:50px; }
  .onboarding-actions { padding-top:13px; }
  .onboarding-actions .btn { padding:12px 15px; min-width:94px; }
  .settings-actions #logoutButton { margin-left:0; }
}
/* Production age gate, memory and operations console */
.site-age-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:rgba(16,9,20,.88);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transition:opacity .25s ease}.site-age-gate.open{opacity:1;pointer-events:auto}.site-age-card{width:min(560px,100%);padding:42px;border-radius:30px;background:#fff9f4;box-shadow:0 40px 120px rgba(0,0,0,.4);text-align:center}.site-age-card>.brand{justify-content:center;margin-bottom:24px;color:var(--deep)}.site-age-card .age-circle{margin:0 auto 18px}.age-kicker{margin:0 0 10px;color:#9f6579;font-size:.72rem;font-weight:800;letter-spacing:.14em}.site-age-card h2{margin:0;color:#1d1222;font-family:Georgia,serif;font-size:clamp(2rem,6vw,3rem);line-height:1.04}.site-age-card>p:not(.age-kicker){max-width:430px;margin:16px auto 24px;color:#665d68}.site-age-actions{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;margin:24px 0}.site-age-card>small{display:block;margin-top:20px;color:#8f858e;font-size:.72rem}.site-age-denied{padding:22px;border-radius:18px;background:#f4e9e8}.site-age-denied b{display:block;font-size:1.08rem}.site-age-denied p{margin:8px 0 18px;color:#72666d}body.age-locked{overflow:hidden}
.memory-layout,.admin-layout{width:min(1180px,calc(100% - 48px));margin:0 auto 60px}.memory-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.4fr);gap:22px}.memory-settings-card,.memory-library,.admin-card{border:1px solid rgba(39,24,44,.1);border-radius:24px;background:#fff;box-shadow:0 14px 38px rgba(35,18,42,.06)}.memory-settings-card{padding:28px}.memory-settings-card>div:first-child{display:flex;gap:14px;margin-bottom:24px}.memory-settings-card>div:first-child>span{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:14px;background:#f3e8ff;color:#6b3b7c;font-size:1.2rem}.memory-settings-card h3,.memory-library h3,.admin-card h3{margin:0 0 6px;font-size:1.15rem}.memory-settings-card p,.memory-library p{margin:0;color:#716976;line-height:1.55}.memory-settings-card .adult-switch{margin-top:14px}.memory-settings-card .settings-actions{margin-top:24px;flex-wrap:wrap}.memory-library{overflow:hidden}.memory-library>header,.admin-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 26px;border-bottom:1px solid rgba(39,24,44,.08)}.memory-library>header span,.admin-card>header span{color:#9f6579;font-size:.68rem;font-weight:800;letter-spacing:.12em}.memory-list{display:grid;gap:10px;padding:18px;max-height:650px;overflow:auto}.memory-item{display:grid;grid-template-columns:1fr auto;gap:14px;padding:16px;border:1px solid rgba(39,24,44,.09);border-radius:16px;background:#fffaf7}.memory-item.pinned{border-color:#d9b4f0;background:#faf5ff}.memory-item small{display:block;margin-bottom:6px;color:#946c9d;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.memory-item p{color:#302735}.memory-item-actions{display:flex;align-items:flex-start;gap:6px}.memory-item-actions button{border:0;background:#f0e9ee;border-radius:10px;padding:8px;cursor:pointer}.memory-sensitive{display:inline-block;margin-left:6px;color:#b65165}.admin-layout{display:grid;gap:22px}.admin-metrics{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px}.admin-metric{padding:20px;border-radius:20px;background:#25172b;color:#fff}.admin-metric span{display:block;color:#cbbfce;font-size:.72rem;font-weight:800;letter-spacing:.08em}.admin-metric b{display:block;margin-top:8px;font-family:Georgia,serif;font-size:1.8rem}.admin-card{overflow:hidden}.admin-users-card>header>div:last-child{display:flex;gap:8px}.admin-users-card input{min-width:260px;padding:12px 14px;border:1px solid #ded4dc;border-radius:12px}.admin-table-wrap{overflow:auto}.admin-card table{width:100%;border-collapse:collapse}.admin-card th,.admin-card td{padding:14px 18px;border-bottom:1px solid #eee6ec;text-align:left;white-space:nowrap}.admin-card th{color:#897c87;font-size:.7rem;letter-spacing:.09em}.admin-card td small{display:block;color:#8f838d}.admin-user-actions{display:flex;gap:6px}.admin-user-actions button,.admin-feed button{padding:7px 10px;border:0;border-radius:9px;background:#eee5f0;cursor:pointer}.admin-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.admin-feed{max-height:460px;overflow:auto}.admin-feed-item{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 22px;border-bottom:1px solid #eee6ec}.admin-feed-item b{display:block}.admin-feed-item small{color:#8b7e89}.status-dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#5ebc7b}.status-dot.failed{background:#d85c67}.status-dot.running{background:#e0a23e}.status-dot.queued{background:#8d71bd}
@media(max-width:980px){.memory-layout,.admin-grid{grid-template-columns:1fr}.admin-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.site-age-card{padding:30px 20px;border-radius:22px}.site-age-actions{grid-template-columns:1fr}.memory-layout,.admin-layout{width:min(100% - 24px,1180px)}.admin-metrics{grid-template-columns:1fr 1fr}.admin-users-card>header{align-items:stretch;flex-direction:column}.admin-users-card>header>div:last-child{display:grid}.admin-users-card input{min-width:0;width:100%}}

/* FlirtAI content studio */
.admin-seo-studio{overflow:visible}.admin-seo-studio>header{border-radius:24px 24px 0 0;background:linear-gradient(120deg,#25172b,#4b2344);color:#fff}.seo-model-badge{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(255,255,255,.08);font-size:10px;font-weight:800}.seo-model-badge i{width:8px;height:8px;border-radius:50%;background:#7ee7a3;box-shadow:0 0 0 5px rgba(126,231,163,.12)}.admin-seo-grid{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr);gap:0}.admin-seo-generator,.admin-seo-library{min-width:0;padding:26px}.admin-seo-generator{border-right:1px solid rgba(39,24,44,.09);background:#fffaf7}.seo-form-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:21px}.seo-form-heading>span{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:11px;background:#25172b;color:#ff7569;font:800 10px var(--sans)}.seo-form-heading h4{margin:1px 0 5px;font:400 21px var(--serif)}.seo-form-heading p{margin:0;color:#80747d;font-size:10px;line-height:1.5}.admin-seo-generator>label,.admin-seo-editor>label,.seo-field-row>label{display:flex;min-width:0;flex-direction:column;margin-bottom:13px;color:#72666f;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.admin-seo-generator label small,.admin-seo-editor label small{color:#a0949c;font-weight:600;text-transform:none}.admin-seo-generator input,.admin-seo-generator select,.admin-seo-generator textarea,.admin-seo-editor input,.admin-seo-editor select,.admin-seo-editor textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #e3d9df;border-radius:11px;outline:none;background:#fff;color:#2b202e;font:500 12px/1.5 var(--sans);letter-spacing:0;text-transform:none;transition:.2s}.admin-seo-generator textarea,.admin-seo-editor textarea{resize:vertical}.admin-seo-generator input:focus,.admin-seo-generator select:focus,.admin-seo-generator textarea:focus,.admin-seo-editor input:focus,.admin-seo-editor select:focus,.admin-seo-editor textarea:focus{border-color:#ff7569;box-shadow:0 0 0 3px rgba(255,117,105,.1)}.seo-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.seo-force{display:grid!important;grid-template-columns:36px 1fr;gap:10px;align-items:center;padding:11px 12px;border:1px solid #e7dde2;border-radius:12px;background:#fff;cursor:pointer}.seo-force input{display:none}.seo-force>span{position:relative;width:34px;height:19px;margin:0;border-radius:999px;background:#d7cfd4;transition:.2s}.seo-force>span:after{position:absolute;left:3px;top:3px;width:13px;height:13px;border-radius:50%;background:#fff;content:"";transition:.2s}.seo-force input:checked+span{background:#ff7569}.seo-force input:checked+span:after{transform:translateX(15px)}.seo-force b,.seo-force small{display:block}.seo-force b{color:#352a37;font-size:9px;text-transform:none}.seo-force small{margin-top:2px;font-size:8px;line-height:1.35}.admin-seo-generator>.btn{width:100%;margin-top:4px}.seo-generation-status{margin-top:13px;padding:12px;border-radius:11px;background:#281a2e;color:#fff;font-size:10px;line-height:1.5}.seo-generation-status b{display:block;margin-bottom:5px;color:#ff7569}.admin-seo-library{background:#fff}.seo-library-tools{display:flex;justify-content:flex-end;gap:8px;margin:-4px 0 13px}.seo-library-tools select{padding:9px 11px;border:1px solid #e1d7de;border-radius:10px;background:#fff;color:#655a63;font-size:9px}.seo-article-list{display:grid;gap:9px;max-height:540px;overflow:auto;padding-right:3px}.seo-article-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px;border:1px solid #e8dfe4;border-radius:14px;background:#fff}.seo-article-row>div{min-width:0}.seo-article-row h5{margin:0 0 5px;overflow:hidden;color:#302332;font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.seo-article-row small{display:block;color:#8e828b;font-size:8px}.seo-article-row-actions{display:flex;align-items:center;gap:7px}.seo-status{display:inline-flex!important;width:max-content;margin-bottom:5px;padding:4px 7px;border-radius:999px;background:#eee7ed;color:#6d606a!important;font-size:7px!important;font-weight:900;text-transform:uppercase}.seo-status.published{background:#dff5e6;color:#287b45!important}.seo-status.scheduled{background:#e8e1ff;color:#634ba0!important}.seo-status.generating{background:#fff0dc;color:#a76217!important}.seo-status.failed{background:#ffe1e3;color:#a83c48!important}.seo-score-mini{display:grid;width:39px;height:39px;place-items:center;border-radius:50%;background:conic-gradient(#ff7569 calc(var(--score)*1%),#ede6eb 0);color:#281b2b;font-size:8px;font-weight:900}.seo-score-mini:before{display:grid;width:29px;height:29px;place-items:center;border-radius:50%;background:#fff;content:attr(data-score)}.seo-edit-button{padding:8px 10px;border:0;border-radius:9px;background:#281a2e;color:#fff;font-size:8px}.seo-empty{padding:30px;border:1px dashed #d8ccd5;border-radius:14px;color:#8c8089;text-align:center;font-size:10px}.admin-seo-editor{border-top:1px solid #e7dde3;padding:0 26px 28px;background:#fff}.admin-seo-editor>header{display:flex;align-items:center;justify-content:space-between;margin:0 -26px 22px;padding:22px 26px;border-bottom:1px solid #e7dde3;background:#fdf8f5}.admin-seo-editor>header span{color:#a36375;font-size:8px;font-weight:900;letter-spacing:.12em}.admin-seo-editor>header h3{margin:4px 0 0}.seo-score-ring{display:flex;width:66px;height:66px;align-items:baseline;justify-content:center;padding-top:18px;border-radius:50%;background:conic-gradient(#ff7569 calc(var(--score,0)*1%),#e9e0e6 0);box-shadow:inset 0 0 0 8px #fff}.seo-score-ring b{font-size:18px}.seo-score-ring small{font-size:8px}.seo-checks{display:flex;gap:7px;overflow:auto;margin-bottom:18px;padding-bottom:5px}.seo-check{flex:0 0 auto;padding:7px 9px;border-radius:999px;background:#f6e5e6;color:#a7464c;font-size:7px;font-weight:850}.seo-check.ok{background:#e1f4e7;color:#34764a}.admin-seo-editor>label>span{float:right;margin-left:auto;color:#9d9099;font-size:8px}.admin-seo-editor #adminSeoBody{min-height:460px;font:500 13px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace}.seo-faq-editor{margin:18px 0;padding:18px;border:1px solid #e4d9e0;border-radius:16px;background:#fffaf7}.seo-faq-editor>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.seo-faq-editor h4{margin:3px 0 0}.seo-faq-editor>header span{color:#a36375;font-size:8px;font-weight:900}.seo-faq-editor>header button{border:1px solid #d9cbd4;border-radius:9px;padding:8px 10px;background:#fff;color:#4b3d49;font-size:8px;font-weight:800}.seo-faq-row{display:grid;grid-template-columns:1fr 1.6fr auto;gap:8px;margin-top:8px}.seo-faq-row input{margin:0}.seo-faq-row button{width:34px;border:0;border-radius:9px;background:#f2e8ed;color:#9b5060}.seo-editor-actions{position:sticky;bottom:0;z-index:3;display:flex;align-items:end;gap:8px;margin:22px -26px -28px;padding:14px 26px;border-top:1px solid #e4d9e0;background:rgba(255,253,250,.96);backdrop-filter:blur(12px)}.seo-editor-actions>label{display:flex;min-width:190px;flex-direction:column;color:#786c75;font-size:7px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.seo-editor-actions>label input{margin-top:5px;padding:8px}.seo-editor-actions .btn{white-space:nowrap}
@media(max-width:1050px){.admin-seo-grid{grid-template-columns:1fr}.admin-seo-generator{border-right:0;border-bottom:1px solid #e7dde3}.seo-editor-actions{flex-wrap:wrap}.seo-editor-actions>label{min-width:170px}}@media(max-width:680px){.admin-seo-generator,.admin-seo-library,.admin-seo-editor{padding:20px 15px}.admin-seo-editor>header{margin:0 -15px 20px;padding:18px 15px}.seo-field-row,.seo-faq-row{grid-template-columns:1fr}.seo-faq-row button{width:100%;height:34px}.seo-editor-actions{position:static;align-items:stretch;flex-direction:column;margin:20px -15px -28px;padding:15px}.seo-editor-actions>label{min-width:0}.seo-editor-actions .btn{width:100%}.seo-model-badge{display:none}}

/* Guided starts for each product mode */
.mode-setup-wrap { overflow:auto; align-items:center; }
.mode-setup-modal { position:relative; z-index:2; width:min(720px,96vw); max-height:calc(100dvh - 34px); overflow:auto; padding:42px; border-radius:26px; background:var(--paper); color:var(--ink); box-shadow:0 42px 110px rgba(0,0,0,.46); transform:translateY(18px) scale(.985); transition:.35s; }
.mode-setup-modal > header { padding-right:35px; }
.mode-setup-modal > header > span { display:block; margin-bottom:10px; color:var(--coral); font-size:8px; font-weight:900; letter-spacing:.18em; }
.mode-setup-modal h2 { margin:0; font:400 clamp(36px,6vw,52px)/.98 var(--serif); letter-spacing:-.045em; }
.mode-setup-modal h2 em { color:var(--coral); }
.mode-setup-modal > header > p { max-width:560px; margin:16px 0 25px; color:var(--muted); font-size:13px; line-height:1.65; }
.mode-setup-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mode-setup-field { display:flex; min-width:0; flex-direction:column; color:#6f626c; font-size:9px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.mode-setup-field.wide { grid-column:1/-1; }
.mode-setup-field small { margin:6px 0 0; color:#9b9098; font-size:9px; font-weight:500; letter-spacing:0; line-height:1.45; text-transform:none; }
.mode-setup-field input,.mode-setup-field textarea,.mode-setup-field select { width:100%; margin-top:8px; padding:14px 15px; border:1px solid var(--line); border-radius:12px; outline:none; background:#fff; color:var(--ink); font:500 14px/1.45 var(--sans); resize:vertical; transition:.2s; }
.mode-setup-field textarea { min-height:94px; }
.mode-setup-field input:focus,.mode-setup-field textarea:focus,.mode-setup-field select:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,111,97,.12); }
.mode-setup-modal > footer { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; padding-top:20px; border-top:1px solid var(--line); background:transparent; }
.mode-setup-modal > footer .text-button { text-align:left; }
.mode-setup-modal > footer .btn { flex:0 0 auto; }
.admin-chart { display:grid; gap:10px; min-height:180px; padding:20px 24px; color:var(--muted); font-size:12px; }
.admin-chart-row { display:grid; grid-template-columns:45px minmax(80px,1fr) 90px; align-items:center; gap:10px; }
.admin-chart-row > i { display:block; height:9px; overflow:hidden; border-radius:99px; background:#eee8ed; }
.admin-chart-row > i > b { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--coral),#a466b3); }
.admin-chart-row small { color:#847a83; text-align:right; }
.admin-infrastructure { display:grid; padding:10px 24px 18px; }
.admin-infrastructure > div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid #eee6ec; }
.admin-infrastructure > div:last-child { border-bottom:0; }
.admin-infrastructure span { color:#887d86; }
.admin-infrastructure b { color:#2c222c; font-size:13px; }
.admin-card > header > select,.admin-user-actions select { padding:8px 10px; border:1px solid #ddd3dc; border-radius:9px; background:#fff; color:var(--ink); }
.admin-user-actions { align-items:center; }

.bank-transfer-orders { display:grid !important; gap:10px; margin-top:16px; padding:0 !important; border:0 !important; }
.bank-transfer-order { padding:16px; border:1px solid rgba(226,109,88,.24); border-radius:13px; background:#fffaf7; }
.bank-transfer-order > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.bank-transfer-order > header span { display:block; color:var(--coral-hot); font-size:7px; font-weight:900; letter-spacing:.1em; }
.bank-transfer-order > header b { display:block; margin-top:4px; font:400 19px var(--serif); }
.bank-transfer-order > header strong { font-size:14px; }
.transfer-detail { display:grid; grid-template-columns:92px 1fr auto; gap:9px; align-items:center; padding:8px 0; border-top:1px solid var(--line); }
.transfer-detail span { color:var(--muted); font-size:8px; }
.transfer-detail code { min-width:0; overflow-wrap:anywhere; color:var(--ink); font:800 10px/1.45 var(--sans); letter-spacing:.04em; }
.transfer-detail button { border:0; border-radius:8px; padding:6px 8px; background:#eee5f0; color:var(--ink); font-size:8px; font-weight:800; }
.bank-transfer-order > small { display:block; margin-top:9px; color:var(--muted); font-size:8px; line-height:1.45; }
.premium-purchase-card { background:linear-gradient(135deg,#fff7f4,#f7efff); }
.premium-locked { filter:saturate(.55); }
.premium-locked:after { content:'PREMIUM'; position:absolute; right:18px; bottom:17px; padding:5px 8px; border-radius:999px; background:rgba(27,18,32,.86); color:#fff; font-size:7px; font-weight:900; letter-spacing:.08em; }
.side-nav .premium-locked { opacity:.72; }
.side-nav .premium-locked:after { position:static; margin-left:auto; background:rgba(255,255,255,.13); }

.admin-payment-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; padding:24px 26px; }
.admin-payment-grid form { display:grid; align-content:start; gap:12px; padding:20px; border:1px solid #eee4eb; border-radius:16px; background:#fffaf7; }
.admin-payment-grid h4 { margin:0 0 2px; font:400 20px var(--serif); }
.admin-payment-grid label { display:grid; gap:7px; color:#756a73; font-size:9px; font-weight:800; letter-spacing:.04em; }
.admin-payment-grid input { width:100%; padding:12px 13px; border:1px solid #ded4dc; border-radius:11px; background:#fff; color:var(--ink); font:600 11px var(--sans); }
.admin-payment-grid small { color:#817680; font-size:8px; line-height:1.5; }
.admin-payment-grid .btn { justify-self:start; margin-top:4px; }
.admin-payment-orders { border-top:1px solid #eee6ec; }
.admin-payment-order { display:grid; grid-template-columns:minmax(180px,1fr) auto auto auto; gap:14px; align-items:center; padding:14px 26px; border-bottom:1px solid #eee6ec; }
.admin-payment-order b,.admin-payment-order small { display:block; }
.admin-payment-order small { color:#8b7e89; }
.admin-payment-order code { font:800 10px var(--sans); }
.admin-payment-order .paid { color:#2a9660; font-weight:800; }
.admin-payment-order .pending { color:#b36a24; font-weight:800; }

@media(max-width:760px){
  .admin-payment-grid{grid-template-columns:1fr;padding:16px}
  .admin-payment-order{grid-template-columns:1fr auto;padding:13px 16px}
  .admin-payment-order code{grid-column:1/-1}
  .transfer-detail{grid-template-columns:76px 1fr auto}
}
.danger-text-button { margin-left:auto; padding:10px 4px; border:0; background:transparent; color:#b33e4c; font-weight:800; cursor:pointer; }
.danger-text-button:hover { text-decoration:underline; }
@media(max-width:620px) {
  .mode-setup-wrap { padding:0; align-items:stretch; }
  .mode-setup-modal { width:100%; min-height:100dvh; max-height:none; padding:54px 20px 26px; border-radius:0; }
  .mode-setup-fields { grid-template-columns:1fr; }
  .mode-setup-field.wide { grid-column:auto; }
  .mode-setup-modal > footer { align-items:stretch; flex-direction:column-reverse; }
  .mode-setup-modal > footer .btn { width:100%; }
  .mode-setup-modal > footer .text-button { text-align:center; }
}
