:root{--ink:#334c43;--muted:#849083;--line:#e0e6da;--green:#48694f;--paper:#fffef9;--bg:#f3f5ee}*{box-sizing:border-box}body{margin:0;font:13px/1.7 system-ui,-apple-system,'Segoe UI','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer;color:inherit;border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:#fffef9}button:hover{background:#e9efdf}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #9bb68a;outline-offset:3px}[hidden]{display:none!important}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}label{display:block;font-size:11px;color:#74806f;margin:12px 0 6px}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#fafbf5;color:var(--ink);min-width:0}input[type=checkbox]{accent-color:var(--green);flex-shrink:0;margin-top:4px}.topbar{padding:18px 32px;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line);background:#edf0e7}.logo{display:flex;align-items:center;gap:10px;font-size:34px;line-height:1}.logo span{font-size:20px;font-weight:600}.logo small{display:block;font-size:9px;letter-spacing:3px;margin-top:5px;font-weight:400}.top-title{padding-left:25px;border-left:1px solid #d4ddcb;font-size:13px}.top-title span{font-size:8px;letter-spacing:2px;display:block;color:#8d9a83}.top-actions{margin-left:auto;display:flex;align-items:center;gap:15px}.chip{border:1px solid #dae3d0;background:#f5f8ee;border-radius:20px;padding:4px 10px;font-size:10px;white-space:nowrap}.help{background:transparent;border:0;font-size:11px}.back{font-size:11px;color:var(--muted)}main{max-width:1640px;margin:auto;padding:0 32px}.page-heading{display:flex;justify-content:space-between;padding:30px 0 25px;align-items:center}.eyebrow{font-size:8px;letter-spacing:2.2px;color:#8a997b}h1{font:500 27px/1.5 Georgia,'Songti SC','SimSun',serif;letter-spacing:1px;margin:9px 0}h1 span{color:#a0b18c}.page-heading p{font-size:11px;color:#8b9585;margin:0}.heading-flower{font-size:52px;color:#b6c49f;padding-right:20px}.face-layout{display:grid;grid-template-columns:245px minmax(300px,1fr) minmax(325px,390px);gap:18px;align-items:start}.config-panel,.stage-panel,.conversation-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}.config-panel{padding:22px 18px}.panel-title{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.7px;color:#87927d;margin-bottom:14px}.divided{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.mode-tabs{display:flex;gap:5px}.mode-tabs button{flex:1;padding:9px 2px;font-size:10px;white-space:nowrap}.mode-tabs b{display:block;font-size:20px;line-height:1.2;margin-bottom:4px;font-weight:400}.selected{background:#e4edd9!important;border-color:#96ae80!important;color:#49633d}.mode-description{font-size:11px;color:#85917b;line-height:1.85;margin:13px 0}.outfits{display:flex;gap:8px}.outfits button{flex:1;font-size:10px;padding:9px 0}.outfits span{display:block;font-size:20px;color:#83976e}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.preferences{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}summary{list-style:none;cursor:pointer;font-size:11px;display:flex;justify-content:space-between;align-items:center}summary::-webkit-details-marker{display:none}summary span{font-size:16px;color:#829575}.check{display:flex;gap:7px;align-items:start;font-size:10px;line-height:1.7;color:#8b927f}.hint{font-size:10px;line-height:1.8;color:#939c8a;margin:8px 0}.stage-top{display:flex;justify-content:space-between;align-items:center;padding:18px 20px}.stage-label{font-size:8px;letter-spacing:1.5px;color:#929d84}.portrait-scene{height:355px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#f8fae9 0,#e8efda 48%,#dce7cb 100%);--skin:#efc9aa;--skin-shadow:#dfad90;--hair:#3c4438;--cloth:#718c68;--accent:#e8e9d3}.portrait-scene[data-skin=light]{--skin:#f7dbc7;--skin-shadow:#e3bda6}.portrait-scene[data-skin=deep]{--skin:#bc8c68;--skin-shadow:#986b50}.portrait-scene[data-palette=rose]{--cloth:#9d7881;--accent:#efd9da;background:radial-gradient(ellipse at 50% 40%,#fff7ec,#eee0db 65%,#dfd2ca)}.portrait-scene[data-palette=night]{--cloth:#3e536d;--accent:#d2d9e1;background:radial-gradient(ellipse at 50% 40%,#edf1f3,#d6dfe4 65%,#c2d0d6)}.window-light{position:absolute;width:260px;height:270px;border:1px solid #fff8;border-radius:140px 140px 0 0;left:50%;top:20px;transform:translateX(-50%);box-shadow:0 0 0 15px #fff2}.window-light:after{content:'';position:absolute;inset:0 50%;border-right:1px solid #fff7}.orb{position:absolute;border:1px solid #b5c69a55;border-radius:50%}.orb-one{width:250px;height:250px;top:40px;left:-170px}.orb-two{width:200px;height:200px;bottom:-40px;right:-130px}.floating{position:absolute;color:#8fa47766;font-size:26px}.f1{left:16%;top:55px}.f2{right:15%;top:90px;font-size:36px}.f3{left:22%;top:180px}.portrait{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:245px;height:305px;transform-origin:50% 100%;animation:sway 7s ease-in-out infinite}.face{position:absolute;left:66px;top:49px;width:113px;height:145px;border-radius:44% 44% 45% 45%;background:linear-gradient(105deg,var(--skin),var(--skin) 65%,var(--skin-shadow));z-index:4}.hair-back{position:absolute;left:57px;top:30px;width:132px;height:156px;border-radius:48% 48% 32% 30%;background:var(--hair);z-index:1}.hair-front{position:absolute;left:59px;top:31px;width:128px;height:73px;background:var(--hair);border-radius:50% 50% 70% 5%;transform:rotate(-8deg);z-index:5;clip-path:polygon(0 0,100% 0,100% 85%,87% 70%,82% 46%,69% 68%,64% 47%,45% 83%,22% 97%,16% 80%,0 100%)}.ear{position:absolute;width:17px;height:30px;border-radius:50%;background:var(--skin);top:112px;z-index:3}.left-ear{left:58px;transform:rotate(-9deg)}.right-ear{right:58px;transform:rotate(9deg)}.neck{position:absolute;left:104px;top:173px;width:37px;height:45px;background:var(--skin-shadow);z-index:2;border-radius:0 0 15px 15px}.body-clothes{position:absolute;left:18px;top:200px;width:210px;height:160px;background:var(--cloth);border-radius:70px 70px 0 0;z-index:3;box-shadow:inset 12px 0 #ffffff10,inset -15px 0 #00000008}.collar{position:absolute;top:-3px;width:60px;height:60px;background:var(--accent);z-index:1}.left-collar{left:48px;clip-path:polygon(30% 0,90% 40%,80% 100%,0 30%)}.right-collar{right:48px;clip-path:polygon(70% 0,10% 40%,20% 100%,100% 30%)}.necklace{position:absolute;left:98px;top:40px;font-size:16px;color:#ddd8ae}.jacket-detail{position:absolute;left:50%;top:70px;border-left:1px solid #ffffff40;height:65px}.eye{position:absolute;top:66px;width:12px;height:7px;background:#40473b;border-radius:45% 45% 50% 50%;animation:blink 5.5s infinite;transform-origin:center}.eye:after{content:'';position:absolute;left:3px;top:1px;background:#fff9;width:3px;height:3px;border-radius:50%}.eye-left{left:23px}.eye-right{right:23px}.brow{position:absolute;top:53px;width:19px;height:3px;background:var(--hair);border-radius:50%;opacity:.7}.brow-left{left:20px;transform:rotate(-6deg)}.brow-right{right:20px;transform:rotate(6deg)}.nose{position:absolute;left:54px;top:80px;width:6px;height:10px;border-bottom:2px solid #a3694c33;border-right:1px solid #a3694c22;border-radius:0 0 4px}.mouth{position:absolute;left:48px;top:105px;width:20px;height:8px;border-bottom:2px solid #a96e62;border-radius:0 0 50% 50%}.blush{position:absolute;top:83px;width:22px;height:10px;border-radius:50%;background:#db9c8b40;filter:blur(2px)}.blush-left{left:13px}.blush-right{right:13px}.bun,.hair-pin,.earring{display:none}.portrait-scene[data-hair=long] .hair-back{height:255px;left:48px;width:150px;border-radius:48% 48% 15% 15%;background:linear-gradient(90deg,#303b30,var(--hair),#303b30)}.portrait-scene[data-hair=bun] .bun{display:block;position:absolute;left:94px;top:2px;width:58px;height:53px;border-radius:45%;background:var(--hair);z-index:2}.portrait-scene[data-hair=bun] .hair-pin{display:block;position:absolute;left:76px;top:25px;width:89px;height:4px;background:#c5ba86;transform:rotate(-15deg);z-index:6}.portrait-scene[data-outfit=ancient] .body-clothes{border-radius:45px 45px 0 0;left:7px;width:232px;background:linear-gradient(110deg,var(--cloth) 45%,var(--accent) 46%,var(--accent) 53%,var(--cloth) 54%)}.portrait-scene[data-outfit=ancient] .collar{height:112px;width:57px;top:-5px}.portrait-scene[data-outfit=ancient] .left-collar{transform:rotate(-14deg);left:68px;background:var(--accent)}.portrait-scene[data-outfit=ancient] .right-collar{transform:rotate(14deg);right:66px;background:#e1e2d0}.portrait-scene[data-outfit=ancient] .necklace{left:108px;top:87px;color:#b7b17d}.portrait-scene[data-outfit=punk] .body-clothes{background:#30383e;border-radius:50px 50px 0 0}.portrait-scene[data-outfit=punk] .left-collar{background:var(--cloth);width:70px;height:100px;left:36px}.portrait-scene[data-outfit=punk] .right-collar{background:var(--cloth);width:70px;height:100px;right:36px}.portrait-scene[data-outfit=punk] .jacket-detail{transform:rotate(20deg);top:35px;border-left:3px solid #b2bec0;height:100px}.portrait-scene[data-outfit=punk] .necklace{color:#d0d7db;top:20px}.portrait-scene[data-outfit=punk] .earring{display:block;position:absolute;right:56px;top:137px;border:3px solid #c3caca;border-radius:50%;width:13px;height:20px;z-index:6}.plant{position:absolute;bottom:0;font-size:120px;line-height:1;color:#93a97a55}.plant-left{left:-15px;transform:rotate(15deg)}.plant-right{right:-10px;transform:scaleX(-1) rotate(12deg);font-size:100px}.portrait-ground{position:absolute;bottom:0;height:30px;left:0;right:0;background:linear-gradient(transparent,#b3c49a44);z-index:6}.scene-caption{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);z-index:7;white-space:nowrap;background:#fcfff0c9;border:1px solid #ffffff80;border-radius:20px;padding:6px 12px;font-size:9px;color:#76836b;display:flex;gap:7px;align-items:center}.live-dot{width:5px;height:5px;border-radius:50%;background:#9eb87e}.speaking .mouth{height:12px;background:#a87565;border-radius:40%;animation:talk .4s ease-in-out infinite}.speaking .portrait{animation:sway 3s ease-in-out infinite}.stage-footer{padding:18px 22px 8px;display:flex;justify-content:space-between;align-items:center}.stage-footer h2{font-size:20px;font-weight:500;margin:0}.stage-footer p{font-size:11px;color:#89927e;margin:4px 0}.round-button{border-radius:50%;width:39px;height:39px;padding:0;background:#f0f4e9;font-size:20px}.stage-notice{font-size:9px;color:#9aa48d;padding:0 22px 18px}.voice-settings{border-top:1px solid var(--line);padding:20px}.plain{border:0;padding:0;background:transparent;font-size:10px;color:#87977c}.voice-settings .panel-title{margin-bottom:2px}.voice-settings details{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}audio{width:100%;height:34px;margin-top:10px}input[type=file]{font-size:10px;max-width:100%}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.button-row button{font-size:10px}.danger{color:#a26557}.conversation-panel{display:flex;flex-direction:column;min-height:850px;max-height:1080px;height:calc(100dvh - 215px);position:sticky;top:15px}.conversation-head{display:flex;justify-content:space-between;align-items:center;padding:22px 20px 15px}.conversation-head h2{font-size:17px;font-weight:500;margin:5px 0 0}.context-note{padding:8px 20px;background:#f4f6ec;font-size:9px;color:#96a084;border-top:1px solid #eaf0df;border-bottom:1px solid #eaf0df}.chat-log{padding:22px 18px;overflow:auto;flex:1;min-height:210px;scroll-behavior:smooth}.chat-message{max-width:94%;margin-bottom:20px}.message-name{font-size:9px;color:#97a08e;margin-bottom:6px}.message-text{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;background:#f0f4e9;padding:13px 14px;border-radius:2px 13px 13px;line-height:1.9}.chat-message.user{margin-left:auto}.user .message-name{text-align:right}.user .message-text{background:#e3ecdb;border-radius:13px 2px 13px 13px}.read-message{border:0;padding:3px;background:transparent;font-size:9px;color:#94a183;margin-top:4px}.safety-inline{margin:0 16px 12px;background:#f6efdf;border:1px solid #e7d9b9;border-radius:10px;padding:12px;font-size:11px;color:#897b5a}.safety-inline p{font-size:10px;margin:5px 0}.safety-inline button{font-size:10px;padding:4px 8px;background:#fffcf4}.prompt-chips{display:flex;gap:6px;padding:0 16px 12px;flex-wrap:wrap}.prompt-chips button{border-radius:20px;font-size:9px;padding:5px 9px}.input-area{padding:0 16px 16px}.input-area form{border:1px solid #dce5d2;background:#fafcf6;border-radius:12px;padding:10px}.input-area textarea{border:0;background:transparent;resize:vertical;font-size:12px;padding:2px;min-height:58px;max-height:180px}.input-toolbar{display:flex;align-items:center;gap:10px;padding-top:6px}.input-toolbar #mic{font-size:10px;padding:5px 7px;background:#f2f5ec}.input-toolbar #input-count{font-size:9px;color:#a0a98f;margin-left:auto}.input-toolbar .primary{font-size:11px;padding:6px 12px}.primary{background:var(--green);color:white;border:0}.primary:hover{background:#3a563e}.consent-line,.mic-consent{font-size:9px}.data-panel{border:1px solid var(--line);border-radius:12px;background:#f9faf4;padding:16px 20px;margin-top:22px}.data-panel p{font-size:11px;color:#939b8b;max-width:1000px;margin-top:12px}.import-button{position:relative;border:1px solid var(--line);padding:9px 12px;border-radius:9px;margin:0;font-size:10px;background:#fff}.import-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}footer{text-align:center;font-size:9px;color:#9ba58d;letter-spacing:2px;padding:26px}dialog{background:var(--paper);color:var(--ink);max-width:520px;width:calc(100% - 30px);border:1px solid var(--line);border-radius:18px;padding:30px}dialog::backdrop{background:#24382699}dialog h2{font-weight:500;font-size:22px;margin-top:16px}dialog p{font-size:13px;color:#7a8873}blockquote{font-size:12px;border-left:2px solid #a3b18e;padding-left:15px;margin:20px 0}.close{float:right;border:0;font-size:23px;padding:0 7px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);z-index:10;padding:12px 20px;border-radius:12px;background:#354b3c;color:#fff;font-size:12px;box-shadow:0 8px 30px #0002}#notice.error{background:#895d4a}.error-text{font-size:11px;color:#a56959;line-height:1.8}@keyframes blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.1)}}@keyframes sway{0%,100%{transform:translateX(-50%) rotate(-1deg)}50%{transform:translateX(-50%) rotate(1deg)}}@keyframes talk{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}@media(min-width:1450px){.face-layout{grid-template-columns:270px minmax(380px,1fr) 430px}.portrait-scene{height:405px}.portrait{transform:translateX(-50%);height:335px}.conversation-panel{min-height:900px}}@media(max-width:1150px){main{padding:0 20px}.face-layout{grid-template-columns:210px minmax(255px,1fr) minmax(285px,1fr);gap:12px}.config-panel{padding:20px 12px}.topbar{padding:16px 20px;gap:20px}.portrait-scene{height:320px}.stage-label{font-size:7px;letter-spacing:.5px}.stage-top{padding:16px 12px}.voice-settings{padding:16px 12px}.two-fields{gap:7px}.conversation-head{padding:20px 16px}.top-title{padding-left:20px}.page-heading h1{font-size:24px}}@media(max-width:950px){.face-layout{grid-template-columns:220px minmax(0,1fr)}.config-panel{grid-row:1 / 3}.conversation-panel{grid-column:2;position:static;min-height:600px;height:680px;max-height:none}.portrait-scene{height:330px}.stage-panel{grid-column:2}.voice-settings{display:block}.top-title{display:none}.heading-flower{display:none}.stage-top{padding:16px 20px}}@media(max-width:600px){main{padding:0 13px}.topbar{padding:13px;gap:10px;position:sticky;top:0;z-index:9}.logo{font-size:29px;gap:7px}.logo span{font-size:17px}.logo small{font-size:8px}.top-actions{gap:5px}.top-actions .chip{font-size:8px;padding:4px 6px}.help{font-size:10px;padding:5px}.back{font-size:9px}.page-heading{padding:24px 3px 20px}.eyebrow{font-size:7px;letter-spacing:1.2px}h1{font-size:23px!important;max-width:340px;letter-spacing:.3px}.page-heading p{font-size:10px;max-width:320px}.face-layout{display:flex;flex-direction:column;gap:14px}.config-panel,.stage-panel,.conversation-panel{width:100%}.config-panel{padding:18px}.mode-tabs button{font-size:11px;padding:8px}.mode-tabs b{font-size:19px;display:inline-block;margin-right:5px}.outfits button span{display:inline-block;font-size:16px;margin-right:5px}.config-panel .two-fields{gap:12px}.divided{margin-top:17px;padding-top:16px}.preferences{margin-top:15px}.stage-panel{order:1}.config-panel{order:0}.conversation-panel{order:2;height:700px;min-height:600px}.portrait-scene{height:310px}.stage-footer{padding:16px 20px 6px}.portrait{height:295px}.voice-settings{padding:18px}.data-panel{padding:16px}label,.hint{font-size:11px}.check{font-size:10px}.message-text{font-size:13px}.chat-log{padding:20px 16px}.input-area{padding:0 12px 14px}.consent-line,.mic-consent{font-size:10px}.input-area textarea{font-size:16px}.input-toolbar #mic{font-size:11px}select,input:not([type=checkbox]):not([type=file]){font-size:16px}input[type=file]{font-size:11px}.stage-notice{font-size:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
.reference-card{margin:8px 0 20px;padding:12px;background:#f5f1e6;border:1px solid #e6deca;border-radius:10px}.reference-card p{font-size:11px;color:#8b826b;margin:12px 0 6px}.reference-card small{font-size:9px;color:#a0977d}

.mobile-customize{display:none}.voice-summary{display:none}@media(max-width:600px){.mobile-customize{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:11px;margin-top:14px;background:#f5f7ee}.config-panel #customize-content{display:none}.config-panel.expanded #customize-content{display:block}.stage-panel{order:0}.config-panel{order:1}.voice-summary{display:flex;font-size:12px}.voice-settings[open] .voice-summary{margin-bottom:16px}.portrait-scene{height:270px}.portrait{height:290px;transform:translateX(-50%)}.stage-footer{padding-top:12px}.stage-footer h2{font-size:18px}.stage-notice{padding-bottom:12px}.page-heading{padding:20px 3px 16px}}

@media(max-width:600px){.topbar{flex-wrap:wrap}.top-actions{flex:1;min-width:0;flex-wrap:wrap;justify-content:flex-end;gap:4px}.top-actions .help{padding:3px}.top-actions .back{font-size:9px}}
