/* User supplied identity: midnight violet, rose light, and warm gold. */
:root{--bg:#100e18;--surface:#1b1623;--surface-2:#251e2c;--text:#f8eff2;--muted:#b8a9b9;--gold:#ecc399;--gold-dark:#382734;--line:#e9b6d91a;--rose:#eda6cb;--lilac:#c4b0e8}
body{background:#090812}
.app-shell{background:radial-gradient(ellipse at 100% 0,#60325522,transparent 32%),var(--bg)}
.prototype-banner{color:#cdb2c5;background:#251b2c;border-bottom:1px solid #e8afd214}
.prototype-banner span{color:#b9a3b2}
.brand-image{display:block;object-fit:cover;width:46px;height:46px;border-radius:14px;border:1px solid #efa4c458;box-shadow:0 0 24px #e95ea321;flex-shrink:0}
.wordmark{font-family:"Songti SC",SimSun,serif;font-size:28px;gap:10px;letter-spacing:.12em;color:#f6d4e5}
.wordmark small{font-family:system-ui,sans-serif;letter-spacing:.16em;color:#be9faf;font-size:11px}
.topbar{margin-bottom:28px}
.topbar .icon-button{color:#e6bfd3;background:#cfa0c00c;border-color:#dba4c42b}
.intro .eyebrow{color:#b59bb4;font-size:11px;letter-spacing:.17em}
.intro h2{font-family:"Songti SC",SimSun,serif;font-size:30px;font-weight:600;letter-spacing:.03em;color:#f7d3e6;text-shadow:0 0 23px #e381b52e;margin-top:8px}
.intro p{color:#cfb4c8;letter-spacing:.07em}
.filter-row{margin:24px 0 18px}
.filters{background:#ffffff04;border:1px solid #dfb4d015;border-radius:25px;padding:3px;gap:2px}
.filter{padding:7px 15px;color:#bfaebe}
.filter.active{background:linear-gradient(115deg,#ecc1d3,#ceb4e7);color:#2d1c30;box-shadow:0 2px 15px #b6729b20}
.character-grid{gap:19px 13px}
.character-card{background:#18131d;border-radius:13px;overflow:hidden;border:1px solid #e3b0cc20;box-shadow:0 8px 24px #0003}
.character-card>a{display:block;height:100%}
.photo-cover{aspect-ratio:4/5;padding:0;border:1px solid color-mix(in srgb,var(--character-accent),transparent 25%);border-radius:12px 12px 0 0;display:block;background:#17141e;box-shadow:inset 0 0 0 1px #ffffff10}
.photo-cover::after{inset:0;border:0;transform:none;border-radius:0;background:linear-gradient(180deg,#09070d0a 25%,#100b1610 43%,#100b16d9 84%,#100b16 100%);z-index:1;pointer-events:none}
.portrait-image{display:block;width:100%;height:100%;overflow:hidden}
.photo-cover>.portrait-image{position:absolute;inset:0;transition:transform .35s ease}
.character-card a:hover .photo-cover>.portrait-image{transform:scale(1.035)}
.photo-cover .cover-top{position:absolute;top:12px;left:12px;right:12px;z-index:2}
.photo-cover .cover-index{font-size:12px;color:#ffefdfd9;text-shadow:0 1px 7px #000}
.official-photo-label{font-size:11px;padding:3px 7px;background:#17111b86;border:1px solid #f5d7e62b;border-radius:5px;color:#f1e4e9;backdrop-filter:blur(5px)}
.photo-caption{position:absolute;z-index:2;bottom:13px;left:14px;right:12px;color:var(--character-accent)}
.photo-roman{font-size:9px;letter-spacing:.18em;color:#ecdce0c7}
.character-card .photo-caption h3,.photo-caption h3{font-family:"Songti SC",SimSun,serif;font-size:27px;letter-spacing:.05em;line-height:1.35;margin:3px 0 6px;font-weight:600;text-shadow:0 0 16px color-mix(in srgb,var(--character-accent),transparent 65%)}
.photo-tag{font-size:12px;border-top:1px solid color-mix(in srgb,var(--character-accent),transparent 35%);display:inline-block;padding-top:6px;letter-spacing:.08em}
.card-description{padding:11px 12px 12px}
.character-card .card-description p{font-size:13px;line-height:1.75;color:#c4b6c4;min-height:45px}
.card-chat-link{display:flex;align-items:center;justify-content:space-between;margin-top:11px;color:#dec4d6;font-size:12px}
.card-chat-link .icon{width:16px;height:16px}
.continue-label{margin:0;padding:0 12px 12px;color:#e9bdca}
.bottom-nav{background:#17121eee;border-top-color:#e7b3d02a;box-shadow:0 -8px 25px #0002}
.bottom-nav a{color:#ab97ac}.bottom-nav a.active{color:#f1badb}.bottom-nav a.active .icon{filter:drop-shadow(0 0 6px #f091c74a)}
.footnote{color:#a990a4;line-height:1.9}
.primary{background:linear-gradient(110deg,#eac2af,#e3afce 65%,#cbb4e4);color:#2c1b2d;box-shadow:0 4px 18px #cc78a115}
.primary:hover{background:linear-gradient(110deg,#f1d0bc,#edc0dc 65%,#d7c2ee)}
.secondary{color:#e3bbd8;background:#d894bd09;border-color:#e7a9cc3b}
.text-button,.auth-links{color:#e4b8d2}
.auth-brand .brand-image{width:66px;height:66px;border-radius:19px}
.auth-brand .eyebrow{color:#d4b6d0}
.demo-notice{background:#2b1e2c;color:#cdb5c5;border-color:#dcacca24}
.auth-page .divider span{background:var(--bg)}
input,textarea{background:#1d1724;border-color:#e3b9d11d}
input::placeholder,textarea::placeholder{color:#9a879c}
.app-icon{background:none;border:none;box-shadow:0 0 42px #d663ab21;padding:0}
.app-icon .brand-image{width:100%;height:100%;border-radius:24px}
.download-hero h2,.section-heading h2{font-family:"Songti SC",SimSun,serif;color:#f0cee0}
.download-card{background:#1b1522;border-color:#dcaac72b}
.detail-cover .photo-cover{aspect-ratio:1/1;max-height:500px;padding:0;border-radius:0}
.detail-cover .photo-cover>.portrait-image{height:100%}
.detail-cover .photo-cover::after{background:linear-gradient(180deg,#120d1605 45%,#100e1855 75%,var(--bg) 100%)}
.detail-cover .photo-caption{display:none}
.detail-cover .cover-top{left:75px;right:24px;top:28px;padding:0}
.detail-body{padding-top:6px}
.detail-name h2{font-family:"Songti SC",SimSun,serif;color:#f4d3e6;font-size:36px}
.description{color:#d9cbd8}
.official-badge{color:#e3bdd8;border-color:#e5a9d03d}
.tags span{background:#b581b515;color:#dfb7d4;border:1px solid #d4a3cd1a}
.greeting{border-color:#cba1d0;background:linear-gradient(90deg,#b786c40c,transparent)}
.greeting p{color:#e2cdda}
.sticky-action{background:#17121ff5;border-top-color:#deb6d023}
.photo-avatar{padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--character-accent),transparent 50%);background:#271f2e}
.photo-avatar .portrait-image{width:100%;height:100%}
.chat-header,.composer,.chat-footer{background:#191321}
.chat-notice{background:#2a1d2d;color:#c7adc3}
.chat-history{background:radial-gradient(ellipse at 100% 50%,#53375010,transparent 70%),#110f19}
.bubble{background:#261e2f;color:#f1e5ef;border-color:#d7acd218}
.user .bubble{background:linear-gradient(125deg,#dbc1d4,#c7b5de);color:#2a1c30}
.send-button{background:linear-gradient(135deg,#f0bfd3,#c7b1e1);color:#301e36}
.typing{background:#261e2f}.typing i{background:#e4b6d4}
.profile-avatar{background:linear-gradient(135deg,#735570,#382b44);border-color:#d69fc64d;color:#f0d3e9}
.balance-preview,.value-hero{background:radial-gradient(ellipse at right top,#82634638,transparent),linear-gradient(125deg,#322330,#251c2c);border-color:#d9b18c39}
.balance-preview strong,.value-hero>strong{color:#f1d3a6}
.menu-row .row-icon{color:#c8aec7}
dialog{background:#211827;border-color:#d9a4cc3d}
.danger-fill{background:#c98d82}
/* Acceptance pass: compact discovery header, keep faces clear of captions. */
.page:has(.character-grid){padding-top:16px}
.page:has(.character-grid) .topbar{margin-bottom:14px}
.intro .eyebrow{display:none}
.intro h2{font-size:28px;margin-top:0}
.intro p{font-size:13px;margin-top:6px}
.filter-row{margin:16px 0 14px}
.filter{min-height:40px;padding:7px 14px}
.character-card .photo-cover{aspect-ratio:auto}
.character-card .photo-cover>.portrait-image{position:relative;inset:auto;height:auto;aspect-ratio:1/1}
.character-card .photo-cover::after{display:none}
.character-card .photo-caption{position:relative;inset:auto;padding:9px 12px 10px;background:linear-gradient(120deg,#211727,#15121c)}
.character-card .photo-roman{display:none}
.character-card .photo-caption h3{font-size:22px;line-height:1.35;margin:0 0 3px}
.character-card .photo-tag{padding-top:0;border:0;font-size:12px;line-height:1.6}
.card-chat-link{display:none}
.card-description{padding:9px 12px 11px}
.character-card .card-description p{font-size:13px;line-height:1.65;min-height:43px}
.character-card .official-photo-label{font-size:10px;padding:2px 5px}
.character-card .photo-cover .cover-top{top:8px;left:9px;right:8px}
html[data-character-theme="male"] .intro h2,html[data-character-theme="male"] .detail-name h2{color:#f1d09d;text-shadow:0 0 23px #c8964325}
html[data-character-theme="male"] .filter.active{background:linear-gradient(115deg,#eac68e,#cdaa76);color:#281e15}
html[data-character-theme="male"] .primary,html[data-character-theme="male"] .send-button{background:linear-gradient(110deg,#eed3a4,#d1af77);color:#281e15}
html[data-character-theme="male"] .user .bubble{background:linear-gradient(125deg,#e4c794,#cdb58c);color:#281e15}
html[data-character-theme="male"] .bottom-nav a.active{color:#ecc792}
@media(min-width:960px){body{background:radial-gradient(ellipse at 5% 25%,#522b532a,transparent 45%),radial-gradient(ellipse at 70% 90%,#49392822,transparent 60%),#090812}.desktop-brand{padding:40px 0}.desktop-brand h1{color:#f1cddd;text-shadow:0 0 32px #e99ac226;font-size:40px;margin:18px 0}.desktop-brand p{color:#bda6bb}.desktop-brand .eyebrow{color:#cda6c5}.desktop-brand-art{width:220px;height:220px;display:block;object-fit:cover;border-radius:32px;margin-bottom:28px;border:1px solid #e9a1c535;box-shadow:0 10px 60px #cb45981b}.desktop-footer{color:#a88b9e}}
@media(max-width:359px){.intro h2{font-size:26px}.filters{padding:2px}.filter{min-width:50px;padding:7px 12px}.photo-caption{left:10px;bottom:11px}.character-card .photo-caption h3{font-size:24px}.card-description{padding:10px}.official-photo-label{font-size:10px}.cover-top .cover-index{display:none}.photo-cover .cover-top{justify-content:flex-end}.photo-roman{font-size:9px}}
