:root{color:#2b2d42;background:#f5f6fc;font-family:Nunito,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink: #2b2d42;--muted: #6b6e86;--soft-line: #e7e8f2;--surface: #fff;--surface-subtle: #f8f9fd;--shadow-border: 0 0 0 1px rgba(0, 0, 0, .06), 0 1px 2px -1px rgba(0, 0, 0, .06), 0 8px 24px -8px rgba(43, 45, 66, .12);--shadow-border-hover: 0 0 0 1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .1), 0 16px 34px -12px rgba(43, 45, 66, .2);--shadow-elevated: 0 0 0 1px rgba(0, 0, 0, .07), 0 8px 20px -8px rgba(43, 45, 66, .2), 0 20px 48px -16px rgba(43, 45, 66, .22);--display: "Fredoka", "Trebuchet MS", sans-serif;--body: "Nunito", "Segoe UI", sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}h1,h2,h3{text-wrap:balance}p,li,.empty-state,.goal-banner,.review-button,.review-copy{text-wrap:pretty}button,input,textarea{font:inherit}button{color:inherit;transition-property:scale,background-color,color,box-shadow,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.2,0,0,1)}button:not(:disabled):active{scale:.96}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tabular-nums,.progress-card strong,.reader-percent,.reader-progress,.average-line,.recent-review-meta time,.results-summary{font-variant-numeric:tabular-nums}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}.access-toolbar{display:flex;min-height:44px;align-items:center;justify-content:flex-end;margin-bottom:14px}.edit-club-button,.sign-out-button,.continue-browsing-button,.retry-session-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;border:0;cursor:pointer;font-weight:900}.edit-club-button{border-radius:14px;background:#ffffffd1;box-shadow:var(--shadow-border);color:#55586e;padding:9px 13px 9px 15px}.edit-club-button:hover{background:#fff;box-shadow:var(--shadow-border-hover);color:var(--ink)}.editing-toolbar{width:fit-content;min-height:48px;gap:4px;margin-left:auto;border-radius:22px;background:#ffffffe6;box-shadow:var(--shadow-border);padding:4px}.editing-status,.sign-out-button{min-height:40px;border-radius:18px}.editing-status{display:inline-flex;align-items:center;gap:8px;background:#edf8e9;color:#286b18;padding:8px 12px;font-family:var(--display);font-size:14px;font-weight:700}.editing-status>span{width:8px;height:8px;border-radius:50%;background:#43a82c;box-shadow:0 0 0 3px #43a82c24}.sign-out-button{background:transparent;color:#626579;padding:8px 11px 8px 13px}.sign-out-button:hover{background:#f0f1f8;color:var(--ink)}.editing-auth-error{display:flex;width:fit-content;max-width:min(480px,100%);min-height:40px;align-items:flex-start;gap:9px;margin:-4px 0 14px auto;border-radius:14px;background:#fff0f1;box-shadow:0 0 0 1px #9e222a1f,0 6px 18px -8px #9e222a33;color:#9e222a;padding:10px 12px;font-size:14px;font-weight:900;line-height:1.4;text-wrap:pretty}.editing-auth-error svg{flex:0 0 auto;margin-top:1px}.sign-in-page{display:grid;min-height:min(640px,calc(100vh - 130px));place-items:center;padding:36px 0 64px}.sign-in-card{width:min(460px,100%);border-radius:32px;background:#fffffff0;box-shadow:var(--shadow-elevated);padding:26px}.sign-in-mark{display:grid;width:54px;height:54px;margin:0 auto 16px;place-items:center;border-radius:18px;background:var(--ink);box-shadow:0 0 0 1px #0000000f,0 10px 24px -10px #2b2d4280;color:#fff;transform:rotate(-4deg)}.sign-in-copy{text-align:center}.sign-in-copy h1{margin:0;color:var(--ink);font-family:var(--display);font-size:30px;line-height:1.05}.sign-in-copy>p:last-child{max-width:360px;margin:9px auto 0;color:var(--muted);font-weight:800;line-height:1.5}.sign-in-eyebrow{margin:0 0 5px;color:#626579;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sign-in-form{margin-top:22px}.sign-in-form>label{display:block;margin:0 0 7px 2px;color:var(--ink);font-family:var(--display);font-size:15px;font-weight:700}.sign-in-form>input{width:100%;min-height:48px;border:2px solid var(--soft-line);border-radius:14px;background:#fff;color:var(--ink);padding:10px 13px;outline:none;font-size:18px;font-weight:800;transition-property:border-color,box-shadow;transition-duration:.15s;transition-timing-function:ease-out}.sign-in-form>input:hover{border-color:#cfd1df}.sign-in-help{margin:7px 2px 0;color:#676a80;font-size:13px;font-weight:800;line-height:1.4}.sign-in-error{display:flex;align-items:flex-start;gap:9px;margin-top:12px;border-radius:14px;background:#fff0f1;box-shadow:0 0 0 1px #9e222a1f;color:#9e222a;padding:11px 12px;font-size:14px;font-weight:900;line-height:1.4}.sign-in-error svg{flex:0 0 auto;margin-top:1px}.sign-in-submit{width:100%;min-height:44px;margin-top:14px;padding-inline:18px}.sign-in-footer{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px}.continue-browsing-button,.retry-session-button{border-radius:12px;background:transparent;color:#626579;padding:8px 11px}.continue-browsing-button:hover,.retry-session-button:hover{background:#f0f1f8;color:var(--ink)}.session-check{display:flex;min-height:84px;align-items:center;justify-content:center;gap:9px;margin-top:18px;color:#626579;font-weight:900}.session-check svg{animation:session-check-spin .9s linear infinite}@keyframes session-check-spin{to{transform:rotate(360deg)}}.loading-shell{display:grid;place-items:center;padding:24px}.loading-card{width:min(420px,100%);border-radius:28px;background:#ffffffe6;box-shadow:var(--shadow-elevated);padding:32px;text-align:center}.loading-mark,.state-icon{display:grid;width:52px;height:52px;margin:0 auto 14px;place-items:center;border-radius:16px;background:var(--ink);color:#fff}.loading-mark{transform:rotate(-5deg)}.loading-card h1,.initial-error h1{margin:0;font-family:var(--display);font-size:24px;line-height:1.1}.loading-card p,.initial-error p{margin:8px auto 0;color:var(--muted);font-weight:700;line-height:1.5}.loading-shelves{display:grid;gap:8px;margin-top:24px}.loading-shelves span{height:10px;border-radius:999px;background:linear-gradient(90deg,#eeeff8 25%,#fff,#eeeff8 75%);background-size:200% 100%;animation:shelf-shimmer 1.4s ease-in-out infinite}.loading-shelves span:nth-child(2){width:84%;animation-delay:.1s}.loading-shelves span:nth-child(3){width:64%;animation-delay:.2s}@keyframes shelf-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.initial-error{width:min(460px,100%);border-radius:28px;background:var(--surface);box-shadow:var(--shadow-elevated);padding:32px;text-align:center}.initial-error .error-icon{background:#fff0f1;color:#b32631}.retry-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;margin-top:20px;padding-inline:18px}.error-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;border-radius:18px;background:#fff0f1;box-shadow:0 0 0 1px #9e222a1f,0 6px 18px -8px #9e222a40;color:#9e222a;padding:10px 10px 10px 14px;margin-bottom:18px;font-weight:800}.error-banner>svg{flex:0 0 auto}.error-banner>span{min-width:0;flex:1}.error-actions,.error-retry{display:flex;align-items:center}.error-actions{gap:4px}.error-retry,.icon-button{min-width:40px;min-height:40px;border:0;border-radius:12px;background:transparent;color:inherit;cursor:pointer}.error-retry{gap:6px;padding:0 10px;font-weight:900}.icon-button{display:grid;place-items:center}.error-retry:hover,.icon-button:hover{background:#9e222a14}.error-banner button,.icon-ghost,.text-button,.delete-book{border:0;background:transparent;cursor:pointer}.hero{margin-bottom:28px}.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:var(--shadow-border);cursor:pointer;font-family:var(--display);font-weight:700}.white-button{display:inline-flex;align-items:center;gap:8px;border-radius:14px;min-height:44px;padding:10px 14px 10px 16px;font-size:15px}.back-button{display:inline-flex;align-items:center;gap:4px;border-radius:999px;min-height:44px;padding:8px 16px 8px 10px;margin-bottom:18px}.white-button:hover,.back-button:hover{box-shadow:var(--shadow-border-hover)}.progress-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;border-radius:20px;background:#fff;padding:14px 16px;box-shadow:var(--shadow-border)}.progress-card strong{color:var(--ink);font-family:var(--display);font-size:22px}.progress-card span{color:#626579;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:#626579;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:#676a80;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:var(--shadow-border)}.reader-card,.add-reader-card{min-height:150px;border-radius:24px;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 h1{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:#626579;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:var(--shadow-border-hover)}.card-hover:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-border-hover)}.add-kid-card{border:2px solid;border-radius:30px;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;min-height:44px;background:#fff;transition-property:border-color,box-shadow;transition-duration:.15s;transition-timing-function:ease-out}.add-kid-card input:hover,.name-edit input:hover,.add-book-card input:hover,.review-editor textarea:hover{border-color:#cfd1df}.add-kid-card input{padding:10px 12px;font-family:var(--display);font-size:18px;font-weight:700}.swatch-fieldset{min-width:0;margin:0;border:0;padding:0}.swatch-fieldset legend{margin-bottom:8px;color:var(--muted);font-size:13px;font-weight:900}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatches button{width:40px;height:40px;border:3px solid transparent;border-radius:50%;cursor:pointer}.swatches .active{border-color:var(--ink);box-shadow:inset 0 0 0 2px #fff}.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;min-height:40px}.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:#b32631;color:#fff;padding:8px 14px}.average-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.profile-card,.book-page-head{border-top:8px solid;border-radius:28px;padding:22px;margin-bottom:22px}.profile-card{border-radius:40px}.book-page-head{display:flex;align-items:flex-start;flex-wrap:nowrap;gap:28px}.goal-banner{display:flex;align-items:center;gap:10px;min-height:52px;border-radius:18px;margin-bottom:16px;padding:10px 14px;color:var(--ink);font-family:var(--display);font-size:17px;font-weight:700}.profile-head,.review-card{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.book-page-head{flex-wrap:nowrap;gap:28px}.profile-title{flex:1;min-width:180px}.profile-pages-total{min-width:132px;margin-left:auto;border-radius:16px;background:#f8f9fd;box-shadow:0 0 0 1px #0000000d,0 2px 8px -4px #2b2d4224;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:#626579;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 h1{margin:0;font-size:30px;font-family:var(--display);line-height:1.05}.icon-ghost{color:#626579;display:grid;width:40px;height:40px;place-items:center;border-radius:12px;padding:0}.icon-ghost:hover{background:#f0f1f8;color:var(--ink)}.name-edit input{max-width:260px;padding:6px 10px;font-family:var(--display);font-size:26px;font-weight:700}.name-edit button{min-width:44px;min-height:44px;border:0;border-radius:10px;color:#fff;cursor:pointer;display:grid;place-items:center}.name-edit .name-edit-cancel{width:auto;background:#eeeff8;color:var(--ink);padding:8px 12px}.section-title{margin:28px 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:28px;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;min-height:44px}.shelf-button{background:#f5f6fc;box-shadow:0 0 0 1px #00000012;color:var(--ink);padding:8px 13px;font-size:14px}.suggest-popover{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;overflow-x:hidden;overflow-y:auto;max-height:min(360px,50vh);border-radius:18px;background:#fff;box-shadow:var(--shadow-elevated)}.suggest-popover button{width:100%;border:0;background:#fff;color:var(--ink);display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 12px;text-align:left;cursor:pointer}.suggest-popover button.active{background:#f5f6fc}.suggest-popover button+button{border-top:1px solid rgba(43,45,66,.07)}.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:#626579;font-size:13px;font-weight:800}.book-stack{display:flex;flex-direction:column;gap:14px}.suggested-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 24px}.book-row{position:relative;display:flex;gap:12px;align-items:flex-start;border-radius:20px;padding:14px;transition-property:box-shadow,transform;transition-duration:.16s;transition-timing-function:ease-out}.book-row:hover{box-shadow:var(--shadow-border-hover)}.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;min-height:40px;margin:-8px -8px 0;padding:8px;text-align:left;text-wrap:balance;overflow-wrap:anywhere}.book-title-button:hover{color:#17192a;text-decoration:underline;text-decoration-color:#2b2d4233;text-underline-offset:3px}.rating-line{margin-top:4px}.stars,.read-stars{display:inline-flex;gap:2px}.stars button{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:10px;background:transparent;cursor:pointer;line-height:0;padding:0}.stars button:hover,.stars button:focus-visible{background:#fff9e4}.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;min-height:40px;margin:4px 0 -8px -8px;padding:8px;text-align:left}.review-button.empty,.review-card p.empty,.review-copy.empty{color:#676a80;font-style:italic}.review-editor{margin-top:8px}.review-editor textarea{min-height:72px;resize:vertical;padding:10px 12px}.small-save,.small-cancel{min-height:40px;border-radius:10px;color:#fff;padding:6px 12px;font-size:14px}.small-cancel{color:var(--ink)}.book-delete-actions{position:absolute;z-index:2;top:8px;right:8px;width:88px;height:44px;pointer-events:none}.delete-book{position:absolute;top:2px;right:2px;display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border-radius:12px;border:0;background:transparent;color:#74778b;padding:0;opacity:1;scale:1;filter:blur(0);pointer-events:auto;transition-property:opacity,scale,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,0,0,1)}.delete-book:hover{background:#fff0f1;color:#b32631}.book-delete-confirm{position:absolute;top:0;right:0;display:flex;gap:4px;border-radius:14px;background:#fff;box-shadow:var(--shadow-border);padding:2px;opacity:0;scale:.25;filter:blur(4px);pointer-events:none;transition-property:opacity,scale,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,0,0,1)}.book-delete-actions.confirming .delete-book{opacity:0;scale:.25;filter:blur(4px);pointer-events:none}.book-delete-actions.confirming .book-delete-confirm{opacity:1;scale:1;filter:blur(0);pointer-events:auto}.book-row .book-title-button{padding-right:48px}.book-row.confirming-delete .book-title-button{padding-right:96px}.confirm-delete-book,.cancel-delete-book{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:12px;cursor:pointer}.confirm-delete-book{background:#b32631;color:#fff}.cancel-delete-book{background:#eeeff8;color:var(--ink)}.review-copy{margin:6px 0 0;color:#4b4e63;font-size:15px;font-weight:700;line-height:1.45}.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:#676a80;cursor:pointer;font-size:14px;font-weight:800;min-height:40px;border-radius:12px;padding:8px 12px}.quiet-danger:hover{background:#fff0f1;color:#b32631}.search-box{display:flex;align-items:center;gap:8px;border-radius:18px;padding:10px 14px;color:#626579;margin:18px 0;transition-property:box-shadow;transition-duration:.15s;transition-timing-function:ease-out}.search-box:focus-within{box-shadow:0 0 0 3px #2b2d4229,var(--shadow-border)}.search-box input{flex:1;min-width:0;min-height:40px;border:0;background:transparent;color:var(--ink);font-size:16px;font-weight:800;outline:none}.search-box button{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:12px;background:transparent;color:#626579;cursor:pointer}.search-box button:disabled{opacity:1}.context-icon-wrap{position:relative;display:grid;width:18px;height:18px;place-items:center}.context-icon{position:absolute;inset:0;opacity:0;scale:.25;filter:blur(4px);transition-property:opacity,scale,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,0,0,1)}.context-icon.active{opacity:1;scale:1;filter:blur(0)}.search-box button:hover{background:#f0f1f8;color:var(--ink)}.results-summary{margin:-8px 4px 14px;color:var(--muted);font-size:13px;font-weight:900}.suggested-card{display:flex;min-width:0;flex-direction:column;gap:14px;border-radius:26px;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 0 0 1px #00000012,0 12px 28px -8px #2b2d424d}.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{position:relative;display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;margin-top:4px;color:var(--muted);font-size:14px;font-weight:900}.suggested-action-state{position:absolute;inset:0 auto auto 0;display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px;opacity:0;scale:.25;filter:blur(4px);pointer-events:none;transform-origin:left center;transition-property:opacity,scale,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(.2,0,0,1)}.suggested-action-state.active{position:relative;opacity:1;scale:1;filter:blur(0);pointer-events:auto}.suggested-readers{display:flex;align-items:center;gap:8px;min-height:28px;margin-top:4px;color:#626579;font-size:13px;font-weight:900}.suggested-byline{margin-top:4px;color:#626579;font-size:15px;font-weight:800}.suggested-rating{display:flex;align-items:center;gap:6px;min-height:24px;margin-top:10px;color:#626579;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;min-height:40px;border:0;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;box-shadow:0 0 0 1px #00000014}.reader-chip:hover{background:#f8f9fd;box-shadow:var(--shadow-border-hover)}.text-button{min-height:40px;border-radius:10px;color:#626579;font-size:14px;font-weight:900;padding:8px 10px}.text-button:hover{background:#f0f1f8;color:var(--ink)}.added-note{display:inline-flex;align-items:center;gap:6px;color:#2c6b18;font-family:var(--display);font-weight:700}.shelf-complete{display:inline-flex;min-height:40px;align-items:center;gap:6px;color:#2c6b18;font-size:14px;font-weight:900}.book-page-head h1{margin:0;color:var(--ink);font-family:var(--display);font-size:clamp(26px,4vw,38px);line-height:1.15}.book-page-details{min-width:0;flex:1;padding-top:4px}.average-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:#626579;margin-top:14px;font-size:14px;font-weight:800}.average-line strong{color:var(--ink);font-family:var(--display);font-size:18px;font-variant-numeric:tabular-nums}.average-readers:before{content:"·";margin-right:6px}.add-to-shelf-panel{min-height:64px;border-radius:20px;margin-bottom:22px;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:20px;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:20px;padding:16px}.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:var(--shadow-border-hover);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{width:100%;border-radius:24px;padding:32px 24px;color:#626579;font-weight:800;text-align:center}.empty-state .state-icon{width:48px;height:48px;margin-bottom:12px;border-radius:15px;background:#eeeff8;color:var(--ink)}.empty-state h2{margin:0;color:var(--ink);font-family:var(--display);font-size:20px}.empty-state p{max-width:480px;margin:6px auto 0;line-height:1.5}.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.has-image{outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.avatar-upload{position:absolute;right:-2px;bottom:-2px;min-width:40px;min-height:40px;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;transition-property:scale,box-shadow;transition-duration:.16s;transition-timing-function:ease-out}button.book-cover{cursor:pointer}button.book-cover:hover{box-shadow:0 0 0 1px #00000014,0 8px 20px -6px #2b2d4252}.image-cover img{width:100%;height:100%;object-fit:cover;display:block;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}.drawn-cover{padding:9% 12% 8% 18%}.drawn-cover:after{position:absolute;z-index:0;inset:0;background:linear-gradient(145deg,#00000094,#0000004d);content:"";pointer-events:none}.book-spine{position:absolute;inset:0 auto 0 0;width:7%;min-width:3px;background:#00000029;z-index:2}.drawn-cover strong{position:relative;z-index:1;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{position:relative;z-index:1;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}.route-stage[aria-busy=true]{cursor:progress}.page-section [data-page-heading]:focus{outline:none}.route-redirect{border-radius:20px;background:#fff;box-shadow:var(--shadow-border);color:var(--muted);padding:24px;font-weight:800;text-align:center}@media(max-width:620px){.app-container{padding:18px 14px 48px}.access-toolbar{margin-bottom:12px}.editing-toolbar{width:100%;justify-content:space-between}.editing-auth-error{width:100%}.sign-in-page{min-height:calc(100vh - 108px);padding:20px 0 48px}.hero{margin-bottom:20px}.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}.book-page-head{gap:16px;padding:18px}.book-page-head .book-cover{width:118px!important;height:177px!important}.book-page-head h1{font-size:23px}.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:8px 10px 8px 8px;font-size:13px}.profile-card{border-radius:36px;padding:18px}.profile-title{min-width:150px}.error-banner{align-items:flex-start}.error-actions{flex:0 0 auto}}@media(max-width:390px){.app-container{padding-inline:12px}.book-page-head{gap:12px;border-radius:22px;padding:14px}.editing-status,.sign-out-button{font-size:13px}.sign-in-card{border-radius:24px;padding:22px 18px}.sign-in-copy h1{font-size:27px}.book-page-head .book-cover{width:96px!important;height:142px!important}.book-page-head h1{font-size:21px}.book-page-details{padding-top:0}.average-line{margin-top:10px}.add-kid-card,.loading-card,.initial-error{border-radius:24px;padding:24px 18px}.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}}
