:root{--font-ui: "Syncopate", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display: var(--font-ui);--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}html[data-theme=light]{--bg: #ffffff;--bg-soft: #f5f4f2;--ink: #111111;--ink-soft: #555555;--line: #e2e0dc;--line-strong: #111111;--bubble-learner: #111111;--bubble-learner-ink: #ffffff;--bubble-persona: #f5f4f2}html[data-theme=dark]{--bg: #000000;--bg-soft: #161616;--ink: #f2f0ec;--ink-soft: #a8a49e;--line: #2c2c2c;--line-strong: #f2f0ec;--bubble-learner: #f2f0ec;--bubble-learner-ink: #000000;--bubble-persona: #161616}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);line-height:1.55;transition:background .25s ease,color .25s ease}button{font-family:inherit;cursor:pointer}button:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:1px solid var(--line);flex-shrink:0}.brand{display:flex;align-items:center;gap:.75rem;background:none;border:none;color:var(--ink);text-align:left}.brand-mark-img{height:2.1rem;width:auto;display:block}.brand-word-img{height:1.15rem;width:auto;display:block}.topbar-controls{display:flex;gap:.5rem}.toggle-btn{min-width:2.25rem;height:2.25rem;padding:0 .6rem;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--ink);font-size:1rem}.toggle-btn:hover{border-color:var(--line-strong)}.toggle-btn.lang{font-size:.8rem;font-weight:600;letter-spacing:.04em}.intro{flex:1;overflow-y:auto;display:flex;justify-content:center}.intro-inner{max-width:620px;padding:4rem 1.5rem 5rem}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);margin-bottom:1.25rem}.intro-headline{font-family:var(--font-display);font-size:clamp(1.5rem,3.8vw,2.4rem);letter-spacing:.06em;text-transform:uppercase;line-height:1.12;font-weight:700;margin-bottom:1.5rem}.intro-lead{font-size:1.05rem;color:var(--ink-soft);margin-bottom:2.5rem}.intro-how h2{font-family:var(--font-display);font-size:1.15rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.intro-how-item{display:flex;gap:1rem;margin-bottom:1.1rem;align-items:flex-start}.intro-how-item p{font-size:.95rem;color:var(--ink-soft)}.how-mark{flex-shrink:0;font-family:var(--font-display);font-weight:700;font-size:.9rem;width:3rem;height:3rem;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--line-strong);border-radius:50%}.intro-note{margin:2rem 0 2.5rem;padding:1rem 1.25rem;border-left:3px solid var(--line-strong);background:var(--bg-soft);font-size:.92rem}.primary-btn{padding:.8rem 1.6rem;background:var(--ink);color:var(--bg);border:1.5px solid var(--ink);border-radius:999px;font-size:.95rem;font-weight:600;transition:opacity .15s ease}.primary-btn:hover:not(:disabled){opacity:.85}.primary-btn:disabled{opacity:.35;cursor:not-allowed}.selector{flex:1;overflow-y:auto;padding:2rem 1.5rem 4rem;max-width:880px;margin:0 auto;width:100%}.selector-head{margin-bottom:2.25rem;display:flex;flex-direction:column;align-items:center;text-align:center}.mode-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:.2rem;margin-bottom:1.4rem}.mode-tab{padding:.5rem 1.05rem;border:none;border-radius:999px;background:transparent;color:var(--ink-soft);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.mode-tab.active{background:var(--ink);color:var(--bg)}.selector-title{font-family:var(--font-display);font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.4rem}.selector-hint{font-size:.9rem;color:var(--ink-soft)}.selector-hint .count{font-weight:700;color:var(--ink)}.persona-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:.9rem}.persona-card{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);text-align:left;position:relative;transition:border-color .15s ease,transform .1s ease}.persona-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.persona-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.persona-avatar,.chip-avatar,.rail-avatar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:var(--accent, var(--ink));border:1.5px solid var(--accent, var(--ink));background:transparent;font-family:var(--font-display)}.persona-avatar{width:3rem;height:3rem;font-size:.95rem}.persona-card-body{flex:1;min-width:0}.persona-card-title{display:block;font-weight:700;font-size:.98rem;margin-bottom:.2rem}.persona-card-tag{display:block;font-size:.82rem;color:var(--ink-soft)}.thread-dot{width:8px;height:8px;border-radius:50%;background:var(--accent, var(--ink));flex-shrink:0}.pick-box{width:1.5rem;height:1.5rem;border:1.5px solid var(--line-strong);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.persona-card.selected .pick-box{background:var(--ink);color:var(--bg);border-color:var(--ink)}.selector-footer{margin-top:1.75rem;display:flex;justify-content:flex-end}.chat{flex:1;display:flex;min-height:0}.persona-rail{width:180px;flex-shrink:0;border-right:1px solid var(--line);padding:1rem .6rem;overflow-y:auto}.rail-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);padding:0 .5rem .6rem}.rail-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem;border:none;border-radius:8px;background:transparent;color:var(--ink-soft);font-size:.82rem;margin-bottom:.15rem;text-align:left}.rail-item:hover{background:var(--bg-soft)}.rail-item.active{background:var(--bg-soft);color:var(--ink);font-weight:600}.rail-avatar{width:1.9rem;height:1.9rem;font-size:.62rem}.rail-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.25rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.chat-participants{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.in-room-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}.participant-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .8rem .3rem .35rem;border:1px solid var(--line);border-radius:999px;font-size:.85rem;font-weight:600}.chip-avatar{width:1.7rem;height:1.7rem;font-size:.58rem}.chat-head-actions{display:flex;gap:.5rem}.ghost-btn{padding:.4rem .9rem;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);font-size:.8rem}.ghost-btn:hover{border-color:var(--line-strong);color:var(--ink)}.ghost-btn.strong{color:var(--ink);border-color:var(--line-strong)}.messages{flex:1;overflow-y:auto;padding:1.5rem 1.25rem 1rem;display:flex;flex-direction:column;gap:1rem;font-family:var(--font-body)}.empty-state{max-width:520px;margin:3rem auto;text-align:center;color:var(--ink-soft);font-size:.95rem;border:1px dashed var(--line);border-radius:12px;padding:1.5rem}.msg-row{display:flex;gap:.6rem;max-width:780px}.msg-row.learner{align-self:flex-end;justify-content:flex-end;margin-left:auto}.msg-row.persona{align-self:flex-start}.msg-avatar{margin-top:.2rem}.msg-bubble{padding:.8rem 1.05rem;border-radius:14px;font-size:.95rem}.msg-bubble p+p,.msg-bubble p+ul,.msg-bubble ul+p,.msg-bubble ul+ul{margin-top:.6rem}.msg-bubble ul{padding-left:1.2rem}.msg-bubble li+li{margin-top:.3rem}.learner-bubble{background:var(--bubble-learner);color:var(--bubble-learner-ink);border-bottom-right-radius:4px}.persona-bubble{background:var(--bubble-persona);border-left:3px solid var(--accent, var(--line-strong));border-bottom-left-radius:4px}.msg-author{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem;opacity:.75;font-weight:700}.persona-bubble .msg-author{color:var(--accent, var(--ink-soft));opacity:1}.typing-row{display:flex;align-items:center;gap:.55rem;color:var(--ink-soft);font-size:.85rem}.typing-text{font-style:italic}.typing-dots{display:inline-flex;gap:3px}.typing-dots i{width:5px;height:5px;border-radius:50%;background:var(--ink-soft);animation:blink 1.2s infinite}.typing-dots i:nth-child(2){animation-delay:.2s}.typing-dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}@media (prefers-reduced-motion: reduce){.typing-dots i{animation:none;opacity:.6}}.error-row{border:1px solid var(--line-strong);border-left-width:4px;border-radius:8px;padding:.9rem 1.1rem;max-width:560px;font-size:.9rem}.error-detail{color:var(--ink-soft);font-size:.8rem;margin:.35rem 0 .7rem}.composer{display:flex;gap:.7rem;padding:.9rem 1.25rem 1.1rem;border-top:1px solid var(--line);align-items:flex-end}.composer textarea{flex:1;resize:none;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:.95rem;line-height:1.5}.composer textarea:hover{border-color:var(--line-strong)}.send-btn{padding:.75rem 1.4rem;border-radius:12px}@media (max-width: 760px){.persona-rail{display:none}.persona-grid{grid-template-columns:1fr}.topbar{padding:.6rem 1rem}.brand-sub{display:none}.msg-row{max-width:100%}.chat-head{padding:.6rem .9rem}.messages{padding:1rem .9rem .75rem}.composer{padding:.7rem .9rem .9rem}}.msg-bubble ul{margin:.5rem 0 .5rem 1.15rem;display:flex;flex-direction:column;gap:.3rem}.msg-bubble li{font-size:.95rem}.msg-bubble strong{font-weight:700}.splash{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3rem;cursor:pointer;-webkit-user-select:none;user-select:none}.splash-logo{width:min(58vw,560px);height:auto;animation:splash-float 4.5s ease-in-out infinite}@keyframes splash-float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.splash-hint{font-size:.78rem;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft);animation:splash-pulse 2.4s ease-in-out infinite}@keyframes splash-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.splash-logo,.splash-hint{animation:none}}.circle-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.9rem 0;padding-top:.5rem}.circle-grid .circle-item{flex:0 0 25%}@media (max-width: 760px){.circle-grid .circle-item{flex:0 0 50%}}.circle-item{display:flex;flex-direction:column;align-items:center;gap:.55rem;background:none;border:none;color:var(--ink);max-width:180px;padding:.4rem;border-radius:12px}.circle-avatar-wrap{position:relative;display:inline-flex;transition:transform .12s ease}.circle-item:hover .circle-avatar-wrap{transform:translateY(-3px) scale(1.03)}.circle-item.selected .circle-avatar-wrap{transform:scale(1.03)}.circle-avatar-wrap .thread-dot{position:absolute;right:4px;top:4px;background:var(--ink)}.circle-acronym{font-family:var(--font-display);font-weight:700;font-size:1.05rem;letter-spacing:.06em}.circle-tag{white-space:pre-line;font-family:var(--font-ui);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);text-align:center;line-height:1.6}.participant-chip{padding-left:.3rem}.msg-avatar{margin-top:.15rem;display:inline-flex}.access-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:color-mix(in srgb,var(--bg) 75%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem}.access-card{background:var(--bg);border:1.5px solid var(--line-strong);border-radius:14px;padding:1.75rem;max-width:380px;width:100%;display:flex;flex-direction:column;gap:.9rem}.access-card h2{font-family:var(--font-display);font-size:1.25rem}.access-card p{font-size:.88rem;color:var(--ink-soft)}.access-card input{padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:.95rem}
