@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-400-normal-DnUIPmzd.woff2) format("woff2"),url(/assets/cinzel-latin-400-normal-C8jUSQqm.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2) format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff) format("woff")}:root{--bg: #070a14;--bg-soft: #0c1120;--panel: #111731;--panel-2: #182042;--line: #263050;--line-gold: rgba(227, 194, 111, .22);--text: #ece7d8;--dim: #9398b0;--gold: #e3c26f;--gold-hi: #f2dd9e;--gold-deep: #7c6134;--gold-soft: rgba(227, 194, 111, .14);--blue: #6aa8ff;--blue-soft: rgba(106, 168, 255, .14);--red: #ff6a5f;--red-soft: rgba(255, 106, 95, .13);--green: #5fd394;--green-soft: rgba(95, 211, 148, .13);--font-display: "Cinzel", "Songti SC", "STSong", "Noto Serif SC", "SimSun", serif;--shadow-1: inset 0 1px 0 rgba(255, 255, 255, .04), 0 1px 2px rgba(0, 0, 0, .35), 0 6px 20px rgba(0, 0, 0, .28);--shadow-2: inset 0 1px 0 rgba(255, 255, 255, .05), 0 2px 6px rgba(0, 0, 0, .4), 0 14px 44px rgba(0, 0, 0, .38)}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}::selection{background:#e3c26f52;color:#fffbe9}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}::-webkit-scrollbar-track{background:transparent}.font-display{font-family:var(--font-display)}button{font-family:inherit;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-2),#141b3a);color:var(--text);border-radius:10px;padding:10px 16px;font-size:15px;cursor:pointer;transition:background .18s,border-color .18s,opacity .18s,transform .12s,box-shadow .18s}button:hover:not(:disabled){border-color:#34406a;background:linear-gradient(180deg,#1c2549,#16204a)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,var(--gold-hi) 0%,var(--gold) 46%,#c8a452 100%);border-color:var(--gold-deep);color:#241c08;font-weight:600;box-shadow:inset 0 1px #ffffff59,0 2px 10px #e3c26f38}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#f7e4ab,#e9cb7e 46%,#d2ad5c);border-color:var(--gold-deep);box-shadow:inset 0 1px #fff6,0 4px 16px #e3c26f52;transform:translateY(-1px)}.btn-blue{background:linear-gradient(180deg,#7fb4ff 0%,var(--blue) 50%,#4f8de8 100%);border-color:#3a6ab8;color:#081c36;font-weight:600;box-shadow:inset 0 1px #ffffff47,0 2px 10px #6aa8ff33}.btn-blue:hover:not(:disabled){background:linear-gradient(180deg,#93c0ff,#7ab1ff,#5b97f0);border-color:#3a6ab8;transform:translateY(-1px)}.btn-red{background:linear-gradient(180deg,#ff8478 0%,var(--red) 50%,#e8564b 100%);border-color:#b8443b;color:#2e0a07;font-weight:600;box-shadow:inset 0 1px #ffffff42,0 2px 10px #ff6a5f33}.btn-red:hover:not(:disabled){background:linear-gradient(180deg,#ff9489,#ff7a6f,#f06054);border-color:#b8443b;transform:translateY(-1px)}.btn-ghost{background:transparent}.btn-ghost:hover:not(:disabled){background:#ffffff0d}input[type=text]{font-family:inherit;background:#070a1499;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 14px;font-size:16px;outline:none;transition:border-color .18s,box-shadow .18s}input[type=text]:focus{border-color:var(--gold);box-shadow:0 0 0 3px #e3c26f29}input[type=text]::placeholder{color:#9398b0a6}.card{background:linear-gradient(180deg,#18204280,#111731b8);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow-1)}.chip{display:inline-flex;align-items:center;gap:6px;background:#18204299;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:14px;white-space:nowrap}.chip.gold{border-color:var(--line-gold);background:var(--gold-soft);color:var(--gold)}.chip.blue{border-color:#6aa8ff4d;background:var(--blue-soft);color:var(--blue)}.chip.red{border-color:#ff6a5f52;background:var(--red-soft);color:var(--red)}.muted{color:var(--dim)}.connection-notice{margin:0;padding:10px 14px;border:1px solid var(--line-gold);border-radius:10px;background:var(--bg-soft);color:var(--gold);font-size:14px;line-height:1.5}.room-error{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 16px;text-align:center}.room-error p{margin:0;line-height:1.6}.conn-dot{width:9px;height:9px;border-radius:50%;background:var(--red);display:inline-block;box-shadow:0 0 6px #ff6a5fb3}.conn-dot.on{background:var(--green);box-shadow:0 0 6px #5fd394b3}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:#201414d1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,106,95,.5);color:#ffd9d5;padding:10px 18px;border-radius:12px;font-size:15px;z-index:99;max-width:86vw;pointer-events:none;box-shadow:var(--shadow-2)}.toast.info{background:#1e1b0dd1;border-color:#e3c26f80;color:#f2e7c8}.control~.toast{bottom:calc(108px + env(safe-area-inset-bottom))}.toast-enter-active,.toast-leave-active{transition:opacity .25s,transform .25s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%) translateY(8px)}@keyframes pulse-glow{0%,to{box-shadow:0 0 18px #e3c26f40}50%{box-shadow:0 0 34px #e3c26f8c}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
