@import "https://fonts.googleapis.com/css2?family=Comfortaa:wght@400;700&family=Noto+Sans+SC:wght@300;400;700&display=swap";:root{color:#1a1223;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#151225;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,select,input,summary{font:inherit}.sprite-sheet{vertical-align:middle;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;background-color:#0000;display:inline-block}:root{--warm-paper:#faf0d8;--warm-cream:#f4e0b8;--warm-amber:#e8c895;--warm-honey:#d9a352;--old-copper:#8a5a3a;--copper-deep:#5a3a2a;--dusk-blue:#6a7a8a;--flame-red:#ff5a3a;--flame-orange:#ff8a44;--flame-yellow:#ffd66a;--text-warm:#3a2a1a;--text-soft:#5a4a3a;--text-mute:#8a7a6a;--shadow-warm:0 2px 16px #a05a322e;--shadow-soft:0 1px 8px #a05a321a;--kami-parchment:#f5f4ed;--kami-ivory:#faf9f5;--kami-border:#e8e6dc;--kami-border-soft:#e5e3d8;--kami-brand:#1b365d;--kami-near-black:#141413;--kami-dark-warm:#3d3d3a;--kami-olive:#504e49;--kami-stone:#6b6a64;--kami-serif:"TsangerJinKai02", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", Georgia, serif}@font-face{font-family:TsangerJinKai02;src:url(https://cdn.jsdelivr.net/gh/tw93/Kami@main/assets/fonts/TsangerJinKai02-W04.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TsangerJinKai02;src:url(https://cdn.jsdelivr.net/gh/tw93/Kami@main/assets/fonts/TsangerJinKai02-W05.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}.ee-welcome{z-index:9999;color:var(--text-warm);background:linear-gradient(#f5f4eda8 0%,#f5f4edd1 100%),url(/welcome/kitchen-bg.png) 50%/cover no-repeat;flex-direction:column;justify-content:center;align-items:center;font-family:Noto Sans SC,PingFang SC,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.ee-welcome__card{z-index:1;border:1px solid var(--old-copper);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:calc(100% - 48px);max-width:540px;box-shadow:var(--shadow-warm);text-align:center;background:#faf0d8eb;border-radius:18px;padding:36px 28px 28px;position:relative}.ee-welcome__card--letter{background:color-mix(in srgb, var(--kami-ivory) 96%, transparent);border-color:var(--kami-border);text-align:left;border-radius:10px;max-width:980px;max-height:90vh;padding:42px 48px 34px;box-shadow:0 18px 60px #14131324}.ee-welcome__layout{grid-template-columns:minmax(0,1fr) 230px;align-items:start;gap:34px;display:grid}.ee-welcome__avatar{filter:drop-shadow(0 0 14px #d9a35259);justify-content:center;align-items:center;width:104px;height:104px;margin:0 auto 14px;animation:.6s ease-out ee-fade-in;display:flex}.ee-welcome__avatar svg,.ee-welcome__avatar img{width:100%;height:100%;display:block}.ee-welcome__avatar img{object-fit:cover;border:2px solid #8a5a3a59;border-radius:50%;box-shadow:inset 0 0 0 1px #faf0d899}.ee-welcome__seal{background:color-mix(in srgb, var(--kami-brand) 8%, var(--kami-ivory));border:1px solid var(--kami-border-soft);width:34px;height:34px;box-shadow:none;color:var(--kami-brand);border-radius:8px;place-items:center;margin:0;font-size:17px;animation:.6s ease-out ee-fade-in;display:grid;position:absolute;top:26px;right:32px}.ee-welcome__name{border-left:3px solid var(--kami-brand);color:var(--kami-near-black);font-family:var(--kami-serif);letter-spacing:.04em;margin:0 52px 22px 0;padding-left:12px;font-size:22px;font-weight:500;line-height:1.35}.ee-welcome__line{color:var(--text-warm);min-height:96px;font-size:20px;line-height:1.6;animation:.8s ease-out ee-fade-in}.ee-welcome__letter{text-align:left;max-height:min(58vh,650px);color:var(--kami-near-black);font-family:var(--kami-serif);letter-spacing:.02em;padding:2px 12px 2px 0;overflow-y:auto}.ee-welcome__companion{border:1px solid var(--kami-border);background:color-mix(in srgb, var(--kami-parchment) 82%, transparent);text-align:center;border-radius:10px;margin-top:8px;padding:20px 18px 18px}.ee-welcome__companion-avatar{filter:drop-shadow(0 10px 22px #1413131a);width:92px;height:92px;margin:0 auto 12px}.ee-welcome__companion-avatar img,.ee-welcome__companion-avatar svg{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.ee-welcome__companion-avatar img{border:2px solid color-mix(in srgb, var(--kami-brand) 20%, var(--kami-ivory))}.ee-welcome__companion-name{color:var(--kami-brand);font-family:var(--kami-serif);letter-spacing:.08em;font-size:16px;font-weight:500}.ee-welcome__companion-line{min-height:112px;color:var(--kami-olive);font-family:var(--kami-serif);margin-top:12px;font-size:15px;line-height:1.7}.ee-welcome__letter p{color:var(--kami-dark-warm);text-align:justify;text-indent:2em;text-justify:inter-ideograph;margin:0 0 16px;font-size:17px;line-height:1.9}.ee-welcome__letter p:first-child{margin-top:0}@keyframes ee-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ee-welcome__dots{justify-content:center;gap:6px;margin:18px 0 0;display:flex}.ee-welcome__dot{background:var(--warm-amber);opacity:.4;border-radius:50%;width:6px;height:6px;transition:opacity .2s,background .2s}.ee-welcome__dot--active{background:var(--warm-honey);opacity:1;box-shadow:0 0 6px var(--warm-honey)}.ee-welcome__signature{border-top:1px dotted var(--kami-border);color:var(--kami-olive);font-family:var(--kami-serif);letter-spacing:.04em;text-align:right;margin-top:20px;padding-top:14px;font-size:15px;animation:1.2s ease-out ee-fade-in}.ee-welcome__start{color:var(--kami-ivory);background:var(--kami-brand);cursor:pointer;font-family:var(--kami-serif);letter-spacing:.1em;border:none;border-radius:8px;margin:24px 0 0 auto;padding:11px 30px;font-size:15px;font-weight:500;transition:transform .15s,background .15s,box-shadow .15s;display:block;box-shadow:0 8px 20px #1b365d29}.ee-welcome__start:hover{background:color-mix(in srgb, var(--kami-brand) 90%, var(--kami-ivory));transform:translateY(-1px);box-shadow:0 10px 24px #1b365d33}@media (width<=640px){.ee-welcome__card--letter{width:calc(100% - 32px);padding:34px 24px 26px}.ee-welcome__layout{grid-template-columns:1fr;gap:22px}.ee-welcome__seal{top:20px;right:20px}.ee-welcome__name{margin-right:42px;font-size:20px}.ee-welcome__letter{max-height:56vh}.ee-welcome__letter p{font-size:15.5px;line-height:1.85}.ee-welcome__companion{margin-top:0;padding:16px}.ee-welcome__companion-avatar{width:72px;height:72px}.ee-welcome__companion-line{min-height:0}}.ee-ring{color:#fff8e7;background:linear-gradient(135deg,#1e1e4699 0%,#321e5099 100%);border:1px solid #ffd7824d;border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;font-family:Noto Sans SC,PingFang SC,sans-serif;animation:1.2s cubic-bezier(.2,.8,.2,1) ee-ring-in;display:flex}.ee-ring__icon{filter:drop-shadow(0 0 12px #ffd782b3);flex-shrink:0;width:56px;height:56px;position:relative}.ee-ring__icon-ring{border:3px solid #ffe5a0;border-radius:50%;position:absolute;inset:12px;box-shadow:inset 0 0 8px #ffd78299}.ee-ring__icon-star{background:radial-gradient(2px 2px at 50% 0,#fff,#0000),radial-gradient(2px 2px at 100%,#fff,#0000),radial-gradient(2px 2px at 50% 100%,#fff,#0000),radial-gradient(2px 2px at 0%,#fff,#0000);animation:1.5s ease-in-out infinite ee-twinkle;position:absolute;inset:0}@keyframes ee-twinkle{0%,to{opacity:.6}50%{opacity:1}}.ee-ring__body{flex:1;min-width:0}.ee-ring__name{color:#ffe5a0;letter-spacing:.1em;margin-bottom:6px;font-size:13px}.ee-ring__line{color:#fff8e7;font-size:15px;line-height:1.6}@keyframes ee-ring-in{0%{opacity:0;transform:scale(.92)translateY(8px)}60%{opacity:1;transform:scale(1.02)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}:root{--ghibli-sky:#a3c9e6;--ghibli-sky-glow:#eef5fc;--ghibli-cream:#faf5eb;--ghibli-sunset:#fccfb3;--ghibli-fire:#ff8e6e;--ghibli-forest:#8db596;--ghibli-dark:#2a3c4a}body{background-color:var(--ghibli-cream);color:var(--ghibli-dark);margin:0;font-family:Comfortaa,Noto Sans SC,sans-serif;overflow-x:hidden}.app-shell{background:radial-gradient(circle at 15% 15%,#fccfb366,#0000 40rem),radial-gradient(circle at 85% 20%,#8db59633,#0000 35rem),linear-gradient(135deg,#cbdfe8 0%,#faecd7 50%,#f7dcd0 100%);grid-template-columns:minmax(320px,390px) minmax(0,1fr);min-height:100vh;display:grid;position:relative}.star-shower-overlay{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.floating-star{color:#ffdf7a;text-shadow:0 0 8px #ffdf7acc;opacity:0;font-size:1.2rem;animation:15s linear infinite floatUp;position:absolute}@keyframes floatUp{0%{opacity:0;transform:translateY(105vh)translate(0)rotate(0)}10%{opacity:.8}90%{opacity:.8}to{opacity:0;transform:translateY(-5vh)translate(100px)rotate(360deg)}}.control-panel{-webkit-backdrop-filter:blur(20px);z-index:10;background:#faf5ebbf;border-right:1px solid #ffffff80;flex-direction:column;gap:20px;min-height:100vh;max-height:100vh;padding:24px;display:flex;position:sticky;top:0;overflow-y:auto;box-shadow:8px 0 32px #2a3c4a14}.brand-lockup{background:#ffffff73;border:1px solid #fff9;border-radius:18px;flex-direction:column;gap:6px;padding:18px;display:flex;box-shadow:0 4px 12px #00000005}.brand-lockup__title-row{align-items:center;gap:8px;display:flex}.brand-lockup h1{color:#2b506e;align-items:center;gap:8px;margin:0;font-size:26px;font-weight:700;display:flex}.brand-letter-btn{cursor:pointer;background:#ffffffc2;border:1px solid #ff9d8073;border-radius:50%;place-items:center;width:34px;height:34px;font-size:17px;transition:transform .15s,box-shadow .15s,background .15s;display:grid;box-shadow:0 2px 8px #2a3c4a14}.brand-letter-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #2a3c4a1f}.brand-lockup p{color:#556c7d;margin:0;font-size:13px;line-height:1.4}.hint{color:#8fa0af;font-size:11px}.panel-section{gap:10px;display:grid}.panel-section h2{text-transform:uppercase;letter-spacing:.08em;color:#4a677e;border-bottom:2px solid #a3c9e666;margin:0;padding-bottom:4px;font-size:13px;font-weight:700}.character-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.character-card{color:var(--ghibli-dark);cursor:pointer;text-align:center;background:#fff9;border:1px solid #8db59640;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:10px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 2px 6px #00000005}.character-card:hover{background:#fffffff2;transform:translateY(-2px);box-shadow:0 4px 12px #2a3c4a14}.character-card.selected{background:#ffffffe6;border-color:#ff9d80;box-shadow:0 0 0 3px #ff8e6e40,0 4px 12px #2a3c4a14}.avatar{background:#ffffffb8;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;overflow:hidden;box-shadow:inset 0 2px 4px #fffc,0 2px 4px #0000000d}.avatar__image{object-fit:cover;width:100%;height:100%;display:block}.character-card strong{color:#2c4251;font-size:12px;font-weight:700}select{color:var(--ghibli-dark);cursor:pointer;background:#ffffffb3;border:1px solid #8db5964d;border-radius:12px;outline:none;padding:10px 14px;font-family:inherit;font-size:13px;box-shadow:0 2px 6px #00000005}select:focus{border-color:var(--ghibli-sky);background:#fff}.mode-toggle-group{background:#2a3c4a0f;border-radius:12px;gap:6px;padding:4px;display:flex}.mode-btn{cursor:pointer;color:#556c7d;background:0 0;border:none;border-radius:9px;flex:1;padding:8px;font-family:inherit;font-size:12px;font-weight:700;transition:all .2s}.mode-btn.active{color:#2b506e;background:#fff;box-shadow:0 2px 6px #0000000d}.cozy-fireplace-widget{color:#2c4251;background:#ffffff94;border:1px solid #b0855c3d;border-radius:16px;flex-direction:column;flex:none;display:flex;overflow:hidden;box-shadow:0 8px 22px #6e4c301f}.fireplace-image{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.fireplace-caption{background:#fff8edbd;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.fireplace-caption h3{letter-spacing:0;margin:0;font-size:13px;font-weight:700}.fire-status{color:#9a4a28;white-space:nowrap;background:#ff975b2e;border-radius:99px;padding:3px 8px;font-size:10px;font-weight:700}.cheer-checklist{background:#ffffff73;border:1px solid #fff9;border-radius:18px;flex-direction:column;gap:8px;padding:16px;display:flex;box-shadow:0 4px 12px #00000003}.cheer-checklist h3{color:#3b5a70;margin:0 0 4px;font-size:13px;font-weight:700}.checklist-item{color:#556c7d;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:11px;display:flex}.checklist-item input{cursor:pointer}.checklist-item.done{opacity:.6;text-decoration:line-through}.chat-scene{z-index:1;isolation:isolate;flex-direction:column;height:100vh;max-height:100vh;display:flex;position:relative;overflow:hidden}.chat-scene:before{content:"";z-index:-1;background-image:var(--chat-scene-background);opacity:.16;filter:saturate(.95)contrast(.94);pointer-events:none;background-position:50%;background-size:cover;transition:background-image .26s,opacity .26s;position:absolute;inset:0}.chat-header{-webkit-backdrop-filter:blur(12px);background:#ffffff59;border-bottom:1px solid #fff6;justify-content:space-between;align-items:center;padding:18px 24px;display:flex;box-shadow:0 2px 10px #00000005}.chat-header h2{color:#2b506e;margin:0;font-size:18px;font-weight:700}.stage-badge{color:#fff;background:#a3c9e6;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;box-shadow:0 2px 6px #a3c9e64d}.story-event-banner{text-align:center;color:#c95132;z-index:5;background:linear-gradient(90deg,#fff0 0%,#fffc 15% 85%,#fff0 100%);border-top:1px dashed #ff8e6e66;border-bottom:1px dashed #ff8e6e66;padding:12px 24px;font-size:12px;font-weight:700;animation:.5s ease-out slideInDown}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.message-bubble{flex-direction:column;gap:4px;max-width:75%;animation:.3s cubic-bezier(.34,1.56,.64,1) popIn;display:flex}@keyframes popIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.message-bubble.user{align-self:flex-end}.message-bubble.agent{align-self:flex-start}.sender-label{color:#647b8c;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.sender-avatar{border-radius:50%;flex:none;width:22px;height:22px;overflow:hidden;box-shadow:0 1px 3px #2a3c4a1f}.sender-avatar__image{object-fit:cover;width:100%;height:100%;display:block}.user-cat-avatar{background:#fff6e8;border:1px solid #a37f5347;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:14px;line-height:1;display:grid;box-shadow:0 1px 3px #2a3c4a1f}.message-bubble.user .sender-label{justify-content:flex-end}.bubble-content{border-radius:18px;padding:14px 18px;font-size:14px;line-height:1.5;box-shadow:0 4px 12px #2a3c4a0a}.message-bubble.user .bubble-content{color:#fff;background:linear-gradient(135deg,#a8d3c5 0%,#8db596 100%);border-bottom-right-radius:4px;box-shadow:0 4px 12px #8db59640}.message-bubble.agent .bubble-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ghibli-dark);background:#ffffffd9;border:1px solid #ffffff80;border-bottom-left-radius:4px}.emotion-badge{color:#3b5a70;background:#a3c9e633;border-radius:99px;padding:2px 6px;font-size:10px;font-weight:700}.gif-container{border:2px solid #fff;border-radius:12px;max-width:260px;margin-top:8px;overflow:hidden;box-shadow:0 4px 12px #00000014}.gif-container img{width:100%;height:auto;display:block}.tool-status-bubble{color:#a45a47;background:#fff9;border-left:3px solid #ff9d80;border-radius:8px;flex-direction:column;gap:2px;margin-top:6px;padding:6px 12px;font-size:11px;display:flex;box-shadow:inset 0 1px 2px #00000005}.tool-name-tag{text-transform:uppercase;letter-spacing:.05em;color:#d8684a;font-size:9px;font-weight:700}.story-feedback{border-left:3px solid var(--ghibli-fire);color:var(--ghibli-dark);background:#faf5ebcc;border-radius:10px;margin-top:8px;padding:8px 12px;font-size:12px;line-height:1.6}.debate-turn-wrapper{background:#faebe159;border:1px solid #ff8e6e26;border-radius:20px;flex-direction:column;gap:12px;margin-top:10px;padding:16px;display:flex}.debate-intro{color:#ba6d51;align-items:center;gap:6px;margin-bottom:2px;font-size:11px;font-weight:700;display:flex}.input-area{-webkit-backdrop-filter:blur(12px);z-index:5;background:#ffffff73;border-top:1px solid #ffffff80;align-items:center;gap:12px;padding:16px 24px;display:flex}.input-area textarea{height:48px;color:var(--ghibli-dark);resize:none;background:#ffffffd9;border:1px solid #8db5964d;border-radius:18px;outline:none;flex:1;padding:12px 16px;font-family:inherit;font-size:13px;transition:border-color .2s;box-shadow:inset 0 2px 4px #00000005}.input-area textarea:focus{border-color:#ff9d80}.input-area button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff8e6e 0%,#ff6e4a 100%);border:none;border-radius:18px;align-items:center;gap:6px;height:48px;padding:0 20px;font-family:inherit;font-size:13px;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #ff6e4a33}.input-area button:hover{transform:translateY(-2px);box-shadow:0 6px 18px #ff6e4a59}.input-area button:active{transform:translateY(0)}.input-area button:disabled{color:#8fa0af;cursor:not-allowed;box-shadow:none;background:#cbd8e3;transform:none}.tick-clock-btn{color:#4a677e;cursor:pointer;background:#ffffffb3;border:1px solid #a3c9e666;border-radius:12px;align-items:center;gap:6px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:all .2s;display:flex}.tick-clock-btn:hover{border-color:var(--ghibli-sky);background:#fff;box-shadow:0 2px 8px #0000000d}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#00000005;border-radius:10px}::-webkit-scrollbar-thumb{background:#2a3c4a1f;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#2a3c4a40}:root{--old-copper:#8a5a3a;--copper-deep:#5a3a2a;--flame-orange:#ff8a44;--shadow-warm:0 2px 16px #a05a322e;--shadow-soft:0 1px 8px #a05a321a}.chat-character-image{border:1px solid var(--old-copper);max-width:240px;box-shadow:var(--shadow-warm);border-radius:10px;margin-top:10px;animation:.6s ease-out chat-image-fade-in;display:block;overflow:hidden}.chat-character-image img{object-fit:cover;width:100%;height:200px;display:block}.chat-gif-frame{border:1px solid var(--old-copper);max-width:220px;box-shadow:var(--shadow-soft);border-radius:8px;margin-top:8px;animation:.4s ease-out chat-gif-fade-in;display:block;overflow:hidden}.chat-gif-frame img{width:100%;display:block}@keyframes chat-image-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes chat-gif-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
