:root{font-family:system-ui,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#463650;background:#eae0f0}*{box-sizing:border-box}body{margin:0;padding:0 0 env(safe-area-inset-bottom)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #a782d3;outline-offset:2px}.app{width:min(100%,500px);min-height:100vh;margin:auto;background:#fffcff;box-shadow:0 0 48px #44274417}.topbar{display:flex;align-items:center;justify-content:space-between;background:white;padding:14px 17px;border-bottom:1px solid #eee6f5}.brand{display:flex;gap:10px;align-items:center}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:#eee0f9;color:#a777c4;border-radius:15px;font-size:27px}.brand h1{font-size:21px;margin:0;color:#654576;line-height:1.1}.brand h1 small{font-size:9px;letter-spacing:2px;color:#a98cb4}.brand p{font-size:11px;color:#a18ca9;margin:3px 0 0}.top-button{background:#f6effb;color:#84649c;border:1px solid #eee0f7;padding:10px 11px;border-radius:14px;font-size:12px;font-weight:700}.hero{padding:12px 16px 17px;background:radial-gradient(ellipse at 55% 20%,#fff 0%,#f6eafd 55%,#ebd9f2 100%);text-align:center;overflow:hidden}.status{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;min-height:29px}.status-pill{padding:6px 10px;color:#8e70a6;background:#fff9;border:1px solid #e4d1ee;border-radius:999px;font-weight:750}.status-pill.real{color:#277652;background:#e7f7eb;border-color:#b9e1cb}.status-note{color:#a18aab;font-size:10px}.avatar-tabs{display:flex;width:max-content;max-width:100%;margin:8px auto 12px;padding:4px;background:#ffffffa8;border:1px solid #edddf5;border-radius:999px;gap:3px}.avatar-tabs button{border:0;border-radius:99px;background:transparent;color:#9783a4;padding:9px 13px;font-weight:750;font-size:12px;min-height:40px}.avatar-tabs button[aria-pressed=true]{color:#694582;background:white;box-shadow:0 2px 9px #6d497c22}.avatar-frame{position:relative;margin:0 auto;width:min(100%,340px);height:365px;border-radius:45% 45% 24% 24% / 36% 36% 17% 17%;border:5px solid #ffffffd9;background:linear-gradient(#fdf2ff,#e9d8ef);overflow:hidden;box-shadow:0 12px 30px #87669f32;isolation:isolate}.avatar-frame:before{content:"";position:absolute;width:230px;height:230px;left:50%;top:15px;transform:translateX(-50%);border-radius:50%;background:#ffffff75;filter:blur(35px);pointer-events:none}.rig-stage,.art-stage{position:relative;width:100%;height:100%}.art-stage img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}.art-stage[hidden],.rig-stage[hidden]{display:none}#yuniRig{display:block;position:absolute;bottom:-10px;left:50%;height:370px;width:290px;transform:translateX(-50%);overflow:visible;--talk:0}#yuniRig .rig-hair-back{transform-origin:180px 135px;animation:hairIdle 4.7s ease-in-out infinite}#yuniRig .rig-body{transform-origin:180px 385px;animation:breathe 4s ease-in-out infinite}#yuniRig .rig-head{transform-origin:180px 285px;animation:headIdle 5s ease-in-out infinite}#yuniRig .rig-arm-left{transform-origin:120px 348px;animation:armIdle 4.1s ease-in-out infinite}#yuniRig .rig-arm-right{transform-origin:246px 349px;animation:armIdle 4.6s ease-in-out infinite reverse}#yuniRig .rig-eye{transform-origin: center;transform-box:fill-box;animation:blinkEyes 5.5s linear infinite}#yuniRig .smile-eyes{display:none}#yuniRig .hair-side.left,#yuniRig .hair-side.right{transform-origin:180px 155px;animation:sideHair 5s ease-in-out infinite}#yuniRig .hair-side.right{animation-direction:reverse}#yuniRig .rig-hearts{opacity:0}#yuniRig #mouthOpen,#yuniRig #mouthShocked{display:none}#yuniRig.talking #mouthSmile{display:none}#yuniRig.talking #mouthOpen{display:block;animation:lipVibe .22s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}#yuniRig.talking .rig-head{animation:headTalk 1.25s ease-in-out infinite}#yuniRig[data-mood=happy] .smile-eyes,#yuniRig[data-mood=laughing] .smile-eyes,#yuniRig[data-mood=joyful] .smile-eyes{display:block}#yuniRig[data-mood=happy] .rig-eyes,#yuniRig[data-mood=laughing] .rig-eyes,#yuniRig[data-mood=joyful] .rig-eyes{display:none}#yuniRig[data-mood=shocked] #mouthSmile,#yuniRig[data-mood=baffled] #mouthSmile{display:none}#yuniRig[data-mood=shocked] #mouthShocked,#yuniRig[data-mood=baffled] #mouthShocked{display:block}#yuniRig[data-mood=shy] .rig-cheeks,#yuniRig[data-mood=flutter] .rig-cheeks{opacity:1}#yuniRig[data-mood=shy] .rig-hearts,#yuniRig[data-mood=flutter] .rig-hearts{opacity:1;animation:heartFloat 2.2s ease-in-out infinite}#yuniRig[data-mood=shy] .rig-head{animation:shyTilt 2.8s ease-in-out infinite}#yuniRig[data-mood=sad] .rig-head,#yuniRig[data-mood=gloomy] .rig-head{animation:sadDrop 4s ease-in-out infinite}#yuniRig[data-mood=pout] #mouthSmile{d:path('M165 260Q180 250 195 260')}#yuniRig[data-mood=tired] .rig-eye{transform:scaleY(.65);animation:none}#yuniRig.no-motion *,#yuniRig.no-motion{animation:none!important}#yuniRig.no-motion .rig-head,#yuniRig.no-motion .rig-body,#yuniRig.no-motion .rig-eye{transform:none!important}#yuniRig.talking.no-motion #mouthOpen{transform:none!important}.speech-indicator{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);display:none;align-items:center;gap:4px;padding:8px 14px;background:#fffdf8de;border-radius:30px;z-index:2}.speech-indicator.active{display:flex}.speech-indicator i{width:3px;height:8px;border-radius:6px;background:#a36bb8;animation:wave .4s ease-in-out infinite alternate}.speech-indicator i:nth-child(2){animation-delay:.09s}.speech-indicator i:nth-child(3){animation-delay:.18s}.speech-indicator i:nth-child(4){animation-delay:.04s}.speech-indicator i:nth-child(5){animation-delay:.15s}.hero-caption{color:#9685a4;font-size:10px;margin-top:10px}.greeting{font-size:13px;color:#805f92;font-weight:720;min-height:34px;margin:12px auto 6px;line-height:1.5;max-width:340px}.affection{margin:10px auto 0;max-width:340px}.affection-label{font-size:11px;display:flex;justify-content:space-between;color:#80648f}.affection-label strong{color:#c67ea6}.track{margin-top:6px;height:8px;background:#ddcce8;border-radius:99px;overflow:hidden}.track span{display:block;background:linear-gradient(90deg,#db9dc0,#a885ce);height:100%;width:0;transition:width .35s}.emotion-section,.chat-section,.subpanel{padding:15px 17px;border-bottom:1px solid #efe8f3}.section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:14px}.section-title small{font-size:11px;color:#a094a6}.emotion-bar{display:flex;gap:8px;overflow-x:auto;padding:0 0 8px;scrollbar-color:#d4bde3 transparent}.emotion-bar button{flex:0 0 auto;border:1px solid #e3d4ee;border-radius:25px;background:#fff;color:#816b93;min-height:39px;padding:8px 12px;font-weight:700;font-size:12px}.emotion-bar button[aria-pressed=true]{background:#efdef9;color:#76548e;border-color:#c6a8e2}.link-button{background:none;border:0;color:#976bb3;font-size:12px;padding:7px;font-weight:750}.chat-log{height:185px;overflow-y:auto;border-top:1px solid #eee7f3;padding:10px 2px 8px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:88%;font-size:13px;padding:10px 12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{align-self:flex-end;background:#edc4df;border-radius:15px 4px 15px 15px;color:#5b3b53}.bubble.yuni{align-self:flex-start;background:#f0e5fa;border-radius:4px 15px 15px 15px;color:#644f73}.bubble small{font-size:10px;display:block;opacity:.65;font-weight:750;margin-bottom:4px}.notice{font-size:11px;color:#866d92;background:#f7effb;border-radius:12px;padding:10px 11px;margin:7px 0 10px;line-height:1.45}.notice.error{background:#fff0ef;color:#b25865}.notice.good{background:#ecf7ef;color:#4e8864}.chat-form{display:flex;align-items:center;gap:6px}.chat-form input,.input-row input,.settings-panel input:not([type=checkbox]){font-size:16px;min-width:0;min-height:43px;border:1px solid #e3d5ec;border-radius:12px;padding:9px 11px;background:white;color:#44304a}.chat-form input{flex:1}.icon-btn{flex:0 0 42px;height:44px;border:1px solid #e8def0;border-radius:12px;background:white;font-size:19px}.icon-btn.recording{background:#ffe0ed}.send-btn,.input-row button,.tools button,.file-label{min-height:43px;border:0;border-radius:12px;background:#ac86d0;color:#fff;padding:9px 12px;font-size:12px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.send-btn:disabled{opacity:.55}.subpanel{background:#fcf8ff}.subpanel[hidden]{display:none}.helper{color:#95839f;font-size:12px;line-height:1.6;margin:5px 0 12px}.field-label{font-size:12px;color:#7c6589;display:block;margin:12px 0 6px}.input-row{display:flex;gap:7px;margin-bottom:9px}.input-row input{flex:1}.memory-list{list-style:none;padding:0;margin:8px 0}.memory-list li{border-bottom:1px solid #eee0f6;padding:9px 0;font-size:12px;display:flex;gap:8px;align-items:center;justify-content:space-between;overflow-wrap:anywhere}.memory-list button{background:#fff;border:1px solid #e8d9f2;color:#8d68a2;border-radius:9px;padding:7px}.tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.tools button,.file-label{background:#f3e8fb;color:#76528c;border:1px solid #e6d5ed}.tools .warn{color:#b65b75}.settings-panel>input{width:100%}.toggle{display:flex;align-items:center;gap:9px;font-size:12px;margin-top:13px;color:#745f83}.toggle input{width:18px;height:18px;accent-color:#ad86ce}footer{text-align:center;color:#a399aa;font-size:10px;padding:18px 20px 28px;line-height:1.65}noscript{color:#b65b75}
@keyframes hairIdle{0%,100%{transform:rotate(-1.1deg)}50%{transform:rotate(1.8deg)}}@keyframes sideHair{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(2deg)}}@keyframes breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.008)}}@keyframes headIdle{0%,100%{transform:rotate(-1.4deg) translateY(0)}50%{transform:rotate(1.7deg) translateY(-2px)}}@keyframes headTalk{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}}@keyframes armIdle{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(2deg)}}@keyframes blinkEyes{0%,44%,46%,100%{transform:scaleY(1)}44.5%,45.5%{transform:scaleY(.05)}}@keyframes lipVibe{0%{transform:scaleY(1)}100%{transform:scaleY(3)}}@keyframes wave{to{height:21px}}@keyframes shyTilt{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(-4.5deg)}}@keyframes sadDrop{0%,100%{transform:translateY(3px) rotate(-1.5deg)}50%{transform:translateY(5px) rotate(1deg)}}@keyframes heartFloat{0%{transform:translateY(6px);opacity:.35}50%{transform:translateY(-9px);opacity:.9}100%{transform:translateY(6px);opacity:.35}}@media(max-width:350px){.topbar{padding:10px}.hero,.emotion-section,.chat-section,.subpanel{padding-left:11px;padding-right:11px}.icon-btn{flex-basis:36px}.send-btn{padding:9px 10px}.avatar-tabs button{padding:8px 9px}.avatar-frame{height:340px}#yuniRig{height:355px}}@media(prefers-reduced-motion:reduce){#yuniRig *,#yuniRig,.speech-indicator i{animation:none!important}}
