:root{--paper: #f7f4ef;--backdrop: #efe9df;--card: #ffffff;--cream: #fdfbf7;--raise: #f4f0e8;--ink: #2c2a26;--ink-soft: #565049;--muted: #8c867c;--faint: #aca69b;--line: #e7e1d6;--grass: #3f9a72;--grass-deep: #2f7d5b;--grass-soft: #e4f1ea;--violet: #6f63e6;--sun: #c98a2f;--sun-soft: #f5ead6;--danger: #c25239;--parchment: #f6efe1;--parchment-2: #efe6d3;--rail-bg: #faf6ec;--lib-ink: #3a3128;--lib-soft: #6c5f4f;--lib-faint: #a8977d;--lib-line: #e4d8c0;--gold: #a9803f;--wood-face: linear-gradient(180deg, #b07c47 0%, #97663a 100%);--wood-grain: linear-gradient(90deg, rgba(255, 245, 228, .14), transparent 18%, transparent 82%, rgba(120, 80, 42, .14)), repeating-linear-gradient(0deg, rgba(120, 78, 40, 0) 0 3px, rgba(120, 78, 40, .05) 3px 4px);--r-xl: 20px;--r-lg: 15px;--r-md: 11px;--book-shadow: 0 2px 4px rgba(44, 42, 38, .12), 0 14px 26px -12px rgba(44, 42, 38, .32);--ease: cubic-bezier(.32, .72, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--paper: #201e1b;--backdrop: #171614;--card: #292724;--cream: #2b2926;--raise: #302d29;--ink: #f1ede5;--ink-soft: #cbc5ba;--muted: #948d82;--faint: #6d675d;--line: #383430;--grass: #5fbd93;--grass-deep: #83d2ac;--grass-soft: #21332a;--violet: #9b90f4;--sun: #dfa24f;--sun-soft: #362c1c;--danger: #e08a72;--parchment: #322b22;--parchment-2: #2a241c;--rail-bg: #1c1813;--lib-ink: #f2ebdd;--lib-soft: #cabda6;--lib-faint: #968872;--lib-line: #443c31;--gold: #d9b074;--wood-face: linear-gradient(180deg, #6b4826 0%, #573920 100%);--book-shadow: 0 2px 5px rgba(0, 0, 0, .45), 0 16px 30px -12px rgba(0, 0, 0, .72)}}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--backdrop);color:var(--ink);font-family:Nunito,ui-rounded,-apple-system,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}input,textarea,button{font:inherit;color:inherit}h1,h2,h3{font-family:"Baloo 2",Nunito,sans-serif;font-weight:600;margin:0}.brand-mark{width:26px;height:26px;display:inline-block;background:currentColor;color:var(--gold);-webkit-mask:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='10' height='18' rx='1.7'/%3E%3Cpath d='M15 3v18M8.4 21v3.4l1.7-1.4 1.7 1.4V21'/%3E%3C/svg%3E");mask:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='10' height='18' rx='1.7'/%3E%3Cpath d='M15 3v18M8.4 21v3.4l1.7-1.4 1.7 1.4V21'/%3E%3C/svg%3E")}.splash{height:100%;display:grid;place-items:center;background:var(--rail-bg)}.pub-page{min-height:100%;background:var(--rail-bg);padding:clamp(20px,6vw,64px) 16px calc(48px + env(safe-area-inset-bottom))}.pub-sheet{max-width:680px;margin:0 auto;background:var(--parchment);border:1px solid var(--lib-line);border-radius:16px;padding:clamp(24px,6vw,52px);box-shadow:0 18px 50px -28px #00000073}.pub-head{margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--lib-line)}.pub-head h1{font-family:"Baloo 2",system-ui,sans-serif;font-size:clamp(24px,5vw,33px);line-height:1.2;color:var(--lib-ink)}.pub-when{display:block;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--lib-faint)}.pub-muted{color:var(--lib-faint);font-size:14px}.pub-empty{text-align:center;padding:40px 0}.pub-empty h1{font-family:"Baloo 2",system-ui,sans-serif;font-size:22px;color:var(--lib-ink);margin-bottom:8px}.pub-foot{margin-top:34px;padding-top:16px;border-top:1px solid var(--lib-line);display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--lib-faint)}.pub-foot .brand-mark{width:18px;height:18px}.signin{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--rail-bg)}.signin-card{width:100%;max-width:366px;background:var(--card);border:1px solid var(--lib-line);border-radius:var(--r-xl);padding:36px 26px 28px;text-align:center;display:flex;flex-direction:column;gap:12px;box-shadow:0 24px 60px -30px #3a2c1c66}.signin-card h1{margin:6px 0 0;font-size:25px;color:var(--lib-ink)}.signin-card .muted{color:var(--muted);margin:0 0 6px;font-size:13.5px}.divider{color:var(--faint);font-size:12px;font-weight:700}.in,.field{width:100%;padding:12px 14px;border:1px solid var(--line);background:var(--raise);border-radius:var(--r-md);outline:none;transition:border-color .14s var(--ease)}.in:focus,.field:focus{border-color:var(--grass)}.btn{width:100%;padding:12px 16px;border:0;border-radius:var(--r-md);background:var(--grass);color:#fff;font-weight:800;font-family:"Baloo 2",sans-serif;cursor:pointer;transition:filter .14s var(--ease)}.btn:hover{filter:brightness(1.04)}.btn:disabled{opacity:.5}.btn.google{background:var(--lib-ink);color:var(--cream)}.err{color:var(--danger);font-size:13px;margin:0}.fine{color:var(--faint);font-size:11.5px;margin:4px 0 0}.page{min-height:100%;display:grid;grid-template-columns:224px 1fr;background:var(--rail-bg)}.mobile-only{display:none}.rail{display:flex;flex-direction:column;padding:26px 16px 18px;gap:4px;background:var(--rail-bg);position:sticky;top:0;height:100vh}.rail-logo{display:flex;align-items:center;gap:10px;font-family:"Baloo 2",sans-serif;font-weight:700;font-size:20px;color:var(--lib-ink);padding:2px 12px 22px}.rail-logo svg{color:var(--gold)}.rail-nav{display:flex;flex-direction:column;gap:3px}.rail-item{display:flex;align-items:center;gap:13px;width:100%;border:0;background:none;cursor:pointer;text-align:left;padding:11px 13px;border-radius:12px;font-size:14px;font-weight:600;color:var(--lib-soft);transition:background .16s var(--ease),color .16s var(--ease)}.rail-item svg{color:var(--gold);flex:none;opacity:.85}.rail-item:hover{color:var(--lib-ink);background:color-mix(in srgb,var(--gold) 8%,transparent)}.rail-item.on{background:var(--card);color:var(--lib-ink);font-weight:700;box-shadow:0 1px 2px #3a2c1c0f,0 6px 16px -8px #3a2c1c38}.rail-foot{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:6px}.sync-badge{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:var(--lib-soft);padding:6px 11px;border-radius:999px;border:1px solid var(--lib-line);background:var(--card);white-space:nowrap}.sb-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--grass)}.sync-badge.saving .sb-dot{background:var(--sun);animation:sb-pulse 1s ease-in-out infinite}.sync-badge.offline .sb-dot{background:var(--faint)}.sync-badge.offline{color:var(--faint)}@keyframes sb-pulse{50%{opacity:.3}}.rail-foot .sync-badge{align-self:flex-start;margin-bottom:4px}.lib-head .sync-badge,.nb-head .sync-badge{display:none}.rail-acct{font-size:11px;font-weight:700;color:var(--lib-faint);padding:0 13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-signout{border:0;background:none;text-align:left;padding:8px 13px;border-radius:10px;font-size:12.5px;font-weight:600;color:var(--lib-soft);cursor:pointer}.rail-signout:hover{background:color-mix(in srgb,var(--gold) 8%,transparent)}.lib-main,.nb-main{min-width:0;padding:clamp(18px,3vw,30px) clamp(16px,3vw,30px) 40px 0;display:flex;flex-direction:column}.lib-head,.nb-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}.lib-head h1,.nb-head h1{font-size:23px;color:var(--lib-ink)}.lib-meta{font-size:12px;font-weight:700;color:var(--lib-faint)}.pill{margin-left:auto;border:1px solid var(--lib-line);background:var(--card);color:var(--lib-ink);font-weight:700;font-size:13px;padding:9px 16px;border-radius:999px;cursor:pointer}.pill:hover{border-color:var(--gold)}.nb-head .pill,.lib-head .pill+.pill{margin-left:0}.nb-head .pill.danger{margin-left:auto}.pill.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--lib-line))}.pill.danger:hover{border-color:var(--danger)}.pill:disabled{opacity:.55;cursor:default}.back{border:0;background:none;color:var(--grass-deep);font-weight:700;font-size:13.5px;cursor:pointer;padding:4px 2px}.parchment{border-radius:var(--r-xl);background:radial-gradient(120% 80% at 50% -10%,rgba(255,255,255,.5),transparent 60%),linear-gradient(180deg,var(--parchment) 0%,var(--parchment-2) 100%);box-shadow:inset 0 1px #fff6,0 1px 3px #3a2c1c0f,0 24px 60px -30px #3a2c1c66;padding:clamp(20px,3vw,34px) clamp(20px,4vw,42px) 24px}@media (prefers-color-scheme: dark){.parchment{box-shadow:inset 0 1px #ffffff0d,0 24px 60px -30px #0009}}.lib-empty{padding:54px 10px;text-align:center;color:var(--lib-faint);font-weight:600;font-size:13.5px}.shelf-section{margin-bottom:4px}.ss-head{display:flex;align-items:baseline;gap:12px;margin:10px 4px 2px}.ss-head h3{font-size:15px;color:var(--lib-soft)}.ss-add{margin-left:auto;border:0;background:none;color:var(--gold);font-family:"Baloo 2",sans-serif;font-weight:600;font-size:12px;cursor:pointer;padding:4px 8px;border-radius:999px}.ss-add:hover{background:color-mix(in srgb,var(--gold) 14%,transparent)}.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,122px));justify-content:center;gap:32px 26px;padding:18px 8px 8px}.slot{display:flex;flex-direction:column;align-items:center;gap:7px}.slot-book{width:100%;position:relative}.slot-book:after{content:"";position:absolute;left:6%;right:6%;bottom:-13px;height:16px;background:radial-gradient(60% 100% at 50% 0%,rgba(74,48,24,.32),transparent 72%);filter:blur(2.5px);pointer-events:none}.book{border:0;background:none;padding:0;cursor:pointer;width:100%;display:block}.slot-caption{border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;width:100%;padding:0 2px}.bc-name{font-family:"Baloo 2",sans-serif;font-weight:600;font-size:12.5px;line-height:1.22;color:var(--lib-ink);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.slot-caption:hover .bc-name{color:var(--gold)}.bc-count{font-size:10px;font-weight:700;color:var(--lib-faint)}.cover-box{display:block;position:relative;width:100%;aspect-ratio:3 / 4;border-radius:2px 5px 5px 2px;overflow:hidden;box-shadow:-2px 0 4px -2px #0000004d,1px 2px 4px -2px #00000040,0 9px 10px -7px #3a2c1c8c,inset 0 0 0 1px #0000000f;transition:transform .22s var(--ease-out),box-shadow .22s var(--ease-out)}.book:hover .cover-box{transform:translateY(-6px);box-shadow:-3px 0 5px -3px #00000059,2px 2px 4px -2px #00000047,0 22px 26px -12px #3a2c1c8c}.cover-box.cover-image img{width:100%;height:100%;object-fit:cover;display:block;background:var(--raise)}.cover-box:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,rgba(0,0,0,.16) 0%,transparent 12%,transparent 88%,rgba(255,255,255,.1) 100%),radial-gradient(120% 80% at 50% -20%,rgba(255,255,255,.16),transparent 55%);pointer-events:none}.cover-box:before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:linear-gradient(90deg,#00000042,#0000);z-index:3}.cover-arcs{background:radial-gradient(circle at 50% 128%,transparent 30%,var(--cc2) 30%,var(--cc2) 38%,transparent 38%,transparent 50%,var(--cc2) 50%,var(--cc2) 58%,transparent 58%,transparent 70%,var(--cc2) 70%,var(--cc2) 78%,transparent 78%),var(--cc1)}.cover-stripe{background:repeating-linear-gradient(118deg,var(--cc1) 0 15px,var(--cc2) 15px 24px)}.cover-dots{background:radial-gradient(var(--cc2) 2.3px,transparent 2.9px) 0 0 / 20px 20px,var(--cc1)}.cover-wash{background:linear-gradient(158deg,var(--cc1) 0%,var(--cc2) 100%)}.cover-chev{background:repeating-linear-gradient(135deg,var(--cc1) 0 11px,var(--cc2) 11px 22px)}.cover-grid{background:linear-gradient(var(--cc2) 1.5px,transparent 1.5px) 0 0 / 17px 17px,linear-gradient(90deg,var(--cc2) 1.5px,transparent 1.5px) 0 0 / 17px 17px,var(--cc1)}.pin-book{width:100%;border:0;background:none;cursor:pointer;padding:0}.pb-cover{position:relative;width:100%;aspect-ratio:3 / 4;border-radius:2px 6px 6px 2px;background:radial-gradient(120% 60% at 20% 0%,rgba(255,255,255,.16),transparent 60%),linear-gradient(155deg,var(--violet) 0%,color-mix(in srgb,var(--violet) 48%,#000) 100%);box-shadow:-3px 0 5px -3px #00000059,2px 2px 4px -2px #00000047,0 10px 12px -8px #3a2c1c80;display:flex;flex-direction:column;justify-content:flex-end;padding:12px 11px 13px;gap:4px;color:#fff;overflow:hidden;transition:transform .22s var(--ease-out)}.pin-book:hover .pb-cover{transform:translateY(-6px)}.pb-cover:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(90deg,#0000004d,#0000)}.pb-title{font-family:"Baloo 2",sans-serif;font-weight:600;font-size:11.5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pb-nb{font-size:9.5px;font-weight:700;color:#ffffff9e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb-head-cover{width:40px;aspect-ratio:3 / 4;border-radius:2px 4px 4px 2px;flex:none}.nb-search{margin-bottom:14px;max-width:460px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;align-content:start}.ncard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 16px 14px;display:flex;flex-direction:column;gap:9px;cursor:pointer;min-height:150px;text-align:left;transition:border-color .16s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease)}.ncard:hover{border-color:color-mix(in srgb,var(--grass) 40%,var(--line));box-shadow:0 4px 12px -4px #2c2a2624,0 18px 44px -18px #2c2a264d;transform:translateY(-3px)}.ncard h3{font-family:Nunito,sans-serif;font-size:14.5px;color:var(--ink);font-weight:700;line-height:1.32;padding-right:20px}.ncard .sum{margin:0;font-size:12.5px;color:var(--muted);line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.ncard .foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tag-pill{font-size:10.5px;font-weight:700;color:var(--sun);background:var(--sun-soft);border-radius:999px;padding:2px 9px}.ncard .date{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--faint)}.ncard-star{position:absolute;top:12px;right:13px;color:var(--sun);font-size:12px}.editor{min-height:100%;display:flex;flex-direction:column;background:var(--paper)}.editor-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:12px clamp(12px,3vw,26px);padding-top:calc(12px + env(safe-area-inset-top));background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.editor-bar .grow{flex:1;min-width:0}.editor-bar .back{flex:none}.editor-bar .seg{margin-left:auto}.ed-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.save-state{font-size:11px;font-weight:800;color:var(--faint);text-transform:none;letter-spacing:0}.save-state.dirty{color:var(--grass-deep)}.seg{display:inline-flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:3px}.seg button{border:0;background:none;padding:6px 13px;border-radius:7px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer}.seg button.on{background:var(--grass-soft);color:var(--grass-deep)}.tbtn{border:0;background:none;font-weight:700;font-size:13px;cursor:pointer;color:var(--muted);padding:6px;display:inline-flex;align-items:center;flex:none}.tbtn.danger{color:var(--danger)}.editor-scroll{flex:1;overflow-y:auto}.editor-inner{max-width:720px;margin:0 auto;padding:20px clamp(16px,4vw,28px) 160px}.ed-title{width:100%;border:0;background:none;outline:none;font-family:"Baloo 2",sans-serif;font-size:25px;font-weight:700;color:var(--ink);margin-bottom:10px}.ed-body{width:100%;border:0;outline:none;background:none;resize:none;min-height:60vh;font-size:15px;line-height:1.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink-soft)}.ed-read{font-size:15.5px;line-height:1.75;color:var(--ink)}.ed-read h1,.ed-read h2,.ed-read h3{font-weight:800;line-height:1.3;margin:1.5em 0 .4em}.ed-read h1{font-size:1.5em}.ed-read h2{font-size:1.25em}.ed-read h3{font-size:1.05em;letter-spacing:.02em;text-transform:uppercase;padding-top:.7em;border-top:1px solid var(--lib-line)}.ed-read h1:first-child,.ed-read h2:first-child,.ed-read h3:first-child{margin-top:0}.ed-read h3+h1,.ed-read h3+h2,.ed-read h3+h3{border-top:0;padding-top:0}.ed-read em{color:var(--lib-faint)}.ed-read ol>li::marker{font-weight:700;color:var(--grass-deep)}.ed-read a{color:var(--grass-deep)}.ed-read img{max-width:100%;border-radius:10px;margin:.4em 0}.ed-read audio,.ed-read video{display:block;width:100%;max-width:420px;margin:.6em 0}.ed-read code{background:var(--raise);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.9em}.ed-read pre{background:var(--raise);border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow-x:auto}.ed-read blockquote{margin:0 0 1em;padding-left:14px;border-left:3px solid var(--line);color:var(--muted)}.ed-read ul,.ed-read ol{padding-left:22px}.ed-read input[type=checkbox]{width:17px;height:17px;margin-right:7px;accent-color:var(--grass)}.new-form{display:flex;flex-direction:column;gap:10px;padding-bottom:60px}.lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-top:8px}.nb-chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;font-size:12.5px;font-weight:700;color:var(--muted);padding:7px 13px;cursor:pointer}.chip.on{border-color:var(--grass);background:var(--grass-soft);color:var(--grass-deep)}.btn.wide{margin-top:10px}.fab{display:none;position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:0;background:var(--grass);color:#fff;font-size:26px;line-height:1;box-shadow:0 10px 30px -8px #00000073;cursor:pointer;z-index:20}@media (max-width: 900px){.page{display:block}.rail{display:none}.lib-main,.nb-main{padding:calc(16px + env(safe-area-inset-top)) 14px 90px}.lib-head,.nb-head{flex-wrap:wrap;gap:10px 12px}.lib-head h1,.nb-head h1{font-size:21px}.nb-head .back{flex-basis:100%}.nb-head-cover{display:none}.nb-head .pill{margin-left:auto}.lib-head .sync-badge,.nb-head .sync-badge{display:inline-flex;order:5}.mobile-only{display:inline-flex}.parchment{padding:16px 12px 20px}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:26px 14px;padding:16px 4px 4px}.fab{display:grid;place-items:center}.card-grid{grid-template-columns:1fr}.editor-inner{padding-bottom:120px}}
