:root,[data-theme=chill]{--wall:#efe6d5;--light:#fff6e1e6;--ink:#2f2620;--ink-soft:#85735f;--accent:#b5533f;--accent-ink:#fff;--plank-top:#ecd2ab;--plank:#d3aa78;--plank-edge:#a97c4e;--plank-shadow:#5c3c1e38;--book-shadow:#462d1473;--card:#faf5ec;--chip:#eadfcc;--line:#50371e1f;--scrim:#281c1259;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=nuit]{--wall:#1c1714;--light:#ffaa5a29;--ink:#f1e5d3;--ink-soft:#a7927d;--accent:#e2876a;--accent-ink:#24170f;--plank-top:#6a4a33;--plank:#4e3524;--plank-edge:#2f1f14;--plank-shadow:#00000073;--book-shadow:#000000b3;--card:#2a221c;--chip:#3a2f26;--line:#ffe6c81a;--scrim:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){[data-theme=auto]{--wall:#1c1714;--light:#ffaa5a29;--ink:#f1e5d3;--ink-soft:#a7927d;--accent:#e2876a;--accent-ink:#24170f;--plank-top:#6a4a33;--plank:#4e3524;--plank-edge:#2f1f14;--plank-shadow:#00000073;--book-shadow:#000000b3;--card:#2a221c;--chip:#3a2f26;--line:#ffe6c81a;--scrim:#0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--wall)}body{min-height:100dvh;color:var(--ink);background:radial-gradient(140% 70% at 10% -10%, var(--light), transparent 60%) fixed, var(--wall);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,.serif{font-optical-sizing:auto;font-family:Fraunces,Iowan Old Style,Georgia,serif}.splash{justify-content:center;align-items:center;min-height:100dvh;display:flex}.ribbon{background:var(--accent);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);flex:none;width:18px;height:42px;display:block}.ribbon.big{width:26px;height:60px}.splash .ribbon{transform-origin:top;animation:1.6s ease-in-out infinite sway}@keyframes sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}.btn{border:0;border-radius:18px;justify-content:center;align-items:center;gap:10px;min-height:56px;padding:0 20px;font-size:17px;font-weight:500;transition:transform .15s,opacity .2s;display:flex}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 14px 24px -14px var(--accent)}.btn.primary:disabled{opacity:.4}.btn.secondary{background:var(--chip)}.btn.ghost{color:var(--ink-soft);background:0 0;min-height:48px;font-size:15px}.btn.big{min-height:64px;font-size:18px}.btn.small{border-radius:14px;min-height:46px;font-size:15px}.message.error{color:var(--accent);font-style:normal}.message{text-align:center;color:var(--ink-soft);margin:0;font-style:italic;line-height:1.45}.dots{justify-content:center;gap:7px;padding:12px;display:flex}.dots i{background:var(--accent);border-radius:50%;width:9px;height:9px;animation:1s ease-in-out infinite pulse}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-5px)}}.login{max-width:520px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 64px) 20px calc(env(safe-area-inset-bottom) + 20px);flex-direction:column;justify-content:space-between;gap:32px;margin:0 auto;display:flex}.login-top h1{letter-spacing:-.02em;margin:22px 0 6px;font-size:44px;font-weight:500}.login-top p{color:var(--ink-soft);margin:0;font-family:Fraunces,Georgia,serif;font-size:18px;font-style:italic}.login-fields{gap:14px;display:grid}.login-fields label{color:var(--ink-soft);gap:6px;font-size:14px;display:grid}.login-fields input,.search input,.manual-form input,.review{border:1.5px solid var(--line);background:var(--card);border-radius:14px;outline:none;min-height:54px;padding:0 16px;font-size:17px}.login-fields input:focus,.search input:focus,.manual-form input:focus,.review:focus{border-color:var(--accent)}.login-error{color:var(--accent);margin:0}.pw{display:block;position:relative}.pw input{width:100%;padding-right:84px}.eye{background:var(--chip);border:0;border-radius:10px;padding:0 14px;font-size:14px;position:absolute;top:6px;bottom:6px;right:6px}.shelf,.settings{max-width:640px;padding:calc(env(safe-area-inset-top) + 28px) 0 calc(env(safe-area-inset-bottom) + 120px);margin:0 auto}.shelf-head{padding:0 20px 18px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:13px}.shelf-head h1{letter-spacing:-.02em;margin:2px 0 4px;font-size:52px;font-style:italic;font-weight:500;line-height:1}.shelf-head .count{color:var(--ink-soft);margin:0;font-size:15px}.plank-section{margin-top:26px}.plank-label{align-items:baseline;gap:8px;margin:0 20px -6px;font-size:21px;font-weight:500;display:flex}.plank-label small{color:var(--ink-soft);font-family:-apple-system,system-ui,sans-serif;font-size:13px;font-weight:400}.planks{background-image:linear-gradient(to bottom, transparent 0 152px, var(--plank-top) 152px 158px, var(--plank) 158px 170px, var(--plank-edge) 170px 172px, var(--plank-shadow) 172px, transparent 192px);background-size:100% 196px;flex-wrap:wrap;align-items:flex-end;gap:40px 9px;padding:0 18px 40px;display:flex}.book{height:156px;animation:.6s cubic-bezier(.2,.8,.2,1) both rise;animation-delay:calc(var(--i,0) * 35ms);background:0 0;border:0;align-items:flex-end;padding:0;display:flex;position:relative}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}.book-body{margin-bottom:1px;line-height:0;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:block;position:relative}.book:active .book-body{transform:translateY(-8px)}@media (hover:hover){.book:hover .book-body{transform:translateY(-6px)}}.book-body:after{content:"";pointer-events:none;background:linear-gradient(90deg,#00000040,#ffffff2e 2.5%,#0000000f 5%,#0000 9% 96%,#0000001f);border-radius:1px 3px 3px 1px;position:absolute;inset:0}.cover-img{object-fit:cover;width:auto;max-width:140px;box-shadow:6px -3px 12px -4px var(--book-shadow), 1px 1px 1px #00000040;background:var(--chip);border-radius:1px 3px 3px 1px;display:block}.cover-drawn{text-align:center;color:hsl(var(--h) 40% 92%);background:radial-gradient(120% 80% at 30% 20%, hsl(var(--h) 45% 46%), hsl(calc(var(--h) + 25) 40% 28%));flex-direction:column;justify-content:space-between;align-items:center;padding:14% 9% 12%;font-family:Fraunces,Georgia,serif;line-height:1.15;display:flex}.cd-title{-webkit-line-clamp:5;-webkit-box-orient:vertical;font-size:1.15em;font-weight:600;display:-webkit-box;overflow:hidden}.cd-rule{opacity:.6;background:currentColor;width:30%;height:1px}.cd-author{opacity:.85;font-size:.85em;font-style:italic}.stars-mini{z-index:1;text-align:center;color:#f4c25a;letter-spacing:1.5px;white-space:nowrap;text-shadow:0 1px #3c230a8c;font-size:9px;line-height:1;position:absolute;bottom:-13px;left:0;right:0}.book.just-added .book-body{animation:.9s cubic-bezier(.3,1.4,.5,1) both drop}@keyframes drop{0%{opacity:0;transform:translateY(-70px)rotate(-4deg)}60%{opacity:1}}.reading{text-align:left;background:var(--card);width:calc(100% - 32px);box-shadow:0 20px 34px -24px var(--book-shadow);border:0;border-radius:24px;align-items:flex-end;gap:18px;margin:6px 16px 8px;padding:18px;animation:.6s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.reading .cover-img{max-width:110px}.reading-info{flex:1;min-width:0}.tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600;display:inline-block}.reading h3{margin:6px 0 4px;font-size:22px;font-weight:500;line-height:1.15}.by{color:var(--ink-soft);margin:0;font-family:Fraunces,Georgia,serif;font-style:italic}.progress{color:var(--ink-soft);gap:6px;margin-top:14px;font-size:13px;display:grid}.progress .bar{background:var(--chip);border-radius:99px;height:6px;overflow:hidden}.progress .bar i{background:var(--accent);border-radius:99px;height:100%;transition:width .6s;display:block}.empty{gap:20px;padding-top:10px;display:grid}.empty .planks{justify-content:center;align-items:center;min-height:196px}.empty-hint{text-align:left;height:156px;color:var(--ink-soft);background:0 0;border:0;align-items:center;padding:0 4px;font-family:Fraunces,Georgia,serif;font-size:20px;font-style:italic;display:flex}.empty .btn{margin:0 20px}.tabbar{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 10px);z-index:10;background:var(--card);border:1px solid var(--line);width:min(380px,100% - 32px);height:66px;box-shadow:0 18px 40px -18px var(--book-shadow);border-radius:24px;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 auto;padding:0 10px;display:grid;position:fixed}.tabbar button{color:var(--ink-soft);background:0 0;border:0;justify-items:center;gap:2px;min-height:56px;font-size:12px;display:grid}.tabbar button.on{color:var(--ink);font-weight:600}.tabbar .ti{font-size:17px;line-height:1}.tabbar .add-btn{background:var(--accent);width:66px;height:66px;color:var(--accent-ink);box-shadow:0 12px 22px -8px var(--accent), 0 0 0 6px var(--wall);border-radius:50%;justify-content:center;align-items:center;margin-top:-26px;font-size:34px;font-weight:300;transition:transform .15s;display:flex}.tabbar .add-btn:active{transform:scale(.92)}.sheet-wrap{z-index:20;background:var(--scrim);align-items:flex-end;animation:.25s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{overscroll-behavior:contain;background:var(--card);width:100%;max-width:560px;max-height:92dvh;padding:8px 20px calc(env(safe-area-inset-bottom) + 24px);border-radius:28px 28px 0 0;align-content:start;gap:16px;margin:0 auto;animation:.38s cubic-bezier(.2,.9,.25,1) both up;display:grid;overflow-y:auto}@keyframes up{0%{transform:translateY(100%)}}.sheet-grip{background:var(--line);border:0;border-radius:99px;justify-self:center;width:44px;height:5px;margin:4px 0 6px;padding:0}.sheet-title{margin:0;font-size:26px;font-weight:500}.add-actions{gap:10px;display:grid}.ico{font-size:22px}.loading{padding:30px 0}.viewfinder[hidden]{display:none}.viewfinder{aspect-ratio:3/4;background:#000;border-radius:22px;position:relative;overflow:hidden}.viewfinder video{object-fit:cover;width:100%;height:100%;display:block}.aim{border:2px solid #ffffffe6;border-radius:16px;height:24%;position:absolute;top:37%;left:12%;right:12%;overflow:hidden;box-shadow:0 0 0 999px #00000061}.aim i{background:var(--accent);height:2px;box-shadow:0 0 12px var(--accent);animation:1.8s ease-in-out infinite scanline;position:absolute;top:0;left:6%;right:6%}@keyframes scanline{0%,to{transform:translateY(8px)}50%{transform:translateY(100px)}}.vf-hint{text-align:center;color:#fff;text-shadow:0 1px 4px #00000080;gap:4px;margin:0;font-size:15px;display:grid;position:absolute;top:16px;left:0;right:0}.vf-hint small{opacity:.85;font-size:13px}.vf-actions{justify-content:center;gap:10px;display:flex;position:absolute;bottom:16px;left:0;right:0}.vf-btn{color:#222;cursor:pointer;background:#ffffffeb;border:0;border-radius:999px;align-items:center;min-height:46px;padding:0 18px;font-size:15px;display:flex}.search{gap:8px;display:flex}.search input{flex:1;min-width:0}.results{gap:4px;margin:0;padding:0;list-style:none;display:grid}.results button{text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:14px;width:100%;padding:8px;display:flex}.results button:active{background:var(--chip)}.results .cover-img{box-shadow:2px 2px 6px -2px var(--book-shadow)}.results span{gap:3px;display:grid}.results strong{font-family:Fraunces,Georgia,serif;font-size:17px;font-weight:500}.results small{color:var(--ink-soft)}.manual-form{gap:12px;display:grid}.found{text-align:center;justify-items:center;gap:10px;padding-top:6px;display:grid}.found .found-cover{max-width:170px;animation:.5s both rise}.found h2{margin:10px 0 0;font-size:26px;font-weight:500;line-height:1.15}.found .btn{width:100%}.meta{color:var(--ink-soft);margin:0;font-size:13px}.chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chip{border:1.5px solid var(--line);background:0 0;border-radius:999px;min-height:42px;padding:0 12px;font-size:14.5px;transition:background .2s,color .2s}.chip.on{background:var(--ink);color:var(--wall);border-color:var(--ink)}.bs-top{align-items:flex-end;gap:18px;display:flex}.bs-top .cover-img{max-width:135px}.bs-titles h2{margin:0 0 6px;font-size:25px;font-weight:500;line-height:1.12}.bs-titles .sub{color:var(--ink-soft);margin:0 0 6px}.bs-titles .meta{margin-top:8px}.book-sheet .chips{justify-content:flex-start}.bs-block{border-top:1px solid var(--line);gap:8px;padding-top:14px;display:grid}.bs-row{color:var(--ink-soft);justify-content:space-between;font-size:14px;display:flex}.bs-row strong{color:var(--ink);font-weight:600}.stars{gap:4px;display:flex}.stars button{color:var(--chip);background:0 0;border:0;padding:2px;font-size:34px;line-height:1;transition:transform .15s,color .15s}.stars button.on{color:#e8a93a}.stars button:active{transform:scale(1.25)}.review{resize:vertical;min-height:96px;padding:14px 16px;font-size:16px;line-height:1.45}.summary{color:var(--ink-soft);-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.summary.open{-webkit-line-clamp:unset}.summary.muted{font-style:italic}.range{appearance:none;background:0 0;width:100%;height:30px}.range::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--p), var(--chip) var(--p));border-radius:99px;height:6px}.range::-webkit-slider-thumb{-webkit-appearance:none;background:var(--card);border:2px solid var(--accent);border-radius:50%;width:26px;height:26px;margin-top:-10px;box-shadow:0 2px 6px #0003}.range::-moz-range-track{background:linear-gradient(90deg, var(--accent) var(--p), var(--chip) var(--p));border-radius:99px;height:6px}.range::-moz-range-thumb{background:var(--card);border:2px solid var(--accent);border-radius:50%;width:22px;height:22px}.delete{min-height:50px;color:var(--ink-soft);background:0 0;border:0;border-radius:14px;margin-top:8px;font-size:15px}.delete.sure{background:var(--accent);color:var(--accent-ink)}.settings section{margin-top:18px;padding:0 16px}.settings .plank-label{margin:0 4px 12px}.themes{grid-template-columns:1fr 1fr;gap:10px;display:grid}.theme-card{text-align:left;background:var(--card);border:2px solid #0000;border-radius:18px;justify-items:start;gap:4px;padding:12px;display:grid}.theme-card.on{border-color:var(--accent)}.theme-card:disabled{opacity:.5}.theme-card small{color:var(--ink-soft);font-size:12px}.swatch{border-radius:12px;width:100%;height:54px;margin-bottom:6px}.t-auto .swatch{background:linear-gradient(110deg,#efe6d5 0 50%,#1c1714 50%)}.t-chill .swatch{background:linear-gradient(#efe6d5 0 62%,#ecd2ab 62% 70%,#d3aa78 70%)}.t-nuit .swatch{background:radial-gradient(80% 90% at 20% 0,#ffaa5a59,#0000),linear-gradient(#1c1714 0 62%,#6a4a33 62% 70%,#4e3524 70%)}.t-teckel .swatch{background:linear-gradient(#f2e3cf 0 62%,#b86b3a 62%)}.t-romance .swatch{background:linear-gradient(#f6e2e2 0 62%,#e7b7b9 62%)}.settings-list{gap:2px;display:grid}.settings-list>button{text-align:left;background:var(--card);border:0;border-radius:14px;min-height:54px;padding:0 16px;font-size:16px}.diag{color:var(--ink-soft);gap:6px;margin:4px 0 8px;padding:12px 16px;font-size:14px;display:grid}.diag div{justify-content:space-between;gap:12px;display:flex}.diag dd{word-break:break-all;text-align:right}.diag dt,.diag dd{margin:0}.diag dd{color:var(--ink);font-weight:600}.colophon{text-align:center;color:var(--ink-soft);margin:30px 0 0;font-family:Fraunces,Georgia,serif;font-style:italic}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
