:root{--paper:#fffaf4;--ink:#1c1917;--muted:#78716c;--line:#e7e0d8;--card:#fff;--accent:#c2410c;--accent-ink:#fff;--danger:#b42318;--ok:#3f6212;--shadow:0 16px 40px #1c191714;--radius:16px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:18px;line-height:1.5}button,input,textarea{font:inherit}#app{min-height:100vh}a{color:inherit}.shell{flex-direction:column;width:min(720px,100% - 32px);min-height:100vh;margin:0 auto;display:flex}.shell .hero,.shell .page{flex:1}.site-header{justify-content:space-between;align-items:center;gap:16px;padding:20px 0 8px;display:flex}.wordmark{letter-spacing:-.03em;font-size:22px;text-decoration:none}.wordmark span{color:var(--accent)}.nav-links{align-items:center;gap:16px;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:15px;display:flex}.nav-links a,.nav-links button.link,.nav-links button.account-name{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:none}.nav-links a:hover,.nav-links button.link:hover,.nav-links button.account-name:hover,.nav-links button.account-name[aria-expanded=true]{color:var(--ink)}.account-wrap{position:relative}.account-panel{background:var(--card);border:1px solid var(--line);min-width:168px;box-shadow:var(--shadow);z-index:12;border-radius:12px;gap:2px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.account-item{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--ink);background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:15px;display:block}.account-item:hover,.account-item:focus-visible{background:#fff4e6}.bell-wrap{position:relative}.bell{width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.badge{background:var(--accent);color:#fff;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:10px;line-height:16px;position:absolute;top:2px;right:2px}.bell-panel{background:var(--card);border:1px solid var(--line);width:min(320px,70vw);max-height:min(70vh,420px);box-shadow:var(--shadow);z-index:12;border-radius:12px;gap:8px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.bell-item{text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;gap:2px;padding:8px;display:grid}.bell-item:hover{background:#fff4e6}.bell-item strong{font-size:15px}.bell-item span{color:var(--muted);font-size:13px}.tabs{flex-wrap:wrap;gap:8px 16px;margin:0 0 24px;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:6px 0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:15px}.tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.timeline-toolbar{justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 24px;display:flex}.timeline-toolbar .hint{max-width:42ch;margin:0}.axis-switch{border:1px solid var(--line);background:#fff;border-radius:999px;flex-shrink:0;padding:3px;display:inline-flex}.axis-switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 12px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:13px;font-weight:600}.axis-switch button.active{background:var(--ink);color:#fff}.timeline-track{margin:0;padding:0;list-style:none}.timeline-track.is-vertical{padding-left:18px;position:relative}.timeline-track.is-vertical:before{content:"";background:linear-gradient(180deg, var(--accent), var(--line));border-radius:2px;width:2px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-track.is-vertical .timeline-node{padding:0 0 22px 22px;position:relative}.timeline-track.is-vertical .timeline-node:last-child{padding-bottom:0}.timeline-dot{background:var(--card);border:3px solid var(--accent);width:14px;height:14px;box-shadow:0 0 0 3px var(--paper);border-radius:50%;position:absolute}.timeline-track.is-vertical .timeline-dot{top:18px;left:0;transform:translate(-22px)}.timeline-node[data-kind=add_book] .timeline-dot{border-color:var(--accent)}.timeline-node[data-kind=remove_book] .timeline-dot{border-color:var(--muted)}.timeline-node[data-kind=tag] .timeline-dot{border-color:#7c3aed}.timeline-node[data-kind=club] .timeline-dot{border-color:#0f766e}.timeline-node[data-kind=follow] .timeline-dot{border-color:var(--ok)}.timeline-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:14px 16px 12px}.timeline-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:700}.timeline-card h3{margin:0;font-size:18px;line-height:1.3}.timeline-detail{color:var(--muted);margin:6px 0 0;font-size:15px}.timeline-card time{color:var(--muted);margin-top:8px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px;display:block}.timeline-track.is-horizontal{scroll-snap-type:x proximity;scrollbar-width:thin;align-items:stretch;gap:0;padding:8px 4px 20px;display:flex;overflow-x:auto}.timeline-track.is-horizontal .timeline-node{scroll-snap-align:start;flex:0 0 240px;height:340px;position:relative}.timeline-track.is-horizontal .timeline-node:before{content:"";background:var(--line);height:2px;position:absolute;top:50%;left:0;right:0}.timeline-track.is-horizontal .timeline-dot{z-index:1;top:50%;left:50%;transform:translate(-50%,-50%)}.timeline-track.is-horizontal .timeline-card{z-index:1;position:absolute;left:8px;right:8px}.timeline-track.is-horizontal .timeline-node:nth-child(odd) .timeline-card{bottom:calc(50% + 16px)}.timeline-track.is-horizontal .timeline-node:nth-child(2n) .timeline-card{top:calc(50% + 16px)}.library-tools{flex-wrap:wrap;gap:8px;margin:-8px 0 24px;display:flex}.file-input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.modal.wide{width:min(520px,100%)}.import-steps{color:var(--ink);margin:14px 0 18px;padding-left:1.2em}.import-steps li{margin:0 0 8px}.import-steps a{text-underline-offset:3px;text-decoration:underline}.preview-book{grid-template-columns:132px 1fr;align-items:start;gap:18px;margin:12px 0 8px;display:grid}.preview-cover{aspect-ratio:3/4;object-fit:cover;object-position:center;background:#efe8df;border-radius:10px;width:100%;display:block}.preview-cover.fallback{align-items:flex-end;padding:12px;display:flex}.preview-cover.fallback strong{letter-spacing:-.03em;font-size:16px;font-weight:500;line-height:1.2}.preview-body h2{letter-spacing:-.03em;margin:0 0 6px;font-size:28px;font-weight:500}@media (width<=640px){.preview-book{grid-template-columns:96px 1fr;gap:14px}.preview-body h2{font-size:22px}}.cadence{border:0;margin:0 0 14px;padding:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:15px}.cadence legend{color:var(--muted);margin-bottom:8px;padding:0;font-size:13px}.cadence-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.cadence-option{cursor:pointer;min-width:0;position:relative}.cadence-option input{appearance:none;z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;box-shadow:none;accent-color:#0000;background:0 0;border:0;outline:none;margin:0;position:absolute;inset:0}.cadence-option span{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--muted);text-align:center;opacity:.38;box-shadow:none;border-radius:12px;outline:none;justify-content:center;align-items:center;padding:10px 12px;font-size:15px;line-height:1.2;display:flex}.cadence-option:hover span{color:var(--muted);border-color:var(--line);background:var(--card);box-shadow:none;opacity:.7}.cadence-option:has(input:checked) span{border-color:var(--line);background:var(--card);color:var(--ink);box-shadow:none;opacity:1;outline:none}.cadence-option:has(input:checked):hover span{color:var(--ink);border-color:var(--line);background:var(--card);box-shadow:none;opacity:1}.cadence-option:has(input:focus-visible) span{outline:2px solid var(--ink);outline-offset:2px}.check{cursor:pointer;align-items:center;gap:8px;margin:0 0 16px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:15px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent)}.book.unread{box-shadow:0 0 0 1px #f0d7b8}.hero{flex-direction:column;padding:56px 0 8px;display:flex}.hero h1,.page-title{letter-spacing:-.04em;margin:0 0 16px;font-size:clamp(36px,7vw,56px);font-weight:500;line-height:1.08}.hero h1,.lede{text-align:center}.lede{color:var(--muted);margin:0 0 32px;font-size:20px}.home-empty{text-align:center;margin:-12px 0 20px}.claim{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.home-add{flex-wrap:nowrap}.home-add-field{flex:auto;min-width:0}.home-add .claim-field{flex:auto;min-width:0;padding-left:18px}.home-add .claim-field input{padding-left:0}.shelf{margin:0 0 20px;position:relative}.shelf-track{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:calc(33.3333% - 5.33333px);grid-auto-flow:column;gap:8px;padding:2px;display:grid;overflow-x:auto}.shelf-track::-webkit-scrollbar{display:none}.shelf-card{scroll-snap-align:start;aspect-ratio:3/4;border:1px solid var(--line);appearance:none;min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:#efe8df;border-radius:12px;padding:0;position:relative;overflow:hidden}button.shelf-card:hover,button.shelf-card:focus-visible{box-shadow:var(--shadow);outline-offset:2px;outline:2px solid #1c1917}.shelf-card.placeholder{box-shadow:none;cursor:default;background:0 0;border-style:dashed}.shelf-cover{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.shelf-fallback{flex-direction:column;justify-content:flex-end;gap:4px;height:100%;padding:12px;display:flex}.shelf-fallback strong{letter-spacing:-.03em;font-size:15px;font-weight:500;line-height:1.2}.shelf-fallback span{color:var(--muted);font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px}.shelf-arrow{z-index:2;border:1px solid var(--line);background:var(--card);width:32px;height:32px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow);border-radius:999px;margin-top:-16px;padding:0;font-size:22px;line-height:1;position:absolute;top:50%}.shelf-arrow:disabled{opacity:.35;cursor:default}.shelf-arrow.prev{left:-8px}.shelf-arrow.next{right:-8px}.claim-field{background:var(--card);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);border-radius:999px;flex:280px;align-items:center;padding:6px 6px 6px 18px;display:flex}.claim-field.available{box-shadow:0 0 0 1px #16a34a, var(--shadow);border-color:#16a34a}.claim-field.taken{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger), var(--shadow)}.claim-prefix{color:var(--muted);white-space:nowrap;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px}.claim-field input,.field input,.field textarea{width:100%;color:var(--ink);background:0 0;border:0;outline:none}.claim-field input{min-width:0;padding:10px 12px 10px 0}.btn{appearance:none;background:var(--ink);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:12px 22px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.accent{background:var(--accent);color:var(--accent-ink)}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn.danger{background:var(--danger);color:#fff}.btn.ghost.danger{color:var(--danger);background:0 0;border-color:#f0c9c6}.btn.small{padding:8px 14px;font-size:14px}.fine-print,.hint,.error,.ok{font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px}.fine-print,.hint{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--ok)}.points{gap:20px;margin:56px 0 0;padding:0;list-style:none;display:grid}.points li{border-top:1px solid var(--line);padding-top:16px}.points strong{margin-bottom:4px;display:block}.page{padding:24px 0 80px}.profile-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.profile-head .page-title{margin-bottom:8px}.profile-head .username{margin:0}.profile-head .hint{margin:8px 0 0}.profile-head .btn{flex-shrink:0;margin-top:6px}.tag-pref{cursor:pointer;align-items:flex-start;gap:10px;margin:0 0 24px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:15px;display:flex}.tag-pref input{margin-top:3px}.tag-pref em{color:var(--muted);margin-top:4px;font-size:14px;font-style:normal;display:block}.mention-pref{margin-top:12px}.feedback-page .page-title{text-align:center}.banner{border-radius:var(--radius);background:#fff4e6;border:1px solid #f0d7b8;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:14px 16px;display:flex}.banner.confirmed{background:#f3f7ea;border-color:#d5e2b6}.book{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:20px 48px 20px 20px;position:relative}.book.can-pin{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.book.holding{touch-action:none}.book-snake{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.book-snake-body{stroke:#c8c1b5;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 1px #a8a19659)drop-shadow(0 0 4px #ece6dc8c)}.book-snake-halo{fill:#ece6dc9e;filter:blur(2.4px);transform-box:fill-box;transform-origin:50%;animation:.85s ease-in-out infinite snake-halo-pulse}.book-snake-spark{fill:#efe9df;filter:drop-shadow(0 0 4px #f8f4ece6);transform-box:fill-box;transform-origin:50%;animation:.7s ease-in-out infinite snake-spark-twinkle}.book-snake-spark-cross{fill:#fffcf6b8;animation-duration:.95s;animation-delay:-.25s}.book-snake-core{fill:#f6f1e8;filter:drop-shadow(0 0 3px #fffcf6f2);animation:.6s ease-in-out infinite snake-core-pulse}@keyframes snake-halo-pulse{0%,to{opacity:.42;transform:scale(.82)}50%{opacity:.95;transform:scale(1.18)}}@keyframes snake-spark-twinkle{0%,to{opacity:.55;transform:scale(.88)rotate(0)}35%{opacity:1;transform:scale(1.12)rotate(8deg)}65%{opacity:.7;transform:scale(.96)rotate(-6deg)}}@keyframes snake-core-pulse{0%,to{opacity:.68}50%{opacity:1}}.book.pin-burst:after{content:"";border-radius:inherit;pointer-events:none;z-index:3;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 80%, transparent), 0 0 28px color-mix(in srgb, var(--accent) 40%, transparent);animation:.62s ease-out forwards pin-burst-ring;position:absolute;inset:-1px}.book-burst{pointer-events:none;z-index:4;border-radius:inherit;position:absolute;inset:0;overflow:visible}.book-burst-shimmer{border-radius:inherit;background:linear-gradient(115deg, transparent 30%, color-mix(in srgb, var(--accent) 28%, transparent) 48%, transparent 66%);animation:.62s ease-out forwards pin-burst-shimmer;position:absolute;inset:0;transform:translate(-130%)skew(-16deg)}.book-burst-spark{background:var(--accent);width:7px;height:7px;box-shadow:0 0 8px color-mix(in srgb, var(--accent) 80%, transparent);border-radius:999px;margin:-3px 0 0 -3px;animation:.62s ease-out forwards pin-burst-spark;position:absolute;top:50%;left:50%}@keyframes pin-burst-ring{0%{opacity:.95;transform:scale(.985)}to{opacity:0;transform:scale(1.03)}}@keyframes pin-burst-shimmer{0%{opacity:.9;transform:translate(-130%)skew(-16deg)}to{opacity:0;transform:translate(130%)skew(-16deg)}}@keyframes pin-burst-spark{0%{opacity:1;transform:rotate(calc(var(--i) * 45deg)) translateY(8px) scale(.5)}70%{opacity:1}to{opacity:0;transform:rotate(calc(var(--i) * 45deg)) translateY(-78px) scale(.2)}}@media (prefers-reduced-motion:reduce){.book-snake,.book-burst,.book.pin-burst:after{display:none}}.book-eye{z-index:2;width:36px;height:36px;color:var(--ink);cursor:pointer;background:#fffaf4eb;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.book-eye:hover,.book-eye:focus-visible{background:#fff4e6}.book-eye:disabled{opacity:.5;cursor:not-allowed}.book-save{z-index:2;width:36px;height:36px;color:var(--ink);cursor:pointer;background:#fffaf4eb;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.book-save.dim{opacity:.38}.book-save:not(.dim){color:var(--ink);opacity:1}.book-save:hover,.book-save:focus-visible{background:#fff4e6}.book-save.dim:hover,.book-save.dim:focus-visible{opacity:.7}.book-save:disabled{cursor:wait}.book-kicker.muted{color:var(--muted)}.read-flag{background:var(--accent);color:var(--accent-ink);border-radius:999px;align-items:center;padding:8px 14px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;display:inline-flex}.book.private{background:#fffdf8}.book.has-cover{grid-template-columns:96px 1fr;align-items:start;gap:16px;display:grid}.book.pinned.has-cover{grid-template-columns:132px 1fr}.cover{aspect-ratio:3/4;object-fit:cover;object-position:center;background:#efe8df;border-radius:10px;width:100%;display:block}.book-body{min-width:0}.book.pinned{box-shadow:var(--shadow);padding:28px 52px 28px 28px}.book-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px}.book h2,.book h3{letter-spacing:-.03em;margin:0 0 6px;font-weight:500}.book h2{font-size:32px}.author,.note{color:var(--muted);margin:0}.note{margin-top:10px}.book-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.book.has-cover .book-actions,.book.has-cover .book-flash{grid-column:1/-1}.book-actions .btn,.book-actions .read-flag{white-space:nowrap;flex:none}.book-flash{margin:10px 0 0}.empty,.loading,.crash{color:var(--muted);padding:48px 0}.field{gap:6px;margin-bottom:14px;display:grid}.field label{color:var(--muted);font-family:ui-sans-serif,system-ui,sans-serif;font-size:13px}.field input,.field textarea{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px 14px}.pill-field{border:1px solid var(--line);background:var(--card);cursor:text;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;padding:8px 10px;display:flex}.pill-field:focus-within{border-color:#1c1917}.mention-pill{color:var(--ink);background:#fff4e6;border:1px solid #f0d7b8;border-radius:999px;align-items:center;gap:2px;padding:4px 6px 4px 10px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.2;display:inline-flex}.mention-pill button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:16px;line-height:1}.mention-pill button:hover{color:var(--ink)}.pill-input-wrap{flex:8rem;min-width:7rem;position:relative}.pill-placeholder{color:var(--muted);pointer-events:none;white-space:nowrap;align-items:center;padding:6px 4px;display:flex;position:absolute;inset:0;overflow:hidden}.pill-field input{border-radius:0;outline:none;width:100%;min-width:0;background:0 0!important;border:0!important;padding:6px 4px!important}.suggest{position:relative}.suggest-list{z-index:8;background:var(--card);border:1px solid var(--line);max-height:260px;box-shadow:var(--shadow);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% - 6px);left:0;right:0;overflow:auto}.suggest-list li{cursor:pointer;border-radius:8px;padding:10px 12px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:15px}.suggest-list li strong{font-weight:600;display:block}.suggest-list li span{color:var(--muted);font-size:13px;display:block}.suggest-kind{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-left:8px;font-size:11px;font-style:normal;font-weight:600}.suggest-list li.active,.suggest-list li:hover{background:#fff4e6}.suggest-empty{color:var(--muted);cursor:default}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-top:28px;padding:20px}.danger-panel{border-color:#f0c9c6}.fold-panel{padding:8px 12px}.fold-toggle{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin:0;padding:12px 8px;display:flex}.fold-toggle:hover,.fold-toggle:focus-visible{background:#fffaf4}.fold-heading{letter-spacing:-.03em;font-size:22px;font-weight:500}.fold-affordance{color:var(--muted);flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.fold-hint{font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px}.fold-chevron{border:1px solid var(--line);width:32px;height:32px;color:var(--ink);background:#fffaf4eb;border-radius:999px;place-items:center;transition:transform .16s;display:grid}.fold-panel.open .fold-chevron{transform:rotate(180deg)}.danger-panel .fold-chevron{color:var(--danger);border-color:#f0c9c6}.fold-body{padding:4px 8px 12px}.fold-body .hint{margin-top:0}.overlay{z-index:20;background:#1c19176b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--card);width:min(440px,100%);box-shadow:var(--shadow);border-radius:20px;padding:28px;position:relative}.modal h2{letter-spacing:-.03em;margin:0 0 8px;font-size:28px}.modal-close{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:12px;right:12px}.modal-close:hover,.modal-close:focus-visible{color:var(--ink);background:#f5efe8}.modal-close:focus-visible{outline-offset:2px;outline:2px solid #1c1917}.tag-modal,.club-modal{padding-bottom:0;overflow:hidden}.tag-modal h2,.club-modal h2{padding-right:36px}:is(.tag-modal .field,.club-modal .field:has(+.modal-actions),.club-modal .field:has(+.error)){margin-bottom:0;padding-bottom:24px}.modal-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.tag-modal .modal-actions,.club-modal .modal-actions{text-align:center;justify-content:center;align-items:center;margin:0 -28px;padding:18px 28px 20px;position:relative}.tag-modal .modal-actions:before,.club-modal .modal-actions:before{content:"";background-image:repeating-linear-gradient(90deg, var(--line) 0 7px, transparent 7px 13px);height:2px;position:absolute;top:0;left:16px;right:16px}.text-action{appearance:none;width:100%;box-shadow:none;color:var(--accent);cursor:pointer;text-align:center;text-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px;display:block}.text-action:hover,.text-action:focus-visible{color:var(--accent);text-shadow:none;background:0 0}.text-action:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #1c1917}.text-action:disabled{opacity:.5;cursor:not-allowed}.username{color:var(--muted);margin:0 0 28px;font-family:ui-sans-serif,system-ui,sans-serif}.census-slot{flex-shrink:0;margin-top:auto;padding-top:32px}.census{text-align:center;background:radial-gradient(120% 140% at 50% -20%, #fff4e6 0%, var(--card) 58%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:28px 24px 26px;position:relative;overflow:hidden}.census-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px}.census-count{letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin:0;font-size:clamp(48px,10vw,72px);font-weight:500;line-height:1;display:inline-block;position:relative}.census-count.bounce{animation:.42s ease-out census-bounce}.census-count.pending{min-width:3ch}.census-shine{pointer-events:none;background:linear-gradient(100deg,#0000 35%,#ffffffb3 50%,#0000 65%);animation:2.8s ease-in-out .4s infinite census-shine;position:absolute;inset:-8px -20%;transform:translate(-120%)skew(-18deg)}.census-copy{color:var(--muted);margin:10px 0 0;font-size:15px}.census-spark{background:var(--accent);opacity:0;width:10px;height:10px;animation:2.4s ease-in-out infinite census-spark;position:absolute;transform:rotate(45deg)}.census-spark.a{top:16px;left:22px}.census-spark.b{animation-delay:.8s;top:28px;right:28px}.census-spark.c{animation-delay:1.5s;bottom:18px;left:46%}.census-pop{color:var(--accent);font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px;font-weight:600;animation:.9s ease-out forwards census-pop;position:absolute;top:-10px;right:-8px}@keyframes census-shine{0%{transform:translate(-130%)skew(-18deg)}55%,to{transform:translate(160%)skew(-18deg)}}@keyframes census-spark{0%,to{opacity:0;transform:rotate(45deg)scale(.3)}45%{opacity:.9;transform:rotate(45deg)scale(1)}}@keyframes census-bounce{0%{transform:scale(1)}35%{transform:scale(1.08)}70%{transform:scale(.97)}to{transform:scale(1)}}@keyframes census-pop{0%{opacity:0;transform:translateY(6px)scale(.7)}25%{opacity:1;transform:translateY(-8px)scale(1.12)}to{opacity:0;transform:translateY(-26px)scale(.9)}}.site-footer{border-top:1px solid var(--line);justify-content:center;align-items:center;margin-top:12px;padding:28px 0;font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;display:flex}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:8px 28px;display:flex}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover,.site-footer a.router-link-active{color:var(--ink)}.hp{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.page button.link{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin-left:8px;padding:0;text-decoration:underline}.legal h2{letter-spacing:-.03em;margin:32px 0 10px;font-size:22px;font-weight:500}.legal p{margin:0 0 12px}.legal ul{margin:0 0 16px;padding-left:1.2em}.legal li{margin:0 0 8px}.legal a{text-underline-offset:3px;text-decoration:underline}@media (width<=640px){.hero{padding:36px 0 8px}.profile-head{flex-wrap:wrap}.claim-field{flex:100%}.claim .btn{width:100%}.home-add{flex-wrap:nowrap}.home-add .claim-field{flex:auto}.home-add .btn{flex:none;width:auto;padding:12px 18px}.timeline-toolbar{flex-wrap:wrap}.timeline-track.is-horizontal .timeline-node{flex-basis:200px;height:300px}.shelf-track{grid-auto-columns:calc(33.3333% - 5.33333px)}.banner,.modal-actions{flex-direction:column;align-items:stretch}.tag-modal .modal-actions,.club-modal .modal-actions{text-align:center;flex-direction:row;justify-content:center;align-items:center}.site-header{padding-top:16px}.book.has-cover,.book.pinned.has-cover{grid-template-columns:96px 1fr}.book-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.book-actions .btn,.book-actions .read-flag{text-align:center;white-space:nowrap;justify-content:center;width:100%}.census{aspect-ratio:1;flex-direction:column;justify-content:center;align-items:center;padding:56px 28px;display:flex}.census-kicker{margin-bottom:14px}.census-count{font-size:clamp(56px,16vw,84px)}.census-copy{max-width:16em;margin-top:18px}.census-spark.a{top:22px;left:22px}.census-spark.b{top:28px;right:24px}.census-spark.c{bottom:24px}}[data-sonner-toaster]{--border-radius:12px;--normal-bg:var(--card);--normal-border:var(--line);--normal-text:var(--ink);font-family:ui-sans-serif,system-ui,sans-serif}html[dir=ltr],[data-sonner-toaster][dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0}html[dir=rtl],[data-sonner-toaster][dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto}[data-sonner-toaster]{width:var(--width);--gray1:#fcfcfc;--gray2:#f8f8f8;--gray3:#f3f3f3;--gray4:#ededed;--gray5:#e8e8e8;--gray6:#e2e2e2;--gray7:#dbdbdb;--gray8:#c7c7c7;--gray9:#8f8f8f;--gray10:#858585;--gray11:#6f6f6f;--gray12:#171717;--border-radius:8px;box-sizing:border-box;z-index:999999999;outline:none;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;list-style:none;transition:transform .4s;position:fixed}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translate(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);opacity:0;transform:var(--y);touch-action:none;box-sizing:border-box;overflow-wrap:anywhere;outline:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;position:absolute}[data-sonner-toast][data-styled=true]{background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);width:var(--width);align-items:center;gap:6px;padding:16px;font-size:13px;display:flex;box-shadow:0 4px 12px #0000001a}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-y-position=top]{--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap));top:0}[data-sonner-toast][data-y-position=bottom]{--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap));bottom:0}[data-sonner-toast][data-styled=true] [data-description]{color:#3f3f3f;font-weight:400;line-height:1.4}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{color:inherit;font-weight:500;line-height:1.5}[data-sonner-toast][data-styled=true] [data-icon]{width:16px;height:16px;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end);flex-shrink:0;justify-content:flex-start;align-items:center;display:flex;position:relative}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform-origin:50%;animation:.3s forwards sonner-fade-in;transform:scale(.8)}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{flex-direction:column;gap:2px;display:flex}[data-sonner-toast][data-styled=true] [data-button]{height:24px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);cursor:pointer;border:none;border-radius:4px;outline:none;flex-shrink:0;align-items:center;padding-left:8px;padding-right:8px;font-size:12px;font-weight:500;transition:opacity .4s,box-shadow .2s;display:flex}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px #0006}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:#00000014}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:#ffffff4d}[data-sonner-toaster] [data-close-button-position=top-left]{--toast-close-button-left:0;--toast-close-button-right:unset;--toast-close-button-top:0;--toast-close-button-bottom:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster] [data-close-button-position=top-right]{--toast-close-button-left:unset;--toast-close-button-right:0;--toast-close-button-top:0;--toast-close-button-bottom:unset;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster] [data-close-button-position=bottom-left]{--toast-close-button-left:0;--toast-close-button-right:unset;--toast-close-button-top:unset;--toast-close-button-bottom:0;--toast-close-button-transform:translate(-35%, 35%)}[data-sonner-toaster] [data-close-button-position=bottom-right]{--toast-close-button-left:unset;--toast-close-button-right:0;--toast-close-button-top:unset;--toast-close-button-bottom:0;--toast-close-button-transform:translate(35%, 35%)}[data-sonner-toast][data-styled=true] [data-close-button]{left:var(--toast-close-button-left);right:var(--toast-close-button-right);top:var(--toast-close-button-top);bottom:var(--toast-close-button-bottom);width:20px;height:20px;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .1s,background .2s,border-color .2s;display:flex;position:absolute}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]:before{content:"";z-index:-1;height:100%;position:absolute;left:-100%;right:-100%}[data-sonner-toast][data-y-position=top][data-swiping=true]:before{bottom:50%;transform:scaleY(3)translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]:before{top:50%;transform:scaleY(3)translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]:before{content:"";position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]:after{content:"";height:calc(var(--gap) + 1px);width:100%;position:absolute;bottom:100%;left:0}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * .05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--toasts-before) * .05 + 1));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]:before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0px)) translateX(var(--swipe-amount-x,0px));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (width<=600px){[data-sonner-toaster]{right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%;position:fixed}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{width:calc(100% - var(--mobile-offset-left) * 2);left:0;right:0}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:calc(var(--mobile-offset-bottom) + max(env(safe-area-inset-bottom), 0px))}[data-sonner-toaster][data-y-position=top]{top:calc(var(--mobile-offset-top) + max(env(safe-area-inset-top), 0px))}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:#ecfdf3;--success-border:#bffcd9;--success-text:#008a2e;--info-bg:#f0f8ff;--info-border:#dde7fd;--info-text:#0973dc;--warning-bg:#fffcf0;--warning-border:#fbeeb1;--warning-text:#dc7609;--error-bg:#fff0f0;--error-border:#ffe0e1;--error-text:#e60000}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:#333;--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:#1f1f1f;--normal-border:#333;--normal-border-hover:#404040;--normal-text:var(--gray1);--success-bg:#001f0f;--success-border:#003d1c;--success-text:#59f3a6;--info-bg:#000d1f;--info-border:#19233e;--info-text:#5896f3;--warning-bg:#1d1f00;--warning-border:#2e2e00;--warning-text:#f3cf58;--error-bg:#2d0607;--error-border:#4d0408;--error-text:#ff9ea1}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);z-index:10;position:absolute;inset:0}.sonner-loading-wrapper[data-visible=false]{transform-origin:50%;animation:.2s forwards sonner-fade-out}.sonner-spinner{height:var(--size);width:var(--size);position:relative;top:50%;left:50%}.sonner-loading-bar{background:var(--gray11);border-radius:6px;width:24%;height:8%;animation:1.2s linear infinite sonner-spin;position:absolute;top:-3.9%;left:-10%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg)translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg)translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg)translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg)translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg)translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg)translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg)translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg)translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg)translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg)translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg)translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg)translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{transform-origin:50%;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8)translate(-50%,-50%)}
