@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700;800&display=swap";:root{color:#2b2d42;background:#f5f6fc;font-family:Nunito,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #2b2d42;--muted: #6b6e86;--soft-line: #e7e8f2;--display: "Fredoka", "Trebuchet MS", sans-serif;--body: "Nunito", "Segoe UI", sans-serif}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:2px}input:focus,textarea:focus{border-color:var(--ink)!important}.app-shell{min-height:100vh;background:radial-gradient(circle at top right,rgba(255,138,61,.14),transparent 280px),radial-gradient(circle at bottom left,rgba(0,180,216,.12),transparent 320px),#f5f6fc;overflow-x:hidden}.app-container{max-width:1180px;margin:0 auto;padding:24px 18px 60px}.loading-shell{display:grid;place-items:center}.loading-card{color:#8d90a5;font-family:var(--display);font-size:18px;font-weight:700}.error-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;border:2px solid #ffd1d3;border-radius:14px;background:#fff0f1;color:#9e222a;padding:10px 12px;margin-bottom:14px;font-weight:800}.error-banner button,.icon-ghost,.text-button,.delete-book{border:0;background:transparent;cursor:pointer}.hero{margin-bottom:22px}.brand-lockup,.sub-hero{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.brand-lockup>div:not(.brand-mark),.sub-hero>div:not(.brand-mark){min-width:0}.brand-mark{width:52px;height:52px;border-radius:16px;background:var(--ink);color:#fff;display:grid;place-items:center;transform:rotate(-6deg);flex-shrink:0}.hero h1,.sub-hero h1{margin:0;color:var(--ink);font-family:var(--display);font-size:30px;line-height:1}.sub-hero h1{font-size:28px}.hero p,.sub-hero p{margin:4px 0 0;color:var(--muted);font-weight:800}.push-right{margin-left:auto}.white-button,.back-button{border:0;background:#fff;color:var(--ink);box-shadow:0 6px 20px #2b2d4214;cursor:pointer;font-family:var(--display);font-weight:700}.white-button{display:inline-flex;align-items:center;gap:8px;border-radius:14px;padding:10px 16px;font-size:15px}.back-button{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:8px 14px 8px 10px;margin-bottom:18px}.progress-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;border-radius:18px;background:#fff;padding:14px 16px;box-shadow:0 6px 20px #2b2d4212}.progress-card strong{color:var(--ink);font-family:var(--display);font-size:22px}.progress-card span{color:#9a9cb0;font-size:16px}.progress-track{min-width:120px;height:12px;flex:1;border-radius:999px;background:#eeeff8;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ff8a3d,#f5b700,#43b929);transition:width .5s ease}.reader-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.recent-reviews{margin-top:24px}.recent-reviews-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 12px 4px}.recent-reviews-head h2{margin:0;color:var(--ink);font-family:var(--display);font-size:21px;line-height:1.1}.recent-reviews-head p{margin:3px 0 0;color:var(--muted);font-weight:800}.recent-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.recent-review-card{display:flex;align-items:flex-start;gap:12px;min-width:0;border-radius:20px;color:inherit;padding:14px;text-decoration:none}.recent-review-card>.book-cover{flex:0 0 72px;width:72px!important;height:107px!important;min-width:72px;max-width:72px}.recent-review-card>.drawn-cover{padding:8px 8px 7px 13px}.recent-review-card>.drawn-cover strong{font-size:10px}.recent-review-card>.drawn-cover small{font-size:8px}.recent-review-main{min-width:0;flex:1}.recent-review-meta{display:flex;align-items:center;gap:7px;min-width:0;color:#8f92a8;font-size:13px;font-weight:900}.recent-review-meta strong{overflow:hidden;color:var(--ink);font-family:var(--display);text-overflow:ellipsis;white-space:nowrap}.recent-review-meta time{margin-left:auto;color:#a2a4b7;white-space:nowrap}.recent-review-main h3{display:-webkit-box;overflow:hidden;margin:8px 0 0;color:var(--ink);-webkit-box-orient:vertical;-webkit-line-clamp:2;font-family:var(--display);font-size:18px;line-height:1.15}.recent-review-text{position:relative;display:-webkit-box;overflow:hidden;margin:8px 0 0;color:#4b4e63;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:16px;font-weight:800;line-height:1.4}.recent-review-text:before{display:inline;content:"“"}.recent-review-text:after{display:inline;content:"”"}.reader-card,.add-reader-card,.add-kid-card,.profile-card,.add-book-card,.book-row,.recent-review-card,.suggested-card,.book-page-head,.add-to-shelf-panel,.book-reason-card,.review-card,.empty-state,.search-box{background:#fff;box-shadow:0 6px 22px #2b2d4214}.reader-card,.add-reader-card{min-height:150px;border-radius:22px;padding:18px;text-align:left;cursor:pointer}.reader-card{border:0;border-top:6px solid}.reader-card-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.reader-title{display:flex;align-items:center;gap:6px;min-width:0}.reader-title span,.profile-title h2{color:var(--ink);font-family:var(--display);font-size:22px;font-weight:700}.reader-progress{margin-top:2px;font-size:15px;font-weight:900}.reader-percent{margin-left:auto;font-family:var(--display);font-size:26px;font-weight:700}.add-reader-card{border:2.5px dashed #c9cbda;background:transparent;display:grid;place-items:center;align-content:center;gap:8px;color:#777b91;font-family:var(--display);font-size:17px;font-weight:700}.add-reader-card span{width:46px;height:46px;border-radius:50%;background:#eeeff8;display:grid;place-items:center;color:var(--ink)}.card-hover{transition:transform .15s ease,box-shadow .15s ease}.card-hover:hover{transform:translateY(-3px);box-shadow:0 12px 30px #2b2d4221}.add-kid-card{border:2px solid;border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:12px}.add-kid-card input,.name-edit input,.add-book-card input,.review-editor textarea{width:100%;border:2px solid var(--soft-line);border-radius:12px;color:var(--ink);outline:none}.add-kid-card input{padding:10px 12px;font-family:var(--display);font-size:18px;font-weight:700}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatches button{width:28px;height:28px;border:3px solid transparent;border-radius:50%;cursor:pointer}.swatches .active{border-color:var(--ink)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.primary-button,.secondary-button,.danger-button,.small-save,.small-cancel{border:0;border-radius:12px;cursor:pointer;font-family:var(--display);font-weight:700}.primary-button{flex:1;background:var(--ink);color:#fff;padding:10px;font-size:16px}.secondary-button,.small-cancel{background:#eeeff8;color:var(--ink);padding:10px 14px}.danger-button{background:#ff595e;color:#fff;padding:8px 14px}.profile-card,.book-page-head{border-top:8px solid;border-radius:24px;padding:22px;margin-bottom:18px}.goal-banner{display:flex;align-items:center;gap:10px;border-radius:14px;margin-bottom:16px;padding:10px 14px;color:var(--ink);font-family:var(--display);font-size:17px;font-weight:700}.profile-head,.book-page-head,.review-card{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.profile-title{flex:1;min-width:180px}.profile-pages-total{min-width:132px;margin-left:auto;border:2px solid #eeeff8;border-radius:16px;background:#f8f9fd;padding:10px 14px;text-align:right}.profile-pages-total strong,.profile-pages-total span{display:block}.profile-pages-total strong{color:var(--ink);font-family:var(--display);font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.profile-pages-total span{margin-top:4px;color:#8f92a8;font-size:13px;font-weight:900;white-space:nowrap}.profile-name-row,.name-edit,.review-card-head,.average-line,.add-to-shelf-panel{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.profile-title h2{margin:0;font-size:30px}.icon-ghost{color:#9a9cb0;padding:4px}.name-edit input{max-width:260px;padding:6px 10px;font-family:var(--display);font-size:26px;font-weight:700}.name-edit button{width:36px;height:36px;border:0;border-radius:10px;color:#fff;cursor:pointer;display:grid;place-items:center}.section-title{margin:0 0 12px 4px;color:var(--ink);font-family:var(--display);font-size:19px;font-weight:700}.add-book-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-radius:20px;padding:16px;margin-bottom:18px}.autocomplete{position:relative;min-width:180px;flex:1}.add-book-card input{padding:11px 13px;font-size:16px;font-weight:800}.add-book-button,.shelf-button{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:12px;color:#fff;cursor:pointer;font-family:var(--display);font-size:15px;font-weight:700;padding:10px 16px}.shelf-button{border:2px solid var(--soft-line);background:#f5f6fc;color:var(--ink);padding:7px 13px;font-size:14px}.suggest-popover{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;overflow:hidden;border:1px solid #eeeff8;border-radius:14px;background:#fff;box-shadow:0 14px 40px #2b2d422e}.suggest-popover button{width:100%;border:0;background:#fff;color:var(--ink);display:flex;align-items:center;gap:10px;padding:9px 12px;text-align:left;cursor:pointer}.suggest-popover button.active{background:#f5f6fc}.suggest-popover strong,.suggest-popover small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggest-popover strong{font-family:var(--display)}.suggest-popover small,.muted-line{color:#8f92a8;font-size:13px;font-weight:800}.book-stack{display:flex;flex-direction:column;gap:12px}.suggested-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 24px}.book-row{display:flex;gap:12px;align-items:flex-start;border-radius:16px;padding:14px}.cover-wrap{position:relative;flex-shrink:0}.cover-wrap>span{position:absolute;top:-7px;left:-7px;min-width:22px;height:22px;border:2px solid #fff;border-radius:999px;color:#fff;display:grid;place-items:center;padding:0 5px;font-family:var(--display);font-size:12px;font-weight:700}.book-main,.suggested-main{min-width:0;flex:1}.book-title-button{border:0;background:transparent;color:var(--ink);cursor:pointer;font-family:var(--display);font-size:17px;font-weight:700;line-height:1.2;padding:0;text-align:left}.rating-line{margin-top:4px}.stars,.read-stars{display:inline-flex;gap:2px}.stars button{border:0;border-radius:6px;background:transparent;cursor:pointer;line-height:0;padding:1px}.review-button{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:#4b4e63;cursor:pointer;font-size:15px;font-weight:700;line-height:1.45;margin-top:6px;padding:0;text-align:left}.review-button.empty,.review-card p.empty{color:#a9abbd;font-style:italic}.review-editor{margin-top:8px}.review-editor textarea{min-height:72px;resize:vertical;padding:8px 10px}.small-save,.small-cancel{border-radius:9px;color:#fff;padding:6px 12px;font-size:14px}.small-cancel{color:var(--ink)}.delete-book{color:#c5c8d6;padding:4px}.danger-zone{margin-top:28px;text-align:center}.confirm-row{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;color:var(--muted);font-weight:800}.quiet-danger{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#a9abbd;cursor:pointer;font-size:14px;font-weight:800}.search-box{display:flex;align-items:center;gap:8px;border-radius:14px;padding:10px 14px;color:#9a9cb0;margin:18px 0}.search-box input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:16px;font-weight:800;outline:none}.search-box button{border:0;background:transparent;color:#9a9cb0;cursor:pointer}.suggested-card{display:flex;min-width:0;flex-direction:column;gap:14px;border-radius:22px;padding:14px}.suggested-main{display:flex;min-width:0;flex:1;flex-direction:column}.suggested-main .book-title-button{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:21px;line-height:1.12}.suggested-cover{width:100%}.suggested-cover .book-cover{width:100%!important;height:auto!important;aspect-ratio:2 / 3;border-radius:12px;box-shadow:0 12px 28px #2b2d4229}.suggested-cover .drawn-cover{padding:11% 12% 9% 18%}.suggested-cover .drawn-cover strong{font-size:20px;line-height:1.08}.suggested-cover .drawn-cover small{font-size:13px;line-height:1.1}.pill-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.pill{border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:900;white-space:nowrap}.suggested-actions{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;margin-top:4px;color:var(--muted);font-size:14px;font-weight:900}.suggested-readers{display:flex;align-items:center;gap:8px;min-height:28px;margin-top:4px;color:#8f92a8;font-size:13px;font-weight:900}.suggested-byline{margin-top:4px;color:#8f92a8;font-size:15px;font-weight:800}.suggested-rating{display:flex;align-items:center;gap:6px;min-height:24px;margin-top:10px;color:#8f92a8;font-size:14px;font-weight:800}.suggested-rating strong{color:var(--ink);font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums}.suggested-reader-avatars{display:flex;align-items:center}.suggested-reader-avatar{position:relative;margin-left:-5px}.suggested-reader-avatar:first-child{margin-left:0}.suggested-reader-avatar .avatar{border-width:2px}.reader-chip{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--soft-line);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;font-family:var(--display);font-size:14px;font-weight:700;padding:4px 12px 4px 5px}.text-button{color:#8f92a8;font-size:14px;font-weight:900}.added-note{display:inline-flex;align-items:center;gap:6px;color:#2c6b18;font-family:var(--display);font-weight:700}.book-page-head h1{margin:0;color:var(--ink);font-family:var(--display);font-size:26px;line-height:1.15}.average-line{color:#8f92a8;margin-top:14px;font-size:14px;font-weight:800}.average-line strong{color:var(--ink);font-family:var(--display);font-size:18px}.add-to-shelf-panel{border-radius:16px;margin-bottom:18px;padding:14px;color:var(--muted);font-weight:900}.book-reason-card{display:flex;align-items:flex-start;gap:10px;border-left:6px solid;border-radius:16px;margin-bottom:18px;padding:16px 18px}.book-reason-card svg{flex-shrink:0}.book-reason-card p{margin:0;min-width:0;color:#4b4e63;font-size:16px;font-weight:800;line-height:1.45;white-space:pre-line}.review-card{border-radius:16px;padding:14px}.review-card-link{color:inherit;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease}.review-card-link:hover,.review-card-link:focus-visible{box-shadow:0 10px 26px #2b2d421f;transform:translateY(-1px)}.review-card-head strong{color:var(--ink);font-family:var(--display)}.review-card p{margin:4px 0 0;color:#4b4e63;font-weight:700;line-height:1.45}.empty-state{border-radius:18px;padding:28px;color:#777b91;font-weight:800;text-align:center}.avatar-shell{position:relative;flex-shrink:0}.avatar-shell input{display:none}.avatar{border:4px solid #fff;border-radius:50%;color:#fff;display:grid;place-items:center;overflow:hidden;font-family:var(--display);font-weight:700}.avatar-upload{position:absolute;right:-2px;bottom:-2px;min-width:28px;min-height:28px;border:3px solid #fff;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer}.shelf{display:flex;align-items:flex-end;gap:2px;border-bottom:3px solid var(--ink);border-radius:2px;padding:0 2px 6px}.shelf.big{gap:4px;margin-top:18px}.shelf span{min-width:5px;flex:1;border-radius:3px 3px 1px 1px;box-shadow:inset 0 -3px #0000001a;transition:height .35s cubic-bezier(.34,1.56,.64,1),background .25s ease}.shelf.big span{min-width:8px}.book-cover{position:relative;display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0;overflow:hidden;border:0;border-radius:3px 6px 6px 3px;box-shadow:0 3px 10px #2b2d422e;text-align:left}button.book-cover{cursor:pointer}.image-cover img{width:100%;height:100%;object-fit:cover;display:block}.drawn-cover{padding:9% 12% 8% 18%}.book-spine{position:absolute;inset:0 auto 0 0;width:7%;min-width:3px;background:#00000029}.drawn-cover strong{color:#fff;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;font-family:var(--display);font-size:clamp(9px,14%,15px);font-weight:800;line-height:1.12;text-shadow:0 1px 1px rgba(0,0,0,.18)}.drawn-cover small{color:#ffffffeb;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(7px,10%,10px);font-weight:900;line-height:1.1}.min-0{min-width:0}@media(max-width:620px){.app-container{padding-inline:14px}.push-right{width:100%;justify-content:center;margin-left:0}.progress-card strong{font-size:20px}.progress-track{flex-basis:100%}.reader-grid{grid-template-columns:1fr}.recent-reviews{margin-top:20px}.recent-review-grid{grid-template-columns:1fr;gap:12px}.recent-review-card{border-radius:18px;padding:12px}.recent-review-card>.book-cover{flex-basis:58px;width:58px!important;height:86px!important;min-width:58px;max-width:58px}.recent-review-card>.drawn-cover{padding:7px 7px 6px 11px}.recent-review-meta{flex-wrap:wrap;align-items:center;gap:5px 7px}.recent-review-meta time{margin-left:0}.profile-pages-total{display:flex;align-items:baseline;justify-content:space-between;width:100%;margin-left:0;gap:12px;text-align:left}.profile-pages-total span{margin-top:0;white-space:normal}.add-book-button{width:100%;justify-content:center}.suggested-stack{grid-template-columns:1fr;gap:12px}.suggested-card{flex-direction:row;align-items:flex-start;gap:12px;border-radius:18px;padding:10px}.suggested-cover{width:104px;flex-shrink:0}.suggested-cover .book-cover{border-radius:8px;box-shadow:0 6px 16px #2b2d4224}.suggested-cover .drawn-cover{padding:12% 11% 10% 18%}.suggested-cover .drawn-cover strong{font-size:10px;line-height:1.08;-webkit-line-clamp:5}.suggested-cover .drawn-cover small{font-size:8px}.suggested-main .book-title-button{-webkit-line-clamp:3;font-size:18px;line-height:1.12}.suggested-byline{font-size:14px}.suggested-rating{flex-wrap:wrap;gap:4px 6px;margin-top:8px;font-size:13px}.suggested-readers{align-items:flex-start;gap:6px;margin-top:6px;font-size:13px}.suggested-actions{gap:6px;margin-top:8px;font-size:13px}.shelf-button{padding:6px 10px 6px 8px;font-size:13px}}@media(max-width:390px){.suggested-card{gap:10px;padding:9px}.suggested-cover{width:92px}.suggested-main .book-title-button{font-size:17px}}@media(min-width:621px)and (max-width:980px){.recent-review-grid,.suggested-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
