:root{--page:#050505;--panel:#111;--panel-strong:#181818;--line:#383838;--ink:#f7f1e9;--muted:#a49a90;--gold:#ff9f1a;--gold-soft:#ffbd62;--shadow:0 24px 80px #0000005c;--font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body{background:var(--page);min-height:100%;color:var(--ink);font-family:var(--font);margin:0}button,input,textarea{font:inherit}button{color:inherit}.companion-shell{background:radial-gradient(circle at 12% 0,#ff9f1a38,#0000 28%),linear-gradient(#070707 0%,#050505 100%);grid-template-columns:308px minmax(0,1fr);min-height:100vh;display:grid}.teacher-rail{border-right:1px solid var(--line);background:#030303;flex-direction:column;align-items:center;gap:18px;min-height:100vh;padding:22px 18px;display:flex}.teacher-status{width:100%;min-height:42px;color:var(--gold);justify-content:space-between;align-items:center;gap:12px;font-size:15px;font-weight:800;display:flex}.teacher-status button,.workspace-header button,.voice-button,.ghost-actions button,.memory-form button,.chat-input button,.memory-item button{cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;transition:transform .18s,border-color .18s,background .18s,color .18s;display:inline-flex}.teacher-status button{border-color:var(--line);width:38px;height:38px;color:var(--gold-soft);background:#111;border-radius:50%}.teacher-portrait{cursor:pointer;background:0 0;border:0;place-items:end center;width:min(100%,206px);min-height:220px;padding:0;display:grid}.teacher-portrait img{object-fit:contain;filter:drop-shadow(0 22px 42px #0000006b);width:190px;max-width:100%;height:auto}.voice-button{border:2px solid var(--gold);min-width:194px;min-height:54px;color:var(--gold-soft);background:#050505;border-radius:999px;gap:12px;font-size:18px;font-weight:750;box-shadow:0 0 28px #ff9f1a1f}.teacher-status button:hover,.voice-button:hover,.workspace-header button:hover,.ghost-actions button:hover,.memory-form button:hover,.chat-input button:hover,.memory-item button:hover{transform:translateY(-1px)}.fortune-panel{border:1px solid var(--line);background:var(--panel-strong);width:100%;box-shadow:var(--shadow);border-radius:8px;margin-top:auto;padding:16px}.account-row{color:var(--ink);justify-content:space-between;align-items:center;gap:14px;display:flex}.account-row div{gap:4px;display:grid}.account-row strong{font-size:18px}.account-row span{color:var(--muted);font-size:13px;font-weight:700}.fortune-panel h2{color:var(--gold);text-align:center;margin:18px 0 12px;font-size:18px}.fortune-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.fortune-item{min-width:0;color:var(--ink);justify-items:center;gap:5px;font-size:13px;font-weight:750;display:grid}.fortune-item img{border-radius:7px;width:48px;height:48px;box-shadow:0 6px 14px #0000002e}.fortune-item strong{color:var(--gold-soft);font-size:12px}.workspace{background:#151515;flex-direction:column;min-width:0;min-height:100vh;display:flex}.workspace-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:stretch;gap:16px;min-height:58px;display:flex}.workspace-header nav{align-items:stretch;min-width:0;display:flex}.workspace-header button{min-width:100px;min-height:58px;color:var(--muted);background:0 0;border-width:0 0 2px;border-bottom-color:#0000;border-radius:0;gap:8px;padding:0 20px;font-size:15px;font-weight:800}.workspace-header button.is-active{border-bottom-color:var(--gold);color:var(--gold)}.runtime-pill{border:1px solid var(--line);color:#d7cec5;background:#101010;border-radius:999px;align-self:center;align-items:center;gap:8px;margin-right:18px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex}.chat-view{flex-direction:column;height:calc(100vh - 58px);min-height:0;padding:28px clamp(20px,7vw,116px) 20px;display:flex}.message-list{flex-direction:column;flex:1;gap:20px;min-height:0;padding:2px 2px 28px;display:flex;overflow-y:auto}.message{display:flex}.message p{max-width:720px;margin:0;font-size:16px;font-weight:650;line-height:1.75}.message.assistant{justify-content:flex-start}.message.assistant p{color:#f5eee5}.message.user{justify-content:flex-end}.message.user p{color:var(--gold-soft);background:#ff9f1a2b;border:1px solid #ff9f1a80;border-radius:8px;padding:10px 18px}.chat-input{background:#020202;border:1px solid #d8d8d8;border-radius:16px;flex-shrink:0;grid-template-columns:minmax(0,1fr) auto;gap:14px;min-height:118px;padding:18px;display:grid}.chat-input textarea{resize:none;min-height:82px;color:var(--ink);background:0 0;border:0;outline:0;font-size:16px;line-height:1.65}.chat-input textarea::placeholder,.memory-form input::placeholder{color:#6f675f}.chat-input button,.memory-form button{background:var(--gold);color:#111;border-radius:50%;align-self:end;width:38px;height:38px}.chat-input button:disabled,.memory-form button:disabled,.ghost-actions button:disabled{cursor:not-allowed;opacity:.5;transform:none}.ghost-view{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(22px,4vw,38px);min-height:calc(100vh - 58px);padding:42px 24px;display:flex}.sign-copy{justify-items:center;gap:16px;display:grid}.sign-copy>span{color:var(--gold);align-items:center;gap:8px;font-size:14px;font-weight:850;display:inline-flex}.sign-copy h1{max-width:900px;color:var(--gold);text-shadow:0 4px #00000059;-webkit-text-stroke:2px var(--ink);margin:0;font-size:clamp(42px,6vw,74px);line-height:.95}.sign-copy p{max-width:800px;color:var(--ink);margin:0;font-size:clamp(20px,3vw,30px);font-weight:650;line-height:1.2}.dice-row{flex-wrap:wrap;justify-content:center;gap:clamp(28px,6vw,66px);display:flex}.dice{background:var(--gold);border-radius:10px;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:4px;width:78px;height:78px;padding:14px;display:grid;box-shadow:inset 0 0 0 1px #6f420440,0 8px #00000040}.dice.is-rolling{animation:.18s ease-in-out infinite alternate pulse}.dice span{border-radius:50%}.dice span.is-on{background:#050505}.sign-result{width:min(760px,100%);color:var(--ink);background:#684413;border:1px solid #b87924;border-radius:8px;padding:18px 24px;font-size:16px;font-weight:650;line-height:1.7;box-shadow:0 18px 48px #00000047}.ghost-actions{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.ghost-actions button{border-radius:999px;gap:8px;min-width:184px;min-height:48px;padding:0 24px;font-size:16px;font-weight:850}.ghost-actions button:first-child{border-color:var(--gold-soft);background:var(--gold);color:#111}.ghost-actions button:last-child{color:#ede7df;background:0 0;border-color:#8b8b8b}.memory-view{min-height:calc(100vh - 58px);padding:clamp(20px,4vw,54px)}.memory-head{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:min(940px,100%);padding:26px}.memory-head span{color:var(--gold);font-size:14px;font-weight:850}.memory-head h1{max-width:740px;margin:10px 0 0;font-size:clamp(30px,5vw,52px);line-height:1.05}.memory-form{border:1px dashed var(--line);background:#16120d;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:12px;width:min(940px,100%);margin-top:18px;padding:16px;display:grid}.memory-form input{border:1px solid var(--line);min-width:0;height:46px;color:var(--ink);background:#0b0b0b;border-radius:999px;outline:0;padding:0 18px}.memory-list{gap:14px;width:min(940px,100%);margin-top:18px;display:grid}.memory-item{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;padding:22px}.memory-item div{justify-content:space-between;align-items:center;gap:16px;display:flex}.memory-item span{color:#fff4e4;font-size:14px;font-weight:800}.memory-item strong{white-space:nowrap;color:var(--gold-soft);border:1px solid #ff9f1a80;border-radius:999px;padding:6px 10px;font-size:12px}.memory-item p{color:#f5eee5;margin:14px 0 18px;font-size:19px;line-height:1.68}.memory-item button{border-color:var(--line);color:#d7cec5;background:0 0;border-radius:999px;gap:6px;min-height:38px;padding:0 13px;font-size:13px}.spin{animation:.8s linear infinite spin}@keyframes pulse{0%{transform:translateY(0)rotate(-1deg)}to{transform:translateY(-3px)rotate(2deg)}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:860px){.companion-shell{grid-template-columns:1fr}.teacher-rail{border-right:0;border-bottom:1px solid var(--line);gap:12px;min-height:auto;padding:16px 18px}.teacher-status{min-height:34px}.teacher-portrait{min-height:132px}.teacher-portrait img{width:118px}.voice-button{min-width:166px;min-height:46px;font-size:16px}.fortune-panel{margin-top:0;padding:12px}.account-row strong{font-size:16px}.fortune-panel h2{margin:10px 0;font-size:16px}.fortune-item img{width:38px;height:38px}.workspace{min-height:auto}.workspace-header{flex-direction:column;align-items:stretch;gap:0}.workspace-header nav{overflow-x:auto}.workspace-header button{flex:1;min-width:108px;padding:0 12px}.runtime-pill{align-self:flex-start;margin:10px 14px}.chat-view{height:auto;min-height:640px;padding:22px 16px 16px}.message p{max-width:100%}.chat-input{min-height:106px;padding:14px}.ghost-view,.memory-view{min-height:640px}}@media (max-width:480px){.sign-copy h1{-webkit-text-stroke:1px var(--ink)}.ghost-actions button{width:100%}.memory-item div{flex-direction:column;align-items:flex-start}}
