:root{--cream-50: #fffbf5;--cream-100: #fdf4e9;--cream-200: #f7e9d7;--cream-300: #eeddc6;--rose-100: #fbe4e8;--rose-200: #f6cdd5;--rose-300: #eeadbb;--rose-400: #dd8d9e;--rose-500: #c67284;--rose-600: #a75b6d;--rose-700: #8a4a5a;--gold-100: #faf0d7;--gold-200: #f3e0b0;--gold-300: #e9cd85;--gold-400: #d9b45f;--gold-500: #c39a41;--gold-600: #a17c2f;--ink: #4a3733;--ink-soft: #7d635c;--ink-faint: #a98f86;--star: #f2c94c;--night-1: #2e2233;--night-2: #46304a;--ok: #7fb069;--font-body: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif;--font-pixel: "Share Tech Mono", ui-monospace, "Cascadia Mono", Consolas, Menlo, monospace;--bevel-shadow: 0 3px 0 rgba(138, 74, 90, .28), 0 8px 18px rgba(138, 74, 90, .16);--bevel-shadow-pressed: 0 1px 0 rgba(138, 74, 90, .28), 0 3px 8px rgba(138, 74, 90, .14);--radius-card: 22px;--radius-bubble: 18px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--cream-50);color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}.device{height:100%;margin:0 auto;max-width:480px;display:flex;flex-direction:column;background:var(--cream-50);position:relative;overflow:hidden}@media(min-width:560px){body{background:linear-gradient(160deg,#f3e2d8,#e8cfd2 55%,#e3c6bc)}.device{height:min(880px,calc(100vh - 48px));margin-top:max(24px,calc((100vh - 880px)/2));border-radius:34px;border:10px solid #fff;outline:1px solid rgba(138,74,90,.22);box-shadow:0 30px 70px #4a283259}}.dotgrid{background-image:radial-gradient(rgba(198,114,132,.13) 1px,transparent 1.4px);background-size:14px 14px}.statusbar{padding:calc(8px + var(--safe-top)) 16px 8px;display:flex;align-items:center;gap:10px;font-family:var(--font-pixel);font-size:12px;letter-spacing:.08em;color:var(--rose-700);background:linear-gradient(180deg,var(--cream-100),var(--cream-50));border-bottom:2px dashed var(--rose-200);user-select:none}.statusbar .brand{display:flex;align-items:center;gap:6px;font-weight:700}.statusbar .spacer{flex:1}.statusbar .clock{font-size:13px}.heartbattery{display:inline-flex;align-items:center;gap:2px;color:var(--rose-500);font-size:11px}.room{flex:1;display:flex;flex-direction:column;min-height:0;animation:roomIn .28s ease}@keyframes roomIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.roombar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:2px dashed var(--rose-200);background:var(--cream-50)}.roombar .backbtn{width:38px;height:38px;border-radius:14px;background:var(--cream-100);border:2px solid var(--rose-200);color:var(--rose-600);font-size:16px;display:grid;place-items:center;box-shadow:0 2px #8a4a5a33;transition:transform .08s ease,box-shadow .08s ease}.roombar .backbtn:active{transform:translateY(2px);box-shadow:none}.roombar .roomtitle{font-size:17px;font-weight:700;letter-spacing:.04em}.roombar .roomsub{font-size:11px;color:var(--ink-faint);font-family:var(--font-pixel);letter-spacing:.06em}.roombody{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--rose-200) transparent}.boot{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:radial-gradient(120% 90% at 50% 108%,#6b4457 0%,var(--night-2) 46%,var(--night-1) 100%);color:var(--cream-100);cursor:pointer;overflow:hidden;animation:none}.boot.leaving{animation:bootOut .5s ease forwards}@keyframes bootOut{to{opacity:0;transform:scale(1.04)}}.boot .star{position:absolute;color:var(--star);animation:twinkle 2.4s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.boot .moonwrap{animation:moonrise 1.6s cubic-bezier(.22,1,.36,1);filter:drop-shadow(0 0 22px rgba(242,201,76,.45))}@keyframes moonrise{0%{transform:translateY(46px);opacity:0}to{transform:none;opacity:1}}.boot .title{font-size:34px;font-weight:700;letter-spacing:.32em;text-indent:.32em;color:var(--cream-50);text-shadow:0 2px 18px rgba(242,201,76,.35)}.boot .subtitle{font-family:var(--font-pixel);font-size:11px;letter-spacing:.5em;text-indent:.5em;color:var(--rose-200);opacity:.9}.boot .pressstart{margin-top:18px;font-family:var(--font-pixel);font-size:13px;letter-spacing:.28em;color:var(--star);animation:blink 1.3s steps(2,start) infinite}@keyframes blink{50%{opacity:0}}.boot .bootfoot{position:absolute;bottom:calc(20px + var(--safe-bottom));font-family:var(--font-pixel);font-size:10px;letter-spacing:.2em;color:#fbe4e880}.hub-greet{padding:22px 20px 6px}.hub-greet h1{font-size:24px;letter-spacing:.06em;display:flex;align-items:center;gap:8px}.hub-greet .date{margin-top:6px;font-family:var(--font-pixel);font-size:12px;color:var(--ink-faint);letter-spacing:.1em}.roomgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 18px calc(26px + var(--safe-bottom))}.cartridge{position:relative;border-radius:var(--radius-card);padding:16px 14px 14px;text-align:left;background:var(--card-bg, var(--cream-100));border:2px solid var(--card-line, var(--rose-200));box-shadow:var(--bevel-shadow);transition:transform .1s ease,box-shadow .1s ease;overflow:hidden;min-height:128px;display:flex;flex-direction:column;gap:8px}.cartridge:active{transform:translateY(3px);box-shadow:var(--bevel-shadow-pressed)}.cartridge:before{content:"";position:absolute;top:7px;right:12px;width:34px;height:5px;border-radius:3px;background:repeating-linear-gradient(90deg,var(--card-line, var(--rose-200)) 0 4px,transparent 4px 8px);opacity:.9}.cartridge .cicon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#ffffffa6;border:2px solid var(--card-line, var(--rose-200))}.cartridge .cname{font-size:16px;font-weight:700;letter-spacing:.05em}.cartridge .cdesc{font-size:11.5px;color:var(--ink-soft);line-height:1.5}.cartridge .cchip{margin-top:auto;align-self:flex-start;font-family:var(--font-pixel);font-size:10px;letter-spacing:.06em;padding:3px 8px;border-radius:99px;background:#ffffffb3;border:1.5px solid var(--card-line, var(--rose-200));color:var(--ink-soft)}.cartridge .cchip.live{color:#4b7343;border-color:#a6c99a;background:#eef6ea}.hub-foot{padding:0 20px calc(18px + var(--safe-bottom));text-align:center;font-family:var(--font-pixel);font-size:10px;letter-spacing:.24em;color:var(--ink-faint)}.chatlist{display:flex;flex-direction:column;gap:14px;padding:18px 16px 10px}.msg{display:flex;flex-direction:column;max-width:82%;gap:4px;animation:msgIn .22s ease}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.msg.him{align-self:flex-start;align-items:flex-start}.msg.her{align-self:flex-end;align-items:flex-end}.msg .who{font-size:11px;color:var(--ink-faint);letter-spacing:.08em;padding:0 6px;display:flex;gap:6px;align-items:center}.bubble{padding:11px 14px;border-radius:var(--radius-bubble);font-size:15px;line-height:1.65;word-break:break-word;white-space:pre-wrap;border:2px solid}.msg.him .bubble{background:linear-gradient(160deg,var(--gold-100),var(--gold-200));border-color:var(--gold-300);border-bottom-left-radius:6px;box-shadow:0 2px #a17c2f2e}.msg.her .bubble{background:linear-gradient(160deg,var(--rose-100),var(--rose-200));border-color:var(--rose-300);border-bottom-right-radius:6px;box-shadow:0 2px #8a4a5a2e}.msg .stamp{font-family:var(--font-pixel);font-size:10px;color:var(--ink-faint);padding:0 6px;letter-spacing:.05em}.sysnote{align-self:center;max-width:88%;text-align:center;font-size:12px;line-height:1.7;color:var(--ink-soft);background:var(--cream-100);border:1.5px dashed var(--rose-300);border-radius:14px;padding:10px 14px}.sysnote b{color:var(--rose-600)}.chatinput{display:flex;gap:10px;align-items:flex-end;padding:10px 12px calc(12px + var(--safe-bottom));border-top:2px dashed var(--rose-200);background:var(--cream-50)}.chatinput textarea{flex:1;resize:none;border:2px solid var(--rose-200);border-radius:18px;background:#fff;color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;padding:10px 14px;max-height:120px;outline:none;transition:border-color .15s ease}.chatinput textarea:focus{border-color:var(--rose-400)}.abtn{width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 32% 28%,var(--rose-300),var(--rose-500) 70%);border:2px solid var(--rose-600);color:#fff;font-weight:700;font-size:13px;letter-spacing:.05em;box-shadow:0 4px 0 var(--rose-700),0 8px 16px #8a4a5a4d;transition:transform .08s ease,box-shadow .08s ease;flex-shrink:0}.abtn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--rose-700)}.abtn:disabled{opacity:.45;box-shadow:0 2px 0 var(--rose-700)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.wait{background:var(--ink-faint);box-shadow:0 0 0 3px #a98f8633}.dot.live{background:var(--ok);box-shadow:0 0 0 3px #7fb06940}.stub{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:44px 30px}.stub .stubicon{width:92px;height:92px;border-radius:30px;display:grid;place-items:center;background:var(--cream-100);border:2px solid var(--rose-200);box-shadow:var(--bevel-shadow)}.stub h2{font-size:20px;letter-spacing:.08em}.stub p{font-size:13px;line-height:1.9;color:var(--ink-soft);max-width:300px}.stub .phase{font-family:var(--font-pixel);font-size:11px;letter-spacing:.14em;color:var(--rose-600);background:var(--rose-100);border:1.5px solid var(--rose-300);padding:4px 12px;border-radius:99px}.stub a{color:var(--rose-600);font-weight:700}.shelf{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;margin-top:6px}.gamecart{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;background:var(--card-bg, var(--cream-100));border:2px solid var(--card-line, var(--rose-200));box-shadow:0 3px #8a4a5a29;text-align:left}.gamecart .gname{font-size:15px;font-weight:700}.gamecart .gtag{margin-left:auto;font-family:var(--font-pixel);font-size:10px;color:var(--ink-faint);border:1.5px dashed var(--ink-faint);border-radius:99px;padding:2px 8px;white-space:nowrap}.setlist{width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px;margin-top:4px}.setrow{display:flex;align-items:center;gap:12px;background:var(--cream-100);border:2px solid var(--rose-200);border-radius:16px;padding:13px 16px;font-size:14px;text-align:left}.setrow .stag{margin-left:auto;font-family:var(--font-pixel);font-size:10px;color:var(--ink-faint)}.aboutcard{margin-top:10px;width:100%;max-width:340px;background:linear-gradient(160deg,var(--cream-100),var(--rose-100));border:2px solid var(--rose-200);border-radius:var(--radius-card);padding:16px;font-size:12.5px;line-height:2;color:var(--ink-soft)}.aboutcard b{color:var(--rose-700)}
