:root{--paper:#f4ede0;--paper-2:#ebe2d1;--paper-3:#ddd1b9;--vellum:#fbf6ec;--ink:#1c1a17;--ink-2:#3a352d;--ink-3:#6b6357;--ink-4:#82786a;--rule:#cdc2ac;--rule-2:#b9ad94;--stamp:oklch(56% .14 32);--stamp-2:oklch(48% .16 32);--stamp-tint:oklch(94% .04 32);--quill:oklch(45% .1 250);--quill-tint:oklch(94% .04 250);--moss:oklch(48% .08 145);--moss-tint:oklch(94% .04 145);--warn:oklch(60% .15 60);--editor-bg:#efe9dc;--editor-panel:#f7f1e3;--editor-rule:#d6cab2;--shadow-1:0 1px 0 #1c1a170a, 0 1px 3px #1c1a170f;--shadow-2:0 4px 14px -8px #1c1a1740, 0 1px 0 #1c1a170a;--hover:#1c1a170d;--hover-weak:#1c1a170a;--press:#1c1a1717;--scrim:#1c1a1773;--btn-hover-bg:#000;--serif-display:"Instrument Serif", "Newsreader", Georgia, serif;--serif-body:"Newsreader", Georgia, serif;--sans:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.45}body{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{color:inherit;font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--rule);background-clip:padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--rule-2);background-clip:padding-box;border:2px solid #0000}.h-display{font-family:var(--serif-display);letter-spacing:-.01em;font-weight:400;line-height:1}.h-serif{font-family:var(--serif-body);letter-spacing:-.005em;font-weight:500}.mono{font-family:var(--mono)}.sans{font-family:var(--sans)}.small-caps{font-family:var(--sans);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600}.prose{font-family:var(--serif-body);color:var(--ink);font-size:19px;line-height:1.62}.prose p{margin:0 0 1.1em}.prose em.var{color:var(--quill);background:var(--quill-tint);border-radius:2px;padding:0 4px;font-style:italic}.prose h1,.prose h2,.prose h3{font-family:var(--serif-body);margin:.9em 0 .45em;font-weight:700;line-height:1.25}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose h1{font-size:1.45em}.prose h2{font-size:1.25em}.prose h3{font-size:1.1em}.prose blockquote{border-left:3px solid var(--rule-2);color:var(--ink-2);margin:0 0 1.1em;padding:2px 0 2px 14px}.prose pre{font-family:var(--mono);background:var(--vellum);border:1px solid var(--rule);color:var(--ink);white-space:pre-wrap;word-break:break-word;border-radius:3px;margin:0 0 1.1em;padding:10px 12px;font-size:13px}.prose code{font-family:var(--mono);background:var(--vellum);border:1px solid var(--rule);border-radius:3px;padding:1px 4px;font-size:.85em}.prose pre code{font-size:inherit;background:0 0;border:none;padding:0}.prose ul,.prose ol{margin:0 0 1.1em;padding-left:1.4em}.prose li{margin:0 0 .25em}.prose a{color:var(--quill);text-underline-offset:2px;overflow-wrap:anywhere;text-decoration:underline}.prose .spoiler{background:var(--ink);color:#0000;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;padding:0 3px}.prose .spoiler:not(.revealed) *{color:#0000}.prose .spoiler:not(.revealed) a{pointer-events:none}.prose .spoiler.revealed{background:var(--quill-tint);color:inherit;cursor:auto;-webkit-user-select:auto;user-select:auto}.prose .spoiler.revealed *{color:inherit}.prose.sm{font-size:15.5px;line-height:1.55}.prose.desc{font-size:18px;line-height:1.55}.prose.dm{font-size:14px;line-height:1.45}.prose.dm p{margin:0 0 .5em}.prose.dm p:last-child,.prose.sm p:last-child,.prose.desc p:last-child{margin-bottom:0}.row{display:flex}.col{flex-direction:column;display:flex}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.gap-8{gap:32px}.grow{flex:auto;min-width:0}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.t-2{color:var(--ink-2)}.t-3{color:var(--ink-3)}.t-4{color:var(--ink-4)}.t-stamp{color:var(--stamp)}.t-rule2{color:var(--rule-2)}.sidebar{background:var(--paper-2);border-right:1px solid var(--rule);flex-direction:column;flex:0 0 232px;width:232px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--rule);padding:24px 22px 18px}.sidebar-brand-title{font-family:var(--serif-display);font-size:30px;line-height:1}.sidebar-brand-sub{font-family:var(--mono);color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;margin-top:6px;font-size:10.5px}.sidebar-section{padding:14px 18px 4px}.sidebar-section-label{font-family:var(--mono);color:var(--ink-4);letter-spacing:.18em;text-transform:uppercase;padding:0 4px 6px;font-size:10px}.nav-item{color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:10px;padding:7px 10px;font-size:13.5px;font-weight:500;display:flex}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.active{background:var(--ink);color:var(--paper)}.nav-item .count{font-family:var(--mono);color:var(--ink-4);margin-left:auto;font-size:11px}.nav-item.active .count{color:#f4ede099}.sidebar-footer{border-top:1px solid var(--rule);cursor:pointer;align-items:center;gap:10px;margin-top:auto;padding:14px 18px;display:flex}.sidebar-footer:hover{background:var(--hover-weak)}.avatar{background:var(--ink);width:32px;height:32px;color:var(--paper);font-family:var(--serif-display);border-radius:50%;flex:0 0 32px;justify-content:center;align-items:center;font-size:17px;display:flex}.avatar.lg{flex:0 0 56px;width:56px;height:56px;font-size:28px}.avatar.xl{flex:0 0 96px;width:96px;height:96px;font-size:48px}.avatar.stamp{background:var(--stamp)}.avatar.group{border-radius:0}img.avatar{object-fit:cover;display:block}.group-banner{aspect-ratio:4;background-position:50%;background-size:cover;background-color:var(--paper-3);border:1px solid var(--rule);border-radius:6px;width:100%;margin-bottom:68px;position:relative}.group-banner.sm{aspect-ratio:5.5;margin-bottom:60px}.group-banner.tone-a{background-image:linear-gradient(135deg, var(--paper-2), var(--paper-3))}.group-banner.tone-b{background-image:linear-gradient(135deg, var(--paper-3), var(--rule))}.group-banner.tone-c{background-image:linear-gradient(135deg, var(--stamp-tint), var(--paper-2))}.group-banner.tone-d{background-image:linear-gradient(135deg, var(--vellum), var(--paper-3))}.group-banner.tone-e{background-image:linear-gradient(135deg, var(--paper-2), var(--rule-2))}.group-banner.tone-f{background-image:linear-gradient(135deg, var(--rule), var(--paper-2))}.group-banner.tone-g{background-image:linear-gradient(135deg, var(--stamp-tint), var(--rule))}.group-hero-avatar{position:absolute;bottom:-44px;left:22px}.group-hero-avatar .avatar{box-shadow:0 0 0 4px var(--paper)}.group-banner.editable,.group-hero-avatar.editable{cursor:pointer}.group-banner .edit-overlay,.group-hero-avatar .edit-overlay{color:var(--paper);opacity:0;pointer-events:none;letter-spacing:.04em;background:0 0;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:500;transition:opacity .12s,background .12s;display:flex;position:absolute;inset:0}.group-banner.editable{border-radius:6px;overflow:hidden}.group-banner.editable:hover .edit-overlay,.group-hero-avatar.editable:hover .edit-overlay{opacity:1;background:#00000073}.inline-edit-name{font-family:var(--serif-display);border:1px solid var(--rule-2);background:var(--vellum);color:var(--ink);border-radius:3px;outline:none;width:100%;max-width:520px;padding:2px 8px;font-size:44px;line-height:1.1}.inline-edit-name:focus{border-color:var(--ink)}.name-edit-row{align-items:center;gap:8px;display:flex}.pencil-btn{width:28px;height:28px;color:var(--ink-4);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.pencil-btn:hover{color:var(--ink-2);background:var(--paper-2);border-color:var(--rule)}.editable-block{position:relative}.editable-block .pencil-btn.absolute{opacity:0;transition:opacity .12s;position:absolute;top:0;right:0}.editable-block:hover .pencil-btn.absolute{opacity:1}.app{min-height:100vh;display:flex}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--rule);background:var(--paper);z-index:4;flex:0 0 56px;align-items:center;gap:16px;min-width:0;height:56px;padding:0 28px;display:flex;position:sticky;top:0}.crumb{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.crumb b{color:var(--ink);font-weight:600}.crumb-sep{color:var(--ink-4);padding:0 2px}.crumb-link{cursor:pointer;text-underline-offset:3px;text-decoration:underline}.topbar-right{flex:none;align-items:center;gap:14px;margin-left:auto;display:flex}.corn-pill{border:1px solid var(--rule);font-family:var(--mono);color:var(--ink-2);background:var(--vellum);border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 8px;font-size:12px;display:flex}.corn-pill .dot{background:var(--stamp);width:10px;height:10px;box-shadow:0 0 0 2px var(--stamp-tint);border-radius:50%}.content{width:100%;max-width:1280px;margin:0 auto;padding:36px 48px 80px}.content.narrow{max-width:760px}.content.wide{max-width:100%}.col-split{grid-template-columns:var(--cols);gap:var(--col-gap,24px);display:grid}@media (width<=960px){.col-split{grid-template-columns:1fr}.col-split.corn-stats{grid-template-columns:1fr 1fr;align-items:start}.book-detail-cover{max-width:200px}}.card-grid{grid-template-columns:repeat(auto-fill, minmax(var(--card-min,200px), 1fr));display:grid}@media (width<=480px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.btn{border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:3px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;transition:transform 60ms,background .12s;display:inline-flex}.btn:hover{background:var(--btn-hover-bg)}.btn:active{transform:translateY(1px)}.btn.secondary{color:var(--ink);background:0 0}.btn.secondary:hover{background:var(--hover)}.btn.secondary:active{background:var(--press)}.btn.stamp{background:var(--stamp);border-color:var(--stamp);color:var(--vellum)}.btn.stamp:hover{background:var(--stamp-2)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000;padding:6px 8px}.btn.ghost:hover{background:var(--hover);color:var(--ink)}.btn.ghost:active{background:var(--press)}.btn.sm{padding:5px 10px;font-size:12px}.btn.lg{padding:12px 22px;font-size:14.5px}.btn.danger{border-color:var(--stamp);color:var(--stamp);background:0 0}.btn.danger:hover{background:var(--stamp);color:var(--vellum)}.btn[disabled]{opacity:.4;cursor:not-allowed}.btn.icon-only{justify-content:center;min-width:32px;padding:6px}.notif-anchor{display:inline-flex;position:relative}.notif-bell{position:relative}.notif-bell.active{background:var(--hover);color:var(--ink)}.notif-badge{background:var(--stamp);min-width:16px;height:16px;color:var(--vellum);font-family:var(--mono);text-align:center;box-shadow:0 0 0 2px var(--paper);border-radius:999px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:-2px;right:-2px}.notif-drawer{background:var(--paper);border:1px solid var(--rule);width:min(360px,100vw - 24px);max-height:calc(100vh - 90px);box-shadow:var(--shadow-2);z-index:10;border-radius:4px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notif-drawer-head{border-bottom:1px solid var(--rule);flex:none;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.notif-drawer-list{flex:auto;padding:4px 0;overflow-y:auto}.notif-item{text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--rule);width:100%;font-family:var(--sans);color:var(--ink-2);background:0 0;flex-direction:column;gap:4px;padding:10px 14px;display:flex}.notif-item:hover{background:var(--hover-weak)}.notif-item:last-child{border-bottom:0}.notif-item.unread{color:var(--ink)}.notif-item.unread .notif-body:before{content:"";background:var(--stamp);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.notif-item .notif-body{font-size:13px;line-height:1.4}.notif-item .notif-time{color:var(--ink-3);font-size:11px;font-family:var(--mono)}.notif-empty{text-align:center;color:var(--ink-3);padding:28px 14px;font-size:13px;font-style:italic}.modal-backdrop{background:var(--scrim);z-index:50;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--paper);border:1px solid var(--ink);border-radius:6px;width:100%;max-width:480px;padding:22px 24px;box-shadow:0 12px 36px #0000002e}.modal-title{font-family:var(--serif-display);color:var(--ink);margin:0 0 6px;font-size:22px}.modal-message{color:var(--ink-2);margin:0 0 16px;font-size:13.5px;line-height:1.5}.modal-field{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.modal-field label{font-family:var(--mono);color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px}.modal-field textarea{resize:vertical;min-height:80px;font-family:var(--sans)}.modal-error{color:var(--stamp);margin:4px 0 10px;font-size:12.5px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.chip{background:var(--paper-2);color:var(--ink-2);border:1px solid var(--rule);font-size:11px;font-weight:500;font-family:var(--sans);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.chip.stamp{background:var(--stamp-tint);color:var(--stamp);border-color:#0000}.chip.quill{background:var(--quill-tint);color:var(--quill);border-color:#0000}.chip.moss{background:var(--moss-tint);color:var(--moss);border-color:#0000}.chip.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.card{background:var(--vellum);border:1px solid var(--rule);border-radius:6px}.card.emphasis{background:var(--ink);color:var(--paper);border-color:var(--ink)}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px}.input,.textarea,.select{background:var(--vellum);border:1px solid var(--rule);width:100%;color:var(--ink);font-size:13.5px;font-family:var(--sans);border-radius:4px;outline:none;padding:9px 11px;transition:border-color .12s}.input:focus,.textarea:focus,.select:focus{border-color:var(--ink)}.textarea{resize:vertical;min-height:120px;font-family:var(--serif-body);font-size:15px;line-height:1.5}.input.mono,.textarea.mono{font-family:var(--mono);font-size:12.5px}.check{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.check input{appearance:none;border:1px solid var(--rule-2);background:var(--vellum);cursor:pointer;border-radius:3px;place-content:center;width:16px;height:16px;display:inline-grid}.check input:checked{background:var(--ink);border-color:var(--ink)}.check input:checked:after{content:"";border:2px solid var(--paper);border-top:0;border-right:0;width:8px;height:4px;transform:rotate(-45deg)translate(1px,-1px)}.section-head{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;margin-bottom:22px;padding-bottom:14px;display:flex}.section-title{font-family:var(--serif-display);font-size:clamp(24px,6vw,36px);line-height:1}.section-sub{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:11px}.tabs{border-bottom:1px solid var(--rule);gap:4px;display:flex}.tab{color:var(--ink-3);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-size:13px;font-weight:500}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-color:var(--ink)}.book-card{cursor:pointer;flex-direction:column;gap:10px;display:flex;position:relative}.card-link:after{content:"";position:absolute;inset:0}.card-tags{z-index:1;position:relative}.book-cover{aspect-ratio:2/3;background:var(--paper-3);box-shadow:var(--shadow-2);border:1px solid var(--rule-2);border-radius:4px;justify-content:center;align-items:center;padding:18px;transition:transform .2s;display:flex;position:relative;overflow:hidden}.book-card:hover .book-cover{box-shadow:var(--shadow-2), 0 8px 20px -10px #1c1a1759;transform:translateY(-3px)}.book-card:hover .book-card-title{text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2)}.book-cover-title{font-family:var(--serif-display);color:var(--ink);text-align:center;font-size:22px;line-height:1.05}.book-cover-author{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);text-align:center;margin-top:8px;font-size:10.5px}.book-cover.tone-a{background:linear-gradient(160deg,#e7d8b8,#c9b894)}.book-cover.tone-b{background:linear-gradient(160deg,#d4cdb9,#9a8e74)}.book-cover.tone-c{color:var(--vellum);background:linear-gradient(160deg,#c9a890,#946655)}.book-cover.tone-c .book-cover-title,.book-cover.tone-c .book-cover-author{color:var(--vellum)}.book-cover.tone-d{background:linear-gradient(160deg,#1c1a17,#3a352d)}.book-cover.tone-d .book-cover-title,.book-cover.tone-d .book-cover-author{color:var(--paper)}.book-cover.tone-e{background:linear-gradient(160deg,#b6c2b0,#7e8c7a)}.book-cover.tone-f{background:linear-gradient(160deg,#d6b6a3,#c08573)}.book-cover.tone-g{background:linear-gradient(160deg,#9eb1c3,#6b8197)}.book-cover .stamp-marker{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;opacity:.6;border:1px solid;border-radius:2px;padding:3px 6px;font-size:9px;position:absolute;top:10px;right:10px}.book-card-title{font-family:var(--serif-body);color:var(--ink);font-size:15px;font-weight:600;line-height:1.25}.book-card-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.book-card-author{font-style:italic}.hairline{border-top:1px solid var(--rule)}.page-curl{position:relative}.page-curl:before{content:"";background:linear-gradient(225deg, transparent 50%, var(--paper-3) 50%);border-radius:0 0 4px;width:24px;height:24px;position:absolute;bottom:0;right:0}.graph-canvas{background:var(--editor-panel);background-image:radial-gradient(var(--editor-rule) 1px, transparent 1px);border:1px solid var(--rule);background-size:16px 16px;border-radius:6px;position:relative;overflow:hidden}.graph-node{background:var(--vellum);border:1px solid var(--rule-2);cursor:pointer;-webkit-user-select:none;user-select:none;min-width:180px;box-shadow:var(--shadow-1);border-radius:4px;padding:10px 12px;transition:border-color .12s,transform 80ms;position:absolute}.graph-node:hover{border-color:var(--ink)}.graph-node.selected{border-color:var(--stamp);box-shadow:0 0 0 3px var(--stamp-tint), var(--shadow-1)}.graph-node.link-src{border-color:var(--stamp);box-shadow:0 0 0 2px var(--stamp), var(--shadow-1)}.graph-node.root{background:var(--ink);color:var(--paper);border-color:var(--ink)}.graph-node.root .graph-node-id{color:#f4ede08c}.graph-node.root .btn.ghost{color:inherit}.graph-node.root .btn.ghost:hover{color:inherit;background:color-mix(in srgb, currentColor 22%, transparent)}.graph-node-id{font-family:var(--mono);color:var(--ink-4);letter-spacing:.1em;font-size:10px}.graph-node-title{font-family:var(--serif-body);margin-top:2px;font-size:14px;font-weight:600}.graph-node-meta{gap:6px;margin-top:6px;font-size:10px;display:flex}.graph-link-label{background:var(--vellum);color:var(--ink);border:1px solid var(--ink);font-size:12px;font-family:var(--sans);cursor:pointer;z-index:2;white-space:nowrap;border-radius:4px;max-width:210px;padding:4px 9px;font-weight:500;line-height:1.2;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px #1c1a170f,0 1px 4px #1c1a1714}.graph-link-label:hover{background:var(--ink);color:var(--paper)}.graph-link-label.cond{color:var(--quill);border-color:var(--quill);background:var(--quill-tint)}.graph-link-label.cond:hover{background:var(--quill);color:var(--vellum)}.graph-link-label.paid{color:var(--stamp);border-color:var(--stamp);background:var(--stamp-tint)}.graph-link-label.paid:hover{background:var(--stamp);color:var(--vellum)}.graph-link-label .price-tag{font-family:var(--mono);background:var(--stamp);color:var(--vellum);border-radius:2px;margin-right:5px;padding:0 4px;font-size:10.5px}.graph-link-label.cond .cond-tag{font-family:var(--mono);opacity:.7;margin-right:5px;font-size:10px}.reader-frame{max-width:720px;margin:0 auto}.reader-header{border-bottom:1px solid var(--rule);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;align-items:flex-start;margin-bottom:28px;padding-bottom:16px;font-size:11px;display:flex}.reader-image{aspect-ratio:16/9;background:var(--paper-3);border:1px solid var(--rule-2);border-radius:4px;justify-content:center;align-items:center;width:100%;margin-bottom:24px;display:flex;position:relative;overflow:hidden}.reader-page-title{font-family:var(--serif-display);letter-spacing:-.015em;margin:0 0 24px;font-size:clamp(30px,8vw,56px);line-height:1.05}.ornament{color:var(--ink-4);font-family:var(--mono);letter-spacing:.2em;align-items:center;gap:14px;margin:32px 0 20px;font-size:10px;display:flex}.ornament:before,.ornament:after{content:"";background:var(--rule);flex:1;height:1px}.choice{border:1px solid var(--rule);background:var(--vellum);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;border-radius:6px;align-items:flex-start;gap:16px;padding:18px 20px;transition:border-color .12s,transform 80ms;display:flex}.choice:hover{border-color:var(--ink)}.choice:hover .choice-arrow{transform:translate(4px)}.choice-nudge{color:var(--ink-2);background:var(--stamp-tint);border-radius:4px;margin-top:-4px;padding:8px 12px;font-size:12.5px}.choice-nudge a{text-underline-offset:3px;text-decoration:underline}.choice-mark{font-family:var(--serif-display);color:var(--stamp);white-space:nowrap;flex:none;min-width:36px;padding-top:2px;font-size:26px;line-height:1}.choice-body{flex:1}.choice-title{font-family:var(--serif-body);color:var(--ink);font-size:17px;font-weight:600}.choice-meta{color:var(--ink-3);align-items:center;gap:10px;margin-top:6px;font-size:11.5px;display:flex}.choice-arrow{color:var(--ink-3);font-family:var(--serif-display);flex:none;align-self:center;font-size:22px;transition:transform .15s}.choice.locked{opacity:.7;cursor:not-allowed;background:var(--paper-2)}.choice.locked:hover{border-color:var(--rule)}.choice.purchased .choice-mark{color:var(--moss)}.cw-badge{border:1px solid var(--stamp);color:var(--stamp);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:3px;align-items:center;gap:6px;padding:3px 8px;font-size:10px;display:inline-flex}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-scroll table{min-width:640px}.table{border-collapse:collapse;width:100%}.table th{text-align:left;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);padding:10px 12px;font-size:10px;font-weight:600}.table td{border-bottom:1px solid var(--rule);vertical-align:middle;padding:11px 12px;font-size:13px}.table tr:hover td{background:var(--hover-weak)}.table tr.clickable{cursor:pointer}kbd{font-family:var(--mono);border:1px solid var(--rule-2);background:var(--vellum);color:var(--ink-2);border-bottom-width:2px;border-radius:3px;padding:2px 5px;font-size:10.5px}@media (hover:none) and (pointer:coarse){.kbd-hint{display:none}}.seg{background:var(--paper-2);border:1px solid var(--rule);border-radius:999px;padding:3px;display:inline-flex}.seg button{color:var(--ink-3);background:0 0;border:0;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:500}.seg button.active{background:var(--ink);color:var(--paper)}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin:14px 0;display:flex}.pager-edge{border:1px solid var(--rule);color:var(--ink-2);cursor:pointer;font-size:12px;font-family:var(--sans);background:0 0;border-radius:3px;padding:5px 10px}.pager-edge:hover:not([disabled]){background:var(--paper-2);border-color:var(--rule-2)}.pager-edge[disabled]{opacity:.3;cursor:not-allowed}.pager-nums{align-items:center;gap:2px;margin:0 4px;display:inline-flex}.pager-num{color:var(--ink-2);cursor:pointer;min-width:28px;height:28px;font-size:12px;font-family:var(--mono);background:0 0;border:1px solid #0000;border-radius:3px;padding:0 8px}.pager-num:hover:not(.active){background:var(--paper-2)}.pager-num.active{background:var(--ink);color:var(--paper);border-color:var(--ink);cursor:default}.pager-gap{color:var(--ink-4);font-family:var(--mono);padding:0 4px;font-size:12px}.pager-mobile-status{font-family:var(--mono);color:var(--ink-3);padding:0 10px;font-size:12px;display:none}@media (width<=640px){.pager-desktop{display:none}.pager-mobile-status{display:inline-block}}.dots{gap:4px;display:flex}.dot-x{background:var(--rule);border-radius:50%;width:6px;height:6px}.dot-x.on{background:var(--stamp)}.codeblk{font-family:var(--mono);background:var(--vellum);border:1px solid var(--rule);border-left:3px solid var(--quill);color:var(--ink);white-space:pre-wrap;word-break:break-word;border-radius:3px;padding:10px 12px;font-size:12px}.codeblk.stamp{border-left-color:var(--stamp)}.avatar-stack{display:flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--paper)}.avatar-stack .avatar+.avatar{margin-left:-10px}.ph-image{background:repeating-linear-gradient(45deg, var(--paper-3) 0 8px, var(--paper-2) 8px 16px);color:var(--ink-3);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;font-size:11px}.input:focus,.textarea:focus,.select:focus,.btn:focus,a:focus,.choice:focus{outline:2px solid var(--stamp);outline-offset:1px}.input:focus:not(:focus-visible),.textarea:focus:not(:focus-visible),.select:focus:not(:focus-visible),.btn:focus:not(:focus-visible),a:focus:not(:focus-visible),.choice:focus:not(:focus-visible){outline:none}@keyframes pulse-stamp{0%,to{opacity:1}50%{opacity:.4}}.pulsing{animation:1.4s ease-in-out infinite pulse-stamp}@media (prefers-reduced-motion:reduce){.pulsing{opacity:.6;animation:none}.btn,.btn:active,.choice,.choice-arrow,.book-cover,.book-card:hover .book-cover,.choice:hover .choice-arrow,.graph-node{transition:none;transform:none}}.split{gap:0;height:calc(100vh - 56px);display:grid}.panel{background:var(--editor-panel);border-right:1px solid var(--rule);padding:18px;overflow:auto}.panel:last-child{border-right:0}.panel h4{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;font-size:10.5px;font-weight:600}.perm-pill{font-family:var(--mono);gap:1px;font-size:10px;display:inline-flex}.perm-pill span{border:1px solid var(--rule-2);background:var(--vellum);width:16px;height:16px;color:var(--ink-4);border-radius:2px;justify-content:center;align-items:center;display:inline-flex}.perm-pill span.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.icon{flex:0 0 16px;width:16px;height:16px}.icon.icon-sm{flex-basis:13px;width:13px;height:13px}.auth-stage{grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.auth-cover{background:var(--ink);color:var(--paper);flex-direction:column;justify-content:space-between;padding:56px;display:flex;position:relative;overflow:hidden}.auth-cover h1{font-family:var(--serif-display);letter-spacing:-.02em;max-width:8ch;margin:0;font-size:110px;line-height:.95}.auth-cover .tag{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#f4ede080;font-size:11px}.auth-form{flex-direction:column;justify-content:center;max-width:520px;padding:56px 72px;display:flex}@media (width<=760px){.auth-stage{grid-template-columns:1fr}.auth-cover{gap:18px;padding:28px 22px}.auth-cover h1{font-size:56px}.auth-cover p{display:none}.auth-form{width:100%;max-width:100%;padding:28px 22px 48px}}.pagecount{font-family:var(--mono);color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;font-size:10.5px}.groups-shell{grid-template-columns:240px 1fr;min-height:calc(100vh - 56px);display:grid}.groups-shell.has-drawer{grid-template-columns:240px 1fr 320px}.groups-rail{border-right:1px solid var(--rule);background:var(--paper);flex-direction:column;max-height:calc(100vh - 56px);padding:14px 10px;display:flex;position:sticky;top:56px;overflow-y:auto}.groups-rail .rail-label{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:10px 6px 6px;font-size:10px}.groups-rail .rail-empty{color:var(--ink-4);padding:0 6px 6px;font-size:12px;font-style:italic}.groups-rail .rail-groups{flex-direction:column;gap:3px;margin-bottom:6px;display:flex}.groups-rail .rail-hr{border-top:1px solid var(--rule);margin:8px 0}.groups-rail .rail-item{cursor:pointer;width:100%;color:var(--ink-2);font-size:13px;font-family:var(--sans);background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:8px;padding:10px 12px;display:flex}.groups-rail .rail-item:hover{background:var(--paper-2)}.groups-rail .rail-item.active{background:var(--paper-2);border-color:var(--rule);color:var(--ink);font-weight:600}.groups-rail .count-pill{background:var(--stamp);color:var(--vellum);font-size:10.5px;font-weight:600;font-family:var(--mono);border-radius:999px;padding:1px 7px}.groups-rail .rail-footer{border-top:1px solid var(--rule);margin-top:auto;padding-top:10px}.rail-group-row{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;align-items:center;gap:10px;padding:8px 10px;display:flex}.rail-group-row:hover{background:var(--paper-2)}.rail-group-row.selected{background:var(--paper-2);border-color:var(--ink);box-shadow:0 0 0 1px var(--ink) inset}.rail-group-name{font-family:var(--serif-body);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.rail-group-sub{color:var(--ink-3);font-size:11px}.groups-main{max-height:calc(100vh - 56px);padding:32px 40px 60px;overflow-y:auto}.groups-main-inner{max-width:880px;margin:0 auto}.groups-drawer{border-left:1px solid var(--rule);background:var(--paper);max-height:calc(100vh - 56px);padding:18px 16px;position:sticky;top:56px;overflow-y:auto}.groups-mobile-nav-btn,.topbar-hamburger{display:none}.nav-scrim{background:var(--scrim);z-index:29;position:fixed;inset:0}@media (width<=960px){.sidebar{z-index:30;width:264px;height:100vh;transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 24px #0003}.sidebar.open{transform:translate(0)}.topbar-hamburger{margin-left:-6px;display:inline-flex}.content{padding:22px 18px 60px}.reader-header{flex-wrap:wrap;gap:8px 16px;margin-bottom:18px}.groups-shell,.groups-shell.has-drawer{grid-template-columns:1fr}.groups-rail{z-index:20;border-right:1px solid var(--rule);width:280px;height:100vh;max-height:100vh;transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 24px #0003}.groups-rail.open{transform:translate(0)}.groups-drawer{display:none}.groups-main{max-height:none;padding:22px 18px 60px}.groups-mobile-nav-btn{display:inline-flex}.topbar{gap:10px;padding:0 14px}.topbar-right{gap:10px}.notif-drawer{width:auto;max-height:calc(100vh - 76px);position:fixed;top:60px;left:8px;right:8px}.input,.textarea,.select,.textarea{font-size:16px}.nav-item{padding:10px}.tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000)}.tabs .tab{white-space:nowrap;flex:none}}@media (width<=640px){.reader-header{flex-direction:column;align-items:stretch;gap:10px}.reader-header-actions{justify-content:space-between;align-items:center;width:100%}}@media (width<=480px){.content{padding:16px 14px 56px}.corn-pill>span:last-child,.topbar-username{display:none}.section-head{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:10px}.reader-page-title{margin-bottom:14px}.topbar .btn-label{display:none}.topbar .btn{padding:7px 9px}.card-meta-updated{display:none}}.reaction-strip{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.reaction-pill{border:1px solid var(--rule);background:var(--paper);cursor:pointer;font:inherit;color:var(--ink-2);border-radius:999px;align-items:center;gap:5px;padding:3px 9px;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.reaction-pill:hover:not(:disabled){border-color:var(--stamp)}.reaction-pill.active{border-color:var(--stamp);color:var(--stamp);background:#b25f4614}.reaction-pill:disabled{opacity:.6;cursor:default}.reaction-pill .glyph{font-size:14px;line-height:1}.reaction-pill .count{font-family:var(--mono,monospace);color:var(--ink-3);font-size:12px}.reaction-pill.active .count{color:var(--stamp)}.reaction-pill.ghost{opacity:.72;border-style:dashed}.reaction-pill.ghost:hover:not(:disabled){opacity:1;border-style:solid}.reaction-add-btn{border:1px dashed var(--rule);cursor:pointer;font:inherit;color:var(--ink-3);background:0 0;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;transition:border-color .12s,color .12s;display:inline-flex}.reaction-add-btn:hover:not(:disabled){border-color:var(--stamp);color:var(--stamp)}.reaction-add-btn:disabled{opacity:.6;cursor:default}.comment-section{margin-top:36px}.comment-sort{font:inherit;color:var(--ink-2);background:var(--paper);border:1px solid var(--rule);cursor:pointer;border-radius:4px;padding:3px 6px;font-size:13px}.comment-list{flex-direction:column;display:flex}.comment{border-bottom:1px solid var(--rule);gap:12px;padding:14px 0;display:flex}.comment.reply{border-bottom:1px dashed var(--rule);padding:10px 0}.comment>.body{flex:1;min-width:0}.comment .comment-head{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.comment-author{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.comment-author:hover{color:var(--stamp)}.comment-time{color:var(--ink-3);font-size:11px}.comment>.body .prose{margin:0;font-size:15px;line-height:1.55}.comment>.body .prose p{margin:0 0 6px}.comment>.body .prose p:last-child{margin-bottom:0}.comment.deleted .prose{color:var(--ink-3);font-style:italic}.comment.comment-flash{box-shadow:0 0 0 2px var(--stamp), 0 0 14px #dc464659;transition:box-shadow 1.2s ease-out}.comment-actions{color:var(--ink-3);gap:14px;margin-top:8px;font-size:12px;display:flex}.comment-actions button{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.comment-actions button:hover{color:var(--stamp)}.comment-composer textarea{resize:vertical;width:100%;min-height:70px;font:inherit;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:4px;padding:8px 10px;font-size:14px}.comment-composer textarea:focus{border-color:var(--stamp);outline:0}.report-meta-grid{grid-template-columns:140px 1fr;align-items:center;gap:8px 16px;margin:12px 0 4px;display:grid}.report-snippet{border-left:2px solid var(--rule);font-family:var(--serif-body);color:var(--ink-2);white-space:pre-wrap;word-break:break-word;padding:6px 12px;font-style:italic}.report-removed-chip{color:var(--stamp);font-size:11px;font-style:italic}:root[data-theme=dark]{--paper:#16130d;--paper-2:#1e1a12;--paper-3:#2b251a;--vellum:#221c13;--ink:#f1e8d6;--ink-2:#d6cbb4;--ink-3:#9c8f78;--ink-4:#847962;--rule:#332d20;--rule-2:#483f2e;--stamp:oklch(67% .15 42);--stamp-2:oklch(74% .15 42);--stamp-tint:oklch(33% .06 42);--quill:oklch(73% .1 250);--quill-tint:oklch(32% .05 250);--moss:oklch(70% .09 150);--moss-tint:oklch(32% .05 150);--warn:oklch(72% .14 65);--editor-bg:#1a160e;--editor-panel:#221c13;--editor-rule:#352f21;--shadow-1:0 1px 0 #00000059, 0 1px 3px #00000073;--shadow-2:0 6px 18px -8px #000000b3, 0 1px 0 #0000004d;--hover:#f1e8d612;--hover-weak:#f1e8d609;--press:#f1e8d61f;--scrim:#0000008c;--btn-hover-bg:#fbf3e2;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .nav-item.active .count,:root[data-theme=dark] .graph-node.root .graph-node-id{color:#16130d80}:root[data-theme=dark] .book-cover-title{color:#1c1a17}:root[data-theme=dark] .book-cover-author{color:#5c5446}:root[data-theme=dark] .book-cover.tone-c .book-cover-title,:root[data-theme=dark] .book-cover.tone-c .book-cover-author,:root[data-theme=dark] .book-cover.tone-d .book-cover-title,:root[data-theme=dark] .book-cover.tone-d .book-cover-author{color:#f4ede0}:root[data-theme=dark] .auth-cover{color:var(--ink);background:#16130d}:root[data-theme=dark] .card.emphasis{color:var(--ink);border-color:var(--rule-2);background:#241e15}
