@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/41e95f694c5c4549-s.2b_sldcwg6mn_.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6c55a692938ebbbc-s.1emuuracu50qd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a218039a3287bcfd-s.p.43zbiuwnnoiok.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bdc7e24a509eb931-s.0ynx40_3oa9rk.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0da9c7f357bd9d4d-s.1975l3y3401x_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8e6fa89aa22d24ec-s.p.2o7m9ogm38dql.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0a7740363b4d4863-s.3ji57o093q1kd.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5f9d24ebef5d5292-s.19xuq3td7fwu_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e2334d715941921e-s.p.3o_v2fun1jzxk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b53057dbf91a7acf-s.11ypmpdlzqdb_.woff2)format("woff2");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/798ea22d9983e047-s.3go-kn2r40gie.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(../media/47fe1b7cd6e6ed85-s.p.3bh2vc0w-r-ll.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins Fallback;src:local(Arial);ascent-override:93.62%;descent-override:31.21%;line-gap-override:8.92%;size-adjust:112.16%}.poppins_27c1d5ca-module__9rNIbG__className{font-family:Poppins,Poppins Fallback;font-style:normal}.poppins_27c1d5ca-module__9rNIbG__variable{--font-poppins:"Poppins", "Poppins Fallback"}
:root{--bg-grad:linear-gradient(135deg, #d9deff 0%, #ecdcff 36%, #ffd9ec 68%, #d6e9ff 100%);--panel:#ffffffd1;--panel-solid:#fff;--panel-2:#f4f6fb;--border:#7882a024;--accent:#7c8cff;--accent-dim:#6d7bf0;--accent-soft:#eaedff;--text:#1c2333;--text-mid:#4a5468;--text-dim:#97a0b5;--user-bubble:#2a3142;--bot-bubble:#fff;--shadow:0 8px 30px #505a8214;--shadow-sm:0 2px 12px #505a820f;--font-kr:"Pretendard", -apple-system, BlinkMacSystemFont, sans-serif;--font-en:var(--font-poppins), "Poppins", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);font-family:var(--font-en), var(--font-kr);-webkit-font-smoothing:antialiased;letter-spacing:-.2px;background:#fff;min-height:100vh;position:relative;overflow-x:hidden}.blob-bg{z-index:-2;background:radial-gradient(45% 50% at 35% 35%,#6c7bf0d9,#0000 60%),radial-gradient(48% 52% at 62% 38%,#b06dffcc,#0000 60%),radial-gradient(46% 50% at 58% 62%,#ff6eafb3,#0000 60%),radial-gradient(48% 52% at 38% 60%,#4bb9ffbf,#0000 60%),#fff;position:fixed;inset:0}.blob-bg:after{content:"";background:radial-gradient(80% 80%,#0000 30%,#fff 92%);position:absolute;inset:0}.blob{display:none}h1,h2,h3,.name,.vp-title,button{font-family:var(--font-en), var(--font-kr)}.app{grid-template-rows:auto 1fr;grid-template-columns:360px 1fr;gap:16px 20px;max-width:1760px;height:100vh;margin:0 auto;padding:50px 40px;display:grid}.header{grid-column:1/-1;align-items:center;gap:12px;padding:0 4px;display:flex}.header h1{letter-spacing:-.02em;background:linear-gradient(120deg,#6d7bf0,#b06dff 55%,#ff7eb6);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:22px;font-weight:700}.header .badge{color:var(--accent-dim);background:var(--accent-soft);border-radius:999px;padding:4px 12px;font-size:11px;font-weight:600}.server-status{border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:4px 12px;font-size:11px;font-weight:600;display:flex}.server-status.online{color:#16a34a;background:#dcfce7}.server-status.offline{color:#dc2626;background:#fee2e2}.server-status .status-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.server-status.online .status-dot{animation:1.5s infinite blink}.offline-banner{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:12px;grid-column:1/-1;padding:10px 16px;font-size:13px;font-weight:500}.panel{background:var(--panel);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow);border:1px solid #fff9;border-radius:22px;padding:18px}.sidebar{flex-direction:column;gap:16px;padding-right:2px;display:flex;overflow-y:auto}.section-title{color:var(--text-dim);letter-spacing:.02em;margin-bottom:12px;font-size:12px;font-weight:600}.persona-grid{flex-direction:column;gap:10px;display:flex}.persona-card{background:var(--panel-solid);cursor:pointer;box-shadow:var(--shadow-sm);border:1.5px solid #0000;border-radius:16px;align-items:center;gap:12px;padding:13px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.persona-card:hover{transform:translateY(-1px);box-shadow:0 6px 20px #7c8cff29}.persona-card.active{border-color:var(--accent);background:linear-gradient(135deg,#f3f5ff,#faf3ff)}.persona-card .persona-icon{width:46px;height:46px;color:var(--accent-dim);background:linear-gradient(145deg,#eef0ff,#e4e0ff);border-radius:14px;flex-shrink:0;place-items:center;display:grid;box-shadow:inset 0 1px 3px #fffc,0 2px 6px #7c8cff26}.persona-card.active .persona-icon{color:#fff;background:linear-gradient(145deg,#7c8cff,#a06dff);box-shadow:0 4px 14px #7c8cff73}.persona-card .info .name{color:var(--text);font-size:14px;font-weight:600}.persona-card .info .desc{color:var(--text-dim);margin-top:1px;font-size:11px}.camera-wrap{aspect-ratio:16/9;background:#e8ecf5;border-radius:18px;position:relative;overflow:hidden}.camera-wrap video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.camera-overlay{color:var(--accent-dim);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);background:#ffffffd9;border-radius:12px;padding:7px 12px;font-size:12px;font-weight:500;position:absolute;bottom:8px;left:8px;right:8px}.camera-error{text-align:center;color:#e06a7a;background:#fffffff2;flex-direction:column;justify-content:center;align-items:center;padding:16px;font-size:12px;line-height:1.5;display:flex;position:absolute;inset:0}.camera-error button{background:var(--accent);color:#fff;padding:9px 18px;font-size:13px}.chat-panel{flex-direction:column;height:100%;min-height:0;padding:22px 24px;display:flex;overflow:hidden}.vision-panel{box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#f5f7ff,#fbf5ff);border:1px solid #ffffffb3;border-radius:18px;padding:14px 16px}.vp-head{align-items:center;gap:8px;margin-bottom:12px;display:flex}.vp-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.vp-dot.on{background:#4ade80;animation:1.5s infinite blink;box-shadow:0 0 8px #4ade80}.vp-dot.off{background:#cbd2e0}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.vp-title{color:var(--text);font-size:13px;font-weight:600}.vp-newperson{color:#fff;background:linear-gradient(120deg,#7c8cff,#b06dff);border-radius:999px;margin-left:auto;padding:3px 11px;font-size:11px;font-weight:600;animation:1s infinite blink}.vp-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.vp-stat{background:var(--panel-solid);border:1px solid var(--border);text-align:center;border-radius:12px;padding:9px 6px}.vp-stat.hl{border-color:var(--accent);background:var(--accent-soft)}.vp-label{color:var(--text-dim);margin-bottom:4px;font-size:10px}.vp-value{color:var(--text);justify-content:center;align-items:center;gap:4px;min-height:18px;font-size:13px;font-weight:600;display:flex}.vp-stat.hl .vp-value{color:var(--accent-dim)}.vp-scene{color:var(--text-mid);background:var(--panel-solid);border-radius:12px;margin-top:12px;padding:9px 12px;font-size:12px;line-height:1.45}.vp-dim{color:var(--text-dim);font-style:italic}@media (max-width:900px){.vp-grid{grid-template-columns:repeat(3,1fr)}}.robot-stage{flex-direction:column;align-items:center;gap:8px;padding:8px 0 16px;display:flex}.robot-status-text{color:var(--text-mid);font-size:13px;font-weight:500}.chat-split{flex:1;grid-template-columns:1.7fr 1fr;gap:14px;min-height:0;margin-top:8px;display:grid}.chat-main{flex-direction:column;gap:12px;padding:4px 8px 4px 4px;display:flex;overflow-y:auto}.chat-history{border:1px solid var(--border);background:#ffffff80;border-radius:16px;flex-direction:column;min-height:0;padding:12px;display:flex}.history-title{color:var(--text-dim);letter-spacing:.02em;margin-bottom:10px;font-size:11px;font-weight:600}.history-list{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.history-item{background:var(--panel-solid);border-radius:10px;flex-direction:column;gap:2px;padding:7px 10px;font-size:12px;display:flex}.history-item.user{background:#eef0f8}.history-role{color:var(--accent-dim);font-size:10px;font-weight:600}.history-item.user .history-role{color:var(--text-mid)}.history-text{color:var(--text-mid);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:18px;max-width:76%;padding:12px 16px;font-size:14px;line-height:1.55}.bubble.user{color:#fff;background:linear-gradient(135deg,#2a3142,#3a4458);border-bottom-right-radius:6px;align-self:flex-end}.bubble.bot{background:var(--bot-bubble);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-bottom-left-radius:6px;align-self:flex-start}.bubble .meta{color:var(--text-dim);margin-top:5px;font-size:10px}.chat-input-row{gap:10px;margin-top:14px;display:flex}.chat-input-row input{background:var(--panel-solid);border:1.5px solid var(--border);color:var(--text);border-radius:16px;flex:1;padding:13px 16px;font-family:inherit;font-size:14px;transition:border-color .2s}.chat-input-row input::placeholder{color:var(--text-dim)}.chat-input-row input:focus{border-color:var(--accent);outline:none}button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c8cff,#6d7bf0);border:none;border-radius:16px;padding:13px 18px;font-size:14px;font-weight:600;transition:all .2s;box-shadow:0 4px 14px #6d7bf040}button:hover{transform:translateY(-1px);box-shadow:0 6px 18px #6d7bf059}button.ghost{background:var(--panel-solid);color:var(--text-mid);border:1.5px solid var(--border);box-shadow:var(--shadow-sm)}button.ghost:hover{border-color:var(--accent);background:var(--accent-soft)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.send-btn{background:linear-gradient(160deg,#9db8ff,#5b8cff 60%,#4d7bff);border-radius:16px;place-items:center;width:54px;padding:0;display:grid;box-shadow:inset 0 2px 6px #fff9,0 0 18px #5b8cff99,0 4px 14px #4d7bff66}button.send-btn:hover{box-shadow:inset 0 2px 6px #ffffffb3,0 0 26px #5b8cffcc,0 6px 18px #4d7bff80}button.mic{border-radius:16px;place-items:center;width:54px;padding:0;display:grid}button.mic.ghost{background:var(--panel-solid);color:var(--accent-dim)}button.mic.listening{color:#fff;background:radial-gradient(circle at 50% 40%,#b9a8ff,#8b6dff 55%,#6d4dff);animation:1.3s infinite micPulse;box-shadow:inset 0 2px 8px #ffffff80,0 0 24px #8b6dffcc,0 0 40px #8b6dff66}@keyframes micPulse{0%,to{box-shadow:inset 0 2px 8px #ffffff80,0 0 24px #8b6dffcc,0 0 40px #8b6dff66}50%{box-shadow:inset 0 2px 8px #ffffff80,0 0 34px #8b6dff,0 0 60px #8b6dff99}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.65}}textarea{background:var(--panel-solid);border:1.5px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:14px;padding:11px 13px;font-family:inherit;font-size:13px}textarea::placeholder{color:var(--text-dim)}textarea:focus{border-color:var(--accent);outline:none}.row{align-items:center;gap:8px;display:flex}.small{color:var(--text-dim);font-size:12px}.status{color:var(--accent-dim);margin-top:8px;font-size:11px;font-weight:500}.checkbox-row{color:var(--text-mid);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;font-size:13px;display:flex}.checkbox-row input[type=checkbox]{appearance:none;border:1.5px solid var(--border);cursor:pointer;width:19px;height:19px;box-shadow:var(--shadow-sm);background:#fff;border-radius:7px;flex-shrink:0;transition:all .18s;position:relative}.checkbox-row input[type=checkbox]:hover{border-color:var(--accent)}.checkbox-row input[type=checkbox]:checked{background:linear-gradient(145deg,#7c8cff,#6d7bf0);border-color:#0000;box-shadow:0 2px 8px #6d7bf059}.checkbox-row input[type=checkbox]:checked:after{content:"";border:2.2px solid #fff;border-width:0 2.2px 2.2px 0;width:4px;height:9px;position:absolute;top:2.5px;left:6px;transform:rotate(45deg)}.file-input{color:var(--text-dim);width:100%;font-size:12px}.file-input::file-selector-button{color:#fff;cursor:pointer;background:#1c2333;border:none;border-radius:10px;margin-right:10px;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:background .2s}.file-input::file-selector-button:hover{background:#2c3548}.create-persona-btn{width:100%;margin-top:12px;font-size:13px;border-style:dashed!important}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e233766;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:24px;flex-direction:column;width:100%;max-width:480px;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #3c466e4d}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.modal-head h2{color:var(--text);font-size:18px;font-weight:700}.modal-close{background:var(--panel-2);color:var(--text-mid);width:32px;height:32px;box-shadow:none;border-radius:10px;place-items:center;padding:0;display:grid}.modal-close:hover{background:#e8ebf3;transform:none}.modal-body{flex-direction:column;gap:18px;padding:20px 22px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:7px;display:flex}.field-label{color:var(--text);font-size:13px;font-weight:600}.field input[type=text]{background:var(--panel-2);border:1.5px solid var(--border);color:var(--text);border-radius:12px;padding:11px 14px;font-family:inherit;font-size:14px}.field input[type=text]:focus{border-color:var(--accent);outline:none}.modal-traits{background:var(--panel-2);border-radius:14px;flex-direction:column;gap:14px;padding:14px;display:flex}.modal-foot{border-top:1px solid var(--border);gap:10px;padding:16px 22px;display:flex}.modal-foot button{flex:1}.custom-config{flex-direction:column;gap:14px;margin-top:14px;display:flex}.trait-slider{flex-direction:column;gap:5px;display:flex}.trait-head{justify-content:space-between;align-items:center;display:flex}.trait-label{color:var(--text);font-size:13px;font-weight:600}.trait-val{color:var(--accent-dim);font-size:11px;font-weight:600}.trait-slider input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.trait-ends{color:var(--text-dim);justify-content:space-between;font-size:10px;display:flex}.robot-face{place-items:center;margin:0 auto;display:grid;position:relative}.robot-glow{filter:blur(18px);z-index:0;background:radial-gradient(circle,#7c8cff80,#0000 70%);border-radius:50%;transition:all .4s;position:absolute;inset:8%}.robot-head{z-index:1;background:linear-gradient(150deg,#e9ecff 0%,#c7ceff 45%,#b3a8ff 100%);border-radius:30%;place-items:center;width:72%;height:72%;transition:transform .3s;display:grid;position:relative;box-shadow:inset 0 4px 12px #fffc,inset 0 -6px 14px #786ec866,0 12px 30px #7c8cff59}.robot-screen{background:linear-gradient(160deg,#2a2350,#3d2f6b);border-radius:26%;place-items:center;width:64%;height:56%;display:grid;overflow:hidden;box-shadow:inset 0 2px 8px #00000080}.robot-shadow{filter:blur(6px);background:radial-gradient(#7c8cff4d,#0000 70%);width:50%;height:8%;position:absolute;bottom:-2%;left:50%;transform:translate(-50%)}.eyes{justify-content:center;align-items:center;gap:16%;width:100%;height:100%;display:flex}.eye{background:#fff;box-shadow:0 0 8px #b4c8ffe6}.eye.normal{border-radius:8px;width:13px;height:22px}.eye.round{border-radius:50%;width:16px;height:16px}.eye.happy{background:0 0;border-top:4px solid #fff;border-radius:18px 18px 0 0;width:18px;height:10px;box-shadow:0 -2px 6px #b4c8ffcc}.eye.sparkle{color:#aecbff;box-shadow:none;text-shadow:0 0 12px #7c8cff;background:0 0;font-size:22px}.dot{opacity:.4;background:#fff;border-radius:50%;width:8px;height:8px;margin:0 3px}.state-listening .robot-glow{background:radial-gradient(circle,#7c8cffcc,#0000 70%);animation:1.2s infinite glowPulse}.eyes.listening .sparkle{animation:1s infinite alternate sparkleAnim}.eyes.listening .sparkle:last-child{animation-delay:.3s}@keyframes sparkleAnim{0%{opacity:.6;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.state-speaking .robot-glow{background:radial-gradient(circle,#6ec8a099,#0000 70%)}.eyes.speaking .round{animation:.5s infinite alternate talkBlink}@keyframes talkBlink{0%{transform:scaleY(1)}to{transform:scaleY(.5)}}.eyes.thinking .dot{animation:1.2s infinite dotBlink}.eyes.thinking .dot:nth-child(2){animation-delay:.2s}.eyes.thinking .dot:nth-child(3){animation-delay:.4s}@keyframes dotBlink{0%,to{opacity:.3}50%{opacity:1}}.state-greeting .robot-head{animation:.6s nod}@keyframes nod{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes glowPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.eyes.idle .normal{animation:4s infinite idleBlink}@keyframes idleBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#7882a033;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#7882a059}
