:root{--ink:#202522;--muted:#737b76;--paper:#f6faf2;--surface:#ffffffd1;--line:#2025221c;--green:#79bd3f;--green-dark:#315c2b;--shadow:0 24px 70px #3f652d1c}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.placeholder-page{background:radial-gradient(circle at 18% 16%,#8eae9b33,#0000 32%),radial-gradient(circle at 84% 82%,#b8a1be24,#0000 30%),#edf1ee;place-items:center;min-height:100vh;padding:32px 20px;display:grid;overflow:hidden}.placeholder-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffc7;border:1px solid #fffc;border-radius:28px;width:min(680px,100%);padding:clamp(34px,7vw,68px);position:relative;overflow:hidden;box-shadow:0 28px 90px #253e311f}.placeholder-card:before{content:"";background:linear-gradient(90deg,#6f9580 0 34%,#d9dfdb 34% 100%);width:100%;height:4px;position:absolute;top:0;left:0}.placeholder-status{color:#4c725d;background:#e6efeab8;border:1px solid #4e776029;border-radius:99px;align-items:center;gap:9px;width:max-content;padding:7px 11px;font-size:12px;font-weight:700;display:flex}.placeholder-status span{background:#5e9876;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #5e98761f}.placeholder-heading{margin-top:clamp(42px,8vw,72px)}.placeholder-kicker{color:#718078;letter-spacing:.22em;margin:0 0 12px;font-family:Segoe UI,sans-serif;font-size:11px;font-weight:700}.placeholder-heading h1{color:#202622;letter-spacing:-.07em;margin:0;font-family:STSong,SimSun,serif;font-size:clamp(46px,9vw,76px);font-weight:500;line-height:1.08}.placeholder-heading h1 em{color:#6d8f7c;letter-spacing:-.03em;vertical-align:top;font-family:Segoe UI,sans-serif;font-size:.45em;font-style:normal;font-weight:600}.placeholder-description{color:#6d746f;max-width:470px;margin:22px 0 0;font-size:15px;line-height:1.9}.placeholder-progress{justify-content:space-between;margin:clamp(42px,8vw,66px) 0 32px;display:flex;position:relative}.placeholder-progress:before{content:"";border-top:1px dashed #c7cfca;position:absolute;top:4px;left:0;right:0}.placeholder-progress span{z-index:1;background:#d2d9d5;border:2px solid #fff;border-radius:50%;width:9px;height:9px;position:relative;box-shadow:0 0 0 1px #c7cfca}.placeholder-progress span:first-child{background:#69927a;box-shadow:0 0 0 1px #69927a}.placeholder-next p{color:#89918c;letter-spacing:.1em;margin:0 0 7px;font-size:11px}.placeholder-next h2{color:#303733;margin:0;font-family:STSong,SimSun,serif;font-size:clamp(23px,4vw,31px);font-weight:600}.placeholder-notice{color:#89908c;border-top:1px solid #2d39321a;margin:38px 0 0;padding-top:18px;font-size:12px}@media (max-width:520px){.placeholder-page{padding:14px}.placeholder-card{border-radius:22px;flex-direction:column;justify-content:center;min-height:calc(100dvh - 28px);padding:30px 26px;display:flex}.placeholder-heading{margin-top:48px}.placeholder-description{font-size:14px}.placeholder-notice{margin-top:32px}}.selection-page{background:radial-gradient(circle at 12% 20%,#b891691a,#0000 28%),radial-gradient(circle at 88% 82%,#8b5e3c12,#0000 30%),#f2eee7}.selection-header{text-align:center;margin-bottom:48px;display:block}.selection-header .eyebrow{color:#8b5e3c;margin-bottom:16px}.selection-header .intro{max-width:680px;margin:18px auto 0}@media (max-width:560px){.selection-header{margin-bottom:30px}}.selection-page{background-color:#edf1ed;background-image:linear-gradient(#ffffff5c 1px,#0000 1px),linear-gradient(90deg,#ffffff5c 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:100vh;padding:72px 28px 40px;position:relative;overflow:hidden}.ambient{filter:blur(8px);opacity:.35;pointer-events:none;border-radius:50%;width:520px;height:520px;position:absolute}.ambient-one{background:radial-gradient(circle,#b9d3c4 0,#0000 68%);top:-280px;left:-140px}.ambient-two{background:radial-gradient(circle,#d8c6b9 0,#0000 68%);bottom:-280px;right:-220px}.selection-shell{z-index:1;width:min(1080px,100%);margin:0 auto;position:relative}.selection-header{grid-template-columns:minmax(0,1fr) 320px;align-items:end;gap:20px;margin-bottom:42px;display:grid}.eyebrow{color:var(--green);letter-spacing:.22em;grid-column:1/-1;margin:0 0 10px;font-family:Segoe UI,sans-serif;font-size:12px;font-weight:700}.selection-header h1{letter-spacing:-.07em;margin:0;font-family:STSong,SimSun,serif;font-size:clamp(40px,6vw,72px);font-weight:500;line-height:1.05}.intro{color:var(--muted);margin:0 0 7px;font-size:15px;line-height:1.8}.character-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.character-card{--accent:#829b8b;background:var(--surface);opacity:0;min-height:430px;animation:.56s cubic-bezier(.2,.7,.2,1) forwards card-arrive;animation-delay:var(--delay);border:1px solid #ffffffb3;border-radius:22px;flex-direction:column;padding:18px;transition:transform .22s,box-shadow .22s,border-color .22s;display:flex;position:relative;overflow:hidden;box-shadow:0 5px 16px #1929210d}.character-card:after{background:color-mix(in srgb, var(--accent) 16%, transparent);content:"";filter:blur(22px);pointer-events:none;border-radius:50%;height:180px;position:absolute;inset:auto -50px -90px}.character-card:hover{z-index:2;border-color:color-mix(in srgb, var(--accent) 45%, white);box-shadow:var(--shadow);transform:translateY(-8px)}.character-card:focus-visible,.back-button:focus-visible,.composer input:focus-visible,.composer button:focus-visible{outline:3px solid color-mix(in srgb, var(--accent,var(--green)) 48%, white);outline-offset:3px}.portrait{isolation:isolate;aspect-ratio:1;background:color-mix(in srgb, var(--accent) 14%, white);border-radius:16px;width:100%;position:relative;overflow:hidden}.portrait img,.mini-portrait img,.message-avatar img{object-fit:cover;object-position:center top}.portrait img{z-index:0}.portrait-glow{--portrait-accent:#8fd14f;--portrait-glow-active:0;--portrait-glow-angle:0deg;z-index:2;border-radius:inherit;background:conic-gradient(from var(--portrait-glow-angle), transparent 0deg 72deg, color-mix(in srgb, var(--portrait-accent) 84%, white) 108deg, #d9a63c 142deg, #d878ab 174deg, #5d91ad 210deg, transparent 252deg 360deg);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--portrait-accent) 40%, transparent));opacity:calc(.18 + var(--portrait-glow-active) * .82);pointer-events:none;-webkit-mask-composite:xor;padding:2px;transition:opacity .26s,filter .26s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.character-card:hover .portrait-glow,.character-card:focus-visible .portrait-glow{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--portrait-accent) 55%, transparent))}.character-card:focus-visible .portrait-glow{--portrait-glow-active:1}.availability-badge{z-index:2;color:#315c47;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f5faf7d6;border:1px solid #ffffff94;border-radius:99px;align-items:center;gap:6px;padding:6px 9px;font-size:10px;font-weight:700;display:flex;position:absolute;top:29px;right:29px;box-shadow:0 5px 16px #1c31271a}.availability-badge i{background:#55a679;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #55a67924}.availability-badge.offline{color:#6f7672;background:#f2f4f3d6}.availability-badge.offline i{box-shadow:none;background:#a7ada9}.card-copy{padding:20px 4px 4px}.occupation{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:700}.card-copy h2{margin:0 0 9px;font-family:STSong,SimSun,serif;font-size:29px;font-weight:600}.tagline{color:#666e69;min-height:48px;margin:0;font-family:STKaiti,KaiTi,serif;font-size:15px;line-height:1.65}.tags{flex-wrap:wrap;gap:6px;margin-top:15px;display:flex}.tags span{border:1px solid color-mix(in srgb, var(--accent) 20%, transparent);color:color-mix(in srgb, var(--accent) 80%, #25312b);background:color-mix(in srgb, var(--accent) 7%, white);border-radius:99px;padding:5px 8px;font-size:10px}.enter-label{z-index:1;border-top:1px solid var(--line);color:#444b47;justify-content:space-between;align-items:center;margin-top:auto;padding:15px 3px 2px;font-size:13px;font-weight:600;display:flex;position:relative}.enter-label span{font-size:18px;transition:transform .18s}.character-card:hover .enter-label span{transform:translate(3px,-3px)}.selection-footer{color:#717a74;justify-content:center;align-items:center;gap:8px;margin-top:28px;font-size:12px;display:flex}.status-dot,.online-dot{background:#51a477;border-radius:50%;width:7px;height:7px;display:inline-block;box-shadow:0 0 0 4px #51a4771f}.chat-page{--accent:#829b8b;background:radial-gradient(circle at 15% 12%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 30%), radial-gradient(circle at 90% 84%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 28%), #e8ede9;place-items:center;min-height:100vh;padding:28px 20px 48px;display:grid}.chat-shell{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f5f7f5ed;border:1px solid #ffffffbd;border-radius:26px;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(760px,100%);height:min(800px,100vh - 90px);min-height:560px;display:grid;overflow:hidden;box-shadow:0 30px 100px #23362d2e}.chat-header{z-index:2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc7;grid-template-columns:42px 44px 1fr 42px;align-items:center;gap:10px;padding:15px 18px;display:grid}.back-button,.more-button{color:#4b544f;background:0 0;border:0;border-radius:12px;place-items:center;width:38px;height:38px;font-size:22px;transition:background .18s;display:grid}.back-button:hover{background:#eef1ef}.more-button{cursor:not-allowed;letter-spacing:2px;opacity:.35;font-size:14px}.mini-portrait,.message-avatar{background:color-mix(in srgb, var(--accent) 14%, white);box-shadow:0 6px 18px color-mix(in srgb, var(--accent) 24%, transparent);border-radius:14px;position:relative;overflow:hidden}.mini-portrait{width:42px;height:42px}.chat-identity h1{margin:0 0 4px;font-size:16px;font-weight:700}.chat-identity p{color:var(--muted);align-items:center;gap:7px;margin:0;font-size:11px;display:flex}.online-dot{width:5px;height:5px;box-shadow:none}.online-dot.offline{background:#a7ada9}.message-area{scrollbar-color:#c8cfca transparent;scrollbar-width:thin;padding:24px clamp(16px,4vw,36px) 28px;overflow-y:auto}.today-label{color:#8b928e;background:#d9dedb8c;border-radius:99px;width:max-content;margin:0 auto 26px;padding:5px 10px;font-size:10px}.message-row{align-items:flex-start;gap:10px;margin:0 0 18px;animation:.26s both message-in;display:flex}.message-row.user{justify-content:flex-end}.message-avatar{border-radius:11px;flex:none;width:34px;height:34px}.message-content{flex-direction:column;align-items:flex-start;gap:5px;max-width:min(72%,470px);display:flex}.user .message-content{align-items:flex-end}.message-bubble{color:#303632;white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:5px 17px 17px;max-width:100%;padding:12px 15px;font-size:14px;line-height:1.7;box-shadow:0 4px 14px #2a37300f}.message-time{color:#9aa19d;padding:0 3px;font-family:Segoe UI,sans-serif;font-size:9px;line-height:1}.user .message-bubble{color:#fff;background:var(--green);border-radius:17px 5px 17px 17px;box-shadow:0 7px 18px #2f655029}.typing-bubble{color:#7d8580;align-items:center;gap:8px;min-height:45px;font-size:12px;display:flex}.typing-dots{align-items:center;gap:4px;display:flex}.typing-dots i{background:color-mix(in srgb, var(--accent) 72%, white);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite typing}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}.composer{border-top:1px solid var(--line);background:#ffffffe0;grid-template-columns:1fr auto;gap:10px;padding:14px 16px 17px;display:grid}.composer input{width:100%;min-width:0;color:var(--ink);background:#eef1ef;border:1px solid #0000;border-radius:13px;outline:none;padding:13px 15px;font-size:14px;transition:background .18s,border-color .18s}.composer input:focus{border-color:color-mix(in srgb, var(--accent) 32%, transparent);background:#fff}.composer input::placeholder{color:#99a09c}.composer input:disabled{cursor:wait;color:#9aa19d;background:#e7ebe8}.composer button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:13px;min-width:68px;font-size:13px;font-weight:700;transition:transform .15s,background .15s,opacity .15s}.composer button:hover:not(:disabled){background:var(--green-dark);transform:translateY(-1px)}.composer button:disabled{cursor:not-allowed;opacity:.32}.prototype-note{color:#37413c94;letter-spacing:.04em;white-space:nowrap;margin:0;font-size:10px;position:fixed;bottom:15px;left:50%;transform:translate(-50%)}.not-found-page{text-align:center;place-content:center;gap:18px;min-height:100vh;display:grid}.not-found-page p{margin:0;font-family:STSong,SimSun,serif;font-size:26px}.not-found-page a{color:var(--green);font-size:14px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@keyframes card-arrive{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes slow-turn{to{transform:rotate(360deg)}}@keyframes message-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes typing{0%,60%,to{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (max-width:900px){.selection-header{grid-template-columns:1fr}.character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-card{min-height:420px}}@media (max-width:560px){.selection-page{padding:46px 16px 30px}.selection-header{margin-bottom:28px}.selection-header h1{font-size:42px}.intro{font-size:14px}.character-grid{grid-template-columns:1fr}.character-card{grid-template-columns:118px 1fr;gap:15px;min-height:auto;display:grid}.portrait{aspect-ratio:1;border-radius:14px}.availability-badge{padding:5px 7px;top:27px;left:92px;right:auto}.card-copy{padding:6px 0 0}.card-copy h2{font-size:25px}.tagline{min-height:0;font-size:13px}.tags{margin-top:10px}.enter-label{grid-column:1/-1}.chat-page{padding:0;display:block}.chat-shell{border:0;border-radius:0;width:100%;height:100dvh;min-height:0}.chat-header{padding-top:max(13px, env(safe-area-inset-top))}.composer{padding-bottom:max(14px, env(safe-area-inset-bottom))}.message-bubble{max-width:100%}.message-content{max-width:78%}.prototype-note{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.login-page{background:radial-gradient(circle at 16% 18%,#829b8b38,#0000 32%),radial-gradient(circle at 86% 82%,#877c9b21,#0000 30%),#edf1ee;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd1;border:1px solid #ffffffd1;border-radius:26px;width:min(460px,100%);padding:clamp(30px,6vw,52px);box-shadow:0 28px 90px #253e3121}.login-stage{color:#4c725d;background:#edf4f0;border:1px solid #4e776029;border-radius:99px;align-items:center;gap:8px;width:max-content;padding:6px 10px;font-size:11px;font-weight:700;display:flex}.login-stage span{background:#5e9876;border-radius:50%;width:6px;height:6px}.login-heading{margin:34px 0 30px}.login-heading p{color:#77827c;letter-spacing:.14em;margin:0 0 10px;font-size:11px;font-weight:700}.login-heading h1{letter-spacing:-.06em;margin:0 0 12px;font-family:STSong,SimSun,serif;font-size:42px;font-weight:600}.login-heading span{color:#747c77;font-size:14px}.login-form{display:grid}.login-form label{color:#4f5853;margin:0 0 8px;font-size:12px;font-weight:700}.login-form input{color:#262d29;background:#f8faf9e6;border:1px solid #dce2de;border-radius:12px;outline:none;width:100%;margin:0 0 18px;padding:13px 14px;font-size:14px;transition:border-color .16s,box-shadow .16s,background .16s}.login-form input:focus{background:#fff;border-color:#779785;box-shadow:0 0 0 3px #7797851f}.login-form input:disabled{cursor:wait;opacity:.68}.login-feedback{min-height:29px;margin-top:-7px}.login-feedback p{color:#a14f4f;margin:0;font-size:12px}.login-form button{color:#fff;cursor:pointer;background:#2f6550;border:0;border-radius:12px;min-height:46px;font-size:13px;font-weight:700;transition:transform .16s,background .16s,opacity .16s}.login-form button:hover:not(:disabled){background:#244f3e;transform:translateY(-1px)}.login-form button:disabled{cursor:not-allowed;opacity:.45}.login-mock-note{color:#79817c;background:#eff4f194;border:1px dashed #ccd6d0;border-radius:12px;margin-top:28px;padding:14px 15px}.login-mock-note strong{color:#59645e;font-size:11px}.login-mock-note p{margin:5px 0 0;font-size:11px;line-height:1.6}@media (max-width:520px){.login-page{padding:14px}.login-card{border-radius:22px;padding:30px 24px}.login-heading h1{font-size:38px}}.login-page{background:radial-gradient(circle at 15% 20%,#b8916921,#0000 28%),radial-gradient(circle at 85% 78%,#8b5e3c17,#0000 30%),#f2eee7;padding:clamp(18px,4vw,54px);position:relative;overflow:hidden}.login-shell{z-index:1;perspective:1200px;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);align-items:center;gap:clamp(28px,5vw,72px);width:min(1180px,100%);display:grid;position:relative}.login-tilt-panel{--login-pointer-x:50%;--login-pointer-y:50%;--login-rotate-x:0deg;--login-rotate-y:0deg;--login-lift:0px;--login-scale:1;isolation:isolate;transform:perspective(1200px) translateY(var(--login-lift)) scale(var(--login-scale)) rotateX(var(--login-rotate-x)) rotateY(var(--login-rotate-y));transform-style:preserve-3d;will-change:transform;transition:transform .42s cubic-bezier(.16,1,.3,1),box-shadow .42s;position:relative}.login-tilt-panel:hover{--login-lift:-7px;--login-scale:1.012}.login-tilt-panel:before{z-index:0;border-radius:inherit;background:radial-gradient(420px circle at var(--login-pointer-x) var(--login-pointer-y), #ffffffc7, #8fd14f21 30%, transparent 64%);content:"";opacity:0;pointer-events:none;transition:opacity .28s;position:absolute;inset:0}.login-tilt-panel:hover:before{opacity:1}.login-tilt-panel>*{z-index:1;position:relative;transform:translateZ(22px)}.login-reveal{opacity:0;animation:.7s cubic-bezier(.16,1,.3,1) forwards login-panel-reveal}.login-reveal-intro{animation-delay:80ms}.login-reveal-form{animation-delay:.23s}.login-sparkles{z-index:2;pointer-events:none;width:42px;height:42px;position:absolute;top:25px;right:28px;transform:translateZ(46px)}.login-sparkles i{opacity:.28;background:#8fd14f;border-radius:2px;width:7px;height:7px;transition:opacity .3s,transform .42s cubic-bezier(.16,1,.3,1);position:absolute;transform:rotate(45deg)scale(.75);box-shadow:0 0 14px #8fd14f8c}.login-sparkles i:first-child{top:3px;right:4px}.login-sparkles i:nth-child(2){width:5px;height:5px;transition-delay:50ms;top:22px;left:3px}.login-sparkles i:nth-child(3){width:4px;height:4px;transition-delay:.1s;bottom:1px;right:10px}.login-intro-panel:hover .login-sparkles i{opacity:.9;transform:rotate(135deg)scale(1)}.login-motion-orbs{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-motion-orbs i{opacity:.42;border-radius:50%;animation:16s ease-in-out infinite alternate login-orb-drift;display:block;position:absolute}.login-motion-orbs i:first-child{aspect-ratio:1;background:radial-gradient(circle,#8fd14f52,#0000 68%);width:min(40vw,520px);top:-12%;left:-7%}.login-motion-orbs i:nth-child(2){aspect-ratio:1;background:radial-gradient(circle,#5c9e7433,#0000 68%);width:min(44vw,600px);animation-duration:20s;animation-delay:-6s;bottom:-18%;right:-9%}.login-motion-orbs i:nth-child(3){aspect-ratio:1;background:radial-gradient(circle,#d1b25a21,#0000 70%);width:260px;animation-duration:18s;animation-delay:-10s;top:34%;left:43%}.login-intro-panel{background:#faf7f1bd;border:1px solid #92704e26;border-radius:26px;padding:clamp(40px,6vw,76px);position:relative;overflow:hidden;box-shadow:0 28px 80px #5b422c17}.login-intro-panel:after{content:"";border:42px solid #966a450e;border-radius:48% 52% 44% 56%;width:330px;height:330px;position:absolute;bottom:-110px;right:-80px;transform:rotate(-18deg)}.login-version{color:#8b5e3c;letter-spacing:.18em;margin:0 0 25px;font-size:12px;font-weight:700}.login-intro-panel h1{z-index:1;letter-spacing:-.08em;margin:0;font-family:STSong,SimSun,serif;font-size:clamp(54px,7vw,88px);font-weight:600;line-height:1.06;display:inline-block;position:relative}.login-intro-panel h1 em{color:#8b5e3c;letter-spacing:-.03em;font-family:Segoe UI,sans-serif;font-size:.3em;font-style:normal;position:absolute;bottom:.08em;right:-1.25em}.login-product-copy{z-index:1;color:#64736b;max-width:420px;margin:18px 0 0;font-family:Noto Serif SC,Songti SC,serif;font-size:18px;font-weight:400;line-height:1.8;position:relative}.login-feature-list{z-index:1;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:clamp(42px,7vw,74px);display:grid;position:relative}.login-feature-list span{color:#806852;text-align:center;background:#fffdf9b3;border:1px solid #8b5e3c26;border-radius:12px;padding:13px 10px;font-size:11px}.login-card{background:#fffdf9e6;border-color:#8b5e3c24;width:100%;overflow:hidden;box-shadow:0 30px 90px #5b422c21}.login-intro-panel:hover{box-shadow:0 36px 100px #466f302b}.login-card:hover{box-shadow:0 40px 110px #466f3033}@keyframes login-panel-reveal{0%{opacity:0;transform:perspective(1200px)translateY(24px)scale(.975)}to{opacity:1;transform:perspective(1200px) translateY(var(--login-lift)) scale(var(--login-scale)) rotateX(var(--login-rotate-x)) rotateY(var(--login-rotate-y))}}@keyframes login-orb-drift{0%{transform:translate(-3%,-2%)scale(.94)rotate(0)}55%{opacity:.58}to{transform:translate(8%,7%)scale(1.13)rotate(36deg)}}.login-stage span{background:#a36f49}.login-heading h2{letter-spacing:-.05em;margin:0 0 12px;font-family:STSong,SimSun,serif;font-size:clamp(30px,4vw,39px);font-weight:600}.login-heading span{line-height:1.75;display:block}.login-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.login-actions .register-placeholder{color:#8b5e3c;opacity:.65;background:0 0;border:1px solid #8b5e3c40}.login-actions button[type=submit]{background:#8b5e3c}@media (max-width:860px){.login-shell{grid-template-columns:1fr;gap:18px}.login-intro-panel{padding:32px}.login-tilt-panel{transform:none}.login-intro-panel h1{font-size:clamp(48px,12vw,68px)}.login-product-copy{margin-top:18px;font-size:16px}.login-feature-list{margin-top:28px}}@media (max-width:520px){.login-page{align-items:start}.login-intro-panel{border-radius:22px;padding:28px 24px}.login-feature-list{grid-template-columns:1fr;gap:7px}.login-feature-list span{padding:10px}.login-actions{grid-template-columns:1fr}}.login-page,.selection-page,.chat-page{background:radial-gradient(circle at 14% 18%,#8fd14f33,#0000 28%),radial-gradient(circle at 86% 82%,#66b0431a,#0000 30%),#f6faf2}.login-intro-panel{background:#fbfdf8d1;border-color:#5b913c26;box-shadow:0 28px 80px #466f3017}.login-intro-panel:after{border-color:#8fd14f14}.login-version,.login-intro-panel h1 em,.selection-header .eyebrow{color:#57952f}.login-product-copy{color:#64736b}.login-feature-list span{color:#547346;background:#f8fcf4d9;border-color:#68a4442e}.login-card{background:#ffffffeb;border-color:#68a44429;box-shadow:0 30px 90px #466f301f}.login-stage{color:#4e7e35;background:#eff8e8;border-color:#68a4442b}.login-stage span{background:#8fd14f;box-shadow:0 0 0 4px #8fd14f24}.login-form input:focus{border-color:#8ac956;box-shadow:0 0 0 3px #8fd14f24}.login-actions button[type=submit]{color:#183510;background:#8fd14f}.login-actions button[type=submit]:hover:not(:disabled){background:#7cc23f}.login-actions .register-placeholder{color:#5b853f;background:#fbfdf9;border-color:#68a44447}.login-mock-note{background:#f1f8ecb8;border-color:#cfdfc6}.character-card{border-color:#6a9c4d24;box-shadow:0 7px 20px #466f300f}.character-card:hover{box-shadow:0 24px 70px #466f3024}.status-dot,.online-dot,.availability-badge i{background:#8fd14f}.availability-badge.online{color:#406d2c;background:#f6fcf1e6}.chat-shell{background:#f9fcf7f2;border-color:#6a9c4d29;box-shadow:0 30px 100px #466f3026}.user .message-bubble,.composer button{color:#173310;background:#8fd14f}.composer button:hover:not(:disabled){background:#7cc23f}.auth-check-page{color:#64736b;background:#f6faf2;place-items:center;min-height:100vh;font-size:13px;display:grid}.history-loading{color:#8b958f;text-align:center;margin:40px auto;font-size:12px}.chat-page[data-chat-theme=bookshop]{--chat-bg:#f7f8f4;--panel-bg:#e8eee6;--panel-soft:#dce7dc;--chat-ink:#24322a;--chat-muted:#718078;--chat-line:#d2ddd1;--chat-accent:#769680;--panel-ink:#24322a;--panel-muted:#718078}.chat-page[data-chat-theme=system]{--chat-bg:#f3f6fa;--panel-bg:#172332;--panel-soft:#26384c;--chat-ink:#172332;--chat-muted:#76869a;--chat-line:#d5dee8;--chat-accent:#5879a5;--panel-ink:#f0f5fa;--panel-muted:#9db0c5}.chat-page[data-chat-theme=court]{--chat-bg:#fff8f1;--panel-bg:#fff0de;--panel-soft:#ffe0bf;--chat-ink:#3a251a;--chat-muted:#987663;--chat-line:#f0d7c4;--chat-accent:#e07b3f;--panel-ink:#3a251a;--panel-muted:#987663}.chat-page[data-chat-theme=atelier]{--chat-bg:#f7f5f9;--panel-bg:#272331;--panel-soft:#393346;--chat-ink:#302b37;--chat-muted:#817988;--chat-line:#ded8e3;--chat-accent:#887a9f;--panel-ink:#f5f1f7;--panel-muted:#b6abbe}.chat-page[data-chat-theme]{color:var(--chat-ink);background:radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--chat-accent) 18%, transparent), transparent 30%), radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--chat-accent) 12%, transparent), transparent 28%), var(--chat-bg);place-items:center;padding:24px}.chat-page[data-chat-theme] .chat-shell{border:1px solid var(--chat-line);background:var(--chat-bg);width:min(1100px,100%);height:min(760px,100vh - 72px);min-height:600px;box-shadow:0 28px 90px color-mix(in srgb, var(--chat-accent) 18%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:24px;grid-template-rows:1fr;grid-template-columns:300px minmax(0,1fr);display:grid}.chat-character-panel{min-width:0;color:var(--panel-ink);background:var(--panel-bg);flex-direction:column;gap:18px;padding:30px 28px;display:flex}.panel-back-button{width:42px;height:42px;color:var(--panel-ink);background:var(--panel-soft);border-radius:50%;place-items:center;font-size:22px;text-decoration:none;transition:transform .16s,filter .16s;display:grid}.panel-back-button:hover{filter:brightness(1.04);transform:translate(-2px)}.panel-portrait{border:4px solid color-mix(in srgb, var(--chat-accent) 32%, white);background:var(--panel-soft);width:116px;height:116px;box-shadow:0 16px 34px color-mix(in srgb, var(--chat-accent) 25%, transparent);border-radius:50%;position:relative;overflow:hidden}.panel-portrait img,.mini-portrait img,.message-avatar img{object-fit:cover}.panel-identity h2{color:var(--panel-ink);margin:0 0 5px;font-family:Noto Serif SC,Microsoft YaHei,serif;font-size:30px;line-height:1.2}.chat-page[data-chat-theme=system] .panel-identity h2{font-family:Segoe UI,Microsoft YaHei,sans-serif}.panel-identity p{color:var(--panel-muted);margin:0;font-size:13px}.chat-character-panel blockquote{border-left:3px solid var(--chat-accent);color:var(--panel-ink);margin:0;padding:12px 0 12px 15px;font-family:Noto Serif SC,Microsoft YaHei,serif;font-size:15px;line-height:1.75}.panel-tags{flex-wrap:wrap;gap:7px;display:flex}.panel-tags span{color:var(--panel-ink);background:var(--panel-soft);border-radius:999px;padding:6px 9px;font-size:11px}.panel-spacer{flex:1}.panel-status{background:var(--panel-soft);border-radius:16px;gap:6px;padding:15px;display:grid}.panel-status small{color:var(--panel-muted);letter-spacing:.08em;font-size:10px;font-weight:700}.panel-status strong{color:var(--panel-ink);font-size:13px;font-weight:600}.chat-conversation{background:var(--chat-bg);grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.chat-page[data-chat-theme] .chat-header,.chat-page[data-chat-theme] .composer{border-color:var(--chat-line);background:color-mix(in srgb, var(--chat-bg) 92%, white)}.chat-page[data-chat-theme] .back-button{display:none}.chat-page[data-chat-theme] .chat-header{grid-template-columns:48px 1fr 42px;padding:18px 28px}.chat-page[data-chat-theme] .mini-portrait{width:48px;height:48px;box-shadow:0 7px 20px color-mix(in srgb, var(--chat-accent) 24%, transparent);border-radius:50%}.chat-page[data-chat-theme] .chat-identity h1,.chat-page[data-chat-theme] .message-bubble{color:var(--chat-ink)}.chat-page[data-chat-theme] .chat-identity p,.chat-page[data-chat-theme] .message-time,.chat-page[data-chat-theme] .today-label{color:var(--chat-muted)}.chat-page[data-chat-theme] .online-dot{background:var(--chat-accent)}.chat-page[data-chat-theme] .chat-session-summary{border-color:var(--chat-line);color:var(--chat-muted);background:color-mix(in srgb, var(--chat-bg) 82%, white)}.chat-page[data-chat-theme] .message-area{scrollbar-color:var(--chat-line) transparent}.chat-page[data-chat-theme] .today-label{background:color-mix(in srgb, var(--chat-accent) 9%, transparent)}.chat-page[data-chat-theme] .message-avatar{background:var(--panel-soft);box-shadow:0 5px 16px color-mix(in srgb, var(--chat-accent) 18%, transparent);border-radius:50%}.chat-page[data-chat-theme] .character .message-bubble{border:1px solid var(--chat-line);box-shadow:0 5px 16px color-mix(in srgb, var(--chat-accent) 8%, transparent);background:#fff}.chat-page[data-chat-theme] .user .message-bubble,.chat-page[data-chat-theme] .composer button{color:#fff;background:var(--chat-accent)}.chat-page[data-chat-theme] .composer button:hover:not(:disabled){background:color-mix(in srgb, var(--chat-accent) 84%, black)}.chat-page[data-chat-theme] .composer input{border-color:var(--chat-line);color:var(--chat-ink);background:#fff}.chat-page[data-chat-theme] .composer input:focus{border-color:var(--chat-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--chat-accent) 14%, transparent)}@media (max-width:820px){.chat-page[data-chat-theme]{padding:0}.chat-page[data-chat-theme] .chat-shell{border:0;border-radius:0;grid-template-columns:1fr;width:100%;height:100vh;min-height:540px}.chat-character-panel{display:none}.chat-page[data-chat-theme] .back-button{display:grid}.chat-page[data-chat-theme] .chat-header{grid-template-columns:42px 44px 1fr 42px;padding:14px 16px}.chat-page[data-chat-theme] .prototype-note{display:none}}.chat-session-summary{background:#f7faf6bd;border-bottom:1px solid #64736b24;flex-wrap:wrap;align-items:center;gap:7px;padding:10px 18px;display:flex}.chat-session-summary span{color:#58675f;white-space:nowrap;background:#ffffff9e;border:1px solid #64736b2b;border-radius:999px;flex:none;padding:4px 9px;font-size:12px;line-height:1.45}.relationship-time-hint{color:#718078;flex:0 0 100%;margin:2px 0 0;font-family:Noto Serif SC,Songti SC,serif;font-size:12px;font-weight:400;line-height:1.65}.voice-placeholder-card{color:#34452e;background:linear-gradient(145deg,#fbfdf9,#f0f8ea);border:1px solid #70a54c38;border-radius:6px 17px 17px;width:min(100%,340px);padding:13px 15px 14px;box-shadow:0 5px 16px #466f3014}.voice-placeholder-head{color:#55823c;align-items:center;gap:8px;font-size:11px;display:flex}.voice-icon{color:#214117;background:#8fd14f;border-radius:50%;place-items:center;width:24px;height:24px;font-size:14px;display:grid;transform:rotate(180deg)}.voice-progress{align-items:center;gap:4px;height:22px;margin:7px 0 5px 32px;display:flex}.voice-progress i{background:#8fc66b;border-radius:99px;width:3px}.voice-progress i:first-child,.voice-progress i:nth-child(5){height:6px}.voice-progress i:nth-child(2),.voice-progress i:nth-child(4){height:12px}.voice-progress i:nth-child(3){height:18px}.voice-placeholder-card p{color:#53604f;margin:5px 0 0;font-size:13px;line-height:1.65}.voice-generate-button{color:#456d32;cursor:pointer;font:inherit;background:#ffffffd1;border:1px solid #55823c47;border-radius:999px;margin-top:10px;padding:7px 13px}.voice-generate-button:disabled{cursor:wait;opacity:.65}.voice-audio{width:100%;height:36px;margin-top:9px;display:block}.voice-placeholder-card .voice-error{color:#9a5148;font-size:11px}.character-image-card{border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);background:#fff;border-radius:8px 22px 22px;width:min(100%,420px);overflow:hidden;box-shadow:0 12px 32px #3a4b3e1f}.character-image-card img{aspect-ratio:1;object-fit:cover;width:100%;height:auto;display:block}.character-image-card small{color:#667067;padding:11px 14px 13px;font-size:12px;line-height:1.5;display:block}.image-generating{color:#718078;background:radial-gradient(circle at 30% 30%, #ffffffe6, transparent 45%), color-mix(in srgb, var(--accent) 9%, #f6f8f4);place-content:center;justify-items:center;gap:12px;min-height:210px;display:grid}.image-generating span{border:3px solid color-mix(in srgb, var(--accent) 25%, transparent);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite slow-turn}.image-generating p,.character-image-card>p{text-align:center;margin:0;padding:22px}.chat-error{color:#945348;background:#fff8f6;border:1px solid #ad5e502e;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;width:min(100%,470px);margin:18px auto 4px;padding:11px 13px;font-size:12px;display:flex}.chat-error button{color:#8d4e44;cursor:pointer;background:#fff;border:1px solid #94534838;border-radius:8px;flex:none;padding:5px 10px;font-size:11px}@media (max-width:560px){.voice-placeholder-card{width:100%}.chat-error{align-items:flex-start}}
