:root{--bg:#f4f1ec;--bg-2:#ebe7df;--panel:#fff;--ink:#1a1815;--ink-2:#3b3833;--muted:#75706a;--line:#d9d3c8;--line-2:#ecead4cb;--accent:oklch(58% .12 35);--accent-2:oklch(55% .12 250);--hl:oklch(95% .04 80);--danger:oklch(55% .16 25);--radius:6px;--shadow:0 1px 0 #0000000a, 0 8px 24px -16px #0000002e;--ui-font:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono-font:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--doc-font:"Source Serif 4", "Charter", "Iowan Old Style", Georgia, serif}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--ui-font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}button{cursor:pointer;font-family:inherit}input,textarea,select{color:inherit;font-family:inherit}textarea{resize:vertical}.app{--left-w:320px;--right-w:360px;--ease:cubic-bezier(.4, 0, .2, 1);--panel-anim:.28s var(--ease);height:100vh;position:relative;overflow:hidden}.app.left-collapsed{--left-w:0px}.app.right-hidden{--right-w:0px}.panel-toggle{background:var(--panel);border:1px solid var(--line);width:22px;height:44px;color:var(--muted);z-index:6;transition:left var(--panel-anim), right var(--panel-anim), color .12s;border-radius:4px;place-items:center;padding:0;display:grid;position:fixed;top:64px}.panel-toggle:hover{color:var(--ink);background:var(--bg)}.panel-toggle svg{transition:transform .18s var(--ease)}.panel-toggle.left-toggle{left:calc(var(--left-w) + 8px)}.panel-toggle.left-toggle svg{transform:rotate(90deg)}.app.left-collapsed .panel-toggle.left-toggle{left:8px}.app.left-collapsed .panel-toggle.left-toggle svg{transform:rotate(-90deg)}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;align-items:center;gap:14px;height:52px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.topbar .brand{letter-spacing:-.01em;flex-shrink:0;align-items:center;gap:8px;font-weight:600;display:flex}.topbar .brand .mark{background:var(--ink);width:22px;height:22px;color:var(--bg);font-family:var(--mono-font);border-radius:4px;place-items:center;font-size:12px;font-weight:700;display:grid}.topbar .pkg-title-wrap{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.topbar input.pkg-title{color:var(--ink);background:0 0;border:none;border-radius:4px;outline:none;flex:1;min-width:0;max-width:480px;padding:4px 6px;font-size:14px;font-weight:500}.topbar input.pkg-title:hover{background:var(--bg)}.topbar input.pkg-title:focus{background:var(--bg);box-shadow:inset 0 0 0 1px var(--line)}.topbar .meta{font-family:var(--mono-font);color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:11px}.topbar .actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.btn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--radius);align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:not(:disabled):hover{background:var(--bg-2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:not(:disabled):hover{background:var(--ink-2)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:not(:disabled):hover{background:var(--bg-2);color:var(--ink)}.btn.tiny{padding:4px 7px;font-size:12px}.btn.icon{justify-content:center;width:30px;height:30px;padding:6px}.menu-wrap{position:relative}.menu{background:var(--panel);border:1px solid var(--line);min-width:220px;box-shadow:var(--shadow);z-index:50;border-radius:8px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu .item{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.menu .item:hover{background:var(--bg)}.menu .item .kbd{font-family:var(--mono-font);color:var(--muted);margin-left:auto;font-size:11px}.menu .sep{background:var(--line);height:1px;margin:6px 4px}.left{background:var(--panel);border-right:1px solid var(--line);z-index:4;width:320px;transition:transform var(--panel-anim);will-change:transform;flex-direction:column;display:flex;position:fixed;top:52px;bottom:0;left:0;overflow:hidden auto;transform:translate(0)}.app.left-collapsed .left{transform:translate(-100%)}.left .section-header{font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;align-items:center;padding:14px 14px 8px;font-size:10px;display:flex}.left .block-list{flex-direction:column;gap:2px;padding:4px 8px 8px;display:flex}.block-row{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink-2);border:1px solid #0000;border-radius:6px;grid-template-columns:18px 22px 1fr auto;align-items:center;gap:8px;padding:8px;font-size:13px;display:grid}.block-row:hover{background:var(--bg)}.block-row.selected{background:var(--hl);color:var(--ink);border-color:oklch(85% .04 80)}.block-row .drag{color:var(--muted);font-family:var(--mono-font);text-align:center;cursor:grab;font-size:11px}.block-row .num{font-family:var(--mono-font);color:var(--muted);text-align:right;font-size:11px}.block-row .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.block-row .label .type{font-family:var(--mono-font);text-transform:uppercase;color:var(--muted);letter-spacing:.06em;margin-right:6px;font-size:10px}.block-row .actions{gap:2px;display:none}.block-row:hover .actions,.block-row.selected .actions{display:flex}.block-row .actions button{color:var(--muted);background:0 0;border:none;border-radius:4px;place-items:center;padding:4px;display:grid}.block-row .actions button:hover{color:var(--ink);background:#0000000f}.add-block{border:1px dashed var(--line);background:0 0;border-radius:6px;margin:4px 8px 12px;padding:0}.add-block-header{color:var(--muted);font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;padding:8px 10px;font-size:11px;display:flex}.add-block-grid{grid-template-columns:1fr 1fr;gap:4px;padding:0 6px 6px;display:grid}.add-block-grid button{border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;border-radius:4px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-size:12px;display:flex}.add-block-grid button:hover{background:var(--bg);border-color:var(--ink-2)}.add-block-grid button .h{font-size:12px;font-weight:600}.add-block-grid button .d{color:var(--muted);font-size:10px;font-family:var(--mono-font)}.center{top:52px;bottom:0;left:var(--left-w);right:var(--right-w);background:var(--bg);transition:left var(--panel-anim), right var(--panel-anim);padding:32px 24px 96px;position:fixed;overflow:auto}.center .paper-stack{align-items:center;gap:calc(24px * var(--zoom,1));zoom:var(--zoom,1);flex-direction:column;display:flex}.paper{width:8.5in;height:11in;box-shadow:0 0 0 1px var(--line), 0 12px 30px -16px #0000002e;font-family:var(--doc-font);color:#1a1815;background:#fff;padding:.85in .85in 1in;font-size:12.5pt;line-height:1.45;position:relative}.paper:after{content:"";border-top:1px dashed var(--line);pointer-events:none;position:absolute;bottom:1in;left:.85in;right:.85in}.paper.paper-measure:after{display:none}.overflow-warning{border:1px solid var(--danger);color:var(--danger);font-size:9pt;font-family:var(--mono-font);background:oklch(96% .05 25);border-radius:4px;margin:0 0 6pt;padding:4px 8px}.paper .pg-number{text-align:center;color:#777;font-size:.8em;font-family:var(--doc-font);position:absolute;bottom:.55in;left:0;right:0}.right{background:var(--panel);border-left:1px solid var(--line);z-index:4;width:360px;transition:transform var(--panel-anim);will-change:transform;flex-direction:column;display:flex;position:fixed;top:52px;bottom:0;right:0;overflow:hidden auto;transform:translate(0)}.app.right-hidden .right{transform:translate(100%)}.right .panel-header{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;padding:14px 16px 8px;display:flex}.right .panel-header .title{letter-spacing:-.01em;font-size:13px;font-weight:600}.right .panel-header .type-pill{font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.06em;background:var(--bg-2);color:var(--ink-2);border-radius:100px;padding:3px 7px;font-size:10px;display:inline-block}.right .panel-body{flex-direction:column;gap:14px;padding:12px 16px 32px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:11px;font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field input[type=text],.field input[type=number],.field textarea,.field select{border:1px solid var(--line);background:#fff;border-radius:5px;outline:none;width:100%;padding:7px 9px;font-size:13px;transition:border-color .12s,box-shadow .12s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink-2);box-shadow:0 0 0 3px #0000000d}.field textarea{font-family:var(--mono-font);min-height:120px;font-size:12px;line-height:1.5}.field .hint{color:var(--muted);font-size:11px}.row-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stanza-list{flex-direction:column;gap:8px;display:flex}.stanza-card{border:1px solid var(--line);background:#fff;border-radius:6px;overflow:hidden}.stanza-card.chorus{background:oklch(98% .02 80);border-color:oklch(88% .04 80)}.stanza-card-head{background:var(--bg);border-bottom:1px solid var(--line);font-size:11px;font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:6px;padding:6px 8px;display:flex}.stanza-card.chorus .stanza-card-head{background:oklch(95% .03 80)}.seg{border:1px solid var(--line);border-radius:4px;display:flex;overflow:hidden}.seg button{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px;font-family:var(--mono-font);background:0 0;border:none;padding:3px 7px}.seg button.on{background:var(--ink);color:var(--bg)}.stanza-card-head .actions{gap:2px;margin-left:auto;display:flex}.stanza-card-head .actions button{color:var(--muted);background:0 0;border:none;border-radius:3px;place-items:center;padding:3px;display:grid}.stanza-card-head .actions button:hover{color:var(--ink);background:#0000000f}.stanza-card textarea{font-family:var(--mono-font);resize:vertical;background:0 0;border:none;border-radius:0;outline:none;width:100%;min-height:70px;padding:8px 10px;font-size:12px;line-height:1.55}.add-stanza-row{gap:6px;display:flex}.add-stanza-row button{border:1px dashed var(--line);color:var(--muted);background:0 0;border-radius:5px;flex:1;padding:7px;font-size:12px}.add-stanza-row button:hover{background:var(--bg);color:var(--ink);border-color:var(--ink-2)}.verse-card{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:110px 1fr 30px;display:grid;overflow:hidden}.verse-card input.ref{background:var(--bg);font-family:var(--mono-font);border:none;border-right:1px solid var(--line);outline:none;padding:8px 10px;font-size:12px}.verse-card textarea{font-family:var(--mono-font);resize:vertical;background:0 0;border:none;outline:none;min-height:50px;padding:8px 10px;font-size:12px;line-height:1.5}.verse-card .x{border:none;border-left:1px solid var(--line);color:var(--muted);background:0 0;place-items:center;display:grid}.verse-card .x:hover{color:var(--danger);background:oklch(96% .02 25)}.sched-row{grid-template-columns:36px 1fr 1fr 28px;align-items:start;gap:6px;display:grid}.sched-row input{padding:6px 8px;font-size:12px}.sched-row .x{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:5px}.empty-state{text-align:center;color:var(--muted);padding:48px 20px;font-size:12px}.doc-h1{letter-spacing:-.01em;text-align:center;margin:0 0 .48em;font-size:1.76em;font-weight:600;line-height:1.2}.doc-h2{letter-spacing:-.005em;margin:1.44em 0 .48em;font-size:1.2em;font-weight:600}.doc-h3{text-transform:uppercase;letter-spacing:.06em;color:#555;margin:1.12em 0 .32em;font-size:.96em;font-weight:600}.doc-p{margin:0 0 .72em}.doc-center{text-align:center}.doc-rule{border:none;border-top:.75pt solid #c8c2b6;width:80%;margin:1.28em auto}.doc-cover{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.12em;min-height:9in;display:flex}.doc-cover .eyebrow{font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.16em;color:#777;font-size:.8em}.doc-cover .title{letter-spacing:-.02em;max-width:6in;font-size:2.56em;font-weight:600;line-height:1.05}.doc-cover .subtitle{color:#555;max-width:5.5in;font-size:1.12em;font-style:italic}.doc-cover .dateline{font-family:var(--mono-font);letter-spacing:.06em;color:#555;margin-top:2.24em;font-size:.8em}.doc-cover .ornament{border-top:.75pt solid #999;width:.6in;margin:.48em 0}.doc-schedule{border-collapse:collapse;width:100%;margin:.64em 0 1.12em;font-size:.88em}.doc-schedule th,.doc-schedule td{text-align:left;vertical-align:top;border-bottom:.5pt solid #d6d0c4;padding:.56em .64em}.doc-schedule th{text-transform:uppercase;letter-spacing:.06em;color:#555;border-bottom-width:1pt;border-bottom-color:#1a1815;font-size:.8em;font-weight:600}.doc-schedule td.num{font-family:var(--mono-font);color:#777;width:.4in;padding-top:.72em;font-size:.8em}.doc-schedule td.when{text-align:right;white-space:nowrap;font-family:var(--mono-font);color:#444;font-size:.8em}.doc-verse-group{margin:.8em 0 1.12em}.doc-verse-ref{margin-right:.5em;font-size:.92em;font-weight:700}.doc-verse{grid-template-columns:1.28em 1fr;gap:.32em;margin:.08em 0;display:grid}.doc-verse .vnum{text-align:right;color:#777;font-variant-numeric:lining-nums;padding-top:.24em;font-size:.72em}.doc-notes-title{margin:1.12em 0 .64em;font-size:.96em;font-weight:600}.doc-notes-line{border-bottom:.5pt solid #c8c2b6;height:1.6em}.doc-song-title{margin:1.12em 0 .64em;font-size:1.04em;font-weight:600}.doc-song{margin:.32em 0 1.12em}.doc-song-stanza{page-break-inside:avoid;break-inside:avoid;grid-template-columns:1.44em 1fr;column-gap:.32em;margin:0 0 .8em;display:grid}.doc-song-stanza .vnum{color:#1a1815;padding-top:0;font-size:.88em}.doc-song-stanza .lines{white-space:pre-wrap;font-size:.92em;line-height:1.42}.doc-song-stanza.chorus{grid-template-columns:3.52em 1fr}.doc-song-stanza.chorus .lines{font-style:italic}.page-break-marker{text-align:center;width:8.5in;font-family:var(--mono-font);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;padding:4px 0;font-size:10px}@media print{html,body{background:#fff;height:auto;overflow:visible}body{font-size:12pt}.topbar,.left,.right,.panel-toggle,.zoom-bar,.page-break-marker,.center>.paper-stack>.add-block-floating{display:none!important}.app{height:auto!important;display:block!important;overflow:visible!important}.center{background:#fff!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important}.center .paper-stack{zoom:1!important;gap:0!important;display:block!important}.paper{page-break-after:always;overflow:hidden;box-shadow:none!important;width:100%!important;height:11in!important;min-height:auto!important;margin:0!important;padding:.85in .85in 1in!important}.paper:last-child{page-break-after:auto}.paper .pg-number{position:absolute;bottom:.4in}.paper:after,.paper-measure,.overflow-warning{display:none!important}}@page{size:letter;margin:0}.zoom-bar{bottom:18px;left:calc(var(--left-w) + (100vw - var(--left-w) - var(--right-w)) / 2);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);z-index:7;font-family:var(--mono-font);color:var(--ink-2);transition:left var(--panel-anim);border-radius:100px;align-items:center;gap:2px;padding:4px;font-size:11px;display:inline-flex;position:fixed;transform:translate(-50%)}.zoom-bar button{color:var(--ink-2);background:0 0;border:none;border-radius:100px;place-items:center;width:26px;height:26px;display:grid}.zoom-bar button:hover:not(:disabled){background:var(--bg);color:var(--ink)}.zoom-bar button:disabled{opacity:.35;cursor:not-allowed}.zoom-bar .level{text-align:center;-webkit-user-select:none;user-select:none;letter-spacing:.02em;cursor:pointer;width:auto;min-width:44px;height:26px;line-height:26px;font-size:inherit;color:var(--ink-2);border-radius:100px;padding:0 8px}.zoom-bar .level:hover{background:var(--bg);color:var(--ink)}.zoom-bar .sep{background:var(--line);width:1px;height:16px;margin:0 4px}.toast{background:var(--ink);color:var(--bg);z-index:200;border-radius:6px;padding:9px 14px;font-size:13px;animation:.2s ease-out toast-in;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px -10px #0006}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.left::-webkit-scrollbar{width:10px}.right::-webkit-scrollbar{width:10px}.center::-webkit-scrollbar{width:10px}.left::-webkit-scrollbar-thumb{background:#0000001f padding-box padding-box;border:2px solid #0000;border-radius:100px}.right::-webkit-scrollbar-thumb{background:#0000001f padding-box padding-box;border:2px solid #0000;border-radius:100px}.center::-webkit-scrollbar-thumb{background:#0000001f padding-box padding-box;border:2px solid #0000;border-radius:100px}.left::-webkit-scrollbar-thumb:hover{background:#00000038 padding-box padding-box;border:2px solid #0000}.right::-webkit-scrollbar-thumb:hover{background:#00000038 padding-box padding-box;border:2px solid #0000}.center::-webkit-scrollbar-thumb:hover{background:#00000038 padding-box padding-box;border:2px solid #0000}.presence{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:999px;align-items:center;gap:6px;margin:0 4px;padding:2px 8px 2px 6px;font-size:11px;display:inline-flex}.presence-dot{background:#999;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #0000000a}.presence-dot-connected{background:#2ecc71}.presence-dot-alone{background:#f1c40f}.presence-dot-disconnected{background:#e74c3c}.presence-count{font-family:var(--mono-font);color:var(--ink);text-align:center;min-width:8px;font-size:11px;font-weight:600}.presence-pills{align-items:center;display:inline-flex}.presence-pill{color:#fff;letter-spacing:.02em;border:1.5px solid var(--panel);cursor:default;width:20px;height:20px;font-size:9px;font-weight:700;font-family:var(--mono-font);border-radius:50%;justify-content:center;align-items:center;margin-left:-6px;display:inline-flex}.presence-pill:first-child{margin-left:0}.presence-pill-overflow{color:var(--panel);font-size:9px;background:var(--muted)!important}.block-row.peer-editing{box-shadow:inset 3px 0 0 var(--peer-color,var(--accent))}.peer-editing-badge{color:#fff;letter-spacing:.02em;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:130px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:600;display:inline-block;overflow:hidden}.modal-backdrop{z-index:300;background:#00000052;justify-content:center;align-items:center;animation:.15s ease-out modal-fade;display:flex;position:fixed;inset:0}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg);border:1px solid var(--line);border-radius:10px;width:min(480px,100vw - 32px);padding:18px 18px 14px;animation:.15s ease-out modal-pop;box-shadow:0 20px 60px -10px #00000059}@keyframes modal-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.modal-head h2{margin:0;font-size:15px;font-weight:600}.modal-help{color:var(--muted);margin:0 0 12px;font-size:12.5px;line-height:1.45}.modal-warning{background:var(--bg-2);border-left:3px solid var(--accent);color:var(--ink-2);border-radius:4px;margin:0 0 14px;padding:8px 10px;font-size:11.5px;line-height:1.45}.modal-url-row{gap:6px;margin-bottom:14px;display:flex}.modal-url{border:1px solid var(--line);background:var(--bg-2);min-width:0;color:var(--ink);border-radius:6px;flex:1;padding:7px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.modal-url:focus{outline:none;box-shadow:0 0 0 2px #00000014}.modal-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.modal-peers{color:var(--muted);font-size:12px}.share-pill{color:#fff;cursor:pointer;background:#2f8a4e;border:none;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.share-pill:before{content:"";background:#fff;border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite share-pulse;box-shadow:0 0 0 2px #ffffff59}.share-pill:hover{background:#266e3f}@keyframes share-pulse{0%,to{opacity:1}50%{opacity:.5}}@media (width<=1200px){.topbar button.btn.primary{display:none}.topbar .menu-wrap button.btn.ghost.tiny{justify-content:center;gap:0;width:30px;height:30px;padding:6px;font-size:0}.topbar .menu-wrap button.btn.ghost.tiny svg{margin:0}}@media (width<=1000px){.topbar .brand span,.topbar .meta{display:none}}@media (width<=850px){.topbar .actions>button.btn.ghost.tiny:not(.icon){display:none}}
