@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-latin-wght-normal.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/source-serif-4-latin-ext-wght-normal.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}*{box-sizing:border-box}html{scrollbar-gutter:stable}html[data-drawer=open]{overflow:hidden}:root{--paper-100:#faf7ef;--paper-200:#f5f2ea;--paper-250:#f0efe6;--paper-300:#ece7dc;--paper-400:#e4dfd2;--paper-500:#ddd6c7;--ink-900:#1c1a17;--ink-700:#4d463e;--ink-500:#6f675d;--ink-400:#a09788;--moss-600:#3f5c46;--moss-700:#2c4132;--moss-300:#8fae94;--moss-200:#a9c3ad;--clay-600:#8f2f24;--clay-400:#d98b7f;--night-900:#14120f;--night-800:#1a1815;--night-700:#211f1a;--night-600:#2a2721;--night-550:#2f2c26;--night-500:#35322b;--night-400:#4a4740;--night-300:#6f695d;--bone-100:#e8e3d7;--bone-200:#c9c2b4;--bone-300:#9c948a;--bone-400:#7d766c;--surface-page:var(--paper-100);--surface-sunken:var(--paper-200);--surface-cover:var(--paper-300);--surface-raised:var(--paper-250);--line-hair:var(--paper-400);--line-firm:var(--paper-500);--line-actionable:var(--paper-500);--line-track:var(--paper-500);--backdrop:#14120e47;--text-primary:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--accent:var(--moss-600);--accent-pressed:var(--moss-700);--text-on-accent:var(--paper-100);--danger:var(--clay-600);--surface-inverse:var(--ink-900);--text-on-inverse:var(--paper-200);--line-on-inverse:var(--ink-700);--shadow-lift:2px 3px 0 #1c1a1712;--shadow-panel:6px 8px 0 #1c1a171a;--shadow-panel-up:0 -6px 0 #1c1a171a;--shadow-panel-left:-6px 0 0 #1c1a171a;--mark-indigo:#4a6d94;--mark-ochre:#a4622f;--mark-moss:#5f7a4e;--mark-soot:#3d4348;--mark-wash:.22;--mark-edge:.4;--font-ui:"Source Serif 4", "Noto Serif CJK TC", "Noto Serif TC", "Source Han Serif TC", "Songti TC", "PMingLiU", serif;--type-display:1.875rem;--type-title:1.3125rem;--type-lede:1rem;--type-body:.9375rem;--type-ui:.84375rem;--type-note:.78125rem;--type-eyebrow:.6875rem;--type-eyebrow-tracking:.16em;--leading-text:1.68;--leading-title:1.3;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:22px;--space-6:30px;--space-7:44px;--radius-dot:50%;--tap-min:32px;--tap-dense:28px;--scrubber-bar-height:2.125rem;--panel-width:236px}@media (any-pointer:coarse){:root{--tap-min:44px;--tap-dense:44px}}@media (pointer:coarse){:root{--type-lede:1.125rem;--type-body:1rem;--type-ui:.9375rem;--type-note:.875rem;--type-eyebrow:.75rem;--type-eyebrow-tracking:.14em}}:root[data-theme=dark]{--surface-page:var(--night-800);--surface-sunken:var(--night-900);--surface-cover:var(--night-600);--surface-raised:var(--night-700);--line-hair:var(--night-550);--line-firm:var(--night-500);--line-actionable:var(--night-300);--line-track:var(--night-400);--text-primary:var(--bone-100);--text-body:var(--bone-200);--text-muted:var(--bone-300);--text-faint:var(--bone-400);--accent:var(--moss-300);--accent-pressed:var(--moss-200);--text-on-accent:var(--night-900);--surface-inverse:var(--bone-100);--text-on-inverse:var(--night-900);--line-on-inverse:var(--bone-300);--danger:var(--clay-400);--backdrop:#00000080;--shadow-lift:2px 3px 0 #00000073;--shadow-panel:6px 8px 0 #00000080;--shadow-panel-up:0 -6px 0 #00000080;--shadow-panel-left:-6px 0 0 #00000080;--mark-indigo:#7aa3cf;--mark-ochre:#cf8b4e;--mark-moss:#8aab72;--mark-soot:#9aa4ab;--mark-wash:.3;--mark-edge:.75}body{font-family:var(--font-ui);font-size:var(--type-body);line-height:var(--leading-text);font-variant-numeric:tabular-nums;background:var(--surface-page);color:var(--text-body);margin:0;position:relative}#root{isolation:isolate;height:100dvh}button,select,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line-actionable);background:var(--surface-page);color:var(--text-primary);min-height:var(--tap-min);padding:11px var(--space-5);white-space:nowrap;touch-action:manipulation;transition:background .15s,border-color .15s}button:hover{background:var(--surface-raised);border-color:var(--text-muted)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}button.primary:hover{background:var(--accent-pressed);border-color:var(--accent-pressed)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover{background:var(--surface-sunken)}button.ghost.active{color:var(--accent)}select,input:not([type=range]),textarea{border:1px solid var(--line-actionable);background:var(--surface-page);color:var(--text-primary);padding:10px var(--space-3)}button,select,input,textarea{border-radius:0}select{appearance:none;padding-right:var(--space-6);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236f675d' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:10px 7px}:root[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239c948a' stroke-width='1.5'/%3E%3C/svg%3E")}::placeholder{color:var(--text-faint);opacity:1}select,input{min-height:var(--tap-min)}input[type=range]{accent-color:var(--accent)}:where(button,select,input,textarea,.toc-item):focus-visible{outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 3px var(--surface-page)}.error{background:var(--surface-sunken);color:var(--text-body);border-left:3px solid var(--danger);margin:0 2rem;padding:.5rem 1rem}.empty{color:var(--text-muted);text-align:center;padding:3rem 1rem}.library{flex-direction:column;min-height:100dvh;padding-bottom:2rem;display:flex}.library-header{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line-hair);background:var(--surface-page);flex-wrap:wrap;display:flex}.library-header h1{font-size:var(--type-title);letter-spacing:.04em;color:var(--text-primary);margin:0 auto 0 0;font-weight:700}.library-actions{gap:.5rem;display:flex}.shelf-actions{padding:var(--space-4) var(--space-4) 0;flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.shelf-order{font-size:var(--type-note);color:var(--text-muted);white-space:nowrap;align-items:center;gap:.4rem;display:flex}.reading-now{gap:var(--space-4);padding:var(--space-5) var(--space-4) 0;align-items:center;display:flex}.book-cover.reading-now-cover{flex:none;width:clamp(8.25rem,26vw,17rem)}.reading-now-info{flex-direction:column;gap:.4rem;min-width:0;display:flex}.reading-now-info h2{font-size:clamp(1.3125rem,3.4vw,2.25rem);line-height:var(--leading-title);margin:0}.reading-now-author{color:var(--text-muted);font-size:var(--type-ui);margin:0}.reading-now-actions{align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.reading-now-actions .primary{flex:1;min-height:48px}.cover-wall{justify-content:start;gap:var(--space-5) var(--space-3);padding:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(108px,1fr));display:grid}.book-card{flex-direction:column;gap:.6rem;max-width:132px;display:flex;position:relative}button.ghost.book-more{text-align:center;border-left:1px solid var(--line-firm);border-bottom:1px solid var(--line-firm);background:var(--surface-page);width:26px;height:26px;min-height:0;padding:0;line-height:26px;position:absolute;top:0;right:0}button.ghost.book-more:after{content:"";width:var(--tap-min);height:var(--tap-min);position:absolute;top:0;right:0}.book-status{font-size:var(--type-note);color:var(--text-muted);line-height:var(--leading-text);flex-direction:column;margin:0;display:flex}.book-cover{aspect-ratio:1/1.42;border:1px solid var(--line-firm);background:var(--surface-cover);width:100%;box-shadow:var(--shadow-lift);justify-content:center;align-items:center;padding:0;transition:border-color .15s;display:flex;position:relative}.book-cover:hover{border-color:var(--accent)}.book-cover:focus-visible{box-shadow:var(--shadow-lift);outline:none}.book-cover:focus-visible:before{content:"";pointer-events:none;background:linear-gradient(var(--accent), var(--accent)) left top / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) left top / 2px 16px no-repeat, linear-gradient(var(--accent), var(--accent)) right top / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) right top / 2px 16px no-repeat, linear-gradient(var(--accent), var(--accent)) left bottom / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) left bottom / 2px 16px no-repeat, linear-gradient(var(--accent), var(--accent)) right bottom / 16px 2px no-repeat, linear-gradient(var(--accent), var(--accent)) right bottom / 2px 16px no-repeat;position:absolute;inset:-7px}.book-cover img{object-fit:cover;width:100%;height:100%}.book-cover span{max-height:100%;padding:26px .5rem .5rem;font-weight:600;overflow:hidden}.book-info{flex-direction:column;gap:.15rem;display:flex}.book-info strong{font-size:var(--type-ui);line-height:var(--leading-title)}.book-info small{color:var(--text-muted)}.alert-popup{z-index:30;border:1px solid var(--line-firm);background:var(--surface-page);max-width:min(24rem,100vw - 2rem);box-shadow:var(--shadow-panel);flex-direction:column;gap:.75rem;padding:1.25rem;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.alert-title{font-size:var(--type-lede);margin:0}button.danger{border-color:var(--danger);color:var(--danger)}button.danger:hover{background:var(--danger);color:var(--surface-page)}.reader{overscroll-behavior:none;height:100dvh;position:relative;overflow:hidden}.chrome{z-index:30;pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:0}.chrome-top,.chrome-nav,.chrome-bottom{pointer-events:auto;background:var(--surface-page)}.chrome-top{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--line-hair);display:flex}.chrome-nav{align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-bottom:1px solid var(--line-hair);display:flex}.chrome-nav button{min-height:36px;padding:0 var(--space-3)}.chrome-nav button.active{border-color:var(--accent)}.chrome-gap{flex:1;min-height:0;position:relative}.chrome-bottom{height:var(--scrubber-bar-height);border-top:1px solid var(--line-hair);flex-direction:column;justify-content:center;display:flex}.chrome-settings{margin-left:auto}.reader-title{text-overflow:ellipsis;white-space:nowrap;font-size:var(--type-ui);overflow:hidden}.reader-chapter{color:var(--text-muted);font-size:var(--type-ui);text-overflow:ellipsis;white-space:nowrap;max-width:45%;margin-left:auto;overflow:hidden}.busy-underline{position:relative}.busy-underline:after{content:"";background:var(--text-muted);height:2px;animation:1.5s ease-in-out infinite busy-wipe;position:absolute;bottom:-4px}@keyframes busy-wipe{0%{left:0;right:100%}45%{left:0;right:0}55%{left:0;right:0}to{left:100%;right:0}}.busy-edge{position:relative;overflow:hidden}.busy-edge:after{content:"";background:var(--text-muted);width:40%;height:3px;animation:1.6s ease-in-out infinite busy-shuttle;position:absolute;bottom:0;left:0}@keyframes busy-shuttle{0%{transform:translate(-100%)}50%{transform:translate(250%)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.busy-underline:after{opacity:.6;animation:none;left:0;right:0}.busy-edge:after{opacity:.5;width:100%;animation:none}}.panel-backdrop{pointer-events:auto;background:var(--backdrop);transition:opacity .25s;position:absolute;inset:0}.panel-backdrop[data-starting-style],.panel-backdrop[data-ending-style]{opacity:0}.panel-viewport{pointer-events:none;position:absolute;inset:0}.panel-popup{pointer-events:auto;width:var(--panel-width);background:var(--surface-sunken);border-right:1px solid var(--line-hair);box-shadow:var(--shadow-panel);transform:translateX(min(0px, var(--drawer-swipe-movement-x,0px)));flex-direction:column;transition:transform .3s;display:flex;position:absolute;top:0;bottom:0;left:0}.panel-popup[data-starting-style],.panel-popup[data-ending-style]{transform:translate(-100%)}.panel-popup[data-swiping]{transition:none}.panel-header{border-bottom:1px solid var(--line-hair);align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.panel-title{font-size:var(--type-ui);margin:0 auto 0 0}.panel-close{font-size:var(--type-lede);line-height:1}.panel-body{flex:1;padding:.75rem 1rem 1rem;overflow-y:auto}.panel-list{flex-direction:column;gap:.5rem;display:flex}.panel-form{flex-direction:column;gap:.75rem;display:flex}.panel-form label{font-size:var(--type-note);color:var(--text-muted);flex-direction:column;gap:.3rem;display:flex}.panel-form select,.panel-form input{color:var(--text-primary)}.panel-actions{flex-wrap:wrap;gap:.5rem;margin-top:.15rem;display:flex}.panel-actions button{font-size:var(--type-note);min-height:var(--tap-dense);padding:.3rem .6rem}.panel-note{font-size:var(--type-note);color:var(--text-muted);line-height:var(--leading-text);margin:0}@media (prefers-reduced-motion:reduce){.panel-popup,.panel-backdrop{transition:none}.panel-popup[data-starting-style],.panel-popup[data-ending-style]{transform:none}}.font-progress{height:3px;margin:var(--space-1) 0 .15rem;background:var(--surface-sunken);pointer-events:none;overflow:hidden}.font-progress-fill{background:var(--text-muted);height:100%;transition:width .25s ease-out;position:relative}.font-progress-fill:after{content:"";background:linear-gradient(90deg, transparent, var(--surface-page), transparent);opacity:.55;animation:1.4s ease-in-out infinite font-progress-sheen;position:absolute;inset:0}@keyframes font-progress-sheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}.font-progress.indeterminate .font-progress-fill{width:40%;transition:none;animation:1.6s ease-in-out infinite busy-shuttle}.font-progress.indeterminate .font-progress-fill:after{animation:none}@media (prefers-reduced-motion:reduce){.font-progress-fill:after,.font-progress.indeterminate .font-progress-fill{animation:none}.font-progress.indeterminate .font-progress-fill{opacity:.5;width:100%}}.font-toast{z-index:12;background:var(--text-primary);max-width:min(20rem,100% - 2rem);color:var(--surface-page);font-size:var(--type-note);line-height:var(--leading-text);text-align:center;box-shadow:var(--shadow-panel);padding:.5rem .9rem;animation:.18s ease-out font-toast-in;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}@keyframes font-toast-in{0%{opacity:0;transform:translate(-50%,.4rem)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.font-toast{animation:none}}.reader-body{height:100%;display:flex;position:relative}.toc-item{text-align:left;font-size:var(--type-body);line-height:var(--leading-text);background:0 0;border:none;padding:.35rem .5rem}.toc-item:hover{background:var(--surface-sunken);border:none}.toc-item.current{color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);font-weight:600}.viewer-wrap{background:var(--surface-page);flex:1;align-items:stretch;min-width:0;display:flex}.viewer{flex:1;min-width:0;position:relative}.viewer-mount{width:100%;height:100%}.highlight-layer{pointer-events:none;position:absolute;inset:0}.highlight-box{background:color-mix(in srgb, var(--mark) calc(var(--mark-wash) * 100%), transparent);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--mark) calc(var(--mark-edge) * 100%), transparent);position:absolute}.page-btn{color:var(--text-muted);background:0 0;border:none;width:3rem;font-size:2rem}.page-btn:hover{color:var(--text-primary);background:0 0;border:none}.scrubber{--scrubber-inset:10px;flex:none;position:relative;overflow-x:clip}.scrubber-track{cursor:pointer;touch-action:none;height:22px;position:relative;overflow:hidden}.scrubber-track:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.scrubber-track:before{content:"";left:var(--scrubber-inset);right:var(--scrubber-inset);background:var(--line-track);height:3px;transition:height .12s;position:absolute;top:50%;transform:translateY(-50%)}.scrubber:hover .scrubber-track:before,.scrubber.dragging .scrubber-track:before{height:6px}.scrubber-fill{background:var(--accent);height:3px;transition:height .12s;position:absolute;top:50%;transform:translateY(-50%)}.scrubber:hover .scrubber-fill,.scrubber.dragging .scrubber-fill{height:6px}.scrubber-thumb{border-radius:var(--radius-dot);background:var(--accent);width:14px;height:14px;box-shadow:var(--shadow-lift), 0 0 0 2px var(--surface-page);opacity:0;transition:opacity .12s;position:absolute;top:50%;transform:translate(-50%,-50%)}.scrubber:hover .scrubber-thumb,.scrubber.dragging .scrubber-thumb{opacity:1}.scrubber-cap{border-radius:var(--radius-dot);pointer-events:none;width:6px;height:6px;position:absolute;top:50%;transform:translate(-50%,-50%)}.scrubber-cap-head{left:var(--scrubber-inset);background:var(--text-muted)}.scrubber-cap-tail{left:calc(100% - var(--scrubber-inset));border:1px solid var(--text-muted)}.scrubber-rtl .scrubber-cap-head{left:calc(100% - var(--scrubber-inset))}.scrubber-rtl .scrubber-cap-tail{left:var(--scrubber-inset)}.scrubber.disabled{opacity:.45}.scrubber.disabled .scrubber-track{cursor:default}.scrubber-preview{background:var(--surface-page);border:1px solid var(--line-firm);max-width:70vw;box-shadow:var(--shadow-panel);pointer-events:none;white-space:nowrap;flex-direction:column;align-items:center;gap:.15rem;margin-bottom:8px;padding:.35rem .6rem;display:flex;position:absolute;bottom:100%;transform:translate(-50%)}.scrubber-chapter{text-overflow:ellipsis;max-width:60vw;font-size:var(--type-ui);color:var(--text-primary);overflow:hidden}.scrubber-pct{font-size:var(--type-note);color:var(--text-muted);font-variant-numeric:tabular-nums}.highlight-toolbar{gap:var(--space-2);background:var(--surface-inverse);color:var(--text-on-inverse);padding:9px var(--space-3);box-shadow:var(--shadow-panel);max-width:calc(100vw - var(--space-5));flex-wrap:wrap;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.highlight-toolbar button:not(.swatch){color:inherit;min-height:var(--tap-dense);padding:0 var(--space-2);font-size:var(--type-body);background:0 0;border-color:#0000}.highlight-toolbar button:hover{background:color-mix(in srgb, var(--text-on-inverse) 16%, transparent);color:inherit}.highlight-toolbar .swatch+button:not(.swatch){border-left:1px solid var(--line-on-inverse);margin-left:var(--space-1);padding-left:var(--space-3)}.highlight-toolbar .swatch:before{border-color:var(--text-on-inverse)}.highlight-toolbar:after{content:"";background:var(--surface-inverse);clip-path:polygon(0 100%,50% 0,100% 100%);width:14px;height:7px;margin-left:-7px;position:absolute;bottom:100%;left:50%}.highlight-toolbar[data-above]:after{clip-path:polygon(0 0,50% 100%,100% 0);top:100%;bottom:auto}.swatch{width:var(--tap-min);height:var(--tap-min);background:0 0;border:none;place-items:center;padding:0;display:grid}.swatch:before{content:"";border-radius:var(--radius-dot);border:1px solid var(--line-firm);background:var(--mark);width:1.6rem;height:1.6rem;transition:transform .12s}.swatch:hover{background:0 0}.swatch:hover:before{transform:scale(1.1)}.annotation-item{border-left:3px solid var(--mark-indigo);background:var(--surface-sunken);padding:.5rem .7rem}.annotation-item blockquote{font-size:var(--type-body);line-height:var(--leading-text);cursor:pointer;margin:0 0 .3rem}.annotation-item blockquote:hover{text-decoration:underline}.note-text{font-size:var(--type-ui);color:var(--text-muted);margin:.2rem 0}.note-editor{flex-direction:column;gap:.3rem;display:flex}.note-editor textarea{font-size:var(--type-ui);resize:vertical;background:var(--surface-page);border:1px solid var(--line-actionable);min-height:4rem;padding:.4rem}.annotation-actions{gap:.4rem;margin-top:.3rem;display:flex}.annotation-actions button{font-size:var(--type-note);min-height:var(--tap-dense);padding:.15rem .45rem}.drawer-backdrop{background:var(--backdrop);transition:opacity .25s;position:fixed;inset:0}.drawer-backdrop[data-starting-style],.drawer-backdrop[data-ending-style]{opacity:0}.drawer-viewport{pointer-events:none;position:fixed;inset:0}.drawer-popup{pointer-events:auto;background:var(--surface-page);border-left:1px solid var(--line-hair);width:min(26rem,100%);height:100%;box-shadow:var(--shadow-panel-left);transform:translateX(var(--drawer-swipe-movement-x,0px));flex-direction:column;transition:transform .3s;display:flex;position:absolute;top:0;right:0}.drawer-popup[data-starting-style],.drawer-popup[data-ending-style]{transform:translate(100%)}.drawer-popup[data-swiping]{transition:none}.drawer-header{border-bottom:1px solid var(--line-hair);align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.drawer-title{font-size:var(--type-lede);margin:0 auto 0 0}.drawer-close{font-size:var(--type-lede);line-height:1}.drawer-body{flex-direction:column;flex:1;gap:1.75rem;padding:1.25rem;display:flex;overflow-y:auto}.drawer-section{flex-direction:column;gap:.75rem;display:flex}.drawer-section-title{font-size:var(--type-eyebrow);letter-spacing:var(--type-eyebrow-tracking);color:var(--text-muted);padding-bottom:var(--space-1);border-bottom:1px solid var(--line-hair);margin:0;font-weight:600}.drawer-section label{font-size:var(--type-ui);color:var(--text-muted);flex-direction:column;gap:.3rem;display:flex}.drawer-section select,.drawer-section input{color:var(--text-primary)}.drawer-section input[type=email],.drawer-section input[inputmode=numeric]{background:var(--surface-page);border:1px solid var(--line-actionable);width:100%;padding:.4rem .6rem}.drawer-section form{flex-direction:column;gap:.6rem;display:flex}.drawer-actions{flex-wrap:wrap;gap:.5rem;display:flex}.drawer-lede{font-size:var(--type-lede);line-height:var(--leading-text);margin:0}.drawer-note{font-size:var(--type-note);color:var(--text-muted);line-height:var(--leading-text);margin:0}.drawer-list{font-size:var(--type-ui);flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.drawer-list li{justify-content:space-between;gap:1rem;display:flex}.price-lines{font-size:var(--type-ui);gap:.35rem 0;margin:0;display:grid}.price-lines dt{font-weight:600}.price-lines dd{color:var(--text-muted);line-height:var(--leading-text);margin:0 0 .5rem}.auth-pending{color:var(--accent);font-size:var(--type-ui);line-height:var(--leading-text);margin:0}@media (prefers-reduced-motion:reduce){.drawer-popup,.drawer-backdrop{transition:none}.drawer-popup[data-starting-style],.drawer-popup[data-ending-style]{transform:none}}@media (any-pointer:coarse){.scrubber{--scrubber-inset:14px}.scrubber-track:before,.scrubber-fill{height:6px}.scrubber-thumb{opacity:1;width:22px;height:22px}.chrome-nav button{min-height:var(--tap-min);font-size:var(--type-ui)}.drawer-section label,.drawer-list li{min-height:48px}}@media (any-pointer:coarse) and (width<=819px){.chrome-nav{padding:var(--space-2) var(--space-4);border-bottom:none;border-top:1px solid var(--line-hair);order:1}.chrome-bottom{border-top:none;order:2}.chrome-nav button.active{border-color:#0000}.panel-popup{background:var(--surface-page);border-right:none;border-top:1px solid var(--line-hair);width:auto;height:auto;max-height:min(60vh,28rem);box-shadow:var(--shadow-panel-up);transform:translateY(max(0px, var(--drawer-swipe-movement-y,0px)));top:auto;right:0}.panel-popup[data-starting-style],.panel-popup[data-ending-style]{transform:translateY(100%)}}@media (width>=600px){.cover-wall{gap:var(--space-5) var(--space-4);padding:var(--space-4)}.reading-now-actions .primary{flex:none}.error{margin:0 var(--space-5)}}@media (width>=820px){.library-header{gap:var(--space-4);padding:var(--space-5) var(--space-6)}.shelf-actions{padding:var(--space-5) var(--space-6) 0}.reading-now{gap:var(--space-6);padding:var(--space-6) var(--space-6) 0}.cover-wall{gap:var(--space-6) var(--space-4);padding:var(--space-6)}}@media (width>=1280px){.shelf:has(.reading-now){align-items:start;gap:var(--space-4);grid-template-columns:minmax(0,500px) minmax(0,1fr);display:grid}.shelf:has(.reading-now) .reading-now{top:var(--space-6);padding-right:0;position:sticky}.shelf:has(.reading-now) .cover-wall{padding-left:0}}.page-btn{display:none}@media (width>=600px){.page-btn{display:block}}
