:root{color-scheme:dark;--bg:#100d17;--surface:#211a2b;--surface2:#2e2338;--text:#faf3fc;--muted:#b6a5bb;--accent:#ff5bab;--violet:#9960ed;--line:#34283f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#09080f;color:var(--text);min-height:100dvh}
button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}
a{color:#ff86c7;text-decoration:none}#shell{position:relative;isolation:isolate;min-height:100dvh;max-width:680px;margin:auto;background:var(--bg);overflow:hidden;padding-bottom:calc(78px + env(safe-area-inset-bottom))}
.ambient{pointer-events:none;position:absolute;border-radius:50%;filter:blur(64px);opacity:.25;z-index:-1}
.ambient-one{width:340px;height:280px;background:#9b347b;top:-150px;right:-90px}.ambient-two{width:330px;height:260px;background:#512b91;top:300px;left:-230px}
.topbar{height:73px;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #261c2d}
.brand{display:flex;align-items:center;gap:5px;font-size:24px;font-weight:900;letter-spacing:3px}.brand-icon{font-size:27px;color:var(--accent);margin-right:5px}.brand-dot{color:var(--accent);margin-left:-5px}
.round-icon{width:39px;height:39px;background:#302439;border:1px solid #4a334f;border-radius:50%;color:#ffd0e8;font-size:21px}
.screen{padding:20px 20px 18px}.hidden{display:none!important}
.intro{padding:15px 0 22px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:2.9px;color:#e4a1c7}
.intro h1,.page-heading h1{font-size:clamp(32px,7.7vw,44px);line-height:1.09;margin:15px 0 13px;font-weight:830;letter-spacing:-1.1px}
.intro em{font-style:normal;background:linear-gradient(105deg,#ff81b7,#bd83fc);-webkit-background-clip:text;background-clip:text;color:transparent}
.intro p,.page-heading p{font-size:14px;color:var(--muted);line-height:1.55;max-width:420px;margin:0}
.search-wrap{height:49px;background:#241c2e;border:1px solid #46324d;border-radius:14px;display:flex;align-items:center;padding:0 15px;gap:10px;color:#cb9ebd}
.search-wrap span{font-size:26px;line-height:1}.search-wrap input{border:0;outline:0;background:transparent;color:white;flex:1;min-width:0;font-size:14px}
.search-wrap input::placeholder{color:#928298}.filters{display:flex;overflow:auto;gap:8px;padding:17px 0 10px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}
.chip{border:1px solid #48334f;border-radius:50px;padding:9px 14px;background:#271e32;color:#c9b5d1;font-size:12px;white-space:nowrap}.chip.active{border-color:#ff6eb7;color:#fff;background:linear-gradient(120deg,#e84d96,#a04bc8)}
.section-heading{display:flex;align-items:center;justify-content:space-between;margin:14px 1px 17px}.section-heading h2{font-size:22px;letter-spacing:-.4px;margin:5px 0}.section-heading h2 span{color:#a487a3;font-size:13px}
.heart-small{font-size:30px;color:#ed76b3}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.character-card{min-width:0;border:1px solid #433046;background:#211829;border-radius:17px;overflow:hidden;text-align:left;color:#fff;padding:0;box-shadow:0 10px 24px #0002;transition:transform .15s}
.character-card:active{transform:scale(.985)}.portrait{height:clamp(175px,49vw,263px);position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}
.portrait.rose{background:radial-gradient(ellipse at 40% 20%,#f5afbd99,transparent 58%),linear-gradient(145deg,#ae476e,#4e234d 74%)}
.portrait.amber{background:radial-gradient(ellipse at 50% 10%,#ffda9eaa,transparent 60%),linear-gradient(135deg,#985b4d,#422739)}
.portrait.violet{background:radial-gradient(ellipse at 44% 12%,#a977efb8,transparent 65%),linear-gradient(145deg,#51357b,#201934)}
.portrait.teal{background:radial-gradient(ellipse at 70% 17%,#9be6c3b5,transparent 65%),linear-gradient(135deg,#337a75,#233b55)}
.portrait.blue{background:radial-gradient(ellipse at 55% 10%,#9ddcffa8,transparent 58%),linear-gradient(145deg,#4967a7,#292754)}
.portrait.pink{background:radial-gradient(ellipse at 40% 15%,#ff93dcb8,transparent 65%),linear-gradient(145deg,#9a4b93,#34204e)}
.portrait .glow{position:absolute;width:80%;height:53%;background:#ffd7e180;filter:blur(55px);bottom:-30%;border-radius:100%}
.portrait .hair{position:absolute;width:54%;height:67%;top:15%;border-radius:50% 50% 38% 38%;background:linear-gradient(115deg,#392332,#221524 72%);box-shadow:5px 6px 15px #0003}
.portrait.amber .hair{background:linear-gradient(130deg,#593225,#28161e)}.portrait.violet .hair{background:linear-gradient(125deg,#201426,#5e3558)}
.portrait.teal .hair{background:linear-gradient(120deg,#543829,#241d27)}.portrait.blue .hair{background:linear-gradient(130deg,#c2e1ff,#536898)}
.portrait.pink .hair{background:linear-gradient(125deg,#3a2244,#a76d9e)}
.portrait .face{position:absolute;top:26%;height:41%;width:35%;background:linear-gradient(110deg,#ffd3ba,#e2a28f);border-radius:43% 43% 47% 47%;box-shadow:inset -6px -9px 12px #a55f6a33}
.portrait.teal .face,.portrait.blue .face{background:linear-gradient(115deg,#f9cfb4,#c89083)}.portrait .face:before{content:"";position:absolute;width:70%;height:3px;top:39%;left:15%;background:linear-gradient(90deg,#5e3f47 0 21%,transparent 22% 74%,#5e3f47 75%);border-radius:50%}
.portrait .face:after{content:"";position:absolute;bottom:25%;left:39%;width:23%;height:4px;background:#ad6372;border-radius:50%}
.portrait .body{position:absolute;bottom:-14%;width:85%;height:45%;background:linear-gradient(100deg,#19121f,#4a2b48,#14101e);border-radius:48% 48% 0 0}.portrait.amber .body{background:linear-gradient(100deg,#33232c,#855344,#261722)}.portrait.teal .body{background:linear-gradient(100deg,#1b3436,#4b7470,#1a2731)}
.portrait.blue .body{background:linear-gradient(110deg,#203d6b,#6e8bce,#253156)}.portrait.pink .body{background:linear-gradient(100deg,#321b46,#a3488b,#33192d)}
.portrait .symbol{position:absolute;top:11px;right:12px;font-size:24px;color:#ffecf5;text-shadow:0 2px 12px #0009}
.portrait .fade{position:absolute;bottom:0;width:100%;height:42%;background:linear-gradient(transparent,#1b1421a9)}
.character-info{padding:13px 13px 16px}.character-name{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800}.character-age{color:#bfaabf;font-size:11px;font-weight:500}
.character-tagline{margin:7px 0 10px;color:#bca9c0;font-size:11px;line-height:1.42;min-height:30px}
.pill{display:inline-block;font-size:10px;padding:5px 9px;border-radius:20px;background:#41273f;color:#ffaccd}
.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:calc(71px + env(safe-area-inset-bottom));background:#1b1423ed;border-top:1px solid #413047;display:flex;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom);z-index:4;backdrop-filter:blur(18px)}
.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:33%;background:none;border:0;color:#9687a6}.nav-item span{font-size:27px;line-height:27px}.nav-item small{font-size:10px;font-weight:600}.nav-item.active{color:#ff6ab7}
.page-heading{padding:26px 0 24px}.chat-list{display:flex;flex-direction:column;gap:11px}.chat-entry{display:flex;align-items:center;gap:13px;text-align:left;width:100%;padding:13px;background:#241b30;color:white;border:1px solid #413047;border-radius:15px}
.avatar-mini,.chat-avatar{display:flex;align-items:center;justify-content:center;flex:none;color:white;border:1px solid #ffffff25;background:linear-gradient(135deg,#bd4d91,#553a92);border-radius:50%;font-size:23px;width:53px;height:53px}.chat-entry strong{display:block}.chat-entry small{display:block;color:var(--muted);margin-top:4px}.chat-entry .arrow{margin-left:auto;color:#d888ba}
.profile-tile{display:flex;gap:14px;align-items:center;padding:20px;background:#291b32;border:1px solid #4c3454;border-radius:17px}.profile-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-size:30px;background:#6c376b}
.profile-tile small{display:block;color:var(--muted);margin-top:5px}.info-card{border:1px solid var(--line);background:#201927;border-radius:17px;margin-top:17px;padding:20px}.info-card h3{margin:0 0 9px}.info-card p{font-size:13px;line-height:1.6;color:var(--muted)}.legal-links{display:flex;gap:20px;margin-top:18px;font-size:13px}
.danger{border:1px solid #953758;background:#431e32;color:#ffb4c8;border-radius:14px;padding:14px;margin-top:22px;width:100%}
.chat-screen{position:absolute;top:74px;bottom:0;left:0;right:0;padding:0;display:flex;flex-direction:column;z-index:3;background:#130f1c}
.chat-top{height:72px;flex-shrink:0;display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid #33263d}.back{border:0;background:none;color:#e5c7df;font-size:32px;width:30px}.chat-avatar{width:45px;height:45px;font-size:24px}.chat-meta{display:flex;flex-direction:column;gap:3px}.chat-meta small{font-size:10px;color:#a58caa}.chat-status{margin-left:auto;color:#fb80bd;font-size:22px}
.messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:13px;padding:20px 14px 20px;scrollbar-width:thin}
.bubble{max-width:88%;padding:13px 15px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;border-radius:16px}.bubble.assistant{align-self:flex-start;background:#32243e;border:1px solid #513453;border-bottom-left-radius:4px}.bubble.user{align-self:flex-end;background:linear-gradient(115deg,#a8498d,#843c9e);border-bottom-right-radius:4px}.bubble.pending{opacity:.55}
.composer{display:flex;gap:8px;align-items:center;background:#201826;padding:8px 12px}.composer input{flex:1;min-width:0;border:1px solid #514057;background:#31253a;border-radius:24px;padding:13px 16px;outline:0;color:white;font-size:14px}.composer button{width:42px;height:42px;border:0;border-radius:50%;background:linear-gradient(135deg,#fa65a9,#a84deb);color:white;font-size:20px}.chat-disclaimer{padding:4px 0 10px;text-align:center;font-size:9px;color:#8e7c96}
.modal{position:fixed;inset:0;z-index:10;background:#0d0913ed;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.modal-box{max-width:420px;width:100%;border:1px solid #5f345c;border-radius:24px;background:radial-gradient(circle at 50% -10%,#5a285377,transparent 60%),#211728;padding:26px;box-shadow:0 20px 80px #0008;text-align:center}.gate-logo{font-size:41px;color:#ff5bac}.gate-brand{justify-content:center;margin:0 0 18px}.modal-box h2{font-size:25px;line-height:1.15;margin:13px 0}.modal-box p{font-size:13px;line-height:1.5;color:#bfa9c2;margin-bottom:21px}
.check{text-align:left;display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.5;margin:13px 0}.check input{accent-color:#f660a8;width:17px;height:17px;flex:none}.primary{margin-top:18px;border:0;border-radius:13px;background:linear-gradient(115deg,#ff65ac,#9e4be7);color:#fff;padding:15px 16px;width:100%;font-weight:800;display:flex;justify-content:space-between}.muted{display:block;color:#98889d;font-size:10px;line-height:1.5;margin-top:14px}
.toast{position:fixed;bottom:96px;left:50%;transform:translateX(-50%);max-width:90vw;z-index:20;padding:12px 20px;border-radius:12px;background:#4c2b4b;border:1px solid #965488;color:#fff;text-align:center;font-size:13px;box-shadow:0 8px 25px #0005}
@media(min-width:680px){.portrait{height:270px}.intro h1{font-size:44px}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}

.bubble.assistant .roleplay-action{font-style:italic;color:#d6aed8}
