:root{--font-ui:system-ui, Roboto, "Noto Sans CJK SC", "Noto Sans SC", "Noto Sans JP", sans-serif;--font-serif:"Noto Serif", "Noto Serif CJK SC", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-2xl:2.25rem;--leading-tight:1.2;--leading-normal:1.5;--leading-reading:1.75;--weight-regular:400;--weight-medium:500;--weight-bold:650;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--gutter:var(--space-5);--touch-target:48px;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--radius-pill:999px;--ease-out:cubic-bezier(.2, .8, .2, 1);--duration-fast:.12s;--duration-normal:.22s;--inset-top:var(--safe-area-inset-top,env(safe-area-inset-top,0px));--inset-bottom:var(--safe-area-inset-bottom,env(safe-area-inset-bottom,0px));--inset-left:var(--safe-area-inset-left,env(safe-area-inset-left,0px));--inset-right:var(--safe-area-inset-right,env(safe-area-inset-right,0px))}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fbfaf7;--color-surface:#fff;--color-surface-raised:#f3f1ec;--color-text:#1d1b18;--color-text-muted:#6b665e;--color-text-faint:#a29d94;--color-border:#e7e3db;--color-accent:#b84a33;--color-on-accent:#fff;--color-accent-soft:#f6e3dc;--color-highlight:#f4dcc8;--color-ink:#22304a;--color-ok:#3f8f5a;--color-scrim:#00000052}[data-theme=sepia]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f4ecd8;--color-surface:#faf4e4;--color-surface-raised:#ece2c9;--color-text:#3b2f20;--color-text-muted:#7a6a55;--color-text-faint:#a8977c;--color-border:#e0d3b6;--color-accent:#a9442e;--color-on-accent:#fffaf0;--color-accent-soft:#eed6c3;--color-highlight:#ecd2a8;--color-ink:#3b2f20;--color-ok:#4f7f45;--color-scrim:#281c0a52}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#131416;--color-surface:#1c1d21;--color-surface-raised:#25262b;--color-text:#e8e6e1;--color-text-muted:#9a978f;--color-text-faint:#66645f;--color-border:#2c2d32;--color-accent:#e0785f;--color-on-accent:#1a1210;--color-accent-soft:#3a2420;--color-highlight:#4a3426;--color-ink:#c9ccd6;--color-ok:#6fbf86;--color-scrim:#0000008f}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none;transition:background-color var(--duration-normal) var(--ease-out), color var(--duration-normal) var(--ease-out)}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}h1,h2,p,ul{margin:0}.link-button{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.icon-button{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-text);transition:background-color var(--duration-fast) var(--ease-out);place-items:center;display:grid}.icon-button:active{background:var(--color-surface-raised)}.icon-button:disabled{opacity:.4}.button-primary{min-height:var(--touch-target);padding:0 var(--space-6);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);font-weight:var(--weight-medium);letter-spacing:.02em;transition:transform var(--duration-fast) var(--ease-out)}.button-primary:active{transform:scale(.97)}.toast{z-index:30;left:var(--gutter);right:var(--gutter);bottom:calc(var(--inset-bottom) + var(--space-6));width:fit-content;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);background:var(--color-text);color:var(--color-bg);font-size:var(--text-sm);text-align:center;opacity:0;transform:translateY(var(--space-2));pointer-events:none;transition:opacity var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);margin:0 auto;position:fixed}.toast--visible{opacity:1;transform:none}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:var(--radius-pill);width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}.sheet-actions{padding:0 var(--space-3) var(--space-3);flex-direction:column;display:flex}.sheet-action{min-height:52px;padding:0 var(--space-4);border-radius:var(--radius-md);text-align:start}.sheet-action:active{background:var(--color-surface-raised)}.sheet-action--danger{color:var(--color-accent);font-weight:var(--weight-medium)}.sheet{z-index:20;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet__scrim{background:var(--color-scrim);animation:fade-in var(--duration-normal) var(--ease-out);transition:opacity .2s var(--ease-out);position:absolute;inset:0}.sheet__panel{max-height:min(78%, calc(100% - var(--inset-top) - var(--space-7)));padding:0 0 var(--inset-bottom);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);color:var(--color-text);animation:sheet-slide-in .28s var(--ease-out);transition:transform .2s var(--ease-out);flex-direction:column;display:flex;position:relative;box-shadow:0 -8px 32px #0000001f}.sheet--closing .sheet__scrim{opacity:0}.sheet--closing .sheet__panel{transform:translateY(100%)}.sheet__handle{width:36px;height:4px;margin:var(--space-2) auto var(--space-1);border-radius:var(--radius-pill);background:var(--color-border);flex:none}.sheet__title{padding:var(--space-2) var(--gutter) var(--space-3);font-size:var(--text-md);font-weight:var(--weight-medium);line-height:var(--leading-tight);flex:none}.sheet__body{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}@keyframes sheet-slide-in{0%{transform:translateY(100%)}}.sheet--modeless{pointer-events:none}.sheet--modeless .sheet__panel{pointer-events:auto}.sheet__grip{width:100%;padding:var(--space-1) 0;flex:none;display:block}.sheet__grip .sheet__handle{margin:var(--space-1) auto}.sheet__panel--peek,.sheet__panel--half,.sheet__panel--expanded{transition:transform .2s var(--ease-out), max-height var(--duration-normal) var(--ease-out)}.sheet__panel--peek .sheet__body{overflow-y:hidden}.sheet__panel.sheet__panel--half{max-height:min(62%, calc(100% - var(--inset-top) - var(--space-7)))}.sheet__panel.sheet__panel--expanded{max-height:min(90%, calc(100% - var(--inset-top) - var(--space-4)))}.sheet--lowered .sheet__panel{transform:translateY(100%)}.cover{aspect-ratio:2/3;border-radius:3px var(--radius-sm) var(--radius-sm) 3px;background:var(--color-surface-raised);display:block;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000001f,0 6px 16px -6px #0000003d;container-type:inline-size}.cover:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000002e,#ffffff0f 60%,#0000);width:6%;position:absolute;inset:0 auto 0 0}.cover__image{object-fit:cover;width:100%;height:100%;display:block}.cover__progress{background:var(--color-accent);z-index:1;height:3px;position:absolute;bottom:0;left:0}.cover--generated{background:var(--cover-bg);color:var(--cover-fg);font-family:var(--font-serif)}.cover__frame{border:1px solid color-mix(in srgb, var(--cover-fg) 38%, transparent);text-align:center;flex-direction:column;justify-content:space-between;gap:6cqw;padding:12cqw 9cqw 10cqw;display:flex;position:absolute;inset:7cqw}.cover__title{-webkit-line-clamp:4;font-size:13cqw;font-weight:var(--weight-medium);overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.2;display:-webkit-box;overflow:hidden}.cover__author{opacity:.8;font-size:8cqw;line-height:1.3}.cover--vertical .cover__frame{writing-mode:vertical-rl;text-align:start;justify-content:space-between;align-items:flex-start;padding:11cqw 10cqw}.cover--vertical .cover__title{letter-spacing:.08em;max-block-size:100%;font-size:17cqw;line-height:1.1;display:block}.cover--vertical .cover__author{letter-spacing:.1em;align-self:flex-end;font-size:9cqw}.library{min-height:100%;padding:calc(var(--inset-top) + var(--space-4)) calc(var(--inset-right) + var(--gutter)) calc(var(--inset-bottom) + var(--space-5)) calc(var(--inset-left) + var(--gutter));flex-direction:column;display:flex;position:relative}.library__header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--touch-target);display:flex}.library__actions{margin-right:calc(var(--space-3) * -1)}.library__title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:.01em}.shelf{gap:var(--space-6) var(--space-4);margin:var(--space-5) 0 0;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));padding:0;list-style:none;display:grid}.shelf__item{min-width:0}.shelf__book{text-align:start;-webkit-touch-callout:none;flex-direction:column;width:100%;display:flex}.shelf__book .cover{transition:transform var(--duration-fast) var(--ease-out)}.shelf__book:active .cover{transform:scale(.96)}.shelf__title{-webkit-line-clamp:2;margin-top:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.shelf__title--muted{color:var(--color-text-muted);font-weight:var(--weight-regular)}.shelf__author{white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-xs);color:var(--color-text-muted);overflow:hidden}.cover--placeholder{box-shadow:none;border:1px dashed var(--color-border);place-items:center;display:grid}.library__empty{text-align:center;text-wrap:balance;padding-bottom:var(--space-8);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.library__art{width:132px;height:auto;margin-bottom:var(--space-6)}.library__empty-title{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:var(--leading-tight);margin-bottom:var(--space-3)}.library__empty-body{max-width:19rem;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6)}.library__actions{align-items:center;display:flex}.library__actions .icon-button{color:var(--color-text-muted)}.library__actions .icon-button:last-child{color:var(--color-text)}.about{padding:0 var(--gutter) var(--space-6);font-size:var(--text-sm);line-height:var(--leading-normal)}.about__usage{margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-raised)}.about__usage-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.about__usage-head strong{font-weight:var(--weight-medium)}.about__status{font-size:var(--text-xs);color:var(--color-text-muted)}.about__status:before{content:"";border-radius:var(--radius-pill);background:var(--color-text-faint);vertical-align:1px;width:7px;height:7px;margin-inline-end:6px;display:inline-block}.about__status--on:before{background:var(--color-ok)}.about__figures{gap:var(--space-1) var(--space-4);margin:var(--space-3) 0 0;grid-template-columns:auto 1fr;display:grid}.about__figures dt{color:var(--color-text-muted)}.about__figures dd{text-align:end;font-variant-numeric:tabular-nums;margin:0}.about__lead{margin-bottom:var(--space-3);color:var(--color-text-muted)}.about__list{margin-bottom:var(--space-5);padding:0;list-style:none}.about__credit{padding:var(--space-2) 0;flex-direction:column;display:flex}.about__credit+.about__credit{border-top:1px solid var(--color-border)}.about__credit strong{font-weight:var(--weight-medium)}.about__fine{font-size:var(--text-xs);color:var(--color-text-muted);overflow-wrap:anywhere}.about__more{margin-top:var(--space-3);padding:var(--space-2) 0;color:var(--color-accent);display:block}.about__notice{margin-top:var(--space-3);white-space:pre-wrap;color:var(--color-text-muted);font-size:10px;line-height:1.4}.listen-bar{right:var(--reader-right);bottom:var(--reader-bottom);left:var(--reader-left);z-index:1;height:40px;padding:0 var(--space-2);background:var(--color-bg);animation:fade-in var(--duration-normal) var(--ease-out);grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:absolute}.listen-bar__side{align-items:center;min-width:0;display:flex}.listen-bar__side--end{justify-content:flex-end}.listen-bar__mark{white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-xs);letter-spacing:.02em;color:var(--color-text-faint);padding-inline-start:var(--space-2);overflow:hidden}.listen-bar__chip{padding:4px var(--space-3);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-xs);font-weight:var(--weight-medium);overflow:hidden}.listen-bar__controls{align-items:center;gap:var(--space-2);display:flex}.listen-bar__button{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--color-text-muted);place-items:center;display:grid}.listen-bar__button:active{background:var(--color-surface-raised)}.listen-bar__button svg{width:22px;height:22px}.listen-bar__play{color:var(--color-accent)}.listen-bar__play--waiting svg{animation:1.2s ease-in-out infinite listen-wait}@keyframes listen-wait{50%{opacity:.35}}.listen-toast{right:calc(var(--reader-right) + var(--gutter));bottom:calc(var(--reader-bottom) + 48px);left:calc(var(--reader-left) + var(--gutter));z-index:1;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 0 0 1px var(--color-border), 0 4px 16px #0000001f;font-size:var(--text-sm);text-align:start;color:var(--color-text-muted);animation:fade-in var(--duration-normal) var(--ease-out);line-height:1.5;position:absolute}.listen-panel__save{width:100%;min-height:var(--touch-target);border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--text-sm);font-weight:var(--weight-medium)}.listen-panel__save:active{background:var(--color-border)}.listen-panel__note{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.6}.listen-panel__progress{font-size:var(--text-sm);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;display:flex}.listen-panel__track{height:4px;margin-top:var(--space-2);border-radius:var(--radius-pill);background:var(--color-border);overflow:hidden}.listen-panel__fill{background:var(--color-accent);height:100%;transition:width var(--duration-normal) var(--ease-out)}.listen-panel__stop{min-height:var(--touch-target);padding:0 var(--space-5);font-size:var(--text-sm);color:var(--color-accent);align-self:center}.chat{flex-direction:column;min-height:100%;display:flex}.chat__head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-2) 0 var(--gutter);display:flex}.chat__place{white-space:nowrap;text-overflow:ellipsis;text-align:start;min-width:0;font-size:var(--text-sm);color:var(--color-text-muted);flex:1;overflow:hidden}.chat__place:not(:disabled){color:var(--color-accent)}.chat__title{font-size:var(--text-sm);font-weight:var(--weight-medium)}.chat__head .link-button{min-height:var(--touch-target);padding:0 var(--space-3)}.chat__turns{gap:var(--space-4);padding:var(--space-2) var(--gutter) var(--space-4);flex-direction:column;flex:1;display:flex}.chat__hint{padding:var(--space-2) var(--gutter);font-size:var(--text-sm);color:var(--color-text-muted)}.chat__turns .chat__hint{padding:0}.chat__question{max-width:85%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-raised);line-height:var(--leading-normal);white-space:pre-wrap;align-self:flex-end}.chat__reply{font-size:var(--text-md);line-height:var(--leading-reading)}.chat__text{white-space:pre-wrap;overflow-wrap:anywhere}.chat__note{margin-bottom:var(--space-1);font-size:var(--text-xs);color:var(--color-text-faint)}.chat__thinking{color:var(--color-text-muted);animation:chat-pulse 1.4s var(--ease-out) infinite alternate}.chat__failed{font-size:var(--text-sm);color:var(--color-text-muted)}@keyframes chat-pulse{0%{opacity:.35}}@media (prefers-reduced-motion:reduce){.chat__thinking{animation:none}}.chat__dock{padding:var(--space-2) var(--gutter) var(--space-3);background:var(--color-surface);position:sticky;bottom:0}.chat__compose{align-items:flex-end;gap:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);display:flex}.chat__compose:focus-within{border-color:var(--color-accent)}.chat__input{min-width:0;min-height:40px;max-height:120px;padding:var(--space-2) 0;color:inherit;font:inherit;line-height:var(--leading-normal);resize:none;field-sizing:content;-webkit-user-select:text;user-select:text;background:0 0;border:0;flex:1}.chat__input:focus{outline:none}.chat__send{border-radius:var(--radius-pill);background:var(--color-accent);width:40px;height:40px;color:var(--color-on-accent);flex:none;place-items:center;display:grid}.chat__send:disabled{opacity:.35}.chat__history{margin:0;padding:0;list-style:none}.chat__history li+li{border-top:1px solid var(--color-border)}.history__row{width:100%;padding:var(--space-3) var(--gutter);text-align:start;gap:2px;display:grid}.history__row:active{background:var(--color-surface-raised)}.history__question{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.history__where,.history__when{white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-xs);color:var(--color-text-muted);overflow:hidden}.sentence{padding:var(--space-1) 0 var(--space-5)}.sentence__actions{gap:var(--space-2);margin:var(--space-4) var(--gutter) 0;grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.sentence__action{min-height:56px;padding:var(--space-2) 0;border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--text-xs);flex-direction:column;align-items:center;gap:2px;display:flex}.sentence__action:disabled{opacity:.45}.sentence__action--on{color:var(--color-accent)}.sentence__mark{color:var(--color-text-faint);font-size:10px}.sentence__translation{margin:var(--space-2) var(--gutter) 0;font-size:var(--text-sm);line-height:var(--leading-reading);color:var(--color-text-muted);animation:fade-in var(--duration-normal) var(--ease-out)}.sentence__translation--loading{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-surface-raised), var(--color-border), var(--color-surface-raised));background-size:200% 100%;width:70%;height:1.2em;animation:1.2s linear infinite shimmer}.sentence__translation--failed{color:var(--color-text-faint)}.sentence__whole{padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-raised);font-size:var(--text-xs);margin-inline-end:var(--space-2)}@keyframes shimmer{to{background-position:-200% 0}}.word{padding:var(--space-1) var(--gutter) var(--space-5)}.word__head{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.word__surface{font-family:var(--font-serif);font-size:var(--text-xl);line-height:var(--leading-tight)}.word__reading{font-size:var(--text-md);color:var(--color-text-muted)}.word__form{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.word__base{font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-text)}.word__base:before{content:"→ ";font-family:var(--font-ui);color:var(--color-text-faint)}.word__tag{padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-raised);font-size:var(--text-xs);line-height:1.5}.word__warning{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-accent-soft);font-size:var(--text-sm);line-height:var(--leading-normal)}.word__warning strong{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-accent);display:block}.entry{margin-top:var(--space-3)}.entry+.entry{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.entry__head{align-items:baseline;gap:var(--space-1) var(--space-2);text-align:start;flex-wrap:wrap;width:100%;display:flex}.entry__head:disabled{opacity:1;cursor:default}.entry__headword{font-family:var(--font-serif);font-size:var(--text-lg);line-height:var(--leading-tight)}.entry__reading{font-size:var(--text-sm);color:var(--color-text-muted)}.entry__extra{font-size:var(--text-sm);color:var(--color-text-faint)}.entry__senses{counter-reset:sense;margin:0;padding:0;list-style:none}.sense{margin-top:var(--space-2);font-size:var(--text-md);line-height:var(--leading-normal);padding-inline-start:1.5em;position:relative}.sense:before{counter-increment:sense;content:counter(sense);inset-inline-start:0;font-size:var(--text-xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums;position:absolute;top:.15em}.entry__senses--folded .sense{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-muted);overflow:hidden}.entry__senses--folded .sense__tags,.entry__senses--folded .sense__note{display:none}.sense__tags{font-size:var(--text-xs);color:var(--color-accent);display:block}.sense__note{font-size:var(--text-sm);color:var(--color-text-muted);display:block}.entry__more{margin-top:var(--space-1);padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-accent)}.entry__chinese{margin-top:var(--space-2);font-size:var(--text-md);line-height:var(--leading-normal);animation:fade-in var(--duration-normal) var(--ease-out)}.pitch{align-items:baseline;gap:.35em;display:inline-flex}.pitch__mora{padding-top:.2em;display:inline-block;position:relative}.pitch__mora--high:before{content:"";top:.05em;border-top:1.5px solid var(--color-accent);position:absolute;inset-inline:0}.pitch__mora--fall:after{content:"";top:.05em;border-inline-end:1.5px solid var(--color-accent);height:.5em;position:absolute;inset-inline-end:0}.pitch__mora--level:before{inset-inline-end:-.4em}.pitch__number{font-size:var(--text-xs);color:var(--color-text-faint)}.entry__level{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-raised);font-size:var(--text-xs);color:var(--color-text-muted);align-self:center;line-height:1.6}.entry__related{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:var(--leading-normal);padding-inline-start:1.5em}.entry__related div{gap:var(--space-2);display:flex}.entry__related dt{color:var(--color-accent);flex:none}.entry__related dd{margin:0}.word__label{margin:0 0 var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-faint)}.entry__examples,.word__phrases{margin-top:var(--space-3)}.word__phrases{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.example,.phrase{margin:var(--space-2) 0 0;line-height:var(--leading-normal)}.example__text,.phrase__text{font-size:var(--text-md);display:block}.phrase__text{font-family:var(--font-serif)}.example__translation,.phrase__meaning{font-size:var(--text-sm);color:var(--color-text-muted);display:block}.word__fold{margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.word__fold-button{padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--color-accent)}.word__fold-button:after{content:" ›"}.word__fold-button[aria-expanded=true]:after{content:" ˅"}.reader{z-index:10;background:var(--color-bg);color:var(--color-text);transition:background-color var(--duration-normal) var(--ease-out);position:fixed;top:0;left:0;right:0;overflow:hidden}.reader__page{top:var(--reader-top);right:var(--reader-right);bottom:var(--reader-bottom);left:var(--reader-left);position:absolute}.reader__page foliate-view{width:100%;height:100%;display:block}.reader__page foliate-view::part(head),.reader__page foliate-view::part(foot){font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.02em;color:var(--color-text-faint);opacity:1}.reader__status{position:absolute;top:50%;left:50%;translate:-50% -50%}.reader__status.spinner{animation:.8s linear infinite spin,.2s .4s both fade-in}.reader__failed{align-items:center;gap:var(--space-5);width:calc(100% - var(--gutter) * 2);text-align:center;color:var(--color-text-muted);flex-direction:column;display:flex}.reader-bar{z-index:1;background:var(--color-surface);box-shadow:0 0 0 1px var(--color-border);transition:transform var(--duration-normal) var(--ease-out), visibility 0s linear var(--duration-normal);visibility:hidden;position:absolute;left:0;right:0}.reader--menu .reader-bar{visibility:visible;transition:transform var(--duration-normal) var(--ease-out), visibility 0s;transform:none}.reader-bar--top{align-items:center;gap:var(--space-1);padding:calc(var(--reader-top) + var(--space-1)) var(--space-4) var(--space-1) var(--space-2);display:flex;top:0;transform:translateY(-100%)}.reader-bar__title{white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-serif);font-size:var(--text-md);font-weight:var(--weight-medium);overflow:hidden}.reader-bar--bottom{padding:var(--space-4) var(--gutter) calc(var(--reader-bottom) + var(--space-2));bottom:0;transform:translateY(100%)}.reader-progress{align-items:baseline;gap:var(--space-4);font-size:var(--text-sm);display:flex}.reader-progress__chapter{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.reader-progress__percent{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.reader-bar__actions{margin:var(--space-1) calc(var(--gutter) * -1) 0;justify-content:space-around;display:flex}.reader-action{min-width:84px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;align-items:center;gap:2px;display:flex}.reader-action svg,.reader-action__aa{color:var(--color-text)}.reader-action__aa{height:24px;font-family:var(--font-serif);letter-spacing:-.02em;font-size:19px;line-height:24px}.reader-action:active{background:var(--color-surface-raised)}.slider{--track:4px;--thumb:20px;width:100%;height:32px;margin:var(--space-1) 0;appearance:none;background:0 0;display:block}.slider::-webkit-slider-runnable-track{height:var(--track);border-radius:var(--radius-pill);background:linear-gradient(to right, var(--color-accent) var(--fill), var(--color-border) var(--fill))}.slider::-webkit-slider-thumb{width:var(--thumb);height:var(--thumb);margin-top:calc((var(--track) - var(--thumb)) / 2);border-radius:var(--radius-pill);background:var(--color-accent);box-shadow:0 0 0 3px var(--color-surface), 0 1px 6px 3px #0000002e;appearance:none}.contents{padding:0 0 var(--space-3);margin:0;list-style:none}.contents__item{width:100%;min-height:48px;padding:var(--space-3) var(--gutter);text-align:start;font-size:var(--text-md);line-height:1.4;display:block}.contents__item:active{background:var(--color-surface-raised)}.contents__item--current{color:var(--color-accent);font-weight:var(--weight-medium)}.appearance{gap:var(--space-5);padding:var(--space-2) var(--gutter) var(--space-5);flex-direction:column;display:flex}.appearance__label{margin:0 0 var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.04em;color:var(--color-text-muted)}.theme-options{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.theme-option{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);flex-direction:column;display:flex}.theme-option__swatch{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);width:100%;height:52px;color:var(--color-text);font-family:var(--font-serif);font-size:var(--text-lg);transition:box-shadow var(--duration-fast) var(--ease-out);place-items:center;display:grid}.theme-option[aria-checked=true]{color:var(--color-text)}.theme-option[aria-checked=true] .theme-option__swatch{box-shadow:0 0 0 2px var(--color-accent);border-color:#0000}.stepper{align-items:center;gap:var(--space-3);display:flex}.stepper__button{width:56px;height:var(--touch-target);border-radius:var(--radius-md);background:var(--color-surface-raised);font-family:var(--font-serif);place-items:center;line-height:1;display:grid}.stepper__button--small{font-size:15px}.stepper__button--large{font-size:24px}.stepper__button:disabled{opacity:.35}.stepper__button:active:not(:disabled){background:var(--color-border)}.stepper__dots{padding:0 var(--space-1);flex:1;justify-content:space-between;align-items:center;display:flex}.stepper__dot{border-radius:var(--radius-pill);background:var(--color-border);width:6px;height:6px}.stepper__dot--on{background:var(--color-accent)}.segmented{border-radius:var(--radius-md);background:var(--color-surface-raised);grid-template-columns:1fr 1fr;padding:3px;display:grid}.segmented__option{border-radius:calc(var(--radius-md) - 3px);min-height:42px;font-size:var(--text-sm);color:var(--color-text-muted);transition:background-color var(--duration-fast) var(--ease-out)}.segmented__option[aria-checked=true]{background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-medium);box-shadow:0 1px 3px #0000001f}.reader-note{padding:0 var(--gutter) var(--space-6);font-family:var(--font-serif);-webkit-user-select:text;user-select:text;font-size:17px;line-height:1.75}.reader__stage{transition:transform var(--duration-normal) var(--ease-out);position:absolute;inset:0}.selection-handle{z-index:2;touch-action:none;width:44px;height:44px;position:absolute}.selection-handle--start{translate:-100%}.selection-handle__knob{background:var(--color-accent);width:20px;height:20px;position:absolute;top:0;box-shadow:0 1px 3px #00000040}.selection-handle--start .selection-handle__knob{border-radius:50% 0 50% 50%;right:0}.selection-handle--end .selection-handle__knob{border-radius:0 50% 50%;left:0}.sheet__panel--word{max-height:min(48%, calc(100% - var(--inset-top) - var(--space-7)))}.sheet__panel--sentence{max-height:min(40%, calc(100% - var(--inset-top) - var(--space-7)))}.reader-sheet-loading{margin:var(--space-4) auto var(--space-6)}.reader-sheet-message{padding:var(--space-2) var(--gutter) var(--space-6);color:var(--color-text-muted)}.sheet__panel--chat.sheet__panel--expanded{height:min(90%, calc(100% - var(--inset-top) - var(--space-4)))}.access-page{max-width:36rem;padding:max(32px, env(safe-area-inset-top)) 24px 48px;overflow-wrap:anywhere;margin:auto;line-height:1.65}.access-page h1{font-size:1.6rem;line-height:1.3}.access-page p{margin:12px 0}.access-page input{-webkit-user-select:text;user-select:text}.access-page label{margin:16px 0 8px;display:block}.access-page input{box-sizing:border-box;width:100%;font:inherit;color:inherit;background:0 0;border:1px solid #aaa;border-radius:8px;margin:6px 0;padding:10px;font-size:16px;display:block}.access-page button,.access-alert button{font:inherit;cursor:pointer;border:1px solid #888;border-radius:8px;padding:10px 16px}.friend-row{border-top:1px solid #aaa;margin-top:24px;padding:24px 0}.access-alert{z-index:10000;bottom:max(16px, env(safe-area-inset-bottom));color:#412b18;background:#fff7e7;border:1px solid #b89f7c;border-radius:12px;max-width:36rem;margin:auto;padding:16px;position:fixed;left:12px;right:12px;box-shadow:0 3px 20px #0003}.access-alert button{margin:8px 0 0 8px}.owner-link{z-index:5;bottom:max(12px, env(safe-area-inset-bottom));font-size:12px;position:fixed;left:16px}
