:root{--rose:#e88aa6;--rose-deep:#c96a8b;--sky:#8fb8dd;--ink:#3c2f38;--ink-soft:#6d5c66;--ink-faint:#9c8a94;--white:rgba(255,255,255,.72);--line:rgba(200,160,180,.28);--shadow:0 24px 60px -30px rgba(150,110,130,.55)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--ink);font-family:PingFang SC,Microsoft YaHei,Hiragino Sans GB,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#fdf1f6;-webkit-font-smoothing:antialiased}.aurora{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:linear-gradient(150deg,#ffeef4,#f6ecff 38%,#e9f4ff 72%,#fdf1f6)}.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.65}.b1{width:520px;height:520px;left:-140px;top:-120px;background:radial-gradient(circle,#ffc9dc,transparent 68%)}.b2{width:480px;height:480px;right:-120px;top:8%;background:radial-gradient(circle,#cfe2ff,transparent 68%)}.b3{width:560px;height:560px;left:34%;bottom:-240px;background:radial-gradient(circle,#ffd9e6,transparent 70%)}.shell{position:relative;z-index:2;max-width:1040px;margin:0 auto;padding:44px 20px 64px}.head{text-align:center;margin-bottom:34px}.kicker{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--rose-deep);opacity:.8}h1{margin:12px 0 8px;font-family:Songti SC,STSong,"Noto Serif SC",Georgia,serif;font-size:clamp(28px,5.6vw,42px);font-weight:400;letter-spacing:.02em;background:linear-gradient(120deg,#c96a8b,#8fb8dd 70%);-webkit-background-clip:text;background-clip:text;color:transparent}.sub{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:12px;letter-spacing:.08em;color:var(--ink-faint)}.dot{width:7px;height:7px;border-radius:50%;background:#cfc2ca;transition:background .3s,box-shadow .3s}.dot.on{background:#67c48e;box-shadow:0 0 0 4px #67c48e2e}.dot.off{background:#e08a8a;box-shadow:0 0 0 4px #e08a8a29}.grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:20px;align-items:start}@media (max-width:820px){.grid{grid-template-columns:1fr;gap:16px}}.card{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:16px}.card-head h2{margin:0;font-family:Songti SC,STSong,Georgia,serif;font-size:19px;font-weight:400}.hint{font-size:11px;color:var(--ink-faint);letter-spacing:.04em}.who-label{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 6px}.who,.msg{width:100%;font-family:inherit;color:var(--ink);background:#ffffffbf;border:1px solid rgba(200,160,180,.34);border-radius:14px;padding:12px 14px;font-size:14px;transition:border-color .18s,box-shadow .18s}.who{margin-bottom:14px}.msg{resize:vertical;min-height:104px;line-height:1.6}.who:focus,.msg:focus{outline:none;border-color:#e88aa6bf;box-shadow:0 0 0 4px #e88aa621}.who::placeholder,.msg::placeholder{color:#bda9b3}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.count{font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.send{border:0;border-radius:999px;padding:12px 26px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;background:linear-gradient(120deg,#e88aa6,#b787d8 55%,#8fb8dd);box-shadow:0 14px 30px -14px #c878a0d9;transition:transform .15s ease,box-shadow .25s ease,opacity .2s}.send:hover{transform:translateY(-1px);box-shadow:0 18px 36px -14px #c878a0f2}.send:active{transform:scale(.97)}.send:disabled{opacity:.55;cursor:default;transform:none}.err{margin:10px 0 0;min-height:16px;font-size:12px;color:#c95c6e}.messages{display:flex;flex-direction:column;gap:10px;max-height:min(58vh,520px);overflow-y:auto;padding:2px 4px 2px 2px;scrollbar-width:thin}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-thumb{background:#c8a0b466;border-radius:99px}.empty{margin:26px 8px;text-align:center;font-size:13px;color:var(--ink-faint);font-style:italic}.bubble{max-width:82%;padding:11px 15px;border-radius:16px;position:relative;background:#ffffffe6;border:1px solid rgba(200,160,180,.22);box-shadow:0 8px 20px -16px #966e82cc;animation:pop .32s cubic-bezier(.2,.9,.3,1.2) both}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}.bubble.mine{align-self:flex-end;background:linear-gradient(135deg,#ffe2ecf5,#fff0f6f5);border-color:#e88aa666}.bubble .txt{font-size:14.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.bubble .meta{display:flex;gap:8px;align-items:center;margin-top:5px;font-size:10.5px;color:var(--ink-faint)}.bubble .name{font-weight:600;color:var(--rose-deep)}.bubble.mine .name{color:#a86fbf}.inter{max-width:82%;padding:10px 14px;border-radius:16px;background:#fff0f6e6;border:1px dashed rgba(232,138,166,.5);animation:pop .32s cubic-bezier(.2,.9,.3,1.2) both}.inter .txt{font-size:13.5px;color:#a86fbf}.inter .meta{display:flex;gap:8px;font-size:10.5px;color:var(--ink-faint);margin-top:4px}.inter .name{font-weight:600;color:var(--rose-deep)}.inter .song-link{display:inline-block;margin-top:4px;font-size:12px;color:var(--rose-deep);text-decoration:none;border-bottom:1px solid rgba(201,106,139,.4)}.inter .song-link:hover{color:#a94f72;border-bottom-color:#a94f72b3}.bubble.flash{box-shadow:0 0 0 3px #e88aa647,0 8px 20px -16px #966e82cc}.foot a.back{color:var(--rose-deep);text-decoration:none;border-bottom:1px solid rgba(201,106,139,.35);transition:border-color .18s,color .18s;text-transform:none;letter-spacing:.04em}.foot a.back:hover{color:#a94f72;border-bottom-color:#a94f72b3}.foot .sep{margin:0 8px;opacity:.5}.foot{margin-top:30px;text-align:center;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c2aeb8}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.inter-note{max-width:100%;padding:5px 2px 6px;border:none;background:transparent;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px}.inter-note .txt{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:baseline;gap:3px}.inter-note .note-ico{font-size:13px;line-height:1;opacity:.9}.inter-note .meta{margin-top:0;font-size:10px;gap:6px}.inter-note .name{font-weight:600;color:var(--ink-faint)}.inter-note .note-detail{font-size:11.5px;color:var(--ink-faint);max-width:30ch;line-height:1.4;margin-left:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
