:root{--sans: "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "Cascadia Code", "SFMono-Regular", ui-monospace, Consolas, monospace;--radius: 14px;--radius-sm: 9px;--topbar-h: 66px;--param-h: 168px;--chat-min: 420px}:root,[data-theme=dark]{color-scheme:dark;--bg-0: #070f1c;--bg-1: #0a1626;--bg-2: #0e1d31;--surface-1: rgba(13, 26, 44, .82);--surface-2: rgba(17, 33, 54, .92);--surface-3: rgba(21, 40, 64, .96);--surface-glass: rgba(12, 24, 41, .62);--card: rgba(16, 31, 51, .86);--card-hover: rgba(21, 41, 66, .94);--line: rgba(148, 197, 255, .16);--line-soft: rgba(148, 197, 255, .09);--line-strong: rgba(45, 212, 191, .42);--text: #f2f7fd;--text-2: #bdd0e6;--text-3: #8ba3c0;--accent: #2dd4bf;--accent-2: #38bdf8;--accent-ink: #04211e;--accent-soft: rgba(45, 212, 191, .16);--accent-line: rgba(45, 212, 191, .34);--gold: #f5b942;--gold-ink: #241703;--gold-soft: rgba(245, 185, 66, .16);--gold-line: rgba(245, 185, 66, .34);--ok: #34d399;--warn: #fbbf24;--err: #fb7185;--info: #60a5fa;--frame: rgba(120, 200, 255, .22);--frame-strong: rgba(120, 220, 255, .38);--grid-line: rgba(120, 200, 255, .07);--shadow: 0 30px 80px rgba(2, 8, 20, .62);--shadow-sm: 0 10px 30px rgba(2, 8, 20, .38);--glow-a: rgba(34, 211, 238, .14);--glow-b: rgba(245, 185, 66, .1);--vignette: linear-gradient(180deg, rgba(7, 15, 28, .1) 0%, rgba(6, 12, 22, .72) 100%);--cv-bg: #081524;--cv-center: rgba(148, 197, 255, .34);--cv-corridor: rgba(45, 212, 191, .075);--cv-faint: rgba(45, 212, 191, .2);--cv-car-a: #2a5f74;--cv-car-b: #3d8189;--cv-panel: rgba(10, 22, 38, .86)}[data-theme=light]{color-scheme:light;--bg-0: #eef4fb;--bg-1: #e4edf7;--bg-2: #dbe7f4;--surface-1: #ffffff;--surface-2: #f4f8fc;--surface-3: #ffffff;--surface-glass: rgba(255, 255, 255, .86);--card: rgba(255, 255, 255, .96);--card-hover: #ffffff;--line: rgba(22, 62, 112, .2);--line-soft: rgba(22, 62, 112, .11);--line-strong: rgba(13, 130, 126, .42);--text: #07121f;--text-2: #23405f;--text-3: #4a6482;--accent: #0a7a75;--accent-2: #0a6590;--accent-ink: #ffffff;--accent-soft: rgba(13, 131, 126, .12);--accent-line: rgba(13, 131, 126, .3);--gold: #8a5603;--gold-ink: #ffffff;--gold-soft: rgba(154, 98, 6, .11);--gold-line: rgba(154, 98, 6, .28);--ok: #0f7a4f;--warn: #9a6206;--err: #b3203c;--info: #0b5ea8;--frame: rgba(22, 62, 112, .18);--frame-strong: rgba(13, 131, 126, .38);--grid-line: rgba(22, 62, 112, .08);--shadow: 0 24px 60px rgba(30, 62, 100, .16);--shadow-sm: 0 8px 22px rgba(30, 62, 100, .1);--glow-a: rgba(13, 131, 126, .1);--glow-b: rgba(154, 98, 6, .07);--vignette: linear-gradient(180deg, rgba(238, 244, 251, .1) 0%, rgba(219, 231, 244, .62) 100%);--cv-bg: #fbfdff;--cv-center: rgba(22, 62, 112, .55);--cv-corridor: rgba(13, 131, 126, .16);--cv-faint: rgba(13, 131, 126, .42);--cv-car-a: #4b8fa3;--cv-car-b: #2f7585;--cv-panel: rgba(255, 255, 255, .9)}.mascot{--mascot-size: 34px;width:var(--mascot-size);height:var(--mascot-size);flex:none;display:grid;place-items:center;-webkit-user-select:none;user-select:none}.mascot-svg{width:100%;height:100%;overflow:visible}.m-body{fill:var(--accent)}.m-gloss{fill:#fff;opacity:.18}.m-face{fill:#0a1f2b}.m-eye{fill:#eafcfa;transform-origin:center 64px}.m-mouth{fill:#eafcfa;opacity:.9}.m-ear{fill:var(--accent-2);opacity:.85}.m-stem{stroke:var(--accent);stroke-width:2.6;stroke-linecap:round}.m-bulb{fill:var(--gold);animation:m-bulb 2.6s ease-in-out infinite}.m-panel rect{fill:var(--gold);opacity:.95}.m-panel line{stroke:var(--cv-bg);stroke-width:1.1;opacity:.5}.m-ring{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-dasharray:4 10;opacity:0;transform-origin:60px 64px;transition:opacity .2s ease}.m-happy,.m-dots,.m-sweat{opacity:0}.m-smile{fill:none;stroke:#eafcfa;stroke-width:3.4;stroke-linecap:round}.m-dots circle{fill:#eafcfa}.mascot[data-mood=idle] .m-bob{animation:m-bob 4.2s ease-in-out infinite}.mascot[data-mood=idle] .m-eye{animation:m-blink 5.4s ease-in-out infinite}.mascot[data-mood=thinking] .m-eyes,.mascot[data-mood=thinking] .m-mouth{opacity:0}.mascot[data-mood=thinking] .m-dots{opacity:1}.mascot[data-mood=thinking] .m-dots circle{animation:m-dot 1.05s ease-in-out infinite}.mascot[data-mood=thinking] .m-dots circle:nth-child(2){animation-delay:.14s}.mascot[data-mood=thinking] .m-dots circle:nth-child(3){animation-delay:.28s}.mascot[data-mood=thinking] .m-ring{opacity:.45;animation:m-spin 3.6s linear infinite}.mascot[data-mood=thinking] .m-bob{animation:m-hover 2.4s ease-in-out infinite}.mascot[data-mood=talking] .m-mouth{transform-origin:60px 79px;animation:m-talk .5s ease-in-out infinite}.mascot[data-mood=talking] .m-bob{animation:m-hover 3s ease-in-out infinite}.mascot[data-mood=happy] .m-eyes,.mascot[data-mood=happy] .m-mouth,.mascot[data-mood=happy] .m-dots{opacity:0}.mascot[data-mood=happy] .m-happy{opacity:1}.mascot[data-mood=happy] .m-bob{animation:m-hop .9s cubic-bezier(.3,1.4,.5,1)}.mascot[data-mood=happy] .m-bulb{animation:none;fill:var(--ok)}.mascot[data-mood=alert] .m-bob{animation:m-tilt 1.6s ease-in-out infinite}.mascot[data-mood=alert] .m-eye{transform:scaleY(.4);fill:var(--err)}.mascot[data-mood=alert] .m-sweat{opacity:1}.mascot[data-mood=alert] .m-face{fill:#33121c}.mascot[data-mood=alert] .m-sweat{fill:var(--info);opacity:.85}@keyframes m-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes m-hover{0%,to{transform:translateY(-1px)}50%{transform:translateY(-5px)}}@keyframes m-hop{0%{transform:translateY(0)}40%{transform:translateY(-11px)}70%{transform:translateY(0)}85%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes m-tilt{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes m-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}@keyframes m-dot{0%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes m-talk{0%,to{transform:scaleY(1)}50%{transform:scaleY(2.4)}}@keyframes m-bulb{0%,to{opacity:1}50%{opacity:.5}}@keyframes m-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.mascot *{animation:none!important}}.landing-mascot{--mascot-size: 96px;margin-bottom:2px;filter:drop-shadow(0 10px 24px rgb(6 20 30 / 20%))}.chat-mascot{--mascot-size: 32px;margin-right:2px;cursor:default}@media(max-width:720px){.landing-mascot{--mascot-size: 76px}}
