:root{--bg: #10101a;--bg-elev: #1f1c35;--bg-elev-2: #2b2749;--border: #3c3763;--text: #f4eff8;--text-muted: #b4aecb;--text-faint: #786f98;--sheen: rgba(255, 255, 255, .07);--glow: 0 6px 22px rgba(255, 92, 154, .32);--metal-rim: linear-gradient(160deg, rgba(255, 214, 234, .6), rgba(255, 92, 154, .22) 35%, rgba(167, 139, 250, .18) 65%, rgba(196, 178, 255, .5));--metal-gun: linear-gradient(180deg, #5a3f9e 0%, #3f2c80 46%, #2e1f63 54%, #3a2878 82%, #4c3591 100%);--metal-gun-hover: linear-gradient(180deg, #6a4bb6 0%, #4b3594 46%, #372574 54%, #45308b 82%, #5a40a6 100%);--metal-pink: linear-gradient(180deg, #ffc2da 0%, #ff7fb0 18%, #f0478a 48%, #d72f70 54%, #ff5c9a 80%, #ff8fbb 100%);--metal-violet: linear-gradient(180deg, #e2d6ff 0%, #b9a2ff 18%, #8f6ff0 48%, #7a5ad8 54%, #a78bfa 80%, #c4b2ff 100%);--metal-rose-violet: linear-gradient(180deg, rgba(255, 255, 255, .28) 0%, rgba(255, 255, 255, .04) 46%, rgba(0, 0, 0, .14) 54%, rgba(255, 255, 255, .08) 100%), linear-gradient(100deg, #ff6fa6 0%, #d85bc0 50%, #9b7cf6 100%);--metal-inset: inset 0 1px 0 rgba(255, 255, 255, .45), inset 0 -2px 4px rgba(0, 0, 0, .28);--accent: #ff5c9a;--accent-soft: rgba(255, 92, 154, .18);--accent-text: #ffffff;--violet: #a78bfa;--violet-soft: rgba(167, 139, 250, .18);--danger: #ff6b6b;--ok: #58c98b;--user-bubble: #2b2347;--char-bubble: #1d1b30;--radius: 14px;--radius-sm: 9px;--gutter: 16px;--touch: 40px;--shadow: 0 6px 24px rgba(0, 0, 0, .35);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;overflow-x:hidden}body{overflow-x:clip}#root{min-height:100%;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;padding:0;min-height:var(--touch)}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.4rem}h2{font-size:1.15rem}h3{font-size:1rem}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:.85rem}.error{color:var(--danger)}.ok{color:var(--ok)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.page{flex:1;display:flex;flex-direction:column;width:100%;max-width:900px;margin:0 auto;padding:0 var(--gutter) calc(24px + env(safe-area-inset-bottom))}.page-center{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--gutter);text-align:center}.topbar{position:sticky;top:0;z-index:10;background:#0a0a0deb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}.topbar-inner{max-width:900px;margin:0 auto;padding:8px var(--gutter);display:flex;align-items:center;gap:10px;min-height:56px}.topbar-title{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.topbar-title h1{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-nav{display:flex;gap:4px;align-items:center}.topbar-nav a,.topbar-nav button{padding:0 10px;border-radius:var(--radius-sm);color:var(--text-muted);min-height:36px;display:inline-flex;align-items:center}.topbar-nav a.active,.topbar-nav a:hover,.topbar-nav button:hover{color:var(--text);background:var(--bg-elev)}.section{margin-top:20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 16px;min-height:var(--touch);border-radius:var(--radius-sm);background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border);white-space:nowrap;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){background:#262b36}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn.ghost:hover:not(:disabled){background:var(--bg-elev);color:var(--text)}.btn.danger{color:var(--danger);border-color:#ff6b6b59}.btn.danger:hover:not(:disabled){background:#ff6b6b1f}.btn.danger-solid{background:#e5484d;border-color:#e5484d;color:#fff;font-weight:600}.btn.danger-solid:hover:not(:disabled){background:#f2555a;border-color:#f2555a}.btn.sm{min-height:32px;padding:0 10px;font-size:.85rem}.btn.icon{width:var(--touch);padding:0;font-size:1.1rem}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label,.field .label{font-size:.85rem;color:var(--text-muted)}.input,input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{width:100%;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;min-height:var(--touch);outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:80px;line-height:1.45}textarea.lg{min-height:140px}.check{display:flex;align-items:center;gap:10px;min-height:var(--touch);cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--accent)}.grid-2{display:grid;grid-template-columns:1fr;gap:0 16px}@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr}}.slider{margin-bottom:16px}.slider-head{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-muted);margin-bottom:4px}.slider-head strong{color:var(--text);font-variant-numeric:tabular-nums}.slider input[type=range]{width:100%;accent-color:var(--accent);height:32px;margin:0}.slider-ends{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-faint)}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.list{display:flex;flex-direction:column;gap:8px}.row-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);color:inherit;min-height:72px;transition:background .15s}.row-card:hover{background:var(--bg-elev-2)}.row-main{flex:1;min-width:0}.row-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-sub{color:var(--text-muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--bg-elev-2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-muted)}.avatar.sm{width:36px;height:36px;font-size:.9rem}.avatar.lg{width:72px;height:72px;font-size:1.4rem}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.char-card{display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;text-align:left;color:inherit;min-height:0;transition:transform .12s,border-color .15s}.char-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.char-card .cover{width:100%;aspect-ratio:3 / 4;object-fit:cover;background:var(--bg-elev-2);display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--text-faint)}.char-card .body{padding:10px 12px 12px}.char-card .body .name{font-weight:600}.char-card .body .tag{color:var(--text-muted);font-size:.8rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;font-size:.72rem;background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap}.badge.accent{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--text-muted);font-weight:500;font-size:.8rem;background:var(--bg-elev)}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.confirm{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.35);border-radius:var(--radius-sm);font-size:.85rem;flex-wrap:wrap}.popover-anchor{position:relative;display:inline-flex}.popover{position:absolute;bottom:calc(100% + 8px);left:0;z-index:30;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;min-width:200px;max-width:calc(100vw - 2 * var(--gutter))}.popover.right{left:auto;right:0}.popover-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.tone-opt{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:var(--radius-sm);font-size:.7rem;color:var(--text-muted);min-height:56px}.tone-opt .emoji{font-size:1.4rem;line-height:1}.tone-opt:hover,.tone-opt.active{background:var(--bg-elev);color:var(--text)}.tone-opt.active{outline:1px solid var(--accent)}.popover-list{display:flex;flex-direction:column}.popover-list button{text-align:left;padding:8px 10px;border-radius:var(--radius-sm);min-height:40px}.popover-list button:hover{background:var(--bg-elev)}.tooltip{position:absolute;bottom:calc(100% + 8px);left:0;z-index:31;background:var(--accent);color:var(--accent-text);padding:10px 12px;border-radius:var(--radius-sm);font-size:.85rem;line-height:1.4;width:min(320px,calc(100vw - 2 * var(--gutter)));box-shadow:var(--shadow)}.tooltip button{margin-top:6px;color:var(--accent-text);font-weight:600;min-height:28px;text-decoration:underline}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25}.chat-page{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.chat-messages-inner{max-width:900px;margin:0 auto;padding:16px var(--gutter) 8px;display:flex;flex-direction:column;gap:14px}.msg{display:flex;flex-direction:column;max-width:88%;position:relative}.msg.user{align-self:flex-end;align-items:flex-end}.msg.assistant{align-self:flex-start;align-items:flex-start}.bubble{padding:10px 14px;border-radius:var(--radius);white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;line-height:1.55}.msg.user .bubble{background:var(--user-bubble);border-bottom-right-radius:4px}.msg.assistant .bubble{background:var(--char-bubble);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble .action{font-style:normal;color:var(--text-muted)}.bubble .speech{color:var(--text);font-weight:600}.bubble .thought{font-style:italic;color:color-mix(in srgb,var(--accent) 55%,var(--text-muted))}.msg.user .bubble .action{color:#b9c2d6}.msg.user .bubble .speech{font-weight:600}.msg-meta{display:flex;gap:6px;align-items:center;margin-top:4px;font-size:.75rem;color:var(--text-faint);min-height:20px}.msg-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.msg:hover .msg-actions,.msg:focus-within .msg-actions,.msg.show-actions .msg-actions{opacity:1}@media(hover:none){.msg-actions{opacity:.6}}.msg-actions button{min-height:28px;padding:0 8px;border-radius:6px;color:var(--text-muted);font-size:.75rem}.msg-actions button:hover{background:var(--bg-elev-2);color:var(--text)}.msg-actions button.danger{color:var(--danger)}.cursor{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.edit-box{width:100%;min-width:min(320px,80vw)}.edit-box textarea{min-height:100px}.composer{border-top:1px solid var(--border);background:var(--bg);padding-bottom:env(safe-area-inset-bottom)}.composer-inner{max-width:900px;margin:0 auto;padding:8px var(--gutter) 10px;display:flex;flex-direction:column;gap:8px}.composer-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chips{display:flex;gap:4px;flex:1}.chip{padding:0 10px;min-height:34px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-muted);font-size:.82rem;display:inline-flex;align-items:center;gap:4px}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer textarea{flex:1;resize:none;min-height:44px;max-height:160px;padding:10px 12px;border-radius:22px;line-height:1.4;overflow-y:auto}.send-btn{width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.send-btn.stop{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--danger)}.continue-btn{height:44px;padding:0 12px;border-radius:22px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-muted);font-size:.85rem;display:inline-flex;align-items:center;gap:4px;flex-shrink:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.continue-btn:hover:not(:disabled){color:var(--text)}.chat-cost{font-size:.72rem;color:var(--text-faint);text-align:right;font-variant-numeric:tabular-nums}.collapse{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;background:var(--bg-elev);overflow:hidden}.collapse>summary{list-style:none;cursor:pointer;padding:12px 16px;font-weight:600;display:flex;align-items:center;justify-content:space-between;min-height:48px;-webkit-user-select:none;user-select:none}.collapse>summary::-webkit-details-marker{display:none}.collapse>summary:after{content:"▾";color:var(--text-muted);transition:transform .15s}.collapse:not([open])>summary:after{transform:rotate(-90deg)}.collapse-body{padding:4px 16px 12px;border-top:1px solid var(--border)}.pair-list{display:flex;flex-direction:column;gap:10px}.pair{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}@media(min-width:640px){.pair{grid-template-columns:1fr 1fr auto;align-items:start}}.img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.img-tile{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg);display:flex;flex-direction:column}.img-tile img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block}.img-tile.primary{border-color:var(--accent)}.img-tile .tile-body{padding:6px 8px;font-size:.75rem;color:var(--text-muted);display:flex;flex-direction:column;gap:4px}.sticky-save{position:sticky;bottom:0;background:#10101af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);padding:10px 0 calc(10px + env(safe-area-inset-bottom));display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;z-index:5}.prompt-panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-top:12px}.prompt-panel pre{white-space:pre-wrap;word-wrap:break-word;font-size:.8rem;line-height:1.45;margin:8px 0 0;max-height:60vh;overflow:auto;color:var(--text-muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.stat .v{font-size:1.3rem;font-weight:600;font-variant-numeric:tabular-nums}.stat .k{color:var(--text-muted);font-size:.8rem}.login-box{width:100%;max-width:360px}.login-box h1{margin-bottom:4px}.admin-nav{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.admin-nav a{padding:0 14px;min-height:36px;display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);font-size:.9rem}.admin-nav a.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.empty{padding:32px 16px;text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius)}.notice{padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-elev);border:1px solid var(--border);font-size:.9rem}.notice.error{border-color:#ff6b6b66;background:#ff6b6b14}.notice.ok{border-color:#58c98b66;background:#58c98b14}.image-card{align-self:center;width:min(320px,85%);display:flex;flex-direction:column;align-items:center;gap:6px}.image-frame{position:relative;width:100%;aspect-ratio:3 / 4;border-radius:var(--radius);overflow:hidden;background:var(--bg-elev);border:1px solid var(--border)}.image-card img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.image-card .caption{font-size:.8rem;color:var(--text-muted);text-align:center;line-height:1.4;padding:0 4px}.image-card .image-meta{justify-content:center;width:100%}.image-card .image-missing{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.badge-hd{position:absolute;top:8px;right:8px;padding:2px 7px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.04em;background:var(--accent);color:var(--accent-text);box-shadow:0 2px 8px #0006}.shimmer{background:linear-gradient(100deg,var(--bg-elev) 30%,var(--bg-elev-2) 50%,var(--bg-elev) 70%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.image-card.pending .caption:after{content:"";display:inline-block;width:1em;text-align:left;animation:dots 1.2s steps(4,end) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:var(--gutter);cursor:zoom-out;animation:fade-in .15s ease-out}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-sm);box-shadow:var(--shadow)}.lightbox-close{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px;width:var(--touch);height:var(--touch);border-radius:50%;background:#ffffff1f;color:#fff;font-size:1.1rem;display:inline-flex;align-items:center;justify-content:center}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.image-btn{width:44px;height:44px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--border);font-size:1.15rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.image-btn:hover:not(:disabled){border-color:var(--accent)}.image-btn.busy{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.4}}.field-flash{animation:field-flash 3s ease-out forwards}@keyframes field-flash{0%{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}70%{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}to{border-color:var(--border);box-shadow:none}}.img-tile.selected{outline:2px solid var(--accent);outline-offset:-2px}.img-tile .tile-body .btn.sm{width:100%;white-space:normal;line-height:1.2;padding:6px 8px;font-size:.75rem}.check.sm{min-height:28px;font-size:.75rem;gap:6px}.check.sm input{width:16px;height:16px}.spinner{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-1px}@keyframes spin{to{transform:rotate(360deg)}}.chat-messages{position:relative}.chat-bg{z-index:0;background-size:cover;background-position:center top;background-repeat:no-repeat;transition:opacity .4s ease;pointer-events:none;position:sticky;top:0;height:0}.chat-bg:before{content:"";position:absolute;top:0;left:0;right:0;height:100dvh;background-image:inherit;background-size:cover;background-position:center top;background-repeat:no-repeat}.chat-bg-overlay{position:sticky;top:0;height:0;z-index:0;pointer-events:none}.chat-bg-overlay:before{content:"";position:absolute;top:0;left:0;right:0;height:100dvh;background:linear-gradient(to bottom,#0a0a0d73,#0a0a0db3 45%,#0a0a0deb)}.chat-messages-inner{position:relative;z-index:1}.has-bg .msg.user .bubble{background:#2b3446c7}.has-bg .msg.assistant .bubble{background:#1a1e27c7;border-color:#ffffff14}@supports (backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px)){.has-bg .bubble{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}.has-bg .msg-meta,.has-bg .chat-cost{color:var(--text-muted);text-shadow:0 1px 2px rgba(0,0,0,.6)}.has-bg .image-card .caption{text-shadow:0 1px 2px rgba(0,0,0,.6)}.has-bg .image-frame{box-shadow:var(--shadow)}.badge-bg{position:absolute;top:8px;left:8px;padding:2px 7px;border-radius:999px;font-size:.7rem;font-weight:600;background:#0f1115cc;color:var(--text);border:1px solid var(--accent);box-shadow:0 2px 8px #0006}.image-card.is-bg .image-frame{border-color:var(--accent)}.chip.chip-help{padding:0 10px;justify-content:center;opacity:.85}.chip-caret{display:inline-block;font-size:.8em;transition:transform .15s}.chip-caret.open{transform:rotate(180deg)}.composer-inner{position:relative}.ch-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#08061273;animation:ch-fade .16s ease-out}.ch-panel{position:absolute;z-index:41;left:var(--gutter);right:var(--gutter);bottom:calc(100% - 2px);max-height:min(72vh,640px);display:flex;flex-direction:column;border:1px solid transparent;border-radius:20px;background:linear-gradient(180deg,#ffffff0f,#fff0 90px) padding-box,linear-gradient(var(--bg-elev),var(--bg-elev)) padding-box,var(--metal-rim) border-box;box-shadow:0 18px 50px #0000008c,0 0 0 1px #0000004d,inset 0 1px #ffffff1f;animation:ch-pop .18s cubic-bezier(.2,.9,.3,1.2);transform-origin:40px 100%}.ch-panel:after{content:"";position:absolute;left:34px;bottom:-8px;width:16px;height:16px;background:var(--bg-elev);border-right:1px solid rgba(196,178,255,.5);border-bottom:1px solid rgba(196,178,255,.5);transform:rotate(45deg)}@keyframes ch-pop{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes ch-fade{0%{opacity:0}to{opacity:1}}.ch-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 4px}.ch-head h2{margin:0;font-size:1.05rem;background:linear-gradient(90deg,#ffc2da,var(--accent) 45%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.ch-close{width:32px;height:32px;border-radius:50%;background:var(--metal-gun) padding-box,var(--metal-rim) border-box;border:1px solid transparent;box-shadow:var(--metal-inset);color:var(--text);font-size:.85rem}.ch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 14px 6px;overflow-y:auto}.ch-card{padding:12px 13px;border-radius:14px;background:linear-gradient(180deg,#ffffff0d,#ffffff03 40%),var(--bg-elev-2);border:1px solid var(--border);box-shadow:inset 0 1px #ffffff12;font-size:.84rem;line-height:1.45;color:var(--text-muted)}.ch-card header{display:flex;align-items:center;gap:9px;margin-bottom:7px}.ch-card h3{margin:0;font-size:.92rem;color:var(--text)}.ch-card p{margin:0 0 8px}.ch-card p:last-child{margin-bottom:0}.ch-icon{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;box-shadow:var(--metal-inset),0 2px 6px #00000059}.ch-icon.pink{background:var(--metal-pink)}.ch-icon.violet{background:var(--metal-violet)}.ch-example{margin:4px 0 8px;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.ch-bubble{max-width:100%;padding:7px 11px;border-radius:14px 14px 4px;background:var(--user-bubble);color:var(--text);font-size:.86rem}.ch-say{font-weight:600}.ch-act{color:#b9c2d6}.ch-say+.ch-act,.ch-act+.ch-say{margin-left:.3em}.ch-legend{display:flex;align-items:center;gap:5px;font-size:.74rem;color:var(--text-faint)}.ch-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-left:6px}.ch-dot.act{background:#b9c2d6;margin-left:0}.ch-dot.say{background:var(--accent)}.ch-warn{padding:7px 9px;border-radius:10px;background:var(--accent-soft);border:1px solid rgba(255,92,154,.35);color:var(--text);font-size:.8rem}.ch-warn:before{content:"⚠️ "}.ch-foot{display:none}@media(max-width:900px){.ch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.ch-backdrop{display:none}.ch-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;max-height:none;border-radius:0;border:none;background:radial-gradient(120% 50% at 50% 0%,rgba(255,92,154,.16),transparent 70%),radial-gradient(90% 40% at 100% 100%,rgba(167,139,250,.14),transparent 70%),var(--bg);padding-top:env(safe-area-inset-top);animation:ch-up .22s ease-out}.ch-panel:after{display:none}@keyframes ch-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}.ch-head{padding:16px 16px 6px}.ch-head h2{font-size:1.35rem}.ch-close{width:38px;height:38px;font-size:1rem}.ch-grid{grid-template-columns:1fr;gap:12px;padding:10px 16px 16px;flex:1}.ch-card{font-size:.92rem;padding:14px 15px}.ch-card h3{font-size:1rem}.ch-icon{width:36px;height:36px;font-size:1.1rem}.ch-bubble{font-size:.95rem}.ch-foot{display:block;padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-elev)}.ch-foot .btn{width:100%;min-height:48px;font-size:1rem}}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0009;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-height:92dvh;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;display:flex;flex-direction:column;box-shadow:var(--shadow);animation:sheet-in .22s ease-out}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px var(--gutter);border-bottom:1px solid var(--border)}.sheet-head h3{margin:0;font-size:1rem}.sheet-body{padding:12px var(--gutter) calc(16px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}@media(min-width:720px){.sheet-backdrop{align-items:center;padding:24px}.sheet{max-width:720px;max-height:86vh;border-radius:var(--radius)}}.gallery-btn{display:inline-flex;align-items:center;gap:4px;min-height:var(--touch);padding:0 8px}.progress-bar{margin-bottom:12px}.progress-text{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px}.progress-track{height:6px;border-radius:999px;background:var(--bg-elev-2);overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.gallery-tile{display:flex;flex-direction:column;gap:4px}.gallery-tile .tile-img{position:relative;width:100%;aspect-ratio:9 / 16;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background:var(--bg);padding:0;cursor:pointer}.gallery-tile .tile-img:disabled{cursor:default}.gallery-tile .tile-img img{width:100%;height:100%;object-fit:cover;display:block;transition:filter .3s ease}.gallery-tile.is-bg .tile-img{border-color:var(--accent)}.gallery-tile.open .tile-img{outline:2px solid var(--accent)}.tile-locked .tile-img img{filter:blur(14px) saturate(.6) brightness(.6);transform:scale(1.15)}.tile-locked .lock{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;text-align:center;color:var(--text);text-shadow:0 1px 3px rgba(0,0,0,.8)}.tile-locked .lock-icon{font-size:1.4rem}.gallery-tile .tile-caption{color:var(--text-muted);text-align:center;line-height:1.3}.gallery-tile .tile-actions{display:flex;flex-direction:column;gap:6px}.gallery-tile .tile-actions .btn{width:100%}.gallery-tile .badge-bg{position:absolute;top:6px;left:6px}.unlock-card{align-self:center;width:min(280px,80%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border-radius:var(--radius);background:var(--bg-elev);border:1px solid var(--accent);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow);animation:unlock-in .5s cubic-bezier(.2,.8,.2,1)}@keyframes unlock-in{0%{transform:translateY(16px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.unlock-card .unlock-title{display:flex;align-items:center;gap:6px;font-size:.9rem}.unlock-card .unlock-icon{font-size:1.1rem}.unlock-card .image-frame{aspect-ratio:9 / 16}.unlock-card img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.unlock-card .caption{font-size:.8rem;color:var(--text-muted);text-align:center}.grid-3{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:640px){.grid-3{grid-template-columns:2fr 1fr 1fr}}.gal-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px}.gal-tile img{aspect-ratio:9 / 16}.gal-tile .tile-body input[type=text]{width:100%;min-height:30px;font-size:.78rem}.gal-unlock{display:flex;align-items:center;gap:4px}.gal-unlock input[type=number]{width:64px;min-height:30px;font-size:.78rem}.milestones-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.milestone{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);border-left-width:4px;background:var(--bg)}.milestone.good{border-left-color:var(--ok)}.milestone.bad{border-left-color:var(--danger)}.milestone.neutral{border-left-color:var(--text-faint)}.milestone-main{flex:1;min-width:0}.milestone-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:2px}.milestone-tag{font-weight:600;font-size:.9rem}.milestone-note{color:var(--text-muted);font-size:.88rem;line-height:1.4}.badge.val-good{color:var(--ok);border-color:#58c98b66}.badge.val-bad{color:var(--danger);border-color:#ff6b6b66}.badge.val-neutral{color:var(--text-muted)}.chip.val-good.active{border-color:var(--ok);background:#58c98b29}.chip.val-bad.active{border-color:var(--danger);background:#ff6b6b29}.chip.val-neutral.active{border-color:var(--text-muted);background:var(--bg-elev-2)}.milestone-form{padding:12px;margin-bottom:10px}.milestone-form .chips{margin-top:4px}:root{--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.dash-head h2{margin:0}.quick-links{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px;font-size:14px}.dimmed{opacity:.6;transition:opacity .2s}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}.kpi{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;min-height:84px}.kpi-v{font-size:1.5rem;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.kpi-k{font-size:12px;color:var(--text-muted);margin-top:4px}.kpi-s{font-size:11px;color:var(--text-faint);margin-top:2px}.chart-card{margin-bottom:14px;padding:14px}.chart-card h3{margin:0 0 2px;font-size:1rem}.chart-card .faint.small{margin-bottom:8px}.chart{position:relative;width:100%;margin-top:6px}.chart svg{display:block;touch-action:pan-y}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:2 4}.chart-axis{stroke:var(--border);stroke-width:1}.chart-crosshair{stroke:var(--text-faint);stroke-width:1;pointer-events:none}.chart-tick{fill:var(--text-faint);font-size:11px;font-variant-numeric:tabular-nums}.chart-label{fill:var(--text-muted);font-size:12px;font-weight:600}.chart-tooltip{position:absolute;z-index:5;pointer-events:none;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:12px;box-shadow:var(--shadow);min-width:130px}.chart-tooltip .tt-title{color:var(--text-muted);margin-bottom:4px}.chart-tooltip .tt-row{display:flex;align-items:center;gap:6px}.chart-tooltip .tt-row b{margin-left:auto;font-variant-numeric:tabular-nums}.tt-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.hbars{display:flex;flex-direction:column;gap:8px;margin:8px 0 14px}.hbar-row{display:grid;grid-template-columns:minmax(90px,160px) 1fr auto;gap:10px;align-items:center;font-size:14px}.hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:12px;background:var(--bg-elev-2);border-radius:4px;overflow:hidden}.hbar-fill{height:100%;border-radius:0 4px 4px 0;min-width:2px;transition:width .3s}.hbar-value{font-variant-numeric:tabular-nums;white-space:nowrap}.table-sortable th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table-sortable th.sortable:hover{color:var(--text)}.table-sortable th.sorted:after{content:" ▾";font-size:10px}.table-sortable th.sorted.asc:after{content:" ▴"}.dash-foot{margin-top:4px}@media(max-width:480px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-v{font-size:1.25rem}.hbar-row{grid-template-columns:minmax(70px,110px) 1fr auto;font-size:13px}}.scene-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle;background:#6b7280}.scene-dot.lvl-1{background:#d4a253}.scene-dot.lvl-2{background:#e07a9a}.scene-dot.lvl-3{background:#e0443f}.slider-help{margin:-4px 0 10px}.slider-disabled{opacity:.45}.brand{letter-spacing:.02em;color:var(--accent)}.auth-links{margin:14px 0 6px;text-align:center}.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--bg)}.auth-art{position:relative;overflow:hidden}.auth-art img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 68%,rgba(0,0,0,.6) 88%,transparent 100%);mask-image:linear-gradient(90deg,#000 0%,#000 68%,rgba(0,0,0,.6) 88%,transparent 100%)}.auth-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(16,16,26,0) 70%,rgba(16,16,26,.5) 90%,var(--bg) 100%),linear-gradient(180deg,#10101a00 45%,#10101aeb),linear-gradient(135deg,#ff5c9a2e,#a78bfa38)}.auth-panel{background:radial-gradient(ellipse 70% 55% at 30% 50%,rgba(167,139,250,.08),transparent 70%)}.auth-art-text{position:absolute;left:32px;right:32px;bottom:32px;z-index:1}.auth-art-brand{display:flex;align-items:center;gap:10px;font-size:2rem}.auth-art-text p{margin:8px 0 0;font-size:1.1rem;color:#f4eff8;max-width:420px;text-shadow:0 2px 12px rgba(0,0,0,.6)}.auth-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px}.auth-strip{display:none}.auth-box{width:100%;max-width:380px;text-align:center}.auth-logo{display:none;align-items:center;justify-content:center;gap:8px;font-size:1.4rem;text-decoration:none;margin-bottom:8px}.auth-box h1{font-family:var(--font-moe-title);font-weight:600;font-size:1.7rem;margin:0 0 4px}.auth-sub{color:var(--text-muted);margin:0 0 22px;font-size:.95rem}.auth-options{display:flex;flex-direction:column;gap:10px}.auth-option{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 18px;border-radius:14px;border:1px solid transparent;background:var(--metal-gun) padding-box,var(--metal-rim) border-box;box-shadow:inset 0 1px #ffffff29,0 3px 10px #00000059;color:var(--text);font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s}.auth-option svg{position:absolute;left:18px}.auth-option:hover{background:var(--metal-gun-hover) padding-box,linear-gradient(160deg,#ffc2da,#ff5c9a4d 40%,#a78bfa99) border-box;box-shadow:inset 0 1px #fff3,0 6px 18px #ff5c9a38;transform:translateY(-1px)}.auth-option-email{margin-top:6px;color:#fff;text-shadow:0 1px 1px rgba(90,20,70,.5);background:var(--metal-rose-violet) padding-box,linear-gradient(180deg,#ffe0ee,#7a5ad8) border-box;box-shadow:var(--metal-inset),var(--glow)}.auth-option-email:hover{background:var(--metal-rose-violet) padding-box,linear-gradient(180deg,#ffe0ee,#7a5ad8) border-box;filter:brightness(1.08)}.auth-form{text-align:left}.auth-back{display:block;margin-top:14px;text-align:center;color:var(--text-muted);text-decoration:none}.auth-back:hover{color:var(--text)}.auth-legal{margin:18px 0 6px;line-height:1.5}.auth-legal a{color:var(--text-muted)}@media(max-width:860px){.auth-page{grid-template-columns:1fr}.auth-art{display:none}.auth-panel{justify-content:flex-start;padding:0 16px 28px}.auth-strip{display:block;width:calc(100% + 32px);margin:0 -16px 18px;aspect-ratio:4 / 1;object-fit:cover;-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent);mask-image:linear-gradient(180deg,#000 60%,transparent)}.auth-logo{display:flex}}.auth-or{display:flex;align-items:center;gap:10px;margin:14px 0}.auth-or:before,.auth-or:after{content:"";flex:1;border-top:1px solid var(--border)}.lang-switch{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:10px}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.char-card{position:relative;display:block;color:inherit}.fav-btn{position:absolute;top:8px;right:8px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:#0a0a0d99;color:#fff;font-size:18px;line-height:1;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fav-btn.on{color:var(--accent);border-color:var(--accent)}.usage-pill{margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--bg-elev-2);font-size:12px}.usage-pill.full{background:var(--accent-soft);color:var(--accent)}.usage-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}.progress-fill.full{background:var(--danger)}.char-detail{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:20px;align-items:start}@media(max-width:720px){.char-detail{grid-template-columns:1fr}}.char-hero{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--bg-elev);aspect-ratio:3 / 4}.char-hero img,.char-hero .cover{width:100%;height:100%;object-fit:cover;object-position:center top;display:flex;align-items:center;justify-content:center;font-size:64px;color:var(--text-faint)}.char-info h2{margin:0 0 4px}.sub-editor{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.sub-editor select,.sub-editor input{padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg)}.badge.ok{color:var(--ok)}.shell{display:flex;min-height:100dvh;flex:1}.sidebar{width:250px;flex:0 0 250px;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;background:var(--bg-elev);border-right:1px solid var(--border);padding:12px 10px;gap:8px;z-index:20}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 6px}.logo{font-weight:800;font-size:1.25rem;letter-spacing:.01em;color:var(--accent)}.logo,.brand{display:inline-flex;align-items:center;gap:6px}.brand{justify-content:center;width:100%}.heart-logo{color:var(--accent);transform-origin:50% 55%;animation:beat 1.1s ease-in-out infinite}@keyframes beat{0%{transform:scale(1)}15%{transform:scale(1.12)}30%{transform:scale(1)}45%{transform:scale(1.06)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.heart-logo{animation:none}}.sidebar-close{display:none}.sidebar-search{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:0 12px;min-height:40px;color:var(--text-faint)}.sidebar-search input{flex:1;min-width:0;background:none;border:0;outline:0;padding:8px 0;color:var(--text)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;margin-top:4px}.sidebar-nav a,.sidebar-chat,.chat-side-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text-muted);min-height:40px}.sidebar-nav a:hover,.sidebar-chat:hover,.chat-side-row:hover,.sidebar-nav a.active,.sidebar-chat.active{background:var(--bg-elev-2);color:var(--text)}.sidebar-nav .ico{width:20px;text-align:center;color:var(--accent)}.sidebar-nav .usage-pill{margin-left:auto}.sidebar-section{font-size:.8rem;font-weight:600;color:var(--text-faint);padding:10px 12px 2px;text-transform:uppercase;letter-spacing:.06em}.sidebar-chats{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:2px}.sidebar-chat-main{min-width:0}.sidebar-chat-name{font-size:.92rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-chat-last{font-size:.78rem;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-bottom{border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:8px}.vip-btn{text-align:center;background:linear-gradient(90deg,var(--accent),var(--violet));border:0;font-weight:700}.sidebar-user{display:flex;align-items:center;gap:6px}.sidebar-user-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;color:inherit;padding:4px 6px;border-radius:var(--radius-sm)}.sidebar-user-main:hover{background:var(--bg-elev-2)}.sidebar-user-main>span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.2}.sidebar-user-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-main{flex:1;min-width:0;display:flex;flex-direction:column}.mobile-head,.sidebar-backdrop,.shell .topbar-nav{display:none}.shell .topbar-inner,.shell .page{max-width:1100px}.catalog{flex:1;padding:16px var(--gutter) calc(24px + env(safe-area-inset-bottom));max-width:1400px;width:100%;margin:0 auto}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.seg{display:inline-flex;background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:3px;gap:2px}.seg button{border:0;background:none;color:var(--text-muted);padding:0 14px;min-height:34px;border-radius:999px;cursor:pointer;font-size:.92rem}.seg button.on{background:var(--accent);color:var(--accent-text)}.tag-row{display:flex;flex-wrap:wrap;gap:6px;width:100%}.hero-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.hero-card{position:relative;display:block;aspect-ratio:3 / 4;border-radius:var(--radius);overflow:hidden;background:var(--bg-elev);border:1px solid var(--border);color:#fff;transition:transform .15s,border-color .15s}.hero-card:hover{transform:translateY(-3px);border-color:var(--accent)}.hero-card img,.chat-side-hero img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.hero-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--text-faint);background:var(--bg-elev-2)}.hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#10101aeb,#10101a66 40%,#10101a00 65%);pointer-events:none}.hero-tags{position:absolute;top:8px;left:8px;display:flex;gap:4px;flex-wrap:wrap;max-width:calc(100% - 56px)}.hero-tag{font-size:.7rem;padding:2px 7px;border-radius:999px;background:#0a0a0db3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff}.hero-body{position:absolute;left:0;right:0;bottom:0;padding:12px}.hero-name{font-weight:700;font-size:1.05rem;text-shadow:0 1px 6px rgba(0,0,0,.6)}.hero-age{font-weight:400;color:#ffffffbf;margin-left:2px}.hero-tagline{font-size:.8rem;color:#fffc;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-page{flex-direction:row}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;height:100dvh}.chat-side{display:none;width:320px;flex:0 0 320px;height:100dvh;overflow-y:auto;border-left:1px solid var(--border);background:var(--bg-elev);flex-direction:column;gap:4px;padding-bottom:12px}.chat-side-hero{position:relative;aspect-ratio:3 / 4;background:var(--bg-elev-2);flex:0 0 auto}.chat-side-title{position:absolute;left:0;right:0;bottom:0;padding:14px;color:#fff}.chat-side-title h2{margin:0;font-size:1.2rem;text-shadow:0 1px 6px rgba(0,0,0,.6)}.chat-side-title .muted{color:#fffc}.chat-side-strip{display:flex;gap:6px;padding:10px 12px 4px;overflow-x:auto}.strip-tile{flex:0 0 52px;width:52px;height:70px;border-radius:8px;overflow:hidden;border:2px solid transparent;background:var(--bg);padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.strip-tile img{width:100%;height:100%;object-fit:cover}.strip-tile.on{border-color:var(--accent)}.strip-tile.locked{cursor:default}.chat-side-row{background:none;border:0;cursor:pointer;justify-content:space-between;margin:0 8px;width:calc(100% - 16px);text-align:left}.chat-side-actions{padding:10px 12px 0;display:flex;flex-direction:column;gap:8px;margin-top:auto}.danger-text{color:var(--danger)}.btn.block{display:flex;width:100%;text-align:center}@media(min-width:1100px){.chat-side{display:flex}.shell .chat-page .topbar,.chat-bg,.chat-bg-overlay{display:none}}.chat-messages{display:flex;flex-direction:column}.chat-messages-inner{margin-top:auto;width:100%}.strip-tile.locked{position:relative}.strip-tile.locked img{filter:blur(3px) brightness(.55);transform:scale(1.1)}.strip-lock{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:15px;text-shadow:0 1px 3px rgba(0,0,0,.8)}@media(max-width:899px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .2s ease;width:min(300px,86vw);flex-basis:auto;box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.sidebar-close{display:inline-flex}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:19}.mobile-head{display:flex;align-items:center;gap:10px;padding:6px var(--gutter);padding-top:calc(6px + env(safe-area-inset-top));border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.mobile-head .logo{flex:1}.shell.in-chat .mobile-head{display:none}.hero-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}}.soon{position:relative;overflow:hidden;margin:6vh auto 0;max-width:720px;padding:56px 28px 48px;text-align:center;border:1px solid var(--border);border-radius:24px;background:var(--bg-elev);display:flex;flex-direction:column;align-items:center;gap:10px}.soon-glow{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:radial-gradient(closest-side,rgba(224,41,79,.35),transparent 70%) 50% 20% / 70% 70% no-repeat,radial-gradient(closest-side,rgba(255,92,122,.18),transparent 70%) 80% 90% / 60% 60% no-repeat;animation:soon-drift 9s ease-in-out infinite alternate;pointer-events:none}@keyframes soon-drift{0%{transform:translate(-3%,-2%) scale(1)}to{transform:translate(3%,3%) scale(1.08)}}.soon>*{position:relative}.soon-kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:4px 12px}.soon-brand{display:flex;align-items:center;gap:12px;font-size:clamp(2.2rem,7vw,3.6rem);font-weight:800;letter-spacing:.01em;margin-top:8px}.soon-brand .heart-logo{filter:drop-shadow(0 0 18px rgba(224,41,79,.55))}.soon-title{margin:4px 0 0;font-size:clamp(1.3rem,3.5vw,1.8rem);font-weight:600;color:var(--text)}.soon-sub{margin:0;max-width:460px;color:var(--text-muted);font-size:1.05rem}.soon-cta{margin-top:14px;padding:0 26px;min-height:46px;display:inline-flex;align-items:center;border-radius:999px}.page-center .soon{margin:0;width:100%}@media(prefers-reduced-motion:reduce){.soon-glow{animation:none}}.gal-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0 2px;font-size:.8rem;color:var(--text-muted)}.gal-toolbar label{display:flex;align-items:center;gap:5px}.gal-toolbar input[type=number]{width:64px;min-height:28px;padding:2px 6px}.gal-toolbar-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.gal-tile-head{display:flex;align-items:center;gap:6px;padding:4px 6px;font-size:.72rem;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.gal-tile-head .check{margin:0;padding:0}.gal-tile-head .gal-pos{width:46px;min-height:24px;padding:1px 4px;font-size:.72rem}.gal-tile-head .faint{overflow:hidden;text-overflow:ellipsis}.gal-tile.off{opacity:.45}.gal-tile.off img{filter:grayscale(1)}.gal-admin-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.gal-tile .tile-body .actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.gal-tile .tile-body .actions .btn.icon{padding:2px 8px}.admin-root{display:flex;flex-direction:column;min-height:100%;flex:1}.admin-root .topbar-inner,.admin-root .page{max-width:none;padding-left:24px;padding-right:24px}.gal-tile .tile-body .actions .btn.sm{width:auto;flex:1 1 auto;padding:4px 6px}.gal-tile .tile-body .actions .btn.icon{flex:0 0 auto}.card,.kpi,.seg,.chip,.sidebar,.topnav,.land-hero,.land-premium,.tag-tile,.story-card,.hero-card,.chat-side,.img-tile{background-image:linear-gradient(180deg,#ffffff1a,#ffffff05 38%,#0000000f 50%,#ffffff05);box-shadow:inset 0 1px #ffffff29,inset 0 0 0 1px #ffffff08,0 1px #00000059}.btn:not(.primary):not(.ghost):not(.danger){border-color:transparent;background:var(--metal-gun) padding-box,var(--metal-rim) border-box;box-shadow:inset 0 1px #ffffff24,0 2px 6px #0000004d}.btn:not(.primary):not(.ghost):not(.danger):hover:not(:disabled){background:var(--metal-gun-hover) padding-box,var(--metal-rim) border-box}.btn.primary,.seg button.on,.vip-btn{background:var(--metal-pink) padding-box,linear-gradient(180deg,#ffd6e6,#b8245d) border-box;border-color:transparent;box-shadow:var(--metal-inset),var(--glow);color:#fff;text-shadow:0 1px 1px rgba(120,10,50,.45)}.btn.primary:hover,.vip-btn:hover{filter:brightness(1.08) saturate(1.05)}.vip-btn{background:var(--metal-rose-violet) padding-box,linear-gradient(180deg,#ffe0ee,#7a5ad8) border-box}.hero-card:hover{box-shadow:inset 0 1px #ffffff1a,var(--glow)}.shell.topnav-mode{display:flex;flex-direction:column;min-height:100dvh}.topnav{position:sticky;top:0;z-index:20;background-color:#10101ad9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.topnav-inner{max-width:1400px;margin:0 auto;padding:10px var(--gutter);padding-top:calc(10px + env(safe-area-inset-top));display:flex;align-items:center;gap:18px}.topnav .logo{font-weight:800;font-size:1.44rem;color:var(--accent);display:inline-flex;align-items:center;gap:6px;margin-right:auto}.topnav-links{display:none;align-items:center;gap:4px}.topnav-links a{color:var(--text-muted);padding:6px 12px;border-radius:999px;font-weight:600;font-size:.95rem}.topnav-links a:hover,.topnav-links a.active{color:var(--text);background:var(--bg-elev)}.topnav-links .topnav-premium{color:var(--violet)}.topnav-right{display:flex;align-items:center;gap:8px}.topnav-user .avatar{border:1px solid var(--border)}.topnav-menu{display:inline-flex}.topnav-signin{display:none}.topnav-drawer{display:flex;flex-direction:column;padding:6px var(--gutter) 12px;border-top:1px solid var(--border);background:var(--bg-elev)}.topnav-drawer a,.topnav-drawer-btn{padding:12px 8px;color:var(--text);font-weight:600;border:0;background:none;text-align:left;font:inherit;border-bottom:1px solid var(--border)}.topnav-drawer .topnav-premium{color:var(--violet)}@media(min-width:720px){.topnav-links{display:flex}.topnav-menu{display:none}.topnav-signin{display:inline-flex}}.landing{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:14px var(--gutter) calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:26px}.land-hero,.land-premium{border:1px solid var(--border);border-radius:var(--radius);padding:26px 24px;background-color:var(--bg-elev);position:relative;overflow:hidden}.land-hero{background-color:#2b1e38}.land-hero:after,.land-premium:after{content:"";position:absolute;right:-120px;top:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,#ff5c9a38,#ff5c9a00 65%);pointer-events:none}.land-premium:after{background:radial-gradient(circle,#a78bfa42,#a78bfa00 65%)}.land-kicker{display:block;font-size:.7rem;letter-spacing:.12em;font-weight:700;color:var(--accent);margin-bottom:10px}.land-premium .land-kicker{color:var(--violet)}.land-hero h1,.land-premium h2{margin:0 0 8px;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.15}.land-hero p,.land-premium p{margin:0 0 16px;color:var(--text-muted);max-width:60ch}.land-hero p{max-width:78ch;position:relative}.land-cta{display:inline-flex}.land-section{display:flex;flex-direction:column;gap:12px}.land-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.land-head h2{margin:0;font-size:1.15rem}.land-more{color:var(--accent);font-size:.9rem;font-weight:600}.land-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(160px,1fr);gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:6px;scrollbar-width:thin}.land-row>*{scroll-snap-align:start}@media(min-width:900px){.land-row{grid-auto-columns:minmax(200px,1fr)}}.tag-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.tag-tile{position:relative;display:flex;align-items:flex-end;min-height:92px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);background-color:hsl(var(--hue) 38% 24%);color:#fff;font-weight:700;padding:12px 14px;transition:transform .15s,border-color .15s}.tag-tile:hover{transform:translateY(-2px);border-color:var(--accent)}.tag-tile img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}.tag-tile-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#10101ad9,#10101a1a)}.tag-tile-name{position:relative}@media(min-width:900px){.tag-tiles{grid-template-columns:repeat(3,1fr)}.tag-tile{min-height:150px}}.story-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,260px);gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.story-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--bg-elev);color:var(--text)}.story-card .avatar{grid-row:span 2}.story-name{font-weight:700;font-size:.95rem}.story-last{color:var(--text-muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-tags{position:static;margin-top:6px;max-width:none}.hero-tag{background:#ffffff1f;color:#fffc;font-size:.66rem;-webkit-backdrop-filter:none;backdrop-filter:none}.hero-tagline{-webkit-line-clamp:1}.explore-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.explore-head h1{margin:0;font-size:1.3rem}.explore-search{display:flex;align-items:center;gap:8px;background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:0 14px;min-width:min(100%,360px);flex:1;max-width:420px}.explore-search span{color:var(--text-faint)}.explore-search input{flex:1;border:0;background:none;color:var(--text);min-height:38px;outline:none;font:inherit}.hero-body .hero-tags{flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.pay-table{width:100%;border-collapse:collapse}.pay-table td{padding:6px 4px;border-bottom:1px solid var(--border);vertical-align:middle}.pay-table tr:last-child td{border-bottom:0}.switches{display:flex;flex-wrap:wrap;gap:10px 24px;margin:10px 0}.lang-select{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font:inherit;font-size:.85rem;cursor:pointer}.lang-select.block{display:block;width:100%;border-radius:var(--radius-sm);padding:8px 10px;font-size:1rem}.topnav-lang{max-width:120px}@media(max-width:640px){.topnav-lang{max-width:44px;padding-left:6px}}.char-page{max-width:1040px;padding-top:28px}.char-page .char-detail{grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:32px}.char-page .char-hero{border:1px solid var(--border);box-shadow:0 12px 32px #00000073}.char-page .char-info h1{margin:0 0 6px;font-size:1.7rem;line-height:1.15}.char-tagline{color:var(--text-muted);font-size:1.05rem;margin:0 0 18px}.char-actions{margin:0 0 22px}.char-about h3{margin:0 0 6px}.char-about p{margin:0;line-height:1.55}.affinity{display:flex;gap:14px;align-items:flex-start;margin-top:22px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);background-image:linear-gradient(180deg,var(--sheen),rgba(255,255,255,0) 42%);box-shadow:inset 0 1px #ffffff1a,0 1px #00000059}.affinity-heart{font-size:2rem;line-height:1;color:var(--accent);filter:drop-shadow(0 0 10px rgba(255,92,154,.55));animation:heartbeat 1.8s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.12)}28%{transform:scale(1)}42%{transform:scale(1.08)}}.affinity-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.affinity-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.affinity-label{font-weight:600}.affinity-points{font-size:1.25rem;color:var(--accent)}.affinity-next{margin-left:auto}.char-gallery{margin-top:36px;padding-top:24px;border-top:1px solid var(--border)}.char-gallery .land-head{margin-bottom:4px}.char-gallery .land-head h2{margin:0;font-size:1.3rem}.char-gallery>p{margin:0 0 14px}.char-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}.char-gallery-grid .tile-locked .tile-img{background:linear-gradient(160deg,#2a1f3d,#15121f)}.char-gallery-grid .tile-locked .tile-img img{filter:blur(10px) saturate(.7) brightness(.55);transform:scale(1.2)}.char-gallery-grid .lock-icon{font-size:1.6rem}.char-gallery-grid .lock-at{font-weight:600}@media(max-width:720px){.char-page{padding-top:16px}.char-page .char-detail{gap:18px}.char-page .char-hero{max-width:320px;margin:0 auto;width:100%}.char-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}}.topnav-right .lang-wrap{position:relative;display:inline-flex}.topnav-right .lang-wrap:after{content:"";position:absolute;right:12px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--text-muted);border-bottom:1.5px solid var(--text-muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}.topnav-right .topnav-lang{-moz-appearance:none;appearance:none;-webkit-appearance:none;max-width:none;min-height:36px;padding:0 30px 0 14px;border-radius:10px;background:var(--bg-elev-2);background-image:linear-gradient(180deg,var(--sheen),rgba(255,255,255,0) 42%);box-shadow:inset 0 1px #ffffff1a,0 1px #00000059;font-weight:600;font-size:.9rem}.topnav-right .topnav-lang:hover{background-color:#262b36}.topnav-right .btn.sm{min-height:36px;padding:0 16px;border-radius:10px;font-weight:600;font-size:.9rem}.topnav-right .topnav-signin{background:var(--bg-elev-2);background-image:linear-gradient(180deg,var(--sheen),rgba(255,255,255,0) 42%);box-shadow:inset 0 1px #ffffff1a,0 1px #00000059}.topnav-right .btn.primary{box-shadow:inset 0 1px #ffffff59,0 2px 10px #ff5c9a59}@media(max-width:640px){.topnav-right .lang-wrap:after{right:9px}.topnav-right .lang-wrap:before{content:attr(data-flag);position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:1.15rem;line-height:1;pointer-events:none}.topnav-right .topnav-lang{width:60px;max-width:60px;padding:0 22px 0 10px;color:transparent}.topnav-right .topnav-lang option{color:var(--text)}.topnav-inner{gap:10px;padding-left:12px;padding-right:12px}.topnav .logo{font-size:1.22rem}.topnav-right{gap:6px;margin-left:auto}.topnav-right .btn.sm{padding:0 12px}.topnav-right .topnav-menu{width:36px;min-width:36px;padding:0}}.install-banner{position:fixed;left:50%;bottom:14px;transform:translate(-50%);width:min(560px,calc(100% - 2 * var(--gutter)));z-index:60;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--bg-elev);background-image:linear-gradient(180deg,var(--sheen),rgba(255,255,255,0) 42%);box-shadow:inset 0 1px #ffffff1a,0 10px 30px #00000080;animation:install-in .35s ease-out}.install-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.install-actions{display:flex;gap:6px;flex:0 0 auto}@keyframes install-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:480px){.install-banner{flex-wrap:wrap}.install-actions{width:100%;justify-content:flex-end}}.chat-side-hero{aspect-ratio:auto;flex:1 1 auto;min-height:0;overflow:hidden}.chat-side-hero img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.chat-side .hero-shade{background:linear-gradient(to top,#10101af5,#10101abf 28%,#10101a26 55%,#10101a00 75%)}.chat-side-title{padding:16px 16px 14px}.chat-side-context{margin-top:6px;max-height:42vh;overflow-y:auto;font-size:.86rem;line-height:1.45;color:#ffffffdb;text-shadow:0 1px 4px rgba(0,0,0,.7);scrollbar-width:thin}.chat-side-context p{margin:0 0 8px}.chat-side-context p:last-child{margin-bottom:0}.chat-side-profile{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#10101a99;border:1px solid rgba(255,255,255,.18);color:#fff;font-size:18px;text-decoration:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px #0006}.chat-side-profile:hover{background:var(--accent);border-color:transparent}.chat-side-actions{margin-top:0;padding-bottom:2px}.chat-avatar-link{display:inline-flex;border-radius:50%;outline-offset:2px}.chat-context{align-self:center;max-width:640px;width:100%;padding:12px 14px;border-radius:14px;border:1px dashed var(--border);background:#1d1b308c;font-size:.88rem;line-height:1.45;color:var(--text-muted)}.chat-context-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.chat-context-head a{color:var(--text);font-weight:700;text-decoration:none}.chat-context p{margin:0 0 8px}.chat-context p:last-child{margin-bottom:0}@media(min-width:1100px){.chat-context{display:none}}.sidebar-nav .nav-usage{display:flex;flex-direction:column;align-items:stretch;gap:6px}.nav-usage-row{display:flex;align-items:center;gap:8px}.nav-usage-row .usage-pill{margin-left:auto}.nav-usage-track{display:block;height:5px;margin:0 2px 2px 26px}.nav-usage-track .progress-fill{display:block;background:linear-gradient(90deg,var(--accent),var(--violet))}.nav-usage-track .progress-fill.full{background:var(--danger)}.btn.primary.vip-btn,.btn.vip-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;line-height:1;text-align:center;font-weight:800;letter-spacing:.01em;color:#2b1a00;background:linear-gradient(180deg,#ffe9a6,#f7c243 42%,#e09a16);border-color:transparent;box-shadow:inset 0 1px #ffffff8c,0 0 18px #f7c24359,0 1px #00000059;text-shadow:0 1px 0 rgba(255,255,255,.35)}.btn.primary.vip-btn:hover,.btn.vip-btn:hover{filter:brightness(1.06);color:#2b1a00}.filter-line{display:contents}.tags-toggle{display:none}@media(max-width:720px){.filter-line{display:flex;gap:6px;align-items:center;width:100%;overflow-x:auto;scrollbar-width:none}.filter-line::-webkit-scrollbar{display:none}.filter-line .seg{flex:none}.filter-line .seg button{padding:0 10px;min-height:32px;font-size:.85rem}.filter-line .seg-foryou{display:none}.tags-toggle{display:inline-flex;flex:none;white-space:nowrap}.tag-row{display:none}.tag-row.open{display:flex}.char-page .char-detail{grid-template-columns:1fr}}:root{--font-moe: "M PLUS Rounded 1c", var(--font);--font-moe-title: "Fredoka", "M PLUS Rounded 1c", var(--font)}.footer-gap{flex:1 0 56px}.site-footer{position:relative;overflow:hidden;padding:36px 24px 22px;font-family:var(--font-moe);background:radial-gradient(60% 120% at 10% 0%,rgba(255,92,154,.14),transparent 70%),radial-gradient(50% 120% at 95% 10%,rgba(167,139,250,.14),transparent 70%),var(--bg-elev);border-top:0}.site-footer:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,var(--accent) 25%,var(--violet) 75%,transparent);opacity:.8}.site-footer:after{content:"❀ ♡ ❀";position:absolute;top:10px;left:50%;transform:translate(-50%);font-size:.8rem;letter-spacing:.6em;color:var(--accent);opacity:.45;pointer-events:none}.site-footer-inner{max-width:920px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:26px;text-align:center}.site-footer-brand .logo{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-moe-title);font-weight:700;font-size:1.75rem;letter-spacing:.02em;text-decoration:none}.site-footer-brand .logo .heart-logo{color:var(--accent);filter:drop-shadow(0 0 8px rgba(255,92,154,.55))}.site-footer-slogan{margin:10px auto 0;max-width:34ch;font-family:var(--font-moe-title);font-weight:600;font-size:1.02rem;line-height:1.3;color:var(--text-muted)}.site-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px}.site-footer-links a{position:relative;color:var(--text-muted);text-decoration:none;font-weight:500;padding-left:18px;transition:color .2s,transform .2s}.site-footer-links a:before{content:"♡";position:absolute;left:0;color:var(--accent);opacity:.5;transition:opacity .2s,transform .2s}.site-footer-links a:hover{color:#ffd1e3;transform:translate(2px)}.site-footer-links a:hover:before{content:"♥";opacity:1;transform:scale(1.2)}.site-footer-social{display:flex;flex-direction:column;align-items:center;gap:12px}.site-footer-title{font-family:var(--font-moe-title);font-weight:600;font-size:.95rem;letter-spacing:.04em;color:var(--text)}.social-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px}.social-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,92,154,.35);background:linear-gradient(135deg,#ff5c9a29,#a78bfa29);color:#ffd1e3;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s,color .2s}a.social-btn:hover{transform:translateY(-3px);color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet));box-shadow:0 8px 20px #ff5c9a59}.social-btn svg{width:20px;height:20px;flex:0 0 auto}.social-btn.social-soon{opacity:.45;cursor:default;border-style:dashed;background:none}.site-footer-copy{max-width:1200px;margin:26px auto 0;padding-top:16px;border-top:1px dashed rgba(255,92,154,.25);text-align:center;font-family:var(--font-moe);font-size:.82rem;color:var(--text-muted)}.site-footer-copy:after{content:" ♡";color:var(--accent)}.legal-page{max-width:860px;margin:0 auto;padding:24px 20px;line-height:1.65}.legal-hero{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);aspect-ratio:4 / 1;min-height:150px;box-shadow:0 10px 30px #00000059}.legal-hero-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}.legal-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#10101a0d 20%,#10101aeb)}.legal-hero-text{position:absolute;left:22px;right:22px;bottom:14px;z-index:1}.legal-hero-text h1{margin:0;font-family:var(--font-moe-title);font-weight:600;font-size:clamp(1.5rem,4vw,2.2rem);background:linear-gradient(90deg,#ff8ab8,#c4b2ff);-webkit-background-clip:text;background-clip:text;color:transparent}.legal-hero-text p{margin:2px 0 0;color:#f4eff8bf}.legal-body{margin-top:18px;padding:22px 26px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elev);background-image:linear-gradient(180deg,var(--sheen),transparent 120px)}.legal-intro{color:var(--text);font-size:1.02rem;margin:0 0 8px}.legal-section{padding:14px 0 4px;border-top:1px solid var(--border)}.legal-section:first-of-type{border-top:0}.legal-section h2{display:flex;align-items:center;gap:10px;margin:4px 0 8px;font-family:var(--font-moe-title);font-weight:600;font-size:1.08rem}.legal-section h2:before{content:"";width:4px;height:1.05em;border-radius:4px;background:linear-gradient(180deg,var(--accent),#a78bfa);flex:none}.legal-section p{color:var(--text-muted);margin:0 0 10px}@media(max-width:640px){.legal-page{padding:14px 16px 20px}.legal-hero{aspect-ratio:2.4 / 1}.legal-body{padding:16px 16px 6px}}@media(max-width:720px){.site-footer{padding:34px 16px 18px}.site-footer-inner{gap:22px}}.wordmark{font-family:"Fredoka","M PLUS Rounded 1c",var(--font);font-weight:700;letter-spacing:.02em;white-space:nowrap;background:linear-gradient(90deg,#ff7fb0,var(--accent) 40%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}.logo .heart-logo{filter:drop-shadow(0 0 6px rgba(255,92,154,.5))}.chat-main{position:relative}.unlock-toasts{position:absolute;top:72px;left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.unlock-toast{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid rgba(255,92,154,.4);background:#1d1b30b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#ffd1e3;font-size:.85rem;font-weight:600;text-decoration:none;white-space:nowrap;box-shadow:0 6px 20px #ff5c9a40;animation:unlock-toast 4.5s ease forwards}@keyframes unlock-toast{0%{opacity:0;transform:translateY(-8px) scale(.95)}8%{opacity:1;transform:translateY(0) scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.hero-arrow{position:absolute;top:42%;transform:translateY(-50%) scale(.92);width:44px;height:44px;padding:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 55%),linear-gradient(135deg,#ff5c9abf,#a78bfabf);color:#fff;display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 18px #ff5c9a59,inset 0 1px #ffffff59;opacity:0;transition:opacity .25s,transform .25s,box-shadow .25s;z-index:2}.chat-side-hero:hover .hero-arrow,.hero-arrow:focus-visible{opacity:.95;transform:translateY(-50%) scale(1)}.hero-arrow:hover{opacity:1;transform:translateY(-50%) scale(1.1);box-shadow:0 8px 26px #ff5c9a99,0 0 0 4px #ff5c9a2e,inset 0 1px #fff6}.hero-arrow:active{transform:translateY(-50%) scale(.95)}.hero-arrow.prev{left:12px}.hero-arrow.prev svg{margin-right:2px}.hero-arrow.next{right:12px}.hero-arrow.next svg{margin-left:2px}@media(hover:none){.hero-arrow{opacity:.9;transform:translateY(-50%) scale(1)}}.hero-count{position:absolute;top:18px;left:14px;padding:3px 10px;border-radius:999px;background:#10101a8c;border:1px solid rgba(255,92,154,.45);color:#ffd1e3;font-size:.75rem;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:2}.bg-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:60}.bg-picker{position:fixed;top:0;right:0;bottom:0;width:min(156px,42vw);z-index:61;display:flex;flex-direction:column;background:var(--bg-elev);border-left:1px solid var(--border);box-shadow:-12px 0 32px #00000080;animation:bg-picker-in .22s ease-out;padding-top:env(safe-area-inset-top)}.bg-picker-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 6px 8px 12px;font-size:.85rem;font-weight:600}.bg-picker-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 10px 16px}.bg-picker-item{padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;background:var(--bg-elev-2);aspect-ratio:9 / 16;flex:none;cursor:pointer}.bg-picker-item.on{border-color:var(--accent);box-shadow:0 0 12px #ff5c9a80}.bg-picker-item img{width:100%;height:100%;object-fit:cover;display:block}@keyframes bg-picker-in{0%{transform:translate(100%)}to{transform:translate(0)}}.premium-page{max-width:1120px;margin:0 auto;padding:36px 20px 8px}.premium-head{position:relative;text-align:center;margin-bottom:30px;border-radius:22px;overflow:hidden;border:1px solid rgba(255,92,154,.25);min-height:300px;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 40px #0006}.premium-head-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.premium-head:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 55% 60% at 50% 52%,#10101ae0,#10101a73 70%,#10101a40)}.premium-head-text h1{filter:drop-shadow(0 2px 10px rgba(0,0,0,.8))}.premium-head-text{position:relative;z-index:1;padding:28px 20px;text-shadow:0 2px 16px rgba(0,0,0,.6)}.premium-head h1{font-family:"Fredoka","M PLUS Rounded 1c",var(--font);font-weight:700;font-size:clamp(1.8rem,4vw,2.6rem);margin:6px 0 8px;background:linear-gradient(90deg,#ff7fb0,var(--accent) 40%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.premium-head p{color:#f4eff8;max-width:560px;margin:0 auto}.premium-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}.premium-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:24px 18px 18px;border-radius:20px;border:1px solid var(--border);background:radial-gradient(120% 80% at 0% 0%,rgba(255,92,154,.08),transparent 60%),var(--bg-elev);color:var(--text);text-align:left;font:inherit;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.premium-card:hover{transform:translateY(-4px);border-color:#ff5c9a8c;box-shadow:0 14px 34px #ff5c9a2e}.premium-card.popular{border:2px solid var(--accent);background:radial-gradient(120% 80% at 0% 0%,rgba(255,92,154,.2),transparent 60%),radial-gradient(120% 80% at 100% 100%,rgba(167,139,250,.18),transparent 60%),var(--bg-elev);box-shadow:0 10px 30px #ff5c9a38}.premium-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);white-space:nowrap;padding:3px 12px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--violet));color:#fff;font-size:.75rem;font-weight:700}.premium-name{font-family:"Fredoka","M PLUS Rounded 1c",var(--font);font-weight:600;font-size:1.25rem}.premium-price{font-size:2rem;font-weight:800;line-height:1.1}.premium-price small{font-size:.85rem;font-weight:500;color:var(--text-muted)}.premium-quota{font-weight:600;color:#ffd1e3}.premium-perday{font-size:.85rem;color:var(--text-muted)}.premium-features{list-style:none;padding:0;margin:10px 0 14px;display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--text-muted)}.premium-features li:before{content:"♡ ";color:var(--accent)}.premium-cta{margin-top:auto;text-align:center;justify-content:center}.premium-note{text-align:center;margin-top:14px}.premium-card:before{content:"";position:absolute;top:0;left:18px;right:18px;height:3px;border-radius:0 0 4px 4px;background:var(--tier, var(--accent))}.premium-card.tier-1{--tier: linear-gradient(90deg, #ffb3cf, #ff8ab8)}.premium-card.tier-2{--tier: linear-gradient(90deg, #ff5c9a, #ff8ab8)}.premium-card.tier-3{--tier: linear-gradient(90deg, #c4b2ff, #a78bfa)}.premium-card.tier-4{--tier: linear-gradient(90deg, #ffd27a, #ff9ec4, #c4b2ff)}.premium-card.tier-3 .premium-name{color:#c4b2ff}.premium-card.tier-4 .premium-name{background:linear-gradient(90deg,#ffd27a,#ff9ec4);-webkit-background-clip:text;background-clip:text;color:transparent}.premium-card.tier-4{border-color:#ffd27a73;background:radial-gradient(120% 80% at 100% 0%,rgba(255,210,122,.12),transparent 60%),radial-gradient(120% 80% at 0% 100%,rgba(167,139,250,.14),transparent 60%),var(--bg-elev)}.premium-card.tier-4:hover{border-color:#ffd27abf;box-shadow:0 14px 34px #ffd27a2e}.premium-perks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}.premium-perk{display:flex;flex-direction:column;gap:4px;padding:18px;border-radius:16px;border:1px solid var(--border);background:linear-gradient(180deg,var(--sheen),transparent 80px),var(--bg-elev);text-align:center;align-items:center}.premium-perk-icon{font-size:1.8rem;line-height:1.2}.premium-perk strong{font-family:var(--font-moe-title);font-weight:600}.premium-perk span:last-child{font-size:.88rem;color:var(--text-muted)}.premium-pay{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:26px}.premium-pay-chip{padding:4px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elev);font-size:.8rem;font-weight:700;color:#ffd1e3}@media(max-width:960px){.premium-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}}@media(max-width:560px){.premium-page{padding:16px 16px 8px}.premium-grid{grid-template-columns:1fr}.premium-head{min-height:240px}.premium-perks{grid-template-columns:1fr}}.sidebar-lang{display:flex;align-items:center;gap:8px;margin:10px 0 4px;padding:7px 8px 7px 12px;border-radius:999px;border:1px solid transparent;background:linear-gradient(var(--bg-elev-2),var(--bg-elev-2)) padding-box,linear-gradient(90deg,#ff5c9ab3,#a78bfab3) border-box;box-shadow:0 4px 14px #ff5c9a1f;font-size:.85rem;color:var(--text-muted);cursor:pointer;transition:box-shadow .2s}.sidebar-lang:hover{box-shadow:0 6px 18px #ff5c9a40}.sidebar-lang.busy{opacity:.6}.sidebar-lang-ico{font-size:1rem;line-height:1}.sidebar-lang-label{white-space:nowrap;font-weight:500}.sidebar-lang-pick{position:relative;margin-left:auto;min-width:0}.sidebar-lang-pick:after{content:"▾";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#fff;font-size:.75rem;pointer-events:none}.sidebar-lang-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;outline:none;max-width:120px;padding:4px 26px 4px 12px;min-height:0;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--violet));color:#fff;font:inherit;font-weight:700;cursor:pointer;box-shadow:none}.sidebar-lang-select:focus-visible{box-shadow:0 0 0 3px #ff5c9a59}.sidebar-lang-select option{background:var(--bg-elev);color:var(--text)}body{font-family:var(--font-moe)}h1,h2,h3{font-family:var(--font-moe-title);font-weight:600;letter-spacing:.01em}.chat-messages,.chat-messages h1,.chat-messages h2,.chat-messages h3,.composer,.admin-root,.admin-root h1,.admin-root h2,.admin-root h3{font-family:var(--font)}.chat-side-title-row{display:flex;align-items:center;gap:8px}.chat-side-title-row h2{flex:1;min-width:0}.chat-side-collapse{flex:none;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px 0 9px;border-radius:999px;border:1.5px solid rgba(255,255,255,.3);background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.3),transparent 60%),linear-gradient(135deg,#ff5c9abf,#a78bfabf);color:#fff;font:inherit;font-size:.78rem;font-weight:700;white-space:nowrap;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 14px #ff5c9a4d,inset 0 1px #ffffff4d;transition:transform .2s,box-shadow .2s}.chat-side-collapse svg{width:14px;height:14px}.chat-side-collapse:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ff5c9a8c,0 0 0 3px #ff5c9a2e}.chat-side-collapse:active{transform:scale(.96)}.chat-side.text-collapsed .hero-shade{background:linear-gradient(to top,#10101ad9,#10101a00 18%)}.account-page{max-width:880px}.account-hero{display:flex;align-items:center;gap:14px;padding:18px;margin-bottom:14px;border-radius:20px;border:1px solid var(--border);background:radial-gradient(80% 140% at 0% 0%,rgba(255,92,154,.18),transparent 60%),radial-gradient(80% 140% at 100% 100%,rgba(167,139,250,.16),transparent 60%),var(--bg-elev)}.account-avatar{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-moe-title);font-size:1.6rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),var(--violet));box-shadow:0 6px 18px #ff5c9a59}.account-hero-main{flex:1;min-width:0}.account-hero-main h1{margin:0;font-size:1.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-plan-badge{flex:none;padding:4px 12px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--violet));color:#fff;font-weight:700;font-size:.82rem;white-space:nowrap}.account-tabs{display:flex;gap:6px;padding:4px;margin-bottom:14px;border-radius:999px;background:var(--bg-elev);border:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.account-tabs button{flex:1 0 auto;border:0;background:none;color:var(--text-muted);font:inherit;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap}.account-tabs button.on{background:linear-gradient(90deg,var(--accent),var(--violet));color:#fff;box-shadow:0 4px 14px #ff5c9a4d}.account-card{padding:18px;margin-bottom:14px;border-radius:18px;border:1px solid var(--border);background:var(--bg-elev)}.account-card h2{margin:0 0 12px;font-size:1.1rem}.account-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.account-card-head h2{margin:0}.account-info{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:8px 16px;margin:0}.account-info dt{color:var(--text-muted);font-size:.88rem}.account-info dd{margin:0;font-weight:600;overflow-wrap:anywhere}.account-link-row{display:flex;align-items:center;gap:12px}.account-link-ico{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800;color:#fff}.account-link-ico.patreon{background:#f96854}.account-link-main{flex:1;min-width:0}.account-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.account-stat{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:16px;border:1px solid var(--border);background:radial-gradient(100% 100% at 0% 0%,rgba(255,92,154,.12),transparent 70%),var(--bg-elev)}.account-stat b{font-family:var(--font-moe-title);font-size:1.6rem;line-height:1.1;background:linear-gradient(90deg,#ff7fb0,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.account-stat span{font-size:.8rem;color:var(--text-muted)}.account-chars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.account-char{display:flex;align-items:center;gap:12px;padding:10px;border-radius:14px;background:var(--bg-elev-2)}.account-char-rank{flex:none;width:22px;text-align:center;font-family:var(--font-moe-title);font-weight:700;color:var(--accent)}.account-char-avatar{flex:none;width:52px;height:52px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--bg-elev);border:2px solid rgba(255,92,154,.5);color:var(--text);text-decoration:none}.account-char-avatar img{width:100%;height:100%;object-fit:cover;object-position:center top}.account-char-main{flex:1;min-width:0}.account-char-name{display:flex;align-items:center;gap:6px;font-weight:700}.account-char-name a{color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-char-fav{color:var(--accent)}.account-char-meta{display:flex;flex-wrap:wrap;gap:4px 12px}.account-char-gallery{display:flex;align-items:center;gap:8px;margin-top:6px}.account-char-gallery .progress-track{flex:1;max-width:200px}.account-char-go{flex:none}@media(max-width:640px){.account-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.account-hero{flex-wrap:wrap}.account-char-go{display:none}}.mode-grid{position:relative;margin:4px 0 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mode-card{--mode: var(--accent);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:center;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--mode) 16%,var(--bg-elev)),var(--bg-elev) 70%);transition:transform .15s,border-color .15s,box-shadow .15s}.mode-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--mode) 60%,var(--border));box-shadow:0 8px 24px color-mix(in srgb,var(--mode) 22%,transparent)}.mode-icon{grid-row:1 / span 2;width:44px;height:44px;display:grid;place-items:center;font-size:1.4rem;border-radius:12px;background:color-mix(in srgb,var(--mode) 22%,var(--bg));border:1px solid color-mix(in srgb,var(--mode) 45%,transparent);box-shadow:inset 0 1px #ffffff1f}.mode-name{font-family:var(--font-moe-title);font-weight:700;font-size:1.02rem;display:inline-flex;align-items:center;gap:8px}.mode-badge{font-family:var(--font-moe);font-size:.66rem;font-weight:800;letter-spacing:.06em;padding:1px 6px;border-radius:999px;color:#fff;background:linear-gradient(90deg,var(--accent),#ff3f6f)}.mode-sub{font-size:.85rem;color:var(--text-muted);line-height:1.3;white-space:pre-line}.mode-romance{--mode: #ff5c9a}.mode-friends{--mode: #4fd1c5}.mode-nsfw{--mode: #ff4d4d}.mode-drama{--mode: #a78bfa}.mode-adventure{--mode: #f6ad55}.mode-daily{--mode: #68d391}@media(min-width:900px){.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mode-card{padding:14px 16px}}@media(max-width:480px){.mode-grid{grid-template-columns:1fr}}@media(max-width:720px){.land-hero{margin:-14px calc(-1 * var(--gutter)) 0;border-radius:0;border-left:0;border-right:0;min-height:calc(100svh - 61px - env(safe-area-inset-top));display:flex;flex-direction:column;justify-content:flex-end;padding:28px var(--gutter) 30px}.land-hero:after{right:-160px;top:-120px}.land-hero h1{font-size:1.9rem;margin-bottom:12px}.land-hero p{font-size:.98rem}.land-hero .mode-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:64%;gap:12px;margin:10px calc(-1 * var(--gutter)) 20px;padding:6px var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--gutter);scrollbar-width:none}.land-hero .mode-grid::-webkit-scrollbar{display:none}.land-hero .mode-card{scroll-snap-align:start;position:relative;overflow:hidden;grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:4px;align-content:end;min-height:196px;padding:16px;background:radial-gradient(120% 80% at 85% 0%,color-mix(in srgb,var(--mode) 34%,transparent),transparent 60%),linear-gradient(180deg,color-mix(in srgb,var(--mode) 10%,var(--bg-elev)),var(--bg-elev));border-color:color-mix(in srgb,var(--mode) 40%,var(--border))}.land-hero .mode-card:before{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:color-mix(in srgb,var(--mode) 28%,transparent);filter:blur(26px);pointer-events:none}.land-hero .mode-icon{grid-row:auto;width:72px;height:72px;font-size:2.3rem;border-radius:20px;margin-bottom:10px;background:color-mix(in srgb,var(--mode) 26%,var(--bg));border-color:color-mix(in srgb,var(--mode) 55%,transparent);box-shadow:inset 0 1px #ffffff24,0 10px 24px color-mix(in srgb,var(--mode) 28%,transparent)}.land-hero .mode-name{font-size:1.2rem}.land-hero .mode-sub{font-size:.9rem}.land-hero .land-cta{width:100%;justify-content:center;padding-top:12px;padding-bottom:12px;font-size:1.02rem}}.explore-title{margin:4px 0 14px}.explore-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}.explore-side{position:sticky;top:72px;max-height:calc(100dvh - 88px);overflow-y:auto;padding:14px;border-radius:16px;border:1px solid var(--border);background:linear-gradient(180deg,var(--sheen),transparent 80px),var(--bg-elev);scrollbar-width:thin}.explore-side-head,.explore-side-done,.explore-mobile-search,.explore-filters-btn,.explore-backdrop{display:none}.explore-side-search .explore-search,.explore-mobile-search .explore-search{width:100%;min-width:0;max-width:none;min-height:40px;margin:0 0 6px}.side-section{padding:10px 0;border-top:1px solid var(--border)}.explore-side-search+.side-section{border-top:0}.side-title{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 6px;padding:2px 4px;border:0;background:none;color:var(--text-muted);font:inherit;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:left}.side-toggle{cursor:pointer}.side-toggle:hover{color:var(--text)}.side-caret{margin-left:auto}.side-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.side-option{display:flex;align-items:center;gap:10px;width:100%;min-height:34px;padding:4px 8px;border:0;border-radius:9px;background:none;color:var(--text);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.side-option:hover{background:#ffffff0d}.side-option.on{background:linear-gradient(90deg,#ff5c9a2e,#a78bfa1f);color:#ffd1e3;font-weight:600}.side-radio{flex:none;width:14px;height:14px;border-radius:50%;border:2px solid var(--border)}.side-option.on .side-radio{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 45%,transparent 50%)}.side-option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-count{font-size:.75rem;color:var(--text-muted)}.side-more,.side-clear{margin:4px 0 0;padding:4px 8px;border:0;background:none;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer}.side-clear{width:100%;margin-top:8px;padding:10px;border-top:1px solid var(--border);color:var(--text-muted);text-align:left}.side-clear:hover{color:var(--text)}.explore-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.explore-sort{margin-left:auto}.explore-chosen{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}@media(max-width:900px){.explore-layout{grid-template-columns:1fr}.explore-mobile-search{display:block;margin-bottom:10px}.explore-mobile-search .explore-search{width:100%}.explore-side-search{display:none}.explore-filters-btn{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.explore-filters-n{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:.75rem;line-height:20px;text-align:center}.explore-count{display:none}.explore-side{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:60;max-height:82dvh;border-radius:20px 20px 0 0;padding:0 16px calc(16px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform .25s ease;box-shadow:0 -10px 40px #00000080}.explore-side.open{transform:none}.explore-side-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;margin:0 -16px;padding:14px 16px 10px;background:var(--bg-elev);border-bottom:1px solid var(--border)}.explore-side-close{border:0;background:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer}.explore-side-head+.explore-side-search+.side-section{border-top:0}.explore-side-done{display:flex;position:sticky;bottom:0;margin-top:10px}.explore-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:59;background:#0000008c}}.acct-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:6px}.acct-plan{position:relative;display:flex;flex-direction:column;gap:4px;padding:20px 16px 16px;border-radius:16px;border:1px solid var(--border);background:radial-gradient(120% 80% at 0% 0%,rgba(255,92,154,.07),transparent 60%),var(--bg-elev)}.acct-plan:before{content:"";position:absolute;top:0;left:16px;right:16px;height:3px;border-radius:0 0 4px 4px;background:var(--tier, var(--border))}.acct-plan.tier-1{--tier: linear-gradient(90deg, #ffb3cf, #ff8ab8)}.acct-plan.tier-2{--tier: linear-gradient(90deg, #ff5c9a, #ff8ab8)}.acct-plan.tier-3{--tier: linear-gradient(90deg, #c4b2ff, #a78bfa)}.acct-plan.tier-4{--tier: linear-gradient(90deg, #ffd27a, #ff9ec4, #c4b2ff)}.acct-plan.tier-3 .acct-plan-name{color:#c4b2ff}.acct-plan.tier-4 .acct-plan-name{color:#ffd27a}.acct-plan.current,.acct-plan.chosen{border:2px solid var(--accent);box-shadow:0 0 0 4px #ff5c9a1f}.acct-plan-flag{position:absolute;top:-11px;left:50%;transform:translate(-50%);white-space:nowrap;padding:2px 12px;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--violet));color:#fff;font-size:.72rem;font-weight:700}.acct-plan-name{font-family:var(--font-moe-title);font-weight:600;font-size:1.1rem}.acct-plan-price{font-size:1.6rem;font-weight:800;line-height:1.15}.acct-plan-price small{font-size:.8rem;font-weight:500;color:var(--text-muted)}.acct-plan-quota{font-weight:600;font-size:.9rem;color:#ffd1e3}.acct-plan-perday{font-size:.8rem;color:var(--text-muted)}.acct-plan-pay{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:6px}.acct-plan-pay .btn{justify-content:center;text-align:center}.acct-plan-pay .pay-btn:before,.pay-dot:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle;background:var(--pay, var(--accent))}.pay-paypal{--pay: #3b9bf0}.pay-patreon{--pay: #ff5c5c}.pay-crypto{--pay: #f2b632}.acct-plan-pay .pay-btn:hover:not(:disabled){border-color:var(--pay)}.pay-notes{margin-top:18px;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:#ffffff05}.pay-notes h3{margin:0 0 8px;font-size:.95rem}.pay-notes ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.85rem;color:var(--text-muted);line-height:1.45}.pay-notes b{color:var(--text);font-weight:600;margin-right:4px}.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-btn:disabled{opacity:.5;cursor:default}.site-footer-cats{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;padding:18px 16px 20px;border-radius:18px;border:1px solid rgba(255,92,154,.18);background:#10101a59}.site-footer-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.foot-chip{padding:6px 14px;border-radius:999px;border:1px solid rgba(167,139,250,.25);background:#a78bfa14;color:var(--text-muted);font-size:.84rem;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s,background .2s,transform .2s}.foot-chip:hover{color:#fff;border-color:#ff5c9a99;background:#ff5c9a29;transform:translateY(-1px)}.landing-head{position:relative;overflow:hidden;margin:4px 0;padding:30px 28px;border-radius:var(--radius);border:1px solid rgba(255,92,154,.22);background:radial-gradient(70% 140% at 0% 0%,rgba(255,92,154,.16),transparent 70%),radial-gradient(60% 140% at 100% 100%,rgba(167,139,250,.16),transparent 70%),var(--bg-elev);text-align:center;font-family:var(--font-moe)}.landing-head h1{margin:0 auto 10px;max-width:24ch;font-family:var(--font-moe-title);font-size:clamp(1.6rem,3.6vw,2.3rem);line-height:1.15;background:linear-gradient(90deg,#ff9cc2,var(--accent) 45%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.landing-head p{margin:0 auto;max-width:68ch;color:var(--text-muted);line-height:1.65}.landing-more{display:flex;justify-content:center;margin:8px 0 0}.landing-cats{margin-top:8px;padding:22px 18px 24px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-elev);text-align:center}.landing-cats h2{font-family:var(--font-moe-title);font-size:1.1rem;margin:0 0 14px}.landing-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.landing-chips .chip{text-decoration:none}.landing-chips .chip:hover{border-color:#ff5c9a99;color:#fff}@media(max-width:720px){.landing-head{padding:22px 16px}}.char-admin-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.char-admin-bar input[type=search]{flex:1 1 260px;min-width:0}.char-admin-bar .seg{display:flex;flex-wrap:wrap;gap:6px}.char-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.char-admin-card{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg);display:flex;flex-direction:column}.char-admin-card.draft .char-admin-cover img{filter:saturate(.55)}.char-admin-cover{position:relative;display:block;aspect-ratio:3 / 4;background:var(--bg-elev)}.char-admin-cover img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.char-admin-noimg{width:100%;height:100%;display:grid;place-items:center;font-size:3rem;color:var(--text-muted)}.char-admin-state{position:absolute;top:8px;left:8px}.char-admin-key{position:absolute;top:8px;right:8px}.char-admin-body{padding:10px;display:flex;flex-direction:column;gap:4px;flex:1}.char-admin-name{font-weight:600}.char-admin-line{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.char-admin-body .actions{margin-top:auto;padding-top:6px;display:flex;flex-wrap:wrap;gap:6px}.gal-admin-grid.gal-dnd{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.gal-dnd .gal-tile{cursor:grab;transition:opacity .15s,outline-color .15s;outline:2px solid transparent;outline-offset:2px}.gal-dnd .gal-tile.dragging{opacity:.35;cursor:grabbing}.gal-dnd .gal-tile.drop-here{outline-color:var(--accent)}.gal-dnd .gal-tile.off{opacity:.5}.gal-tile-head .gal-num{font-weight:600;color:var(--text)}.gal-tile-head .gal-src{margin-left:auto;overflow:hidden;text-overflow:ellipsis}.gal-dnd .tile-body{gap:6px}.gal-dnd .gal-toggle{width:100%}.rate-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;background:#0a0812b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rate-prompt{position:relative;width:min(380px,100%);padding:16px 18px 14px;border-radius:18px;border:1px solid transparent;background:linear-gradient(var(--bg-elev-2),var(--bg-elev-2)) padding-box,linear-gradient(135deg,#ff5c9acc,#a78bfacc) border-box;box-shadow:0 14px 40px #00000073,0 0 24px #ff5c9a2e;text-align:center;animation:rate-in .25s ease-out}@keyframes rate-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.rate-prompt h4{margin:0 24px 2px;font-size:1rem}.rate-prompt p{margin:0}.rate-stars{display:flex;justify-content:center;gap:4px;margin:10px 0}.rate-star{background:none;border:none;padding:2px 4px;font-size:2rem;line-height:1;color:var(--text-faint, rgba(244, 239, 248, .25));transition:color .12s,transform .12s}.rate-star.on{color:#ffc857;text-shadow:0 0 12px rgba(255,200,87,.45)}.rate-star:hover{transform:scale(1.12)}.rate-prompt textarea{margin:4px 0 2px;min-height:0;font-size:.9rem}.rate-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:10px}.rate-need{margin-right:auto}.rate-thanks{padding:10px 0;font-weight:600}.sidebar-feedback{display:block;width:100%;margin:2px 0 4px;padding:6px 12px;border:none;border-radius:999px;background:none;color:var(--text-muted);font-size:.82rem;text-align:left;text-decoration:none;box-sizing:border-box}.sidebar-feedback:hover{color:var(--text);background:var(--bg-elev-2)}.support-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.support-head h2{margin:0 0 4px}.support-head p{margin:0}.support-form{display:flex;flex-direction:column;gap:10px;margin-top:8px}.support-form .chips{flex-wrap:wrap}.support-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.ticket-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ticket-row{width:100%;display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--bg-elev);color:inherit}.ticket-row:hover,.ticket-row.on{border-color:var(--accent)}.ticket-row.unread{box-shadow:inset 3px 0 0 var(--accent)}.ticket-row-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ticket-row-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-status{font-size:.72rem;padding:2px 8px;border-radius:999px;background:var(--bg-elev-2);color:var(--text-muted)}.ticket-status.open{background:#f5c4512e;color:#f5c451}.ticket-status.answered{background:#58c98b2e;color:#58c98b}.ticket-dot{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:var(--accent);vertical-align:middle}.ticket-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}.ticket-head h2,.ticket-head h3{margin:0}.ticket-thread{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow-y:auto;padding:6px 2px 12px}.ticket-msg{max-width:85%;padding:10px 14px;border-radius:14px;background:var(--bg-elev);border:1px solid var(--border)}.ticket-msg.user{align-self:flex-end;background:var(--accent-soft);border-color:transparent}.ticket-msg.admin{align-self:flex-start}.ticket-msg-who{margin-bottom:4px;color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ticket-msg-body{white-space:pre-wrap;overflow-wrap:anywhere}.ticket-context{white-space:pre-wrap;font-size:.8rem;padding:10px 12px;border-radius:10px;background:var(--bg-elev);border:1px dashed var(--border);margin:0 0 10px}.tickets-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.tickets-side{display:flex;flex-direction:column;gap:10px;max-height:80vh;overflow-y:auto}.tickets-main textarea{width:100%}@media(max-width:900px){.tickets-layout{grid-template-columns:1fr}.support-head{flex-direction:column}}
