/* 白金知识宇宙 — real image layers over the existing desktop learning workspace. */
.universe-mode .topbar .product-wordmark small { display:none; }
.universe-mode .topbar { background:#faf9f6f5; }
.universe-mode .product-wordmark { font-size:18px; color:#383128; }
.home-toolbar { gap:8px; }
.home-toolbar button { white-space:nowrap; }

/* Home: an atmospheric cover, with universal course entries and live controls. */
.wu-home { position:relative; isolation:isolate; overflow:hidden; background:#faf9f6; }
.wu-home-scene { position:absolute; inset:0 0 auto; height:730px; z-index:-1; pointer-events:none; background:url('/static/assets/universe/scene.webp') center top/cover no-repeat; transform-origin:78% 30%; }
.wu-home .wh-hero { height:540px; overflow:visible; background:transparent; isolation:auto; }
.wu-home-mentor { position:absolute; width:36%; max-width:480px; height:auto; right:5%; top:44px; pointer-events:none; }
.wu-home .wh-copy { margin:0; padding:104px 0 0 54px; width:69%; }
.wu-home .wh-eyebrow { position:static; top:auto; font-size:17px; margin:0 0 26px; color:#8b6937; }
.wu-home .wh-copy h1 { font-size:clamp(40px,4.1vw,64px); font-weight:750; line-height:1.25; letter-spacing:-.035em; margin:0 0 22px; color:#30291e; }
.wu-home .wh-copy h1 span { color:#98763b; }
.wu-home .wh-subtitle { font-size:clamp(17px,1.55vw,24px); color:#5b574e; line-height:1.6; }
.wu-home .wh-actions { margin-top:28px; gap:20px; flex-direction:row; }
.wu-home .wh-actions .btn { min-height:56px; font-size:17px; padding:12px 24px; }
.wu-home .wh-primary { background:#99763b; border:1px solid #ba9b63; box-shadow:0 5px 15px #77551f18; color:#fffdf8; font-weight:600; border-radius:12px; }
.wu-home .wh-primary:hover { background:#805d29; border-color:#967039; }
.wu-home .wh-secondary { background:#fffdf9ee; color:#53452e; border-color:#e0d3ba; }
.wu-home-footer { padding:18px 40px 22px; text-align:right; font-size:12px; color:#8b8273; }

/* A real bitmap scene supplies the depth; readable content remains independent. */
.wu-chat-scene { position:absolute; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.wu-chat-scene::before { content:""; position:absolute; top:-80px; right:-80px; width:700px; height:460px; background:url('/static/assets/universe/scene.webp') right top/cover no-repeat; opacity:.3; transform-origin:80% 20%; }
.chat-workspace .conversation-main { isolation:isolate; }
.chat-workspace.lesson-open .wu-chat-scene { display:none; }
.chat-workspace:not(.lesson-open) .conversation-main { background:#faf9f6; }
.chat-workspace:not(.lesson-open) .conversation-head { background:transparent; padding:18px max(32px,calc((100% - 1110px)/2)); min-height:94px; }
.chat-workspace:not(.lesson-open) .mentor-profile { width:52px; height:54px; }
.chat-workspace:not(.lesson-open) .conversation-head h1 { font-size:18px; }
.chat-workspace:not(.lesson-open) .conversation-head p { font-size:13px; color:#7e7668; }
.chat-workspace:not(.lesson-open) .chat-scroll { padding:24px max(32px,calc((100% - 1110px)/2)) 12px; }
.chat-workspace:not(.lesson-open) #chat-messages { max-width:1110px; margin-inline:auto; }
.chat-workspace:not(.lesson-open) .chat-message { gap:16px; margin-bottom:28px; }
.chat-workspace:not(.lesson-open) .message-face { width:44px; height:46px; border-radius:50%; }
.chat-workspace:not(.lesson-open) .incoming .message-main { max-width:min(900px,calc(100% - 64px)); width:100%; }
.chat-workspace:not(.lesson-open) .incoming .message-bubble { background:#faf9f6f5; border:0; border-radius:12px; padding:10px 12px; box-shadow:none; font-size:17px; line-height:1.85; color:#373329; }
.chat-workspace:not(.lesson-open) .outgoing .message-bubble { background:#f2e7cf; border-color:#e8d9b8; border-radius:16px 5px 16px 16px; font-size:17px; line-height:1.7; padding:14px 20px; }
.chat-workspace:not(.lesson-open) .ai-label { font-size:12px; color:#827b6f; margin-bottom:10px; }
.chat-workspace:not(.lesson-open) .message-meta { padding-left:12px; }
.chat-workspace:not(.lesson-open) .chat-composer { width:calc(100% - 100px); max-width:1160px; margin:8px auto 16px; background:#fffefc; border-color:#c7a362; border-radius:20px; padding:16px 24px 8px; box-shadow:0 8px 24px #77603c08; }
.chat-workspace:not(.lesson-open) .chat-composer:focus-within { border-color:#aa7d33; box-shadow:0 0 0 3px #b5924712; }
.chat-workspace:not(.lesson-open) .chat-composer textarea { font-size:18px; height:62px; color:#373329; }
.chat-workspace:not(.lesson-open) .chat-composer textarea::placeholder { color:#827b6f; }
.chat-workspace:not(.lesson-open) .composer-toolbar .primary { min-width:62px; min-height:44px; border-radius:24px; background:#ac884d; border-color:#ac884d; color:#fff; }
.chat-workspace:not(.lesson-open) .composer-toolbar .primary:hover { background:#8b672e; }
.chat-workspace:not(.lesson-open) .composer-toolbar .primary:disabled { background:#c2b8a6; border-color:#c2b8a6; }
.chat-workspace:not(.lesson-open) .composer-toolbar .ghost { font-size:15px; }
.composer-toolbar .arrange-course { flex:none; min-height:44px; padding:0 18px; border-radius:24px; border:1px solid #8b672e; background:#ac884d; color:#fff; font-size:15px; font-weight:650; cursor:pointer; }
.composer-toolbar .arrange-course:hover { background:#8b672e; }
.composer-toolbar .arrange-course:disabled { background:#c2b8a6; border-color:#c2b8a6; color:#fff; cursor:default; }
.lesson-open .composer-toolbar .arrange-course { min-height:36px; padding:0 12px; font-size:13px; border-radius:18px; }
.chat-workspace:not(.lesson-open) .chat-save { font-size:11px; color:#817968; }
.chat-workspace:not(.lesson-open) .teacher-next-action { max-width:1160px; width:calc(100% - 100px); margin:5px auto; }

/* Empty conversation: the SAME input is centered, then docks after the first message. */
.chat-workspace.is-welcome:not(.lesson-open) .conversation-main { overflow:auto; padding-bottom:28px; }
.chat-workspace.is-welcome:not(.lesson-open) .conversation-head { display:none; }
.chat-workspace.is-welcome:not(.lesson-open) .wu-chat-scene { bottom:auto; height:940px; }
.chat-workspace.is-welcome:not(.lesson-open) .wu-chat-scene::before { top:0; right:0; width:100%; height:100%; opacity:1; background-size:cover; background-position:center top; mask-image:linear-gradient(#000 0%,#000 42%,transparent 98%); }
.chat-workspace.is-welcome:not(.lesson-open) .chat-scroll { flex:none; order:1; overflow:visible; padding:22px 40px 0; scrollbar-gutter:auto; }
.chat-workspace.is-welcome:not(.lesson-open) .chat-welcome { display:flex; flex-direction:column; gap:0; max-width:1050px; margin:0 auto 24px; text-align:center; padding:0; }
.chat-workspace.is-welcome:not(.lesson-open) .chat-welcome>.welcome-portrait { width:286px; height:286px; object-fit:contain; object-position:center; border:0; border-radius:0; margin:0; order:0; }
.chat-workspace.is-welcome:not(.lesson-open) .welcome-copy { padding:0; }
.chat-workspace.is-welcome:not(.lesson-open) .welcome-copy h1 { margin:8px 0 12px; font-size:clamp(30px,3.6vw,56px); line-height:1.3; letter-spacing:-.025em; color:#30291e; font-weight:700; }
.chat-workspace.is-welcome:not(.lesson-open) .welcome-copy>p { font-size:22px; color:#5e5a52; margin:0; line-height:1.6; }
.chat-workspace.is-welcome:not(.lesson-open) .chat-composer { order:2; margin:10px auto 0; flex:none; padding:20px 24px 10px; }
.chat-workspace.is-welcome:not(.lesson-open) .chat-composer textarea { height:82px; }
.chat-workspace.is-welcome:not(.lesson-open) .teacher-next-action { display:none; }
#chat-welcome-prompts { flex:none; position:relative; display:block; margin:28px auto 0; max-width:1160px; width:calc(100% - 100px); }
.chat-workspace.is-welcome:not(.lesson-open) #chat-welcome-prompts { order:3; }
.welcome-prompts-label { display:block; color:#736c60; font-size:16px; margin-bottom:12px; }
.welcome-prompt-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.welcome-prompt-actions button { width:100%; min-height:72px; padding:12px 16px; margin:0; font-size:20px; font-weight:500; border:1px solid #e0d2b7; border-radius:14px; background:#fffefbe8; color:#4a4030; text-wrap:balance; }
.welcome-prompt-actions button:hover { background:#f4ead4; border-color:#baa06b; }
.welcome-prompt-hint { text-align:center; font-size:14px; color:#827c70; margin:26px 0 0; }
.chat-workspace.lesson-open #chat-welcome-prompts { width:auto; margin:12px 14px; }
.chat-workspace.lesson-open .welcome-prompt-actions { grid-template-columns:1fr; gap:6px; }
.chat-workspace.lesson-open .welcome-prompt-actions button { min-height:32px; font-size:12px; padding:6px 10px; }
.chat-workspace.lesson-open .welcome-prompts-label,.chat-workspace.lesson-open .welcome-prompt-hint { display:none; }

/* Slow compositor-only movement. No particles are created or repainted in JS. */
.wu-home.motion-on .wu-home-scene { animation:wu-orbit 28s ease-in-out infinite; }
.wu-home.motion-on .wu-home-mentor,.motion-on.is-welcome .welcome-portrait { animation:wu-float 8s ease-in-out infinite; }
.motion-on.is-welcome .wu-chat-scene::before { animation:wu-orbit 32s ease-in-out infinite; }
.motion-on:not(.is-welcome) .wu-chat-scene::before { animation:wu-starlight 20s ease-in-out infinite; }
.motion-on .wh-copy,.motion-on .welcome-copy { animation:wu-arrive .55s ease-out both; }
@keyframes wu-orbit { 0%,100% { transform:translate3d(0,0,0) scale(1.015); } 50% { transform:translate3d(-6px,3px,0) scale(1.035); } }
@keyframes wu-float { 0%,100% { transform:translate3d(0,0,0) rotate(-.6deg); } 50% { transform:translate3d(0,-9px,0) rotate(.6deg); } }
@keyframes wu-starlight { 0%,100% { opacity:.25; } 50% { opacity:.34; } }
@keyframes wu-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.motion-off .wu-home-scene,.motion-off .wu-home-mentor,.motion-off .wu-chat-scene::before,.motion-off .welcome-portrait { animation:none!important; }
.universe-paused .wu-home *,.universe-paused .chat-workspace *,.universe-paused .wu-chat-scene::before { animation-play-state:paused!important; }
.reduce-motion .wu-chat-scene::before { animation:none!important; }
@media(prefers-reduced-motion:reduce) { .wu-home *,.chat-workspace *,.wu-chat-scene::before { animation:none!important; transition:none!important; } }

/* Resizable desktop windows and browser zoom. */
@media(max-width:1300px) {
 .wu-home .wh-hero { height:485px; }
 .wu-home .wh-copy { padding:88px 0 0 36px; width:70%; }
 .wu-home .wh-copy h1 { font-size:46px; }
 .wu-home .wh-eyebrow { font-size:15px; margin-bottom:22px; }
 .wu-home .wh-subtitle { font-size:18px; }
 .wu-home .wh-actions { margin-top:26px; gap:12px; }
 .wu-home .wh-actions .btn { min-height:50px; padding:10px 18px; font-size:15px; }
 .wu-home-mentor { width:37%; right:2%; top:60px; }
 .wu-home-scene { height:660px; }
 .chat-workspace.is-welcome:not(.lesson-open) .chat-welcome>.welcome-portrait { width:230px; height:230px; }
 .chat-workspace.is-welcome:not(.lesson-open) .welcome-copy>p { font-size:17px; }
 .chat-workspace:not(.lesson-open) .chat-composer,#chat-welcome-prompts { width:calc(100% - 64px); }
}
@media(max-width:1050px) {
 .wu-home .wh-copy { width:75%; padding-left:28px; }
 .wu-home .wh-copy h1 { font-size:38px; }
 .wu-home .wh-subtitle { font-size:16px; max-width:360px; }
 .wu-home .wh-eyebrow { font-size:14px; }
 .wu-home .wh-actions { flex-direction:row; gap:10px; }
 .wu-home .wh-actions .btn { font-size:14px; padding:10px 14px; min-width:0; }
 .wu-home .wh-actions .wh-primary { gap:16px; }
 .wu-home-mentor { width:34%; top:140px; right:1%; }
 .chat-workspace:not(.lesson-open) .conversation-head { padding-inline:24px; }
 .chat-workspace:not(.lesson-open) .chat-scroll { padding-inline:24px; }
 .chat-workspace:not(.lesson-open) .chat-composer,#chat-welcome-prompts { width:calc(100% - 48px); }
 .welcome-prompt-actions { gap:8px; }
 .welcome-prompt-actions button { font-size:14px; padding:10px 12px; }
 .chat-workspace:not(.lesson-open) .incoming .message-bubble { font-size:16px; }
}
@media(max-height:820px) {
 .chat-workspace.is-welcome:not(.lesson-open) .chat-scroll { padding-top:6px; }
 .chat-workspace.is-welcome:not(.lesson-open) .chat-welcome>.welcome-portrait { width:180px; height:180px; }
 .chat-workspace.is-welcome:not(.lesson-open) .chat-welcome { margin-bottom:12px; }
 .chat-workspace.is-welcome:not(.lesson-open) .welcome-copy h1 { font-size:32px; margin:0 0 6px; }
 .chat-workspace.is-welcome:not(.lesson-open) .welcome-copy>p { font-size:16px; }
 .chat-workspace.is-welcome:not(.lesson-open) .chat-composer textarea { height:58px; }
 #chat-welcome-prompts { margin-top:18px; }
 .welcome-prompt-actions button { min-height:48px; }
 .welcome-prompt-hint { margin-top:16px; }
}
