:root{--linen-light:#e8ded0;--linen-medium:#d4c9b8;--brown-gray:#6b5d52;--brown-gray-dark:#4a3f35;--paper-white:#f5f2eb;--accent-red:#c8553d;--ink-fade:#8b7d6b;--ink-black:#4a3f35;--font-display:"Playfair Display", serif;--font-body:"Crimson Pro", "Noto Serif SC", serif;--size-hero:clamp(80px, 15vw, 180px);--size-title:clamp(32px, 6vw, 72px);--size-text:clamp(15px, 2vw, 18px);--spacing-xs:8px;--spacing-sm:16px;--spacing-md:32px;--spacing-lg:64px;--spacing-xl:128px;--transition-slow:1.2s cubic-bezier(.4, 0, .2, 1);--transition-medium:.6s cubic-bezier(.4, 0, .2, 1);--transition-fast:.3s cubic-bezier(.4, 0, .2, 1);--spring-bounce:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--paper-white);color:var(--ink-black);-webkit-font-smoothing:antialiased;overscroll-behavior:none;line-height:1.8;overflow-x:hidden}.sabi-container{gap:var(--spacing-md);min-height:100vh;padding:var(--spacing-lg) var(--spacing-md);background: repeating-linear-gradient(90deg, transparent 0, transparent 3px, #c8c3b914 3px, #c8c3b914 4px, transparent 4px, transparent 7px, #b4afa50f 7px, #b4afa50f 8px, transparent 8px, transparent 12px),  repeating-linear-gradient(180deg, transparent 0, transparent 5px, #beb9af0a 5px, #beb9af0a 6px, transparent 6px, transparent 11px),  radial-gradient(ellipse at 20% 30%, #e8ded04d 0%, transparent 50%), radial-gradient(ellipse at 80% 70%, #d4c9b833 0%, transparent 50%), linear-gradient(180deg, var(--paper-white) 0%, #ede8e0 100%);grid-template-rows:auto auto 1fr auto;padding-bottom:240px;display:grid;position:relative}.ink-stains{pointer-events:none;z-index:0;opacity:.6;width:100%;height:100%;position:fixed;top:0;left:0}.stain{opacity:.4;animation:20s ease-in-out infinite float;position:absolute}.stain-1{width:40vw;height:40vw;animation-delay:0s;top:10%;right:5%}.stain-2{width:30vw;height:30vw;animation-delay:-7s;top:50%;left:10%}.stain-3{width:20vw;height:20vw;animation-delay:-14s;bottom:15%;right:15%}@keyframes float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(20px,-30px)scale(1.05)}66%{transform:translate(-15px,20px)scale(.95)}}.sabi-header{text-align:center;margin-bottom:var(--spacing-xl);animation:1.2s ease-out fadeSlideDown}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}.title-main{font-family:var(--font-display);font-size:var(--size-hero);letter-spacing:.2em;margin-bottom:var(--spacing-xs);color:var(--ink-black);text-shadow:0 4px 12px #0d090614,0 2px 4px #0d09060a;font-weight:900;line-height:1}.title-sub{font-family:var(--font-body);font-size:var(--size-title);letter-spacing:.4em;margin-bottom:var(--spacing-sm);color:var(--ink-fade);font-weight:300;animation:1.6s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.title-desc{font-size:calc(var(--size-text) * .9);color:var(--ink-fade);letter-spacing:.8em;opacity:.6;font-weight:300;animation:2s ease-out fadeIn}.sabi-sidebar{left:var(--spacing-lg);gap:var(--spacing-sm);z-index:50;flex-direction:column;animation:.8s ease-out .3s both slideInRight;display:flex;position:fixed;top:50%;transform:translateY(-50%)}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.sidebar-btn{width:56px;height:56px;font-family:var(--font-display);cursor:pointer;transition:all var(--transition-medium);background:0 0;border:1px solid #0d090633;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.sidebar-btn:after{content:attr(title);background:var(--ink-black);color:var(--paper-white);white-space:nowrap;opacity:0;pointer-events:none;font-size:12px;font-family:var(--font-body);border-radius:4px;padding:4px 12px;transition:opacity .2s;position:absolute;left:70px}.sidebar-btn:hover:after{opacity:1}.sidebar-btn:hover{border-color:var(--ink-black);background:#0d09060d;transform:scale(1.1)}.sidebar-btn.active{background:var(--ink-black);color:var(--paper-white);border-color:var(--ink-black);box-shadow:0 4px 12px #0d090633}.sidebar-char{font-size:24px;font-weight:600;line-height:1}.sabi-controls{display:none}.sabi-chat{gap:var(--spacing-lg);width:100%;max-width:800px;padding:var(--spacing-md) var(--spacing-lg);scroll-behavior:smooth;flex-direction:column;min-height:100vh;margin:0 auto;padding-top:140px;padding-bottom:120px;display:flex;overflow-y:auto}.sabi-chat::-webkit-scrollbar{width:10px}.sabi-chat::-webkit-scrollbar-track{background:#1e140a08;border-radius:5px}.sabi-chat::-webkit-scrollbar-thumb{background:#c8553d33;border:2px solid #0000;border-radius:5px;transition:background .3s}.sabi-chat::-webkit-scrollbar-thumb:hover{background:#c8553d66}.sabi-chat::-webkit-scrollbar-thumb:active{background:var(--accent-red);border:none}.sabi-chat{scrollbar-width:thin;scrollbar-color:#c8553d33 transparent}.sabi-chat:hover{scrollbar-color:#c8553d66 transparent}.sabi-chat.vertical-mode{writing-mode:vertical-rl;text-orientation:mixed;max-width:800px;max-height:70vh;padding:var(--spacing-lg);white-space:nowrap;-webkit-overflow-scrolling:touch;margin:0 auto;overflow:auto hidden}.sabi-chat.vertical-mode::-webkit-scrollbar{width:0;height:0;display:none}.sabi-chat.vertical-mode::-webkit-scrollbar-track{background:0 0}.sabi-chat.vertical-mode::-webkit-scrollbar-thumb{background:0 0}.sabi-chat.vertical-mode::-webkit-scrollbar-thumb:hover{background:0 0}.sabi-chat.vertical-mode::-webkit-scrollbar-thumb:active{background:0 0}.sabi-chat.vertical-mode{scrollbar-width:none;-ms-overflow-style:none}.sabi-chat.vertical-mode:hover{scrollbar-width:none}.sabi-chat.vertical-mode .message-item{writing-mode:vertical-rl;text-orientation:mixed;margin:0 var(--spacing-sm);padding:var(--spacing-sm);vertical-align:top;white-space:normal;height:auto;min-height:min-content;max-height:none;display:inline-block}.sabi-chat.vertical-mode .message-item.user{margin-left:0;margin-right:var(--spacing-sm)}.sabi-chat.vertical-mode .message-item.assistant{margin-right:0;margin-left:var(--spacing-sm)}.sabi-chat.vertical-mode .message-bubble{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;flex-direction:column;width:auto;height:max-content;min-height:250px;max-height:80vh;padding:30px 25px 20px;display:inline-flex;position:relative;overflow:visible}.sabi-chat.vertical-mode .message-content{writing-mode:vertical-rl;text-orientation:upright;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;height:auto;max-height:80vh;line-height:2.2;display:block}.sabi-chat.vertical-mode .message-time{writing-mode:horizontal-tb;text-orientation:mixed;letter-spacing:1px;white-space:nowrap;color:#0d090699;border-radius:3px;margin-top:15px;padding:3px 6px;font-family:Courier New,monospace;font-size:11px;display:inline-block;position:relative}.sabi-chat.vertical-mode .message-item.user .message-time{background:#e8f4f880}.sabi-chat.vertical-mode .message-item.assistant .message-time{background:#f0e8e080}.sabi-chat.vertical-mode .message-content.markdown-body{writing-mode:vertical-rl;text-orientation:upright}.sabi-chat.vertical-mode .vertical-latin{writing-mode:horizontal-tb;text-orientation:mixed;transform-origin:50%;display:inline-block;transform:rotate(0)}.sabi-chat.vertical-mode .message-content.markdown-body h1,.sabi-chat.vertical-mode .message-content.markdown-body h2,.sabi-chat.vertical-mode .message-content.markdown-body h3,.sabi-chat.vertical-mode .message-content.markdown-body h4{margin-top:.5em;margin-bottom:.3em}.sabi-chat.vertical-mode .message-content.markdown-body p{margin:.3em 0}.sabi-chat.vertical-mode .message-content.markdown-body ul,.sabi-chat.vertical-mode .message-content.markdown-body ol{padding-top:1em;padding-left:0}.sabi-chat.vertical-mode .message-content.markdown-body pre{white-space:pre-wrap;word-wrap:break-word;width:auto;max-width:none;overflow-x:auto}.message-item{animation:.8s cubic-bezier(.4,0,.2,1) messageReveal;position:relative}.message-item.new-message{animation:2s ease-out newMessageHighlight}@keyframes newMessageHighlight{0%,10%{background:#c8553d26;transform:scale(1.02)}to{background:0 0;transform:scale(1)}}.message-item.user-message-focus{animation:1.5s ease-out userMessageFocus}@keyframes userMessageFocus{0%,15%{transform:translate(8px);box-shadow:0 0 20px #0d09061a}to{box-shadow:none;transform:translate(0)}}@keyframes messageReveal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.message-item.user{margin-left:15%}.message-item.assistant{margin-right:15%}.message-bubble{padding:var(--spacing-md) var(--spacing-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:var(--transition-fast);background:#fff9;border:1px solid #0d090626;position:relative}.message-bubble:hover{background:#fffc;border-color:#0d09064d}.message-item.user .message-bubble{background:var(--ink-black);color:var(--paper-white);border:none;position:relative}.message-item.user .message-bubble:before{content:"";pointer-events:none;background:linear-gradient(45deg,#0000 45%,#ffffff08 50%,#0000 55%);position:absolute;inset:0}.message-content{font-size:var(--size-text);white-space:pre-wrap;font-weight:300;line-height:2;transition:all .2s}.message-content.markdown-body{white-space:normal}.message-content.markdown-body h1,.message-content.markdown-body h2,.message-content.markdown-body h3,.message-content.markdown-body h4{font-family:var(--font-display);color:var(--ink-black);margin-top:1.5em;margin-bottom:.8em;font-weight:600}.message-content.markdown-body h1{font-size:1.8em}.message-content.markdown-body h2{font-size:1.5em}.message-content.markdown-body h3{font-size:1.3em}.message-content.markdown-body h4{font-size:1.1em}.message-content.markdown-body p{margin:1em 0;line-height:2}.message-content.markdown-body ul,.message-content.markdown-body ol{margin:1em 0;padding-left:2em;line-height:2}.message-content.markdown-body li{margin:.5em 0}.message-content.markdown-body code{color:var(--accent-red);background:#0d09060d;border-radius:3px;padding:.2em .4em;font-family:Courier New,monospace;font-size:.9em}.message-content.markdown-body pre{background:#0d090608;border:1px solid #0d09061a;border-radius:4px;margin:1em 0;padding:1em;font-size:.9em;line-height:1.6;overflow-x:auto}.message-content.markdown-body pre code{color:var(--ink-black);background:0 0;padding:0}.message-content.markdown-body blockquote{border-left:3px solid var(--accent-red);color:var(--ink-fade);margin:1em 0;padding-left:1em;font-style:italic}.message-content.markdown-body a{color:var(--accent-red);border-bottom:1px solid var(--accent-red);text-decoration:none;transition:opacity .2s}.message-content.markdown-body a:hover{opacity:.7}.message-content.markdown-body table{border-collapse:collapse;width:100%;margin:1em 0}.message-content.markdown-body th,.message-content.markdown-body td{text-align:left;border:1px solid #0d09061a;padding:.5em 1em}.message-content.markdown-body th{background:#0d09060d;font-weight:600}.message-content.markdown-body hr{border:none;border-top:1px solid #0d09061a;margin:2em 0}.message-content.markdown-body img{max-width:100%;height:auto;margin:1em 0}.message-content.markdown-body strong{color:var(--ink-black);font-weight:600}.message-content.markdown-body em{font-style:italic}.sabi-container.dark-theme .message-content.markdown-body h1,.sabi-container.dark-theme .message-content.markdown-body h2,.sabi-container.dark-theme .message-content.markdown-body h3,.sabi-container.dark-theme .message-content.markdown-body h4{color:var(--paper-white)}.sabi-container.dark-theme .message-content.markdown-body code{color:var(--accent-red);background:#f5f2eb1a}.sabi-container.dark-theme .message-content.markdown-body pre{background:#f5f2eb0d;border-color:#f5f2eb1a}.sabi-container.dark-theme .message-content.markdown-body pre code{color:var(--paper-white)}.sabi-container.dark-theme .message-content.markdown-body blockquote{border-left-color:var(--accent-red);color:#f5f2ebb3}.sabi-container.dark-theme .message-content.markdown-body a{color:var(--accent-red);border-bottom-color:var(--accent-red)}.sabi-container.dark-theme .message-content.markdown-body th{color:var(--paper-white);background:#f5f2eb0d}.sabi-container.dark-theme .message-content.markdown-body td{border-color:#f5f2eb1a}.sabi-container.dark-theme .message-content.markdown-body hr{border-top-color:#f5f2eb1a}.sabi-container.dark-theme .message-content.markdown-body strong{color:var(--paper-white)}.sabi-container.dark-theme .sabi-chat.vertical-mode .message-time{color:#f5f2ebb3}.sabi-container.dark-theme .sabi-chat.vertical-mode .message-item.user .message-time{background:#c8553d26}.sabi-container.dark-theme .sabi-chat.vertical-mode .message-item.assistant .message-time{background:#f5f2eb14}.sabi-container.dark-theme .sabi-chat::-webkit-scrollbar-track{background:#f5f2eb08}.sabi-container.dark-theme .sabi-chat::-webkit-scrollbar-thumb{background:#f5f2eb26}.sabi-container.dark-theme .sabi-chat::-webkit-scrollbar-thumb:hover{background:#f5f2eb40}.sabi-container.dark-theme .sabi-chat::-webkit-scrollbar-thumb:active{background:var(--accent-red)}.sabi-container.dark-theme .sabi-chat{scrollbar-color:#f5f2eb26 transparent}.sabi-container.dark-theme .sabi-chat:hover{scrollbar-color:#f5f2eb40 transparent}.sabi-container.dark-theme .message-item.user-message-focus{animation:1.5s ease-out userMessageFocusDark}@keyframes userMessageFocusDark{0%,15%{transform:translate(8px);box-shadow:0 0 20px #f5f2eb1a}to{box-shadow:none;transform:translate(0)}}.message-time{opacity:.4;margin-top:var(--spacing-sm);letter-spacing:.1em;font-family:Courier New,monospace;font-size:11px;display:block}.sabi-input{z-index:100;width:calc(100% - var(--spacing-lg) * 2);-webkit-backdrop-filter:blur(15px)saturate(1.2);min-width:300px;max-width:800px;min-height:150px;padding:var(--spacing-md);will-change:transform, bottom, background, box-shadow;transition:transform .4s var(--spring-bounce), bottom .4s var(--spring-bounce), background .4s ease, box-shadow .4s ease, border-color .4s ease, width .1s ease, height .1s ease;gap:var(--spacing-sm);border:1px solid #0d09060d;border-radius:16px;flex-direction:column;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0d09060a,0 1px 4px #0d090605,inset 0 1px #ffffff80}.sabi-input.resizing{border-color:var(--accent-red);transition:none;box-shadow:0 8px 32px #0d09061f,0 2px 8px #0d09060f,inset 0 1px #ffffff80}.resize-handle{cursor:nwse-resize;z-index:10;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.resize-handle:before{content:"";background-color:#0000;background-image:linear-gradient(45deg,#0000 30%,#0d090666 30% 33%,#0000 33%),linear-gradient(-45deg,#0000 30%,#0d090666 30% 33%,#0000 33%),linear-gradient(45deg,#0000 60%,#0d090666 60% 63%,#0000 63%),linear-gradient(-45deg,#0000 60%,#0d090666 60% 63%,#0000 63%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:100% 100%;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;width:12px;height:12px;transition:all .2s}.resize-handle:hover{background:#c8553d1a}.resize-handle:hover:before{background:linear-gradient(45deg, transparent 30%, var(--accent-red) 30%, var(--accent-red) 33%, transparent 33%), linear-gradient(-45deg, transparent 30%, var(--accent-red) 30%, var(--accent-red) 33%, transparent 33%), linear-gradient(45deg, transparent 60%, var(--accent-red) 60%, var(--accent-red) 63%, transparent 63%), linear-gradient(-45deg, transparent 60%, var(--accent-red) 60%, var(--accent-red) 63%, transparent 63%);background-size:100% 100%;transform:scale(1.1)}.resize-handle:active{background:#c8553d26}.input-settings-panel{padding:var(--spacing-md);margin-bottom:var(--spacing-sm);background:#fffffff2;border-radius:12px;box-shadow:0 4px 12px #0d09061a}.settings-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.settings-title{color:var(--ink-black);letter-spacing:.1em;font-size:14px;font-weight:600}.settings-close{width:24px;height:24px;color:var(--ink-fade);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:20px;line-height:1;transition:all .2s}.settings-close:hover{color:var(--ink-black);background:#0d09060d}.slide-down-enter-active,.slide-down-leave-active{transition:all .3s cubic-bezier(.4,0,.2,1)}.slide-down-enter-from,.slide-down-leave-to{opacity:0;max-height:0;transform:translateY(-10px)}.slide-down-enter-to,.slide-down-leave-from{opacity:1;max-height:200px;transform:translateY(0)}.input-controls{gap:var(--spacing-md);padding:var(--spacing-sm);background:#ffffff4d;border-radius:8px;display:flex}.control-group{justify-content:center;align-items:center;gap:var(--spacing-sm);flex:1;display:flex}.control-label{color:var(--ink-fade);letter-spacing:.1em;min-width:40px;font-size:12px}.range-slider{cursor:pointer;-webkit-appearance:none;background:#0d09061a;border-radius:2px;outline:none;flex:1;height:4px}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink-black);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:all .2s}.range-slider::-webkit-slider-thumb:hover{background:var(--accent-red);transform:scale(1.2)}.range-slider::-moz-range-thumb{background:var(--ink-black);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px;transition:all .2s}.range-slider::-moz-range-thumb:hover{background:var(--accent-red);transform:scale(1.2)}.range-value{color:var(--ink-fade);text-align:right;min-width:36px;font-family:Courier New,monospace;font-size:11px}.sabi-input.has-content{border-color:#0d090614;box-shadow:0 8px 32px #0d090614,0 2px 8px #0d09060a,inset 0 1px #fffc}.sabi-input:before{content:"";filter:blur(8px);pointer-events:none;background:radial-gradient(#0d09060f 0%,#0000 70%);width:60%;height:32px;position:absolute;bottom:-16px;left:50%;transform:translate(-50%)}.sabi-input:hover{transform:translate(-50%)translateY(-4px);box-shadow:0 8px 24px #0d09060f,0 2px 8px #0d09060a}.sabi-input.has-content:hover{box-shadow:0 16px 48px #0d09061f,0 4px 16px #0d090614}.sabi-input.focused{transform:translate(-50%)translateY(-8px);box-shadow:0 16px 48px #0d09061a,0 4px 16px #0d090614}.sabi-input.has-content.focused{box-shadow:0 24px 64px #0d090629,0 8px 24px #0d09061f}.sabi-input.scrolling{opacity:.9;transform:translate(-50%)scale(.98)}.input-frame{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);border:2px solid var(--brown-gray);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#e8ded080;border-radius:12px;flex:1;min-height:60px;display:flex}.input-field{font-family:var(--font-body);font-size:var(--size-text);color:var(--ink-black);resize:none;background:0 0;border:none;outline:none;flex:1;height:100%;min-height:60px;line-height:2}.input-field::placeholder{color:#0d09064d}.send-button{background:var(--brown-gray-dark);width:60px;height:60px;min-height:60px;color:var(--linen-light);cursor:pointer;font-family:var(--font-display);transition:all .3s var(--spring-bounce);border:none;border-radius:10px;align-self:stretch;font-size:20px;font-weight:600;box-shadow:0 4px 12px #4a3f354d}.send-button:hover{background:var(--accent-red);color:var(--paper-white);transform:scale(1.05)}.send-button:active{transform:scale(.95)}.send-button:disabled{opacity:.3;cursor:not-allowed;transform:scale(1)}.send-text{letter-spacing:.3em}.input-meta{margin-top:var(--spacing-xs);color:var(--ink-fade);letter-spacing:.2em;opacity:.7;justify-content:space-between;font-family:Courier New,monospace;font-size:11px;display:flex}.message-item.assistant.streaming .message-content:after{content:"▌";margin-left:2px;animation:1s infinite blink}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.scroll-to-bottom{width:48px;height:48px;color:var(--paper-white);cursor:pointer;z-index:90;opacity:0;pointer-events:none;background:#0d0906e6;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex;position:fixed;bottom:140px;right:calc(50% - 400px);transform:translateY(20px)scale(.8);box-shadow:0 4px 16px #0d090633}.scroll-to-bottom.show{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.scroll-to-bottom:hover{background:var(--accent-red);transform:translateY(-4px)scale(1.1);box-shadow:0 8px 24px #c8553d4d}.scroll-to-bottom:active{transform:scale(.95)}.scroll-icon{font-size:24px;font-weight:600;animation:2s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.sabi-container.dark-theme{background: repeating-linear-gradient(90deg, transparent 0, transparent 3px, #645f5a14 3px, #645f5a14 4px, transparent 4px, transparent 7px, #5a55500f 7px, #5a55500f 8px, transparent 8px, transparent 12px),  repeating-linear-gradient(180deg, transparent 0, transparent 5px, #5f5a550a 5px, #5f5a550a 6px, transparent 6px, transparent 11px),  radial-gradient(ellipse at 20% 30%, #4a3f3566 0%, transparent 50%), radial-gradient(ellipse at 80% 70%, #3a31294d 0%, transparent 50%), linear-gradient(180deg, var(--ink-black) 0%, #1a1510 100%);color:var(--paper-white)}.sabi-container.dark-theme .title-main{text-shadow:0 4px 12px #f5f2eb1a,0 2px 4px #f5f2eb0d}.sabi-container.dark-theme .sidebar-btn{border-color:#f5f2eb33}.sabi-container.dark-theme .sidebar-btn:hover{border-color:var(--paper-white);background:#f5f2eb0d}.sabi-container.dark-theme .sidebar-btn.active{background:var(--paper-white);color:var(--ink-black);border-color:var(--paper-white)}.sabi-container.dark-theme .sidebar-btn:after{background:var(--paper-white);color:var(--ink-black)}.sabi-container.dark-theme .input-settings-panel{background:#0d0906f2}.sabi-container.dark-theme .settings-title{color:var(--paper-white)}.sabi-container.dark-theme .settings-close{color:#f5f2ebb3}.sabi-container.dark-theme .settings-close:hover{color:var(--paper-white)}.sabi-container.dark-theme .message-bubble{color:var(--paper-white);background:#ffffff1f;border-color:#f5f2eb40}.sabi-container.dark-theme .message-bubble:hover{background:#ffffff2e}.sabi-container.dark-theme .scroll-to-bottom{color:var(--ink-black);background:#f5f2ebe6}.sabi-container.dark-theme .scroll-to-bottom:hover{background:var(--accent-red);color:var(--paper-white)}.sabi-container.dark-theme .sabi-input{border-color:#f5f2eb14;box-shadow:0 4px 16px #00000026,0 1px 4px #0000001a,inset 0 1px #f5f2eb0d}.sabi-container.dark-theme .sabi-input.resizing{border-color:var(--accent-red);box-shadow:0 8px 32px #00000040,0 2px 8px #00000026,inset 0 1px #f5f2eb0d}.sabi-container.dark-theme .resize-handle:before{background-color:#0000;background-image:linear-gradient(45deg,#0000 30%,#f5f2eb80 30% 33%,#0000 33%),linear-gradient(-45deg,#0000 30%,#f5f2eb80 30% 33%,#0000 33%),linear-gradient(45deg,#0000 60%,#f5f2eb80 60% 63%,#0000 63%),linear-gradient(-45deg,#0000 60%,#f5f2eb80 60% 63%,#0000 63%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:100% 100%;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}.sabi-container.dark-theme .resize-handle:hover:before{background:linear-gradient(45deg, transparent 30%, var(--accent-red) 30%, var(--accent-red) 33%, transparent 33%), linear-gradient(-45deg, transparent 30%, var(--accent-red) 30%, var(--accent-red) 33%, transparent 33%), linear-gradient(45deg, transparent 60%, var(--accent-red) 60%, var(--accent-red) 63%, transparent 63%), linear-gradient(-45deg, transparent 60%, var(--accent-red) 60%, var(--accent-red) 63%, transparent 63%);background-size:100% 100%}.sabi-container.dark-theme .sabi-input.has-content{border-color:#f5f2eb26;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003,inset 0 1px #f5f2eb1a}.sabi-container.dark-theme .sabi-input:before{background:radial-gradient(#00000026 0%,#0000 70%)}.sabi-container.dark-theme .input-controls{background:#ffffff0d}.sabi-container.dark-theme .control-label{color:#f5f2ebb3}.sabi-container.dark-theme .range-slider{background:#f5f2eb1a}.sabi-container.dark-theme .range-slider::-webkit-slider-thumb{background:var(--paper-white)}.sabi-container.dark-theme .range-slider::-moz-range-thumb{background:var(--paper-white)}.sabi-container.dark-theme .range-slider::-webkit-slider-thumb:hover{background:var(--accent-red)}.sabi-container.dark-theme .range-slider::-moz-range-thumb:hover{background:var(--accent-red)}.sabi-container.dark-theme .range-value{color:#f5f2ebb3}.sabi-container.dark-theme .input-frame{border-color:var(--linen-medium);background:#4a3f354d}.sabi-container.dark-theme .input-field{color:var(--paper-white)}.sabi-container.dark-theme .input-field::placeholder{color:#f5f2eb4d}.sabi-container.dark-theme .send-button{background:var(--linen-light);color:var(--brown-gray-dark)}.sabi-container.dark-theme .send-button:hover{background:var(--accent-red);color:var(--paper-white)}@media (width<=768px){.sabi-sidebar{left:var(--spacing-sm);gap:var(--spacing-xs);z-index:200}.sidebar-btn{width:44px;height:44px}.sidebar-char{font-size:20px}.sidebar-btn:after{display:none}.sabi-chat{width:100%;padding:var(--spacing-sm);margin:0 auto}.message-item.user{margin-left:5%}.message-item.assistant{margin-right:5%}.title-main{letter-spacing:.1em}.title-sub{letter-spacing:.2em}.sabi-input{padding:var(--spacing-sm);width:calc(100% - var(--spacing-md) * 2);min-width:280px;max-width:calc(100vw - var(--spacing-md) * 4);max-height:400px;bottom:20px;left:50%}.resize-handle{width:32px;height:32px;top:12px;right:12px}.resize-handle:before{width:16px;height:16px}.sabi-container{padding-bottom:180px}.scroll-to-bottom{bottom:120px;right:20px}}.typewriter{border-right:2px solid var(--ink-black);animation:3.5s steps(40,end) typing,.75s step-end infinite blink-caret;overflow:hidden}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:var(--ink-black)}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.history-panel{-webkit-backdrop-filter:blur(30px);z-index:200;background:#f5f2ebfa;border-left:1px solid #0d09061a;flex-direction:column;width:400px;max-width:90vw;height:100vh;transition:right .4s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:-400px;overflow:hidden;box-shadow:-8px 0 32px #0d090626}.history-panel.open{right:0}.history-header{padding:var(--spacing-lg) var(--spacing-md);border-bottom:1px solid #0d09061a;justify-content:space-between;align-items:center;display:flex}.history-title{font-family:var(--font-display);color:var(--ink-black);font-size:24px;font-weight:600}.history-close{width:36px;height:36px;color:var(--ink-black);cursor:pointer;background:0 0;border:1px solid #0d090633;border-radius:8px;font-size:28px;line-height:1;transition:all .3s}.history-close:hover{background:#0d09060d;transform:scale(1.05)}.history-actions{gap:var(--spacing-sm);padding:var(--spacing-md);border-bottom:1px solid #0d09061a;display:flex}.history-action-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);cursor:pointer;background:0 0;border:1px solid #0d090633;border-radius:8px;flex-direction:column;flex:1;transition:all .3s;display:flex}.history-action-btn:hover{border-color:var(--ink-black);background:#0d09060d;transform:translateY(-2px)}.history-action-btn.danger:hover{border-color:var(--accent-red);background:#c8553d1a}.action-icon{font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1}.action-text{color:var(--ink-fade);letter-spacing:.15em;font-size:11px}.sabi-container.dark-theme .action-text{color:#f5f2ebd9}.history-list{padding:var(--spacing-md);flex:1;overflow-y:auto}.history-item{padding:var(--spacing-md);margin-bottom:var(--spacing-sm);cursor:pointer;background:#fff9;border:1px solid #0d09061a;border-radius:8px;transition:all .3s;animation:.3s slideInRight}.history-item:hover{background:#fffc;border-color:#0d090633;transform:translate(-4px)}.history-item-header{margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:center;display:flex}.history-item-date{color:var(--ink-fade);letter-spacing:.05em;font-family:Courier New,monospace;font-size:12px}.history-item-count{color:#0d090680;background:#0d09060d;border-radius:4px;padding:2px 8px;font-size:11px}.history-item-preview{color:var(--ink-black);text-overflow:ellipsis;-webkit-line-clamp:2;margin-bottom:var(--spacing-xs);-webkit-box-orient:vertical;font-size:13px;line-height:1.6;display:-webkit-box;overflow:hidden}.history-item-actions{gap:var(--spacing-xs);margin-top:var(--spacing-sm);display:flex}.history-item-btn{color:var(--ink-fade);cursor:pointer;background:0 0;border:1px solid #0d090633;border-radius:4px;padding:4px 12px;font-size:11px;transition:all .2s}.history-item-btn:hover{background:var(--ink-black);color:var(--paper-white);border-color:var(--ink-black)}.history-item-btn.delete:hover{background:var(--accent-red);border-color:var(--accent-red)}.sabi-container.dark-theme .history-item-btn{color:#f5f2ebb3;background:#ffffff0d;border-color:#f5f2eb4d}.sabi-container.dark-theme .history-item-btn:hover{background:var(--paper-white);color:var(--ink-black);border-color:var(--paper-white)}.sabi-container.dark-theme .history-item-btn.delete:hover{background:var(--accent-red);color:var(--paper-white);border-color:var(--accent-red)}.history-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--ink-fade);font-style:italic}.overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:150;opacity:0;visibility:hidden;background:#0d09064d;transition:all .3s;position:fixed;inset:0}.overlay.show{opacity:1;visibility:visible}.sabi-container.dark-theme .history-panel{background:#0d0906fa;border-left-color:#f5f2eb1a}.sabi-container.dark-theme .history-title{color:var(--paper-white)}.sabi-container.dark-theme .history-close{color:var(--paper-white);border-color:#f5f2eb33}.sabi-container.dark-theme .history-action-btn{background:#ffffff14;border-color:#f5f2eb40}.sabi-container.dark-theme .history-action-btn:hover{background:#ffffff26;border-color:#f5f2eb59}.sabi-container.dark-theme .action-icon{color:#f5f2ebf2}.sabi-container.dark-theme .history-item{color:var(--paper-white);background:#ffffff0d;border-color:#f5f2eb1a}.sabi-container.dark-theme .history-item-preview{color:var(--paper-white)}.sabi-container.dark-theme .overlay{background:#00000080}@media (width<=768px){.history-panel{width:100vw;right:-100vw}.history-actions{flex-wrap:wrap}.history-action-btn{flex-basis:calc(50% - var(--spacing-xs))}}
