:root{--bg:#07060d;--glass:#140e2085;--glass-strong:#181026db;--line:#ffffff1f;--text:#f6eefc;--muted:#b9aacb;--accent:#ff5fa2;--accent-2:#9d7bff;--ok:#58f0a6;--warn:#ffc857;--err:#ff6b6b;--radius:18px;--font:"M PLUS Rounded 1c", ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}#stage{position:fixed;inset:0}#stage canvas{touch-action:none;width:100%;height:100%;display:block}button{font:inherit;color:inherit;cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.loader{background:radial-gradient(circle at 50% 45%, #1d1030 0%, var(--bg) 70%);z-index:50;place-content:center;justify-items:center;gap:14px;transition:opacity .6s;display:grid;position:fixed;inset:0}.loader.hidden{opacity:0;pointer-events:none}.loader-heart{color:var(--accent);text-shadow:0 0 24px var(--accent);font-size:44px;animation:1.1s ease-in-out infinite beat}.loader-text{color:var(--muted);letter-spacing:.04em;font-size:14px}.loader-bar{background:#ffffff14;border-radius:3px;width:180px;height:3px;overflow:hidden}.loader-bar span{background:linear-gradient(90deg, var(--accent), var(--accent-2));width:0%;height:100%;transition:width .2s;display:block}@keyframes beat{0%,to{transform:scale(1)}30%{transform:scale(1.18)}60%{transform:scale(.96)}}.topbar{padding:max(14px, env(safe-area-inset-top)) 16px 0;z-index:10;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.identity{gap:4px;display:grid}.name{letter-spacing:.01em;text-shadow:0 2px 18px #ff5fa273;font-size:22px;font-weight:800}.status{color:var(--muted);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);border-radius:99px;align-items:center;gap:7px;width:max-content;padding:4px 10px 4px 8px;font-size:12px;display:inline-flex}.status i{background:#6b6279;border-radius:50%;width:8px;height:8px;box-shadow:0 0 #0000}.status[data-state=connecting] i{background:var(--warn);animation:1s infinite pulse}.status[data-state=listening] i{background:var(--ok);box-shadow:0 0 10px var(--ok)}.status[data-state=thinking] i{background:var(--accent-2);animation:.8s infinite pulse}.status[data-state=speaking] i{background:var(--accent);box-shadow:0 0 12px var(--accent)}.status[data-state=error] i{background:var(--err)}@keyframes pulse{50%{opacity:.35}}.affection{flex-direction:column;align-items:center;gap:2px;margin-top:4px;display:flex}.hearts{gap:3px;font-size:16px;display:flex}.hearts b{color:#ffffff2e;font-weight:400;transition:color .4s,transform .4s,text-shadow .4s}.hearts b.on{color:var(--accent);text-shadow:0 0 10px var(--accent)}.hearts b.pop{transform:scale(1.5)}.level-label{color:var(--muted);letter-spacing:.06em;font-size:11px}.tools{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tools>*{flex-shrink:0}.icon-btn{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);border-radius:14px;place-items:center;width:42px;height:42px;transition:background .2s,transform .15s;display:grid}.icon-btn:hover{background:#ff5fa22e}.icon-btn:active{transform:scale(.94)}.subtitles{left:50%;bottom:calc(92px + env(safe-area-inset-bottom));text-align:center;z-index:5;pointer-events:none;gap:6px;width:min(720px,100% - 32px);display:grid;position:fixed;transform:translate(-50%)}.subtitles.off{display:none}.subtitles p{margin:0;transition:opacity .5s}.sub-ai{text-shadow:0 2px 10px #000000e6,0 0 2px #000000e6;font-size:clamp(16px,2.2vw,20px);font-weight:500;line-height:1.45}.sub-user{color:var(--muted);text-shadow:0 1px 6px #000000e6;font-size:13px}.subtitles p:empty{opacity:0}.dock{z-index:10;padding:28px 16px max(14px, env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(#0000,#07060d99);justify-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.dock>*{pointer-events:auto}.dock-row{align-items:center;gap:10px;width:min(640px,100%);display:flex}.quick{background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);opacity:0;pointer-events:none;width:min(640px,100% - 32px);max-height:46vh;padding:12px;transition:opacity .2s,transform .2s;position:absolute;bottom:calc(100% - 18px);left:50%;overflow:auto;transform:translate(-50%,8px)}.quick.open{opacity:1;pointer-events:auto;transform:translate(-50%)}.quick-title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:2px 4px 8px;font-size:11px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.chips:last-child{margin-bottom:0}.chip{border:1px solid var(--line);background:#ffffff0d;border-radius:99px;padding:7px 12px;font-size:13px;transition:background .2s,border-color .2s}.chip:hover{background:#ff5fa22e;border-color:#ff5fa273}.chip.active,#btn-quick[aria-expanded=true]{border-color:var(--accent);background:#ff5fa247}.composer{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);border-radius:99px;flex:1;align-items:center;gap:6px;min-width:0;padding:5px 5px 5px 16px;display:flex}.composer input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:8px 0;font-size:15px}.composer input::placeholder{color:#8c7fa0}.send{background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.send svg{fill:#fff;stroke:none;width:17px;height:17px}.call-btn{background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;border-radius:50%;flex:none;place-items:center;width:56px;height:56px;transition:transform .15s,background .3s;display:grid;position:relative;box-shadow:0 8px 30px #ff5fa273}.call-btn svg{stroke:#fff;stroke-width:2px;width:26px;height:26px}.call-btn .ico-end{fill:#fff;stroke:none;display:none}.call-btn:active{transform:scale(.94)}.call-btn .ring{border:2px solid var(--accent);opacity:0;border-radius:50%;position:absolute;inset:-6px}.call-btn.live{background:linear-gradient(135deg,#ff4d6d,#c9184a)}.call-btn.live .ico-mic{display:none}.call-btn.live .ico-end{display:block}.call-btn.live .ring{animation:1.6s ease-out infinite ring}.call-btn.busy{opacity:.7;pointer-events:none}@keyframes ring{0%{opacity:.8;transform:scale(.9)}to{opacity:0;transform:scale(1.35)}}.sheet{border:1px solid var(--line);background:var(--glass-strong);width:min(560px,100% - 32px);max-height:calc(100% - 48px);color:var(--text);-webkit-backdrop-filter:blur(20px);border-radius:22px;padding:0}.sheet::backdrop{background:#00000080}.sheet form{gap:14px;padding:22px;display:grid}.sheet h2{margin:0 0 4px;font-size:20px}.sheet label{color:var(--muted);gap:6px;font-size:13px;display:grid}.sheet input:not([type=checkbox]),.sheet select,.sheet textarea{font:inherit;color:var(--text);border:1px solid var(--line);resize:vertical;background:#ffffff0f;border-radius:12px;outline:none;padding:10px 12px;font-size:14px}.sheet input:focus,.sheet select:focus,.sheet textarea:focus{border-color:var(--accent)}.sheet .row{flex-wrap:wrap;gap:18px;display:flex}.sheet .check{color:var(--text);align-items:center;gap:8px;display:flex}.sheet .small{color:var(--muted);font-size:12px}.sheet .actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.sheet .actions button{border:1px solid var(--line);background:#ffffff0f;border-radius:12px;padding:10px 16px}.sheet .actions .primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;font-weight:700}.minutes-chip{width:max-content;font:inherit;color:var(--text);background:var(--glass);border:1px solid var(--line);cursor:pointer;-webkit-backdrop-filter:blur(12px);border-radius:99px;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-size:12px;font-weight:700;display:inline-flex}.minutes-chip svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:14px;height:14px}.minutes-chip.low{border-color:var(--warn);color:var(--warn)}.minutes-chip.out{border-color:var(--err);color:var(--err)}.sheet .lead{color:var(--text);margin:0;font-size:14px;line-height:1.5}.sheet .sheet-body{gap:14px;padding:22px;display:grid}.sheet .primary-link{color:var(--accent);justify-self:start;font-weight:700}.sheet .actions .ghost{background:0 0}.plans{gap:10px;display:grid}.plan{text-align:left;width:100%;font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#ffffff0d;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:border-color .2s,background .2s;display:flex}.plan:hover,.plan:focus-visible{border-color:var(--accent);background:#ff5fa214;outline:none}.plan .what{gap:2px;display:grid}.plan .what b{font-size:15px}.plan .what span{color:var(--muted);font-size:12px}.plan .price{white-space:nowrap;font-size:15px;font-weight:800}.plan[disabled]{opacity:.5;pointer-events:none}.balance{gap:6px;font-size:14px;display:grid}.balance .total{font-size:22px;font-weight:800}.balance .parts{color:var(--muted);font-size:12px}.memory-box{border:1px solid var(--line);background:#ffffff08;border-radius:14px;gap:10px;padding:14px;display:grid}.memory-box h3{margin:0;font-size:14px}.memory-box .check{align-items:flex-start;font-size:13px;line-height:1.4}.link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-size:14px;font-weight:700}.memory-list{align-content:start;gap:14px;max-height:52vh;display:grid;overflow:auto}.tabs{gap:6px;display:flex}.tabs button{font:inherit;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:99px;padding:6px 12px;font-size:13px;font-weight:700}.tabs button.active{color:var(--text);border-color:var(--accent);background:#ff5fa21f}.note-card{background:#ffffff0a;border:1px solid #0000;border-radius:12px;gap:6px;padding:10px 12px;display:grid}.note-card.flash{border-color:var(--accent)}.note-card .head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.note-card .head b{font-size:15px}.note-card p{margin:0;font-size:13px;line-height:1.45}.note-card ul{color:var(--muted);margin:0;padding-left:18px;font-size:13px}.note-card .chips{flex-wrap:wrap;gap:6px;display:flex}.note-card .chips button{font:inherit;color:var(--accent);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:99px;padding:2px 8px;font-size:12px}.note-card .head button{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex:none}.day-row{width:100%;font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#ffffff08;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.transcript{gap:6px;font-size:13px;line-height:1.45;display:grid}.transcript .me{color:var(--muted)}.transcript .her{color:var(--text)}.memory-group h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:12px}.memory-item{background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;font-size:14px;line-height:1.4;display:flex}.memory-item .meta{color:var(--muted);margin-top:2px;font-size:11px;display:block}.memory-item button{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex:none}.memory-item button:hover{color:var(--err);border-color:var(--err)}.panel{z-index:20;background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(20px);border-radius:22px;flex-direction:column;width:min(340px,100% - 24px);transition:transform .28s;display:flex;position:fixed;top:74px;bottom:96px;right:12px;overflow:hidden;transform:translate(calc(100% + 24px))}.panel.open{transform:none}.panel-head{justify-content:space-between;align-items:center;padding:14px 14px 6px 18px;display:flex}.panel-head h2{margin:0;font-size:19px}.panel-body{gap:16px;padding:4px 18px 18px;display:grid;overflow:auto}.ward-section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:700}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{border:2px solid #ffffff2e;border-radius:50%;width:30px;height:30px;padding:0;transition:transform .12s,border-color .2s;box-shadow:inset 0 0 0 2px #00000040}.swatch:hover{transform:scale(1.08)}.swatch.active{box-shadow:0 0 0 2px var(--accent), inset 0 0 0 2px #00000040;border-color:#fff}.swatch.orig{background:conic-gradient(from 45deg,#ff7eb6,#a78cff,#5fb7ff,#ffd36e,#ff7eb6)}.ward-row{color:var(--text);gap:6px;margin-top:10px;font-size:13px;display:grid}.ward-row .lbl{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.ward-row input[type=range]{width:100%;accent-color:var(--accent)}.toggle{cursor:pointer;align-items:center;gap:10px;margin-bottom:8px;font-size:14px;display:inline-flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.ward-actions{flex-wrap:wrap;gap:8px;display:flex}.ward-actions button{border:1px solid var(--line);background:#ffffff0f;border-radius:12px;padding:9px 12px;font-size:13px}.presets{flex-wrap:wrap;gap:6px;display:flex}.lbl-small{color:var(--muted);margin:8px 0 6px;font-size:12px}.ward-section>.chip{text-align:left;width:100%;margin-bottom:6px;display:block}.presets .chip.active{border-color:var(--accent);background:#ff5fa247}@media (max-width:640px){.panel{border-radius:22px 22px 0 0;width:100%;height:56vh;inset:auto 0 0;transform:translateY(105%)}.panel.open{transform:none}}.name-row{align-items:center;gap:8px;display:flex}.ai-badge{letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);background:var(--glass);border-radius:6px;padding:1px 5px;font-size:10px;font-weight:800}.icon-btn.on{color:var(--ok);background:#58f0a62e;border-color:#58f0a699}.eyes-preview{right:16px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:9;object-fit:cover;border:2px solid var(--ok);border-radius:50%;width:92px;height:92px;display:none;position:fixed;transform:scaleX(-1);box-shadow:0 6px 24px #00000073}.eyes-preview.on{display:block}.real-view{background:#050407;position:fixed;inset:0;overflow:hidden}.real-view:before{content:"";background:var(--portrait-bg) center / cover no-repeat;filter:blur(34px)brightness(.45)saturate(1.1);position:absolute;inset:-60px}.real-view .portrait-canvas{display:block;position:absolute;inset:0}.real-view .real-note{color:var(--muted);background:var(--glass-strong);border:1px solid var(--line);text-align:center;border-radius:14px;padding:12px 16px;font-size:14px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}body.mode-photo #stage{visibility:hidden}body.mode-photo #btn-wardrobe,body.mode-photo #btn-shot,body.mode-photo #btn-upload,body.mode-photo .affection{display:none}body.mode-photo .subtitles .sub-ai{text-shadow:0 2px 12px #000,0 0 3px #000}.mode-btn,.pill-btn{width:auto;padding:0 10px}.mode-btn .mode-label,.pill-btn .mode-label{letter-spacing:.04em;font-size:12px;font-weight:800}body:is(.mode-photo,.mode-real3d) .mode-btn{border-color:var(--accent);background:#ff5fa238}.drop-hint{border:2px dashed var(--accent);z-index:40;opacity:0;pointer-events:none;background:#ff5fa214;border-radius:24px;place-items:center;font-size:20px;font-weight:700;transition:opacity .2s;display:grid;position:fixed;inset:16px}.drop-hint.show{opacity:1}.toast{z-index:60;opacity:0;pointer-events:none;background:var(--glass-strong);border:1px solid var(--line);text-align:center;border-radius:14px;max-width:calc(100% - 32px);padding:10px 16px;font-size:14px;transition:opacity .25s,transform .25s;position:fixed;top:80px;left:50%;transform:translate(-50%,-10px)}.toast.show{opacity:1;transform:translate(-50%)}.toast.error{border-color:#ff6b6b99}@media (max-width:640px){.name{font-size:18px}.affection{display:none}.quick{gap:6px}.chip{padding:6px 10px;font-size:12px}.subtitles{bottom:calc(86px + env(safe-area-inset-bottom))}.tools{gap:6px}.icon-btn{border-radius:12px;width:38px;height:38px}.mode-btn,.pill-btn{width:auto;padding:0 8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
