:root{--ink:#0b0a0d;--ink-raised:#111014;--ink-soft:#17151b;--line:#ffffff16;--line-strong:#ffffff24;--paper:#f5f1e8;--muted:#8b8791;--violet:#8a55e9;--violet-soft:#8a55e92e;--coral:#fa6f5e;--font-geist-sans:"Geist", Inter, system-ui, sans-serif;--font-geist-mono:"Geist Mono", ui-monospace, monospace;--font-noto-sans-jp:"Noto Sans JP";--font-japanese:"Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif}*{box-sizing:border-box}html{background:var(--ink);height:100%;overflow:hidden}body{background:var(--ink);min-width:320px;min-height:100%;color:var(--paper);font-family:var(--font-geist-sans), Arial, sans-serif;margin:0;overflow:hidden}.auth-screen{min-height:100svh;padding:max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));background:radial-gradient(circle at 50% 15%, #8a55e929, transparent 36%), var(--ink);color:#8d8792;place-items:center;display:grid}.auth-card{border:1px solid var(--line-strong);background:#111014f0;border-radius:26px;width:min(470px,100%);padding:clamp(28px,6vw,50px);box-shadow:0 32px 90px #0000007a}.auth-brand{background:var(--violet-soft);color:#dbc9fb;width:50px;height:56px;font-family:var(--font-japanese);box-shadow:inset 4px 0 var(--coral);border:1px solid #a981f357;border-radius:7px 16px 16px 7px;place-items:center;margin-bottom:28px;font-size:24px;display:grid}.auth-card h1{color:var(--paper);letter-spacing:-.055em;margin:14px 0 12px;font-size:clamp(34px,7vw,52px);font-weight:560;line-height:1}.auth-card>p{color:#8b8490;margin:0 0 28px;font-size:15px;line-height:1.7}.google-button{background:var(--paper);color:#18151d;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;font-weight:720;display:inline-flex}.auth-config-warning{color:#d19b94;background:#fa6f5e12;border:1px solid #fa6f5e33;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.55}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--violet);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.46}.app-shell{background:radial-gradient(circle at 78% 14%, #8a55e90b, transparent 34%), var(--ink);min-height:100svh}.brand-button{cursor:pointer;background:0 0;border:0;padding:0}.collection-heading{flex-direction:column;justify-self:center;align-items:center;min-width:0;display:flex}.collection-heading span,.collection-heading small{text-overflow:ellipsis;white-space:nowrap;max-width:min(560px,48vw);overflow:hidden}.collection-heading span{color:#cac4ce;font-size:13px;font-weight:620}.collection-heading small{color:#6d6872;margin-top:4px;font-size:10px}.library-page,.book-page{scrollbar-color:#3d3842 transparent;scrollbar-width:thin;height:calc(100svh - 74px);overflow-y:auto}.library-page{padding:58px max(5vw,52px) 80px}.library-hero{justify-content:space-between;align-items:flex-end;gap:40px;max-width:1240px;margin:0 auto 42px;display:flex}.library-hero h1{letter-spacing:-.055em;max-width:680px;margin:12px 0 10px;font-size:clamp(34px,4.6vw,62px);font-weight:560;line-height:1.02}.library-hero p{color:#817b86;max-width:640px;margin:0;font-size:13px;line-height:1.65}.library-summary{border:1px solid var(--line);background:#ffffff05;border-radius:16px;grid-template-columns:auto auto 1px auto auto;align-items:baseline;gap:8px;min-width:max-content;padding:18px 20px;display:grid}.library-summary strong{color:#d9d2df;font-family:var(--font-geist-mono), monospace;font-size:20px}.library-summary span{color:#6e6874;letter-spacing:.08em;text-transform:uppercase;font-size:9px}.library-summary i{background:var(--line);align-self:stretch;margin:0 8px}.library-error{max-width:1240px;margin:-20px auto 24px}.library-loading{color:#77717c;justify-content:center;align-items:center;gap:10px;min-height:300px;font-size:12px;display:flex}.book-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px;max-width:1240px;margin:0 auto;display:grid}.book-card,.new-book-card{border:1px solid var(--line);background:#ffffff05;border-radius:20px;min-height:250px}.book-card{flex-direction:column;transition:border-color .18s,transform .18s,background .18s;display:flex;overflow:hidden}.book-card:hover{background:#8a55e908;border-color:#a981f342;transform:translateY(-2px)}.book-card-main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;grid-template-rows:1fr auto;grid-template-columns:98px minmax(0,1fr);gap:16px;width:100%;padding:22px;display:grid}.book-cover{aspect-ratio:.69;color:#d7c3fb;background:radial-gradient(circle at 78% 18%,#fa6f5e2e,#0000 35%),linear-gradient(145deg,#241734,#16121d 72%);border:1px solid #a981f340;border-radius:5px 15px 15px 5px;flex-direction:column;grid-row:span 2;justify-content:space-between;width:98px;padding:15px 12px 12px 18px;display:flex;position:relative;overflow:hidden;box-shadow:inset 5px 0 #fa6f5e8c,0 16px 32px #0000003d}.book-cover:after{content:"";background:#ffffff14;width:1px;position:absolute;inset:8px 8px 8px auto}.book-cover i{font-family:var(--font-japanese);font-size:34px;font-style:normal;font-weight:650}.book-cover small{color:#89749e;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;font-size:7px}.book-card-copy{flex-direction:column;align-self:center;min-width:0;display:flex}.book-card-copy>small{color:#8f70c7;letter-spacing:.06em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-bottom:8px;font-size:11px;overflow:hidden}.book-card-copy>strong{color:#ddd7e1;font-family:var(--font-japanese);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:19px;font-weight:610;line-height:1.45;display:-webkit-box;overflow:hidden}.book-card-copy>span{color:#6f6974;margin-top:12px;font-size:12px}.book-progress,.chapter-progress{align-items:center;gap:9px;min-width:0;display:flex}.book-progress>i,.chapter-progress>i,.profile-progress>i{background:#37323c;border-radius:999px;flex:1;height:3px;display:block;overflow:hidden}.book-progress>i b,.chapter-progress>i b,.profile-progress>i b{border-radius:inherit;background:linear-gradient(90deg, var(--violet), #b190ef);height:100%;display:block}.book-progress small,.chapter-progress small{color:#7a7380;font-family:var(--font-geist-mono), monospace;font-size:10px}.book-card-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 14px 11px 22px;display:flex}.book-card-actions button,.danger-text-button{color:#89838e;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;min-height:32px;padding:0 9px;font-size:13px;display:inline-flex}.book-card-actions button:hover{color:var(--paper);background:#ffffff0b}.danger-action:hover,.danger-text-button:hover{color:#f39b90!important;background:#fa6f5e13!important}.new-book-card{color:#77717c;cursor:pointer;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:8px;transition:border-color .18s,color .18s,background .18s;display:flex}.new-book-card:hover{color:#b89ae9;background:#8a55e909;border-color:#8a55e96b}.new-book-card>span,.empty-library-icon{background:var(--violet-soft);color:#aa86e8;border-radius:15px;place-items:center;width:48px;height:48px;margin-bottom:4px;display:grid}.new-book-card strong{color:#aca5b1;font-size:12px}.new-book-card small{font-size:9px}.empty-library{border:1px dashed var(--line-strong);text-align:center;border-radius:24px;flex-direction:column;align-items:center;max-width:620px;margin:62px auto 0;padding:54px 36px;display:flex}.empty-library h2{margin:18px 0 8px;font-size:22px;font-weight:580}.empty-library p{color:#77717c;max-width:480px;margin:0 0 24px;font-size:12px;line-height:1.65}.book-page{grid-template-columns:minmax(240px,310px) minmax(0,1fr);gap:clamp(42px,7vw,100px);padding:52px max(5vw,64px) 80px;display:grid}.book-profile{flex-direction:column;align-self:start;min-width:0;display:flex;position:sticky;top:0}.book-cover-large{border-radius:7px 24px 24px 7px;width:min(220px,100%);margin-bottom:28px;padding:26px 20px 18px 30px}.book-cover-large i{font-size:clamp(54px,7vw,82px)}.book-cover-large small{font-size:8px}.book-profile h1{color:#ddd7df;font-family:var(--font-japanese);letter-spacing:-.035em;margin:12px 0 10px;font-size:clamp(26px,3vw,38px);font-weight:580;line-height:1.3}.book-profile>p{color:#756f79;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;margin:5px 0;font-size:12px;display:flex;overflow:hidden}.profile-progress{border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.profile-progress span{color:#706a75;text-transform:uppercase;align-items:baseline;gap:6px;margin-bottom:10px;font-size:11px;display:flex}.profile-progress span b{color:#bba2e7;font-family:var(--font-geist-mono), monospace;font-size:17px}.profile-progress>i{width:100%}.danger-text-button{align-self:flex-start;margin-top:22px;padding-left:0}.chapter-catalog{min-width:0}.catalog-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px;padding-bottom:20px;display:flex}.catalog-heading h2{letter-spacing:-.035em;margin:9px 0 0;font-size:28px;font-weight:570}.catalog-stats{gap:16px;display:flex}.catalog-stats span{color:#77717c;align-items:center;gap:6px;font-size:12px;display:inline-flex}.chapter-list{flex-direction:column;gap:8px;display:flex}.chapter-row{border:1px solid var(--line);cursor:pointer;background:#ffffff04;border-radius:15px;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:17px;min-height:112px;padding:17px 18px;transition:border-color .18s,background .18s;display:grid;position:relative}.chapter-card-hitbox{z-index:0;border-radius:inherit;cursor:pointer;background:0 0;border:0;width:100%;position:absolute;inset:0}.chapter-card-hitbox:focus-visible{outline-offset:3px;outline:2px solid #a981f3d1}.chapter-row>:not(.chapter-card-hitbox){z-index:1;position:relative}.chapter-number,.chapter-row-main{pointer-events:none}.chapter-actions{pointer-events:auto}.chapter-row:hover{background:#ffffff06;border-color:#ffffff21}.chapter-row.status-aligned{border-color:#8a55e92b}.chapter-row.status-error{border-color:#fa6f5e30}.chapter-number{color:#5e5863;font-family:var(--font-geist-mono), monospace;font-size:14px}.chapter-row-main{min-width:0}.chapter-status{color:#8870b3;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:5px;font-size:11px;font-weight:680;display:inline-flex}.status-error .chapter-status{color:#dc897e}.chapter-row-main h3{color:#d0cad4;font-family:var(--font-japanese);text-overflow:ellipsis;white-space:nowrap;margin:6px 0 5px;font-size:19px;font-weight:600;overflow:hidden}.chapter-row-main p{color:#6d6772;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex;overflow:hidden}.chapter-row-main p i{background:#514b55;border-radius:50%;width:3px;height:3px;margin:0 3px}.chapter-progress{max-width:220px;margin-top:10px}.chapter-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.chapter-primary,.chapter-secondary,.add-chapter-row,.sidebar-book-button{cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 14px;font-size:12.5px;font-weight:660;display:inline-flex}.chapter-primary{color:#eee6fb;background:linear-gradient(135deg,#8a55e957,#643ab43d);border:1px solid #a981f366;box-shadow:inset 0 1px #ffffff14,0 7px 20px #1f10302e}.chapter-primary:hover{color:#fffaff;background:linear-gradient(135deg,#9762ef70,#6f41c457);border-color:#bd99fa94}.chapter-secondary{border:1px solid var(--line-strong);color:#8e8793;background:0 0}.chapter-secondary:hover{color:#c4b2e2;border-color:#a981f359}.empty-chapters{color:#6d6672;flex-direction:column;justify-content:center;align-items:center;min-height:220px;display:flex}.empty-chapters p{margin:10px 0 0;font-size:11px}.add-chapter-row{border:1px dashed var(--line-strong);color:#807986;background:0 0;width:100%;min-height:48px;margin-top:10px}.add-chapter-row:hover{color:#b598e6;background:#8a55e908;border-color:#8a55e961}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0b0a0deb;grid-template-columns:220px minmax(0,1fr) auto;align-items:center;min-height:74px;padding:0 28px;display:grid;position:relative}.topbar.collection-topbar{grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);gap:18px}.topbar-leading{justify-self:start;align-items:center;gap:10px;min-width:0;display:flex}.topbar-leading .brand{white-space:nowrap;min-width:0}.topbar-leading .icon-button{flex:none}.topbar-actions{justify-self:end;align-items:center;gap:9px;display:flex}.account-button{border:1px solid var(--line);color:#857e8b;cursor:pointer;background:#ffffff06;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:40px;height:40px;padding:0 9px;display:inline-flex}.account-button:hover{color:#c9b4ec;border-color:#a981f34d}.account-button img,.account-button>span{background:var(--violet-soft);color:#d7c4f9;object-fit:cover;border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;font-weight:750;display:grid}.topbar .import-button{white-space:nowrap;justify-self:end;width:max-content}.brand{color:var(--paper);letter-spacing:.12em;align-items:center;gap:11px;font-size:13px;font-weight:720;text-decoration:none;display:inline-flex}.brand strong{color:#a981f3}.brand-mark,.cover-mini{color:#d8c6fb;width:34px;height:38px;font-family:var(--font-japanese);background:linear-gradient(145deg,#8a55e947,#fa6f5e17);border:1px solid #a981f352;border-radius:4px 11px 11px 4px;place-items:center;font-size:17px;display:grid;box-shadow:inset 3px 0 #fa6f5eb8}.book-heading{flex-direction:column;align-items:center;min-width:0;line-height:1.25;display:flex}.book-heading span,.book-heading small{text-overflow:ellipsis;white-space:nowrap;max-width:min(500px,48vw);overflow:hidden}.book-heading span{color:#c9c4cd;font-size:13px;font-weight:590}.book-heading small{color:#67636d;margin-top:4px;font-size:11px}.import-button,.align-button{color:#fffaff;cursor:pointer;background:linear-gradient(135deg,#8555d7,#6538b6);border:1px solid #b892f77a;border-radius:999px;justify-content:center;align-items:center;gap:9px;font-size:13px;font-weight:720;transition:transform .16s,background .16s,border-color .16s;display:inline-flex;box-shadow:inset 0 1px #ffffff24,0 9px 24px #4222703d}.import-button{min-height:38px;padding:0 17px}.import-button:hover,.align-button:hover:not(:disabled){background:linear-gradient(135deg,#9464e5,#7345c7);border-color:#d3b8ffad;transform:translateY(-1px)}.reading-layout{grid-template-columns:280px minmax(0,1fr);height:calc(100svh - 74px);display:grid;overflow:hidden}.timeline-panel{z-index:12;border-right:1px solid var(--line);background:#0c0b0ea3;padding:36px 28px 126px;position:relative}.timeline-book{color:#77727e;letter-spacing:.08em;text-transform:uppercase;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;font-size:12px;display:grid}.timeline-book svg{color:#9d76e7;grid-row:span 2}.timeline-book strong{color:#d5cedb;font-size:16px;font-weight:640}.timeline-track{flex-direction:column;justify-content:space-between;height:min(54vh,480px);margin:34px 0 0 8px;padding:2px 0;display:flex;position:relative}.timeline-track:before{content:"";background:#343139;width:1px;position:absolute;inset:0 auto 0 5px}.timeline-point{color:#5f5b65;cursor:pointer;background:0 0;border:0;align-items:center;gap:17px;width:max-content;padding:0;display:flex;position:relative}.timeline-point time{font-family:var(--font-geist-mono), monospace;font-size:10px}.timeline-dot{z-index:1;border:3px solid var(--ink);background:#45414a;border-radius:50%;width:11px;height:11px;position:relative;box-shadow:0 0 0 1px #45414a}.timeline-point.is-passed .timeline-dot{background:#7f7789}.timeline-point.is-active{color:#d5cbdf}.timeline-point.is-active .timeline-dot{width:15px;height:15px;box-shadow:0 0 0 2px var(--violet), 0 0 24px #8a55e99e;background:#b08af6;border:4px solid #27173c;margin-left:-2px}.timeline-tip{color:#67616d;gap:9px;font-size:10px;line-height:1.45;display:flex;position:absolute;bottom:112px;left:28px;right:24px}.timeline-tip svg{color:#8965c9;flex:none}.chapter-sidebar{flex-direction:column;padding:30px 18px 116px;display:flex}.reader-chapter-list{scrollbar-color:#39333e transparent;scrollbar-width:thin;flex-direction:column;flex:1;gap:4px;min-height:0;margin-top:24px;display:flex;overflow-y:auto}.reader-chapter-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:56px;padding:10px 11px;display:grid}.reader-chapter-item:hover{background:#ffffff09}.reader-chapter-item.is-active{background:#8a55e917;border-color:#8a55e938}.reader-chapter-item>span{color:#5e5863;font-family:var(--font-geist-mono), monospace;font-size:10px}.reader-chapter-item strong{color:#a7a1ac;font-family:var(--font-noto-sans-jp), "Meiryo UI", Meiryo, sans-serif;font-kerning:normal;letter-spacing:.015em;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:580;line-height:1.45;overflow:hidden}.reader-chapter-item.is-active strong{color:#eee8f2;font-weight:650}.reader-chapter-item small{color:#675c74;font-family:var(--font-geist-mono), monospace;font-size:10px}.sidebar-book-button{border:1px solid var(--line);color:#7d7682;background:#ffffff05;width:100%;margin-top:12px}.sidebar-book-button:hover{color:#c2b5cc;background:#ffffff0b}.reader-canvas{flex-direction:column;height:calc(100svh - 74px);min-height:0;max-height:calc(100svh - 74px);padding:34px max(5vw,52px) 100px;display:flex;position:relative;overflow:hidden}.reader-heading{flex:none;justify-content:space-between;align-items:flex-end;width:min(980px,100%);margin:0 auto 14px;display:flex}.eyebrow{color:#9576ce;font-family:var(--font-geist-mono), monospace;letter-spacing:.18em;font-size:10px;font-weight:680}.reader-heading h1,.dialog-header h2{letter-spacing:-.025em;margin:10px 0 0;font-weight:570}.reader-heading h1{font-family:var(--font-japanese);font-size:clamp(25px,3vw,38px)}.reader-status{color:#66616b;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;display:flex}.reader-status>span{background:#46414a;border-radius:50%;width:6px;height:6px}.reader-status>.status-live{background:var(--coral);box-shadow:0 0 12px #fa6f5ea6}.sentence-list{overflow-anchor:none;width:min(980px,100%);margin:0 auto;padding:50cqh 0}.sentence-viewport{overflow-anchor:none;overscroll-behavior:contain;scroll-behavior:auto;scrollbar-color:#37323d transparent;scrollbar-width:thin;flex:auto;min-height:0;position:relative;overflow:hidden auto;-webkit-mask-image:linear-gradient(#0000 0,#000 13% 87%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 13% 87%,#0000 100%);container-type:size}.sentence-viewport.is-explaining{overscroll-behavior:none;overflow-y:hidden;-webkit-mask-image:none;mask-image:none}.reader-sentence{opacity:.42;filter:blur(.12px);visibility:visible;will-change:opacity, transform;border-top:1px solid #ffffff0e;grid-template-columns:76px 58px 26px minmax(0,1fr);min-height:148px;padding:23px 0 30px;transition:opacity .68s cubic-bezier(.22,1,.36,1),filter .68s cubic-bezier(.22,1,.36,1),border-color .68s,transform .68s cubic-bezier(.22,1,.36,1),visibility linear;display:grid;position:relative;transform:translateY(0)scale(1)}.sentence-list.is-explaining .reader-sentence:not(.is-explained){opacity:0;pointer-events:none;visibility:hidden;transition:opacity .3s cubic-bezier(.4,0,1,1),visibility 0s linear .3s}.sentence-list.is-explaining .reader-sentence.is-explained{opacity:1;filter:none;border-color:#a981f342}.reader-sentence:first-child{border-top:0}.reader-sentence.is-active{opacity:1;filter:blur()}.reader-sentence.is-complete{opacity:.28;filter:blur(.18px)}.reader-sentence.is-next{opacity:.58;filter:blur()}.sentence-explain-trigger{color:#aaa5ad;cursor:pointer;opacity:.5;background:0 0;border:0;border-radius:50%;justify-content:center;place-self:start;align-items:center;width:38px;min-width:38px;height:38px;margin-top:-5px;padding:0;transition:color .22s,opacity .22s,transform .26s cubic-bezier(.22,1,.36,1);display:inline-flex;transform:scale(.94)}.sentence-explain-trigger:hover,.sentence-explain-trigger:focus-visible{color:#a981f3;opacity:1;background:0 0;transform:scale(1.06)}.reader-sentence.is-explained .sentence-explain-trigger{color:#b7b1bb;background:0 0}.sentence-time{color:#5f5b64;font-family:var(--font-geist-mono), monospace;text-align:left;cursor:pointer;background:0 0;border:0;align-self:start;padding:4px 0;font-size:12px}.reader-sentence.is-active .sentence-time{color:#aaa4af}.sentence-rail{color:#d8c7fa;flex-direction:column;align-items:center;gap:7px;display:flex}.sentence-rail svg{opacity:0;transition:opacity .48s,transform .58s cubic-bezier(.22,1,.36,1);transform:translateY(5px)scale(.72)}.reader-sentence.is-active .sentence-rail svg{opacity:1;transform:translateY(0)scale(1)}.sentence-rail span{background:#29262d;width:1px;min-height:76px;transition:width .56s cubic-bezier(.22,1,.36,1),min-height .56s cubic-bezier(.22,1,.36,1),border-color .56s,background .56s,box-shadow .56s;display:block}.reader-sentence.is-active .sentence-rail span{background:#2c1645;border:1px solid #b186f530;border-radius:999px;width:8px;min-height:76px;box-shadow:inset 0 0 0 3px #8a55e914}.reader-sentence p{color:#8c8990;font-family:var(--font-japanese);letter-spacing:.015em;white-space:pre-wrap;cursor:pointer;align-self:center;margin:0;padding:0 0 0 10px;font-size:clamp(18px,2.05vw,27px);font-weight:620;line-height:2.05;transition:color .62s cubic-bezier(.22,1,.36,1)}.karaoke-char{border-radius:3px;transition:color .22s,background .26s,box-shadow .26s,text-shadow .26s}.reader-sentence.is-active .karaoke-char.is-sung{color:var(--paper);text-shadow:0 0 20px #f5f1e81f}.reader-sentence.is-active .karaoke-char.is-current{color:#fffdf9;background:#8a55e947;box-shadow:0 0 0 3px #8a55e924,0 0 18px #8a55e92e}.reader-sentence.is-active .karaoke-char.is-upcoming{color:#85818a}.reader-sentence.is-explained p{color:#d9d3df}.sentence-explanation{width:calc(100% - 76px);height:var(--explanation-panel-height,520px);overscroll-behavior:contain;scrollbar-color:#4b4055 transparent;scrollbar-width:thin;touch-action:pan-y;background:0 0;border-top:1px solid #a981f34d;min-height:280px;margin:0 0 54px 76px;padding:30px 0 28px;animation:.54s cubic-bezier(.22,1,.36,1) .52s both explanation-reveal;position:relative;overflow:hidden auto}.sentence-explanation:before{content:none}.sentence-explanation:focus-visible{outline-offset:4px;outline:1px solid #a981f37a}@keyframes explanation-reveal{0%{opacity:0;transform:translateY(28px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.explanation-header,.explanation-footer{justify-content:space-between;align-items:center;gap:24px;display:flex}.explanation-header h2{color:#f0eaf4;letter-spacing:-.025em;margin:9px 0 0;font-size:24px;font-weight:620}.explanation-kicker,.explanation-table-title,.explanation-analysis-table th,.explanation-vocabulary-table th{color:#a985e8;font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:680}.explanation-kicker{align-items:center;gap:7px;display:inline-flex}.explanation-table-wrap,.explanation-vocabulary-table-wrap{border-top:1px solid #ffffff1c;margin-top:28px;overflow:hidden}.explanation-vocabulary-table-wrap{padding-top:24px}.explanation-table-title{margin-bottom:13px;display:block}.explanation-analysis-table,.explanation-vocabulary-table{border-collapse:collapse;table-layout:fixed;width:100%}.explanation-analysis-table th,.explanation-analysis-table td,.explanation-vocabulary-table th,.explanation-vocabulary-table td{text-align:left;vertical-align:top;border-bottom:1px solid #ffffff13;padding:17px 16px}.explanation-analysis-table th{width:180px;padding-left:0}.explanation-analysis-table td{color:#c5beca;padding-right:0;font-size:15.5px;line-height:1.65}.explanation-vocabulary-table th:first-child,.explanation-vocabulary-table td:first-child{width:22%;padding-left:0}.explanation-vocabulary-table th:nth-child(2),.explanation-vocabulary-table td:nth-child(2){width:32%}.explanation-vocabulary-table th:last-child,.explanation-vocabulary-table td:last-child{padding-right:0}.explanation-vocabulary-table td{color:#98929d;font-size:13.5px;line-height:1.55}.explanation-vocabulary-table strong{color:#eee8f2;font-family:var(--font-noto-sans-jp), var(--font-japanese);font-size:18px;font-weight:650}.explanation-loading,.explanation-error{color:#8f8994;border-top:1px solid #ffffff1a;border-bottom:1px solid #ffffff13;align-items:center;gap:11px;min-height:118px;margin-top:28px;font-size:14px;display:flex}.explanation-loading svg{color:#9c78df}.explanation-error{color:#ba9290;justify-content:space-between}.explanation-error button{color:#b99be8;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #a981f373;flex:none;padding:5px 0;font-size:11px}.explanation-footer{margin-top:18px}.explanation-footer button{color:#bca9da;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #a981f361;border-radius:0;align-items:center;gap:8px;min-height:38px;padding:0 15px;font-size:12.5px;font-weight:720;display:inline-flex}.explanation-footer small{color:#6f6874;font-size:11px}.player-bar{z-index:30;border-top:1px solid var(--line-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#121015f0;grid-template-columns:minmax(180px,250px) auto minmax(240px,1fr) auto;align-items:center;gap:24px;min-height:88px;padding:0 28px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -16px 45px #00000047}.player-meta{align-items:center;gap:12px;min-width:0;display:flex}.cover-mini{flex:none;width:38px;height:43px}.player-meta>div{flex-direction:column;min-width:0;display:flex}.player-meta strong,.player-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-meta strong{color:#d7d2da;font-size:13px;font-weight:650}.player-meta span{color:#66616c;margin-top:4px;font-size:11px}.transport,.player-options,.progress-wrap{align-items:center;display:flex}.transport{gap:7px}.icon-button,.text-button,.speed-button{color:#8f8994;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-button{border-radius:50%;width:36px;height:36px}.icon-button:hover,.text-button:hover,.speed-button:hover{color:var(--paper);background:#ffffff0e}.play-button{color:#fffaff;cursor:pointer;background:linear-gradient(145deg,#8758da,#6539b5);border:1px solid #b892f780;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 8px 25px #0000004d}.progress-wrap{gap:12px;min-width:0}.progress-wrap time{color:#78727d;font-family:var(--font-geist-mono), monospace;font-size:11px}.progress-slider{--progress:0%;appearance:none;background:linear-gradient(to right, var(--violet) var(--progress), #3a363f var(--progress));cursor:pointer;border-radius:999px;width:100%;height:3px}.progress-slider::-webkit-slider-thumb{appearance:none;width:11px;height:11px;box-shadow:0 0 0 2px var(--violet);background:#c3a5f8;border:2px solid #1a151e;border-radius:50%}.player-options{gap:5px}.text-button,.speed-button{border-radius:8px;gap:6px;min-height:34px;padding:0 9px;font-size:12px}.text-button.is-on{color:#b99bf0;background:var(--violet-soft)}.mobile-menu,.close-sidebar{display:none}.dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#030204c2;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.import-dialog{border:1px solid var(--line-strong);scrollbar-color:#4a4351 transparent;scrollbar-width:thin;background:#141217;border-radius:22px;width:min(840px,100%);max-height:calc(100svh - 48px);padding:30px;overflow-y:auto;box-shadow:0 30px 90px #00000094}.book-dialog{width:min(720px,100%)}.book-drop-field{margin-top:26px}.metadata-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.metadata-grid label,.chapter-title-field{flex-direction:column;gap:7px;display:flex}.metadata-grid label span,.chapter-title-field span{color:#827b87;letter-spacing:.05em;text-transform:uppercase;font-size:9px;font-weight:660}.metadata-grid input,.chapter-title-field input{border:1px solid var(--line);color:#d7d1db;background:#0e0c10;border-radius:10px;outline:0;width:100%;min-height:43px;padding:0 13px;font-size:12px}.metadata-grid input:focus,.chapter-title-field input:focus{border-color:#8a55e980}.chapter-title-field{margin-top:22px}.cost-estimate{color:#9a7dcc;background:#8a55e90b;border:1px solid #8a55e92e;border-radius:11px;align-items:center;gap:11px;margin-top:12px;padding:11px 13px;display:flex}.cost-estimate>span{flex-direction:column;display:flex}.cost-estimate strong{color:#c4b5dd;font-size:10px;font-weight:650}.cost-estimate small{color:#756d7e;margin-top:3px;font-size:9px}.dialog-header{justify-content:space-between;gap:24px;display:flex}.dialog-header h2{font-size:26px}.dialog-header p{color:#837e88;max-width:560px;margin:8px 0 0;font-size:12px;line-height:1.55}.steps-row{grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:12px;margin:28px 0 22px;display:grid}.steps-row span{color:#5d5862;letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:7px;font-size:10px;font-weight:660;display:inline-flex}.steps-row span.is-current{color:#c7b2ee}.steps-row span.is-done{color:#9a79d6}.steps-row i{background:var(--line);height:1px}.import-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.drop-field,.key-field{border:1px solid var(--line);background:#ffffff05;border-radius:13px;align-items:center;gap:12px;display:flex}.provider-managed-note{color:#9e7bdb;background:#8a55e90b;border:1px solid #8a55e933;border-radius:13px;align-items:center;gap:12px;margin-top:12px;padding:13px 15px;display:flex}.provider-managed-note>span{flex-direction:column;display:flex}.provider-managed-note strong{color:#c9b7e6;font-size:12.5px}.provider-managed-note small{color:#786f80;margin-top:4px;font-size:11px;line-height:1.45}.drop-field{cursor:pointer;min-width:0;min-height:82px;padding:14px}.drop-field:hover,.drop-field.has-file{background:#8a55e90b;border-color:#8a55e959}.drop-field input{opacity:0;width:1px;height:1px;position:absolute}.drop-field>span:nth-child(3),.key-field>span{flex-direction:column;flex:1;min-width:0;display:flex}.drop-icon{background:var(--violet-soft);color:#b999f1;border-radius:10px;flex:none;place-items:center;width:39px;height:39px;display:grid}.drop-field strong,.key-field strong,.text-editor strong{color:#cdc7d1;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-style:normal;font-weight:650;overflow:hidden}.drop-field small,.key-field small,.text-editor small{color:#716c76;margin-top:5px;font-size:11px;line-height:1.4}.drop-field>svg{color:#625c68;flex:none}.text-editor{border:1px solid var(--line);background:#00000024;border-radius:13px;flex-direction:column;margin-top:12px;padding:15px;display:flex;position:relative}.text-editor>span{flex-direction:column;margin-bottom:12px;display:flex}.text-editor textarea{resize:vertical;color:#d8d3dc;width:100%;min-height:142px;font-family:var(--font-japanese);background:0 0;border:0;outline:0;font-size:14px;line-height:1.75}.text-editor textarea::placeholder,.key-field input::placeholder{color:#4e4953}.text-editor em{color:#5c5661;font-family:var(--font-geist-mono), monospace;align-self:flex-end;font-size:9px;font-style:normal}.key-field{margin-top:12px;padding:13px 15px}.key-field>svg{color:#a081da;flex:none}.key-field input{border:1px solid var(--line);color:#d8d2dd;width:min(250px,42%);min-height:38px;font-family:var(--font-geist-mono), monospace;background:#0d0c0f;border-radius:9px;outline:0;padding:0 12px;font-size:11px}.key-field input:focus{border-color:#8a55e98a}.form-error{color:#f6a297;background:#fa6f5e13;border:1px solid #fa6f5e3d;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:14px;margin-top:12px;padding:11px 13px;font-size:11px;line-height:1.5;display:flex}.form-error a{color:#ffc1b8;white-space:nowrap;flex:none;align-items:center;gap:6px;font-weight:700;text-decoration:none;display:inline-flex}.form-error a:hover{color:#ffe3de;text-decoration:underline}.form-error a:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid #ffc1b8b3}.dialog-footer{justify-content:space-between;align-items:center;gap:20px;margin-top:20px;display:flex}.dialog-footer .align-button{white-space:nowrap;flex:none}.dialog-footer p{color:#6f6974;align-items:center;gap:8px;margin:0;font-size:11px;display:flex}.dialog-footer p svg{color:#966fdd}.align-button{min-height:45px;padding:0 20px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px) and (width>=681px){.library-page{padding:48px 36px 76px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.book-page{grid-template-columns:210px minmax(0,1fr);gap:34px;padding:42px 34px 76px}.book-cover-large{width:178px}.chapter-row{grid-template-columns:38px minmax(0,1fr)}.chapter-actions{grid-column:2;justify-content:flex-start}}@media (width<=980px){.topbar{grid-template-columns:auto 1fr auto;gap:12px;padding:0 18px}.topbar.collection-topbar{grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr)}.mobile-menu{display:inline-flex}.brand{justify-self:start}.brand-mark,.book-heading{display:none}.book-page{grid-template-columns:220px minmax(0,1fr);gap:34px;padding:40px 34px 70px}.chapter-row{grid-template-columns:38px minmax(0,1fr)}.chapter-actions{grid-column:2;justify-content:flex-start}.reading-layout{grid-template-columns:1fr}.timeline-panel{z-index:50;overscroll-behavior:contain;background:#100f12;width:240px;padding-top:72px;transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:20px 0 60px #00000073}.timeline-panel.is-open{transform:translate(0)}.close-sidebar{display:inline-flex;position:absolute;top:18px;right:16px}.reader-canvas{padding-left:34px;padding-right:34px}.player-bar{grid-template-columns:minmax(150px,220px) auto minmax(180px,1fr);gap:14px;padding:0 16px}.player-options{display:none}}@media (width<=680px){button,input,textarea{touch-action:manipulation}.topbar{min-height:64px;padding-top:env(safe-area-inset-top);padding-right:max(12px, env(safe-area-inset-right));padding-left:max(12px, env(safe-area-inset-left))}.topbar.collection-topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px}.collection-heading{display:none}.brand{letter-spacing:.1em;gap:8px;font-size:12px}.topbar-leading{gap:6px}.topbar-actions{gap:8px}.account-button{background:linear-gradient(145deg,#8a55e926,#ffffff06);border-color:#a981f342;border-radius:12px;width:42px;min-width:42px;height:42px;padding:5px}.account-button svg{display:none}.account-button img,.account-button>span{width:30px;height:30px}.topbar .import-button{color:#decdf9;background:linear-gradient(145deg,#8a55e94d,#5d32a757);border-color:#a981f357;border-radius:12px;flex:0 0 42px;width:42px;min-width:42px;height:42px;min-height:42px;padding:0;box-shadow:inset 0 1px #ffffff17}.topbar .import-button span{display:none}.topbar .import-button svg{width:19px;height:19px}.reading-layout,.library-page,.book-page{height:calc(100svh - 64px)}.library-page{padding:30px max(16px, env(safe-area-inset-right)) max(72px, calc(44px + env(safe-area-inset-bottom))) max(16px, env(safe-area-inset-left))}.library-hero{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:30px}.library-hero h1{max-width:330px;font-size:clamp(34px,10.5vw,43px)}.library-hero p{font-size:14px}.library-summary{justify-content:center;width:100%}.book-grid{grid-template-columns:1fr}.book-card,.new-book-card{min-height:0}.book-card-main{grid-template-columns:76px minmax(0,1fr);min-height:154px;padding:16px}.book-card-copy>small{font-size:11px}.book-card-copy>strong{font-size:20px}.book-card-copy>span{font-size:13px}.book-cover{width:76px}.book-card-actions{min-height:52px}.new-book-card{min-height:148px}.book-page{padding:24px max(16px, env(safe-area-inset-right)) max(72px, calc(44px + env(safe-area-inset-bottom))) max(16px, env(safe-area-inset-left));display:block}.book-profile{grid-template-columns:88px minmax(0,1fr);column-gap:15px;margin-bottom:32px;display:grid;position:static}.book-cover-large{grid-row:span 7;width:88px;margin:0}.book-cover-large i{font-size:42px}.book-profile h1{margin-top:8px;font-size:21px}.profile-progress,.danger-text-button{grid-column:2}.catalog-heading{flex-direction:column;align-items:flex-start}.chapter-row{grid-template-columns:32px minmax(0,1fr);gap:12px;min-height:132px;padding:18px 14px}.chapter-number{font-size:15px}.chapter-status{font-size:11.5px}.chapter-row-main h3{margin-top:8px;font-size:20px}.chapter-row-main p,.chapter-primary,.chapter-secondary{font-size:13px}.chapter-actions{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto auto;padding-left:44px;display:grid}.chapter-actions button{min-height:44px}.metadata-grid{grid-template-columns:1fr}.reader-canvas{height:calc(100svh - 64px);max-height:calc(100svh - 64px);padding:22px max(14px, env(safe-area-inset-right)) calc(108px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.reader-heading{align-items:flex-start;margin-bottom:8px}.reader-heading h1{font-size:clamp(22px,6.4vw,28px)}.reader-status{display:none}.reader-sentence{grid-template-rows:auto minmax(72px,auto);grid-template-columns:42px 18px minmax(0,1fr);min-height:132px;padding:18px 0 26px}.sentence-explain-trigger{grid-area:1/1/3;width:40px;min-width:40px;height:40px;padding:0}.sentence-time{grid-area:1/3;justify-self:start;min-height:30px;margin:0 0 4px;font-size:11px}.sentence-rail{grid-area:2/2}.sentence-list{padding:50cqh 0}.reader-sentence p{grid-area:2/3;padding-left:8px;font-size:clamp(19px,5.3vw,22px);line-height:1.85}.sentence-rail svg{width:12px}.reader-sentence.is-active .sentence-rail span{width:6px}.sentence-explanation{width:100%;height:var(--explanation-panel-height,420px);min-height:220px;padding:22px 2px calc(20px + env(safe-area-inset-bottom));margin-left:0}.explanation-header h2{font-size:21px}.explanation-kicker,.explanation-table-title,.explanation-analysis-table th,.explanation-vocabulary-table th{font-size:10.5px}.explanation-analysis-table th{width:104px}.explanation-analysis-table th,.explanation-analysis-table td,.explanation-vocabulary-table th,.explanation-vocabulary-table td{padding:13px 8px}.explanation-analysis-table td{font-size:15px}.explanation-vocabulary-table td{font-size:13.5px}.explanation-footer{flex-direction:column;align-items:flex-start}.player-bar{min-height:calc(94px + env(safe-area-inset-bottom));padding:10px max(12px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);gap:4px 12px}.player-meta{display:none}.transport{grid-row:span 2}.play-button{width:44px;height:44px}.progress-wrap{grid-column:2}.progress-wrap time{font-size:8px}.dialog-backdrop{align-items:end;padding:0}.import-dialog{max-height:calc(96svh - env(safe-area-inset-top));padding:24px max(18px, env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));border-radius:22px 22px 0 0}.dialog-header h2{font-size:23px}.dialog-header p{font-size:13px}.steps-row{gap:7px}.steps-row span{font-size:9.5px}.import-grid{grid-template-columns:1fr}.provider-managed-note{align-items:flex-start}.form-error{flex-direction:column}.dialog-footer{flex-direction:column;align-items:stretch}.dialog-footer p{justify-content:center}}@media (width<=460px){.library-summary{grid-template-columns:auto auto 1px auto auto;gap:6px;padding:15px 14px}.book-profile .eyebrow,.book-profile>p:last-of-type{display:none}.chapter-actions{grid-template-columns:1fr 44px}.chapter-actions .chapter-secondary{grid-column:1}.chapter-actions .danger-action{grid-column:2}.explanation-analysis-table,.explanation-analysis-table tbody,.explanation-analysis-table tr,.explanation-analysis-table th,.explanation-analysis-table td{width:100%;display:block}.explanation-analysis-table th{border:0;padding:16px 0 4px}.explanation-analysis-table td{padding:4px 0 16px}.explanation-vocabulary-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.explanation-vocabulary-table,.explanation-vocabulary-table tbody,.explanation-vocabulary-table tr,.explanation-vocabulary-table td{display:block;width:100%!important}.explanation-vocabulary-table tr{border-bottom:1px solid #ffffff13;padding:14px 0}.explanation-vocabulary-table td{border:0;padding:3px 0}.transport .icon-button{width:32px}.progress-wrap{gap:7px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
