:root{--bottom-tab-bar-height:60px;--library-paper:#eef0e6;--library-paper-shadow:#dfe2d3;--library-paper-light:#f8f6ef;--library-gold-muted:#a8742e;--library-wood-dark:#40301f;--library-wood-mid:#6b4a30;--library-wood-light:#96754f;--library-ink:#2b241d;--library-ink-soft:#6f6656;--library-gold:#b0813c;--library-gold-soft:#cfa668;--library-spine-1:#3f5a48;--library-spine-2:#35406a;--library-spine-3:#6b2f3a;--library-spine-4:#a1763f;--library-spine-5:#345a5c;--library-spine-6:#5a3a5c;--library-spine-neutral:#e4ddc9;--library-danger:#7a2e2e;--library-danger-soft:#954040;--review-body-height:min(60dvh,600px)}::-webkit-scrollbar{display:none}*{scrollbar-width:none;-ms-overflow-style:none}body,html{margin:0;min-height:100%;background:var(--library-paper)}.library-page{display:flex;flex-direction:column;height:100dvh;max-width:960px;margin:0 auto;overflow:hidden;box-sizing:border-box;padding-bottom:var(--bottom-tab-bar-height);font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--library-ink)}.library-signout-form button{background:none;border:1px solid var(--library-ink-soft);color:var(--library-ink-soft);border-radius:999px;padding:.35rem .9rem;font-size:.8rem;cursor:pointer}.library-signout-form button:hover{border-color:var(--library-ink);color:var(--library-ink)}.library-search-bar{flex:none;display:flex;align-items:center;height:46px;background:var(--library-spine-neutral);border:1px solid rgba(176,129,60,.25);border-radius:999px;padding:0 .9rem;margin:.75rem 1rem .85rem;box-shadow:0 1px 2px rgba(43,36,29,.06)}.library-search-input{flex:1 1;min-width:0;height:100%;background:transparent;border:none;outline:none;font:inherit;font-size:.95rem;color:var(--library-ink)}.library-search-input::placeholder{color:var(--library-ink-soft)}.library-shelf-wrapper{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.library-shelf-nav{display:none;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:2rem;height:4.5rem;border:none;border-radius:8px;background:none;color:var(--library-ink-soft);cursor:pointer;z-index:5;transition:color .15s ease}.library-shelf-nav:hover{color:var(--library-gold)}.library-shelf-nav-prev{left:.25rem}.library-shelf-nav-next{right:.25rem}.library-shelf-wrapper.is-paged .library-shelf-nav{display:flex}@media (max-width:1023.98px){.library-shelf-wrapper.is-paged .library-shelf-case{margin:0 2.5rem}}.library-shelf-indicator{display:none}@media (max-width:1023.98px){.library-shelf-indicator{display:inline-block;position:absolute;bottom:.5rem;left:50%;transform:translateX(-50%);z-index:6;padding:.2rem .7rem;border-radius:999px;background:rgba(43,36,29,.55);color:#f4ecd8;font-size:.75rem;font-weight:600;pointer-events:none}}.library-shelf-case{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:repeat(4,1fr);background:linear-gradient(180deg,var(--library-wood-mid) 0,var(--library-wood-dark) 100%);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.library-shelf-layer{display:flex;align-items:flex-end;justify-content:flex-start;gap:.35rem;min-width:0;padding:.4rem .5rem .5rem;overflow-x:auto;border-bottom:5px solid var(--library-wood-dark);box-shadow:inset 0 -6px 8px -6px rgba(0,0,0,.35)}.library-shelf-layer:last-child{border-bottom:none}.library-shelf-no-results{opacity:.85;font-size:.95rem}.library-shelf-empty,.library-shelf-no-results{width:100%;text-align:center;align-self:center;color:#efe6d6}.library-shelf-empty{opacity:.5;font-size:.85rem}.book-spine{position:relative;flex:none;width:var(--spine-width,36px);height:var(--book-height,92%);border-radius:3px 3px 2px 2px;box-shadow:inset -3px 0 6px rgba(0,0,0,.22),inset 3px 0 4px hsla(0,0%,100%,.08),0 3px 4px rgba(0,0,0,.25);border:none;padding:0;font:inherit;text-decoration:none;display:block;overflow:hidden;cursor:pointer}.book-spine:hover{transform:translateY(-4px)}.library-shelf-skeleton-spine{background:linear-gradient(90deg,hsla(38,44%,89%,.12) 25%,hsla(38,44%,89%,.22) 37%,hsla(38,44%,89%,.12) 63%);background-size:400% 100%;animation:library-shelf-skeleton-pulse 1.4s ease-in-out infinite;pointer-events:none}@keyframes library-shelf-skeleton-pulse{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.library-shelf-skeleton-spine{animation:none}}.book-spine-title{writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;line-height:1.25;height:100%;max-height:calc(100% - .8rem);margin:.4rem auto 0;display:flex;align-items:flex-start;justify-content:center}.book-spine-title,.book-spine-title-rotated{font-family:"Noto Serif KR",Georgia,serif;font-size:.78rem;letter-spacing:.02em;color:var(--spine-text,#f4ecd8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-spine-title-rotated{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center;writing-mode:horizontal-tb;max-width:120px}@media (prefers-reduced-motion:reduce){.book-spine{transition:none}}.library-delete-mode-banner{position:absolute;top:.6rem;left:50%;transform:translateX(-50%);z-index:20;gap:.5rem;padding:.4rem .5rem .4rem .9rem;border-radius:999px;background:var(--library-paper);border:1px solid var(--library-paper-shadow);font-size:.8rem;font-weight:600;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.3)}.library-delete-mode-banner,.library-delete-mode-banner-close{display:inline-flex;align-items:center;color:var(--library-danger)}.library-delete-mode-banner-close{justify-content:center;width:1.3rem;height:1.3rem;border:none;border-radius:999px;background:transparent;font-size:.95rem;line-height:1;cursor:pointer}.library-delete-mode-banner-close:hover{background:rgba(122,46,46,.12)}.book-modal-backdrop{position:fixed;inset:0;background:rgba(20,16,10,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:20;animation:book-modal-fade-in .2s ease-out}.book-modal-wrapper{display:flex;flex-direction:column;align-items:center;width:min(560px,100%);max-height:90vh;overflow-y:auto;animation:book-modal-scale-in .2s ease-out}.book-modal-title{margin:0 0 .9rem;text-align:center;font-family:"Noto Serif KR",Georgia,serif;font-size:1.05rem;font-weight:700;letter-spacing:.01em;color:#f4ecd8;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-modal{position:relative;width:100%;border-radius:12px;box-shadow:0 24px 48px rgba(0,0,0,.35);overflow:hidden}.book-modal-close{position:absolute;top:.6rem;right:.9rem;background:none;border:none;padding:0;font-size:1.1rem;color:var(--library-ink-soft);cursor:pointer;z-index:1}.book-modal-close:hover{color:var(--library-ink)}.book-modal-pages{display:flex;min-height:380px}.book-modal-page{flex:1 1 50%;min-width:0;display:flex;align-items:stretch;justify-content:center;padding:1.5rem;background:var(--library-spine-neutral)}.book-modal-page--left{border-radius:12px 0 0 12px;box-shadow:inset -10px 0 16px -10px rgba(0,0,0,.25)}.book-modal-page--right{border-radius:0 12px 12px 0;box-shadow:inset 10px 0 16px -10px rgba(0,0,0,.25)}.book-modal-spine{flex:none;width:14px;background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.05) 35%,rgba(0,0,0,.05) 65%,rgba(0,0,0,.28))}.book-modal-card{display:flex;flex-direction:column;width:100%;min-width:0;gap:.75rem;text-align:left}.book-modal-card-header{display:flex;align-items:baseline;min-width:0;gap:.4rem;color:var(--library-ink);font-family:"Noto Serif KR",Georgia,serif;font-size:.95rem;font-weight:700}.book-modal-card-heading{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-modal-review-date{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.72rem;font-weight:400;color:var(--library-ink-soft);text-align:center}.book-modal-card-body{margin:0;width:100%;min-height:9.184rem;max-height:9.184rem;color:var(--library-ink-soft);font-size:.82rem;line-height:1.6;text-align:left;white-space:pre-wrap;overflow:hidden}.book-modal-card-body-wrap{display:flex;flex-direction:column}.book-modal-card-body-truncated-marker,.book-modal-card-empty{margin:0;color:var(--library-ink-soft);font-size:.82rem;line-height:1.6}.book-modal-card-empty{min-height:9.184rem}.book-modal-card-error{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.book-modal-card-skeleton{display:flex;flex-direction:column;gap:.55rem;min-height:9.184rem}.book-modal-skeleton-line{height:.85rem;border-radius:4px;background:linear-gradient(90deg,rgba(43,36,29,.08) 25%,rgba(43,36,29,.18) 37%,rgba(43,36,29,.08) 63%);background-size:400% 100%;animation:library-shelf-skeleton-pulse 1.4s ease-in-out infinite}.book-modal-card-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:auto}.book-modal-card-actions .paper-button{box-sizing:border-box;width:100%}.book-modal-quote-list{margin:0;padding:0;width:100%;min-height:9.184rem;list-style:none;display:flex;flex-direction:column;gap:.6rem;text-align:left}.book-modal-quote-item{display:flex;align-items:flex-start;gap:.45rem;font-size:.95rem;line-height:1.5;color:var(--library-ink)}.book-modal-quote-index{flex:none;font-size:.82rem;color:var(--library-gold);font-weight:700}.book-modal-quote-text{min-width:0;font-size:.82rem;color:var(--library-ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-modal-quote-page{display:none}.book-modal-quote-more,.book-modal-quote-page{color:var(--library-ink-soft);font-size:.78rem}.book-modal-quote-more{margin:0;text-align:right}.book-modal-quote-draft-link{display:block;width:100%;font-size:.82rem;line-height:1.5;color:var(--library-gold);font-weight:600;text-decoration:underline;text-underline-offset:2px}.book-modal-quote-draft-link:focus-visible,.book-modal-quote-draft-link:hover{color:var(--library-ink)}.confirm-modal{position:relative;width:min(360px,100%);background:#fff;border-radius:14px;padding:1.5rem;box-shadow:0 24px 48px rgba(0,0,0,.35);animation:book-modal-scale-in .2s ease-out}.confirm-modal--wide{width:min(420px,100%)}.confirm-modal-text{margin:0 0 1.25rem;color:var(--library-ink);font-size:.95rem;line-height:1.6}.confirm-modal-subtext{display:inline-block;margin-top:.35rem;font-size:.8rem;color:var(--library-ink-soft)}.confirm-modal-error{margin:-.5rem 0 1rem;color:var(--library-danger);font-size:.85rem}.review-report-readonly-reason{margin:0 0 1.25rem;padding:.7rem .9rem;background:var(--library-paper);border:1px solid var(--library-paper-shadow);border-radius:10px;white-space:pre-wrap;font-size:.9rem;line-height:1.6;color:var(--library-ink)}.confirm-modal-password-meta{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem .75rem;margin:-.5rem 0 1rem}.confirm-modal-password-meta .confirm-modal-error--inline{margin:0}.confirm-modal-password-meta .login-forgot-link{margin-top:0}.confirm-modal-actions{display:flex;justify-content:flex-end;gap:.6rem}.confirm-modal.share-modal{width:min(300px,100%);padding:1.1rem}.share-modal .confirm-modal-text{margin-bottom:.85rem;font-size:.85rem}.share-link-box{display:flex;gap:.5rem}.share-link-input{flex:1 1;min-width:0;box-sizing:border-box;padding:.6rem .75rem;font:inherit;font-size:.85rem;color:var(--library-ink-soft);background:var(--library-spine-neutral);border:1px solid var(--library-paper-shadow);border-radius:8px}.shelf-manage-modal{position:relative;width:min(420px,100%);max-height:min(560px,85vh);display:flex;flex-direction:column;background:#fff;border-radius:14px;padding:1.5rem;box-shadow:0 24px 48px rgba(0,0,0,.35);animation:book-modal-scale-in .2s ease-out}.shelf-manage-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.shelf-manage-title{margin:0;font-family:"Noto Serif KR",Georgia,serif;font-size:1.05rem;font-weight:700;color:var(--library-ink)}.shelf-manage-close{display:inline-flex;border:none;background:none;padding:.25rem;color:var(--library-ink-soft);cursor:pointer;line-height:1}.shelf-manage-close:hover{color:var(--library-ink)}.shelf-manage-error{margin:0 0 .75rem;color:var(--library-danger);font-size:.85rem}.shelf-manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;overflow-y:auto}.shelf-manage-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border:1px solid var(--library-paper-shadow);border-radius:8px;background:#fff}.shelf-manage-item.is-dragging{opacity:.5}.shelf-manage-drag-handle{flex:none;display:flex;color:var(--library-ink-soft);cursor:-webkit-grab;cursor:grab}.shelf-manage-name{flex:1 1;min-width:0;font-size:.92rem;color:var(--library-ink);padding:.35rem .4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-manage-delete:disabled{opacity:.35;cursor:default}.shelf-manage-footer{margin-top:.9rem;display:flex;align-items:center;gap:.6rem}.shelf-manage-add,.shelf-manage-upgrade{flex:none}@keyframes book-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes book-modal-scale-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.book-modal,.book-modal-backdrop{animation:none}}@media (max-width:768px){.book-modal-backdrop{padding:.5rem}.book-modal-title{margin:0 0 .5rem;font-size:.88rem}.book-modal-pages{min-height:0}.book-modal-page{aspect-ratio:273/380;padding:.6rem .5rem}.book-modal-spine{width:6px}.book-modal-card{gap:.35rem}.book-modal-card-header{font-size:.76rem;gap:.25rem}.book-modal-review-date{font-size:.6rem}.book-modal-card-body{max-height:4.736rem}.book-modal-card-body,.book-modal-card-empty,.book-modal-quote-list{min-height:2.2rem}.book-modal-card-body,.book-modal-card-body-truncated-marker,.book-modal-card-empty,.book-modal-quote-draft-link,.book-modal-quote-text{font-size:.74rem}.book-modal-card-skeleton{min-height:2.2rem}.book-modal-skeleton-line{height:.65rem}.book-modal-quote-item{font-size:.74rem;gap:.25rem}.book-modal-quote-index{font-size:.74rem}.book-modal-quote-page{font-size:.66rem}.book-modal-card-actions{gap:.35rem}.book-modal-card-actions .paper-button{padding:.45rem .6rem;font-size:.74rem}.book-modal-card-error .paper-button-secondary{padding:.35rem .55rem;font-size:.72rem}}.library-bottom{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:.6rem;flex-wrap:wrap;padding:.85rem 1rem}.library-add-button{display:inline-block;background:var(--library-wood-dark);color:#f4ecd8;border-radius:10px;padding:.45rem .8rem;font-size:.8rem;text-decoration:none;border:none;cursor:pointer}.library-bottom-shelf-label{display:inline;font-size:.8rem;font-weight:500;color:var(--library-ink-soft)}@media (max-width:1023.98px){.library-bottom-shelf-label{display:none}}.library-add-button:hover{background:var(--library-wood-mid)}.library-bottom.is-search{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.library-bottom.is-search .library-page-counter{grid-column:2;justify-self:center}.library-bottom.is-search .library-add-button{grid-column:3;justify-self:end}@media (max-width:1023.98px){.library-bottom.is-search{padding-left:2.5rem;padding-right:2.5rem}}.library-bottom-right{display:flex;align-items:center;gap:.5rem;flex:none}.library-delete-mode-button.is-active,.library-delete-mode-button.is-active:hover{border-color:var(--library-danger);background:var(--library-danger);color:#fff}.library-manage-button{display:inline-flex;align-items:center;gap:.3rem;flex:none;border:1px solid var(--library-ink-soft);background:#fff;border-radius:10px;padding:.4rem .65rem;font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap;color:var(--library-ink-soft);cursor:pointer}.library-manage-button:hover{border-color:var(--library-ink);color:var(--library-ink)}.library-page-counter{font-size:.85rem;color:var(--library-ink-soft);white-space:nowrap}@media (max-width:480px){.library-shelf-layer{gap:.3rem;padding:.3rem .4rem .4rem}}@media (min-width:1024px){.library-search-bar{margin:.6rem 3rem .85rem}.library-shelf-case{grid-template-rows:repeat(4,minmax(0,1fr));margin:0 3rem}.library-shelf-nav{display:flex}.library-shelf-duo{display:flex;flex:1 1 auto;min-height:0;gap:1.5rem;margin:0 3rem}.library-shelf-duo .library-shelf-case{margin:0}.library-shelf-duo>*{flex:1 1;min-width:0;min-height:0}.library-shelf-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;border-radius:4px;border:2px dashed hsla(43,56%,90%,.35);background:linear-gradient(180deg,var(--library-wood-mid) 0,var(--library-wood-dark) 100%);color:#f4ecd8;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;transition:border-color .15s ease,color .15s ease}.library-shelf-placeholder:hover{border-color:var(--library-gold);color:var(--library-gold-soft)}.library-shelf-placeholder:disabled{cursor:not-allowed;opacity:.6}.library-shelf-placeholder--locked{opacity:.8}.library-bottom{flex-wrap:nowrap;padding-left:3rem;padding-right:3rem}.library-add-button{display:inline-flex;align-items:center;background:#fff;color:var(--library-ink-soft);border:1px solid var(--library-ink-soft);border-radius:10px;padding:.6rem .9rem;font-size:.85rem;font-weight:600;line-height:1}.library-add-button:hover{background:#fff;border-color:var(--library-ink);color:var(--library-ink)}.library-manage-button{gap:.35rem;padding:.6rem .9rem;font-size:.85rem}}@media (min-width:1024px) and (max-height:760px){.library-search-bar{height:38px;margin:.4rem 3rem .6rem}.library-bottom{padding:.5rem 3rem}.library-shelf-layer{gap:.25rem;padding:.25rem .4rem .35rem}.book-spine-title,.book-spine-title-rotated{font-size:.7rem}}.bottom-tab-bar{position:fixed;left:0;right:0;bottom:0;height:var(--bottom-tab-bar-height);display:flex;background:#fff;border-top:1px solid var(--library-paper-shadow);z-index:30}.book-reuse-toast{position:fixed;top:1rem;left:50%;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:.5rem;max-width:calc(100% - 2.5rem);padding:.7rem 1rem;background:var(--library-wood-dark);color:#fff;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.25);font-size:.85rem;animation:book-reuse-toast-fade-in .2s ease-out}@keyframes book-reuse-toast-fade-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.app-toast-layer{position:fixed;left:0;right:0;bottom:calc(var(--bottom-tab-bar-height) + 1rem);z-index:50;display:flex;flex-direction:column;align-items:center;gap:.5rem;pointer-events:none}.app-toast-bubble{pointer-events:auto;max-width:calc(100% - 2.5rem);padding:.7rem 1.1rem;background:var(--library-wood-dark);color:#fff;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.25);font-size:.85rem;animation:app-toast-fade-in .2s ease-out}.app-toast-bubble--leaving{animation:app-toast-fade-out .25s ease-in forwards}@keyframes app-toast-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes app-toast-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}.bottom-tab-bar-item{flex:1 1;display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--library-ink-soft);text-decoration:none}.bottom-tab-bar-item.is-active{color:var(--library-gold);font-weight:700}.tab-placeholder-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 1rem calc(var(--bottom-tab-bar-height) + 1.5rem);font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--library-ink);text-align:center}.auth-error{color:#b3261e}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem;background:var(--library-paper);font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--library-ink)}.login-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--library-paper-shadow);border-radius:18px;box-shadow:0 8px 28px rgba(43,36,29,.12);padding:2.25rem 2rem 2rem;box-sizing:border-box}.login-logo{margin:0 0 1.75rem;text-align:center;font-family:"Noto Serif KR",Georgia,serif;font-size:1.5rem;font-weight:700;color:var(--library-ink);letter-spacing:.02em}.login-tabs{display:flex;margin-bottom:1.5rem;border-bottom:1px solid var(--library-paper-shadow)}.login-tab{flex:1 1;background:none;border:none;padding:.75rem .5rem;font:inherit;font-size:.95rem;font-weight:600;color:var(--library-ink-soft);cursor:pointer;position:relative}.login-tab.is-active{color:var(--library-gold)}.login-tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--library-gold)}.login-form{display:flex;flex-direction:column}.login-submit{width:100%;margin-top:.5rem}.login-alert{margin:0 0 1rem;font-size:.85rem;text-align:center}.login-forgot-link{display:block;margin-top:.4rem;text-align:right;font-size:.8rem;color:var(--library-ink-soft);text-decoration:none}.login-forgot-link:hover{color:var(--library-gold)}.login-back-link{display:inline-block;margin-bottom:1.25rem;font-size:.85rem;color:var(--library-ink-soft);text-decoration:none}.login-back-link:hover,.login-subtitle{color:var(--library-ink)}.login-subtitle{margin:0 0 1.5rem;text-align:center;font-size:1.1rem;font-weight:700}.login-username-row{display:flex;align-items:center;gap:.5rem}.login-username-input-wrap{position:relative;flex:1 1;min-width:0}.login-username-input-wrap .paper-input{padding-right:2.4rem}.login-username-check{position:absolute;top:50%;right:.7rem;transform:translateY(-50%);color:#3f5a48}.login-username-success-text{margin:.35rem 0 0;font-size:.78rem;color:#3f5a48}.login-username-check-button{flex-shrink:0;white-space:nowrap}.login-email-row{display:flex;align-items:center;gap:.5rem}.login-email-local{flex:3 1;min-width:0}.login-email-at{flex-shrink:0;color:var(--library-ink-soft)}.login-email-domain{flex:2 1;width:auto;min-width:0}.login-password-row{position:relative}.login-password-row .paper-input{padding-right:2.6rem}.login-password-toggle{position:absolute;top:50%;right:.6rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;padding:.2rem;color:var(--library-ink-soft);cursor:pointer}.login-password-toggle:hover,.paper-page{color:var(--library-ink)}.paper-page{min-height:100dvh;max-width:640px;margin:0 auto;padding:3.25rem 1.25rem calc(var(--bottom-tab-bar-height) + 2rem);background:var(--library-paper);font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.paper-back-link{position:fixed;top:1.1rem;left:1.1rem;z-index:10;font-size:.85rem;color:var(--library-ink-soft);text-decoration:none}.paper-back-link:hover{color:var(--library-ink)}.review-form-page .paper-title{text-align:center}.review-form-page{touch-action:manipulation}.review-form-page .paper-card{overflow-anchor:none}.review-form-page .review-form-header .paper-title{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;font-size:1.15rem}@media (max-width:1023.98px){.review-form-page{min-height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;background:#fff;padding-top:1.25rem;padding-bottom:1.25rem}.review-form-page .paper-title{flex:none;font-size:1.1rem}.review-form-page .review-form-header{position:relative;display:flex;align-items:center;justify-content:center;flex:none;margin-bottom:1rem}.review-form-page .review-form-header .paper-title{margin:0}.review-form-page .paper-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.review-form-page .paper-card>.paper-actions,.review-form-page .paper-card>.paper-error-text,.review-form-page .paper-card>.paper-field{flex:none}.review-form-page .paper-field--grow{margin-bottom:0}.review-form-page .paper-card>.paper-error-text,.review-form-page .paper-field--inline{margin-top:.75rem;margin-bottom:0}.review-form-page .paper-actions{margin-top:.75rem}.review-form-page .paper-label--visibility{font-size:.85rem}}@media (min-width:1024px){.review-form-page{min-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;background:#fff;max-width:none;width:100%;margin:0;padding:3rem}.review-form-page .review-form-header{margin-bottom:1.5rem}.review-form-page .review-form-header .paper-title{font-size:1.3rem}.review-form-page .paper-title{flex:none}.review-form-page .paper-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.review-form-page .paper-card>.paper-actions,.review-form-page .paper-card>.paper-error-text,.review-form-page .paper-card>.paper-field{flex:none}.review-form-page .paper-field--grow{margin-bottom:0}.review-form-page .paper-card>.paper-error-text,.review-form-page .paper-field--inline{margin-top:.75rem;margin-bottom:0}.review-form-page .paper-actions{margin-top:.75rem}.review-form-page .paper-label--visibility{font-size:.85rem}}.quote-form-page{background:#fff}.quote-form-page .paper-card{background:transparent;border:none;border-radius:0;box-shadow:none;overflow-anchor:none}@media (min-width:1024px){.quote-form-page{min-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;max-width:none;width:100%;margin:0;padding:3rem}.quote-form-page .paper-card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:0}.quote-form-page .paper-card>.paper-actions,.quote-form-page .paper-card>.paper-field:not(.paper-field--grow){flex:none}.quote-form-page .paper-field--grow{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;width:100%;box-sizing:border-box}.quote-form-page .paper-field--grow .paper-textarea{flex:1 1 auto;min-height:0;width:100%;box-sizing:border-box}}.paper-title-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}.paper-title-row .paper-title{margin:0}.paper-title-row .paper-actions{margin-top:0}.review-detail-subtitle{margin:0 0 1.25rem;font-size:.85rem;color:var(--library-ink-soft);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-detail-page .paper-title{text-align:center}.review-detail-fixed-actions{position:fixed;top:1.1rem;right:1.1rem;z-index:10;display:flex;align-items:center;gap:.6rem}main.review-detail-page{background:#fff;width:100vw;max-width:100vw;box-sizing:border-box;position:relative;left:50%;margin-left:-50vw;overflow-x:hidden}.review-detail-content{max-width:760px;margin:0 auto}main.account-page{background:#fff;width:100vw;max-width:100vw;box-sizing:border-box;position:relative;left:50%;margin-left:-50vw;overflow-x:hidden}.account-page-content{max-width:640px;margin:0 auto}.paper-title{margin:0 0 .35rem;font-family:"Noto Serif KR",Georgia,serif;font-size:1.4rem;font-weight:700;color:var(--library-ink)}.paper-title-count{font-size:inherit;font-weight:400;color:var(--library-ink-soft)}.paper-meta{margin:0 0 1.25rem;display:flex;flex-wrap:wrap;gap:.25rem .75rem;font-size:.85rem;color:var(--library-ink-soft)}.paper-card{background:#fff;border:1px solid var(--library-paper-shadow);border-radius:16px;padding:1.25rem;box-shadow:0 2px 10px rgba(43,36,29,.06);margin-bottom:1.25rem}.paper-section{margin-bottom:1.5rem}.paper-section-title{margin:0 0 .75rem;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--library-gold);text-transform:uppercase}.paper-field{margin-bottom:1.1rem}.paper-field:last-child{margin-bottom:0}.paper-label{display:block;margin-bottom:.4rem;font-size:.85rem;font-weight:600;color:var(--library-ink-soft)}.paper-input,.paper-select,.paper-textarea{width:100%;box-sizing:border-box;padding:.65rem .8rem;font:inherit;font-size:16px;color:var(--library-ink);background:#fff;border:1px solid var(--library-paper-shadow);border-radius:10px;outline:none;transition:border-color .15s ease}.paper-textarea{resize:vertical;line-height:1.6}.paper-textarea--autogrow{resize:none;overflow:hidden}.paper-textarea--review-body{height:var(--review-body-height);overflow-y:auto}.paper-input:focus,.paper-select:focus,.paper-textarea:focus{border-color:var(--library-gold)}.paper-input::placeholder,.paper-textarea::placeholder{color:var(--library-ink-soft);opacity:.6}.paper-field--inline{display:flex;align-items:center;flex-wrap:wrap;gap:1rem}.paper-field--inline .paper-label{margin-bottom:0}.paper-label--visibility{font-size:.95rem}.paper-radio-group{display:flex;gap:1.5rem}.paper-radio-option{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--library-ink);cursor:pointer}.paper-radio-option input[type=radio]{width:1.05rem;height:1.05rem;margin:0;accent-color:var(--library-ink);cursor:pointer}.paper-radio-option--muted{opacity:.6}.paper-hint{margin:.35rem 0 0;font-size:.78rem;color:var(--library-ink-soft)}.paper-input--invalid{border-color:#c0392b}.paper-error-text{margin:.35rem 0 0;font-size:.78rem;color:var(--library-danger)}.paper-error-text--label-font{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600}.paper-label-row{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-bottom:.4rem}.paper-label-row .paper-label{margin-bottom:0}.paper-field-counter{margin-left:auto;font-size:.75rem;font-weight:400;color:var(--library-ink-soft)}.paper-field-counter--positive{color:#3f5a48}.paper-help-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid var(--library-paper-shadow);border-radius:50%;background:#fff;color:var(--library-ink-soft);font-size:.7rem;font-weight:700;line-height:1;cursor:pointer}.paper-help-button:before{content:"";position:absolute;inset:-3px}.paper-help-button:hover,.paper-help-button[aria-expanded=true]{border-color:var(--library-gold);color:var(--library-gold)}.paper-help-box{margin:.5rem 0 0;padding:.65rem .8rem;background:var(--library-paper);border:1px solid var(--library-paper-shadow);border-radius:10px;font-size:.8rem;line-height:1.55;color:var(--library-ink-soft);white-space:pre-line}.paper-button,.paper-button-danger,.paper-button-secondary{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:.4rem;border-radius:8px;padding:.7rem 1.4rem;font:inherit;font-size:.9rem;font-weight:600;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.paper-button{border:none;background:var(--library-gold);color:#fff}.paper-button:hover{background:var(--library-gold-soft)}.paper-button-secondary{border:1px solid var(--library-ink-soft);background:transparent;color:var(--library-ink-soft)}.paper-button-secondary:hover{border-color:var(--library-ink);color:var(--library-ink)}.paper-button-danger{border:1px solid var(--library-danger);background:transparent;color:var(--library-danger)}.paper-button-danger:hover{background:var(--library-danger);color:#fff}.paper-button-danger:disabled,.paper-button-secondary:disabled,.paper-button:disabled{opacity:.6;cursor:default}.paper-button--muted{opacity:.6}.paper-icon-button{border:none;background:transparent;padding:.5rem;width:2.25rem;height:2.25rem;gap:0}.paper-icon-button:hover{background:rgba(43,36,29,.08)}.paper-button-danger.paper-icon-button:hover{background:rgba(122,46,46,.1);color:var(--library-danger)}.review-report-trigger:hover{color:var(--library-gold)}.review-report-trigger:active{color:var(--library-gold-soft)}.paper-button--compact{padding:.45rem .9rem;font-size:.85rem}.paper-button--wide{width:100%;padding:1rem 1.4rem;font-size:1rem}.paper-actions{display:flex;align-items:center;gap:.6rem;margin-top:1.25rem}.paper-actions--end{justify-content:flex-end}.paper-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.paper-list-item{border:1px solid var(--library-paper-shadow);border-radius:12px;background:#fff;transition:box-shadow .15s ease,transform .15s ease}.paper-list-item:hover{box-shadow:0 3px 10px rgba(43,36,29,.1);transform:translateY(-1px)}.paper-list-item a{display:block;color:inherit;text-decoration:none}.paper-list-item a,.paper-list-item-content{padding:.85rem 1rem}.paper-list-item-title{display:block;font-weight:600;color:var(--library-ink);margin-bottom:.2rem}.paper-list-item-title--regular{font-weight:400;font-size:1.02rem}.paper-list-item-meta{display:block;font-size:.8rem;color:var(--library-ink-soft)}.paper-book-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem}.paper-book-row-info{flex:1 1;min-width:0}.paper-book-row-action{flex-shrink:0;white-space:nowrap}.book-search-page{--search-action-radius:999px;--search-action-height:2rem;--search-action-width:5.2rem;--search-action-font-size:0.78rem}.paper-book-row-action .paper-button-secondary{width:var(--search-action-width,5.2rem);height:var(--search-action-height,2rem);box-sizing:border-box;padding:.4rem .7rem;line-height:1}.paper-book-owned,.paper-book-row-action .paper-button-secondary{border-radius:var(--search-action-radius,999px);font-size:var(--search-action-font-size,.78rem)}.paper-book-owned{display:inline-flex;align-items:center;gap:.3rem;flex-shrink:0;color:var(--library-gold);white-space:nowrap}.paper-book-owned-icon{flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.paper-book-owned-text-short{display:none}@media (max-width:768px){.paper-book-owned-text-full{display:none}.paper-book-owned-text-short{display:inline}}.paper-search-skeleton-info{display:flex;flex-direction:column;gap:.4rem;min-width:0;flex:1 1 auto}.paper-search-skeleton-title{height:.95rem}.paper-search-skeleton-meta{height:.7rem}.paper-search-skeleton-action{flex-shrink:0;width:var(--search-action-width,5.2rem);height:var(--search-action-height,2rem);border-radius:var(--search-action-radius,999px)}@media (min-width:1024px){.book-search-page{max-width:900px}.book-search-page .paper-list{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.6rem;gap:.6rem}.book-search-page .paper-book-row{height:100%;box-sizing:border-box}.book-search-page .paper-search-owned-notice{font-size:.95rem}}@media (max-width:768px){.book-search-page{padding-top:1.25rem;background:#fff}.book-search-page .book-search-header{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.book-search-page .paper-back-link{position:absolute;left:0;top:50%;transform:translateY(-50%)}.book-search-page .paper-title{margin:0;font-size:1.05rem}.book-search-page .paper-card{background:transparent;border:none;border-radius:0;box-shadow:none;padding:0;margin-bottom:0}.book-search-page{--search-action-height:2.3rem;--search-action-width:5.2rem;--search-action-font-size:0.8rem}.book-search-page .paper-book-row-action .paper-button-secondary{padding:.22rem .5rem;font-size:var(--search-action-font-size)}.book-search-page .paper-book-owned{width:var(--search-action-width);box-sizing:border-box;justify-content:flex-end;font-size:var(--search-action-font-size)}.book-search-page .paper-list-item-title--regular{font-size:.92rem}.book-search-page .paper-list-item-meta{font-size:.72rem}}.book-scan-preview{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#000;margin-bottom:.75rem}.book-scan-video{width:100%;height:100%;object-fit:cover;filter:blur(1px) brightness(.88);transition:filter .35s ease}.book-scan-video--detected{filter:blur(0) brightness(1.05)}.book-scan-preview-hidden{display:none}.book-scan-roi{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.85;pointer-events:none}.book-scan-roi-corner{position:absolute;width:1.3rem;height:1.3rem;border:3px solid var(--library-gold,#b0813c)}.book-scan-roi-corner--tl{top:0;left:0;border-right:none;border-bottom:none;border-radius:6px 0 0 0}.book-scan-roi-corner--tr{top:0;right:0;border-left:none;border-bottom:none;border-radius:0 6px 0 0}.book-scan-roi-corner--bl{bottom:0;left:0;border-right:none;border-top:none;border-radius:0 0 0 6px}.book-scan-roi-corner--br{bottom:0;right:0;border-left:none;border-top:none;border-radius:0 0 6px 0}.book-scan-roi-hint{bottom:.6rem;transform:translateX(-50%);margin:0;padding:.3rem .7rem;background:rgba(0,0,0,.5);font-size:.75rem;border-radius:999px;white-space:nowrap}.book-scan-roi-hint,.book-scan-success-icon{position:absolute;left:50%;color:#fff;pointer-events:none}.book-scan-success-icon{top:50%;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--library-gold);box-shadow:0 4px 14px rgba(0,0,0,.35);opacity:0;transform:translate(-50%,-50%) scale(.4);animation:book-scan-success-pop .45s ease-out}.book-scan-success-icon svg{width:1.6rem;height:1.6rem}@keyframes book-scan-success-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}30%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}50%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@media (prefers-reduced-motion:reduce){.book-scan-video,.book-scan-video--detected{filter:none;transition:none}.book-scan-success-icon{animation:none;opacity:1;transform:translate(-50%,-50%) scale(1)}}.paper-list-item--quote{height:68px}.paper-list-item--quote a{height:100%;box-sizing:border-box;display:flex;align-items:center;padding:.6rem .9rem}.paper-quote-card-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.92rem;font-weight:600;line-height:1.4;color:var(--library-ink)}.paper-quote-page{font-size:.78rem;font-weight:400}.paper-quote-page,.paper-quote-preview{color:var(--library-ink-soft);white-space:nowrap}.paper-quote-preview{display:block;margin-top:.2rem;font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.paper-empty{text-align:center;padding:2rem 1rem;border:1px dashed var(--library-ink-soft);border-radius:14px;color:var(--library-ink-soft);font-size:.9rem}.paper-empty-link{display:inline-block;margin-top:.3rem;color:var(--library-gold);text-decoration:underline;text-underline-offset:.2rem}.paper-empty-link:hover{color:var(--library-gold-soft)}.paper-empty-link:focus-visible{outline:2px solid var(--library-gold);outline-offset:2px}.paper-search-owned-gap{display:flex;align-items:center;justify-content:center;min-height:2.5rem;margin-top:-1.1rem}.paper-search-owned-notice{margin:0;color:var(--library-ink-soft);font-size:.85rem}.paper-empty--error{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:18rem}.paper-empty-error-text{margin:0}.paper-retry-button{margin-top:.6rem}.paper-retry-button--spinning svg{animation:paper-retry-spin .9s linear infinite}@keyframes paper-retry-spin{to{transform:rotate(1turn)}}.paper-quote-text{margin:0 0 1rem;font-family:"Noto Serif KR",Georgia,serif;font-size:1.1rem;line-height:1.7;color:var(--library-ink)}.paper-quote-memo{margin:0 0 1rem;padding-top:.9rem;border-top:1px solid var(--library-paper-shadow);font-size:.9rem;font-style:italic;color:var(--library-ink-soft)}.paper-pager{margin-bottom:1.25rem}.paper-pager-viewport{position:relative;overflow:hidden;touch-action:pan-y}.paper-pager-page{flex:0 0 100%;box-sizing:border-box;padding:0 2.25rem}.paper-pager-page p{white-space:pre-wrap;font-family:"Noto Serif KR",Georgia,serif;font-size:1rem;line-height:1.8;color:var(--library-ink)}.paper-pager-nav{position:absolute;top:0;bottom:0;border:none;background:transparent;cursor:pointer;font-size:1.5rem;color:var(--library-ink-soft)}.paper-pager-nav:hover{color:var(--library-ink)}.paper-pager-nav--prev{left:0}.paper-pager-nav--next{right:0}.paper-search-results{list-style:none;margin:.5rem 0 0;padding:0;border:1px solid var(--library-paper-shadow);border-radius:10px;overflow:hidden;background:#fff}.paper-search-results li+li{border-top:1px solid var(--library-paper-shadow)}.paper-search-result-btn{width:100%;text-align:left;padding:.6rem .9rem;border:none;background:none;font:inherit;font-size:.9rem;color:var(--library-ink);cursor:pointer}.paper-search-result-btn:hover{background:var(--library-spine-neutral)}.paper-search-empty{padding:.6rem .9rem;font-size:.85rem;color:var(--library-ink-soft)}.paper-search-status{margin:.5rem 0 0;font-size:.82rem;color:var(--library-ink-soft)}.feed-page{max-width:900px;padding-top:1.25rem}.me-reviews-page{max-width:900px;padding-top:2.5rem}.feed-search-bar{display:flex;align-items:center;height:46px;background:var(--library-spine-neutral);border:1px solid rgba(176,129,60,.25);border-radius:999px;padding:0 .9rem;margin:.75rem 1rem .85rem;box-shadow:0 1px 2px rgba(43,36,29,.06)}.feed-search-input{flex:1 1;min-width:0;height:100%;background:transparent;border:none;outline:none;font:inherit;font-size:.95rem;color:var(--library-ink)}.feed-search-input::placeholder{color:var(--library-ink-soft)}@media (min-width:1024px){.feed-search-bar{margin-left:0;margin-right:0}}.feed-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;grid-gap:.85rem;gap:.85rem}@media (min-width:720px){.feed-grid{grid-template-columns:repeat(2,1fr)}}.feed-card,.feed-card-item{min-width:0}.feed-card{display:flex;flex-direction:column;height:100%;box-sizing:border-box;padding:1.1rem 1.15rem;background:#fff;border:1px solid var(--library-paper-shadow);border-radius:14px;box-shadow:0 2px 10px rgba(43,36,29,.06);color:inherit;text-decoration:none;transition:box-shadow .15s ease,transform .15s ease}.feed-card:hover{box-shadow:0 4px 14px rgba(43,36,29,.1);transform:translateY(-1px)}button.feed-card{width:100%;font:inherit;text-align:left;cursor:pointer}.feed-card-title{font-family:"Noto Serif KR",Georgia,serif;font-size:1.05rem;font-weight:700}.feed-card-subtitle,.feed-card-title{margin:0 0 .5rem;width:100%;min-width:0;color:var(--library-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-card-subtitle{font-size:.82rem;text-align:right}.feed-card-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;margin:0 0 .85rem;font-size:.88rem;line-height:1.6;color:var(--library-ink-soft)}.feed-card-preview--blocked{display:flex;align-items:center;justify-content:center;text-align:center;min-height:4.8em}.feed-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem .6rem;margin-top:auto;font-size:.76rem;color:var(--library-ink-soft);opacity:.85}.feed-card-meta-author{font-weight:600}.feed-card-meta-side{display:flex;align-items:center;gap:.3rem .6rem;margin-left:auto}.feed-card-stats{display:flex;align-items:center;gap:.65rem}.feed-card-stat{display:inline-flex;align-items:center;gap:.2rem}.feed-sort-toggle{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin:0 0 .6rem}.feed-sort-btn{background:none;border:none;padding:0;font-size:.8rem;font-weight:600;color:var(--library-ink-soft);text-decoration:none}.feed-sort-btn:hover{color:var(--library-ink)}.feed-sort-btn.is-active{color:var(--library-gold)}.pagination{flex-wrap:wrap;gap:.4rem;margin-top:1.5rem}.pagination,.pagination-btn{display:flex;align-items:center;justify-content:center}.pagination-btn{flex-shrink:0;width:36px;height:36px;border:1px solid var(--library-paper-shadow);border-radius:8px;background:#fff;color:var(--library-ink);font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.pagination-btn:hover{border-color:var(--library-gold);color:var(--library-gold)}.pagination-btn.is-active{background:var(--library-gold);border-color:var(--library-gold);color:#fff}.pagination-btn--edge{color:var(--library-ink-soft);font-weight:700}.pagination-btn.is-disabled{pointer-events:none;opacity:.35}.review-engagement{margin-top:.5rem}.review-engagement-stats{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding-right:.5rem}.review-engagement-stats.is-expanded{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--library-paper-shadow)}.review-stat{font-size:.85rem}.review-like-button,.review-stat{display:inline-flex;align-items:center;gap:.3rem;color:var(--library-ink-soft)}.review-like-button{border:none;background:transparent;padding:0;font:inherit;font-size:.85rem;cursor:pointer;transition:color .15s ease}.review-like-button.is-liked,.review-like-button:hover{color:var(--library-danger)}.review-like-button[aria-disabled=true]{cursor:default}.review-like-button[aria-disabled=true]:hover{color:var(--library-ink-soft)}.review-comment-toggle{border:none;background:transparent;padding:0;font:inherit;cursor:pointer}.review-comments{margin-top:.5rem}.comment-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;color:#fff;font-weight:700;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.comment-avatar--32{width:32px;height:32px;font-size:.85rem}.review-comment-list{list-style:none;margin:0 0 1.25rem;padding:0}.review-comment-item{border-bottom:1px solid var(--library-paper-shadow);padding:.75rem 0}.review-comment-list>.review-comment-item:last-child{border-bottom:none}.review-comment-row{display:flex;align-items:flex-start;gap:.65rem}.review-comment-main{position:relative;flex:1 1 auto;min-width:0;padding-right:2.4rem}.review-comment-headline{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem;margin-bottom:.1rem}.review-comment-author,.review-comment-time{font-size:13px;font-weight:500;color:var(--library-ink-soft)}.review-comment-separator{font-size:13px;color:var(--library-ink-soft);-webkit-user-select:none;-moz-user-select:none;user-select:none}.review-comment-edited{font-size:14px;color:var(--library-ink-soft)}.review-comment-content{margin:0;font-size:16px;line-height:1.6;color:var(--library-ink);white-space:pre-wrap;word-break:break-all;overflow-wrap:break-word}.review-comment-form{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:1.25rem}.review-comment-form-box{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--library-paper-shadow);border-radius:14px;overflow:hidden;transition:border-color .15s ease}.review-comment-form-box:focus-within{border-color:var(--library-gold)}.review-comment-form-textarea{width:100%;box-sizing:border-box;border:none;outline:none;resize:none;overflow:hidden;padding:.55rem .9rem .1rem;font:inherit;font-size:.95rem;line-height:1.5;color:var(--library-ink);background:transparent}.review-comment-form-textarea::placeholder{color:var(--library-ink-soft);opacity:.6}.review-comment-form-bottom-bar{display:flex;justify-content:flex-end;align-items:center;padding:.3rem .5rem .4rem}.review-comment-form-submit{border:none;border-radius:8px;padding:.25rem .85rem;font:inherit;font-size:.78rem;font-weight:600;background:var(--library-gold);color:#fff;cursor:pointer}.review-comment-form-submit:hover{background:var(--library-gold-soft)}.review-comment-form-submit:disabled{opacity:.6;cursor:default}.review-comment-reply-form-wrap{margin-top:.25rem;margin-bottom:.25rem;margin-right:-2.4rem}.review-comment-reply-form-wrap .review-comment-form{margin-bottom:0}.review-comment-edit-form textarea{margin-bottom:.6rem}.review-comment-menu{position:relative}.review-comment-menu-trigger{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;padding:.2rem;color:var(--library-ink-soft);cursor:pointer;border-radius:6px}.review-comment-menu-trigger:hover{background:var(--library-paper)}.review-comment-menu-list{position:absolute;top:calc(100% + .25rem);right:0;z-index:20;display:flex;flex-direction:column;min-width:96px;background:#fff;border:1px solid var(--library-paper-shadow);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.12);overflow:hidden}.review-comment-menu-list button{border:none;background:transparent;padding:.5rem .85rem;font-size:.82rem;text-align:left;color:var(--library-ink);cursor:pointer}.review-comment-menu-list button:hover{background:var(--library-paper)}.review-comment-footer{display:flex;align-items:center;gap:.9rem;margin-top:.2rem}.review-comment-reply-text-btn{border:none;background:transparent;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--library-ink-soft);cursor:pointer}.review-comment-reply-text-btn:hover{color:var(--library-ink)}.review-comment-actions{position:absolute;top:-.3rem;right:-.2rem;gap:.15rem}.review-comment-actions,.review-comment-like-btn{display:flex;flex-direction:column;align-items:center}.review-comment-like-btn{gap:.1rem;border:none;background:transparent;padding:0;font:inherit;font-size:.72rem;color:var(--library-ink-soft);cursor:pointer}.review-comment-like-btn:hover{color:var(--library-ink)}.review-comment-like-btn.is-active{color:var(--library-gold)}.review-comment-like-btn[aria-disabled=true]{cursor:default}.review-comment-like-btn[aria-disabled=true]:hover{color:var(--library-ink-soft)}.review-comment-replies{list-style:none;margin:.25rem 0 0;padding:0}.review-comment-replies>.review-comment-item:last-child{border-bottom:none}.review-comment-item--reply{margin-left:42px}.review-comment-sort-toggle{display:flex;justify-content:flex-start;align-items:center;gap:1.25rem;margin:0 0 .75rem}.review-comment-sort-btn{position:relative;background:none;border:none;padding:0 0 .4rem;font:inherit;font-size:.85rem;font-weight:600;color:var(--library-ink-soft);text-decoration:none;cursor:pointer}.review-comment-sort-btn:hover{color:var(--library-ink)}.review-comment-sort-btn.is-active{color:var(--library-gold)}.review-comment-sort-btn.is-active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--library-gold)}.review-comment-count{padding-bottom:.4rem;font-size:.85rem;font-weight:600;color:var(--library-ink-soft)}.review-comment-count-divider{padding-bottom:.4rem;color:var(--library-paper-shadow);font-size:.85rem;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.review-comment-list-end{margin:.25rem 0 0;text-align:center;color:var(--library-ink-soft);font-size:.85rem}.review-comment-load-more-btn{display:block;margin:.5rem auto 0;border:none;background:transparent;padding:0;font:inherit;font-size:.85rem;font-weight:600;color:var(--library-ink-soft);cursor:pointer}.review-comment-load-more-btn:hover{color:var(--library-ink)}.review-comment-load-more-item{list-style:none;margin-left:42px}.review-comment-load-more-item .review-comment-load-more-btn{margin:.3rem 0 0;font-size:12px;text-align:left}.review-comment-empty{margin:.5rem 0;text-align:center;color:var(--library-ink-soft);font-size:.9rem}@media (max-width:768px){.comment-avatar--32{width:28px;height:28px;font-size:.78rem}.review-comment-row{gap:.5rem}.review-comment-item--reply,.review-comment-load-more-item{margin-left:36px}.review-comment-author{font-size:12px}.review-comment-content{font-size:15px}}.me-page{padding-top:1.25rem}.me-profile{flex-direction:column;text-align:center;gap:.5rem;margin-bottom:1.5rem}.me-avatar,.me-profile{display:flex;align-items:center}.me-avatar{flex-shrink:0;width:72px;height:72px;border-radius:50%;justify-content:center;background:var(--library-spine-neutral);color:var(--library-ink-soft)}.me-daily-card{margin:.6rem 0 1.5rem;padding:.85rem 1rem;background:var(--library-paper);border:1px solid var(--library-paper-shadow);border-radius:14px}.me-daily-card-title{margin:0 0 .25rem;font-size:.8rem;font-weight:700;color:var(--library-gold);letter-spacing:.02em}.me-daily-card-message{margin:0;font-size:.85rem;color:var(--library-ink)}.me-stats-card .paper-section-title{margin-bottom:.85rem}.me-stats{display:flex;text-align:center}.me-stat{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:0 .5rem}.me-stat+.me-stat{border-left:1px solid var(--library-paper-shadow)}.me-stat-label{font-size:.78rem;color:var(--library-ink-soft)}.me-stat-value{font-size:1.7rem;font-weight:800;color:var(--library-ink);line-height:1}.me-menu-item a,.me-menu-item-link{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;padding:.85rem 1rem;color:inherit;text-decoration:none}.me-menu-item-text{min-width:0}.me-menu-item-meta{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.me-menu-chevron,.me-menu-item-meta{flex-shrink:0;color:var(--library-ink-soft)}.me-signout-section{margin-top:1.5rem;padding-top:.25rem;border-top:1px solid var(--library-paper-shadow)}.me-menu-signout{width:100%;border:none;background:none;font:inherit;font-size:.95rem;font-weight:600;color:var(--library-ink-soft);text-align:left;min-height:48px;padding:.85rem 1rem;cursor:pointer}.me-menu-signout:hover{color:var(--library-ink);background:var(--library-spine-neutral)}.notification-bell-link{position:relative}.notification-bell-badge{position:absolute;top:.1rem;right:.1rem;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--library-danger);color:#fff;font-size:.65rem;font-weight:700;line-height:1.1rem;text-align:center}.notifications-empty{margin-top:1.5rem;font-size:.9rem;color:var(--library-ink-soft);text-align:center}.notifications-mark-all-button{padding:.4rem .8rem;font-size:.8rem}.notification-item .notification-item-link{position:relative;display:flex;flex-direction:column;gap:.2rem;padding:.85rem 4.5rem .85rem 1rem;color:inherit;text-decoration:none}.notification-item-type-label{position:absolute;top:.85rem;right:1rem;display:flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:500;letter-spacing:.02em;color:var(--library-ink-soft)}.notification-item-dot{flex-shrink:0;width:.5rem;height:.5rem;border-radius:999px;background:var(--library-danger)}.notification-item-header{display:flex;align-items:center;gap:.4rem}.notification-item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--library-gold)}.notification-item-title{min-width:0;font-weight:600;color:var(--library-ink)}.notification-item:not(.notification-item-unread) .notification-item-title{font-weight:400;color:var(--library-ink-soft)}.notification-item-body{margin-left:calc(1.125rem + .4rem);font-size:.82rem;color:var(--library-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-account-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.me-account-card-header .paper-section-title{margin-bottom:0;font-size:1.05rem}.me-account-field{display:flex;flex-direction:column;gap:.3rem;padding:.85rem 0;border-bottom:1px solid var(--library-paper-shadow)}.me-account-field:last-child{border-bottom:none}.me-account-label{font-size:.78rem;color:var(--library-ink-soft)}.me-account-value{font-size:.95rem;font-weight:400;color:var(--library-ink)}.me-account-password-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.me-account-success-text{margin:.35rem 0 0;font-size:.78rem;color:#3f5a48}.me-account-pending-badge{margin:.35rem 0 0;font-size:.78rem;color:var(--library-gold)}.me-account-field--flush{border-bottom:none}.me-account-input--plain,.me-account-input--plain:focus{border:none;border-radius:0;background:transparent;padding-left:0;padding-right:0}.me-account-delete-trigger{display:block;width:100%;box-sizing:border-box;padding:0;border:none;background:transparent;font:inherit;font-size:.95rem;font-weight:600;color:var(--library-danger);text-align:left;cursor:pointer}.me-account-delete-trigger:hover{color:var(--library-danger-soft)}.quote-limit-purchase-header{margin-bottom:1.25rem;text-align:center}.quote-limit-purchase-page-title{text-align:center}.quote-limit-purchase-intro{margin:.35rem 0 0;font-size:.9rem;color:var(--library-ink-soft)}.quote-limit-purchase-summary{border:1px solid var(--library-paper-shadow);border-radius:12px;padding:23px 30px;background:#fff;margin-bottom:1.25rem}.quote-limit-purchase-header-row{display:flex;align-items:flex-start;gap:6px;margin-bottom:17px}.quote-limit-purchase-icon{flex-shrink:0;margin-top:-9px}.shelf-limit-purchase-header-row{display:flex;align-items:flex-start;gap:0;margin-bottom:17px}.shelf-limit-purchase-icon{flex-shrink:0;margin-top:-11px}.quote-limit-purchase-heading{display:flex;flex-direction:column;gap:4px}.quote-limit-purchase-title{font-size:17px;font-weight:500;line-height:1.35;color:var(--library-ink)}.quote-limit-purchase-scope-note{margin:0;font-size:13px;font-weight:400;color:var(--library-ink-soft)}.quote-limit-purchase-divider{border:none;border-top:1px solid hsla(72,21%,86%,.7);margin:0}.quote-limit-purchase-stats{display:grid;grid-template-columns:1fr 1fr;margin-top:15px}.quote-limit-purchase-stat{position:relative;display:flex;flex-direction:column;gap:4px;text-align:center}.quote-limit-purchase-stat+.quote-limit-purchase-stat:before{content:"";position:absolute;top:50%;left:0;transform:translateY(-50%);width:1px;height:32px;background:var(--library-paper-shadow)}.quote-limit-purchase-stat-label{font-size:12px;font-weight:500;color:var(--library-ink-soft)}.quote-limit-purchase-stat-value{font-size:20px;font-weight:600;line-height:1.2;color:var(--library-gold-muted)}.quote-limit-purchase-submit{margin-top:.9rem}