:root{--accent:#386d5b;--accent-contrast:#fffaf2;--accent-glow:#386d5b2e;--border:#e2d6c5;--border-soft:#50413124;--button-muted:#efe4d5;--canvas:#f5efe3;--canvas-reading:#f8f3eb;--danger:#a54a31;--danger-bg:#fff2eb;--danger-panel:#fff5eed1;--field:#fff;--ink:#241f1a;--ink-soft:#5c5145;--muted:#756b5e;--panel:#fffcf7c7;--panel-solid:#fffaf2;--panel-strong:#fffcf7db;--shadow:#44311c14;--shadow-strong:#241f1a38;--sun:#e8bc59;--sun-soft:#e8bc5957;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizelegibility;font-family:Avenir Next,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--accent:#7dbba2;--accent-contrast:#102019;--accent-glow:#7dbba22e;--border:#43392f;--border-soft:#f4e3ca24;--button-muted:#2d261f;--canvas:#14110f;--canvas-reading:#17130f;--danger:#f08d69;--danger-bg:#2b1712;--danger-panel:#2b1712d6;--field:#1f1a16;--ink:#f6eadc;--ink-soft:#d2c0ad;--muted:#a89988;--panel:#1f1a16d1;--panel-solid:#1f1a16;--panel-strong:#1f1a16e6;--shadow:#00000047;--shadow-strong:#00000070;--sun:#d7a947;--sun-soft:#d7a94742}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}input,select{background:var(--field);border:1px solid var(--border);color:var(--ink);border-radius:14px;width:100%;min-height:42px;padding:0 12px}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}.appShell{background:radial-gradient(circle at 12% 0%, color-mix(in srgb, var(--danger) 16%, transparent), transparent 34%), radial-gradient(circle at 90% 12%, var(--accent-glow), transparent 30%), var(--canvas);min-height:100vh;position:relative;overflow-x:hidden}.appShell.reading{background:var(--canvas-reading)}.homeShell{max-width:1180px;margin:0 auto;padding:clamp(10px,2vw,24px) clamp(12px,4vw,46px) clamp(34px,6vw,54px)}.homeToolbar,.readerToolbar{background:var(--panel-strong);border:1px solid var(--border-soft);box-shadow:0 18px 60px var(--shadow);border-radius:24px;justify-content:space-between;align-items:center;gap:18px;display:flex}.homeToolbar{z-index:5;margin-bottom:clamp(28px,5vw,54px);padding:clamp(8px,1.5vw,14px);position:sticky;top:clamp(8px,1.5vw,14px)}.brand{align-items:center;gap:12px;padding-left:8px;display:flex}.brand h1,.brand p,.pageIntro h2,.pageIntro p,.readerTitle p,.muted,.settingsCard h3,.agentHeader h2,.agentHeader small{margin:0}.brand h1{letter-spacing:-.04em;font-size:24px}.brand p,.readerTitle p,.muted,.settingsCardTitle span,.dictionaryList small,.bookCard small,.dropUpload small,.agentHeader small{color:var(--muted)}.toolbarTabs{background:var(--button-muted);border-radius:18px;gap:5px;min-width:0;padding:5px;display:flex}.toolbarTabs button,.iconTextButton,.readerActions button,.readerBottomControls button,.selectionBar button,.agentHeader button,.primaryButton,.secondaryButton,.dangerButton{border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;display:inline-flex}.toolbarTabs button{color:var(--ink-soft);white-space:nowrap;background:0 0;min-height:42px;padding:0 14px}.toolbarTabs button.active{background:var(--ink);color:var(--panel-solid);box-shadow:0 10px 24px var(--shadow)}.pageIntro{max-width:680px;margin-bottom:clamp(18px,3vw,24px)}.pageIntro p{color:var(--danger);letter-spacing:.18em;text-transform:uppercase;font-size:13px;font-weight:800}.modelPicker{gap:10px;display:grid}.llmTestResult,.llmTestError{white-space:pre-wrap}.llmTestResult{color:var(--accent);margin:0;font-weight:800}.pageIntro h2{letter-spacing:-.06em;margin-top:10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,7vw,82px);font-weight:500;line-height:.92}.bookGrid,.settingsGrid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(12px,2vw,16px);display:grid}.bookCard,.emptyPanel,.settingsCard,.dropUpload{background:var(--panel);border:1px solid var(--border-soft);box-shadow:0 18px 50px var(--shadow);border-radius:28px}.bookCard{color:var(--ink);text-align:left;gap:12px;min-height:clamp(164px,22vw,210px);padding:clamp(16px,3vw,22px);transition:transform .16s,border-color .16s,box-shadow .16s;display:grid}.bookCard:hover{border-color:var(--accent);box-shadow:0 24px 60px var(--accent-glow);transform:translateY(-3px)}.bookCard span{font-family:Georgia,Times New Roman,serif;font-size:27px;line-height:1.04}.bookCard strong{color:var(--danger);align-self:end}.emptyPanel{color:var(--muted);align-content:center;gap:10px;min-height:clamp(164px,22vw,210px);padding:clamp(18px,3vw,26px);display:grid}.emptyPanel strong{color:var(--ink);font-size:20px}.emptyPanel p{margin:0}.importPage,.settingsPage,.libraryPage{animation:.22s both enter}.dropUpload{color:var(--ink);text-align:center;place-items:center;gap:10px;min-height:clamp(210px,42vh,310px);margin-bottom:18px;padding:clamp(22px,5vw,34px);display:grid}.dropUpload span{font-family:Georgia,Times New Roman,serif;font-size:42px}.dropUpload input,.secondaryButton input{display:none}.settingsCard{gap:16px;padding:clamp(16px,3vw,22px);display:grid}.settingsCard label{gap:7px;display:grid}.settingsCard label span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.settingsCardTitle{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.settingsCard h3{font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:500}.dictionaryList{gap:7px;display:grid}.secondaryButton,.primaryButton{background:var(--accent);color:var(--accent-contrast);min-height:44px;padding:0 16px}.dangerButton{background:var(--danger-bg);border:1px solid color-mix(in srgb, var(--danger) 32%, transparent);color:var(--danger);min-height:44px;padding:0 16px}.dangerZone{background:var(--danger-panel)}.readerView{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.readerToolbar{z-index:6;border-width:0 0 1px;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;min-height:82px;padding:12px clamp(14px,3vw,30px);display:grid;position:sticky;top:0}.iconTextButton,.readerActions button,.readerBottomControls button,.agentHeader button{background:var(--panel-solid);border:1px solid var(--border);color:var(--ink);min-height:42px;padding:0 13px}.readerTitle{text-align:center;min-width:0}.readerTitle strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.readerActions{justify-self:end;gap:8px;min-width:0;display:flex}.readerBottomControls .agentButton{background:var(--ink);border-color:var(--ink);color:var(--panel-solid)}.readerActions .bookmarkButton{background:var(--button-muted);border-color:var(--border-soft);color:var(--ink-soft);flex:0 0 44px;width:44px;min-width:44px;padding:0}.readerActions .bookmarkButton[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.bookmarkSelect{width:auto;min-width:118px;min-height:42px}.readerBottomControls{bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;z-index:7;grid-template-columns:repeat(3,56px);justify-content:center;align-items:center;gap:clamp(36px,13vw,150px);display:grid;position:fixed;left:0;right:0}.readerBottomControls button{box-shadow:0 12px 28px var(--shadow);pointer-events:auto;border-radius:18px;width:56px;min-height:56px;padding:0}.textStage{align-items:center;min-height:0;padding:clamp(20px,6vw,92px) clamp(20px,6vw,92px) clamp(118px,12vw,150px);display:grid}.textStage p{text-wrap:pretty;-webkit-user-select:none;user-select:none;white-space:pre-wrap;max-width:900px;margin:0 auto;font-family:Yu Mincho,Hiragino Mincho ProN,Noto Serif JP,serif;font-size:clamp(30px,5.3vw,58px);line-height:1.85}.verticalMode .textStage{place-items:center;padding:clamp(18px,4vw,42px) clamp(16px,5vw,64px) clamp(24px,5vw,56px);overflow:hidden}.verticalMode .textStage p{text-align:start;text-orientation:mixed;writing-mode:vertical-rl;width:min(100%,900px);max-width:none;height:min(74dvh,780px);line-height:1.92;overflow:visible}.verticalMode .textToken{margin:-.015em 0;padding:.035em 0;line-height:1.52}.tokenizedText{-webkit-tap-highlight-color:transparent}.textToken{cursor:pointer;border-radius:.18em;margin:0 -.015em;padding:0 .035em;line-height:1.45;transition:background .12s,box-shadow .12s;display:inline-block;position:relative}.textToken:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.selectedToken{background:color-mix(in srgb, var(--sun) 50%, transparent);box-shadow:0 .13em 0 color-mix(in srgb, var(--danger) 30%, transparent)}.passiveSelectedToken{background:var(--sun-soft);border-radius:.18em}.selectionHandleSlot{z-index:2;position:absolute;bottom:-.62em}.selectionHandleSlot.start{left:-.25em}.selectionHandleSlot.end{right:-.25em}.selectionHandle{background:var(--accent);border:2px solid var(--panel-solid);cursor:grab;touch-action:none;border-radius:999px;width:18px;height:28px;padding:0;transition:box-shadow .12s,transform .12s;box-shadow:0 7px 18px #1f252838}.selectionHandle:hover,.selectionHandle:focus-visible,.selectionHandle.dragging{transform:scale(1.16);box-shadow:0 9px 24px #1f252847}.selectionHandle.dragging{cursor:grabbing}.selectionHandle:after{content:"";background:#ffffff9e;border-radius:999px;width:3px;height:14px;margin:5px auto;display:block}.verticalMode .selectionHandleSlot{bottom:auto;left:50%;right:auto;transform:translate(-50%)}.verticalMode .selectionHandleSlot.start{top:-.55em}.verticalMode .selectionHandleSlot.end{bottom:-.55em}.verticalMode .selectionHandle{width:32px;height:16px}.verticalMode .selectionHandle:after{width:16px;height:3px;margin:4px auto}.emptyText{color:var(--muted)}.selectionBar{background:var(--ink);border:1px solid color-mix(in srgb, var(--panel-solid) 16%, transparent);bottom:calc(max(16px, env(safe-area-inset-bottom)) + 74px);box-shadow:0 18px 50px var(--shadow-strong);z-index:8;border-radius:999px;gap:6px;padding:6px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.selectionBar button{color:var(--panel-solid);background:0 0;min-height:40px;padding:0 12px}.selectionBar button:hover{background:color-mix(in srgb, var(--panel-solid) 12%, transparent)}.inlineDefinition{background:var(--panel-solid);border:1px solid var(--border);box-shadow:0 18px 50px var(--shadow);border-radius:20px;width:min(420px,100vw - 32px);max-height:min(54vh,520px);padding:14px;position:absolute;top:74px;right:22px;overflow:auto}.definitionHero{background:linear-gradient(135deg, color-mix(in srgb, var(--sun) 22%, var(--panel-solid)) 0%, var(--panel-solid) 72%);border:1px solid var(--border);border-radius:16px;padding:14px 16px}.definitionEyebrow{color:color-mix(in srgb, var(--sun) 64%, var(--ink));letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.definitionHero h2{color:var(--ink);margin:0;font-size:clamp(32px,8vw,54px);line-height:.95}.definitionHero p{color:var(--ink-soft);margin:8px 0 0;font-size:18px;font-weight:700}.selected{background:var(--sun);border-radius:10px;margin-bottom:12px;padding:5px 8px;font-size:22px;font-weight:800;display:inline-block}dl{gap:4px;margin:0;display:grid}dt{color:var(--muted);text-transform:uppercase;font-size:12px}dd{margin:0 0 8px}.definitions{gap:12px;margin-top:12px;display:grid}.definition{background:0 0;border:0;border-radius:14px;padding:0 2px}.definition div{align-items:baseline;gap:8px;display:flex}.definition span,.definition small{color:var(--muted)}.definition ol{margin:0;padding-left:22px}.definition p{white-space:pre-line;margin:10px 0 0;line-height:1.45}.definition li{color:var(--ink);margin-bottom:8px;font-size:16px;line-height:1.45}.definitionAsides{flex-wrap:wrap;gap:6px;display:flex}.definitionAsides span{background:color-mix(in srgb, var(--ink) 6%, transparent);border:1px solid color-mix(in srgb, var(--muted) 22%, transparent);color:var(--muted);border-radius:999px;padding:6px 8px;font-size:11px;font-weight:700;line-height:1}.grammarAside{background:var(--field);border:1px dashed color-mix(in srgb, var(--muted) 28%, transparent);padding:10px}.grammarAside strong,.grammarAside p{color:var(--ink-soft);font-size:13px}.agentPanel{background:var(--panel-solid);border-left:1px solid var(--border);box-shadow:-30px 0 80px var(--shadow-strong);z-index:10;grid-template-rows:auto 1fr auto auto auto auto;gap:14px;width:min(430px,92vw);max-width:430px;height:100vh;padding:22px;transition:transform .22s;display:grid;position:fixed;top:0;right:0;transform:translate(105%)}.agentPanel.open{transform:translate(0)}.agentHeader{justify-content:space-between;align-items:start;display:flex}.agentHeader h2{font-family:Georgia,Times New Roman,serif;font-size:32px;font-weight:500}.agentMessages{align-content:start;gap:10px;min-height:0;padding-right:4px;display:grid;overflow:auto}.agentMessage{border-radius:18px;padding:12px 14px;line-height:1.5}.agentMessage.user{background:var(--ink);color:var(--panel-solid);white-space:pre-wrap;justify-self:end;max-width:88%}.agentMessage.assistant{background:var(--field);border:1px solid var(--border)}.agentMessage.assistant>:first-child,.agentMessage.assistant p:first-child,.agentMessage.assistant ul:first-child,.agentMessage.assistant ol:first-child,.agentMessage.assistant blockquote:first-child,.agentMessage.assistant pre:first-child,.agentMessage.assistant table:first-child{margin-top:0}.agentMessage.assistant>:last-child,.agentMessage.assistant p:last-child,.agentMessage.assistant ul:last-child,.agentMessage.assistant ol:last-child,.agentMessage.assistant blockquote:last-child,.agentMessage.assistant pre:last-child,.agentMessage.assistant table:last-child{margin-bottom:0}.agentMessage.assistant p,.agentMessage.assistant ul,.agentMessage.assistant ol,.agentMessage.assistant blockquote,.agentMessage.assistant pre,.agentMessage.assistant table{margin:.7em 0}.agentMessage.assistant ul,.agentMessage.assistant ol{padding-left:1.3em}.agentMessage.assistant li{margin:.28em 0}.agentMessage.assistant code{background:var(--button-muted);border:1px solid var(--border);border-radius:7px;padding:.08em .32em;font-family:SFMono-Regular,Consolas,monospace;font-size:.92em}.agentMessage.assistant pre{background:var(--ink);color:var(--panel-solid);border-radius:14px;padding:12px;overflow-x:auto}.agentMessage.assistant pre code{color:inherit;background:0 0;border:0;padding:0}.agentMessage.assistant blockquote{border-left:3px solid var(--sun);color:var(--ink-soft);padding-left:10px}.agentThinking,.agentToolCall{background:color-mix(in srgb, var(--button-muted) 56%, transparent);border:1px solid var(--border);border-radius:15px;margin:9px 0;overflow:clip}.agentThinking.streaming,.agentToolCall.input-streaming,.agentToolCall.input-available{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.agentToolCall.error{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 44%, var(--border))}.agentThinkingHeader,.agentToolCallHeader{color:var(--ink-soft);text-align:left;background:0 0;border:0;align-items:center;gap:7px;width:100%;min-height:38px;padding:9px 11px;display:flex}.agentThinkingHeader span,.agentToolCallHeader span{color:var(--ink);font-weight:800}.agentThinkingHeader small,.agentToolCallHeader small{background:color-mix(in srgb, var(--ink) 8%, transparent);border:1px solid color-mix(in srgb, var(--border) 72%, transparent);color:var(--muted);border-radius:999px;margin-left:auto;padding:5px 7px;font-size:11px;line-height:1}.agentToolCallHeader em{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:4px;font-size:12px;font-style:normal;display:block;overflow:hidden}.agentThinkingBody,.agentToolCallBody{border-top:1px solid color-mix(in srgb, var(--border) 72%, transparent);margin:0;padding:11px}.agentThinkingBody,.agentToolSection pre{background:color-mix(in srgb, var(--field) 76%, transparent);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);color:var(--ink-soft);white-space:pre-wrap;border-radius:12px;padding:10px;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.45;overflow:auto}.agentToolSection{gap:7px;display:grid}.agentToolSection+.agentToolSection,.agentToolSection+.agentQuiz,.agentToolSkeleton+.agentToolSection{margin-top:10px}.agentToolSection strong{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.agentToolSection pre{margin:0}.agentToolSkeleton{background:linear-gradient(90deg, color-mix(in srgb, var(--field) 70%, transparent), color-mix(in srgb, var(--accent) 14%, var(--field)), color-mix(in srgb, var(--field) 70%, transparent));background-size:220% 100%;border-radius:12px;height:44px;margin-bottom:10px;animation:1.15s ease-in-out infinite toolShimmer}.agentToolError{color:var(--danger);margin:0;font-weight:800}.stepDivider{border-top:1px dashed color-mix(in srgb, var(--muted) 32%, transparent);height:1px;margin:10px 0}.agentMessage.assistant table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.agentMessage.assistant th,.agentMessage.assistant td{border:1px solid var(--border);text-align:left;padding:6px 8px}.agentMessage.assistant th{background:var(--button-muted)}.agentComposer{gap:10px;display:grid}.agentQuiz{background:var(--button-muted);border:1px solid var(--border);border-radius:18px;gap:8px;padding:12px;display:grid}.agentQuiz small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.agentQuiz button{background:var(--panel-solid);border:1px solid var(--border);color:var(--ink);text-align:left;border-radius:12px;padding:10px 12px}.agentQuizQuestion{border:0;gap:8px;margin:0;padding:0;display:grid}.agentQuizQuestion+.agentQuizQuestion{border-top:1px dashed color-mix(in srgb, var(--muted) 28%, transparent);padding-top:10px}.agentQuizQuestion legend{color:var(--ink);padding:0 0 2px;font-weight:800}.agentQuiz button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.agentQuiz button:disabled:not(.active){opacity:.58}.agentQuiz p,.agentError{margin:0}.agentError{color:var(--danger);font-weight:700}.debugErrorNotice{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.debugCopyButton{background:var(--danger-bg);border:1px solid color-mix(in srgb, var(--danger) 28%, transparent);color:var(--danger);border-radius:999px;align-items:center;gap:5px;min-height:30px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}textarea{background:var(--field);border:1px solid var(--border);color:var(--ink);resize:vertical;border-radius:18px;width:100%;min-height:180px;padding:14px}.scrim{background:color-mix(in srgb, var(--ink) 20%, transparent);z-index:9;border:0;position:fixed;inset:0}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes toolShimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (width<=820px){.homeToolbar{gap:10px}.toolbarTabs{scrollbar-width:none;flex:auto;justify-content:flex-end;overflow-x:auto}.toolbarTabs::-webkit-scrollbar{display:none}.readerActions{scrollbar-width:none;overflow-x:auto}.readerActions::-webkit-scrollbar{display:none}.inlineDefinition{width:auto;top:74px;left:16px;right:16px}}@media (width<=640px){.homeShell{padding:10px 10px 34px}.homeToolbar{border-radius:20px;margin-bottom:24px}.brand{gap:8px;padding-left:4px}.brand p{display:none}.brand h1{font-size:20px}.toolbarTabs button{flex:1 0 auto;min-height:40px;padding:0 10px}.pageIntro h2{font-size:clamp(36px,11vw,44px)}.readerToolbar{gap:8px;min-height:58px;padding:7px 8px}.readerTitle p{display:none}.readerTitle strong{font-size:13px}.iconTextButton,.readerActions button,.readerBottomControls button,.agentHeader button{min-height:44px;padding:0 11px}.readerActions{gap:6px}.readerActions button{flex:0 0 44px;gap:0;width:44px;padding:0;font-size:0}.readerActions .bookmarkButton{flex-basis:44px;width:44px;min-width:44px;padding:0}.bookmarkSelect{flex:0 0 118px;min-width:118px}.readerActions svg{flex:none}.inlineDefinition{border-radius:18px;max-height:calc(100dvh - 86px);top:64px}.textStage{align-items:start;padding:18px 14px 112px}.textStage p{font-size:clamp(27px,8.4vw,34px);line-height:1.68}.verticalMode .textStage{align-items:center;padding:16px 12px 108px}.verticalMode .textStage p{width:100%;height:min(72dvh,620px);font-size:clamp(27px,8.2vw,33px);line-height:1.76}.selectionBar{bottom:calc(max(10px, env(safe-area-inset-bottom)) + 68px);width:calc(100vw - 20px)}.readerBottomControls{bottom:max(10px, env(safe-area-inset-bottom));grid-template-columns:repeat(3,52px);gap:clamp(38px,15vw,72px)}.readerBottomControls button{border-radius:16px;width:52px;min-height:52px}.selectionBar button{flex:1;min-height:44px;padding:0 8px}.agentPanel{width:100vw;max-width:none;height:100dvh;padding:16px}.agentHeader h2{font-size:28px}textarea{min-height:150px}}@media (width<=460px){.homeToolbar{flex-direction:column;align-items:stretch}.toolbarTabs{justify-content:stretch}.toolbarTabs button{min-width:0}.readerToolbar{grid-template-columns:auto minmax(54px,1fr) auto}.iconTextButton{gap:0;width:44px;padding:0;font-size:0}.settingsCardTitle{flex-direction:column;align-items:start}}@media (width<=360px){.toolbarTabs button{gap:0;font-size:0}.toolbarTabs svg{flex:none}}
