.projects-page{background:var(--bg-canvas);color:var(--text-body);min-height:100%;font-family:var(--font-asap),"Asap",system-ui,sans-serif}.projects-page .tb-row2{position:sticky;top:0;z-index:29;background:var(--bg-elev-1);border-bottom:1px solid var(--border-mid);padding:0 32px;display:flex;align-items:stretch;min-height:44px}.projects-page .tb-tabs{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;align-items:stretch}.projects-page .tb-tabs::-webkit-scrollbar{display:none}.projects-page .tb-tab{background:transparent;border:0;padding:0 16px;height:44px;display:inline-flex;align-items:center;gap:7px;color:var(--text-muted);font-size:13px;font-weight:600;font-family:inherit;transition:all .15s var(--ease);white-space:nowrap;border-bottom:2px solid transparent;position:relative;cursor:pointer}.projects-page .tb-tab:hover{color:var(--text-primary);background:rgba(255,255,255,.02)}.projects-page .tb-tab.is-active{color:var(--accent);border-bottom-color:var(--accent);background:linear-gradient(180deg,transparent,rgba(125,160,194,.06))}.projects-page .tb-tab__count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-quiet);background:var(--bg-canvas);border:1px solid var(--border-strong);border-radius:999px;padding:1px 7px;font-weight:700}.projects-page .tb-tab.is-active .tb-tab__count{background:var(--accent-soft);border-color:rgba(125,160,194,.4);color:var(--accent)}.projects-page .tb-row2__right{margin-left:auto;display:flex;align-items:center;gap:10px}.projects-page .tb-row2__sort{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;background:var(--bg-canvas);border:1px solid var(--border-strong);border-radius:7px;color:var(--text-soft);font-size:12px;font-family:inherit;cursor:pointer;transition:border-color .16s var(--ease)}.projects-page .tb-row2__sort:hover{border-color:var(--border-emphasis)}.projects-canvas{padding:40px clamp(1.5rem,7vw,14rem) 88px}.lib-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:28px;border-bottom:1px solid var(--border-soft);margin-bottom:28px;flex-wrap:wrap}.lib-hero__left{min-width:0;flex:1}.lib-hero__eyebrow{font-family:var(--font-caveat),"Caveat",cursive;font-weight:500;font-size:24px;color:var(--accent);transform:rotate(-1deg);display:inline-block;margin-bottom:8px}.lib-hero__title{font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:clamp(2.2rem,4vw,3rem);letter-spacing:-.022em;line-height:1;color:var(--text-primary);margin:0 0 10px}.lib-hero__sub{font-size:14.5px;color:var(--text-muted);max-width:660px;line-height:1.55;margin:0}.lib-hero__sub a{color:var(--accent);font-weight:600;text-decoration:none;transition:color .16s var(--ease)}.lib-hero__sub a:hover{color:var(--accent-hi)}.approval-alert{display:flex;align-items:center;gap:14px;padding:14px 18px;background:linear-gradient(180deg,rgba(125,160,194,.08),rgba(125,160,194,.02));border:1px solid rgba(125,160,194,.3);border-radius:12px;margin-bottom:24px}.approval-alert__icon{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:rgba(125,160,194,.15);display:flex;align-items:center;justify-content:center;font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:18px;color:var(--accent)}.approval-alert__text{flex:1}.approval-alert__title{font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:14.5px;color:var(--text-primary)}.approval-alert__sub{font-size:12px;color:var(--text-muted);margin-top:2px}.search-block{display:flex;gap:12px;margin-bottom:18px;align-items:center;flex-wrap:wrap}.search-input-wrap{position:relative;flex:1;max-width:480px;min-width:240px}.search-input{width:100%;background:var(--bg-elev-1);border:1px solid var(--border-strong);border-radius:10px;padding:10px 38px 10px 40px;color:var(--text-primary);font:inherit;font-size:13.5px;outline:none;transition:border-color .16s var(--ease)}.search-input:focus{border-color:var(--accent)}.search-input::-moz-placeholder{color:var(--text-quiet)}.search-input::placeholder{color:var(--text-quiet)}.search-icon{left:13px;width:15px;height:15px;stroke-width:1.75;pointer-events:none}.search-clear,.search-icon{position:absolute;top:50%;transform:translateY(-50%);color:var(--text-quiet)}.search-clear{right:10px;background:transparent;border:0;padding:4px;border-radius:4px;cursor:pointer;transition:color .16s var(--ease)}.search-clear:hover{color:var(--text-primary)}.search-meta{font-size:12.5px;color:var(--text-quiet)}.search-meta strong{color:var(--accent);font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-variant-numeric:tabular-nums}.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:26px}.filter-pill{height:34px;background:var(--bg-elev-1);border:1px solid var(--border-strong);border-radius:8px;color:var(--text-primary);font-size:12.5px;font-family:inherit;cursor:pointer;transition:border-color .16s var(--ease);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-quiet) 50%),linear-gradient(135deg,var(--text-quiet) 50%,transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-size:5px 5px;background-repeat:no-repeat;padding:0 28px 0 12px}.filter-pill:focus{outline:none;border-color:var(--accent)}.filter-pill:hover{border-color:var(--border-emphasis)}.projects-page .tb-row2__sort option,.projects-page select option{background:var(--bg-elev-1);color:var(--text-primary);font-size:13px}.filter-clear{height:34px;background:transparent;border:1px solid transparent;border-radius:8px;padding:0 10px;color:var(--text-muted);font-size:12px;font-family:inherit;cursor:pointer;transition:all .16s var(--ease);display:inline-flex;align-items:center;gap:4px}.filter-clear:hover{color:var(--text-primary);background:var(--bg-elev-2)}.book-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.book-card{background:var(--bg-elev-1);border:1px solid var(--border-mid);border-radius:14px;padding:0;cursor:pointer;position:relative;transition:all .18s var(--ease);display:flex;flex-direction:column;overflow:hidden}.book-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 14px 32px -10px rgba(0,0,0,.5)}.book-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.book-card[data-attention=true]{border-color:rgba(125,160,194,.45);background:linear-gradient(180deg,rgba(125,160,194,.03),transparent 60%)}.book-card[data-attention=true]:before{content:"";position:absolute;top:14px;right:14px;width:10px;height:10px;background:var(--accent);border-radius:50%;box-shadow:0 0 14px 2px rgba(125,160,194,.65);z-index:4;animation:pip-pulse 1.8s var(--ease) infinite}@keyframes pip-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.book-cover{position:relative;aspect-ratio:3/4.4;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px 18px;text-align:center;background:var(--bg-elev-2)}.book-cover img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.book-cover-placeholder{position:relative;z-index:1;font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:22px;letter-spacing:-.018em;line-height:1.05;color:rgba(255,255,255,.92)}.book-cover[data-cv="0"]{background:linear-gradient(180deg,#f8e5b4,#d89a3e 65%,#8b5a1f)}.book-cover[data-cv="0"] .book-cover-placeholder{color:#1a0e02}.book-cover[data-cv="1"]{background:linear-gradient(180deg,#2a3540,#4a6a7a 70%,#1a2530)}.book-cover[data-cv="1"] .book-cover-placeholder{color:#f5e8c8}.book-cover[data-cv="2"]{background:linear-gradient(180deg,#0a0a0e,#1a1a22)}.book-cover[data-cv="2"] .book-cover-placeholder{color:#fff}.book-cover[data-cv="3"]{background:linear-gradient(140deg,#2a3a4e,#6da8c4)}.book-cover[data-cv="3"] .book-cover-placeholder{color:#fff}.book-cover[data-cv="4"]{background:linear-gradient(180deg,#d8e8d8,#88a888)}.book-cover[data-cv="4"] .book-cover-placeholder{color:#1a2818}.book-cover[data-cv="5"]{background:linear-gradient(180deg,#1a1830,#4a3a5a 70%,#28283a)}.book-cover[data-cv="5"] .book-cover-placeholder{color:#f5e8c8}.book-cover[data-cv="6"]{background:linear-gradient(180deg,#ead3a8,#a07840)}.book-cover[data-cv="6"] .book-cover-placeholder{color:#2a1808}.book-cover[data-cv="7"]{background:linear-gradient(135deg,#5b1838,#8b2856 50%,#e07ba8)}.book-cover[data-cv="7"] .book-cover-placeholder{color:#fff}.book-cover__status-chip{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:5px;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:4px 9px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:5}.book-cover__status-chip .dot{width:6px;height:6px;border-radius:50%}.book-cover__status-chip[data-state=completed] .dot{background:#6e8e6a}.book-cover__status-chip[data-state=active] .dot{background:var(--accent);animation:pip-pulse 2s ease infinite}.book-cover__status-chip[data-state=paused] .dot{background:#e0a540}.book-cover__status-chip[data-state=failed] .dot{background:#a05a45}.book-cover__status-chip[data-state=draft] .dot{background:var(--text-quiet)}.book-cover__mode-chip{position:absolute;top:12px;right:12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;padding:4px 7px;border-radius:4px;background:rgba(0,0,0,.55);color:var(--accent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:5}.book-cover__mode-chip[data-mode=mid_content]{color:#e07ba8}.book-card[data-attention=true] .book-cover__mode-chip{display:none}.book-meta{padding:16px 18px 14px;display:flex;flex-direction:column;gap:8px;flex:1}.book-meta__title{font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:17px;color:var(--text-primary);letter-spacing:-.014em;line-height:1.15;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-meta__author{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-muted)}.book-meta__author-avatar{width:18px;height:18px;border-radius:4px;overflow:hidden;flex-shrink:0;background:var(--bg-elev-2)}.book-meta__author-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.book-meta__niche{font-size:11.5px;color:var(--text-quiet);text-transform:capitalize}.book-meta__niche-tag{color:var(--accent);font-weight:600}.book-state{padding:12px 18px 16px;border-top:1px solid var(--border-soft);margin-top:auto;display:flex;flex-direction:column;gap:6px}.book-state__row{display:flex;align-items:baseline;justify-content:space-between;font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--text-quiet)}.book-state__pct{color:var(--accent);font-family:var(--font-zilla),"Zilla Slab",serif;font-size:11px;font-variant-numeric:tabular-nums}.book-state__bar{height:4px;background:var(--bg-canvas);border-radius:999px;overflow:hidden}.book-state__bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-deep) 0,var(--accent) 100%);transition:width .5s var(--ease)}.book-state__bar-fill[data-state=completed]{background:linear-gradient(90deg,#5b8a4e,#6e8e6a)}.book-state__bar-fill[data-state=failed]{background:linear-gradient(90deg,#6a2a1f,#a05a45)}.book-card__delete{position:absolute;bottom:12px;right:12px;width:28px;height:28px;border-radius:50%;background:rgba(20,20,24,.7);border:1px solid var(--border-strong);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:all .16s var(--ease);cursor:pointer;z-index:6;backdrop-filter:blur(4px)}.book-card:hover .book-card__delete{opacity:1}.book-card__delete:hover{background:#a05a45;border-color:#a05a45;color:#fff}.book-card__delete svg{width:14px;height:14px}.book-card--new{border:1.5px dashed var(--border-strong);background:transparent;display:flex;align-items:center;justify-content:center;min-height:460px;padding:24px;cursor:pointer;text-decoration:none;color:inherit;transition:all .16s var(--ease)}.book-card--new:hover{border-color:var(--accent);border-style:solid;background:rgba(125,160,194,.04)}.book-card--new__inner{text-align:center;display:flex;flex-direction:column;align-items:center}.book-card--new__plus{width:56px;height:56px;border-radius:50%;border:1.5px dashed var(--border-strong);display:flex;align-items:center;justify-content:center;font-family:var(--font-zilla),"Zilla Slab",serif;font-size:30px;color:var(--text-muted);margin-bottom:12px;transition:all .16s var(--ease)}.book-card--new:hover .book-card--new__plus{border-color:var(--accent);border-style:solid;color:var(--accent);background:rgba(125,160,194,.06)}.book-card--new__label{font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:15px;color:var(--text-primary)}.book-card--new__hint{font-size:11.5px;color:var(--text-quiet);margin-top:4px;max-width:220px;text-align:center}.projects-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:40px;padding-top:24px;border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:12px}.projects-pagination__info{font-size:12.5px;color:var(--text-muted)}.projects-pagination__controls{display:flex;align-items:center;gap:8px}.projects-pagination__btn{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;background:var(--bg-elev-1);border:1px solid var(--border-strong);border-radius:7px;color:var(--text-primary);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .16s var(--ease)}.projects-pagination__btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.projects-pagination__btn:disabled{opacity:.4;cursor:not-allowed}.projects-pagination__page{font-size:12.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}.projects-empty,.projects-error{margin:32px auto;max-width:480px;text-align:center;background:var(--bg-elev-1);border:1px dashed var(--border-strong);border-radius:14px;padding:56px 32px}.projects-error{border-style:solid;border-color:rgba(160,90,69,.3);background:linear-gradient(180deg,rgba(160,90,69,.04),transparent)}.projects-empty h3,.projects-error h3{font-family:var(--font-zilla),"Zilla Slab",serif;font-weight:700;font-size:20px;margin:12px 0 8px;color:var(--text-primary)}.projects-empty p,.projects-error p{font-size:13px;color:var(--text-muted);line-height:1.55;margin:0 auto 24px;max-width:360px}.projects-empty-cta{background:var(--accent);color:var(--accent-text);padding:11px 22px 11px 18px;border-radius:999px;font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;border:0;cursor:pointer;font-family:inherit;letter-spacing:-.005em;box-shadow:0 6px 18px -6px rgba(125,160,194,.6);transition:all .16s var(--ease)}.projects-empty-cta:hover{background:var(--accent-hi);transform:translateY(-1px)}.projects-skeleton{background:var(--bg-elev-2);border-radius:6px;animation:dash-shimmer 1.4s linear infinite}@keyframes dash-shimmer{0%,to{opacity:.6}50%{opacity:.9}}.projects-card-skel{background:var(--bg-elev-1);border:1px solid var(--border-mid);border-radius:14px;overflow:hidden}