*{margin:0;padding:0;box-sizing:border-box}html{font-family:Playfair Display,serif}body{font-size:1.3rem}:root{--purple-light: #f3e8ff;--black: #1a1a1a;--white: #ffffff;--gray-1: #f5f5f5;--gray-2: #e0e0e0;--gray-3: #cccccc;--purple: #7c3aed;--purple-contrast: #6d28d9;--shadow: 0 6px 20px rgba(0, 0, 0, .15)}.tiptap{flex:1 1 auto;min-height:75vh;width:100%;padding:1rem;border:1px solid #ccc;all:unset;box-sizing:border-box}.tiptap :first-child{margin:0}.tiptap ul,.tiptap ol{padding:0 1rem;margin:.3rem .25rem .05rem .04rem}.tiptap ul li p,.tiptap ol li p{margin-top:.25em;margin-bottom:.25em}.tiptap code{background-color:var(--purple-light);border-radius:.4rem;color:var(--black);font-size:.85rem;padding:.25em .3em}.tiptap pre{background:var(--black);border-radius:.5rem;color:var(--white);font-family:JetBrainsMono,monospace;margin:1.5rem 0;padding:.75rem 1rem}.tiptap pre code{background:none;color:inherit;font-size:.8rem;padding:0}.tiptap blockquote{border-left:3px solid var(--gray-3);margin:1.5rem 0;padding-left:1rem}.tiptap hr{border:none;border-top:1px solid var(--gray-2);margin:2rem 0}.tiptap .is-empty:before{color:var(--gray-2);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.bubble-menu{background-color:var(--white);border:1px solid var(--gray-1);border-radius:.7rem;box-shadow:var(--shadow);display:flex;padding:.2rem;gap:.4rem}.bubble-menu button{all:unset;display:flex;align-items:center;justify-content:center;border-radius:.5rem;padding:.4rem .5rem;cursor:pointer;transition:background-color .2s ease,transform .15s ease}.bubble-menu button:hover{background-color:var(--gray-2)}.bubble-menu button.is-active{background-color:var(--purple);color:var(--white)}.bubble-menu button.is-active:hover{background-color:var(--purple-contrast)}.bubble-menu button svg{width:1.1rem;height:1.1rem}.floating-menu{display:flex;background-color:var(--gray-3);padding:.25rem;border-radius:.5rem;border:1px solid var(--gray-1);box-shadow:var(--shadow);gap:.3rem;min-height:2.2rem;align-items:center}.floating-menu button{all:unset;display:flex;align-items:center;justify-content:center;border-radius:.35rem;padding:.35rem .5rem;cursor:pointer;font-size:.875rem;line-height:1;transition:background-color .2s ease,color .2s ease,transform .15s ease;background-color:transparent;color:var(--black)}.floating-menu button:hover{background-color:var(--gray-2)}.floating-menu button.is-active{background-color:var(--white);color:var(--purple);font-weight:500}.floating-menu button.is-active:hover{color:var(--purple-contrast)}.floating-menu button.loading{pointer-events:none;opacity:.6}.floating-menu button svg{width:1rem;height:1rem}
