:root{
  --pink:#ff6b8a;--pink-dark:#e85577;--pink-soft:#fff0f3;
  --violet:#7c6bff;--violet-soft:#f0ecff;--mint:#21b6a8;--mint-soft:#eaf9f6;
  --gold:#ffb800;--gold-soft:#fff8e1;--ink:#2d1b3e;--muted:#756680;
  --hint:#a89bb5;--line:#eee7f2;--bg:#fff8f9;--surface:#fff;--danger:#e05268;
  --shadow:0 14px 36px rgba(45,27,62,.10);--nav-width:104px;--rail-width:300px;
  font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  color:var(--ink);background:var(--bg);font-synthesis:none;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body{min-height:100vh;min-height:100dvh;letter-spacing:0;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;letter-spacing:0}button{border:0;cursor:pointer;touch-action:manipulation}img{display:block;max-width:100%}a{color:inherit}.hidden{display:none!important}
.btn{min-height:44px;padding:0 18px;border-radius:8px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.btn:hover{filter:brightness(.98);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{color:#fff;background:linear-gradient(120deg,var(--pink),var(--violet));box-shadow:0 8px 20px rgba(124,107,255,.2)}.btn.secondary{color:var(--violet);background:#fff;border:1px solid #d8cdfe}.btn.accent{color:#fff;background:var(--mint)}.btn.danger{color:#fff;background:var(--danger)}.btn.compact{min-height:38px;padding:0 13px}.btn.wide{width:100%}.btn svg,.icon-btn svg,.nav-item svg,.mobile-nav svg{width:20px;height:20px;stroke-width:2}.text-btn{padding:4px;background:transparent;color:var(--violet);font-size:13px;font-weight:800}.icon-btn{width:40px;height:40px;border-radius:8px;background:#fff;color:var(--muted);display:inline-grid;place-items:center;border:1px solid var(--line)}.icon-btn:hover{color:var(--violet);border-color:#d8cdfe}.eyebrow{font-size:12px;color:var(--violet);font-weight:800}.brand-mark{width:58px;height:58px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:27px;font-weight:900;background:linear-gradient(135deg,var(--pink),var(--violet));box-shadow:0 12px 30px rgba(124,107,255,.25)}.brand-mark.small{width:40px;height:40px;font-size:19px}
.overlay{position:fixed;inset:0;z-index:1000;background:rgba(34,20,48,.48);display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}.dialog{width:min(520px,100%);max-height:min(88vh,780px);overflow:auto;background:#fff;border-radius:8px;box-shadow:0 28px 90px rgba(28,16,40,.28);padding:26px;position:relative}.dialog h1,.dialog h2{margin:0 0 10px;line-height:1.25}.dialog p{color:var(--muted);line-height:1.75}.dialog-badge{display:table;margin:0 auto 14px;padding:6px 12px;border-radius:999px;background:var(--violet);color:#fff;font-size:12px;font-weight:800}.privacy-dialog{text-align:center}.privacy-points{display:grid;gap:8px;margin:18px 0;text-align:left}.privacy-points div{display:flex;gap:10px;align-items:flex-start;padding:12px;background:var(--violet-soft);border-radius:8px;color:#51455d;font-size:13px;line-height:1.55}.privacy-points svg{width:19px;flex:none;color:var(--violet)}.policy-link{display:inline-block;margin-bottom:16px;color:var(--violet);font-weight:800;font-size:14px}.dialog-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}.app-dialog{width:min(680px,100%);padding-top:52px}.modal-close{position:absolute;right:14px;top:14px}.toast{position:fixed;z-index:2000;left:50%;bottom:32px;transform:translateX(-50%);max-width:min(480px,calc(100vw - 32px));padding:12px 18px;border-radius:8px;background:#2d1b3e;color:#fff;box-shadow:var(--shadow);font-size:14px}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr);background:#fff}.auth-showcase{min-height:100vh;padding:44px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(150deg,#fff4f7 0%,#f5f1ff 55%,#eaf9f6 100%);overflow:hidden}.brand-lockup{display:flex;align-items:center;gap:14px}.brand-lockup strong{display:block;font-size:24px}.brand-lockup small{display:block;margin-top:4px;color:var(--muted)}.auth-role-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.auth-role{position:relative;min-height:58vh;border-radius:8px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.auth-role:nth-child(2){min-height:68vh}.auth-role img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.auth-role::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(31,18,42,.82))}.auth-role span{position:absolute;z-index:1;left:18px;right:18px;bottom:18px;color:#fff}.auth-role strong{font-size:19px}.auth-role small{display:block;margin-top:5px;opacity:.82}.auth-panel{display:grid;place-items:center;padding:36px;background:#fff}.auth-box{width:min(420px,100%)}.auth-heading{margin-bottom:20px}.auth-heading h1{margin:5px 0 0;font-size:34px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);padding:4px;background:#f7f2fa;border-radius:8px;margin-bottom:20px}.segmented button{min-height:38px;background:transparent;color:var(--muted);border-radius:6px;font-size:13px;font-weight:800}.segmented button.active{background:#fff;color:var(--violet);box-shadow:0 3px 10px rgba(45,27,62,.08)}.field{display:grid;gap:7px;margin-bottom:14px}.field>span{font-size:13px;color:var(--muted);font-weight:800}.field input,.field textarea,.field select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;padding:0 13px;background:#fbf9fc;color:var(--ink);outline:none}.field textarea{padding:12px;min-height:110px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#b8adff;box-shadow:0 0 0 3px rgba(124,107,255,.1)}.field-inline{display:grid;grid-template-columns:1fr auto;gap:8px}.auth-options{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 18px;color:var(--muted);font-size:12px}.auth-options label{display:flex;align-items:center;gap:6px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--nav-width) minmax(0,1fr) var(--rail-width)}.side-nav{position:sticky;top:0;height:100vh;padding:22px 14px;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);z-index:20}.side-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-size:18px}.nav-list{display:grid;gap:8px;margin-top:36px}.nav-item{position:relative;height:64px;border-radius:8px;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:800}.nav-item.active{color:#fff;background:linear-gradient(145deg,var(--pink),var(--violet));box-shadow:0 9px 22px rgba(124,107,255,.22)}.nav-dot{position:absolute;right:20px;top:11px;width:8px;height:8px;border-radius:50%;background:#ffcc00;border:2px solid #fff}.side-footer{margin-top:auto}.mini-profile{width:100%;display:grid;justify-items:center;gap:5px;background:transparent;color:var(--muted);font-size:11px}.mini-profile img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--pink-soft)}
.workspace{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{height:86px;padding:17px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,248,249,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:15;backdrop-filter:blur(14px)}.topbar h1{font-size:23px;margin:3px 0 0}.top-actions{display:flex;align-items:center;gap:8px}.view-root{padding:22px 26px 40px;min-width:0;flex:1}.right-rail{height:100vh;position:sticky;top:0;overflow:auto;padding:22px 18px;background:#fff;border-left:1px solid var(--line)}.rail-profile{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.rail-profile img{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--pink-soft)}.rail-profile strong,.rail-profile span{display:block}.rail-profile span{margin-top:4px;font-size:12px;color:var(--muted)}.rail-section{padding:20px 0;border-bottom:1px solid var(--line)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{font-size:15px;margin:0}.rail-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-tile{padding:12px;border-radius:8px;background:var(--violet-soft)}.stat-tile:nth-child(2){background:var(--mint-soft)}.stat-tile:nth-child(3){background:var(--gold-soft)}.stat-tile strong{display:block;font-size:18px}.stat-tile span{font-size:11px;color:var(--muted)}.rail-roles{display:grid;gap:8px}.rail-role{display:grid;grid-template-columns:20px 38px minmax(0,1fr);align-items:center;gap:8px;width:100%;padding:7px;border-radius:8px;background:#fbf9fc;text-align:left;color:var(--ink)}.rail-role>b{color:var(--pink);font-size:14px;text-align:center}.rail-role img{width:38px;height:38px;border-radius:50%;object-fit:cover}.rail-role strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-role strong .vip-badge{margin-left:4px;vertical-align:middle}.rail-role span span{display:block;color:var(--muted);font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-empty{padding:14px 8px;color:var(--hint);font-size:12px}.mobile-nav{display:none}
.page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-toolbar .segmented{margin:0;min-width:min(480px,100%)}.gender-tabs{grid-template-columns:repeat(4,minmax(76px,1fr));min-width:min(100%,360px)}.search{position:relative;min-width:220px}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;color:var(--hint)}.search input{width:100%;height:42px;padding:0 12px 0 40px;border:1px solid var(--line);border-radius:8px;outline:none}.discover-load-more{grid-column:1/-1;padding:18px;text-align:center;color:var(--hint);font-size:12px}.empty-state{min-height:320px;display:grid;place-items:center;text-align:center;color:var(--muted)}.empty-state svg{width:46px;height:46px;color:#c6bce0;margin:auto}.empty-state h2{font-size:18px;color:var(--ink);margin:12px 0 6px}.loading{min-height:280px;display:grid;place-items:center;color:var(--muted)}.spinner{width:26px;height:26px;border:3px solid #e9e3ee;border-top-color:var(--violet);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.session-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.select-all{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--ink);cursor:pointer}.select-all input,.session-check input{width:18px;height:18px;accent-color:var(--violet)}.selection-count{color:var(--muted);font-size:12px}.session-toolbar .btn{margin-left:auto}.session-list{display:grid;gap:9px}.session-card{display:grid;grid-template-columns:28px minmax(0,1fr) 40px;gap:8px;align-items:center;padding:10px;background:#fff;border:1px solid var(--line);border-radius:8px;text-align:left}.session-card.selected{border-color:#c6b8ff;background:#fcfbff}.session-card:hover{border-color:#d8cdfe;box-shadow:0 8px 22px rgba(45,27,62,.07)}.session-check{display:grid;place-items:center;cursor:pointer;height:100%}.session-open{min-width:0;width:100%;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:13px;align-items:center;background:transparent;text-align:left;color:var(--ink)}.session-open img{width:58px;height:58px;border-radius:50%;object-fit:cover;background:var(--pink-soft)}.session-main{min-width:0}.session-main strong{display:flex;gap:8px;align-items:center}.session-main p{margin:6px 0 0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta{text-align:right;font-size:11px;color:var(--hint)}.session-meta b{display:block;margin-top:7px;color:var(--pink);font-size:12px}.session-delete{justify-self:end}.vip-badge{display:inline-flex;align-items:center;height:21px;padding:0 7px;border-radius:5px;background:var(--gold);color:#653d00;font-size:10px;font-weight:900}.vip-badge.expired{background:#2b2f38;color:#d9dde5}
.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.role-card{position:relative;min-height:330px;border-radius:8px;overflow:hidden;background:#fff;border:1px solid var(--line);text-align:left}.role-card>img,.role-avatar-button img{width:100%;aspect-ratio:1/1;height:auto;object-fit:cover;background:var(--pink-soft)}.role-avatar-button{display:block;width:100%;padding:0;background:var(--pink-soft);line-height:0}.role-avatar-button:focus-visible{outline:3px solid var(--violet);outline-offset:-3px}.role-card-body{padding:13px}.role-card h3{margin:0;font-size:17px}.role-card p{height:40px;margin:7px 0 10px;color:var(--muted);font-size:12px;line-height:1.65;overflow:hidden}.story-role-card{min-height:470px}.story-role-card .role-card-body p{height:auto;min-height:40px}.tags{display:flex;gap:5px;flex-wrap:wrap}.tag{padding:4px 7px;border-radius:5px;background:var(--pink-soft);color:var(--pink-dark);font-size:10px;font-weight:800}.tag.mint{background:var(--mint-soft);color:#168a7f}.rank-badge{position:absolute;top:10px;left:10px;min-width:30px;height:30px;border-radius:6px;display:grid;place-items:center;background:#fff;color:var(--pink);font-weight:900;box-shadow:0 5px 15px rgba(45,27,62,.16)}.challenge-info{display:grid;gap:7px;margin-top:12px;padding:10px;border-radius:8px;background:#fff8fb;border:1px solid #ffe1e8}.challenge-info div{display:grid;gap:2px}.challenge-info b{color:var(--pink-dark);font-size:11px}.challenge-info span{color:var(--muted);font-size:11px;line-height:1.55}.challenge-info small{color:var(--violet);font-size:11px;font-weight:800}.challenge-progress{height:6px;background:#eee8f3;border-radius:999px;overflow:hidden;margin-top:10px}.challenge-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--violet))}
.moment-list{max-width:760px;margin:auto;display:grid;gap:12px}.moment-card{padding:16px;background:#fff;border:1px solid var(--line);border-radius:8px}.moment-author{display:flex;align-items:center;gap:10px}.moment-author img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--pink-soft)}.moment-author strong,.moment-author span{display:block}.moment-author span{font-size:11px;color:var(--hint);margin-top:4px}.moment-text{margin:13px 0;white-space:pre-wrap;line-height:1.75;color:#4e405a}.moment-media{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.moment-media img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px}.moment-actions{display:flex;gap:10px;margin-top:12px}.moment-actions button{display:flex;align-items:center;gap:6px;background:#fff6f8;color:var(--muted);height:34px;padding:0 12px;border-radius:6px}.moment-actions button.liked{color:var(--pink);background:var(--pink-soft)}
.profile-hero{position:relative;margin:-22px -26px 22px;padding:34px 30px 44px;background:linear-gradient(120deg,var(--pink),var(--violet));color:#fff}.profile-main{display:flex;align-items:center;gap:16px}.profile-main img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.85)}.profile-main h2{margin:0;font-size:24px}.profile-main p{margin:7px 0 0;color:#f8efff}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:-42px;position:relative;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.profile-stat{padding:18px;text-align:center}.profile-stat+ .profile-stat{border-left:1px solid var(--line)}.profile-stat strong{display:block;font-size:20px;color:var(--violet)}.profile-stat span{font-size:12px;color:var(--muted)}.menu-section{margin-top:20px}.menu-section h2{font-size:15px}.menu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.menu-item{min-height:96px;padding:14px;border-radius:8px;border:1px solid var(--line);background:#fff;text-align:left;color:var(--ink)}.menu-item:hover{border-color:#d8cdfe}.menu-item svg{width:22px;color:var(--violet)}.menu-item:nth-child(3n+2) svg{color:var(--mint)}.menu-item:nth-child(3n) svg{color:var(--pink)}.menu-item strong{display:block;margin-top:10px;font-size:13px}.menu-item span{display:block;margin-top:4px;color:var(--hint);font-size:10px;line-height:1.45}
.subpage{max-width:900px;margin:auto}.back-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}.back-row h2{margin:0;font-size:20px}.data-list{display:grid;gap:10px}.data-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px}.data-row strong,.data-row span{display:block}.data-row span{margin-top:4px;color:var(--muted);font-size:12px}.plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.plan-card{padding:18px;border:1px solid var(--line);border-radius:8px;background:#fff}.plan-card.featured{border-color:#ffb7c6;box-shadow:0 12px 28px rgba(255,107,138,.12)}.plan-card h3{margin:0}.plan-price{font-size:28px;font-weight:900;color:var(--pink);margin:12px 0}.plan-meta{min-height:38px;color:var(--muted);font-size:12px;line-height:1.6}.plan-card .btn{width:100%;margin-top:14px}.form-panel{padding:18px;background:#fff;border:1px solid var(--line);border-radius:8px}.notice{padding:12px;border-radius:8px;background:var(--mint-soft);color:#27766f;font-size:13px;line-height:1.6}.notice.warn{background:var(--gold-soft);color:#775600}.notice.danger{background:#fff0f2;color:#9a3448}.progress{height:8px;border-radius:999px;background:#eee8f3;overflow:hidden}.progress i{display:block;height:100%;background:var(--mint)}
.chat-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start;max-width:1080px;margin:0 auto}.chat-view{height:min(calc(100dvh - 140px),920px);width:auto;aspect-ratio:9/16;min-height:0;display:grid;grid-template-rows:auto 1fr auto;position:relative;margin:0 auto;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f8f4ff;box-shadow:var(--shadow)}.chat-background{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;background:#2d1b3e;opacity:.9;filter:none}.chat-background-shade{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(31,18,42,.12),rgba(31,18,42,.24));pointer-events:none}.chat-header,.chat-composer,.message-list{position:relative;z-index:1}.chat-header{min-height:68px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.86);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.chat-person{display:flex;align-items:center;gap:10px;min-width:0}.chat-person img{width:44px;height:44px;border-radius:50%;object-fit:cover}.chat-person strong,.chat-person span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-person span{font-size:11px;color:var(--muted);margin-top:3px}.chat-header .top-actions{flex:none}.chat-header .icon-btn.music-playing{color:var(--mint);border-color:#a8e5dc;background:var(--mint-soft)}.message-list{overflow:auto;padding:20px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}.message{max-width:min(82%,560px);display:flex;gap:8px;align-items:flex-end}.message.user{align-self:flex-end;flex-direction:row-reverse}.message.assistant{align-self:flex-start}.message img.avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:none}.bubble{padding:10px 13px;border-radius:8px;background:rgba(255,255,255,.94);color:#453750;box-shadow:0 4px 14px rgba(45,27,62,.07);line-height:1.65;white-space:pre-wrap;font-size:14px}.message.user .bubble{background:linear-gradient(120deg,var(--bubble-start,#ff6b8a),var(--bubble-end,#ff8ca4));color:var(--bubble-text,#fff);opacity:var(--bubble-alpha,.84);border:1px solid color-mix(in srgb,var(--bubble-stroke,#fff) 42%,transparent)}.bubble audio{width:240px;max-width:100%}.sticker-bubble img{width:120px;max-height:120px;object-fit:contain}.transfer-bubble{min-width:220px;background:#fff4d6;border-left:4px solid var(--gold)}.chat-composer{padding:12px;background:rgba(255,255,255,.94);border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:end}.chat-composer textarea{min-height:42px;max-height:120px;resize:none;border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none}.chat-composer textarea:focus{border-color:#b8adff}.typing{display:flex;gap:4px;padding:12px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--hint);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)}}
.chat-side-panel{display:grid;gap:12px;min-width:0}.chat-side-card{padding:15px;background:#fff;border:1px solid var(--line);border-radius:8px}.chat-side-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.chat-side-heading>span,.chat-side-heading>h3{font-size:13px;font-weight:900}.chat-side-heading h3{margin:0}.chat-side-identity{display:flex;align-items:center;gap:10px}.chat-side-identity img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:var(--pink-soft)}.chat-side-identity strong,.chat-side-identity span{display:block}.chat-side-identity span{margin-top:4px;color:var(--muted);font-size:11px}.chat-intimacy{margin-top:14px}.chat-intimacy .section-title{margin-bottom:7px}.chat-intimacy .section-title strong{font-size:12px}.chat-intimacy .section-title b{color:var(--pink)}.chat-intimacy small{display:block;margin-top:7px;color:var(--hint);font-size:11px}.chat-side-copy{margin:0;color:var(--muted);font-size:12px;line-height:1.7;white-space:pre-wrap}.setting-preview{max-height:145px;overflow:auto;margin-bottom:12px}.chat-side-tip{display:flex;gap:9px;align-items:flex-start;color:var(--muted);font-size:11px;line-height:1.6;background:var(--violet-soft);border-color:#ddd6ff}.chat-side-tip svg{flex:none;width:18px;color:var(--violet)}.chat-settings-dialog h2{margin-bottom:8px}.settings-block{padding:14px 0;border-top:1px solid var(--line)}.settings-block h3{margin:0;font-size:14px}.bubble-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bubble-option{min-height:72px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;display:grid;grid-template-columns:26px 1fr;align-items:center;gap:5px;position:relative}.bubble-option.active{border-color:var(--pink);box-shadow:0 0 0 2px rgba(255,107,138,.12)}.bubble-option>span{width:24px;height:24px;border-radius:50%}.bubble-option strong{font-size:11px;line-height:1.35}.bubble-option small{grid-column:2;color:var(--gold);font-size:10px;font-weight:900}.bubble-option.locked{opacity:.6}.settings-list{display:grid;gap:9px;max-width:900px;margin:auto}.settings-row{width:100%;min-height:70px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);border-radius:8px;text-align:left;color:var(--ink)}.settings-row:hover{border-color:#d8cdfe}.settings-row>span{display:flex;align-items:center;gap:12px}.settings-row>span>svg{width:22px;color:var(--violet)}.settings-row small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.settings-row>svg{width:18px;color:var(--hint)}.ranking-list{display:grid;gap:9px}.ranking-row{display:grid;grid-template-columns:34px 44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:8px}.ranking-number{font-size:18px;color:var(--pink);text-align:center}.ranking-row img{width:44px;height:44px;border-radius:50%;object-fit:cover}.ranking-row div{min-width:0}.ranking-row div strong{margin-right:6px}.ranking-row div span{display:block;margin-top:4px;color:var(--muted);font-size:11px}.ranking-score{color:var(--violet);text-align:right}.ranking-score small{display:block;color:var(--hint);font-size:10px;font-weight:600}.download-panel{max-width:460px;margin:auto;padding:28px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:8px}.download-icon{width:72px;height:72px;margin:0 auto 16px;display:grid;place-items:center;border-radius:18px;background:var(--violet-soft);color:var(--violet)}.download-icon svg{width:34px;height:34px}.download-panel h2{margin:0}.download-panel p{color:var(--muted);line-height:1.7}.download-meta{display:flex;justify-content:space-between;padding:13px 0;margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.download-meta strong{color:var(--violet)}
.character-profile-page{max-width:920px;margin:0 auto}.character-profile-hero{position:relative;min-height:360px;padding:18px 24px 24px;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#2d1b3e,#7c6bff);color:#fff;box-shadow:var(--shadow)}.character-profile-cover-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4}.character-profile-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,12,35,.32),rgba(21,12,35,.88))}.character-profile-topbar,.character-profile-identity,.character-profile-actions{position:relative;z-index:1}.character-profile-topbar{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:12px}.character-profile-topbar strong{text-align:center;font-size:16px}.icon-btn.light{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);color:#fff}.icon-btn.light:hover{background:rgba(255,255,255,.24);color:#fff;border-color:rgba(255,255,255,.48)}.character-profile-identity{display:flex;align-items:center;gap:16px;margin-top:52px}.character-profile-identity img{width:104px;height:104px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.92);background:var(--pink-soft);box-shadow:0 10px 28px rgba(0,0,0,.18)}.profile-kicker{font-size:12px;opacity:.8}.character-profile-identity h2{margin:5px 0 0;font-size:28px}.character-profile-identity p{margin:6px 0 0;color:rgba(255,255,255,.82)}.character-profile-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin-top:30px}.character-profile-actions .btn.secondary{color:#fff;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35)}.character-profile-actions .btn.secondary:hover{background:rgba(255,255,255,.22)}.character-profile-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:14px 0;padding:4px;border-radius:8px;background:#f7f2fa}.character-profile-tabs button{min-height:40px;border-radius:6px;background:transparent;color:var(--muted);font-weight:800;font-size:13px}.character-profile-tabs button.active{background:#fff;color:var(--violet);box-shadow:0 3px 10px rgba(45,27,62,.08)}.character-profile-panel{min-height:260px}.character-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-detail-card{padding:16px;background:#fff;border:1px solid var(--line);border-radius:8px}.profile-detail-card>span{display:block;color:var(--violet);font-size:12px;font-weight:800}.profile-detail-card p{margin:10px 0 0;color:var(--muted);line-height:1.75;white-space:pre-wrap}.profile-intimacy-value{display:block;margin:10px 0 14px;color:var(--pink);font-size:30px}.profile-intimacy-value small,.intimacy-summary small{font-size:12px;color:var(--muted);font-weight:600}.character-profile-list{display:grid;gap:10px}.profile-section-heading{font-size:15px;margin:22px 0 10px}.intimacy-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.intimacy-summary>div{padding:18px;border-radius:8px;background:var(--pink-soft)}.intimacy-summary>div+div{background:var(--violet-soft)}.intimacy-summary span{display:block;color:var(--muted);font-size:12px}.intimacy-summary strong{display:inline-block;margin-top:7px;color:var(--ink);font-size:28px}.intimacy-row{display:grid;grid-template-columns:32px 42px minmax(0,1fr) auto;align-items:center;padding:10px 13px}.intimacy-row img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--pink-soft)}.intimacy-row div{min-width:0;margin-left:10px}.intimacy-row div span{display:block;margin-top:3px;color:var(--hint);font-size:11px}.character-sheet{margin:-52px -26px -26px}.character-cover{position:relative;height:310px;overflow:hidden}.character-cover>img{width:100%;height:100%;object-fit:cover}.character-cover::after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(34,20,48,.85))}.character-cover-info{position:absolute;z-index:1;left:24px;right:24px;bottom:20px;color:#fff}.character-cover-info h2{font-size:26px}.character-body{padding:20px 24px 24px}.character-body p{color:var(--muted)}.character-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.call-screen{text-align:center}.call-avatar{width:112px;height:112px;border-radius:50%;object-fit:cover;margin:4px auto 14px;border:5px solid var(--pink-soft)}.call-status{color:var(--muted);min-height:24px}.call-controls{display:flex;justify-content:center;gap:16px;margin-top:20px}.call-controls .icon-btn{width:58px;height:58px;border-radius:50%}.call-controls .recording{background:var(--danger);color:#fff}.call-transcript{margin-top:18px;max-height:220px;overflow:auto;text-align:left;padding:12px;background:#f8f4ff;border-radius:8px;font-size:13px;line-height:1.65}
.moment-author{background:transparent;text-align:left;color:var(--ink)}
@media(max-width:1180px){:root{--rail-width:0px}.right-rail{display:none}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px) and (min-width:761px){.chat-layout{grid-template-columns:minmax(0,1fr) 250px}.chat-view{height:min(calc(100dvh - 140px),820px)}}
@media(max-width:760px){.auth-screen{display:block;background:#fff}.auth-showcase{min-height:33vh;padding:24px}.auth-role-strip{grid-template-columns:repeat(3,1fr);gap:7px}.auth-role,.auth-role:nth-child(2){min-height:22vh}.auth-role span{left:8px;right:8px;bottom:8px}.auth-role strong{font-size:13px}.auth-role small{display:none}.auth-panel{padding:24px 20px 34px}.auth-heading h1{font-size:27px}.app-shell{display:block;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.side-nav{display:none}.topbar{height:72px;padding:12px 16px}.topbar h1{font-size:20px}.top-actions .btn span{display:none}.view-root{padding:14px 14px 28px}.mobile-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line)}.mobile-nav button{background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px}.mobile-nav button.active{color:var(--pink)}.page-toolbar{align-items:stretch;flex-direction:column}.page-toolbar .segmented,.search{min-width:0;width:100%}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.role-card{min-height:270px}.story-role-card{min-height:0}.role-card>img,.role-avatar-button img{height:auto}.role-card-body{padding:10px}.role-card p{height:36px}.story-role-card .role-card-body p{height:auto}.challenge-info{padding:8px}.profile-hero{margin:-14px -14px 18px;padding:26px 18px 38px}.profile-main img{width:68px;height:68px}.profile-main h2{font-size:21px}.profile-stats{grid-template-columns:repeat(2,1fr);margin-top:-36px}.profile-stat:nth-child(3){border-left:0;border-top:1px solid var(--line)}.profile-stat:nth-child(4){border-top:1px solid var(--line)}.menu-grid{grid-template-columns:repeat(3,1fr);gap:8px}.menu-item{min-height:88px;padding:11px}.plan-grid{grid-template-columns:1fr}.session-toolbar{flex-wrap:wrap}.session-toolbar .btn{margin-left:0}.session-open{grid-template-columns:48px minmax(0,1fr)}.session-open img{width:48px;height:48px}.session-meta{display:none}.chat-layout{display:block}.chat-side-panel{display:none}.chat-view{width:100%;height:calc(100dvh - 158px);min-height:480px;aspect-ratio:auto;margin:-4px;border-left:0;border-right:0;border-radius:0}.chat-background{object-fit:contain}.message{max-width:88%}.message-list{padding:14px 10px}.chat-composer{grid-template-columns:auto 1fr auto;padding:9px}.chat-composer .btn{padding:0 12px}.chat-header .top-actions{gap:4px}.chat-header .top-actions .icon-btn{width:36px;height:36px}.character-profile-hero{min-height:410px;padding:14px 16px 18px}.character-profile-identity{margin-top:42px}.character-profile-identity img{width:82px;height:82px}.character-profile-identity h2{font-size:23px}.character-profile-actions{grid-template-columns:1.2fr 1fr 1fr;gap:6px;margin-top:24px}.character-profile-actions .btn{padding:0 8px;font-size:11px}.character-profile-actions .btn svg{width:16px;height:16px}.character-profile-tabs{overflow:auto;grid-template-columns:repeat(4,minmax(86px,1fr))}.character-profile-grid{grid-template-columns:1fr}.intimacy-summary{gap:8px}.intimacy-row{grid-template-columns:26px 38px minmax(0,1fr) auto}.intimacy-row img{width:38px;height:38px}.moment-list{gap:9px}.dialog{padding:22px 18px}.app-dialog{padding-top:50px}.character-sheet{margin:-50px -18px -22px}.dialog-actions{grid-template-columns:1fr 1.15fr}.bubble-picker{grid-template-columns:repeat(2,1fr)}.download-panel{padding:22px 18px}}
@media(max-width:420px){.role-grid{grid-template-columns:1fr 1fr}.role-card>img,.role-avatar-button img{height:auto}.menu-grid{grid-template-columns:repeat(2,1fr)}.auth-role-strip{gap:5px}.auth-role,.auth-role:nth-child(2){min-height:20vh}.brand-lockup small{display:none}.segmented button{font-size:12px}.profile-main{align-items:flex-start}.dialog-actions{grid-template-columns:1fr}.chat-header .top-actions .icon-btn{display:inline-grid;width:34px;height:34px}.chat-person{max-width:calc(100% - 160px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.chat-background{object-fit:cover!important;background:#f8f4ff}
.gender-tabs{grid-template-columns:repeat(4,minmax(76px,1fr));min-width:min(100%,360px)}
.discover-tabs{grid-template-columns:repeat(4,minmax(82px,1fr));min-width:min(100%,480px)}
.discover-load-more{grid-column:1/-1;padding:18px;text-align:center;color:var(--hint);font-size:12px}
.profile-primary-actions{display:flex;justify-content:flex-end;margin:14px 0 2px}
