html{background-color:var(--bg);color-scheme:var(--color-scheme)}body{background-color:var(--bg);min-height:100dvh;color:var(--text);padding-top:env(safe-area-inset-top);margin:0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}html,body{background:var(--bg)}body{color:var(--text);font:14px/1.4 ui-sans-serif,system-ui,sans-serif}.reader{flex-direction:column;height:100dvh;padding-right:60px;display:flex}.book{overscroll-behavior:contain;flex:1 1 0;min-width:0;min-height:0;position:relative;overflow-y:auto}.reader:before{content:"";z-index:25;border-top:1px solid var(--border);pointer-events:none;position:fixed;top:0;left:0;right:0}.side-bar{z-index:26;background:var(--bg);border-left:1px solid var(--border);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;align-items:center;width:60px;display:flex;position:fixed;top:0;bottom:0;right:0}.font-btns{z-index:1;flex-direction:column;align-items:stretch;display:flex;position:absolute;top:0;left:0;right:0}.progress-slot{background:var(--bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-shrink:0;width:100%;height:60px;position:relative}.progress-slot svg{width:60px;height:60px;display:block;position:absolute;top:-1px;left:-1px}.progress-page{font-variant-numeric:tabular-nums;color:var(--text-dim);pointer-events:none;justify-content:center;align-items:center;font-size:22px;font-weight:450;display:flex;position:absolute;inset:0;transform:translateY(.5px)}.font-size-btn{width:100%;height:60px;color:var(--text-dim);background:var(--bg);border:none;border-bottom:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}@media (hover:hover) and (pointer:fine){.font-size-btn:hover:not(:disabled){background:var(--hover)}}.font-size-btn:active:not(:disabled){background:var(--active)}.font-size-btn:disabled{opacity:.4;cursor:default}.font-size-btn[aria-pressed=true]{color:var(--text)}.debug-btn{border-top:1px solid var(--border);border-bottom:none;position:absolute;bottom:0;left:0;right:0}.touch-zone{background-image:radial-gradient(circle, var(--dot) 1px, transparent 1.6px);touch-action:none;-webkit-tap-highlight-color:transparent;background-size:8px 8px;background-origin:content-box;background-clip:content-box;width:100%;height:33.33%;padding:0 6px;-webkit-mask-image:linear-gradient(#0000,#000 25% 75%,#0000);mask-image:linear-gradient(#0000,#000 25% 75%,#0000)}.parser-host{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.stack{width:100%}.section-wrap{width:100%;position:relative;overflow:hidden}.section-wrap foliate-paginator{width:100%;height:100%;display:block}.section-wrap foliate-paginator::part(container){overflow:hidden}.error{background:var(--error-bg);max-width:80%;color:var(--error-text);border:1px solid var(--error-border);border-radius:6px;padding:10px 14px;position:fixed;top:56px;left:calc(50vw - 30px);transform:translate(-50%)}.opening{z-index:30;background:var(--bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.opening-spinner{border:2px solid var(--border);border-top-color:var(--text-dim);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite opening-spin}@keyframes opening-spin{to{transform:rotate(360deg)}}.launcher:focus-visible{outline:2px solid var(--sky);outline-offset:-3px}.launcher.open{background:var(--active)}.dialog{--buddy-font:Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;--m:14px;--bw-max:620px;--bw:min(var(--bw-max), calc(100vw - 60px - var(--m) * 2));--dialog-bottom:16px;--radius:17px;--chat-h:60px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.5, 0, .75, 0);--speech-size:20px;--speech-weight:480;--speech-leading:1.38;--reply-line:calc(var(--speech-size) * var(--speech-leading));--msg-pad-top:18px;--msg-pad-right:16px;--msg-pad-left:28px;--msg-pad-bottom:calc(var(--msg-pad-top) * 2);--reply-h:208px;--opt-size:17px;--opt-weight:480;--face-size:44px;--face-x:-22px;--face-y:10px;z-index:30;left:max(var(--m), calc((100vw - 60px - var(--bw)) / 2));bottom:calc(var(--dialog-bottom) + env(safe-area-inset-bottom));width:var(--bw);height:var(--h,120px);visibility:hidden;transform:translateY(calc(100% + var(--dialog-bottom) + 32px));transition:transform .32s var(--ease-in), visibility 0s linear .32s;position:fixed}@media (width>=700px){.dialog{--m:24px}}.dialog.open{visibility:visible;transition:transform .7s var(--spring-soft), height .75s var(--spring), visibility 0s;transform:none}.dialog button,.dialog button *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.surface{z-index:1;background:var(--surface);border:1px solid var(--dialog-edge);border-radius:var(--radius);box-shadow:var(--dialog-shadow);position:absolute;inset:0;overflow:hidden}.inner{margin-bottom:var(--chat-h);color:var(--text-strong);font:15px/1.5 var(--buddy-font)}.dock{z-index:2;height:var(--chat-h);background:var(--surface);position:absolute;bottom:0;left:0;right:0}.d-face{z-index:2;left:var(--face-x);top:var(--face-y);width:var(--face-size);height:var(--face-size);opacity:0;transition:transform .18s var(--ease-in), opacity .12s ease;position:absolute;transform:scale(.3)}.dialog.open .d-face{opacity:1;transition:transform .6s var(--spring) .16s, opacity .15s ease .16s;transform:none}[data-face] svg{width:100%;height:100%;display:block;overflow:visible}.message{box-sizing:border-box;height:var(--reply-h);padding:var(--msg-pad-top) var(--msg-pad-right) var(--msg-pad-bottom) var(--msg-pad-left);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--text-dim) 65%, transparent) transparent;flex-direction:column;display:flex;overflow:hidden auto}.message::-webkit-scrollbar{background:0 0;width:10px}.message::-webkit-scrollbar-track{background:0 0}.message::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--text-dim) 65%, transparent);background-clip:padding-box;border:3px solid #0000;border-radius:999px}.stage{transition:opacity .16s}.stage.out{opacity:0}.rise>.message>*,.q-list{animation:rise .5s var(--ease) both}.rise>.message>:nth-child(n+2){animation-delay:50ms}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.message.short{height:calc(var(--msg-pad-top) * 2 + var(--reply-line));padding-bottom:var(--msg-pad-top);overflow:hidden}.speech{font-size:var(--speech-size);font-weight:var(--speech-weight);line-height:var(--speech-leading);letter-spacing:-.012em;text-wrap:pretty;margin:0}.message .speech{flex:none}.speech p{margin:0}.speech p+p{margin-top:.72em}.reply-acts{flex-shrink:0;align-self:flex-start;margin:12px 0 0 -12px;display:flex}.act{width:40px;height:40px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:999px;flex-shrink:0;place-items:center;padding:0;display:grid}.act:active{color:var(--text);background:var(--tint)}@media (hover:hover) and (pointer:fine){.act:hover{color:var(--text);background:var(--tint)}}.act:focus-visible{outline:2px solid var(--sky);outline-offset:1px}.dots{vertical-align:top;align-items:center;gap:5px;height:1.55em;display:inline-flex}.dots i{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.05s ease-in-out infinite dot}.dots i:nth-child(2){animation-delay:.14s}.dots i:nth-child(3){animation-delay:.28s}@keyframes dot{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.c0{--c:var(--word-0)}.c1{--c:var(--word-1)}.c2{--c:var(--word-2)}.c3{--c:var(--word-3)}.w{color:var(--c)}.q-head{box-sizing:border-box;height:calc(var(--msg-pad-top) * 2 + var(--reply-line));padding:var(--msg-pad-top) var(--msg-pad-right) var(--msg-pad-top) var(--msg-pad-left);position:relative}.q-head:after{content:"";background:var(--rule-lo);height:1px;box-shadow:0 1px 0 var(--rule-hi);position:absolute;bottom:0;left:0;right:0}.opts{box-sizing:border-box;height:var(--reply-h);overscroll-behavior:contain;scrollbar-width:none;flex-direction:column;margin:0;padding:5px 8px 8px;display:flex;overflow-y:auto}.opts::-webkit-scrollbar{display:none}.opt{box-sizing:border-box;min-height:40px;color:inherit;font:inherit;font-size:var(--opt-size);font-weight:var(--opt-weight);letter-spacing:-.008em;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease, transform .4s var(--spring);background:0 0;border:0;border-radius:10px;flex-shrink:0;align-items:flex-start;gap:8px;padding:11.5px 8px;line-height:1;display:flex}.opt svg{width:18px;height:18px;color:var(--opt-icon);flex-shrink:0;margin-top:calc(.5em - 9px)}.opt:active{background:var(--tint);transform:scale(.985)}@media (hover:hover) and (pointer:fine){.opt:hover{background:var(--tint)}.opt:disabled:hover{background:0 0}}.opt:disabled{opacity:.45;cursor:default}.opt:disabled:active{background:0 0;transform:none}.opt:focus-visible{outline:2px solid var(--sky);outline-offset:1px}.chat{align-items:center;gap:2px;height:100%;margin:0;padding:0 8px;display:flex;position:relative}.chat:before{content:"";background:var(--rule-lo);height:1px;box-shadow:0 1px 0 var(--rule-hi);position:absolute;top:0;left:0;right:0}.list-toggle,.send{appearance:none;width:44px;height:44px;color:var(--text-dim);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .2s ease, color .2s ease, transform .4s var(--spring);background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;margin:0;padding:0;display:grid}.list-toggle.on{color:var(--text);background:var(--tint)}.send{margin-left:6px}.send:disabled{cursor:default}.send:not(:disabled){color:var(--sky)}.send:not(:disabled):active{transform:scale(.92)}@media (hover:hover) and (pointer:fine){.list-toggle:hover{color:var(--text);background:var(--tint)}.send:not(:disabled):hover{background:var(--tint)}}.list-toggle:focus-visible,.send:focus-visible{outline:2px solid var(--sky);outline-offset:1px}.chat-input{appearance:none;min-width:0;color:var(--text);font:inherit;font-family:var(--buddy-font);letter-spacing:-.008em;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:0;outline:0;flex:1;margin:0;padding:0;font-size:17px}.chat-input::placeholder{color:var(--text-dim);opacity:1}@media (prefers-reduced-motion:reduce){.dialog,.dialog *{transition:none!important;animation:none!important}}.dbg-backdrop{z-index:40;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.dbg{width:min(820px,100vw - 100px);height:min(80vh,900px);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.dbg header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.dbg header h3{flex:1;margin:0;font-size:15px}.dbg header button{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;place-items:center;padding:4px 10px;display:grid}.dbg-body{-webkit-user-select:text;user-select:text;flex:1;padding:12px 14px;overflow-y:auto}.dbg-call{border:1px solid var(--border);border-radius:8px;margin-bottom:10px}.dbg-call>summary{cursor:pointer;gap:14px;padding:8px 12px;font-size:12px;display:flex}.dbg-call>summary span:last-child{margin-left:auto}.dbg-block{padding:0 12px 10px}.dbg-block h4{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:8px 0 4px;font-size:11px}.dbg pre{white-space:pre-wrap;word-break:break-word;background:var(--hover);border-radius:6px;margin:0;padding:8px 10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.dbg-msg{margin-bottom:6px}.dbg-msg b{color:var(--text-dim);margin-bottom:2px;font-size:11px;display:block}.dbg-good{color:#2e9e5b}.dbg-bad{color:#d64545}.dbg-block p{color:var(--text-dim);margin:0;font-size:12px}.dbg-raw>summary{color:var(--text-dim);cursor:pointer;font-size:12px}
