:root{--light-peach:#f3c7a8;--light-pink:#e89bb8;--dark-lavender:#6a405c;--dusty-rose:#5c4452;--soft-grey:#a8b4a5;--paper:#fff8f0;--wood:#8b5a3c;--wood-dark:#5c3a24;--ink:#3a2a32;--status-reading:#d4892a;--status-completed:#3e7a4a;--status-toread:#6b5688;--status-tobuy:#7a7a7a;--header:#7a4e6a;--radius:14px;--radius-sm:10px;--touch:44px;--nav-h:72px;--font-display:"Literata",Georgia,"Times New Roman",serif;--font-ui:"Source Sans 3","Segoe UI",system-ui,sans-serif;--shadow-soft:0 10px 28px #5a322824;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip;overflow-y:auto;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background:radial-gradient(circle at top,#f8d9bf 0,#0000 46%),var(--light-peach);color:var(--dark-lavender);font-family:var(--font-ui);margin:0;min-height:100vh;min-height:100dvh;overscroll-behavior-y:none;padding:0;touch-action:manipulation}.app-logo,.book-detail__info h3,.books-header h2,.example-bookcase__header h2,.home-brand,.login-brand,.login-form h2,h1,h2,h3{font-family:var(--font-display)}img{height:auto;max-width:100%}a,button,input,select,textarea{font-family:var(--font-ui)}button,input,select,textarea{appearance:none;font-size:16px}a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.65}:focus-visible{outline:2px solid var(--dark-lavender);outline-offset:3px}.route-loading{align-items:center;color:var(--dusty-rose);display:flex;flex-direction:column;gap:14px;padding:48px 16px}.route-loading__shelf{align-items:flex-end;background:linear-gradient(#f7e3d0,#f7e3d0) padding-box;border-radius:8px;box-shadow:inset 0 -12px 0 var(--wood-dark);display:flex;gap:4px;padding:18px 16px 10px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.toast-stack{bottom:max(72px,calc(var(--safe-bottom) + 64px));flex-direction:column;pointer-events:none;position:fixed;right:max(12px,var(--safe-right));width:min(360px,calc(100vw - 24px));z-index:200}.toast,.toast-stack{display:flex;gap:8px}.toast{align-items:flex-start;animation:toastIn .22s ease;background:#fff8f0;border:1px solid #7a4e6a29;border-radius:12px;box-shadow:0 14px 32px #28121238;padding:12px 12px 12px 14px;pointer-events:auto}.toast--success{background:linear-gradient(135deg,#fff8f0,#3e7a4a1f);border-color:#3e7a4a59}.toast--error{background:linear-gradient(135deg,#fff8f0,#9b2c2c1a);border-color:#9b2c2c59}.toast--warning{background:linear-gradient(135deg,#fff8f0,#d4892a24);border-color:#d4892a73}.toast--info{border-color:#7a4e6a47}.toast__text{color:var(--ink);flex:1 1;font-family:var(--font-ui);font-size:.92rem;line-height:1.4;margin:0;overflow-wrap:anywhere;word-break:break-word}.toast__close{background:#7a4e6a1a;border:0;border-radius:8px;color:var(--dark-lavender);cursor:pointer;flex:0 0 auto;font-size:1.2rem;height:32px;line-height:1;width:32px}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.notify-bell{position:relative}.notify-bell__btn{align-items:center;background:#fff8f08c;border:0;border-radius:12px;color:var(--dark-lavender);cursor:pointer;display:inline-flex;height:42px;justify-content:center;position:relative;width:42px}.notify-bell__btn.is-open,.notify-bell__btn:hover{background:#7a4e6a24}.notify-bell__icon{height:20px;width:20px}.notify-bell__badge{background:#9b2c2c;border-radius:999px;color:#fff;font-family:var(--font-ui);font-size:.65rem;font-weight:700;height:16px;line-height:16px;min-width:16px;padding:0 4px;position:absolute;right:4px;text-align:center;top:4px}.notify-panel{background:#fff8f0;border:1px solid #7a4e6a29;border-radius:14px;box-shadow:0 18px 40px #2812123d;display:flex;flex-direction:column;max-height:min(420px,70vh);overflow:hidden;position:fixed;width:min(340px,calc(100vw - 24px));z-index:220}.notify-panel--mobile{bottom:calc(72px + var(--safe-bottom));bottom:calc(var(--nav-h, 64px) + var(--safe-bottom) + 8px);left:12px;max-height:min(420px,calc(100dvh - 88px - var(--safe-bottom)));max-height:min(420px,calc(100dvh - var(--nav-h, 64px) - var(--safe-bottom) - 24px));right:12px;top:auto;width:auto}.notify-panel__head{align-items:center;border-bottom:1px solid #7a4e6a1a;display:flex;gap:8px;justify-content:space-between;padding:12px 12px 8px}.notify-panel__head h2{color:var(--dusty-rose);font-family:var(--font-display);font-size:1.15rem;margin:0}.notify-panel__actions{display:flex;gap:6px}.notify-panel__actions button{background:#0000;border:0;color:var(--dark-lavender);cursor:pointer;font-family:var(--font-ui);font-size:.78rem;font-weight:700;padding:4px 6px}.notify-panel__empty{color:var(--dusty-rose);font-family:var(--font-ui);margin:0;padding:24px 14px;text-align:center}.notify-panel__list{list-style:none;margin:0;overflow:auto;padding:0}.notify-panel__item{align-items:stretch;border-bottom:1px solid #7a4e6a14;display:flex;gap:4px}.notify-panel__item.is-unread{background:#e89bb81f}.notify-panel__body{background:#0000;border:0;color:inherit;cursor:pointer;flex:1 1;font:inherit;padding:10px 8px 10px 12px;text-align:left}.notify-panel__msg{color:var(--ink);font-size:.88rem;line-height:1.35}.notify-panel__msg,.notify-panel__when{display:block;font-family:var(--font-ui)}.notify-panel__when{color:var(--dusty-rose);font-size:.72rem;margin-top:4px}.notify-panel__remove{background:#0000;border:0;color:var(--dusty-rose);cursor:pointer;font-size:1.2rem;width:36px}@media (min-width:721px){.toast-stack{bottom:max(20px,var(--safe-bottom))}}.consent-banner{background:#fff8f0;border:1.5px solid #7a4e6a4d;border-radius:14px;bottom:76px;bottom:calc(var(--nav-h, 64px) + var(--safe-bottom, 0px) + 12px);box-shadow:0 16px 36px #28121c40;color:var(--ink);font-family:var(--font-ui);left:12px;margin:0 auto;max-width:640px;padding:16px 16px 14px;position:fixed;right:12px;z-index:60}@media (min-width:721px){.consent-banner{bottom:max(16px,0px);bottom:max(16px,var(--safe-bottom,0px))}}.consent-banner__title{font-family:var(--font-display);font-size:1.1rem;margin:0 0 6px}.consent-banner__text{font-size:.9rem;line-height:1.45;margin:0 0 12px}.consent-banner__text a{color:var(--dark-lavender);font-weight:700}.consent-banner__actions{display:flex;flex-wrap:wrap;gap:8px}.consent-banner__btn{background:var(--dark-lavender);border-radius:10px;color:#fff8f0;flex:1 1 140px;font-size:.95rem}.consent-banner__btn,.consent-banner__link{border:0;cursor:pointer;font-family:var(--font-ui);font-weight:700;min-height:44px}.consent-banner__link{background:#0000;color:var(--dark-lavender);padding:0 12px}.app-footer__consent{background:#0000;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-decoration:underline}.app-shell{display:flex;flex-direction:column;max-width:100%;min-height:100vh;min-height:100dvh;min-width:0;padding-left:var(--safe-left);padding-right:var(--safe-right)}.app-header{align-items:center;background:linear-gradient(180deg,#ffffff14,#0000 40%),linear-gradient(135deg,#8a5a77 0,var(--dark-lavender) 55%,#6a4060 100%);background:linear-gradient(180deg,#ffffff14,#0000 40%),linear-gradient(135deg,#8a5a77 0,var(--header,var(--dark-lavender)) 55%,#6a4060 100%);box-shadow:0 10px 24px #3a1e3029;color:#fff;display:flex;gap:14px;justify-content:space-between;padding:calc(12px + var(--safe-top)) 18px 12px;position:sticky;top:0;transition:padding .2s ease,box-shadow .2s ease;z-index:60}.app-header.is-scrolled{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 28px #28122047;padding-bottom:8px;padding-top:calc(8px + var(--safe-top))}.app-logo{align-items:center;color:#fff;display:inline-flex;gap:10px;min-height:var(--touch);text-decoration:none}.app-header__notify{margin-left:8px}.app-header__notify .notify-bell__btn{background:#ffffff1f;color:#fff}.app-header__notify .notify-bell__btn.is-open,.app-header__notify .notify-bell__btn:hover{background:#ffffff38}.app-logo__mark{background:linear-gradient(90deg,#00000040,#0000 40%,#fff3 55%,#0003),#f3e6d2;border-radius:2px;box-shadow:inset 1px 0 0 #ffffff59,0 2px 6px #0003;height:28px;transform:rotate(-6deg);width:12px}.app-logo__text{font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:-.02em;line-height:1}.app-nav{gap:12px;margin-left:auto}.app-nav,.app-nav__links{align-items:center;display:flex}.app-nav__links{background:#00000029;border:1px solid #ffffff1a;border-radius:999px;gap:4px;padding:4px}.app-nav__links a{border-radius:999px;color:#ffffffd1;font-size:.95rem;font-weight:600;min-height:40px;padding:8px 14px;text-decoration:none;transition:background .15s ease,color .15s ease}.app-nav__links a.active{background:#fff8f0;box-shadow:0 4px 12px #0000001f;color:#3a2a32}.app-nav__auth{align-items:center;display:flex;gap:8px}.app-nav__cta,.app-nav__ghost{align-items:center;border-radius:999px;display:inline-flex;font-size:.95rem;font-weight:700;justify-content:center;min-height:40px;padding:8px 14px;text-decoration:none}.app-nav__ghost{border:1px solid #ffffff47;color:#fff}.app-nav__cta{background:#fff8f0;box-shadow:0 6px 14px #00000024;color:var(--dark-lavender)}.app-nav__cta.active,.app-nav__ghost.active{outline:2px solid #ffffff8c;outline-offset:2px}.app-nav__account{position:relative}.app-avatar-btn{background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;color:#fff;cursor:pointer;gap:8px;min-height:40px;padding:4px 10px 4px 4px}.app-avatar,.app-avatar-btn{align-items:center;display:inline-flex}.app-avatar{background:linear-gradient(145deg,#f4e6d4,#d9b49a);border-radius:50%;box-shadow:inset 0 1px 0 #ffffff8c;color:var(--ink);font-size:.9rem;font-weight:700;height:32px;justify-content:center;width:32px}.app-avatar--sm{font-size:.75rem;height:24px;width:24px}.app-user{font-size:.9rem;font-weight:600;max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-account-menu{animation:menu-pop .16s ease;background:#fff8f0;background:var(--paper,#fff8f0);border:1px solid #7a4e6a1f;border-radius:14px;box-shadow:0 16px 36px #28121c47;color:var(--ink);min-width:190px;padding:12px;position:absolute;right:0;top:calc(100% + 8px);z-index:40}.app-account-menu__label{color:var(--dusty-rose);font-size:.7rem;letter-spacing:.12em;margin:0;text-transform:uppercase}.app-account-menu__name{color:var(--ink);font-weight:700;margin:4px 0 0}.app-account-menu__email{color:var(--dusty-rose);font-size:.82rem;margin:2px 0 0;word-break:break-all}.app-account-menu__logout{background:#7a4e6a1f;border:0;color:var(--dark-lavender);cursor:pointer;margin-top:12px}.app-account-menu__link,.app-account-menu__logout{border-radius:10px;font-weight:700;min-height:40px;width:100%}.app-account-menu__link{align-items:center;background:var(--dark-lavender);color:#fff8f0;display:flex;justify-content:center;margin-top:10px;text-decoration:none}.app-account-menu__link--ghost{background:#0000;border:1.5px solid #7a4e6a59;color:var(--dark-lavender)}.app-main{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1100px;min-width:0;padding:16px;width:100%}.app-shell--auth .app-main{align-items:flex-start;display:flex;justify-content:center}.app-nav-mobile{display:none}.nav-icon{display:block;height:22px;width:22px}@keyframes menu-pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (hover:hover){.app-nav__links a:hover{background:#ffffff1f;color:#fff}.app-avatar-btn:hover,.app-nav__ghost:hover{background:#ffffff29}.app-nav__cta:hover{filter:brightness(1.04)}.app-account-menu__logout:hover{background:#7a4e6a33}}@media (max-width:720px){.app-nav--desktop{display:none}.app-header__notify{margin-left:auto}.app-header{padding-left:14px;padding-right:14px}.app-logo__text{font-size:1.3rem}.app-main{padding:12px 12px calc(var(--nav-h) + var(--safe-bottom) + 22px)}.app-nav-mobile{grid-gap:4px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#3a2230eb;border:1px solid #ffffff1a;border-radius:18px;bottom:calc(8px + var(--safe-bottom));box-shadow:0 14px 34px #28121c47,inset 0 1px 0 #ffffff1f;display:grid;gap:4px;grid-template-columns:repeat(3,1fr);left:10px;min-height:calc(var(--nav-h) - 4px);padding:6px;position:fixed;right:10px;transition:opacity .2s ease,transform .22s ease;z-index:40}body.bookit-sheet-open .app-nav-mobile{opacity:0;pointer-events:none;transform:translateY(120%)}.app-nav-mobile__item{align-items:center;background:#0000;border:0;border-radius:14px;color:#ffffffad;cursor:pointer;display:flex;flex-direction:column;font-size:.7rem;font-weight:600;gap:3px;justify-content:center;letter-spacing:.02em;min-height:52px;padding:6px 8px;position:relative;text-decoration:none;transition:background .15s ease,color .15s ease}.app-nav-mobile a.active,.app-nav-mobile__item.is-open{background:#fff8f024;color:#fff}.app-nav-mobile a.active:before{background:#f3e6d2;border-radius:999px;content:"";height:3px;position:absolute;top:6px;width:16px}.app-nav-mobile__account{align-items:stretch;display:flex;justify-content:center;min-width:0;position:relative}.app-account-menu--mobile{bottom:calc(100% + 10px);left:auto;min-width:168px;right:0;top:auto}}.skip-link{background:var(--paper);border-radius:var(--radius-sm);color:var(--ink);left:12px;padding:10px 14px;position:absolute;top:12px;transform:translateY(-160%);z-index:80}.skip-link:focus{transform:none}.app-footer{background:#fff8f0b8;border:1px solid #3a2a3214;border-radius:18px;box-shadow:0 8px 22px #5a32280f;box-sizing:border-box;margin:12px auto 16px;padding:8px;width:min(1100px,calc(100% - 24px))}.app-footer__nav{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.app-footer__nav a{align-items:center;border-radius:999px;color:var(--dark-lavender);display:inline-flex;font-size:.92rem;font-weight:600;justify-content:center;min-height:40px;padding:0 14px;text-decoration:none}.app-footer__nav a:hover{background:#6a405c14}.app-footer__nav a.active{background:var(--dark-lavender);color:var(--paper)}@media (max-width:720px){.app-footer{margin:12px auto calc(var(--nav-h) + var(--safe-bottom) + 18px);width:calc(100% - 20px)}.app-footer__nav a{flex-basis:calc(50% - 6px);flex-grow:1;flex-shrink:1;min-width:0}}.physical-book{height:210px;margin:0 auto 10px;width:150px}.physical-book__scene{align-items:flex-end;display:flex;height:100%;justify-content:center;width:100%}.physical-book__block{display:flex;height:196px;position:relative;transform:perspective(700px) rotateY(-16deg);transform-origin:left center;transition:transform .25s ease;width:132px}.physical-book:not(.physical-book--shelf):hover .physical-book__block{transform:perspective(700px) rotateY(-6deg) translateY(-6px)}.physical-book--shelf{align-items:stretch;display:flex;filter:drop-shadow(1px 2px 2px rgba(0,0,0,.35));margin:0;overflow:visible;position:relative;transform:rotate(0deg);transform:rotate(var(--book-lean,0deg));transform-origin:bottom center;transition:transform .22s ease,filter .22s ease}.physical-book__spine-face{align-items:center;background-color:#3d2a32;border-radius:1px 1px 0 0;box-shadow:inset 1px 0 0 #ffffff1f,inset -1px 0 0 #00000059;box-sizing:border-box;display:flex;flex-direction:column;height:100%;justify-content:space-between;overflow:hidden;padding:14px 1px 10px;position:relative;width:100%}.physical-book__spine-shade{background:linear-gradient(90deg,#0000006b,#00000014 38%,#ffffff24 52%,#00000047);inset:0;pointer-events:none;position:absolute;z-index:1}.physical-book--wishlist .physical-book__spine-face{box-shadow:inset 1px 0 0 #ffffff38,inset -1px 0 0 #00000047,inset 0 0 0 1px #fff3;filter:none}.physical-book--wishlist .physical-book__spine-author,.physical-book--wishlist .physical-book__spine-title{opacity:.95}.bookcase__book--wishlist{opacity:.68}.bookcase__book--wishlist .physical-book--shelf{filter:drop-shadow(0 0 4px rgba(245,236,220,.95)) drop-shadow(0 0 12px rgba(168,196,210,.75)) drop-shadow(1px 2px 2px rgba(0,0,0,.2))}.bookcase__book--wishlist .physical-book__spine-face{outline:1px dashed #f5ecdcb3;outline-offset:-1px}.bookcase__book--wishlist.is-open,.bookcase__book--wishlist:focus-visible,.bookcase__book--wishlist:hover{opacity:.9}.physical-book--wishlist.physical-book--display,.physical-book--wishlist.physical-book--hero{filter:drop-shadow(0 0 8px rgba(245,236,220,.9)) drop-shadow(0 0 20px rgba(168,196,210,.65));opacity:.55}.physical-book--wishlist.physical-book--display .physical-book__block,.physical-book--wishlist.physical-book--hero .physical-book__block{filter:none;opacity:1}.bookcase__book--wishlist .physical-book__status-tape--to-buy,.physical-book--wishlist .physical-book__status-tape--to-buy{box-shadow:0 0 6px #c8dce6e6,inset 0 1px 0 #ffffff59,inset 0 -1px 0 #0003}.physical-book__spine-band{background:linear-gradient(180deg,#ffffff24,#0000002e);height:6px;left:0;opacity:.4;position:absolute;right:0;top:22%;z-index:1}.physical-book__status-tape{bottom:2px;box-shadow:inset 0 1px 0 #ffffff40,inset 0 -1px 0 #0003;height:7px;left:0;position:absolute;right:0;top:auto;z-index:2}.physical-book__status-tape--to-read{background:#6b5688;background:var(--status-toread,#6b5688)}.physical-book__status-tape--to-buy{background:#7a7a7a;background:var(--status-tobuy,#7a7a7a)}.physical-book__status-tape--reading{background:#d4892a;background:var(--status-reading,#d4892a)}.physical-book__status-tape--completed{background:#3e7a4a;background:var(--status-completed,#3e7a4a)}.physical-book__spine-shine{background:linear-gradient(90deg,#0000,#ffffff24 45%,#0000 70%);inset:0;pointer-events:none;position:absolute;z-index:2}.physical-book__spine-author,.physical-book__spine-title{color:#f3e6d2;color:var(--spine-ink,#f3e6d2);max-width:100%;overflow:hidden;position:relative;text-align:center;text-orientation:mixed;writing-mode:vertical-rl;z-index:2}.physical-book__spine-title{font-family:Literata,Georgia,serif;font-family:var(--font-display,Literata,Georgia,serif);font-size:.62rem;letter-spacing:.02em;line-height:1.05;margin:0;max-height:58%}.physical-book__spine-author{font-size:.45rem;letter-spacing:.06em;max-height:24%;opacity:.82;text-transform:uppercase}.bookcase__book.is-open .physical-book--shelf,.bookcase__book:focus-visible .physical-book--shelf,.bookcase__book:hover .physical-book--shelf{filter:drop-shadow(2px 8px 10px rgba(0,0,0,.45));transform:translateY(-26px) rotate(0deg) scale(1.04)}.bookcase__book--wishlist.is-open .physical-book--shelf,.bookcase__book--wishlist:focus-visible .physical-book--shelf,.bookcase__book--wishlist:hover .physical-book--shelf{filter:drop-shadow(0 0 6px rgba(255,248,236,1)) drop-shadow(0 0 18px rgba(150,190,210,.9)) drop-shadow(2px 8px 10px rgba(0,0,0,.35))}.physical-book__spine{background-blend-mode:overlay;background-image:linear-gradient(90deg,#0000008c,#ffffff2e 42%,#0006);border-radius:3px 0 0 3px;box-shadow:inset 0 0 0 1px #00000040;flex:0 0 14px;height:100%}.physical-book__front{border-radius:0 3px 3px 0;box-shadow:16px 18px 22px #28121261,inset 10px 0 12px #00000047;flex:1 1;height:100%;overflow:hidden;position:relative}.physical-book__art{display:block;height:100%;object-fit:cover;width:100%}.physical-book__fallback{box-sizing:border-box;color:#f4e6d4;display:flex;flex-direction:column;height:100%;justify-content:space-between;padding:18px 12px}.physical-book__fallback-title{font-family:Georgia,Times New Roman,serif;font-size:.95rem;line-height:1.25;margin:0}.physical-book__fallback-author{font-size:.7rem;letter-spacing:.04em;margin:0;opacity:.85;text-transform:uppercase}.physical-book__gloss{background:linear-gradient(118deg,#ffffff47,#fff0 36%,#00000029);inset:0;pointer-events:none;position:absolute}.physical-book__pages{align-self:center;background:repeating-linear-gradient(90deg,#fffaf0 0,#fffaf0 1px,#d8d0c0 0,#d8d0c0 2px);border-radius:0 2px 2px 0;box-shadow:2px 0 0 #0000001f;flex:0 0 10px;height:calc(100% - 8px)}.book-tile{align-items:center;background:#0000;border:0;display:flex;flex-direction:column;padding:8px 6px 16px;text-align:center;width:180px}.book-tile__meta{width:100%}.book-tile__title{color:#725d68;color:var(--dusty-rose,#725d68);font-size:.95rem;line-height:1.3;margin:10px 0 4px}.book-tile__author,.book-tile__isbn{color:#725d68;color:var(--dusty-rose,#725d68);font-size:.8rem;margin:0 0 4px;opacity:.85}.physical-book__badge{background:#3a2a32d1;border-radius:999px;bottom:10px;color:#fff;font-size:.65rem;left:8px;letter-spacing:.04em;padding:3px 8px;position:absolute;text-transform:uppercase;z-index:2}.physical-book__badge--reading{background:#b06c24eb}.physical-book__badge--completed{background:#3e7a4aeb}.physical-book__badge--to-read{background:#5a466eeb}.physical-book__badge--to-buy{background:#5a5a5aeb}.physical-book__badge--lent{background:#b05834f0;bottom:10px;left:auto;right:8px}.physical-book__lent-dot{background:#e8b86d;border-radius:50%;box-shadow:0 0 0 1px #2a181c59;height:7px;position:absolute;right:3px;top:8px;width:7px;z-index:3}.physical-book--hero{height:168px;width:118px}.physical-book--hero .physical-book__block{height:156px;width:104px}.book-shelf{background:linear-gradient(#f7e3d0,#f7e3d0) padding-box,repeating-linear-gradient(90deg,var(--wood-dark) 0 14px,var(--wood) 14px 28px);background-position:top,bottom;background-repeat:no-repeat;background-size:100% calc(100% - 18px),100% 18px;border-radius:0 0 16px 16px;box-shadow:inset 0 -18px 0 var(--wood-dark);display:flex;flex-wrap:wrap;gap:28px 24px;justify-content:center;padding:28px 12px 36px}.book-skeleton{animation:bookPulse 1.2s ease-in-out infinite;background:linear-gradient(90deg,#e8d5c4,#f3e6d8,#e8d5c4);background-size:200% 100%;border-radius:4px;height:186px;width:118px}@keyframes bookPulse{0%{background-position:0 0}to{background-position:100% 0}}@media (max-width:640px){.physical-book{height:172px;width:120px}.physical-book__block{height:160px;width:108px}.book-tile{width:148px}}.app-modal{align-items:center;display:flex;inset:0;justify-content:center;padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left));position:fixed;z-index:140}.app-modal__backdrop{background:#2a181cb8;border:0;cursor:pointer;inset:0;position:absolute}.app-modal__panel{background:#fff8f0;border:1px solid #7a4e6a24;border-radius:18px;box-shadow:0 24px 50px #28121266;display:flex;flex-direction:column;max-height:min(90dvh,720px);overflow:hidden;position:relative;width:min(520px,100%);z-index:1}.app-modal__header{align-items:flex-start;border-bottom:1px solid #7a4e6a1a;display:flex;gap:12px;justify-content:space-between;padding:16px 16px 10px}.app-modal__header h2{color:var(--dusty-rose);font-family:var(--font-display);font-size:1.35rem;line-height:1.25;margin:0}.app-modal__x{background:#7a4e6a1a;border:0;border-radius:10px;color:var(--dark-lavender);cursor:pointer;flex:0 0 auto;font-size:1.4rem;height:40px;line-height:1;width:40px}.app-modal__body{color:var(--ink);font-family:var(--font-ui);font-size:.98rem;line-height:1.45;overflow:auto;padding:14px 16px 8px}.app-modal__body p{margin:0 0 10px}.app-modal__body label{color:var(--dusty-rose);display:flex;flex-direction:column;font-size:.88rem;font-weight:600;gap:6px}.app-modal__body input{background:#fff;border:1px solid #7a4e6a40;border-radius:10px;color:var(--ink);font-family:var(--font-ui);font-size:1rem;font-weight:500;min-height:44px;padding:0 12px}.app-modal__actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px 16px}.app-modal__btn{border:0;border-radius:var(--radius-sm);cursor:pointer;flex:1 1 120px;font-family:var(--font-ui);font-size:1rem;font-weight:700;min-height:var(--touch);padding:0 14px}.app-modal__btn:disabled{cursor:not-allowed;opacity:.55}.app-modal__btn--primary{background:var(--dark-lavender);color:#fff8f0}.app-modal__btn--danger{background:#9b2c2c;color:#fff8f0}.app-modal__btn--ghost{background:#7a4e6a1f;color:var(--dark-lavender)}.book-ratings{margin:14px 0 4px;text-align:left}.book-ratings--empty{color:var(--dusty-rose);font-size:.88rem;margin:12px 0 0}.book-ratings__heading{color:var(--dusty-rose);font-size:.78rem;letter-spacing:.12em;margin:0 0 8px;text-transform:uppercase}.book-ratings__sub{color:var(--dusty-rose);font-size:.82rem;font-weight:600;margin:0 0 6px}.book-ratings__block+.book-ratings__block{margin-top:10px}.book-ratings__row{display:flex;flex-direction:column;gap:6px}.book-ratings__meter{grid-gap:8px;align-items:center;background:#ffffff8c;border:1px solid #7a4e6a1a;border-radius:12px;display:grid;gap:8px;grid-template-columns:72px 1fr auto;padding:8px 10px}.book-ratings__label{color:var(--dusty-rose);font-size:.78rem;font-weight:700}.book-ratings__icons{color:#c9b8ae;display:inline-flex;font-size:1rem;gap:2px;letter-spacing:.02em}.book-ratings__icons span{align-items:center;color:inherit;display:inline-flex;opacity:1}.book-ratings__meter--stars .book-ratings__icons span:not(.is-on){color:#c9b8ae;opacity:.55}.book-ratings__meter--stars .book-ratings__icons span.is-on{color:#d4892a;opacity:1}.book-ratings__meter--spice .book-ratings__icons span:not(.is-on){filter:grayscale(1) brightness(1.15);opacity:.72}.book-ratings__meter--spice .book-ratings__icons span.is-on{filter:none;opacity:1}.book-ratings__value{color:var(--ink);font-size:.95rem}.book-ratings--compact{margin:0}.book-ratings--compact .book-ratings__meter{background:#28160c59;border-color:#0000;color:#f4e6d4;grid-template-columns:auto 1fr auto;padding:4px 8px}.book-ratings--compact .book-ratings__label,.book-ratings--compact .book-ratings__value{color:#f4e6d4;font-size:.72rem}.book-ratings__pill{color:#f4e6d4cc;display:inline-block;font-size:.68rem;letter-spacing:.08em;margin-bottom:4px;text-transform:uppercase}@media (max-width:720px){.book-ratings{text-align:center}.book-ratings__meter{gap:4px;grid-template-columns:1fr;justify-items:center}}.journal{align-items:center;display:flex;inset:0;justify-content:center;overscroll-behavior:none;padding:max(12px,var(--safe-top)) max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left));position:fixed;z-index:120}.journal__backdrop{background:#2a181cb8;border:0;cursor:pointer;inset:0;position:absolute;touch-action:none}.journal__panel{background:linear-gradient(90deg,#e8d5c0 0 10px,#0000 10px),#fff8f0;border:1px solid #7a4e6a1f;border-radius:18px;box-shadow:0 28px 60px #2812126b;display:flex;flex-direction:column;gap:0;max-height:min(92dvh,940px);min-height:0;overflow:hidden;padding:0;position:relative;width:min(720px,100%);z-index:1}.journal__handle{display:none}.journal__header{align-items:flex-start;background:#fff8f0f5;border-bottom:1px solid #7a4e6a1a;display:flex;flex:0 0 auto;gap:12px;justify-content:space-between;padding:16px 16px 10px 18px}.journal__kicker{color:var(--dusty-rose);font-size:.72rem;letter-spacing:.14em;margin:0 0 4px;text-transform:uppercase}.journal__header h2{color:var(--ink);font-family:var(--font-display);font-size:clamp(1.3rem,4vw,1.7rem);line-height:1.2;margin:0}.journal__authors{color:var(--dusty-rose);margin:6px 0 0}.journal__close-x{background:#7a4e6a1a;border:0;border-radius:999px;color:var(--dark-lavender);cursor:pointer;flex-shrink:0;font-size:1.5rem;height:40px;line-height:1;width:40px}.journal__body{-webkit-overflow-scrolling:touch;background:repeating-linear-gradient(#0000 0 27px,#7a4e6a0f 27px 28px);flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:12px 14px 16px 18px;touch-action:pan-y}.journal__pages{display:flex;flex-direction:column;gap:14px}.journal__section{background:#ffffffb8;border:1px solid #7a4e6a1a;border-radius:14px;padding:12px}.journal__section h3{color:var(--dark-lavender);font-family:var(--font-display);font-size:1.05rem;margin:0 0 10px}.journal__grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.journal__section label{color:var(--dusty-rose);display:flex;flex-direction:column;font-size:.82rem;font-weight:600;gap:6px}.journal__section input,.journal__section textarea{background:#fff;border:1px solid #d7c4b8;border-radius:10px;box-sizing:border-box;color:var(--ink);font:inherit;font-size:16px;min-height:42px;padding:10px 12px;width:100%}.journal__section textarea{line-height:1.45;min-height:84px;resize:vertical}.journal__section input:focus,.journal__section textarea:focus{border-color:var(--dark-lavender);box-shadow:0 0 0 3px #7a4e6a29;outline:none}.journal__chilies,.journal__stars{display:flex;gap:6px;margin-bottom:12px}.journal__scale-label{color:var(--dusty-rose);font-size:.82rem;font-weight:700;margin:0 0 8px}.journal__chilies{margin-bottom:14px}.journal__chili,.journal__star{align-items:center;background:#7a4e6a14;border:0;border-radius:10px;color:#c9b8ae;cursor:pointer;display:inline-flex;font-size:1.35rem;height:44px;justify-content:center;line-height:1;transition:color .15s ease,background .15s ease,filter .15s ease,opacity .15s ease,transform .12s ease;width:44px}.journal__chili{filter:grayscale(1) brightness(1.15);opacity:.72}.journal__star.is-on{background:#d4892a24;color:#d4892a}.journal__chili.is-on{background:#c4472c24;color:#c4472c;filter:none;opacity:1}@media (hover:hover){.journal__chili:hover,.journal__star:hover{transform:translateY(-1px)}}.journal__recommend{align-items:center;color:var(--dusty-rose);display:flex;flex-wrap:wrap;font-size:.9rem;font-weight:600;gap:8px}.journal__recommend button{background:#fff;border:1px solid #5c44522e;border-radius:999px;color:var(--dusty-rose);cursor:pointer;font-weight:600;min-height:36px;padding:6px 12px}.journal__recommend button.is-active{background:var(--dark-lavender);border-color:#0000;color:#fff}.journal__error,.journal__status{font-size:.9rem;margin:10px 0 0;text-align:center}.journal__status{color:var(--dusty-rose)}.journal__error{color:#9b2c2c}.journal__actions{background:#fff8f0fa;border-top:1px solid #7a4e6a1a;display:flex;flex:0 0 auto;gap:8px;padding:10px 14px calc(12px + var(--safe-bottom))}.journal__primary,.journal__secondary{border:0;border-radius:var(--radius-sm);cursor:pointer;flex:1 1;font-weight:700;min-height:var(--touch)}.journal__primary{background:var(--dark-lavender);color:#fff}.journal__secondary{background:#7a4e6a1f;color:var(--dark-lavender)}.journal__hint{color:var(--dusty-rose);font-size:.82rem;margin:6px 0 0}.journal__upsell{background:#e89bb833;border-radius:10px;color:var(--dusty-rose);font-size:.92rem;line-height:1.4;margin:0 0 14px;padding:10px 12px}.journal__upsell a{color:var(--dark-lavender);font-weight:700}.journal__text-btn{background:none;border:0;cursor:pointer;display:inline;font:inherit;padding:0;text-decoration:underline}.journal__plus-tag,.journal__text-btn{color:var(--dark-lavender);font-weight:700}.journal__plus-tag{background:#7a4e6a24;border-radius:999px;display:inline-block;font-family:var(--font-ui);font-size:.68rem;letter-spacing:.04em;margin-left:6px;padding:1px 7px;text-transform:uppercase;vertical-align:middle}.journal__recommend.is-locked,.journal__section.is-locked{opacity:.72}.journal__recommend.is-locked button:disabled,.journal__section.is-locked input:disabled,.journal__section.is-locked textarea:disabled{cursor:not-allowed}@media (max-width:720px){.journal{align-items:flex-end;padding:0}.journal__panel{border-radius:22px 22px 0 0;height:min(92dvh,920px);max-height:min(92dvh,920px);width:100%}.journal__handle{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:0;border-radius:22px 22px 0 0;cursor:pointer;display:flex;flex:0 0 auto;height:36px;justify-content:center;margin:0;padding:0;touch-action:manipulation;width:100%}.journal__handle:after{background:#d7c4b8;border-radius:999px;content:"";display:block;height:5px;width:44px}.journal__handle:active:after{background:#b89a8c}.journal__header{padding-top:8px}.journal__grid{grid-template-columns:1fr}.journal__body{padding-bottom:20px}}.book-detail{align-items:center;display:flex;inset:0;justify-content:center;overscroll-behavior:none;padding:max(16px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left));position:fixed;z-index:80}.book-detail--dimmed{pointer-events:none}.book-detail__backdrop{background:#2a181c9e;border:0;cursor:pointer;inset:0;position:absolute;touch-action:none}.book-detail__panel{background:#fff8f0;background:var(--paper,#fff8f0);border-radius:18px;box-shadow:0 24px 50px #28121266;display:flex;flex-direction:column;max-height:min(90dvh,900px);min-height:0;overflow:hidden;padding:0;position:relative;width:min(640px,100%);z-index:1}.book-detail__scroll{-webkit-overflow-scrolling:touch;align-items:center;display:flex;flex:1 1 auto;gap:24px;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:24px;touch-action:pan-y}.book-detail__handle{display:none}.book-detail__info{flex:1 1;min-width:0}.book-detail__info h3{color:#3a2a32;color:var(--ink,#3a2a32);font-size:1.45rem;margin:0 0 8px}.book-detail__authors,.book-detail__isbn{color:var(--dusty-rose);margin:0 0 6px}.book-detail__status-label{color:var(--dusty-rose);font-size:.78rem;letter-spacing:.12em;margin:16px 0 8px;text-transform:uppercase}.book-detail__statuses{display:flex;flex-wrap:wrap;gap:8px}.book-detail__stamp{border:2px solid #0000;border-radius:999px;color:#fff;cursor:pointer;font-weight:600;min-height:var(--touch);opacity:.55;padding:8px 14px}.book-detail__stamp.is-active{box-shadow:0 0 0 3px #fff8f0e6,0 0 0 6px currentColor;opacity:1}.book-detail__stamp:disabled{cursor:default}.book-detail__stamp--to-read{background:#6b5688;background:var(--status-toread,#6b5688);color:#fff}.book-detail__stamp--to-buy{background:#7a7a7a;background:var(--status-tobuy,#7a7a7a)}.book-detail__stamp--reading{background:#d4892a;background:var(--status-reading,#d4892a)}.book-detail__stamp--completed{background:#3e7a4a;background:var(--status-completed,#3e7a4a)}.book-detail__shelves{margin-top:4px}.book-detail__shelf-chips{display:flex;flex-wrap:wrap;gap:8px}.book-detail__shelf-chip{background:#fff8f0e6;border:1.5px dashed #7a4e6a59;border-radius:999px;color:var(--dusty-rose);cursor:pointer;font-weight:600;min-height:36px;padding:6px 12px}.book-detail__shelf-chip.is-active{background:var(--dark-lavender);border-color:#0000;border-style:solid;color:#fff8f0}.book-detail__shelf-error,.book-detail__shelf-hint{color:var(--dusty-rose);font-size:.88rem;line-height:1.4;margin:0}.book-detail__shelf-hint a{color:var(--dark-lavender);font-weight:700}.book-detail__shelf-error{color:#9b2c2c;margin-top:8px}.book-detail__loan{background:linear-gradient(180deg,#fffdf9f2,#fff6ece6);border:1px solid #7a4e6a1f;border-radius:14px;box-shadow:inset 4px 0 0 #c9a227;margin-top:12px;padding:12px 12px 12px 14px}.book-detail__loan-lead,.book-detail__loan-status{color:#3a2a32;color:var(--ink,#3a2a32);font-size:.92rem;line-height:1.45;margin:0 0 10px}.book-detail__loan-status strong{color:var(--dark-lavender);overflow-wrap:anywhere;word-break:break-word}.book-detail__loan-form{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.book-detail__loan-form label{color:var(--dusty-rose);display:flex;flex-direction:column;font-size:.78rem;font-weight:700;gap:6px;letter-spacing:.06em;text-transform:uppercase}.book-detail__loan-form input{background:#fff;border:1px solid #7a4e6a40;border-radius:10px;color:var(--ink);font-family:var(--font-ui);font-size:1rem;font-weight:500;letter-spacing:0;min-height:42px;padding:0 12px;text-transform:none}.book-detail__loan-actions,.book-detail__loan-form .book-detail__loan-save{grid-column:1/-1}.book-detail__loan-actions{display:flex;flex-wrap:wrap;gap:8px}.book-detail__loan-return,.book-detail__loan-save{border:0;border-radius:999px;cursor:pointer;flex:1 1 140px;font-weight:600;min-height:var(--touch);padding:10px 14px}.book-detail__loan-save{background:var(--dark-lavender);color:#fff8f0}.book-detail__loan-return{background:#fff;border:1.5px solid #7a4e6a59;color:var(--dark-lavender)}.book-detail__loan-return:disabled,.book-detail__loan-save:disabled{cursor:default;opacity:.55}.book-detail__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.book-detail__close,.book-detail__journal,.book-detail__remove{border:0;border-radius:var(--radius-sm);cursor:pointer;flex:1 1 140px;font-weight:600;min-height:var(--touch);padding:10px 14px}.book-detail__journal{background:#fff;border:1.5px solid #7a4e6a59;color:var(--dark-lavender);flex:1 1 100%}.book-detail__remove{background:var(--dusty-rose);color:#fff}.book-detail__close{background:var(--dark-lavender);color:#fff}@media (max-width:720px){.book-detail{align-items:flex-end;padding:0}.book-detail__panel{border-radius:22px 22px 0 0;height:min(92dvh,900px);max-height:min(92dvh,900px);width:100%}.book-detail__handle{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:0;border-radius:22px 22px 0 0;cursor:pointer;display:flex;flex:0 0 auto;height:36px;justify-content:center;margin:0;padding:0;touch-action:manipulation;width:100%}.book-detail__handle:after{background:#d7c4b8;border-radius:999px;content:"";display:block;height:5px;width:44px}.book-detail__handle:active:after{background:#b89a8c}.book-detail__scroll{align-items:stretch;flex-direction:column;gap:14px;padding:4px 18px calc(18px + var(--safe-bottom));text-align:center}.book-detail__actions,.book-detail__statuses{justify-content:center}.book-detail__statuses{width:100%}.book-detail__stamp{flex-basis:calc(33% - 8px);flex-grow:1;flex-shrink:1}.book-detail__loan-form{grid-template-columns:1fr}}.bookcase{--shelf-row-h:220px;--plank:16px;--wood-light:#c9a878;--wood-mid:#b08958;--wood-deep:#8a6540;background:linear-gradient(90deg,#462a1659,#0000 14px),linear-gradient(270deg,#462a1659,#0000 14px),repeating-linear-gradient(90deg,#a67a4a 0 2px,#c4a06a 2px 4px,#b8905a 4px 7px);border-radius:4px;box-shadow:inset 0 0 0 12px var(--wood-deep),inset 0 22px 30px #28140847;margin:8px 0 0;max-width:100%;min-width:0;padding:12px 10px 14px}.bookcase__legend{background:#28160cb8;border-radius:6px;color:#f4e6d4;display:flex;flex-wrap:wrap;font-size:.8rem;gap:10px 16px;justify-content:center;margin:0 4px 10px;padding:8px 10px}.bookcase__key{align-items:center;display:inline-flex;gap:6px}.bookcase__swatch{border-radius:1px;height:7px;width:18px}.bookcase__swatch--to-read{background:#6b5688;background:var(--status-toread,#6b5688)}.bookcase__swatch--to-buy{background:#7a7a7a;background:var(--status-tobuy,#7a7a7a)}.bookcase__swatch--reading{background:#d4892a;background:var(--status-reading,#d4892a)}.bookcase__swatch--completed{background:#3e7a4a;background:var(--status-completed,#3e7a4a)}.bookcase__hint{color:#3a2418;font-size:.85rem;margin:0 8px 10px;opacity:.85;text-align:center}.status-chips{min-width:0}.bookcase__row{align-items:flex-end;background:linear-gradient(var(--wood-deep),var(--wood-deep)) 0 /10px 100% no-repeat,linear-gradient(var(--wood-deep),var(--wood-deep)) 100% /10px 100% no-repeat,linear-gradient(to bottom,#5c3d28 0,#5c3d28 calc(100% - var(--plank)),var(--wood-light) calc(100% - var(--plank)),var(--wood-mid) calc(100% - 6px),var(--wood-deep) 100%);box-shadow:inset 0 calc(var(--plank)*-1) 0 #0000002e,inset 0 12px 18px #00000038;display:flex;gap:0;justify-content:flex-start;margin:0 2px 6px;min-height:var(--shelf-row-h);overflow:visible;padding:18px 10px 0}.bookcase__empty{flex:1 1;min-height:40px;padding-bottom:28px}.bookcase__book{-webkit-tap-highlight-color:transparent;background:#0000;border:0;cursor:pointer;flex:0 0 auto;margin:0 -1px;min-width:28px;overflow:visible;padding:0 3px 8px;position:relative;text-decoration:none;transition:z-index 0s;width:auto;z-index:1}.bookcase--loading .bookcase__row{gap:4px;justify-content:center}.bookcase__loading-label{color:var(--dusty-rose);font-size:.95rem;font-weight:600;margin:0 0 10px;text-align:center}.book-spine-skeleton{animation:bookPulse 1.2s ease-in-out infinite;background:linear-gradient(180deg,#d8b896,#c49a72 55%,#a67a4a);border-radius:2px 2px 0 0;height:160px;opacity:.55;width:22px}.bookcase__book.is-open,.bookcase__book:focus-visible,.bookcase__book:hover{z-index:8}.bookcase__book:focus-visible{outline:2px solid #f4e6d4;outline-offset:3px}@media (max-width:640px){.bookcase{border-radius:8px}.bookcase__row{min-height:200px;padding-left:8px;padding-right:8px}.bookcase__hint{font-size:.8rem}.physical-book__spine-title{font-size:.55rem}.bookcase__book.is-open .physical-book--shelf,.bookcase__book:focus-visible .physical-book--shelf,.bookcase__book:hover .physical-book--shelf{transform:translateY(-18px) rotate(0deg) scale(1.03)}}@media (hover:none){.bookcase__book:hover .physical-book--shelf{filter:drop-shadow(1px 2px 2px rgba(0,0,0,.35));transform:rotate(0deg);transform:rotate(var(--book-lean,0deg))}.bookcase__book.is-open .physical-book--shelf,.bookcase__book:focus-visible .physical-book--shelf{filter:drop-shadow(2px 8px 10px rgba(0,0,0,.45));transform:translateY(-18px) rotate(0deg) scale(1.03)}.bookcase__book--wishlist:hover .physical-book--shelf{filter:drop-shadow(0 0 4px rgba(245,236,220,.95)) drop-shadow(0 0 12px rgba(168,196,210,.75)) drop-shadow(1px 2px 2px rgba(0,0,0,.2))}.bookcase__book--wishlist.is-open .physical-book--shelf,.bookcase__book--wishlist:focus-visible .physical-book--shelf{filter:drop-shadow(0 0 6px rgba(255,248,236,1)) drop-shadow(0 0 18px rgba(150,190,210,.9)) drop-shadow(2px 8px 10px rgba(0,0,0,.35))}}.example-bookcase{animation:shelf-rise .65s ease .08s both;margin:0 auto;max-width:100%;min-width:0;text-align:left;width:min(960px,100%)}.example-bookcase--compact{margin-top:4px}.example-bookcase__header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:10px;max-width:100%;min-width:0;padding:0 4px}.example-bookcase__header h2{color:#3a2a32;color:var(--ink,#3a2a32);font-size:clamp(1.1rem,4vw,1.35rem);margin:0}.example-bookcase .panel-kicker{margin:0 0 4px}@media (max-width:720px){.example-bookcase__header{align-items:stretch;flex-direction:column}.example-bookcase .status-chips{min-width:0;width:100%}}@keyframes shelf-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.home-page{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:column;gap:28px;max-width:100%;min-width:0;padding:8px 4px 36px;width:100%}.home-hero{animation:home-fade-up .55s ease both;padding:12px 8px 4px;text-align:center}.home-kicker{color:var(--dusty-rose);font-size:.78rem;font-weight:700;letter-spacing:.14em;margin:0 0 8px;text-transform:uppercase}.home-brand{color:var(--dark-lavender);font-family:var(--font-display);font-size:clamp(2.4rem,8vw,3.8rem);font-weight:700;letter-spacing:-.02em;line-height:1;margin:0;text-shadow:0 1px 0 #fff8f08c}.home-lead{color:var(--dusty-rose);font-size:1.08rem;line-height:1.5;margin:14px auto 0;max-width:38rem}.home-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:18px auto 0;width:min(420px,100%)}.go-to-books-btn,.home-btn{align-items:center;border:none;border-radius:var(--radius-sm);box-sizing:border-box;cursor:pointer;display:inline-flex;flex:1 1 150px;font-size:1rem;font-weight:600;justify-content:center;min-height:var(--touch);padding:12px 18px;text-align:center;text-decoration:none;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.home-btn{background-color:#fff8f0b8;border:1.5px solid #7a4e6a47;color:var(--dark-lavender)}.go-to-books-btn{background-color:var(--dark-lavender);box-shadow:0 8px 18px #5a324638;color:#fff}.go-to-books-btn:active,.home-btn:active{transform:scale(.98)}.home-section{max-width:100%;min-width:0}.home-section h2{color:var(--ink);font-size:clamp(1.35rem,4vw,1.7rem);margin:0}.home-section__lead{color:var(--dusty-rose);line-height:1.45;margin:8px 0 0;max-width:40rem}.home-features,.home-plans,.home-steps{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));list-style:none;margin:14px 0 0;padding:0}.home-plans{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.home-card{background:#fff8f0c7;border:1px solid #3a2a3214;border-radius:18px;box-shadow:0 8px 22px #5a32280f;margin:0;min-width:0;padding:16px}.home-card h3{color:var(--ink);font-size:1.05rem;margin:0 0 6px}.home-card li,.home-card p{color:var(--dusty-rose);font-size:.95rem;line-height:1.45;margin:0}.home-card ul{margin:10px 0 0;padding-left:1.1rem}.home-card li+li{margin-top:6px}.home-step__n{align-items:center;background:var(--dark-lavender);border-radius:999px;color:var(--paper);display:inline-flex;font-size:.9rem;font-weight:700;height:28px;justify-content:center;margin-bottom:8px;width:28px}.home-card--plus{background:linear-gradient(180deg,#6a405c1f,#fff8f0e6)}.home-card .home-badge{background:var(--dark-lavender);border-radius:999px;color:#fff8f0;display:inline-flex;font-size:.78rem;font-weight:700;letter-spacing:.04em;line-height:1.2;margin:0 0 8px;padding:4px 10px}.home-price{color:var(--ink);font-family:var(--font-display);font-size:1.6rem;margin:0 0 6px}.home-plan-note,.home-price span{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.92rem;font-weight:400}.home-card--plus .home-btn{flex:none;margin-top:14px;width:100%}.home-closing{background:#fff8f0c7;border:1px solid #3a2a3214;border-radius:18px;padding:20px 16px;text-align:center}.home-closing p{color:var(--dusty-rose);line-height:1.45;margin:8px auto 16px;max-width:36rem}.home-closing .go-to-books-btn{flex:0 1 240px}@keyframes home-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (hover:hover){.go-to-books-btn:hover,.home-btn:hover{filter:brightness(1.05)}}@media (max-width:480px){.home-page{gap:22px;padding-top:4px}.home-buttons{flex-direction:column}}@media (prefers-reduced-motion:reduce){.home-hero{animation:none}}.ad-slot{border-radius:14px;margin:12px 8px;min-height:88px;overflow:hidden;position:relative}.ad-slot--placeholder{background:linear-gradient(135deg,#e89bb82e,#fff8f0f2 55%),#fff8f0;border:1.5px solid #7a4e6a47;box-shadow:0 10px 24px #3a1e301a;display:flex;flex-direction:column;gap:6px;justify-content:center;padding:16px 16px 14px}.ad-slot--live{border:1px dashed #7a4e6a33;min-height:120px;padding:6px 0 0}.ad-slot__frame{min-height:90px}.ad-slot--placeholder{align-items:center;border-style:dashed;box-shadow:none;text-align:center}.ad-slot__dev{color:var(--ink);font-family:var(--font-ui);font-size:.82rem;line-height:1.4;margin:0;opacity:.8}.ad-slot--house{align-items:center;background:#fff8f0e6;border:1px solid #7a4e6a33;display:flex;flex-wrap:wrap;gap:10px 14px;min-height:0;padding:12px 14px}.ad-slot--house .ad-slot__copy{flex:1 1 240px}.ad-slot__label{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.1em;margin:0;text-transform:uppercase}.ad-slot__headline{color:var(--ink);font-family:var(--font-display);font-size:1.15rem;line-height:1.2;margin:0;padding-right:28px}.ad-slot__copy{color:var(--ink);font-family:var(--font-ui);font-size:.9rem;line-height:1.4;margin:0;opacity:.92}.ad-slot__cta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.ad-slot__cta{align-items:center;background:var(--dark-lavender);border-radius:10px;color:#fff8f0;display:inline-flex;font-family:var(--font-ui);font-size:.9rem;font-weight:700;justify-content:center;min-height:40px;padding:0 14px;text-decoration:none}.ad-slot__plus-hint{font-family:var(--font-ui);font-size:.78rem;margin:6px 8px 8px;text-align:center}.ad-slot__plus-hint a{color:var(--dark-lavender);font-weight:700}.ad-nudge{align-items:center;background:#7a4e6a24;border:1px solid #7a4e6a38;border-radius:12px;display:flex;gap:8px;margin:0 0 12px;padding:10px 12px}.ad-nudge p{color:var(--ink);flex:1 1;font-family:var(--font-ui);font-size:.9rem;line-height:1.35;margin:0}.ad-nudge a{color:var(--dark-lavender);font-weight:700}.ad-nudge button{background:#0000;border:0;border-radius:8px;color:var(--dusty-rose);cursor:pointer;flex:0 0 auto;font-size:1.25rem;height:36px;width:36px}@media (max-width:720px){.ad-slot{margin-left:4px;margin-right:4px}body.bookit-sheet-open .ad-nudge,body.bookit-sheet-open .consent-banner{display:none}}.settings{color:var(--ink);margin:0 auto;max-width:880px;padding:24px 16px 80px}.settings__hero{margin-bottom:18px}.settings__eyebrow{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.8rem;font-weight:700;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}.settings__hero h1{color:var(--dusty-rose);font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.35rem);margin:0}.settings__lead{font-family:var(--font-ui);line-height:1.45;margin:8px 0 0;max-width:36rem}.settings__banner,.settings__error{border-radius:10px;font-family:var(--font-ui);font-size:.92rem;margin:0 0 14px;padding:10px 12px}.settings__banner{background:#3e7a4a24;color:#2f5c38}.settings__error{background:#9b2c2c1f;color:#9b2c2c}.settings__card{background:#fff8f0c7;border:1px solid #7a4e6a1f;border-radius:var(--radius);box-shadow:var(--shadow-soft);margin-bottom:16px;padding:18px 16px}.settings__card h2{color:var(--dusty-rose);font-family:var(--font-display);font-size:1.35rem;margin:0 0 12px}.settings__card-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:12px}.settings__card-head h2{margin-bottom:4px}.settings__hint{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.9rem;margin:0}.settings__plus-link{align-items:center;color:var(--dark-lavender);display:inline-flex;font-family:var(--font-ui);font-weight:700;min-height:40px;text-decoration:none}.settings__name-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px}.settings__name-form label{color:var(--dusty-rose);display:flex;flex:1 1 220px;flex-direction:column;font-family:var(--font-ui);font-size:.88rem;font-weight:600;gap:6px}.settings__name-form input{background:#fff;border:1px solid #7a4e6a40;border-radius:10px;color:var(--ink);font-size:1rem;min-height:44px;padding:0 12px}.settings__name-form button{background:var(--dark-lavender);border:0;border-radius:10px;color:#fff8f0;cursor:pointer;font-weight:700;min-height:44px;padding:0 16px}.settings__card--danger{border-color:#9b2c2c66}.settings__delete-form{align-items:stretch;display:flex;flex-direction:column;gap:12px;max-width:28rem}.settings__delete-form label{color:var(--dusty-rose);display:flex;flex-direction:column;font-family:var(--font-ui);font-size:.88rem;font-weight:600;gap:6px}.settings__delete-form input[type=password]{background:#fff;border:1px solid #7a4e6a40;border-radius:10px;box-sizing:border-box;color:var(--ink);font-size:1rem;min-height:44px;padding:0 12px;width:100%}.settings__delete-form .settings__danger-check{align-items:flex-start;color:var(--ink);flex-direction:row;font-weight:600;gap:10px}.settings__delete-form .settings__danger-check input{appearance:none;-webkit-appearance:none;background:#fff;border:1.5px solid #3a2a328c;border-radius:6px;display:grid;flex:0 0 auto;height:22px;margin:2px 0 0;min-height:22px;padding:0;place-content:center;width:22px}.settings__delete-form .settings__danger-check input:checked{background:#9b2c2c;border-color:#9b2c2c}.settings__delete-form .settings__danger-check input:checked:after{border:solid #fff8f0;border-width:0 2px 2px 0;content:"";height:9px;transform:translateY(-1px) rotate(45deg);width:5px}.settings__delete-form .settings__danger{align-self:flex-start;background:#9b2c2c;border:0;border-radius:var(--radius-sm);color:#fff8f0;cursor:pointer;font-weight:700;min-height:var(--touch);padding:10px 16px}.settings__danger:disabled{cursor:not-allowed;opacity:.65}.settings__name-form button:disabled{cursor:not-allowed;opacity:.55}.settings__live{margin-bottom:16px}.settings__live-case{border-radius:10px;margin:0;min-height:0;padding:10px 8px 12px}.settings__live-row{gap:2px;justify-content:center;margin:0;min-height:110px;padding-top:12px}.settings__live-spine{border-radius:2px 2px 0 0;box-shadow:1px 2px 3px #00000047;display:block;height:78px;width:16px}.settings__live-spine--0{background:linear-gradient(180deg,#6b5688,#4a3a62)}.settings__live-spine--1{background:linear-gradient(180deg,#d4892a,#a86418);height:86px}.settings__live-spine--2{background:linear-gradient(180deg,#3e7a4a,#2a5533);height:72px}.settings__live-spine--3{background:linear-gradient(180deg,#7a4e6a,#5c3a50);height:82px}.skin-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.skin-grid--compact{gap:8px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:280px;overflow:auto;padding-right:2px}.skin-grid--compact .skin-preview{height:64px}.skin-grid--compact .skin-card__body{padding:8px 10px 10px}.skin-grid--compact .skin-card__title{font-size:.92rem}.skin-card{background:#fff8f0;border:1.5px solid #7a4e6a29;border-radius:14px;color:inherit;cursor:pointer;display:flex;flex-direction:column;font:inherit;overflow:hidden;padding:0;text-align:left}.skin-card.is-selected{border-color:var(--dark-lavender);box-shadow:0 0 0 2px #7a4e6a40}.skin-card.is-locked{cursor:not-allowed;opacity:.72}.skin-card:disabled:not(.is-locked){cursor:wait}.skin-preview{border-radius:0;box-shadow:none!important;height:88px;padding:10px 8px 0}.skin-preview__row{align-items:flex-end;background:linear-gradient(#8a6540,#8a6540) 0 /6px 100% no-repeat,linear-gradient(#8a6540,#8a6540) 100% /6px 100% no-repeat,linear-gradient(180deg,#00000040 0,#00000040 calc(100% - 10px),#c9a878 calc(100% - 10px),#b08958 calc(100% - 4px),#8a6540);background:linear-gradient(var(--wood-deep,#8a6540),var(--wood-deep,#8a6540)) 0 /6px 100% no-repeat,linear-gradient(var(--wood-deep,#8a6540),var(--wood-deep,#8a6540)) 100% /6px 100% no-repeat,linear-gradient(to bottom,#00000040 0,#00000040 calc(100% - 10px),var(--wood-light,#c9a878) calc(100% - 10px),var(--wood-mid,#b08958) calc(100% - 4px),var(--wood-deep,#8a6540) 100%);border-radius:4px 4px 0 0;display:flex;gap:3px;height:100%;justify-content:center;padding:0 6px}.skin-preview__spine{border-radius:1px 1px 0 0;box-shadow:1px 1px 2px #0000004d;display:block;width:11px}.skin-preview__spine--a{background:#6b5688;height:52px}.skin-preview__spine--b{background:#d4892a;height:58px}.skin-preview__spine--c{background:#3e7a4a;height:48px}.skin-preview__spine--d{background:#7a4e6a;height:55px}.skin-preview__spine--e{background:#5c4452;height:50px}.skin-card__body{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}.skin-card__title{align-items:center;color:var(--ink);display:flex;font-family:var(--font-display);font-size:1.05rem;font-weight:700;gap:6px}.skin-card__badge{background:#7a4e6a24;border-radius:999px;color:var(--dark-lavender);display:inline-block;font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:1px 7px;text-transform:uppercase}.skin-card__blurb{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.84rem;line-height:1.35}.skin-card__state{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.78rem;font-weight:700;margin-top:4px}.settings__links{display:flex;flex-direction:column;gap:8px}.settings__links a{align-items:center;color:var(--dark-lavender);display:inline-flex;font-family:var(--font-ui);font-weight:700;min-height:40px;text-decoration:none}@media (max-width:640px){.settings{padding-top:16px}.skin-grid{grid-template-columns:1fr 1fr}}.bookcase{--skin-hint:#3a2418;--skin-legend-bg:#28160cb8;--skin-legend-fg:#f4e6d4;--skin-frame:var(--wood-deep);transition:background .35s ease,box-shadow .35s ease,filter .35s ease}.bookcase .bookcase__hint{color:var(--skin-hint)}.bookcase .bookcase__legend{background:var(--skin-legend-bg);color:var(--skin-legend-fg)}.bookcase__row{transition:background .35s ease,box-shadow .35s ease}.bookcase--classic{--wood-light:#d4b48a;--wood-mid:#b8905c;--wood-deep:#7a5230;--skin-hint:#3a2418;--skin-legend-bg:#321c0e9e;--skin-legend-fg:#f7ebd8;background:linear-gradient(105deg,#ffdcaa2e,#0000 40%),linear-gradient(90deg,#46281266,#0000 16px),linear-gradient(270deg,#46281266,#0000 16px),repeating-linear-gradient(92deg,#9a6a3e 0 1px,#c4a06a 1px 3px,#b8905a 3px 5px,#d0ae78 5px 8px);box-shadow:inset 0 0 0 11px var(--wood-deep),inset 0 0 0 13px #ffd2961f,inset 0 28px 40px #28120652}.bookcase--night{--wood-light:#5b6b8a;--wood-mid:#344058;--wood-deep:#121826;--skin-hint:#d7e0f2;--skin-legend-bg:#080a149e;--skin-legend-fg:#eaf0ff;background:radial-gradient(ellipse at 20% 10%,#8caaff24,#0000 45%),radial-gradient(ellipse at 80% 0,#5a78dc1a,#0000 40%),linear-gradient(90deg,#04060ea6,#0000 18px),linear-gradient(270deg,#04060ea6,#0000 18px),repeating-linear-gradient(90deg,#1c2436 0 2px,#2a354c 2px 4px,#232c40 4px 7px);box-shadow:inset 0 0 0 11px var(--wood-deep),inset 0 0 40px #5078dc14,inset 0 28px 36px #00000080}.bookcase--night .bookcase__row{box-shadow:inset 0 calc(var(--plank)*-1) 0 #00000059,inset 0 14px 22px #00000059,inset 0 -2px 0 #8caaff1f}.bookcase--blush{--wood-light:#f0c4c8;--wood-mid:#d9929c;--wood-deep:#8f4a58;--skin-hint:#5a2432;--skin-legend-bg:#642837b8;--skin-legend-fg:#ffe8ec;background:linear-gradient(160deg,#ffd2dc59,#0000 50%),linear-gradient(90deg,#6e283c52,#0000 16px),linear-gradient(270deg,#6e283c52,#0000 16px),repeating-linear-gradient(88deg,#c47a88 0 2px,#e8aab4 2px 4px,#d8909c 4px 6px,#f0c0c8 6px 9px);box-shadow:inset 0 0 0 11px var(--wood-deep),inset 0 0 0 13px #ffc8d233,inset 0 26px 34px #5a1e2d47}.bookcase--dark_academia{--wood-light:#a07a2e;--wood-mid:#6a5224;--wood-deep:#1e160c;--skin-hint:#efe2c8;--skin-legend-bg:#120c06a6;--skin-legend-fg:#f3e6cf;background:linear-gradient(180deg,#b48c3c1f,#0000 35%),linear-gradient(90deg,#0a0602b3,#0000 18px),linear-gradient(270deg,#0a0602b3,#0000 18px),repeating-linear-gradient(90deg,#3a2c18 0 2px,#5c4628 2px 3px,#4a3820 3px 6px,#6e5430 6px 8px);box-shadow:inset 0 0 0 10px var(--wood-deep),inset 0 0 0 12px #c8a0462e,inset 0 30px 40px #0000008c}.bookcase--dark_academia .bookcase__row{box-shadow:inset 0 calc(var(--plank)*-1) 0 #0006,inset 0 12px 18px #00000059,inset 0 -1px 0 #d4af3740}.bookcase--sage{--wood-light:#b8c8a8;--wood-mid:#7f9570;--wood-deep:#3d4f36;--skin-hint:#223028;--skin-legend-bg:#2332209e;--skin-legend-fg:#e8f0e0;background:linear-gradient(145deg,#c8e6b438,#0000 45%),linear-gradient(90deg,#1e2d1c66,#0000 16px),linear-gradient(270deg,#1e2d1c66,#0000 16px),repeating-linear-gradient(90deg,#62785a 0 2px,#8fa382 2px 4px,#7a9070 4px 6px,#a8bc98 6px 9px);box-shadow:inset 0 0 0 11px var(--wood-deep),inset 0 0 0 13px #bedcaa26,inset 0 26px 34px #19281652}.bookcase--marble{--wood-light:#ece8e2;--wood-mid:#c8c2ba;--wood-deep:#6e6860;--skin-hint:#3a3834;--skin-legend-bg:#3c3a36b8;--skin-legend-fg:#f5f2ec;background:linear-gradient(120deg,#ffffff8c,#0000 40%),linear-gradient(90deg,#5a585259,#0000 14px),linear-gradient(270deg,#5a585259,#0000 14px),repeating-linear-gradient(115deg,#d8d4ce 0 8px,#ebe7e1 8px 14px,#cfcac2 14px 16px,#e4e0da 16px 24px),#e6e2dc;box-shadow:inset 0 0 0 10px var(--wood-deep),inset 0 0 0 12px #ffffff59,inset 0 24px 32px #28262238}.bookcase--marble .bookcase__row{background:linear-gradient(#8a847c,#8a847c) 0 /10px 100% no-repeat,linear-gradient(#8a847c,#8a847c) 100% /10px 100% no-repeat,linear-gradient(to bottom,#9a958e 0,#9a958e calc(100% - var(--plank)),#f2eee8 calc(100% - var(--plank)),#d8d2ca calc(100% - 6px),#8a847c 100%)}.bookcase--parchment{--wood-light:#e8d7b8;--wood-mid:#cbb892;--wood-deep:#7a6544;--skin-hint:#4a3a28;--skin-legend-bg:#5a4628cc;--skin-legend-fg:#f7ecd4;background:radial-gradient(ellipse at 30% 20%,#fff0c873,#0000 50%),radial-gradient(ellipse at 70% 80%,#b48c502e,#0000 45%),linear-gradient(90deg,#5a462859,#0000 16px),linear-gradient(270deg,#5a462859,#0000 16px),repeating-linear-gradient(90deg,#c4a878 0 2px,#e0cda8 2px 5px,#d4bc92 5px 7px,#ead8b4 7px 10px);box-shadow:inset 0 0 0 11px var(--wood-deep),inset 0 0 0 13px #ffecc838,inset 0 26px 36px #46321947}.books-page{display:flex;flex-direction:column;gap:18px;padding-bottom:8px}.panel{background:#fff8f09e;border:1px solid #7a4e6a14;border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:14px 10px 10px}.panel-kicker{color:var(--dusty-rose);font-size:.72rem;letter-spacing:.14em;margin:0 8px 4px;text-transform:uppercase}.books-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:0 8px 2px}.books-header h2{color:#3a2a32;color:var(--ink,#3a2a32);font-family:var(--font-display);font-size:clamp(1.25rem,4vw,1.55rem);margin:0}.shelf-create-hint{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.9rem;margin:8px 8px 0}.shelf-create-hint a{color:var(--dark-lavender);font-weight:700}.view-tabs{background:#7a4e6a1a;border-radius:12px;display:flex;gap:4px;margin:6px 8px 10px;padding:3px}.view-tabs__btn{background:#0000;border:0;border-radius:10px;color:var(--dusty-rose);cursor:pointer;flex:1 1;font-family:var(--font-ui);font-size:.95rem;font-weight:700;min-height:42px}@media (max-width:640px){.view-tabs__btn{font-size:.82rem;padding:0 6px}}.view-tabs__btn.is-active{background:#fff8f0;box-shadow:0 2px 8px #5a32281f;color:var(--dark-lavender)}.shelves-home{padding:4px 8px 12px}.shelves-home__toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.shelves-home__lead{color:var(--dusty-rose);flex:1 1 200px;font-family:var(--font-ui);font-size:.95rem;line-height:1.45;margin:0}.shelves-home__lead--inline{margin:0 8px 12px}.shelves-home__create{background:var(--dark-lavender);border:0;border-radius:10px;color:#fff8f0;cursor:pointer;font-family:var(--font-ui);font-weight:700;min-height:44px;padding:0 16px}.shelves-home__empty{color:var(--dusty-rose);font-family:var(--font-ui);margin:24px 0;text-align:center}.shelves-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));list-style:none;margin:0;padding:0}.shelves-card{background:linear-gradient(160deg,#fff8f0fa,#e89bb82e);border:1px solid #7a4e6a29;border-radius:14px;box-shadow:var(--shadow-soft);cursor:pointer;display:flex;flex-direction:column;gap:6px;min-height:120px;overflow:hidden;padding:16px 14px;position:relative;text-align:left;width:100%}.shelves-card__swatch{border-radius:0 14px 14px 0;height:100%;opacity:.55;pointer-events:none;position:absolute;right:0;top:0;width:42%}.shelves-card__cta,.shelves-card__meta,.shelves-card__name{position:relative;z-index:1}.shelves-card__name{color:var(--ink);font-family:var(--font-display);font-size:1.15rem;font-weight:700}.shelves-card__meta{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.88rem}.shelves-card__cta{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.85rem;font-weight:700;margin-top:auto}.shelf-active-bar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin:4px 8px 10px}.shelf-active-bar__back{background:#0000;border:0;color:var(--dark-lavender);cursor:pointer;font-family:var(--font-ui);font-weight:700;min-height:40px;padding:0 4px}.shelf-active-bar__actions{display:flex;flex-wrap:wrap;gap:8px}.shelf-active-bar__btn{background:#fff8f0e6;border:1.5px solid #7a4e6a4d;border-radius:10px;color:var(--dark-lavender);cursor:pointer;font-family:var(--font-ui);font-weight:700;min-height:40px;padding:0 14px}.shelf-active-bar__btn--danger{border-color:#9b2c2c59;color:#9b2c2c}.status-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 8px 8px;max-width:100%}.status-chip{align-items:center;background:#ffffffb3;border:1px solid #5c44522e;border-radius:999px;color:var(--dusty-rose);cursor:pointer;display:inline-flex;font-size:.84rem;font-weight:600;gap:6px;min-height:36px;padding:6px 12px;transition:background .15s ease,color .15s ease,border-color .15s ease}.status-chip.is-active{background:var(--dark-lavender);border-color:#0000;color:#fff}.status-chip__dot{border-radius:50%;flex:0 0 auto;height:8px;width:8px}.status-chip__dot--to-buy{background:var(--status-tobuy)}.status-chip__dot--to-read{background:var(--status-toread)}.status-chip__dot--reading{background:var(--status-reading)}.status-chip__dot--completed{background:var(--status-completed)}.status-chip.is-active .status-chip__dot{box-shadow:0 0 0 2px #ffffff59}.filter-dropdown{background:#fff;border:1px solid #d7c4b8;border-radius:var(--radius-sm);color:var(--ink);font-size:1rem;max-width:100%;min-height:var(--touch);padding:10px 12px}@media (max-width:640px){.books-page{gap:14px}.panel{border-radius:16px;padding:12px 8px 8px}.books-header{align-items:flex-start}.filter-dropdown,.status-chips{width:100%}}.isbn-scan{margin:0 0 12px;max-width:720px;width:100%}.isbn-scan__close,.isbn-scan__open{background:var(--dark-lavender);border:0;border-radius:12px;color:#fff8f0;cursor:pointer;font-weight:700;min-height:var(--touch);width:100%}.isbn-scan__close{background:#0000;border:1px solid #c4ad9f;color:#3a2a32;color:var(--ink,#3a2a32)}.isbn-scan__layer{align-items:center;background:#3a2a32b8;display:flex;inset:0;justify-content:center;padding:12px;position:fixed;z-index:70}.isbn-scan__dialog{background:#fff8f0;background:var(--paper,#fff8f0);border-radius:16px;color:#3a2a32;color:var(--ink,#3a2a32);display:flex;flex-direction:column;max-height:calc(100dvh - 24px);padding:16px;width:min(100%,420px)}.isbn-scan__dialog h2{font-size:1.15rem;margin:0 0 8px}.isbn-scan__status{line-height:1.4;margin:0 0 12px}.isbn-scan__frame{aspect-ratio:4/3;background:#1c1418;border-radius:12px;margin-bottom:12px;max-height:46dvh;overflow:hidden;position:relative}.isbn-scan__frame video{height:100%;object-fit:cover;width:100%}.book-search-container{align-items:center;display:flex;flex-direction:column;padding:4px 4px 0;width:100%}.search-bar{background:#fff;border:1px solid #e3d0c4;border-radius:16px;box-shadow:inset 0 1px 0 #fffc;box-sizing:border-box;display:flex;gap:8px;margin:8px 0 12px;max-width:720px;padding:6px;width:100%}.search-bar input{background:#0000;border:0;color:#3a2a32;color:var(--ink,#3a2a32);flex:1 1;font-size:16px;min-height:var(--touch);min-width:0;outline:none;padding:12px 10px}.search-bar button{background-color:var(--dark-lavender);border:none;border-radius:12px;color:#fff;cursor:pointer;flex-shrink:0;font-weight:700;min-height:var(--touch);padding:10px 16px}.search-empty,.search-error,.search-hint{color:var(--dusty-rose);font-size:.9rem;line-height:1.4;margin:0 0 12px;padding:0 8px;text-align:center}.search-hint--success{color:#3e7a4a;font-weight:600}.search-hint--loading{color:#3a2a32;color:var(--ink,#3a2a32);font-weight:700}.search-error{color:#9b2c2c}.book-tile__actions{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr auto;margin-top:10px}.book-button{background-color:var(--dark-lavender);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-weight:600;min-height:var(--touch);padding:10px 12px;width:100%}.book-button--more{background:#7a4e6a1f;color:var(--dark-lavender);min-width:64px;width:auto}.book-tile__menu{margin-top:8px}.book-button--wishlist{background:#0000;border:1.5px dashed #9a9a9a;color:var(--dusty-rose);margin-top:0}@media (max-width:480px){.search-bar{gap:6px;padding:8px}.book-tile{width:min(100%,168px)}}.user-library{margin:8px 0 0}.user-library--guest{color:var(--dusty-rose);line-height:1.45;padding:8px 4px;text-align:center}.user-library--guest a{align-items:center;color:var(--dark-lavender);display:inline-flex;font-weight:700;justify-content:center;min-height:var(--touch);padding:0 4px}.user-library--guest .bookcase{margin-top:16px;text-align:left}.library-error{color:#9b2c2c;text-align:center}.library-upsell{background:#e89bb838;border-radius:var(--radius-sm);color:var(--dusty-rose);font-family:var(--font-ui);font-size:.95rem;line-height:1.4;margin:0 0 12px;padding:10px 14px;text-align:center}.library-upsell a{color:var(--dark-lavender);font-weight:700}.book-list.book-shelf{display:flex;flex-wrap:wrap;gap:28px 22px;justify-content:center}.book-tile button,.book-tile select{font-size:16px;margin-top:8px;min-height:40px;width:100%}.book-tile button{background-color:#725d68;background-color:var(--dusty-rose,#725d68);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 12px}.book-tile button:hover{background-color:#9d6a89;background-color:var(--dark-lavender,#9d6a89)}.loans-panel{padding:2px 8px 16px}.loans-panel__intro{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin:0 4px 16px}.loans-panel__lead{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.95rem;line-height:1.45;margin:0;max-width:42ch}.loans-panel__count{background:#b058341f;border-radius:999px;color:#8a4a2e;flex:0 0 auto;font-family:var(--font-ui);font-size:.8rem;font-weight:700;letter-spacing:.02em;margin:0;padding:6px 12px;white-space:nowrap}.loans-panel__quota{background:#e89bb829;border-radius:12px;color:var(--dusty-rose);font-family:var(--font-ui);font-size:.92rem;line-height:1.4;margin:0 4px 16px;padding:12px 14px 10px}.loans-panel__quota.is-full{background:#e89bb847}.loans-panel__quota p{margin:8px 0 0}.loans-panel__quota a{color:var(--dark-lavender);font-weight:700}.loans-panel__quota-bar{background:#7a4e6a29;border-radius:999px;height:6px;overflow:hidden}.loans-panel__quota-bar span{background:linear-gradient(90deg,#c9a227,#b05834);border-radius:inherit;display:block;height:100%}.loans-panel__empty{background:#fff8f08c;border:1.5px dashed #7a4e6a38;border-radius:16px;color:var(--dusty-rose);font-family:var(--font-ui);line-height:1.45;margin:18px 4px 8px;padding:28px 18px 32px;text-align:center}.loans-panel__empty-mark{display:inline-flex;margin-bottom:10px}.loans-panel__empty-title{color:var(--ink);font-family:var(--font-display);font-size:1.2rem;margin:0 0 6px}.loans-panel__empty p{margin:0}.loans-panel__list{display:flex;flex-direction:column;gap:14px;list-style:none;margin:0;padding:0}.loans-card{grid-gap:16px 18px;align-items:start;background:linear-gradient(180deg,#fffdf9,#fff6ec);border:1px solid #7a4e6a1f;border-radius:16px;box-shadow:0 10px 24px #5a322814;display:grid;gap:16px 18px;grid-template-columns:92px 1fr;overflow:hidden;padding:16px 16px 16px 20px;position:relative}.loans-card:before{background:linear-gradient(180deg,#e8b86d,#b05834);bottom:0;content:"";left:0;position:absolute;top:0;width:6px}.loans-card__cover{background:#0000;border:0;cursor:pointer;grid-row:1/2;justify-self:center;padding:0}.loans-card__book.physical-book--hero,.loans-card__cover .physical-book--hero{height:124px;margin:0;width:84px}.loans-card__cover .physical-book__scene{align-items:stretch;justify-content:stretch}.loans-card__cover .physical-book__block{border-radius:5px;box-shadow:4px 8px 16px #28121247;display:block;height:100%;overflow:hidden;transform:none!important;width:100%}.loans-card__cover .physical-book__badge,.loans-card__cover .physical-book__gloss,.loans-card__cover .physical-book__pages,.loans-card__cover .physical-book__spine{display:none}.loans-card__cover .physical-book__front{border-radius:5px;box-shadow:none;height:100%;width:100%}.loans-card__cover .physical-book__art{height:100%;object-fit:cover;width:100%}.loans-card__cover:focus-visible .physical-book__block,.loans-card__cover:hover .physical-book__block{transform:translateY(-3px)!important}.loans-card__body{min-width:0}.loans-card__top{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.loans-card__pill{align-items:center;background:#b05834eb;border-radius:999px;color:#fff8f0;display:inline-flex;font-family:var(--font-ui);font-size:.68rem;font-weight:700;letter-spacing:.08em;min-height:24px;padding:0 9px;text-transform:uppercase}.loans-card__days{color:#8a4a2e;font-family:var(--font-ui);font-size:.8rem;font-weight:600}.loans-card__body h3{color:var(--ink);font-family:var(--font-display);font-size:clamp(1.12rem,2.4vw,1.32rem);line-height:1.25;margin:0}.loans-card__author{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.9rem;margin:4px 0 0}.loans-card__facts{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 14px}.loans-card__facts div{background:#7a4e6a0f;border-radius:10px;flex:0 1 auto;max-width:100%;min-width:140px;padding:8px 12px}.loans-card__facts dt{color:var(--dusty-rose);font-size:.68rem;font-weight:700;letter-spacing:.1em;margin:0 0 2px;text-transform:uppercase}.loans-card__facts dd{color:var(--ink);font-family:var(--font-display);font-size:.98rem;margin:0;overflow-wrap:anywhere}.loans-card__actions{display:flex;flex-wrap:wrap;gap:8px}.loans-card__open,.loans-card__return{border-radius:999px;cursor:pointer;font-family:var(--font-ui);font-size:.92rem;font-weight:700;min-height:40px;padding:0 14px}.loans-card__open{background:#0000;border:1.5px solid #7a4e6a47;color:var(--dark-lavender)}.loans-card__return{background:var(--dark-lavender);border:1.5px solid #0000;color:#fff8f0}.loans-card__open:hover,.loans-card__return:hover{filter:brightness(1.06)}.loans-card__open:disabled,.loans-card__return:disabled{cursor:default;filter:none;opacity:.55}.loans-card--skeleton{min-height:132px;pointer-events:none}.loans-card__cover-skel,.loans-card__line{animation:loans-shimmer 1.2s ease-in-out infinite;background:linear-gradient(90deg,#f0e4d8 25%,#f7efe6 50%,#f0e4d8 75%);background-size:200% 100%;border-radius:8px;display:block}.loans-card__cover-skel{height:118px;width:84px}.loans-card__line{height:14px;margin-top:12px}.loans-card__line--short{width:55%}@keyframes loans-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:640px){.loans-panel__intro{flex-direction:column}.loans-card{gap:12px;grid-template-columns:76px 1fr;padding:14px 12px 14px 16px}.loans-card__book.physical-book--hero,.loans-card__cover .physical-book--hero{height:108px;width:72px}.loans-card__facts{display:flex}.loans-card__actions{flex-direction:column}.loans-card__open,.loans-card__return{width:100%}}.login-container{align-items:flex-start;display:flex;justify-content:center;min-height:calc(100dvh - 140px - var(--safe-bottom));padding:24px 12px 32px;width:100%}.login-form{background:linear-gradient(180deg,#fff8f0f5,#fff8f0e6),repeating-linear-gradient(90deg,#0000 0 18px,#8b5a3c0a 18px 19px);border:1px solid #7a4e6a1a;border-radius:var(--radius);border-top:4px solid #8b5a3c;border-top:4px solid var(--wood,#8b5a3c);box-shadow:var(--shadow-soft);padding:28px 22px;text-align:left;width:min(400px,100%)}.login-brand{color:var(--dark-lavender);font-family:var(--font-display);font-size:1.65rem;font-weight:700;letter-spacing:-.02em;margin:0 0 4px;text-align:center}.login-form h2{color:var(--ink);font-size:1.25rem;margin:0 0 8px;text-align:center}.login-note{color:var(--dusty-rose);font-size:.92rem}.login-error,.login-note{margin:0 0 10px;text-align:center}.login-error{color:#9b2c2c}.login-field{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}.login-field label{color:var(--dusty-rose);font-size:.85rem;font-weight:600}.login-form input{background:#fff;border:1px solid #d7c4b8;border-radius:var(--radius-sm);box-sizing:border-box;color:var(--ink);min-height:var(--touch);padding:14px 12px;width:100%}.login-password-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:1fr auto}.login-toggle{background:#fff;border:1px solid #d7c4b8;border-radius:var(--radius-sm);color:var(--dusty-rose);cursor:pointer;font-weight:600;min-height:var(--touch);padding:0 12px}.password-strength{display:flex;flex-direction:column;gap:6px}.password-strength__bar{background:#7a4e6a1f;border-radius:999px;height:6px;overflow:hidden}.password-strength__bar span{background:#9b2c2c;border-radius:inherit;display:block;height:100%;transition:width .15s ease}.password-strength__bar.is-2 span{background:#d4892a}.password-strength__bar.is-3 span{background:#8b5a3c}.password-strength__bar.is-4 span{background:#3e7a4a}.password-strength__label{color:var(--dusty-rose);font-size:.8rem;line-height:1.35;margin:0}.password-strength__label strong{color:var(--ink)}.login-form input:focus{border-color:var(--dark-lavender);box-shadow:0 0 0 3px #7a4e6a2e;outline:none}.login-form button[type=submit]{background-color:var(--dark-lavender);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-weight:700;margin-top:4px;min-height:48px;padding:12px;width:100%}.login-form button[type=submit]:active{transform:scale(.99)}.login-consent{align-items:flex-start;display:flex;gap:10px;margin-top:4px}.login-form .login-consent input{flex:0 0 auto;height:22px;margin-top:2px;min-height:22px;padding:0;width:22px}.login-consent label{font-size:.92rem;font-weight:500;line-height:1.4;margin:0}.login-forgot{margin:0 0 12px;text-align:right}.login-footer{color:var(--dusty-rose);margin:16px 0 0;text-align:center}.login-form a{color:var(--dark-lavender);font-weight:600}.pricing{color:var(--ink);margin:0 auto;max-width:920px;padding:28px 18px 72px;position:relative}.pricing__glow{background:radial-gradient(ellipse at center,#e89bb859,#0000 70%);height:220px;inset:-40px 10% auto;pointer-events:none;position:absolute;z-index:0}.pricing__grid,.pricing__hero{position:relative;z-index:1}.pricing__eyebrow{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.85rem;font-weight:700;letter-spacing:.06em;margin:0 0 8px;text-transform:uppercase}.pricing__hero h1{color:var(--dusty-rose);font-family:var(--font-display);font-size:clamp(1.85rem,4vw,2.6rem);font-weight:700;line-height:1.15;margin:0}.pricing__lead{color:var(--ink);font-family:var(--font-ui);font-size:1.05rem;line-height:1.5;margin:12px 0 0;max-width:38rem;opacity:.9}.pricing__banner,.pricing__error,.pricing__usage{font-family:var(--font-ui);font-size:.95rem;margin:16px 0 0}.pricing__banner{color:var(--status-completed)}.pricing__error{color:#9b2c2c}.pricing__usage{color:var(--dark-lavender)}.pricing__grid{grid-gap:20px;display:grid;gap:20px;margin-top:28px}@media (min-width:720px){.pricing__grid{align-items:stretch;grid-template-columns:1fr 1fr}}.pricing__card{background:linear-gradient(165deg,#fff8f0f5,#f3c7a838);border:1px solid #7a4e6a2e;border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:22px 20px 24px;position:relative}.pricing__card--plus{background:linear-gradient(165deg,#fff8f0fa,#e89bb847);border-color:#7a4e6a59}.pricing__badge{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.72rem;font-weight:700;letter-spacing:.04em;margin:0;position:absolute;right:14px;text-transform:uppercase;top:14px}.pricing__card h2{color:var(--dusty-rose);font-family:var(--font-display);font-size:1.55rem;margin:0}.pricing__price{color:var(--ink);font-family:var(--font-display);font-size:2rem;font-weight:700;margin:10px 0 0}.pricing__price span{font-size:.95rem;font-weight:500;margin-left:4px}.pricing__alt,.pricing__price span{color:var(--dark-lavender);font-family:var(--font-ui)}.pricing__alt{font-size:.9rem;margin:4px 0 0}.pricing__highlight{background:#7a4e6a1f;border-radius:10px;color:var(--dark-lavender);font-weight:700;line-height:1.35;margin:14px 0 0;padding:10px 12px}.pricing__card ul,.pricing__highlight{font-family:var(--font-ui);font-size:.95rem}.pricing__card ul{line-height:1.45;list-style:none;margin:18px 0 22px;padding:0}.pricing__card li{padding:0 0 10px 18px;position:relative}.pricing__card li.pricing__li--strong{color:var(--ink);font-weight:700}.pricing__card li:before{background:var(--dark-lavender);border-radius:50%;content:"";height:7px;left:0;position:absolute;top:.55em;width:7px}.pricing__cta-row{display:flex;flex-direction:column;gap:10px}.pricing__btn{align-items:center;background:var(--dark-lavender);border:none;border-radius:var(--radius-sm);color:#fff8f0;cursor:pointer;display:inline-flex;font-family:var(--font-ui);font-size:1rem;font-weight:700;justify-content:center;min-height:var(--touch);padding:0 18px;text-decoration:none}.pricing__btn:disabled{cursor:not-allowed;opacity:.55}.pricing__btn--ghost{background:#0000;border:1.5px solid #7a4e6a73;color:var(--dark-lavender)}.pricing__note{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.88rem;line-height:1.4;margin:12px 0 0}.pricing__card .pricing__btn--ghost{margin-top:10px;width:100%}.wrapped{color:var(--ink);margin:0 auto;max-width:820px;padding:28px 18px 72px;position:relative}.wrapped:before{background:radial-gradient(ellipse at center,#d4892a38,#0000 70%);content:"";height:200px;inset:-30px 8% auto;pointer-events:none;position:absolute}.wrapped__back,.wrapped__error,.wrapped__hero,.wrapped__highlight,.wrapped__section,.wrapped__stats,.wrapped__status{position:relative}.wrapped__eyebrow{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.85rem;font-weight:700;letter-spacing:.06em;margin:0 0 8px;text-transform:uppercase}.wrapped h1{color:var(--dusty-rose);font-family:var(--font-display);font-size:clamp(1.85rem,4vw,2.5rem);margin:0}.wrapped__lead{font-family:var(--font-ui);line-height:1.5;margin:12px 0 0;max-width:34rem}.wrapped__years{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.wrapped__years button{background:#fff8f0d9;border:1px solid #7a4e6a40;border-radius:999px;color:var(--dusty-rose);cursor:pointer;font-weight:700;min-height:36px;padding:0 14px}.wrapped__years button.is-active{background:var(--dark-lavender);border-color:#0000;color:#fff8f0}.wrapped__highlight{background:#e89bb833;border-radius:var(--radius-sm);color:var(--dusty-rose);font-family:var(--font-display);font-size:1.15rem;line-height:1.4;margin:22px 0 0;padding:14px 16px}.wrapped__stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px}@media (min-width:640px){.wrapped__stats{grid-template-columns:repeat(3,minmax(0,1fr))}}.wrapped__stats article{background:linear-gradient(165deg,#fff8f0f5,#f3c7a840);border:1px solid #7a4e6a1f;border-radius:var(--radius-sm);padding:16px 14px}.wrapped__stats strong{color:var(--ink);display:block;font-family:var(--font-display);font-size:1.8rem}.wrapped__stats span{color:var(--dark-lavender);font-family:var(--font-ui);font-size:.88rem}.wrapped__section{margin-top:28px}.wrapped__section h2{color:var(--dusty-rose);font-family:var(--font-display);font-size:1.35rem;margin:0 0 12px}.wrapped__section ul{list-style:none;margin:0;padding:0}.wrapped__section li{border-bottom:1px solid #7a4e6a1f;display:flex;font-family:var(--font-ui);gap:12px;justify-content:space-between;padding:10px 0}.wrapped__section em{color:var(--dark-lavender);font-style:normal;font-weight:700}.wrapped__books{grid-gap:10px;display:grid;gap:10px}.wrapped__books article{background:#fff8f0d9;border:1px solid #7a4e6a1a;border-radius:10px;padding:12px 14px}.wrapped__books strong{display:block;font-family:var(--font-display)}.wrapped__books span{color:var(--dusty-rose);font-family:var(--font-ui);font-size:.9rem}.wrapped__cta{align-items:center;background:var(--dark-lavender);border-radius:var(--radius-sm);color:#fff8f0;display:inline-flex;font-weight:700;margin-top:18px;min-height:var(--touch);padding:0 18px;text-decoration:none}.wrapped__back,.wrapped__error,.wrapped__status{font-family:var(--font-ui);margin-top:18px}.wrapped__error{color:#9b2c2c}.wrapped__back a{color:var(--dark-lavender);font-weight:700}.wrapped--gate{padding-top:40px}.legal{color:var(--ink);margin:0 auto;max-width:68ch;padding:8px 4px 28px}.legal h1{color:var(--ink);font-family:var(--font-display);font-size:2rem;margin:0 0 8px}.legal__updated{color:var(--ink);margin:0 0 18px}.legal h2{color:var(--ink);font-size:1.2rem;margin:22px 0 8px}.legal li,.legal p{line-height:1.5}.legal a{color:var(--ink);font-weight:700}.legal__warn{background:#fff8f0b8;border:1px solid #3a2a322e;border-radius:var(--radius-sm);padding:12px 14px}
/*# sourceMappingURL=main.6499484e.css.map*/